這一節(jié)我們開(kāi)始第一個(gè)程序,就是機(jī)械臂各關(guān)節(jié)的運(yùn)動(dòng)。讓我們首先打開(kāi)Mycobot,然后登入一個(gè)終端,我們輸入“python”進(jìn)入python環(huán)境。

我們采用一邊實(shí)驗(yàn)一邊介紹MyCobot機(jī)械臂的API的使用方法:
(1)控制機(jī)械臂左右擺動(dòng)所使用的 API 為:MyCobot(port)
程序的開(kāi)頭首先要導(dǎo)入這些API:
from pymycobot.mycobot import MyCobot
from pymycobot.genre import Angle
from pymycobot import PI_PORT, PI_BAUD # 當(dāng)使用樹(shù)莓派版本的mycobot時(shí),可以引用這兩個(gè)變量進(jìn)行MyCobot初始化
import time
(2)get_angles()
函數(shù)功能:獲得機(jī)械臂六個(gè)關(guān)節(jié)點(diǎn)的角度。
返回值:返回值的類型是 list,共有六個(gè)元素?cái)?shù)據(jù),分別對(duì)應(yīng)關(guān)節(jié) 1~6。
當(dāng)機(jī)械臂運(yùn)行到某一個(gè)位置時(shí)我們可以通過(guò)print指令打印出當(dāng)前機(jī)械臂的各關(guān)節(jié)角度數(shù)據(jù)。
如:
mc = MyCobot(PI_PORT, PI_BAUD)
angle_datas = mc.get_angles()
print(angle_datas)
運(yùn)行后給出的結(jié)果:

注意我們這里先記下這個(gè)機(jī)械臂的值: [6.06, -144.05, 154.77, -148.35, -75.84, -99.4],這個(gè)值的機(jī)械臂是個(gè)什么樣子呢,我拍個(gè)照片給大家看。

(3)send_angle(id, degree, speed)
id:指的是哪一節(jié)機(jī)械臂,如果不指定id,那么就是指你要給出6節(jié)機(jī)械臂的運(yùn)動(dòng)角度。
degree:指的是關(guān)節(jié)的角度,取值范圍-180~180
speed:指關(guān)節(jié)到達(dá)指定位置時(shí)的速度,取值范圍0~100,值越大速度越快。
我們傳遞個(gè)數(shù)值給機(jī)械臂,當(dāng)然先傳0,就是0角度的狀態(tài)。
mc.send_angles([0, 0, 0, 0, 0, 0], 50)
機(jī)械臂變成了這樣子:

接下來(lái)讓我們測(cè)試每一個(gè)關(guān)節(jié)是怎么運(yùn)動(dòng)的和運(yùn)動(dòng)的方向:
mc.send_angle(Angle.J1.value, 90, 50) #第一節(jié)轉(zhuǎn)90度,速度50
mc.send_angle(Angle.J2.value, 30, 50) #第二節(jié)轉(zhuǎn)30度,速度50
mc.send_angle(Angle.J3.value, 30, 50) #第三節(jié)轉(zhuǎn)30度,速度50
mc.send_angle(Angle.J4.value, 30, 50) #第四節(jié)轉(zhuǎn)30度,速度50
mc.send_angle(Angle.J5.value, 30, 50) #第五節(jié)轉(zhuǎn)30度,速度50
mc.send_angle(Angle.J6.value, 30, 50) #第六節(jié)轉(zhuǎn)30度,速度50
然后是這個(gè)樣子:

所有的運(yùn)動(dòng)均符合右手定律。有興趣的小伙伴可以試一下-90度,機(jī)械臂是如何運(yùn)動(dòng)。
(4)release_all_servos()
函數(shù)功能:放松機(jī)械臂,讓其可以隨意手動(dòng)擺動(dòng)。注意執(zhí)行這個(gè)指令的時(shí)侯機(jī)械臂會(huì)因重力落下,要注意防止砸到其他的東西。
mc.release_all_servos()
然后讓我們?cè)侔褭C(jī)械臂運(yùn)動(dòng)到剛開(kāi)始的狀態(tài),這就要用到我們當(dāng)時(shí)的那個(gè)值: [6.06, -144.05, 154.77, -148.35, -75.84, -99.4],好的讓我們執(zhí)行:
mc.send_angles([6.06, -144.05, 154.77, -148.35, -75.84, -99.4],50)
輸入指令請(qǐng)注意不要用全角字符,一定要把鍵盤(pán)切換成半角字符運(yùn)行。

