色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

大象機器人水星MercuryX1輪式人形機器人基于物體標(biāo)記建模的鍵盤點按操作!

大象機器人科技 ? 來源:大象機器人科技 ? 作者:大象機器人科技 ? 2024-08-06 09:34 ? 次閱讀

引言
在現(xiàn)代科技的推動下,機器人在日常生活和工作場景中的應(yīng)用越來越廣泛。本文將介紹MercuryX1,這款先進的機器人如何通過其手臂末端的攝像頭識別并確定鍵盤的鍵位,從而進行精確的打字操作。通過這一案例,我們將展示MercuryX1在自動化辦公領(lǐng)域的潛力,以及其在提升效率和減少人為錯誤方面的顯著優(yōu)勢。

接下里跟隨我們的腳步,我們先簡單的介紹一下使用到的產(chǎn)品

Product
Mercury X1
水星Mercury X1是一款輪式人形機器人,整體由水星Mercury B1和高性能移動底座組合而成,擁有19個自由度。其單臂為7自由度的類人手臂結(jié)構(gòu)機械臂。整機配備了英偉達Jetson Xavier主控。

移動底座具備豐富的感知能力,包括高性能激光雷達、超聲波傳感器和2D視覺傳感器。其直驅(qū)電機驅(qū)動系統(tǒng)使其最大運行速度可達1.2m/s,最大爬坡高度為2CM,最大爬坡角度為15度。整機最大續(xù)航時間高達8小時。

此外,Mercury X1支持包括ROS、Moveit、Gazebo和Mujoco等主流仿真軟件,提升了機器人智能的自主學(xué)習(xí)和快速迭代能力。

myCobot Pro Adaptive Gripper
是Mercury X1適配的自適應(yīng)夾爪,提供較大的加持力,和標(biāo)準(zhǔn)的M8航空插頭接口

wKgaomawSg-AKi5NAAFVsqhrYDQ673.pngwKgZomawSiGALOtzAAKWeeUHT-Q811.png

Camera Flange
適配于Mercury X1的攝像頭模組可以安裝在機械臂雙臂的末端,并搭配夾爪使用。通過攝像頭,實際獲取物體的相關(guān)信息,并利用這些數(shù)據(jù)進行機器視覺識別算法處理。通過USB接口,數(shù)據(jù)被傳輸?shù)絁etson Nano主控進行進一步處理。

wKgaomawSiyAc5pgAAMVdMx1Zk0943.pngwKgZomawSjSABmkiAAQ1MX7WccU062.png

技術(shù)要點
接下來介紹在項目中使用到的技術(shù)點。

pymycobot
pymycobot是Elephant Robotics專為其機械臂產(chǎn)品設(shè)計的控制庫。通過該庫,用戶可以方便快捷地調(diào)用API,以實現(xiàn)對機器人的精確控制和操作。pymycobot提供了豐富的功能接口,簡化了編程流程,使開發(fā)者能夠?qū)W⒂趹?yīng)用開發(fā)。

pymycobot · PyPI

wKgaomawSkqAcomcAAGdxRkTDis914.png

OpenCV
OpenCV是一個開源的計算機視覺庫。通過該庫,用戶可以方便快捷地調(diào)用各種圖像處理和計算機視覺的API,以實現(xiàn)圖像識別、對象檢測和圖像轉(zhuǎn)換等操作。OpenCV提供了豐富的功能接口,簡化了開發(fā)流程,使開發(fā)者能夠?qū)W⒂趹?yīng)用實現(xiàn)。

OpenCV - Open Computer Vision Library

wKgZomawSlaAIfMSAADyQ_Fzk5Y581.png

Stag
STag是一種穩(wěn)定的標(biāo)記碼,廣泛應(yīng)用于計算機視覺和機器人定位領(lǐng)域。通過STag,用戶可以實現(xiàn)可靠的物體識別和追蹤。STag提供了穩(wěn)健的性能和易于集成的接口,簡化了開發(fā)者在定位和識別任務(wù)中的工作。

GitHub - bbenligiray/stag: STag: A Stable Fiducial Marker System

wKgaomaxfHKAYWyKABDVuHQfu6o851.png

Project
整個項目最主要的功能就機械臂運動控制,機械臂的手眼標(biāo)定(坐標(biāo)系的轉(zhuǎn)化)和機器的視覺識別。我們先來介紹最重要的機器視覺識別。

