ROS - 使用UR机械臂最新的 ur_robot_driver

Posted bug404

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ROS - 使用UR机械臂最新的 ur_robot_driver相关的知识,希望对你有一定的参考价值。


使用UR机械臂最新的 ur_robot_driver


ur_robot_driver适用于polyscope >= 3.7 版本的ur机械臂和CB>=5的ur-e机械臂。笔者机器版本为3.12。


目前ur臂的驱动有三个:ur_driver, ur_modern_driver, ur_robot_driver。


ur_driver和ur_modern_driver已经被官方弃用,ur_driver适用于CB1和CB2(不是很清楚),ur_modern_driver适用于CB2、CB3(具体到哪个子版本不是很清楚,我在CB3.12上是不适用的,国外网友反应CB3.9.1还是适用的,但是3.10不适用,可能就是CB3.10一下吧)。


来看一下ur_modern_driver和ur_robot_driver的对比:

ROS

具体的驱动的详细介绍请参考:

​universal_robot_ros_wiki​​​​ur_robot_driver​

​ur_robot_driver_doc​

下面我们将会使用ROS和ur_robot_driver来驱动真机UR臂。

一、下载ros package

source /opt/ros/$ROS_DISTRO/setup.bash
mkdir -p ur_ws/src && cd ur_ws
git clone https://github.com/UniversalRobots/Universal_Robots_ROS_Driver.git src/Universal_Robots_ROS_Driver
git clone -b calibration_devel https://github.com/fmauch/universal_robot.git src/fmauch_universal_robot
sudo apt update -qq
rosdep update
rosdep install --from-paths src --ignore-src -y
catkin_make
source

如果执行​​rosdep init 和 rosdep install​​​失败,请参考​​ROS -sudo rosdep init 失败解决方法​

为了工作空间之间不相互干扰,推荐每次手动​​source setup.bash​​​,如果只有一个工作空间,也可以直接写在​​bashrc​​里面。

二、配置示教器

将​​Universal_Robots_ROS_Driver/ur_robot_driver/resources​​​路径下的​​externalcontrol.urcap​​文件拷贝到U盘安装到示教器上。

安装完成后,按以下步骤操作:

ROS

ROS

ROS

设置完成后​​返回​

ROS

ROS

ROS


ROS

静止在这个页面不要动.

三、配置Ubuntu网络

使用externalcontrol,要求使用静态IP,并且指定了IP段,而且因为笔者电脑有两个有线网卡,所以我们选择网线直线,印象中通过路由器分配静态IP不是那么直接。
使用网线直线电脑和UR的控制柜。
第二步已经将示教器配置好,下面来配置Ubuntu。

1. 查看显卡名称

ifconfig

ROS

可以看到​​enp2s0​​​正是连接控制柜的网卡。在没配置之前,这个没有​​inet addr​​属性,所以一看便知。

2.设置静态IP

sudo vi /etc/network/interfaces

ROS

添加如图所示的代码。因为示教器上的externalcontrol显示要设置成这个指定的IP。网关和子网掩码可按上图设置。网管必须和IP在同一网段,即最后一位的数字可以不一样,且范围为[0,255]。指定静态IP时必须指定dns server,否则连接互联网的网卡有可能无法解析DNS。

这里虽然设置的是​​8.8.8.8​​​,但是实际的dns server地址并不是8.8.8.8,而是由ubuntu内置的​​networkmanager​​​程序​​dnsmasq​​程序接管,由它来分配dns server。

执行

sudo vi /etc/resolv.conf

可以看到分配的nameserver为

ROS

这个是本地dns的回环地址,由dnsmasq来分配,具体参考​​nameserver 127.0.1.1 & 如何设置nameserver​​。

3.重启

4.现在看看右上角网络连接有没有显示对应于控制柜的网络显示已经连接。

如果没有,执行

sudo vi /etc/NetworkManager/NetworkManager.conf 

将​​managed​​​改为​​true​

ROS

保存退出后,执行

sudo /etc/init.d/networking restart

如果还是没有显示连接,​​重启​​。

四、运行程序测试

1.获取标定信息

roslaunch ur_calibration calibration_correction.launch   robot_ip:=192.168.56.2 target_filename:="$HOME/my_robot_calibration.yaml"

2. 运行externalcontrol

ROS

3.运行启动文件

=192.168.56.2 kinematics_config:=$HOME/my_robot_calibration.yaml

上条指令ur3换成自己的机械臂类型。

当终端显示​​Robot ready to receive control commands.​​时,

rosrun rqt_joint_trajectory_controller rqt_joint_trajectory_controller

这时候就可以在rqt中拖动滑块来控制机械臂每个关节的转角。
具体参考​​​ur_robot_driver​


以上是关于ROS - 使用UR机械臂最新的 ur_robot_driver的主要内容,如果未能解决你的问题,请参考以下文章

ur机械臂 + robotiq gripper + robotiq ft sensor + gazebo + 连接真实机械臂 + 网页控制

UR机械臂运动学正逆解方法

丹麦优傲机械臂(UR3)使用感受

ROS机械臂开发:机器视觉应用

UR5仿真学习笔记

UR5仿真学习笔记