基于虚拟机使用 ROS 驱动 Universal Robot (UR3) 小结

前言

本文较为概括,将会不断扩充修改,根据大家的疑问继续完善
实验室拥有一台UR3机器人,研究项目需要对其进行开发。对于一个纯粹的机械专业工科人,从零开始摸索了很久,终于将其运动起来,在此做个小结,以便日后查阅。有不足之处请各位指点。

1. 环境

PC系统:Windows10
虚拟机使用软件:VMware Workstation 15 player
ROS环境:Melodic + Ubuntu 18.04
URSim版本:V3.13.1 官方虚拟机版本(下载地址 请依据个人情况下载)

2. 安装最新版 UR 驱动

基于 ROS Melodic 环境下安装 UR 机器人的驱动:
https://github.com/UniversalRobots/Universal_Robots_ROS_Driver
以上页面详尽描述了安装步骤。按照说明进行配置及安装即可。日后可能(闲着没事)进行翻译搬运。

ur_modern_driver 虽曾经广泛使用,然而目前已经停止更新,推荐大家及时升级至最新版本的 ur_robot_driver 。

请注意,安装本驱动无需安装 ROS_Industrial 的 Universal Robot 有关 package,也就是这个页面。本驱动的安装过程中已经自带,如果已经安装,请删除相关文件。

3. ROS端配置

由于最新的 ur_robot_driver 驱动已经将原驱动的 /follow_joint_trajectory 更改为 /scaled_pos_traj_controller/follow_joint_trajectory ,因此需要对个别文件进行修改才能正常使用。

修改moveit配置文件

以UR3为例,其他机型只需修改对应前缀即可:
找到该路径中的文件

catkin_ws/src/fmauch_universal_robot/ur3_moveit_config/config/controllers.yaml

将以下内容

action_ns: follow_joint_trajectory

修改为

action_ns: /scaled_pos_traj_controller/follow_joint_trajectory

修改默认测试脚本(可选)

如不修改,在运行脚本后将始终处于 wating 状态,即找不到有关的控制服务
找到该路径中的文件

catkin_ws/src/fmauch_universal_robot/ur_driver/test_move.py

将第94行内容从

client = actionlib.SimpleActionClient('follow_joint_trajectory', FollowJointTrajectoryAction)

修改为

client = actionlib.SimpleActionClient('scaled_pos_traj_controller/follow_joint_trajectory', FollowJointTrajectoryAction)

4. 虚拟机网络配置

使用 ROS 和 URSIM 各自的终端,输入ifconfig查看各自虚拟机的ip地址,测试能否ping通。有关教程网上很多,不再赘述。
如果未达到预期效果,请在虚拟机的网络设置中,把联网模式改为桥接模式。

总结

总体而言,相关教程在github页面已经说明得非常仔细,此处需要注意的就是 follow_joint_trajectory 命名的更改,至少在本人这里使用默认的文件设置是没有效果的。
在一切设置正常的情况下,运行测试脚本后,另一个虚拟机中的URSIM机械臂将开始移动,这意味着调试成功,运行指令为

rosrun ur_driver test_move.py

你可能感兴趣的:(ROS)