本文较为概括,将会不断扩充修改,根据大家的疑问继续完善 实验室拥有一台UR3机器人,研究项目需要对其进行开发。对于一个纯粹的机械专业工科人,从零开始摸索了很久,终于将其运动起来,在此做个小结,以便日后查阅。有不足之处请各位指点。
PC系统:Windows10 虚拟机使用软件:VMware Workstation 15 player ROS环境:Melodic + Ubuntu 18.04 URSim版本:V3.13.1 官方虚拟机版本(下载地址 请依据个人情况下载)
基于 ROS Melodic 环境下安装 UR 机器人的驱动: https://github.com/UniversalRobots/Universal_Robots_ROS_Driver 以上页面详尽描述了安装步骤。按照说明进行配置及安装即可。日后可能(闲着没事)进行翻译搬运。
ur_modern_driver 虽曾经广泛使用,然而目前已经停止更新,推荐大家及时升级至最新版本的 ur_robot_driver 。
请注意,安装本驱动无需安装 ROS_Industrial 的 Universal Robot 有关 package,也就是这个页面。本驱动的安装过程中已经自带,如果已经安装,请删除相关文件。
由于最新的 ur_robot_driver 驱动已经将原驱动的 /follow_joint_trajectory 更改为 /scaled_pos_traj_controller/follow_joint_trajectory ,因此需要对个别文件进行修改才能正常使用。
以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)使用 ROS 和 URSIM 各自的终端,输入ifconfig查看各自虚拟机的ip地址,测试能否ping通。有关教程网上很多,不再赘述。 如果未达到预期效果,请在虚拟机的网络设置中,把联网模式改为桥接模式。
总体而言,相关教程在github页面已经说明得非常仔细,此处需要注意的就是 follow_joint_trajectory 命名的更改,至少在本人这里使用默认的文件设置是没有效果的。 在一切设置正常的情况下,运行测试脚本后,另一个虚拟机中的URSIM机械臂将开始移动,这意味着调试成功,运行指令为
rosrun ur_driver test_move.py