機器視覺識別
想要讓X1進行打字,那么它肯定得認(rèn)識鍵盤,機器人咋可能自己就認(rèn)識鍵盤呢,所以我們要教他認(rèn)識鍵盤,并且告訴他那個鍵在哪個位置。這就用到了STag和OpenCV,STag的標(biāo)記碼能夠確定鍵盤的位置,并且反饋坐標(biāo)參數(shù)

下面這段代碼實現(xiàn)是,刷新相機界面獲取實時畫面,來檢測STag碼的位置

def stag_identify_loop(self):
       while True:
           self.camera.update_frame()  # 刷新相機界面
           frame = self.camera.color_frame()  # 獲取當(dāng)前幀
           (corners, ids, rejected_corners) = stag.detectMarkers(frame, 11)  # 獲取畫面中二維碼的角度和id
           marker_pos_pack = self.calc_markers_base_position(corners, ids)  # 獲取物的坐標(biāo)(相機系)
           print("Camera coords = ", marker_pos_pack)
           cv2.imshow("按下鍵盤任意鍵退出", frame)
           # cv2.waitKey(1)
           # 按下鍵盤任意鍵退出
           if cv2.waitKey(1) & 0xFF != 255:
               break


兩個STag碼是為了確定位置,在用draw在圖中畫出鍵盤的位置,在這里需要考慮兩個手的情況,當(dāng)然如果單臂也是能完成的但是我們是要模擬人打字的,左手負責(zé)左邊的區(qū)域,右手負責(zé)右邊的區(qū)域。

def draw(frame, arm):
   global per_right_corners, per_left_corners
   # 將圖片灰度
   imGray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
   # 獲取圖片中二維碼的角點
   (corners, ids, rejected_corners) = stag.detectMarkers(imGray, 11)
   # 通過角點獲取,二維碼相對于相機的位移、旋轉(zhuǎn)向量
   marker_pos_pack = calc_markers_base_position(corners, ids, marker_size, mtx, dist)
   if arm == "left":
       # 獲取當(dāng)前機械臂末端坐標(biāo)
       stag_cur_coords = np.array(ml.get_base_coords())
       stag_cur_bcl = stag_cur_coords.copy()
       stag_cur_bcl[-3:] *= (np.pi / 180)
       # 通過手眼矩陣獲取二維碼相對于機械臂基座的坐標(biāo)
       stag_fact_bcl = Eyes_in_hand(stag_cur_bcl, marker_pos_pack, "left")
       stag_coord = stag_cur_coords.copy()
       stag_coord[0] = stag_fact_bcl[0]
       stag_coord[1] = stag_fact_bcl[1]
       stag_coord[2] = stag_fact_bcl[2]
       # 存入二維碼的三維坐標(biāo)
       keyboard_coords[","] = stag_coord
   else:
       # 獲取當(dāng)前機械臂末端坐標(biāo)
       stag_cur_coords = np.array(mr.get_base_coords())
       stag_cur_bcl = stag_cur_coords.copy()
       stag_cur_bcl[-3:] *= (np.pi / 180)
       # 通過手眼矩陣獲取二維碼相對于機械臂基座的坐標(biāo)
       stag_fact_bcl = Eyes_in_hand(stag_cur_bcl, marker_pos_pack, "right")
       stag_coord = stag_cur_coords.copy()
       stag_coord[0] = stag_fact_bcl[0]
       stag_coord[1] = stag_fact_bcl[1]
       stag_coord[2] = stag_fact_bcl[2]
       # 存入二維碼的三維坐標(biāo)
       keyboard_coords["."] = stag_coord
   # 通過角點獲取,二維碼相對于相機的位移、旋轉(zhuǎn)向量
   rvecs, tvecs = solve_marker_pnp(corners, marker_size, mtx, dist)
   # 畫出坐標(biāo)系
   cv2.drawFrameAxes(frame, mtx, dist, rvecs, tvecs, 50)
   draw_img = frame

   x1 = corners[0][0][0][0]
   y1 = corners[0][0][0][1]
   x2 = corners[0][0][1][0]
   y2 = corners[0][0][1][1]

   x = x1 - x2
   y = y1 - y2
   # 根據(jù)兩個交點之間連線的角度獲取偏轉(zhuǎn)角
   r = np.arctan(y / x)
   r = abs(r)
   # 獲取兩個角點之間的距離
   size = abs(x / np.cos(r))
   # 左臂攝像頭兩個按鍵x軸之間的距離
   left_x_dis = size * 1.3
   # 左臂攝像頭兩個按鍵y軸之間的距離
   left_y_dis = size * 1.35
   # 右臂攝像頭兩個按鍵x軸之間的距離
   right_x_dis = size * 1.3
   # 右臂攝像頭兩個按鍵y軸之間的距離
   right_y_dis = size * 1.35
   # 按鍵框的半徑
   rad = int(size / 2)
   # 左臂攝像頭x軸與第一個字母的偏移距離
   left_add_x = [size * 1.25]
   # 左臂攝像頭y軸各行與第一個字母的偏移距離
   left_add_y = [-size * 2, -size * 2.3, -size * 3]
   # 右臂攝像頭x軸與第一個字母的偏移距離
   right_add_x = [size * 1.3]
   # 右臂攝像頭y軸各行與第一個字母的偏移距離
   right_add_y = [size * 4.1, size * 2.1, size * 1]
   # 獲取按鍵框的中心點
   tray_frame = Path(corners[0][0])
   tray_frame_center_plot = tray_frame.vertices.mean(axis=0)