這樣機(jī)械臂又回到了初始時(shí)的狀態(tài)。
(5)寫(xiě)成可執(zhí)行文件。
假如我們寫(xiě)成一段連續(xù)的可執(zhí)行文件又是怎么的呢?參考說(shuō)明書(shū)中的代碼,看下面機(jī)械臂搖擺程序:
#!/usr/bin/python3
#-*- coding: UTF-8 -*-
from pymycobot.mycobot import MyCobot
from pymycobot.genre import Angle
from pymycobot import PI_PORT, PI_BAUD # 當(dāng)使用樹(shù)莓派版本的mycobot時(shí),可以引用這兩個(gè)變量進(jìn)行MyCobot初始化
import time
mc = MyCobot(PI_PORT, PI_BAUD)
# 獲得當(dāng)前位置的坐標(biāo)
angle_datas = mc.get_angles()
print(angle_datas)
# 用數(shù)列傳遞傳遞坐標(biāo)參數(shù),讓機(jī)械臂移動(dòng)到指定位置
mc.send_angles([0, 0, 0, 0, 0, 0], 50)
print(mc.is_paused())
# 設(shè)置等待時(shí)間,確保機(jī)械臂已經(jīng)到達(dá)指定位置
# while not mc.is_paused():
time.sleep(2.5)
# 讓關(guān)節(jié)1移動(dòng)到90這個(gè)位置
mc.send_angle(Angle.J1.value, 90, 50)
# 設(shè)置等待時(shí)間,確保機(jī)械臂已經(jīng)到達(dá)指定位置
time.sleep(2)
# 設(shè)置循環(huán)次數(shù)
num = 5
# 讓機(jī)械臂左右搖擺
while num > 0:
# 讓關(guān)節(jié)2移動(dòng)到50這個(gè)位置
mc.send_angle(Angle.J2.value, 50, 50)
# 設(shè)置等待時(shí)間,確保機(jī)械臂已經(jīng)到達(dá)指定位置
time.sleep(1.5)
# 讓關(guān)節(jié)2移動(dòng)到-50這個(gè)位置
mc.send_angle(Angle.J2.value, -50, 50)
# 設(shè)置等待時(shí)間,確保機(jī)械臂已經(jīng)到達(dá)指定位置
time.sleep(1.5)
num -= 1
# 讓機(jī)械臂縮起來(lái)。你可以手動(dòng)擺動(dòng)機(jī)械臂,然后使用get_angles()函數(shù)獲得坐標(biāo)數(shù)列,
# 通過(guò)該函數(shù)讓機(jī)械臂到達(dá)你所想的位置。
mc.send_angles([88.68, -138.51, 155.65, -128.05, -9.93, -15.29], 50)
# 設(shè)置等待時(shí)間,確保機(jī)械臂已經(jīng)到達(dá)指定位置
time.sleep(2.5)
# 讓機(jī)械臂放松,可以手動(dòng)擺動(dòng)機(jī)械臂
mc.release_all_servos()
注意:程序前面要加上:
#!/usr/bin/python3
#-*- coding: UTF-8 -*-
讓我們把這個(gè)文件保存成,3.py
運(yùn)行這段代碼:
直接在終端窗口執(zhí)行:
python 3.py
這樣就可以連續(xù)執(zhí)行機(jī)械臂的運(yùn)動(dòng)了。
審核編輯 黃昊宇
-
機(jī)器人
+關(guān)注
關(guān)注
213文章
31079瀏覽量
222215 -
機(jī)械臂
+關(guān)注
關(guān)注
14文章
596瀏覽量
26122
發(fā)布評(píng)論請(qǐng)先 登錄
扭矩之源:解析關(guān)節(jié)電機(jī)線圈如何實(shí)現(xiàn)機(jī)器人的柔順運(yùn)動(dòng)
從“能動(dòng)”到“好用”,人形機(jī)器人關(guān)節(jié)模組決定性能,也決定未來(lái)
復(fù)合機(jī)器人對(duì)比傳統(tǒng)AGV和機(jī)械臂的優(yōu)勢(shì)何在?
匯川技術(shù)聯(lián)合發(fā)布全球首款220kg礦用防爆六關(guān)節(jié)工業(yè)機(jī)械臂
3C 電子 / 汽車(chē) / 物流與新零售:協(xié)作機(jī)械臂的三大行業(yè)落地范式
傳統(tǒng)測(cè)試設(shè)備的局限與協(xié)作機(jī)械臂的破局
機(jī)器人機(jī)械臂效率提升的革命性解決方案:上海永銘電容器實(shí)踐
機(jī)器人關(guān)節(jié)模組:類型、設(shè)計(jì)、工作原理及應(yīng)用
協(xié)作機(jī)械臂產(chǎn)品介紹
GZCOM-NET:為機(jī)械臂測(cè)試帶來(lái)高效無(wú)線解決方案!
大象機(jī)器人攜手進(jìn)迭時(shí)空推出 RISC-V 全棧開(kāi)源六軸機(jī)械臂產(chǎn)品
運(yùn)動(dòng)控制模塊:Delta機(jī)械手柔性上下料開(kāi)發(fā)零門(mén)檻!
大象機(jī)器人攜手進(jìn)迭時(shí)空推出 RISC-V 全棧開(kāi)源六軸機(jī)械臂產(chǎn)品
家里亂成“垃圾場(chǎng)”,樹(shù)莓派也能一鍵搞定家務(wù)了?
Mycobot機(jī)械臂各關(guān)節(jié)的運(yùn)動(dòng)(三)
評(píng)論