ROS和UR5机械臂通讯

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:=true

2、和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.yamlname改为scaled_pos_joint_traj_controller

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


版权声明:本文为santututu39原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。