PC端系统:Ubuntu 18.04
ros版本:melodic
polyscope版本:3.14
机器人:UR5/CB3

  • 以下步骤亲测可用

1、Ubuntu18.04 安装ros-melodic

最好按照官网步骤来,以防秘钥有变
官网地址:http://wiki.ros.org/Installation

(1)配置Ubuntu软件库

保证 “restricted,” “universe,” and “multiverse” 被选中,以及【下载自】选项选择一个国内镜像源。


(2)设置sources.list

官网默认提供的是国外源,点击【Mirrors】进入国内源的配置,下面使用的是中科大的源。

sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.ustc.edu.cn/ros/ubuntu/ `lsb_release -cs` main" > /etc/apt/sources.list.d/ros-latest.list'

(3)设置秘钥

操作不成功的话,可以将hkp://keyserver.ubuntu.com:80 换成 hkp://pgp.mit.edu:80 或者hkp://keyserver.ubuntu.com:80

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

(4)安装

sudo apt updatesudo apt install ros-melodic-desktop-full

(5)设置环境变量

当使用ros的时候,必须每启动一个终端执行一次: source /opt/ros/noetic/setup.bash
因此可以将其写入~/.bashrc中,就不用每次手动source

echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
source ~/.bashrc    # 使修改起作用

(5)安装依赖包

sudo apt install python-rosdep python-rosinstall python-rosinstall-generator python-wstool build-essential# 初始化rosdep
sudo apt install python-rosdep
sudo rosdep init
# rosdep update 这个命令一直没执行成功,按照网上说的修改/etc/hosts和用热点连接都没用,后来就没管它继续往下操作了
rosdep update

ROS安装的部分到这基本就结束了,接下来就是安装UR5机器人的驱动了。

2、安装Universal_Robots_ROS_driver

驱动包的github地址:https://github.com/UniversalRobots/Universal_Robots_ROS_Driver
按照README里的步骤安装即可。
PS:如果github下载失败,可以在github.com后面加上cnpmjs.org,即:github.com.cnpmjs.org

# source global ros
$ source /opt/ros/melodic/setup.bash# 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# activate the workspace (ie: source it)
$ source devel/setup.bash
  • 网上有的教程说要下载 universal_robot (地址:https://github.com/ros-industrial/universal_robot),但经过实际测验发现并不需要,因为按照上述步骤已经下载了fmauch_universal_robot,如果再下载一个universal_robot的话,就重复了,catkin_make会编译出错。
  • 但也不要觉得universal_robotfmauch_universal_robot都是UR机器人描述包,就可以用universal_robot代替fmauch_universal_robot了,这样做的话universal_robot编译不会出错,但是Universal_Robots_ROS_Driver编译就会出错了。

驱动的部分到此就结束了。PS:fmauch_universal_robot里有moveit配置包,可以直接启动在rviz中进行运动规划。

3、在实体UR机器人端安装 externalcontrol-1.0.4.urcap

这个同样有官方教程,按照教程来即可:https://github.com/UniversalRobots/Universal_Robots_ROS_Driver/blob/master/ur_robot_driver/doc/install_urcap_cb3.md
PS:要安装externalcontrol,polyscope版本需 >= 3.7

(1)首先,从Universal_Robots_ROS_Driver/ur_robot_driver/resources下载externalcontrol-1.0.4.urcap,然后用自己的U盘拷贝到UR机器人。

  • 控制器里面的U盘不能用
  • U盘插到控制器上后,示教器上找不到文件的话,可以尝试格式化U盘,然后在【类型】中选择【所有系统和设备共用(FAT)(S)】,如下图:

当然,如果你的U盘插上去能找到文件,就不用格式化了。
接下来的操作都是在示教器上进行的。

(2)欢迎屏幕上,选择【Setup Robot】,然后选择【URCaps】进入URCaps安装屏幕

(3)单击底部的【+】以打开文件选择器,点击后可以看到存储在机器人程序文件夹或插入的USB驱动器中的所有urcap文件。 选择externalcontrol-1.0.4urcap文件,然后单击打开,最后【Restart】。

(4)重启后,选择【Program Robot】,在【Installation】选项卡中找到【External Control】,然后设置你PC电脑的IP地址,该地址应该和UR机器人在同一个局域网中,端口为50002,不用动。

(5)接下来,创建一个空程序,并将External Control程序节点插入到程序树中,然后点击命令选项卡。

(6)检查信息无误后,保存文件(软件会自动给创建的文件加上一个后缀名.urp)

(7)配置UR机器人的网络

  • 前面通过.urcap文件在示教器上设置了要通信的PC端的IP地址和通信端口,现在需要配置好机器人自身的IP地址。
  • 机器人需与PC端处于同一局域网内。
  • 在示教器上点击【设置机器人】,进入机器人设置界面后点击【网络】,默认为禁用网络。可以先通过DHCP给机器人分配一个IP地址后,再将这个IP地址设置为静态。
  • 可以在PC主机上通过ping IP_OF_ROBOT来测试PC主机与机器人之间的网络连接。

在机器人端进行安装和网络设置的部分就结束了。在这一部分创建的.urp文件建议不要删除,因为之后使用ROS与机器人进行通信时需要用到。

4、使用ROS驱动UR5机器人

这一部分同样可以按照GitHub上的README来:https://github.com/UniversalRobots/Universal_Robots_ROS_Driver

(1)提取标定信息

roslaunch ur_calibration calibration_correction.launch robot_ip:=IP_OF_ROBOT target_filename:="${HOME}/catkin_ws/src/fmauch_universal_robot/ur_description/config/ur5_calibration.yaml"
  • 将上述的IP_OF_ROBOT替换成你自己机器人的IP地址。

(2)开启一个终端,执行roscore
(3)再开启一个新终端,启动机器人驱动程序:

roslaunch ur_robot_driver ur5_bringup.launch limited:=true robot_ip:=IP_OF_ROBOT

(3)在机器人示教器上,点击【运行程序】,选择【加载文件】,然后选择上一步中保存的.urp文件,打开并运行。之后可以看到运行驱动的终端显示:

[ INFO] [1615715907.527568874]: Robot requested program
[ INFO] [1615715907.527840385]: Sent program to robot
[ INFO] [1615715907.564855461]: Robot ready to receive control commands.

(4)开启一个新终端,启动 moveit :

roslaunch ur5_moveit_config ur5_moveit_planning_execution.launch limited:=true

(5)开启一个新终端,启动 rviz:

roslaunch ur5_moveit_config moveit_rviz.launch config:=true

(6)接下来就可以在 rviz 中进行运动规划,并控制真实机器人按照规划的路径运动了。

5、踩过的坑

错误描述

  • 在rviz中进行运动规划时,规划成功后,机器人保持静止,一动不动
  • 开启rviz的端口显示:
[ INFO] [1615715355.318064333]: ABORTED: Solution found but controller failed during execution
  • 开启moveit的端口显示:
[ERROR] [1615715355.301931123]: Unable to identify any set of controllers that can actuate the specified joints: [ elbow_joint shoulder_lift_joint shoulder_pan_joint wrist_1_joint wrist_2_joint wrist_3_joint ]
[ERROR] [1615715355.302004812]: Known controllers and their joints:

解决方法

  • $(HOME)/catkin_ws/src/fmauch_universal_robot/ur5_moveit_config/config/controllers.yaml文件中的action_ns字段的值修改为/scaled_pos_joint_traj_controller/follow_joint_trajectory,问题解决。
  • 修改后的文件内容为:
controller_list:- name: ""action_ns: /scaled_pos_joint_traj_controller/follow_joint_trajectorytype: FollowJointTrajectoryjoints:- shoulder_pan_joint- shoulder_lift_joint- elbow_joint- wrist_1_joint- wrist_2_joint- wrist_3_joint
  • 以上的解决方法是在Universal_Robots_ROS_Driver的issue里找到的,链接:https://github.com/UniversalRobots/Universal_Robots_ROS_Driver/issues/55

如何使用ROS控制真实UR5机器人相关推荐

  1. 使用ROS melodic下 控制真实UR5机器人 手把手教程

    背景如题 参考:https://blog.csdn.net/weixin_37806591/article/details/119387696 https://blog.csdn.net/Dawn_y ...

  2. ROS控制多台机器人实现多机协同

    ROS控制多台机器人的思路与实现 1. 实现思路 1.1 两台机器人跟随 1.2 多台机器人编队 2 TF工具的使用 2.1 什么是TF 2.2 TF的构成 2.3 向TF工具广播发送自己位置 2.4 ...

  3. 通过ROS控制真实机械臂(15) --- 视觉抓取之手眼标定

    通过视觉传感器赋予机械臂"眼睛"的功能,配合ATI力和力矩传感器,就可以完成机械臂"手眼"结合的能力,完成视觉抓取过程.目前测试的视觉传感器为 ZED mini ...

  4. 通过ROS控制真实机械臂(7)---三次样条插补

    在之前的move_group界面中,当点击plan and execute之后,move_group就会帮我们规划出一条通往指定位姿的轨迹,发布在follow_joint_trajectory上,通过 ...

  5. 通过ROS控制真实机械臂(2)----单轴运动,手柄控制

    创建ROS包,包名redwall_arm ,通过自定义的消息,将手柄的数据发布 msg/ joycontrol.msg,内容如下,分别对应罗技手柄的按钮和遥杆轴. int32 button1 int3 ...

  6. 通过ROS控制真实机械臂(9)---上、下位机和PRU程序

    上位机的程序redwall_arm_server.cpp 功能是作为ROS的move_group客户端接收ROS规划的机械臂路点信息,进行三次样条插补获得各个关节或自由度的运动PVAT数据,然后通过T ...

  7. 通过ROS控制真实机械臂(8)---延时时间精确控制

    根据之前的配置,我们已经可以通过move_group发送出机械臂各关节运动的轨迹,并且通过三次样条插补的方法,赋予各个关节在特定角度时的速度和加速度,通过启动程序节点可以看到,本次运动规划使用了LBK ...

  8. Ubuntu18.04+ROS melodic 控制UR5机器人(持续更新)

    目录 0 前言 1 前置准备工作 1.1 环境配置 1.1.1 使用虚拟机安装Ubuntu系统 1.1.2 ROS melodic安装 1.2 工作空间配置 1.2.1 创建工作空间 1.2.2 导入 ...

  9. 遨博协作机器人ROS开发 - Gazebo仿真与控制真实机器人

    目录 一.简介 二.环境版本 三.Gazebo仿真 1.gazebo使用 2. 仿真遨博机械臂 四.ROS控制真实机器人 1. 网络配置 2. 真实机器人控制 3. 真实机器人运动速度调节 五.小结 ...

最新文章

  1. Android进程间通信的方式
  2. python --那些你应该知道的知识点
  3. 我用过的一些web.xml配置
  4. 如果没有网上购物,商铺价格会不会更高?
  5. 清华放大招!竟然连初三学生都招,一条龙培养到博士,还不准转专业......
  6. 23种设计模式之装饰模式
  7. boost学习之BOOST_PP_REPEAT
  8. vs 2005 多語言
  9. 阶段3 2.Spring_08.面向切面编程 AOP_4 spring基于XML的AOP-配置步骤
  10. Hadoop2.4.1(QJM HA)+HBASE0.98 双MASTER问题分析
  11. CCNA 中文教材 (pdf)
  12. vivado安装教程
  13. Eclipse的环境变量如何配置和为什么要配置环境变量?
  14. Spring Data JPA进阶(三):Specification查询
  15. 如何使用快应用内置地图查看、导航位置
  16. 【案例】这些日赚上万美金Youtube油管从业者 技术人的福音
  17. JAVA基础七 类和对象
  18. 量子计算基础——矩阵语言
  19. Unity FPS帧数设置
  20. php获取当前日期所在自然周周一周末以及前后自然周始末

热门文章

  1. vue项目中动态创建模块以满足客户定制化需求的解决方案
  2. 忘记ios访问限制密码
  3. VR几年内会发展成什么样
  4. 服务器上出现应用程序错误
  5. 热爱云南的100个理由 [转]
  6. 数据挖掘笔试面试(5)
  7. 项目经理成长之路---PMP、管理知识、项目文档、项目管理软件工具、PPT、WORD
  8. 华为应用内支付无法拉起
  9. Kony开发入门及学习路线介绍
  10. 亚马逊电商数据自动化管理接口平台ProductType格式展示