引言
在科技迅速發(fā)展的當(dāng)下,人形機(jī)器人正變得日益重要,其應(yīng)用范圍從工業(yè)自動(dòng)化到服務(wù)業(yè)不斷擴(kuò)展。本文將通過Mercury X1大象人形機(jī)器人的案例,探討如何利用尖端技術(shù)如大型語言模型(LLM)、同時(shí)定位與映射(SLAM)、機(jī)器人操作系統(tǒng)(ROS)、開源計(jì)算機(jī)視覺(OpenCV)和S-Tag標(biāo)記碼技術(shù)來實(shí)現(xiàn)復(fù)雜環(huán)境中的精確物體抓取和移動(dòng)。
此案例不僅展示了機(jī)器人的高級(jí)功能,也體現(xiàn)了現(xiàn)代機(jī)器人如何有效解決實(shí)際問題,預(yù)示著未來技術(shù)在工業(yè)和服務(wù)業(yè)中的應(yīng)用前景。接下來的內(nèi)容將詳細(xì)說明實(shí)驗(yàn)的技術(shù)設(shè)置、步驟與成果。
![wKgaomYt55mAOKkVAAgINhZXgIs297.png](https://file1.elecfans.com/web2/M00/DF/0D/wKgaomYt55mAOKkVAAgINhZXgIs297.png)
技術(shù)點(diǎn)介紹
在Mercury X1的應(yīng)用案例中,整合了多種技術(shù)使得機(jī)器人能夠在復(fù)雜的環(huán)境中執(zhí)行精準(zhǔn)的物體抓取和移動(dòng)任務(wù)。以下是案例中涉及到的關(guān)鍵技術(shù)和詳細(xì)介紹:
1.LLM(Large Language Model)
大型語言模型(LLM)如ChatGPT系列,在機(jī)器人技術(shù)中的應(yīng)用允許機(jī)器人理解和執(zhí)行基于自然語言的指令。這種模型通過處理大量的文本數(shù)據(jù)學(xué)習(xí)語言的復(fù)雜性和上下文關(guān)系,使機(jī)器人能夠解析用戶的指令并轉(zhuǎn)化為動(dòng)作。
將一個(gè)對(duì)話形式的大語言模型,嵌入到機(jī)器人當(dāng)中是目前一種比較熱門的一種技術(shù)。
在Mercury X1機(jī)器人中,LLM用于理解自然語言解釋操作命令,為后續(xù)的動(dòng)作提供給決策。
![wKgaomYt596AFbHrAAFOXZiH4eY815.png](https://file1.elecfans.com/web2/M00/DF/0E/wKgaomYt596AFbHrAAFOXZiH4eY815.png)
2.同時(shí)定位與建圖SLAM
SLAM技術(shù)是現(xiàn)代機(jī)器人和自動(dòng)駕駛汽車中不可或缺的一部分,它允許機(jī)器人在沒有外部幫助的情況下,在未知環(huán)境中進(jìn)行定位和地圖創(chuàng)建。通過使用激光雷達(dá)、攝像頭和其他傳感器,SLAM幫助Mercury X1機(jī)器人構(gòu)建環(huán)境地圖,實(shí)時(shí)更新其位置,并規(guī)劃行動(dòng)路徑。這對(duì)于確保機(jī)器人在復(fù)雜環(huán)境中能夠自主導(dǎo)航至關(guān)重要。
![wKgaomYt6B2ABtkuAA2awJafRbM391.png](https://file1.elecfans.com/web2/M00/DF/0E/wKgaomYt6B2ABtkuAA2awJafRbM391.png)
3.機(jī)器人操作系統(tǒng) (ROS)
機(jī)器人操作系統(tǒng)(ROS)是一個(gè)靈活的框架,用于編寫機(jī)器人軟件。它提供了一系列工具和庫,使開發(fā)者能夠構(gòu)建復(fù)雜而可靠的機(jī)器人行為。ROS的模塊化設(shè)計(jì)允許Mercury X1機(jī)器人的開發(fā)者輕松集成不同的硬件和軟件比如說機(jī)械臂的路徑規(guī)劃,移動(dòng)地盤的建圖導(dǎo)航避障等功能,處理數(shù)據(jù)通信,并管理多個(gè)傳感器和執(zhí)行器之間的交互。
ROS是一個(gè)非常強(qiáng)大的工具,在機(jī)器人應(yīng)用領(lǐng)域當(dāng)中,在全球范圍內(nèi)也是非常多人使用的。
![wKgaomYt6F-APwnPAAMXLv3q99U603.png](https://file1.elecfans.com/web2/M00/DF/0E/wKgaomYt6F-APwnPAAMXLv3q99U603.png)
4.開源計(jì)算機(jī)視覺庫 (OpenCV)
OpenCV是用于實(shí)現(xiàn)圖像處理和計(jì)算機(jī)視覺的開源庫,它在本次的案例中扮演了至關(guān)重要的角色,沒有它就不能完成這個(gè)項(xiàng)目。機(jī)器人的攝像頭通過OpenCV分析收集到的視覺數(shù)據(jù),識(shí)別和定位物體。OpenCV的算法使機(jī)器人能夠識(shí)別物體形狀、大小和精確坐標(biāo),這些信息對(duì)于精確抓取和操作至關(guān)重要。
提供了物體的坐標(biāo)給機(jī)器人,就可以實(shí)現(xiàn)精準(zhǔn)的抓取。
![wKgaomYt6GyAeAI4AACUErg-VYA693.png](https://file1.elecfans.com/web2/M00/DF/0E/wKgaomYt6GyAeAI4AACUErg-VYA693.png)
5.S-Tag標(biāo)記碼技術(shù)
S-Tag標(biāo)記碼是一種高度可靠的標(biāo)識(shí)系統(tǒng),設(shè)計(jì)用于在視覺上挑戰(zhàn)的環(huán)境中提供準(zhǔn)確的標(biāo)記識(shí)別。這些標(biāo)記被用于標(biāo)識(shí)Mercury X1機(jī)器人操作環(huán)境中的物體和位置。即使在光線不足或視線受阻的情況下,S-Tag也能確保機(jī)器人通過其攝像頭系統(tǒng)準(zhǔn)確識(shí)別目標(biāo)物體。
https://youtu.be/vnHI3GzLVrY
6.pymycobot
pymycobot是用于控制Mercury X1機(jī)器人機(jī)械臂和末端執(zhí)行器(如夾爪)的Python庫。它允許開發(fā)者精確控制機(jī)械臂的角度、坐標(biāo)以及運(yùn)動(dòng)模式,包括差補(bǔ)模式和刷新模式。此庫為機(jī)器人提供了高度的靈活性和可定制性,使得機(jī)器人能夠執(zhí)行復(fù)雜的抓取和操控任務(wù),并適應(yīng)各種操作需求。
產(chǎn)品介紹
Mercury X1
Mercury X1是由Elephant Robotics開發(fā)的一款先進(jìn)的人形機(jī)器人,特別設(shè)計(jì)用于應(yīng)對(duì)各種自動(dòng)化任務(wù)。它擁有19個(gè)自由度,(單臂7個(gè)自由度)使其在執(zhí)行任務(wù)時(shí)具有極高的靈活性和適應(yīng)性。Mercury X1配備了輪式移動(dòng)底座,由高性能直驅(qū)電機(jī)驅(qū)動(dòng),能夠在復(fù)雜環(huán)境中穩(wěn)定移動(dòng),并具備高達(dá)8小時(shí)的電池續(xù)航能力,適合個(gè)人和商業(yè)應(yīng)用。
這款機(jī)器人采用高性能主控制器系統(tǒng),配置了NVIDIA Jetson Xavier提供強(qiáng)大的計(jì)算支持,以處理視覺測(cè)距、傳感器融合、定位與地圖構(gòu)建、障礙檢測(cè)和路徑規(guī)劃等復(fù)雜算法。此外,Mercury X1的移動(dòng)基座裝備了LiDAR、超聲波傳感器和2D視覺系統(tǒng),能夠?qū)崿F(xiàn)高感知的環(huán)境交互。
![wKgZomYt6KOAZVVQAADLT5jrUWk064.png](https://file1.elecfans.com/web2/M00/DE/2F/wKgZomYt6KOAZVVQAADLT5jrUWk064.png)
myCobot Pro Adaptive Gripper
2 指自適應(yīng)夾持器可實(shí)現(xiàn)內(nèi)部和外部平行夾持,以及獨(dú)特的環(huán)繞式夾持模式。它可以拾起任何形狀的任何物體并且不會(huì)松開。使用它來完成一系列完整的應(yīng)用,并快速投入生產(chǎn) - 無需機(jī)器人專業(yè)知識(shí)。它是高度靈活和可靠的機(jī)器人單元的關(guān)鍵。
![wKgaomYt6LCAZJiwAAFIqf-5yi0330.png](https://file1.elecfans.com/web2/M00/DF/0E/wKgaomYt6LCAZJiwAAFIqf-5yi0330.png)
![wKgaomYt6MaAZXaxAAKN4cT8K_s018.png](https://file1.elecfans.com/web2/M00/DF/0E/wKgaomYt6MaAZXaxAAKN4cT8K_s018.png)
myCobot Pro Camera Flange
使用USB-B數(shù)據(jù)線能夠獲取到圖像的相機(jī)模組。
![wKgZomYt6NCAOKh6AAMCmt9eI9A356.png](https://file1.elecfans.com/web2/M00/DE/30/wKgZomYt6NCAOKh6AAMCmt9eI9A356.png)
接下來,我們將探討這些技術(shù)在實(shí)際應(yīng)用中是如何被集成到機(jī)器人中,并展示其在具體任務(wù)中的表現(xiàn)。
![wKgaomYt6NqACx0NAAFlNrVAmJo760.png](https://file1.elecfans.com/web2/M00/DF/0E/wKgaomYt6NqACx0NAAFlNrVAmJo760.png)
場景流程介紹
建圖設(shè)立標(biāo)記點(diǎn)
建圖:首先在所處的環(huán)境里,使用Mercury X1自帶的雷達(dá),通過ROS中的SLAM技術(shù)進(jìn)行建圖,用的是gmapping算法進(jìn)行2D建圖。啟動(dòng)機(jī)器人,對(duì)系統(tǒng)進(jìn)行初始化,在所處的環(huán)境中移動(dòng),通過雷達(dá)傳感器收集數(shù)據(jù),SLAM算法將這些數(shù)據(jù)轉(zhuǎn)化為一個(gè)結(jié)構(gòu)化的地圖,同時(shí)實(shí)時(shí)更新機(jī)器人的位置,為了確保地推的準(zhǔn)確性,建議在環(huán)境中多移動(dòng)會(huì)。
標(biāo)記A,B點(diǎn):在RViz中使用“Publish Point”工具,在地圖上點(diǎn)擊想要標(biāo)記的位置,就會(huì)發(fā)布一個(gè)點(diǎn)到ROS的默認(rèn)話題,重復(fù)這個(gè)過程在B點(diǎn)也進(jìn)行標(biāo)記,記錄下A,B點(diǎn)的坐標(biāo)
![wKgZomYt6POAHKaJAAkIF76vDuM274.png](https://file1.elecfans.com/web2/M00/DE/30/wKgZomYt6POAHKaJAAkIF76vDuM274.png)
在程序中修改好保存的點(diǎn)位,之后就可以進(jìn)行定點(diǎn)巡航了。
![wKgaomYt6P-APzCYAA9dhWLisC8367.png](https://file1.elecfans.com/web2/M00/DF/0E/wKgaomYt6P-APzCYAA9dhWLisC8367.png)
移動(dòng)到A桌,進(jìn)行物體的識(shí)別與抓取
完成完上一步驟之后,Mercury X1運(yùn)動(dòng)到A桌進(jìn)行物體的抓取。
![wKgaomYt6QmAafnxABrKBXqebEE213.png](https://file1.elecfans.com/web2/M00/DF/0E/wKgaomYt6QmAafnxABrKBXqebEE213.png)
因?yàn)槲矬w的檢測(cè)是根據(jù)手臂末端的攝像頭進(jìn)行的,所以在一開始未知的情況下,會(huì)對(duì)周圍的環(huán)境先進(jìn)行一個(gè)巡視,發(fā)現(xiàn)目標(biāo)之后快速計(jì)算目標(biāo)物體的位置。
#掃描全部物體的代碼
def detect_objects_all(flag):
if flag == 0:
detect_objects("left", ml_camera_pos_a, camera_data_a)
detect_objects("right", mr_camera_pos_a, camera_data_a)
cube_data, tray_data = judge_tray_cube(camera_data_a) else:
ml.send_angles([-41.88, 30.62, -1.14, -102.57, 59.89, 58.11, 9.63], 10)
mr.send_angles([45.94, 25.33, 0.15, -102.31, -58.65, 55.8, -13.94], 10)
waitl()
ml.set_gripper_value(0, 10)
mr.set_gripper_value(0, 10)
time.sleep(12)
detect_objects("left", ml_camera_pos_b, camera_data_b)
detect_objects("right", mr_camera_pos_b, camera_data_b)
ml.set_gripper_value(50, 10)
mr.set_gripper_value(50, 10)
cube_data, tray_data = judge_tray_cube(camera_data_b) return cube_data, tray_data
每個(gè)物體的表面都有貼有STag碼,可以通過標(biāo)記碼來精準(zhǔn)的獲得物體的坐標(biāo)參數(shù),在此獲得的物體坐標(biāo)和機(jī)械臂的坐標(biāo)并不在同一個(gè)坐標(biāo)系當(dāng)中,所以在機(jī)械臂的機(jī)器視覺算法當(dāng)中,都會(huì)有一個(gè)世界坐標(biāo)系,將物體的坐標(biāo),機(jī)械臂末端的坐標(biāo)轉(zhuǎn)化為世界坐標(biāo),這樣就方便機(jī)械臂對(duì)物體進(jìn)行抓取。
![wKgZomYt6SOAG1HDAAC3H75cjyQ326.png](https://file1.elecfans.com/web2/M00/DE/30/wKgZomYt6SOAG1HDAAC3H75cjyQ326.png)
![wKgaomYt6SqAdB0pABwb8fy6Z4A335.png](https://file1.elecfans.com/web2/M00/DF/0E/wKgaomYt6SqAdB0pABwb8fy6Z4A335.png)
移動(dòng)到B桌
拿著收納箱,前往B桌進(jìn)行分類。
對(duì)物體進(jìn)行分類
跟第二步,物體的識(shí)別和抓取的算法是一樣的,都是通過STag標(biāo)記碼識(shí)別之后獲取物體的坐標(biāo)進(jìn)行分類。
![wKgaomYt6TOAH45HABRelv7pg5s193.png](https://file1.elecfans.com/web2/M00/DF/0E/wKgaomYt6TOAH45HABRelv7pg5s193.png)
技術(shù)難點(diǎn)
在開發(fā)過程中的難點(diǎn)最核心的是,雙臂人形機(jī)器人協(xié)同控制的問題,主要從以下幾個(gè)方面來分析:
精確的坐標(biāo)和時(shí)間同步:
要精確計(jì)算兩個(gè)手臂的運(yùn)動(dòng)軌跡,確保它們?cè)谧ト⊥斜P時(shí)能同時(shí)到達(dá)預(yù)定位置。這要求系統(tǒng)能夠同步控制兩個(gè)獨(dú)立的驅(qū)動(dòng)系統(tǒng),確保動(dòng)作的協(xié)調(diào)性和同步性。
在Mercury X1夾爪托起托盤的時(shí)候,需要同時(shí)夾住托盤的邊緣并且同時(shí)抬起托盤,為了確保同步進(jìn)行,避免一方提前抬起,預(yù)設(shè)了1s的時(shí)間進(jìn)行等待。
def put_up_tray(tray_data):
ml.set_gripper_value(60, 10)
mr.set_gripper_value(60, 10)
time.sleep(1)
for tray in tray_data:
offset, fact_bcl = get_obj_coords(tray["corners"], tray["ids"], tray["cur_coords"], tray['arm'])
point = fact_bcl.copy()
px, py, pz = point[0], point[1], point[2]
if tray["ids"] == [4] and tray['arm'] == "left":
af = (offset + 90) * pi / 180
mc = ml
Hei = 57
Len = -20
elif tray["ids"] == [5] and tray['arm'] == "right":
af = (offset - 90) * pi / 180
mc = mr
Hei = 57
Len = 30
else:
continue
# p3
px3 = px + Hei * cos(af) + Len * sin(af)
py3 = py + Hei * sin(af) - Len * cos(af)
pz3 = pz
p3 = [px3, py3, pz3]
mc.send_base_coord(6, offset, sp)
mc.send_base_coord(2, py3, sp)
mc.send_base_coord(1, px3, sp)
mc.send_base_coord(3, pz - 10, sp)
waitl()
ml.set_gripper_value(0, 10)
mr.set_gripper_value(0, 10)
time.sleep(2)
current_coordsl = ml.get_base_coords()
current_coordsr = mr.get_base_coords()
waitl()
ml.send_base_coord(3, current_coordsl[2] + 20, 20)
mr.send_base_coord(3, current_coordsr[2] + 20, 20)
waitl()
力學(xué)平衡和穩(wěn)定性
在抓取大型或重物體時(shí),雙臂的協(xié)調(diào)尤為重要。需要確保機(jī)器人在執(zhí)行任務(wù)時(shí)保持穩(wěn)定,避免因力學(xué)不平衡造成的傾倒或損壞。這涉及到復(fù)雜的力學(xué)計(jì)算和實(shí)時(shí)反饋調(diào)節(jié)。
在本次項(xiàng)目中,因?yàn)閯?dòng)作并不算是很復(fù)雜,只需要將托盤同時(shí)抬起,同時(shí)放下就能夠保證托盤的穩(wěn)定性。如果在復(fù)雜的場景,比如說用手持乒乓球拍保證乒乓球拍上的球不會(huì)掉落,這個(gè)涉及力學(xué)平衡和穩(wěn)定性就要考慮的多。
碰撞避免
在雙臂操作中,防止手臂之間、手臂與機(jī)器人體、手臂與環(huán)境之間的碰撞是一大挑戰(zhàn)。需要精確地規(guī)劃每個(gè)手臂的運(yùn)動(dòng)路徑,同時(shí)保持足夠的安全距離。
總結(jié)
此案例不僅凸顯了機(jī)器人技術(shù)在工業(yè)和服務(wù)領(lǐng)域的實(shí)際應(yīng)用潛力,也展示了技術(shù)融合的重要性。通過詳細(xì)介紹技術(shù)背景、實(shí)施步驟和具體應(yīng)用,我們看到了Mercury X1在提高生產(chǎn)效率、減少人工成本和應(yīng)對(duì)復(fù)雜操作環(huán)境中的重要價(jià)值。
如果你對(duì)該案例感興趣的話麻煩點(diǎn)贊留言支持我們,你的支持是我們更新的動(dòng)力!
審核編輯 黃宇
-
開源
+關(guān)注
關(guān)注
3文章
3412瀏覽量
42738 -
python
+關(guān)注
關(guān)注
56文章
4810瀏覽量
85074 -
機(jī)械臂
+關(guān)注
關(guān)注
12文章
524瀏覽量
24737 -
人形機(jī)器人
+關(guān)注
關(guān)注
3文章
508瀏覽量
16820
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
圖紙代碼完全開源!稚暉君:人人都能造人形機(jī)器人!
![圖紙代碼完全開源!稚暉君:人人都能造<b class='flag-5'>人形</b><b class='flag-5'>機(jī)器人</b>!](https://file1.elecfans.com/web1/M00/F3/C5/wKgaoWceSsCAf6Q9AARxOf0XtJA180.png)
伺服電動(dòng)缸在人形機(jī)器人中的應(yīng)用
大象機(jī)器人推出首款三指靈巧手myGripper H100
![<b class='flag-5'>大象</b><b class='flag-5'>機(jī)器人</b>推出首款三指靈巧手myGripper H100](https://file1.elecfans.com/web3/M00/06/B8/wKgZPGePMHmAK1E9AAA4YefgzZI678.png)
【「具身智能機(jī)器人系統(tǒng)」閱讀體驗(yàn)】2.具身智能機(jī)器人大模型
【「具身智能機(jī)器人系統(tǒng)」閱讀體驗(yàn)】1.初步理解具身智能
《具身智能機(jī)器人系統(tǒng)》第1-6章閱讀心得之具身智能機(jī)器人系統(tǒng)背景知識(shí)與基礎(chǔ)模塊
大象機(jī)器人11月大事件回顧
“0元購”智元靈犀X1機(jī)器人,軟硬件全套圖紙和代碼全公開!資料免費(fèi)下載!
1X公司發(fā)布首款消費(fèi)級(jí)人形機(jī)器人
人形機(jī)器人場景應(yīng)用聯(lián)盟正式成立
機(jī)器視覺 歡創(chuàng)播報(bào) Figure 02人形機(jī)器人發(fā)布
![<b class='flag-5'>機(jī)器</b>視覺 歡創(chuàng)播報(bào) Figure 02<b class='flag-5'>人形</b><b class='flag-5'>機(jī)器人</b>發(fā)布](https://file1.elecfans.com//web2/M00/02/31/wKgaoma0aDuAbEU8AABWPnGBIWY09.webp)
大象機(jī)器人水星MercuryX1輪式人形機(jī)器人基于物體標(biāo)記建模的鍵盤點(diǎn)按操作!
![<b class='flag-5'>大象</b><b class='flag-5'>機(jī)器人</b><b class='flag-5'>水星</b>MercuryX<b class='flag-5'>1</b>輪式<b class='flag-5'>人形</b><b class='flag-5'>機(jī)器人</b>基于物體標(biāo)記建模的鍵盤點(diǎn)按操作!](https://file1.elecfans.com/web2/M00/01/7F/wKgaomawSg-AKi5NAAFVsqhrYDQ673.png)
評(píng)論