1、ROKAE机器人
ROKAE官方:http://www.rokae.com/

我们实验室用的就是上面这一款,它的负载能力为4公斤,工作范围为596毫米。官网上有它较详细的资料,这里不再赘述。
2、ROS-I
ROS-I简介:http://www.guyuehome.com/484
ROS-I官方:https://rosindustrial.org/,http://wiki.ros.org/Industrial
ROS-I教程:http://wiki.ros.org/Industrial/Tutorials
在ROS-Kinetic上安装ROS-I:$ sudo apt-get install ros-kinetic-industrial*
最重要的,我们先要了解ROS-I的基本架构:

- GUI: 上层UI分为两个部分:一个部分是ROS中现在已有的UI工具(ROS GUI);另外一个部分是专门针对工业机器人通用的UI工具(ROS-I GUI),不过是将来才会实现。
- ROS Layer: ROS基础框架,提供核心通讯机制。
- MoveIt! Layer: 为工业机器人提供规划、运动学等核心功能的解决方案。
- ROS-I Application Layer: 处理工业生产的具体应用,也是针对将来的规划。
- ROS-I Interface Layer: 接口层,包括工业机器人的客户端,可以通过 simple message协议与机器人的控制器通信。
- ROS-I Simple Message Layer: 通信层,定义了通信的协议,打包和解析通信数据。
- ROS-I Controller Layer: 机器人厂商开发的工业机器人控制器。
- ROS-I Configuration: urdf、paramets、ROS-I conventions。
从上边的架构我们可以看到,ROS-I在复用已有ROS框架、功能的基础上,针对工业领域进行了针对性的拓展,而且可以通用于不同厂家的机器人控制器。
3、MoveIt!
MoveIt! 简介:https://www.ncnynl.com/archives/201610/1028.html
MoveIt! 官方:http://moveit.ros.org/,http://wiki.ros.org/moveit
在Kinetic上安装MoveIt!:$ sudo apt-get install ros-kinetic-moveit*
同样,我们还是要先了解它的基本架构:

参考网址:http://moveit.ros.org/documentation/concepts/
4、创建ROS工作区
首先创建一个ROS工作区,打开一个新的终端,运行以下命令:
$ mkdir -p ~/rokae/src
$ cd ~/rokae/src
$ catkin_init_workspace
$ cd ..
$ catkin_make
$ echo "source ~/rokae/devel/setup.bash" >> ~/.bashrc
$ source ~/.bashrc
5、编译ros_client_program
创建完我们的ROS工作区,将ROKAE的ROS客户端代码拷贝到~/rokae/src文件夹下,没有解压的先解压,然后在终端运行以下命令:
$ cd ~/rokae
$ catkin_make
如果你的ROS-I和MoveIt! 都配置好了,这一步应该不会有什么问题。
6、启动Rviz进行Motion Planning
MoveIt! 提供三种可供调用的用户接口:
- C++, 利用move_group_interface包可以方便使用move_group
- Python,利用moveit_commander包
- GUI(界面),利用Motion Planning 的 Rviz插件
这里先利用Motion Planning 的 Rviz插件进行运动规划,在终端运行命令:
$ roslaunch XB4s_moveit_config demo.launch
出现上图所示界面,我们就可以用鼠标拖动机械臂末端的六个自由度来改变它的末端位姿。当我们将机械臂末端拖到另一个位姿后,点击左下方Planning标签页中的Plan and Execute按钮,使机械臂由当前位姿运动到目标位姿,这个运动过程由MoveIt! 自动完成路径规划。
7、通过Socket控制机械臂
未完待续。。。
附加连接
[1] ROS机器人描述 — URDF和XACRO
[2] 机器人仿真软件Gazebo介绍
[3] 如何利用ROS MoveIt快速搭建机器人运动规划平台?