1、下载功能包
1.1 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
1.2 安装完,仿真测试一下:
#启动ur5的gazebo仿真环境
roslaunch ur_gazebo ur5_bringup.launch
#启动moveit规划执行文件
roslaunch ur5_moveit_config ur5_moveit_planning_execution.launch sim:=true
#启动rviz
roslaunch ur5_moveit_config moveit_rviz.launch config:=true2、和UR5机械臂通讯,实时控制
2.1 在电脑端设置一下IP
查看一下电脑的网络信息

将电脑端的IP地址临时更改为192.168.56.1 掩码为255.255.255.0
sudo ifconfig enp1s0 192.168.56.1 netmask 255.255.255.0可以再次 ifconfig 查看一下是否改成功
2.2 在示教器上设置IP,保持和电脑端处于同一网段

按图中所示更改,在电脑端查看一下是否能ping通UR5

如图所示说明能ping通
2.3 在UR5上安装urcap
一般示教器上已经安装好了,如果你的没装得自己装一下。

2.4 为机器人编程
新建一个空程序---安装设置---External Control,将Host IP、Host name改为和电脑端一致,Host name就是你自己ubuntu的用户名。Custom port 为50002

返回程序窗口,点击结构选择URCap中的External Control

可以看到现在程序已经显示为Control by “用户名”,注意先不要执行第四步
3、通过 ROS控制UR5
3.1 使用rqt进行单关节控制
3.1.1 安装相应工具
sudo apt-get install ros-melodic-rqt-joint-trajectory-controller ros-melodic-control-msgs ros-melodic-controller-manager-msgs ros-melodic-rospy ros-melodic-rqt-gui ros-melodic-rqt-gui-py ros-melodic-trajectory-msgs
3.1.2 启动ur5_bringup.launch,和UR5建立连接
roslaunch ur_robot_driver ur5_bringup.launch limited:=true robot_ip:=192.168.56.101
3.1.3 启动中2.4中的第四步,即在示教器上启动我们编写的程序
启动后检查一下3.1.2终端里的信息,如果通讯成功会出现如下消息

3.1.4 启动rqt
rosrun rqt_joint_trajectory_controller rqt_joint_trajectory_controller启动后会出现如下窗口,此时就可以根据各滑动条来控制机械臂各关节的运动了

3.2 使用rviz进行控制
3.2.1 运行ur5_bringup.launch,和UR5建立连接
roslaunch ur_robot_driver ur5_bringup.launch limited:=true robot_ip:=192.168.56.101
3.2.2 运行中2.4中的第四步,即在示教器上运行我们编写的程序
注意:每次运行完bringup后都要重新在示教器上运行我们编写的程序,并且检查一下3.2.1终端里的信息,如果通讯成功会出现如下消息

3.2.3 运行moveit
roslaunch ur5_moveit_config ur5_moveit_planning_execution.launch limited:=true
检查一下运行过程中有没有报红色字体错误,如果顺利会出现如下

3.2.4 运行rviz
roslaunch ur5_moveit_config moveit_rviz.launch config:=true
打开rviz后如果什么都没有一片空白,不要慌

将Fixed Frame改为base, 在Add中添加MotionPlanning,此时就会有机械臂模型了但还不能拖动,将Planning Group 选为manipulator,设置完毕。

现在你就可以通过模型中的箭头去拖动机械臂的运动,拖动后首先点击Plan检查一下此次运动的路径是否可行,如果可行则点击Execute执行运动,此时你的机械臂就会按着你规划的路劲运动。
问题一:如果在3.2.3运行moveit时出现错误Action client not connected: scaled_pos_joint_traj_controller//scaled_pos_joint_traj_controller/follow_joint_trajectory

这是因为控制器的名称出错导致连接不上,
在路径~/catkin_ws/src/fmauch_universal_robot/ur5_moveit_config/config 下找到ros_controllers.yaml 将name改为scaled_pos_joint_traj_controller

修改后返回catkin_ws路径下catkin_make一下问题即可解决!