官网下载地址:[OFFICIAL]Dobot Magician Download Center | DOBOT
在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,否则程序会报告错误。
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")
在调用与运动相关的接口(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)