ROS-Melodic-Moveit 实时控制UR5机械臂
台式电脑端系统:Ubuntu 18.04
ros版本:Melodic及以上版本
polyscope版本:3.14
机器人:UR5/CB3
Melodic版ROS需按源码编译安装Universal_robot的软件包来控制UR5机械臂
1)创建工作空间
mkdir -p ~/catkin_UR5/src
cd ~/catkin_UR5/src
catkin_init_workspace
cd ~/catkin_UR5
catkin_make
source devel/setup.bash
2)进入定义好的catkin_UR5工作空间:
cd ~/catkin_UR5/src
3)下载 Ros 服务器中的 universal_robot.git 的数据包源码,并添加到 src 中
git clone -b melodic-devel https://github.com/ros-industrial/universal_robot.git
4)进入 catkin_UR 5工作空间
cd ~/catkin_UR5
5)安装插件
rosdep install --from-paths src --ignore-src --rosdistro melodic
6)进行编译
catkin_make
7)运行环境变量设置脚本文件
source devel/setup.bash
目前 UR 机器人的控制器软件版本已更新到 3.0 版本以上,早期的ur_driver驱动不再适合,因此需要用ur_modern_driver进行替换。
ur_modern_driver 的下载链接如下:
https://github.com/ros-industrial/ur_modern_driver
1)删除 catkin_UR5/src/universal_robot 这个目录下的 ur_driver 文件夹
cd ~/catkin_UR5/src/universal_robot
rm -rf ur_driver
2)将下载好的 ur_modern_driver .zip 复制到 catkin_UR5/src/universal_robot 这个目录下
(本文ur_modern_driver .zip 下载在电脑桌面)
cd /home/ur/Desketop
cp ur_modern_driver.zip ~/catkin_UR5/src/universal_robot
3)解压 ur_modern_driver.zip
sudo unzip ur_modern_driver.zip
4)修改ur_modern_driver文件夹中的ur_hardware_interface.cpp文件!!!
将所有“controller_it->hardware_interface”替换成“controller_it->type”
5)进入到 catkin_UR5目录下
cd ~/catkin_UR5
6)重新编译
catkin_make
1)设置ployscope的静态IP地址
首先用一根网线连接UR5机械臂控制箱底部和电脑主机。
下一步是确保正确配置您的计算机和机械臂间可以相互通信。
请注意,默认情况下,Universal Robot的网络功能处于禁用状态。
要启用网络连接,请使用UR的示教器导航至设置机器人->设置网络菜单(如下附件所示)。
注意,ip地址初始为0.0.0.0,我们需要更改设置,然后点击应用,会有提示网络以连接。
笔者的ployscope的ip地址设置如下:
2)设置电脑端IP
笔者连接校园网会出现通信失败的情况,建议拔出校园网线,主机仅连接UR5控制箱网线。
电脑连上网线后,可以点击右上方的系统设置,点击有线连接,打开电脑IP的设置。
注意电脑IP地址跟ployscope是不一样的,笔者这边机器人的IP地址是192.168.1.10,是为了使电脑跟它处于一个局域网下,仅将最后一个小数点后面的那个设置得不一样即可,我设置成了192.168.1.11。IPV4选项设置如下图所示,点击应用即可。启动UR5机器人。
3)检验电脑和UR5机械臂网络是否连接成功!
启动一个终端,并输入:
ifconfig
可查看ubuntu系统的IP地址(笔者系统IP地址为192.168.1.11)
再测试连接情况:(ip_of _The_Robot 为ployscope所设的IP地址,即192.168.1.10)
ping 192.168.1.10
出现:
64 bytes from 192.168.1.11: icmp_seq=1 ttl=64 time=0.029 ms
64 bytes from 192.168.1.11: icmp_seq=2 ttl=64 time=0.039 ms
64 bytes from 192.168.1.11: icmp_seq=3 ttl=64 time=0.038 ms
…
代表电脑和UR5机械臂网络是否连接成功!下一步可进行ROS驱动UR5机械臂测试。
(1)第一个终端打开并输入:
roscore
(2)第二个终端打开,进入catkin_UR5文件夹目录:
cd ~/catkin_UR5
(3)在此终端下,启动机器人驱动程序:(如果您另设ployscope的IP,记得修改true robot_ip:=192.168.1.10 !!)
roslaunch ur_modern_driver ur5_bringup.launch limited:=true robot_ip:=192.168.1.10 use_lowbandwidth_trajectory_follower:=true
(4)第三个终端打开,进入catkin_UR5文件夹目录,启动 moveit :
roslaunch ur5_moveit_config ur5_moveit_planning_execution.launch limited:=true
(5)第四个终端打开,进入catkin_UR5文件夹目录,启动 rviz:
roslaunch ur5_moveit_config moveit_rviz.launch config:=true
接下来就可以在 rviz 中进行运动规划,并控制真实机器人按照规划的路径运动了。
下图为机械臂初始状态和最终运动实际UR5机械臂姿态。
第四步时遇见的困难:
错误描述:
在rviz中进行运动规划时,可以规划成功,但机器人执行会失败。
开启rviz的终端显示:
开启moveit的终端显示:
解决方法:
将$catkin_UR5/src/ur5_moveit_config/config/controllers.yaml文件中的action_ns字段的值修改为follow_joint_trajectory,问题解决。修改后内容如下。重新执行四、使用Moveit控制UR5机械臂操作即可成功!