程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

Dobot機械臂的Python Demo

編輯:Python

官網下載地址:[OFFICIAL]Dobot Magician Download Center | DOBOT

0.Python Demo流程:

一、下載安裝python 3.7.5 64-bit 二、將Dobot動態鏈接庫放到python的運行目錄或者將Dobot動態鏈接庫所在目錄添 加到系統Path環境變量(對應電腦系統64位或者32位) 三、連接機械臂Magician,並裝上吸盤套件 四、選擇Dobot Demo文件夾,並打開Dobotcontrol.py文件​​​​​​​。 五、點擊Run下面的Run Module F5, 此時程序會運行,如果出現“Connect status:DobotConnect_Occupied”,說明程序連接正常運行成功。(或者第四步用Pycharm打開文件,點擊運行)

1.項目說明

在Python演示中有兩個文件。

(1)DobotControl.py:Dobot接口二次封裝

(2)DobotDllType.py:具體實現文件

在運行DobotControl.py之前,請將Dobot DLLS目錄添加到python的運行目錄中,或者添加到系統環境變量中。

不同版本的Python需要對應Demo的對應版本。例如,64位的Python應該使用64位的Python demo,而32位的Python應該使用32位的Python demo,否則程序會報告錯誤。

2.Python API 

DobotDllType.py封裝了Dobot DLL的C類型接口,這是Dobot的Python接口。加載DLL的示例如下所示。(請確保將Dobot DLL目錄添加到系統環境變量中,以確保正確加載DLL。)

def load():
if platform.system() == "Windows":
print("您用的dll是64位,為了順利運行,請保證您的python環境也是64位")
print("python環境是:",platform.architecture())
return CDLL("./DobotDll.dll", RTLD_GLOBAL)
elif platform.system() == "Darwin":
return CDLL("./libDobotDll.dylib", RTLD_GLOBAL)
elif platform.system() == "Linux":
return cdll.loadLibrary("libDobotDll.so")

3.代碼說明

在調用與運動相關的接口(PTP、JOG等)時,本DEMO采用隊列模式。

(1)加載DLL並獲取Store對象(API)。當調用Python API時,將使用該對象。

api = dType.load()

(2)連接到Dobot魔術師並打印連接信息。連接成功後,將處理相關代碼。

state = dType.ConnectDobot(api, "", 115200)[0]
print("Connect status:",CON_STR[state])
if (state == dType.DobotConnect.DobotConnect_NoError):
#Dobot操作代碼
dType.DisconnectDobot(api)

(3)控制隊列:

dType.SetQueuedCmdClear(api) #清空隊列
dType.SetQueuedCmdStartExec(api) #開始隊列
dType.SetQueuedCmdStopExec(api) #停止隊列

(4)設置運動參數

dType.SetHOMEParams(api, 200, 200, 200, 200, isQueued = 1)
dType.SetPTPJointParams(api, 200, 200, 200, 200, 200, 200, 200, 200, isQueued = 1)
dType.SetPTPCommonParams(api, 100, 100, isQueued = 1)

(5)將PTP命令下載到隊列中,並獲取最後一個命令的索引。

for i in range(0, 5):
if i % 2 == 0:
offset = 50
else:
offset = -50
lastIndex = dType.SetPTPCmd(api, dType.PTPMode.PTPMOVLXYZMode, 200 + offset, offset, offset, offset, isQueued = 1)[0]

(6)等待最後一個運動命令完成。

#如果還未完成指令隊列則等待
while lastIndex > dType.GetQueuedCmdCurrentIndex(api)[0]:
dType.dSleep(100)


  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved