ros版本:Melodic
机械臂:优傲机器人ur5,控制器cb3,软件版本13.多
任务描述:机器人操作系统ros通过网线连接ur5,实现二者通信,在ros下控制ur5运动,为后续基于ros开发机械臂视觉抓取/避障等应用打下基础。
目录
1 ros的设置
1.1 下载安装功能包
ur的驱动有ur_driver、ur_modern_driver、ur_robot_driver,但是现在官方建议采用ur_robot_driver,该驱动在git上的地址为:https://github.com/UniversalRobots/Universal_Robots_ROS_Driver.git
ur_robot_driver的下载及安装过程如下:
# create a catkin workspace
mkdir -p catkin_ws/src && cd catkin_ws
# clone the driver
git clone https://github.com/UniversalRobots/Universal_Robots_ROS_Driver.git src/Universal_Robots_ROS_Driver
# clone fork of the description. This is currently necessary, until the changes are merged upstream.
git clone -b calibration_devel https://github.com/fmauch/universal_robot.git src/fmauch_universal_robot
# install dependencies
sudo apt update -qq
rosdep update
rosdep install --from-paths src --ignore-src -y
# build the workspace. We need an isolated build because of the non-catkin library package.
catkin_make
# activate the workspace (ie: source it)
source devel/setup.bash
最后一条指令最好写进.bashrc文件中。
安装完,仿真测试一下:
#启动ur5的gazebo仿真环境
roslaunch ur_gazebo ur5.launch
#启动moveit规划执行文件
roslaunch ur5_moveit_config ur5_moveit_planning_execution.launch sim:=true
#启动rviz
roslaunch ur5_moveit_config moveit_rviz.launch config:=true给ur5设定一个目标位姿,按plan可以规划路径,按execute可以使ur5运动,在gazebo上也可以看到相同的运动效果。
参考链接:http://wiki.ros.org/ur_robot_driver
https://github.com/UniversalRobots/Universal_Robots_ROS_Driver.git
1.2 修改控制器参数
ur_robot_driver安装完成后,默认的控制器名字为空的,所以需要进行修改,参照下图修改控制器名字为:scaled_pos_joint_traj_controller

1.3 设置IP
设置ros所在的设备端IP,参照下图:

2 ur5机器人端的设置
2.1 在ur5上安装urcap
要在ros上使用ur_robot_driver控制真实的ur5运动,需要在ur5机器人上安装externalcontrol-1.0.urcap,它类似一个插件,接受ros端的消息再控制ur5运动。该urcap位于Universal_Robots_ROS_Driver/ur_robot_driver的resources文件夹内。要安装此URCap,要求PolyScope的版本不得低于3.7。
1、externalcontrol-1.0.urcap拷贝到U盘中;
2、U盘插入示教器中;
3、在ployscope的设置机器人中,点开URCap,找到externalcontrol-1.0.urcap,选中,然后点击重启。

2.2 编程序
安装完urcap,需要在“安装设置”中设置External Control的参数,如下图所示,hostip和hostname都是ros端设备的IP和name,端口号:50002.

之后新建一个程序,程序中插入该urcap,当需要与ros连接时,需要运行该程序。

2.3 网络设置
ur5的ip需要与ros端设备处于同一网段,参照下图。

3 调试
3.1 启动ur5
使用网线连接ur5和ros端设备,运行上述编写的ur程序。
3.2 启动ros相应的功能包
3.2.1 单关节控制
安装rqt_joint_trajectory_controller packages。
# 启动机器人驱动程序,ip需要根据机器人ip调整
roslaunch ur_robot_driver ur5_bringup.launch robot_ip:=192.168.56.101
# 启动 rqt_joint_trajectory_controller 节点
rosrun rqt_joint_trajectory_controller rqt_joint_trajectory_controller
3.2.3 使用rviz控制
# 启动ur5驱动
roslaunch ur_robot_driver ur5_bringup.launch limited:=true robot_ip:=192.168.56.101
# 启动moveit
roslaunch ur5_moveit_config ur5_moveit_planning_execution.launch limited:=true
# 启动rviz
roslaunch ur5_moveit_config moveit_rviz.launch config:=true在rviz中给ur5一个目标位姿,先plan看一下能否规划成功、是否碰撞,然后execute执行,观察真实ur5的运动。这个过程一定要注意安全,手放在急停上,时刻准备按下急停。