隨后就是通過算法來確定每個鍵位的坐標(biāo)如何計算的問題了。將圈選出來的鍵位存入數(shù)組當(dāng)中,規(guī)定左手負責(zé)的區(qū)域,規(guī)定右手負責(zé)的區(qū)域

   # 左臂鍵盤布局
   left_keyboard_txt = [
       ["q", "w", "e", "r", "t", "y", "u", "i", "o", "p"],
       ["a", "s", "d", "f", "g", "h", "j", "k", "l"],
       ["z", "x", "c", "v", "b", "n", "m"]
   ]
   # 右臂鍵盤布局
   right_keyboard_txt = [
       ["m", "n", "b", "v", "c", "x", "z"],
       ["l", "k", "j", "h", "g", "f", "d", "s", "a"],
       ["p", "o", "i", "u", "y", "t", "r", "e", "w", "q"],
   ]
   # 左臂點按的字母
   left_control = ["q", "w", "e", "r", "t",
                   "a", "s", "d", "f", "g",
                   "z", "x", "c", "v", ","]
   # 左臂點按的字母
   right_control = ["y", "u", "i", "o", "p",
                    "h", "j", "k", "l",
                    "b", "n", "m", "."]

這樣X1就能夠知道鍵盤是什么,以及相對應(yīng)的鍵位在哪里了,接下來就要解決的是機械臂的手眼標(biāo)定的問題了,需要將目標(biāo)的物體的坐標(biāo)系和機械臂末端的坐標(biāo)系轉(zhuǎn)化到同一個坐標(biāo)系當(dāng)中去。

手眼標(biāo)定-眼在手中
1. 標(biāo)記檢測

使用相機捕獲圖像,并檢測STag標(biāo)記,獲取到標(biāo)記碼的三維坐標(biāo)。調(diào)用 solve_marker_pnp 計算標(biāo)記在相機坐標(biāo)系中的位置和方向。

def calc_markers_base_position(corners: NDArray, ids: T.List, marker_size: int, mtx: NDArray, dist: NDArray) -> T.List:
   if len(corners) == 0:
       return []
   rvecs, tvecs = solve_marker_pnp(corners, marker_size, mtx, dist)
   res = []
   for i, tvec, rvec in zip(ids, tvecs, rvecs):
       tvec = tvec.squeeze().tolist()
       rvec = rvec.squeeze().tolist()
       rotvector = np.array([[rvec[0], rvec[1], rvec[2]]])
       Rotation = cv2.Rodrigues(rotvector)[0]
       Euler = CvtRotationMatrixToEulerAngle(Rotation)
       cam_coords = tvec + rvec
       target_coords = cam_coords
   return target_coords


2. 坐標(biāo)轉(zhuǎn)換

將標(biāo)記的旋轉(zhuǎn)向量轉(zhuǎn)換為旋轉(zhuǎn)矩陣,再轉(zhuǎn)換為歐拉角,以便于進一步的計算和分析,組合平移向量和旋轉(zhuǎn)向量,得到目標(biāo)坐標(biāo)。

