介紹
今天,我將向大家展示一個我獨立設計并實現的機械臂模型。這個模型的核心功能是實現實時的手勢追蹤——只需用手輕輕拖拽,機械臂就能立即跟隨你的動作進行移動。
我之所以想要創造這樣一個模型,是因為在一些危險環境中,我們可以用機械臂來代替人工進行作業,從而避免人員的生命安全受到威脅。
你可能會問,為什么不直接使用遠程的鍵盤控制、手柄控制或者APP控制,而要選擇手動拖拽的方式呢?我覺得只有手動操作,才能最大程度上滿足我們對動作精準度的需求。因此,我決定開始嘗試制作這個模型,并初步完成了整個demo。
我希望,通過這個demo,我能向大家展示出機械臂的無限可能性,同時也希望能激發出大家對未來科技的無限憧憬。
機械臂設備
mechArm 270 M5
mechArm 270 是一款六自由度的機械臂,它精巧的結構設計,能夠放入一個書包里,攜帶和方便。較為重要的一點是開放了很多控制的API,用python能夠快速開始對機械臂的控制。沒有很復雜的操作,甚至還有圖形編程,這對一些不是很懂代碼的人也能夠快速上手控制機械臂。
mechArm是一款桌面型的仿工業結構的機械臂,工作最大半徑在270mm,負載250g,重復定位精度控制在±0.5mm。
Project
介紹完基礎的設備,我們就開始介紹我時如何制作這個demo過程的記錄。
使用的環境
操作系統:windows11
編程語言:python3.9+
python lib:pymycobot,time
pymycobot是大象機器人的一個開源庫,專門用來控制大象機器人的機械臂。一段簡單的控制代碼例子。
Code:
#Main methods used
#Create objects to communicate with the robotic arm.
MyCobot(serial,baud)
# angles control robot,
send_angles([list_angles],speed)
# coords control robot
send_coords([list_coords],speed,mode)
Example:
import time
from pymycobot.mycobot import MyCobot
# create a object
mc = MyCobot("com7",115200)
# angles control
mc.send_angles([0,0,0,0,0,0],100)
time.sleep(1)
mc.send_angles([90,90,90,90,90,90],100)
time.sleep(1)
簡單介紹了下如何使用python來控制mechArm,是不是很容易呢。
分析問題
開始項目之前要搭建框架,了解我們具體需要解決什么問題才能夠實現。對此我做了一個項目的流程圖。下面我將手動施教的機械臂簡稱為R1,跟隨運動的機械臂簡稱為R2。
![wKgZomVlnNKAS5b_AABFZ6isNzk901.png](https://file1.elecfans.com/web2/M00/B3/52/wKgZomVlnNKAS5b_AABFZ6isNzk901.png)
Control robotic arm:上邊已經提到了如何控制機械臂,使用pymycobot庫提供的方法就可以實現了。
Motion Control methods:R1機械臂可以用手拖動,時時刻刻返回當前機械臂的角度信息,R2機械臂接收R1的機械臂角度信息進行控制。
Communication between robotic arms:整個項目中這一步驟是比較重要的一步。建立好之后,機械臂能夠發送信息就能夠很輕易的實現了。
接下來主要講解Motion Control methods和communication between robotic arms。
Motion Control methods
獲取實時角度信息
pymycobot提供了”get_angles()"方法可以過去當前機械臂的角度信息。
# Can obtain the current angle information of the robotic arm in real time
get_angles()
# example
print("real-time angles:",mc.get_anlges())
result: real-time angles:[0,0,0,0,0,0]
# Continuously obtain the current angle
while True:
angels = mc.get_angles()
print(angles)
time.sleep(0.1) #Go to the next step every 0.1s
機械臂的刷新模式設置
機械臂的刷新模式:主要分為兩種插補模式和非插補模式,是指在運動軌跡規劃中,控制機械臂末端執行器的移動方式。如果沒有設置任何模式,機械臂可能無法正確執行預期的運動,并且可能導致以下后果:
運動不平滑
運動不準確
運動不連續
插補模式:插補模式可以實現平滑連續的軌跡規劃,確保機械臂末端執行器的位置和姿態在運動過程中平滑過渡。
非插補模式:非插補模式是指機械臂在運動過程中只關注特定的目標點,而不進行插值計算。在非插補模式下,機械臂的位置和姿態會在關鍵點之間直接跳躍,而不會經過平滑的過渡。
在進行多個機械臂同時使用插補模式進行運動時,可能會出現等待或排隊的情況,所以我們選擇使用非插補模式。
#Set refresh mode
set_fresh_mode(1/0)
1:no interpolation
0:interpolation
mc.set_fresh_mode(1)
我們將前面的整合在一起的代碼如下
Code:
import time
from pymycobot.mycobot import MyCobot
mc = MyCobot("COM7", 115200) #release arm
mb = MyCobot("COM11", 115200) #move arm
mb.set_fresh_mode(1) #no interpolation
time.sleep(1)
mc.release_all_servos() #release robot
time.sleep(1)
speed = 100
while True:
angles = mc.get_angles() #get release arm angles
mb.send_angles(angles, speed) #send angles to move arm
time.sleep(0.1)
Communication between robotic arms:
我們的方案是兩臺機械臂接入同一個PC,用串口連接的方式.
# build connection
from pymycobot.mycobot import MyCobot
mc = MyCobot("COM7", 115200)
mb = MyCobot("COM11", 115200)
用最基礎的usb數據線進行連接,我們電腦上就有兩個機械臂的串口號,可以對他們分別發送指令任務。
讓我們一起來看看效果如何
![wKgZomVIh76AXEaEAF0KJXR_cc0045.png](https://file1.elecfans.com/web2/M00/AE/74/wKgZomVIh76AXEaEAF0KJXR_cc0045.png)
總結
根據內容可以看出來雖然說是能夠做到百分之七八十的同步。也會因為一些其他的因素所影響 ,造成了不小的延遲。造成延遲的原因可能有幾個方面,比如說數據處理和傳輸的速度,機械臂的反應速度,軟件的優化,硬件的性能等等,這些都是可能 產生延遲的因素。
除此之外,還有一個很大的局限性就是,它們的通信通過串口進行連接的,如果距離稍微遠一點的話就沒辦法在用這種方法去使用,實用性不強,后期我會嘗試使用藍牙,WiFi等無限連接的方式來嘗試控制。
本次記錄就更新到這里,如果你有更好的想法,無論是優化的功能或者說是其他的建議歡迎在下方留言。
審核編輯 黃宇
-
AI
+關注
關注
87文章
31711瀏覽量
270510 -
開源
+關注
關注
3文章
3412瀏覽量
42743 -
機械臂
+關注
關注
12文章
524瀏覽量
24741
發布評論請先 登錄
相關推薦
使用myCobot 280機械臂結合ROS2系統搭建機械分揀站
![使用myCobot 280<b class='flag-5'>機械</b><b class='flag-5'>臂</b>結合ROS2系統搭建<b class='flag-5'>機械</b>分揀站](https://file1.elecfans.com/web3/M00/05/FD/wKgZPGeHDmCAIR8mAABeZax7Ft8237.png)
機械臂的高效運作,連接器起關鍵作用
OrangePi AIpro應用:機械臂應用開發指南
![OrangePi AIpro應用:<b class='flag-5'>機械</b><b class='flag-5'>臂</b>應用開發指南](https://file1.elecfans.com/web2/M00/03/5D/wKgZombDBYGAb3zjAADWJKaXUE0499.png)
工業機器人和機械臂的設計、功能和應用有哪些區別?
開源六軸協作機器人myCobot 320結合人臉表情識別情緒!
![<b class='flag-5'>開源</b><b class='flag-5'>六</b><b class='flag-5'>軸</b><b class='flag-5'>協作</b>機器人myCobot 320結合人臉表情識別情緒!](https://file1.elecfans.com/web2/M00/02/F0/wKgaoma5sX-AIX5cAADPi6sEhMk998.png)
奧比中光推出2.0版大模型機械臂
![](https://file1.elecfans.com/web2/M00/FB/65/wKgZomaQ9aWAX3iMAAwqi0yBuXE508.png)
國產Cortex-A55人工智能教學實驗箱_基于Python機械臂跳舞實驗案例分享
基于六維力傳感器的機械臂自動裝配應用
![基于<b class='flag-5'>六</b>維力傳感器的<b class='flag-5'>機械</b><b class='flag-5'>臂</b>自動裝配應用](https://file1.elecfans.com/web2/M00/EC/26/wKgZomZhTciAWLztAABVXsFGSe4044.png)
大象機器人開源協作機械臂myCobot 630 全面升級!
![大象機器人<b class='flag-5'>開源</b><b class='flag-5'>協作</b><b class='flag-5'>機械</b><b class='flag-5'>臂</b>myCobot 630 全面升級!](https://file1.elecfans.com/web2/M00/DF/12/wKgaomYt9vKAatSqAB3cm5WUv_Y288.png)
![](https://file1.elecfans.com/web2/M00/C5/3E/wKgZomX7vpiAFkJNAAV3cQFLk6I996.png)
評論