ros 环境搭建-tested on a UR5 robotic arm running firmware version 3.0
原理
ros-industrial通过网线与UR机器人的控制器链接,通过网线向ur控制器上传URscript脚本程序,运行脚本程序并时刻接收ros-industrial的消息,脚本程序将ros消息转为机器执行命令。
安装ros-industrial(注意更改kinetic为自己的ros版本)
http://wiki.ros.org/Industrial/Install
* Industrial core: `apt-get install ros-kinetic-industrial-core`
* ABB stack: `apt-get install ros-kinetic-abb`
* Universal robot stack: `apt-get install ros-kinetic-universal-robot`
* ros_canopen stack: `apt-get install ros-kinetic-ros-canopen`
安装源码编译UR的新版驱动包(适用于UR version 3.0)
建议安装新版本的驱动:ur_modern_driver(原作者的版本目前在ros-kinetic上编译不了,可以下载branch上的cleanup_kinetic_manifest)
https://github.com/ros-industrial/ur_modern_driver/tree/cleanup_kinetic_manifest
安装UR机器人描述文件
描述文件用于记录机器人的模型参数
sudo apt install ros-kinetic-ur-description
安装Moveit!:一个规划控制包
sudo apt-get install ros-kinetic-moveit
配置机器人与PC的网络并启动驱动
- 用示教器设置机器人的网络,一般情况下,选择自动分配IP即可(DHCP),设置好后,重启机器与PC,用PING命令测试通讯:
ping IP_OF_THE_ROBOT
- 与UR v3.x建立链接,IP_OF_THE_ROBOT换成机器人的IP:
roslaunch ur_modern_driver ur5_bringup.launch robot_ip:=IP_OF_THE_ROBOT [reverse_port:=REVERSE_PORT]
- 测试下是否可以控制机器人(时刻把手放在示教器的大红色按钮上,以防意外):
rosrun ur_modern_driver test_move.py
启动驱动后,使用Moveit!来控制真实机器人
为了更好的求解规划路径,一般将机器人的关节运动范围限制于[-pi,pi]:
先启动ur驱动:
roslaunch ur_modern_driver ur5_bringup.launch limited:=true robot_ip:=IP_OF_THE_ROBOT
roslaunch ur5_moveit_config ur5_moveit_planning_execution.launch limited:=true
roslaunch ur5_moveit_config moveit_rviz.launch config:=true
(规划会一直失败,可能因对关节运动范围进行了限制,可以检查试教器查看机器人关节状态)
在Gazebo仿真环境下,模拟机器人运动
roslaunch ur_gazebo ur5.launch limited:=true
roslaunch ur5_moveit_config ur5_moveit_planning_execution.launch sim:=true limited:=true
roslaunch ur5_moveit_config moveit_rviz.launch config:=true