http://cn.dobot.cc/faqlist.html
若您使用的开发语言不在SDK支持的范围内, 或想要扩展到其他平台如手机端、PLC等其他控制系统来控制机械臂, 您可以通过提供的底层通信协议直接实现与机械臂的通信, 实现对机械臂底层的控制, 完成高级定制化应用功能的开发。
http://cn.dobot.cc/download-center/dobot-magician.html
Dobot机械臂二次开发Demo
⇒感觉能参考的资料很有限。
对于dobot以及串口通信,我还是个新手。
仅仅靠上面的文档,几乎无从入手。
1.仅仅用底层的串口通信来实现标贴所说的功能,感觉难度太大。
2.想通过编程语言调用API来实现。 但是下面页面的DobotDemoV2.0,不太明白如何使用。
http://cn.dobot.cc/download-center/dobot-magician.html
比如说DobotDemoForPython如何在MACbook上使用?
dll文件都是面向Windows的,没法在MACbook上运行吧?
precompiled目录下没有libDobotDll.dylib这个文件,有一个libDobotDll.1.0.0.dylib文件。
修改DobotDllType.py文件:
def load():
return cdll.DobotDll
def load():
if platform.system() == “Windows”:
return CDLL(“DobotDll.dll”, RTLD_GLOBAL)
elif platform.system() == “Darwin”:
return CDLL(“libDobotDll.1.0.0.dylib”, RTLD_GLOBAL)
出现以下的错误,google上查了很多,还是没能解决。
%python DobotControl.py
Traceback (most recent call last):
File “DobotControl.py”, line 4, in
api = dType.load()
File “/Users/outannexway/Downloads/dobot/DobotDemoV2.0-20170118/DobotDemoForPython/DobotDllType.py”, line 425, in load
return CDLL(“libDobotDll.1.0.0.dylib”, RTLD_GLOBAL)
File “/Users/outannexway/.pyenv/versions/3.4.3/lib/python3.4/ctypes/
init
.py”, line 351, in
init
self._handle = _dlopen(self._name, mode)
OSError: dlopen(libDobotDll.1.0.0.dylib, 10): Library not loaded:
@executable_path
/QtSerialPort.framework/Versions/5/QtSerialPort
Referenced from: /Users/outannexway/Downloads/dobot/DobotDemoV2.0-20170118/DobotDemoForPython/libDobotDll.1.0.0.dylib
Reason: image not found
%otool -L libDobotDll.1.0.0.dylib
libDobotDll.1.0.0.dylib:
libDobotDll.1.dylib (compatibility version 1.0.0, current version 1.0.0)
@executable_path
/QtSerialPort.framework/Versions/5/QtSerialPort (compatibility version 5.7.0, current version 5.7.0)
@executable_path
/QtCore.framework/Versions/5/QtCore (compatibility version 5.7.0, current version 5.7.0)
@executable_path
/DiskArbitration.framework/Versions/A/DiskArbitration (compatibility version 1.0.0, current version 1.0.0)
@executable_path
/IOKit.framework/Versions/A/IOKit (compatibility version 1.0.0, current version 275.0.0)
@executable_path
/QtNetwork.framework/Versions/5/QtNetwork (compatibility version 5.7.0, current version 5.7.0)
@executable_path
/libc++.1.dylib (compatibility version 1.0.0, current version 307.4.0)
@executable_path
/libSystem.B.dylib (compatibility version 1.0.0, current version 1238.0.0)
executable_path的部分,全部用install_name_tool的工具来修改路径。例如:
install_name_tool -change
@executable_path
/QtSerialPort.framework/Versions/5/QtSerialPort /Users/outannexway/Downloads/Dobot/DobotDemoV2.0-20170118/DobotDemoForPython/QtSerialPort.framework/Versions/5/QtSerialPort libDobotDll.1.0.0.dylib
修改之后:
%otool -L libDobotDll.1.0.0.dylib
libDobotDll.1.0.0.dylib:
libDobotDll.1.dylib (compatibility version 1.0.0, current version 1.0.0)
/Users/outannexway/Downloads/Dobot/DobotDemoV2.0-20170118/DobotDemoForPython/QtSerialPort.framework/Versions/5/QtSerialPort (compatibility version 5.7.0, current version 5.7.0)
/Users/outannexway/Downloads/Dobot/DobotDemoV2.0-20170118/DobotDemoForPython/QtCore.framework/Versions/5/QtCore (compatibility version 5.7.0, current version 5.7.0)
/Users/outannexway/Downloads/Dobot/DobotDemoV2.0-20170118/DobotDemoForPython/DiskArbitration.framework/Versions/A/DiskArbitration (compatibility version 1.0.0, current version 1.0.0)
/Users/outannexway/Downloads/Dobot/DobotDemoV2.0-20170118/DobotDemoForPython/IOKit.framework/Versions/A/IOKit (compatibility version 1.0.0, current version 275.0.0)
/Users/outannexway/Downloads/Dobot/DobotDemoV2.0-20170118/DobotDemoForPython/QtNetwork.framework/Versions/5/QtNetwork (compatibility version 5.7.0, current version 5.7.0)
/Users/outannexway/Downloads/Dobot/DobotDemoV2.0-20170118/DobotDemoForPython/libc++.1.dylib (compatibility version 1.0.0, current version 307.4.0)
/Users/outannexway/Downloads/Dobot/DobotDemoV2.0-20170118/DobotDemoForPython/libSystem.B.dylib (compatibility version 1.0.0, current version 1238.0.0)
%python DobotControl.py
CDobotConnector : QThread(0x7fc9b9e19ca0)
CDobotProtocol : QThread(0x7fc9b9f022a0)
CDobotCommunicator : QThread(0x7fc9b9c96fa0)
Connect status: Success
precompiled目录下的dll文件,编译的估计有问题。没法在Macbook的command line中执行。
这几天,我一口气问了好多问题。 估计论坛的管理员都厌烦我提问了:sweat_smile:
我人在日本东京, 3月份在东京国际会展中心有一个关于IoT的展览会。
我公司准备参展,参展的内容中就有一个用raspberry pi来控制dobot抓取饮料的环节。
所以需要对dobot进行二次开发。
我查了很多的机械臂,在uarm和dobot两者中,最终还是选择了贵公司的dobot.
主要是觉得dobot是开源的,相关的文档还算比较丰富。
但是实际用了之后,特别是二次开发,以现有的公开的资料而言,难度还真不小。
dobot一代和2代,好像完全不兼容,底层的通信协议都有很大不同,论坛上很多sample,
没有具体表明是一代用的还是二代用的代码。
直接在二代magician上执行,出了很多问题,饶了很多弯子。
另外magician的API开发文档,只有C语言版的?
我想用Python开发,仅仅看那个API文档, 觉得有点困难呀。
有没有Python开发的API相关文档?
3月份的展览会,全日本的很多公司都会参加。
我做的程序要是能正常运行的话,
弄不好可以提高dobot在日本的知名度,
说不定对贵公司的日本市场的开发也有好处呢。
要想实现我想做的东西,估计接下来还有不少难关需要越过。
还希望贵公司不吝赐教呀。
executable_path的部分,还遇到以下错误,请问有招吗?
Traceback (most recent call last):
File “DobotControl.py”, line 4, in
api = dType.load()
File “/Users/zkevin/Dobot/DobotDllType.py”, line 424, in load
return CDLL(“libDobotDll.1.0.0.dylib”, RTLD_GLOBAL)
File “/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/ctypes/
init
.py”, line 365, in
init
self._handle = _dlopen(self._name, mode)
OSError: dlopen(libDobotDll.1.0.0.dylib, 10):
Symbol not found: __DAmkdir
Referenced from: /System/Library/Frameworks/NetFS.framework/Versions/A/NetFS
Expected in: /Users/zkevin/Dobot/DiskArbitration.framework/Versions/A/DiskArbitration
in /System/Library/Frameworks/NetFS.framework/Versions/A/NetFS