Linux系统下, 如何使用Robot OS机器人操作系统(ROS)控制桌面级机械手Dobot Magician呢?本文即解决此问题的教程Demo。
本Demo不依赖Serial,自动适配x86和x64;使用的是Ubuntu16.04 X64 系统,ROS版本为ROS Kinetic Kame。在开始之前,首先要下载一个ROS DEMO, 请前往下载中心板块选择“Dobot magician之ROS Demo”即可轻松下载DEMO程序。
对于ROS的中文安装详细教程,请参考博文地址如下:http://www.cnblogs.com/liu-fa/p/5779206.html,ROS安装完成之后,就到了如何使用这个系统控制咱们这款桌面机械手DOBOT魔术师了,详细步骤见下面的教程。
ROS安装完成后,在Linux系统下将dobot_ws解压到~目录下 (注:必须在Linux下解压,否则会编译出错)
- 打开终端,进入dobot_ws目录下,输入catkin_make
- 编译完成:
- source一下setup.bash文件
- 先开启roscore,打开另一个终端,运行命令roscore
- 成功后可以看到:
- 然后使用rosrun命令,运行dobot包中的DobotServer。
- 注意:此处传入Dobot实际的端口号,我这里使用虚拟机,对应的是ttyUSB0
- 成功运行如下所示:
- 如果失败,则会提示Dobot未找到或被占用
- 如果是权限问题,可以参考下面的博文及链接解决:《Linux下非root用户获得/dev/ttyUSB0的读写权限》
- http://blog.csdn.net/maoyongfan3/article/details/44623909
- dobot service成功运行后,再打开另外一个终端,进入dobot_ws.
- 同时source一下setup.bash文件
- 使用rosrun命令运行dobot包中的DobotClient_JOG,
- 然后就可以使用键盘控制Dobot:W前、 S后、 A左、 D右 、U上、 I下、 J旋转、 I旋转
- 其他按键:停止
- 以Ctrl + Ctrl停止,测试另外一个Client:
- rosrun dobot DobotClient_PTP,
- 这个例子测试了PTP及队列命令控制等相关命令的使用(Dobot会自动地在x = 200和x = 250之间来回运动)。
- 其他说明:
- 1.目录结构
- dobot_ws
- -- src
- -- dobot
- -- include:空
- -- msg:空
- -- src
- -- DobotServer.cpp
- -- DobotClient_JOG.cpp
- -- DobotClient_PTP.cpp
- -- DobotDll
- -- srv
- -- CMakeLists.txt
- -- package.xml
- - CMakeLists.txt
- 理论上,可以不采用service的方式,直接参考DobotServer.cpp中对于DobotDll动态库的调用也是可以做应用的。
- 2.如果按WASD无任何反应,可能是键盘的键值与demo的不一致,可以到src文件里面更改相应的键值:
- 另外,如果出现以下错误,可能是因为连接的 USB 端口不对,请确认是否为dobot的端口: