Ubuntu16+ROS驱动UR机器人(仿真+实体)亲测

首先已经完成了Ubuntu16.04的安装,可以参考

https://www.cnblogs.com/masbay/p/10844857.html

一、安装ROS

1.1安装源

sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'

1.2设置key

sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654

1.3更新

sudo apt-get update

1.4安装ros

sudo apt-get install ros-kinetic-desktop-full

1.5解决依赖

sudo rosdep init
rosdep update

1.6设置环境

echo "source /opt/ros/kinetic/setup.bash" >> ~/.bashrc
source ~/.bashrc

1.7安装rosinstall

sudo apt install python-rosinstall python-rosinstall-generator python-wstool build-essential

到此为止ros已经安装好了,可以测试一个小乌龟的例子:

分别打开三个终端,先后输入以下三条指令

roscore

rosrun turtlesim turtlesim_node 

rosrun turtlesim turtle_teleop_key

就可以用键盘方向键控制小乌龟移动了

二、建立ros工作区

2.1安装ur支持包

sudo apt-get install ros-kinetic-universal-robots

2.2新建工作区

先后执行下述命令:

mkdir ~/catkin_ws/src

cd ~/catkin_ws/src

#下载源
git clone -b kinetic-devel https://github.com/ros-industrial/universal_robot.git

cd ~/catkin_ws

#检查依赖
rosdep update

rosdep install --from-paths src --ignore-src --rosdistro kinetic

#建立
catkin_make

source ~/catkin_ws/devel/setup.bash

三、硬件配置

3.1IP设置

下一步是确保正确配置您的硬件(控制计算机和机器人)以相互通信。 请注意,默认情况下,Universal Robot的网络功能处于禁用状态。 要启用网络连接,请使用UR的示教器导航至设置机器人->设置网络菜单(如下附件所示)。

如果您是经验丰富的用户,请在记下机器人的IP地址后随时跳过本节的其余部分。

分配的完整讨论超出了本教程的范围。如果不确定您的设置并且在IT部门的组织中,请咨询他们。如果您正在使用路由器/交换机在自己的本地网络上进行实验,则很可能是在使用DHCP.

如果您希望UR具有固定的Internet地址,请选择“静态地址”选项,然后手动输入所需的地址信息。如果您在网络交换机或路由器后面,请查阅相关手册以查找兼容设置。输入后,您的信息在离开页面之前按“应用”按钮.

如果您希望快速开始使用网络路由器,并且不介意以后更改UR IP地址的可能性,请选择DHCP,然后选择“应用”.

在这两种情况下,如果机器人似乎无法正确获取网络配置,请尝试重新启动控制器,然后再次按Update。有价值的调试工具是操作系统的ping命令。打开计算机上的终端(对于Windows,运行cmd.exe),然后输入:

ping IP_OF_THE_ROBOT

 IP_OF_THE_ROBOT是你的UR机器人的地址,如果什么也没发生或引发错误,则说明您的计算机无法访问机器人。 确保计算机和机械手上的网络设置正确,然后尝试按UR控制器上的Update。

3.2拓展包安装

从这个链接下载https://github.com/UniversalRobots/Universal_Robots_ROS_Driver

然后找到Universal_Robots_ROS_Driver/ur_robot_driver/resources/externalcontrol-1.0.1.urcap文件,用U盘将externalcontrol-1.0.1.urcap文件拷到UR机器人控制板,然后点击安装,这时候在面板会显示:

 安装后再去下图位置设置你的电脑ip

 如果你不安装这个包,你是看不到外部控制这一栏的,然后硬件设置就没有问题了

四、驱动UR机器人

注意!!下边无论需要什么样的驱动包,一定要进行编译!!

如果你使用控制UR1.5-1.8,那么只需要编译universal_robot,如果是控制UR3及以上,那么还需要额外编译一个ur_modern_driver包,编译过程如下,首先进入你下载的那个包的目录,比如编译ur_modern_driver就要进入ur_modern_driver文件夹,然后打开终端,依次执行下边指令:

mkdir build

cd build

cmake ..

make

sudo make install

如果是编译 universal_robot,则进入~/catkin_ws/src目录下,原因是你之前git的时候已经把他放到了src目录里,而且建立工作区的时候已经有了一个build文件夹

然后执行如下指令

cd build

cmake ..

make

sudo make install

再注意!!如果编译 ur_modern_driver时make报错的,按照这个连接(https://github.com/iron-ox/ur_modern_driver/commit/883070d0b6c0c32b78bb1ca7155b8f3a1ead416c)去修改修改ur_hardware_interface.cpp文件,然后再进行make就没有问题了

4.1与UR v1.5.x到v1.8.x进行连接

下面给出了启动UR5的命令, 对于UR10,只需相应地替换前缀就可以了,不要忘记提供正确的安装程序shell文件,并对每个命令使用新的终端!

要启动真正的机器人,请在用实际硬件地址替换IP_OF_THE_ROBOT之后运行以下命令:

roslaunch ur_bringup ur5_bringup.launch robot_ip:=IP_OF_THE_ROBOT [reverse_port:=REVERSE_PORT]

在新的终端中,可以执行将机器人移动到预定位置的简单测试脚本,如下所示:

rosrun ur_driver test_move.py

请记住,您应该始终将红色大按钮放在手边,以防途中发生任何意外情况

4.2连接UR v3.x

首先,请确保您已经安装或获取了ur_modern_driver软件包,通过下边命令获取:

git clone https://github.com/ros-industrial/ur_modern_driver.git

然后将该文件夹复制到/catkin_ws/src/universal_robot目录里边,接下来输入

roslaunch ur_modern_driver ur5_bringup.launch robot_ip:=IP_OF_THE_ROBOT [reverse_port:=REVERSE_PORT]

用实际硬件地址替换IP_OF_THE_ROBOT,后边的端口号可以忽略不写

4.3使用 MoveIt! 控制

首先确保安装了 MoveIt! ,输入下边命令安装:

sudo apt-get install ros-kinetic-moveit

接下来开始运行控制UR

在三个终端中分别运行:前两句根据版本不同只执行对应的一句,后边两条指令都要执行

#UR1.5-1.8
roslaunch ur_bringup ur5_bringup.launch limited:=true robot_ip:=IP_OF_THE_ROBOT [reverse_port:=REVERSE_PORT]

#UR3以上
roslaunch ur_modern_driver ur5_bringup.launch robot_ip:=IP_OF_THE_ROBOT [reverse_port:=REVERSE_PORT]

roslaunch ur5_moveit_config ur5_moveit_planning_execution.launch limited:=true


roslaunch ur5_moveit_config moveit_rviz.launch config:=true

同理,端口号可以不写,ip地址替换成机器人的

然后大功告成!!

五、仿真环境下控制UR

首先安装一些包

sudo apt-get install \
  ros-kinetic-ur-gazebo \
  ros-kinetic-ur5-moveit-config \
  ros-kinetic-ur-kinematics

然后在三个终端中分别执行下边三条指令,然后等一段时间

roslaunch ur_gazebo ur5.launch

roslaunch ur5_moveit_config ur5_moveit_planning_execution.launch sim:=true

roslaunch ur5_moveit_config moveit_rviz.launch config:=true

然后可以在rviz中实现对机器人的操作了,移动机器人的位置

然后选择rviz中plan and execute,就会看到gazebo中的机器人沿着设定位置移动

发布了11 篇原创文章 · 获赞 14 · 访问量 1558

猜你喜欢

转载自blog.csdn.net/qq_41685265/article/details/103889515