cv2.Rodrigues 函數(shù)用于在旋轉(zhuǎn)向量和旋轉(zhuǎn)矩陣之間進行轉(zhuǎn)換。這個函數(shù)將旋轉(zhuǎn)向量轉(zhuǎn)換為旋轉(zhuǎn)矩陣,或者將旋轉(zhuǎn)矩陣轉(zhuǎn)換為旋轉(zhuǎn)向量。

rotvector = np.array([[rvec[0], rvec[1], rvec[2]]])
Rotation = cv2.Rodrigues(rotvector)[0]

#歐拉角和旋轉(zhuǎn)矩陣的相互轉(zhuǎn)換
def CvtRotationMatrixToEulerAngle(pdtRotationMatrix):
   pdtEulerAngle = np.zeros(3)
   pdtEulerAngle[2] = np.arctan2(pdtRotationMatrix[1, 0], pdtRotationMatrix[0, 0])
   fCosRoll = np.cos(pdtEulerAngle[2])
   fSinRoll = np.sin(pdtEulerAngle[2])
   pdtEulerAngle[1] = np.arctan2(-pdtRotationMatrix[2, 0], (fCosRoll * pdtRotationMatrix[0, 0]) + (fSinRoll * pdtRotationMatrix[1, 0]))
   pdtEulerAngle[0] = np.arctan2((fSinRoll * pdtRotationMatrix[0, 2]) - (fCosRoll * pdtRotationMatrix[1, 2]), (-fSinRoll * pdtRotationMatrix[0, 1]) + (fCosRoll * pdtRotationMatrix[1, 1]))
   return pdtEulerAngle

def CvtEulerAngleToRotationMatrix(ptrEulerAngle):
   ptrSinAngle = np.sin(ptrEulerAngle)
   ptrCosAngle = np.cos(ptrEulerAngle)
   ptrRotationMatrix = np.zeros((3, 3))
   ptrRotationMatrix[0, 0] = ptrCosAngle[2] * ptrCosAngle[1]
   ptrRotationMatrix[0, 1] = ptrCosAngle[2] * ptrSinAngle[1] * ptrSinAngle[0] - ptrSinAngle[2] * ptrCosAngle[0]
   ptrRotationMatrix[0, 2] = ptrCosAngle[2] * ptrSinAngle[1] * ptrCosAngle[0] + ptrSinAngle[2] * ptrSinAngle[0]
   ptrRotationMatrix[1, 0] = ptrSinAngle[2] * ptrCosAngle[1]
   ptrRotationMatrix[1, 1] = ptrSinAngle[2] * ptrSinAngle[1] * ptrSinAngle[0] + ptrCosAngle[2] * ptrCosAngle[0]
   ptrRotationMatrix[1, 2] = ptrSinAngle[2] * ptrSinAngle[1] * ptrCosAngle[0] - ptrCosAngle[2] * ptrSinAngle[0]
   ptrRotationMatrix[2, 0] = -ptrSinAngle[1]
   ptrRotationMatrix[2, 1] = ptrCosAngle[1] * ptrSinAngle[0]
   ptrRotationMatrix[2, 2] = ptrCosAngle[1] * ptrCosAngle[0]
   return ptrRotationMatrix

#合并旋轉(zhuǎn)和平移向量
cam_coords = tvec + rvec
target_coords = cam_coords

他們本身不是一個世界的人,現(xiàn)在強行轉(zhuǎn)化到一個世界里,就能夠互相知道在哪里了!這樣就能夠直接獲取到鍵盤鍵位的result了 。

機械臂的運動控制
當(dāng)我們有了目標(biāo)物體的坐標(biāo)之后,就到我們的X1閃亮登場了,開始執(zhí)行運動,這里我們用到pymycobot來控制機械臂運動。

   r是右手的控制,l是左手的控制
   mr = Mercury("/dev/ttyACM0")
   ml = Mercury("/dev/ttyTHS0")
   #發(fā)送角度位置和速度給機械臂,
   mr.send_angles(mr_pos, sp)
   ml.send_angles(ml_pos, sp)
   #發(fā)送坐標(biāo)和速度給機械臂
   mr.send_coords(mr_pos, sp)
   ml.send_coords(ml_pos, sp)


