Linux系统下, 如何使用Robot OS机器人操作系统(ROS)控制桌面级机械手Dobot Magician呢?
小女子班门弄斧了,将在此Demo中展示给大家,欢迎各位大神交流。本Demo不依赖Serial,自动适配x86和x64;使用的是Ubuntu16.04 X64 系统,ROS版本为ROS Kinetic Kame,在开始先要下载一个ROS DEMO, 请点击这里选择“Dobot magician之ROS Demo”。
对于ROS的安装,网上有详细的安装说明, 如果你英语不怎么好,看安装说明如看天书一般的话,不用担心有中文版,参考博文地址如下:http://www.cnblogs.com/liu-fa/p/5779206.html ,此博文详细介绍了ROS的安装流程:从版本的选择到安装完成、测试,每个步骤都非常详尽。
安装完了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的端口:
以上不喜勿喷,但是欢迎各位大哥广提建议。若需转载,请注明出处。