就是將目標(biāo)的坐標(biāo)傳遞給機械臂去運動,就能實現(xiàn)打字了,我們一起來看看運動的效果如何。

總結(jié)
通過本文,我們詳細介紹了Mercury X1輪式人形機器人在打字任務(wù)中的應(yīng)用實例。Mercury X1憑借其19自由度的靈活結(jié)構(gòu)、豐富的感知能力和高性能的控制系統(tǒng),展示了在自動化辦公領(lǐng)域的巨大潛力。結(jié)合適配的攝像頭模組和先進的機器視覺算法,Mercury X1能夠精準(zhǔn)識別并操作鍵盤,顯著提升了工作效率和準(zhǔn)確性。隨著技術(shù)的不斷進步,我們期待Mercury X1在更多領(lǐng)域展現(xiàn)其卓越的性能,為智能自動化帶來更多可能性。

審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 機器人
    +關(guān)注

    關(guān)注

    211

    文章

    28379

    瀏覽量

    206913
  • 開源
    +關(guān)注

    關(guān)注

    3

    文章

    3309

    瀏覽量

    42471
  • 機械臂
    +關(guān)注

    關(guān)注

    12

    文章

    513

    瀏覽量

    24554
  • 人形機器人
    +關(guān)注

    關(guān)注

    2

    文章

    443

    瀏覽量

    16549
收藏 人收藏

    評論

    相關(guān)推薦

    輪式機器人

    我是新人,求幫助啊,明天需要提交輪式機器人應(yīng)用的報告,求大神給點建議,可用輪式機器人應(yīng)用于那些方面,要求實際可行,應(yīng)用于生活,農(nóng)業(yè),軍事都可以,謝謝啦
    發(fā)表于 04-17 16:32

    為什么人形機器人更討人喜歡?

    。相比之下,人形機器人(又稱“仿人機器人”或“類人機器人”)比那些非人形機器人更討人喜歡。從心理
    發(fā)表于 05-12 09:55

    桁架機器人核心配件介紹

    桁架機器人核心配件介紹1.控制器在數(shù)控機床機器人控制器方面,目前通用的多軸控制器平臺主要分為以嵌入處理器(DSP,POWERPC)為核心的運動控制卡和以工控機加實時系統(tǒng)為核心的PLC
    發(fā)表于 11-22 12:08

    機器人基礎(chǔ)書籍

    列舉部分學(xué)習(xí)過程中接觸的部分書籍,部分有中文版,部分有更新版本。1.機器人基礎(chǔ)書籍適合入門的書籍:機器人學(xué)機器人建模規(guī)劃與控制
    發(fā)表于 05-22 06:53

    機器人接觸物體探測的接觸方式有哪些?

    機器人接觸物體探測技術(shù)電路設(shè)計
    發(fā)表于 03-02 11:06

    基于TRIZ輪式機器人驅(qū)動輪的研究

    基于TRIZ輪式機器人驅(qū)動輪的研究 根據(jù)亞太機器人大賽規(guī)則,要求機器人車輪與地面有較大的摩擦力,以保證機器人在規(guī)定的時間內(nèi)完成比賽任務(wù)。文中
    發(fā)表于 09-13 07:12

    六足機器人輪式移動方式的優(yōu)勢

    科學(xué)技術(shù)發(fā)展和人類社會進步的需要。地形不規(guī)則和崎嶇不平是這些環(huán)境的共同特點。從而使輪式機器人和履帶機器人的應(yīng)用受到限制。以往的研究表明輪式
    發(fā)表于 09-13 06:47

    機器人是什么?

    自主機器人。這些都是機器人的智能藝術(shù)。除了這個被廣泛接受的分類,機器人可以根據(jù)它們的運動方式和工作環(huán)境進行分類,如輪式機器人、腿
    發(fā)表于 03-31 10:31

    【開發(fā)教程1人形街舞機器人-套件檢測教程

    多自由度人形雙足舞蹈機器人套件檢測教程——機器人開發(fā)系列配套資料:https://www.fengke.club/GeekMart/su_fV1WzKsGQ.jsp 配套視頻:http
    發(fā)表于 04-22 14:14

    【教程1人形街舞機器人-套件檢測教程

    多自由度人形雙足舞蹈機器人——瘋殼·機器人開發(fā)系列套件檢測教程內(nèi)容簡介本文檔主要介紹在如何驗證多自由度人形雙足街舞機器人套件正常,包括具體線
    發(fā)表于 08-12 15:55

    輪式機器人怎么樣

    ,人類友好型機器人開始在實體店進行實時盤點,這使得超市能夠減少每種產(chǎn)品的貨架空間,并增加給定時間內(nèi)可以攜帶的庫存量。輪式機器人甚至可以進軍賓館,提供從入住到客房服務(wù)的接待服務(wù)。 對于這
    發(fā)表于 11-09 07:49

    ?大象機器人首發(fā)萬元級水星Mercury人形機器人系列

    水星Mercury機器人系列共有三款產(chǎn)品:水星Mercury A1 七軸協(xié)作機械臂和水星Mercury B
    發(fā)表于 01-03 09:59 ?276次閱讀
    ?<b class='flag-5'>大象</b><b class='flag-5'>機器人</b>首發(fā)萬元級<b class='flag-5'>水星</b>Mercury<b class='flag-5'>人形</b><b class='flag-5'>機器人</b>系列

    技術(shù)融合與創(chuàng)新大象機器人水星Mercury X1人形機器人案例研究!

    引言 在科技迅速發(fā)展的當(dāng)下,人形機器人正變得日益重要,其應(yīng)用范圍從工業(yè)自動化到服務(wù)業(yè)不斷擴展。本文將通過Mercury X1大象人形機器人
    的頭像 發(fā)表于 04-28 14:18 ?572次閱讀
    技術(shù)融合與創(chuàng)新<b class='flag-5'>大象</b><b class='flag-5'>機器人</b><b class='flag-5'>水星</b>Mercury X<b class='flag-5'>1</b><b class='flag-5'>人形</b><b class='flag-5'>機器人</b>案例研究!

    大象機器人完成Pre-B融資,致力打造全新機器人生態(tài)!

    近日,深圳市大象機器人科技有限公司(以下簡稱「大象機器人」)近日完成Pre-B融資,本輪融資由清輝投資領(lǐng)投、云卓資本跟投,資金將用于
    的頭像 發(fā)表于 05-22 14:46 ?894次閱讀

    七騰機器人:防爆輪式機器人-四八驅(qū)全新上線

    今日,七騰機器人有限公司(以下簡稱“七騰機器人”)推出全新產(chǎn)品:防爆輪式機器人-四八驅(qū)。該款產(chǎn)品是七騰
    的頭像 發(fā)表于 10-21 16:32 ?175次閱讀
    七騰<b class='flag-5'>機器人</b>:防爆<b class='flag-5'>輪式</b><b class='flag-5'>機器人</b>-四<b class='flag-5'>輪</b>八驅(qū)全新上線
    主站蜘蛛池模板: 日本bbwhd| 99视频久久精品久久| 男人一生要读的书| 国产精品AV视频一二三区| 一区二区不卡在线视频| 亲伦在线观看| 久久精品视在线-2| 国产第一页浮力影院| 91精品免费久久久久久久久| 小黄文污到你湿| 欧美日韩精品一区二区三区四区 | 亚洲第一国产| 欧美性黑吊xxx| 久久免费视频在线观看6| 国产欧美精品一区二区色综合| 999久久精品国产| 野花香在线观看免费观看大全动漫| 日韩欧美中文字幕在线二视频| 久久热国产在线视频| 国产亚洲精品久久无码98 | 美女的jj| 久久黄色网| 国内精品视频在线播放一区| 丰满大爆乳波霸奶| AV午夜午夜快憣免费观看| 又粗又大又爽又黄的免费视频| 性XXXXX搡XXXXX搡景甜| 三级黄色在线视频| 日本妈妈xxxx| 全彩acg无翼乌火影忍者| 嫩草影院久久99| 门事件快播| 麻豆沈芯语| 美女pk精子2小游戏| 久久欧洲AV无码精品色午夜麻豆| 黄色大片久久| 和尚扒开双腿蹂躏| 韩国伦理电影在线神马网| 国产免费啪嗒啪嗒视频看看| 国产精品99久久久久久人韩国| 大伊人青草狠狠久久|