使用的版本是 Ubuntu18.04 + ROS melodic + UR3(CB3.12)
因为后续需要使用手控器,手控器的驱动需要在Ubuntu18.04下才可以使用。

这篇文章是电脑上的设置,关于示教器的配置可以参考: UR机械臂学习(5-1):驱动真实机械臂准备工作——示教器配置

这里需要 特别说明 的是:

  1. ur_driverur_modern_drive都已经停止更新,对于使用新版本 CB3 和 e-Series 控制器的机械臂都应当使用 ur_robot_driver作为驱动.

  2. 更重要的是,ur_robot_driverur_modern_drive不一样,不要下载universal_robot,而应该下载fmauch_universal_robot

  3. 另外需要注意的是fmauch_universal_robot需要下载的是calibration_devel分支

# universal_robot的下载地址 (不要用这个)
git clone -b melodic-devel https://github.com/ros-industrial/universal_robot.git# fmauch_universal_robot的下载地址
git clone -b calibration_devel https://github.com/fmauch/universal_robot.git

所以驱动真实机械臂和我第4篇的仿真,是使用的不同的ur机械臂的包,也就是说这篇是新建的文件夹,和第4篇的文件夹没有任何关系

01 安装fmauch_universal_robot和驱动

# 这一步需要执行,或者写在bashrc里
# 不然最后catkin_make执行的时候会报错提示不知道ros版本
source /opt/ros/melodic/setup.bashmkdir -p ur_ws/src && cd ur_ws# 下载fmauch_universal_robot(注意分支)
git clone -b calibration_devel https://github.com/fmauch/universal_robot.git src/fmauch_universal_robot# 下载Universal_Robots_ROS_Driver驱动
git clone https://github.com/UniversalRobots/Universal_Robots_ROS_Driver.git src/Universal_Robots_ROS_Driver# 更新 -qq代表除非报错,否则不输出
sudo apt update -qqsudo apt-get upgrade# 更新依赖(这一步需要有梯子,不然可能会超时,超时执行下一步即可,只要一开始安装ros时执行成功过即可)
rosdep update# 安装依赖 -y表示出现 y/N选项 直接执行y
rosdep install --from-paths src --ignore-src -y# 编译
catkin_make# 激活当前工作空间,并写入
echo "source ~/ur_ws/devel/setup.bash" >> ~/.bashrc
source ~/.bashrc

注意:

  • 一定要安装fmauch_universal_robot而不是universal_robot,因为fmauch_universal_robot才和ur_ROS_Driver是匹配的,不然之后驱动真实机械臂时,会说ur_description 文件夹里没有相应文件
  • 也不可以fmauch_universal_robotuniversal_robot两个都安装,因为这两个有很多文件夹名字是相同的,catkin_make时会报错。(最好不要都安装,但如果两个都安装了,catkin_make报错,可以把提示重复的文件夹删除
  • 一定要source /opt/ros/melodic/setup.bash,否则rosdep install --from-paths src --ignore-src -y时会报错,提示不知道ros版本

02 仿真

# 启动gazebo
# 注意是ur3_bringup.launch,而不是ur3.launch
roslaunch ur_gazebo ur3_bringup.launch# 启动move it规划
roslaunch ur3_moveit_config ur3_moveit_planning_execution.launch sim:=true# 启动rviz
# 注意后面要给出rviz_config的地址
roslaunch ur3_moveit_config moveit_rviz.launch rviz_config:=$(rospack find ur3_moveit_config)/launch/moveit.rviz

注意:

  • 这一部分需要特别注意的是,因为fmauch_universal_robot里面文件名字和universal_robot有所差别
    运行gazebo启动的是ur3_bringup.launch而不是ur3.launch

  • 这一部分另一个需要特别注意的是,执行最后一步,启动rviz时,不能直接roslaunch ur3_moveit_config moveit_rviz.launch,而需要给出rviz的地址rviz_config:=$(rospack find ur3_moveit_config)/launch/moveit.rviz
    不然rviz的界面显示不出ur机械臂的模型图

  • 和之前universal_robot的仿真过程不一样,就是在rviz界面左下角MotionPlanningPlanning里将Planning Group选为manipulator
    这样就出现末端执行器,可以移动,然后就可以规划了(原选项是end effector,而且没有末端执行器可以移动)

  • 在rviz界面左上角DispalyPlaned Path里将Loop Animation取消勾选
    这样规划过程就不会一直循环啦,至此就和之前用universal_robot的仿真过程完全一样啦

  • 最最需要注意的是gazebo和moveit里关于/scaled_pos_joint_traj_controller/follow_joint_trajectory控制器的名字不统一。
    所以要在/home/guyue/ur_ws/src/fmauch_universal_robot/ur3_moveit_config/launch下的ur3_moveit_planning_execution.launchl文件里进行修改。
    很多人的教程里都提出要修改这部分东西,但是因为驱动和fmauch一直在更新,所以和之前修改的方式有所不同。未来的修改方式可能又有所改变。
    具体可以参考UR机械臂学习(5-3):驱动ur机械臂实物——问题及解决 的问题5
    看一下分析过程,也就明白为什么要这样修改了。

# ur3_moveit_planning_execution.launchl 第6行修改为
<remap if="$(arg sim)" from="/scaled_pos_joint_traj_controller/follow_joint_trajectory" to="/pos_joint_traj_controller/follow_joint_trajectory"/>

03 运行

3.1 启动rviz

# 01 启动bringup,建立与机械臂的连接
roslaunch ur_robot_driver ur3_bringup.launch limited:=true robot_ip:=192.168.56.10# 02 启动示教器程序# 03 启动moveit
# 仿真后面需要后面加 sim:=true
roslaunch ur3_moveit_config ur3_moveit_planning_execution.launch limited:=true# 04 启动rviz
roslaunch ur3_moveit_config moveit_rviz.launch rviz_config:=$(rospack find ur3_moveit_config)/launch/moveit.rviz

这里需要 注意 的就是先启动bringup,再启动示教器

启动示教器后如果正常通信,会出现:

[ INFO] [1624885305.373017515]: Robot requested program
[ INFO] [1624885305.373077772]: Sent program to robot
[ INFO] [1624885305.839015623]: Robot connected to reverse interface. Ready to receive control commands.

3.2 启动rqt,单关节控制

# 01 启动bringup,建立与机械臂的连接
roslaunch ur_robot_driver ur3_bringup.launch limited:=true robot_ip:=192.168.56.10# 02 启动示教器程序# 03 启动rqt
rosrun rqt_joint_trajectory_controller rqt_joint_trajectory_controller
# 或者 运行 rqt
# 然后选择 Plugins -> Robot Tools -> Controller Manager

04 一些补充

4.1 ur_calibration 提取标定信息

为了提高正向和逆向运动学精度,每个UR机器人在出厂前都进行了标定。
ur_calibration 是 Universal_Robots_ROS_Driver 中的一个功能包,能够提取机器人出厂标定的运动学参数,并更改 ur_description 包的配置文件以获取正确的URDF模型。

尽管使用此驱动程序控制机器人不是必须执行此步骤,但强烈建议您这样做,因为否则末端执行器的位置可能会出现厘米级偏差。

启动ur机器人,确保网络正常链接。然后启动节点 calibration_correction 。该节点直接从机器人提取标定信息,将其保存到.yaml文件中:

roslaunch ur_calibration calibration_correction.launch \robot_ip:=192.168.56.10 target_filename:="${HOME}/ur_ws/src/fmauch_universal_robot/ur_description/config/ur3_calibration.yaml"# 之后每次启动bring up都启动这句
roslaunch ur_robot_driver ur3_bringup.launch robot_ip:=192.168.56.10 \kinematics_config:="${HOME}/ur_ws/src/fmauch_universal_robot/ur_description/config/ur3_calibration.yaml"

4.2 自带程序

运行其自带测试程序test_move.py可以移动机械臂

rosrun ur_robot_driver test_move.py

4.3 信息图

使用rqt_graphrqt_plot功能显示信息图

rosrun rqt_graph rqt_graph

4.4 修改bring up文件

启动bring up

roslanuch ur_robot_driver ur3_bringup.launch limited:=true robot_ip:=192.168.56.10
  • 避免每次启动都要填写ip地址,可以修改ur3_bringup.launch中的默认参数
<arg name="robot_ip" default="192.168.1.0">
  • 此外,可以修改本文件中的一些参数,以实现机器人的不同动作效果,如机器人动作速度。
    首先要将use_lowbandwidth_trajectory_follower设置为true
    再将time_interval设置为0.004或者更低即可
    设置的过低可能会导致控制的轨迹追踪产生问题

05 参考

  • 合工大机器人实验室:https://blog.csdn.net/qq_34935373/article/details/109238762
  • Ubuntu与实体UR3_e机械臂通讯以及出现的问题:https://blog.csdn.net/qq_39448233/article/details/109038004

UR机械臂学习(5-2):使用Universal_Robots_ROS_Driver驱动真实机械臂相关推荐

  1. UR机械臂学习(5-1):驱动真实机械臂准备工作——示教器配置

    在使用Universal_Robots_ROS_Driver驱动真实机械臂前,需要在示教器上安装urcap 版本说明 使用的版本是 Ubuntu18.04 + ROS melodic + UR3(CB ...

  2. UR机械臂学习(8):Python实现机械臂运动控制(不使用MoveIt)

    以下是在gazebo仿真中使用,如果是控制真实机械臂,只需要修改订阅的话题即可 后期肯定会自己进行轨迹算法规划,用moveit的话想要更换算法太麻烦,所以尝试自己写程序不通过moveit来控制机械臂. ...

  3. 使用 MoveIt 控制自己的真实机械臂【3】——优化轨迹发给真实机械臂执行

    上一篇文章中,使用 MoveIt 控制自己的真实机械臂[2]--编写 action server 端代码,已经实现了 action server 端代码,并且拿到了 MoveIt 规划的轨迹数据.当然 ...

  4. 机器人学习必看系列:如何使用moveit控制真实机械臂?

    大家好,我是你们可爱的小鱼.最近关于moveit相关的问题感觉非常多,毕竟机械臂+视觉的应用的确是非常的火爆,小鱼都想直接开课教机械臂运动规划相关的了. 有的同学问小鱼,怎么使用moveit控制真实机 ...

  5. ros kinetic-moveit驱动ur3机械臂------控制真实机械臂并且能动

    ros kinetic-moveit驱动ur3机械臂------控制真实机械臂并且能动 本文工作环境配置: ubuntu16.04.6 ros-kinetic ur3 已验证本教程代码在Ubuntu1 ...

  6. UR机械臂学习(6):使用robotiq二指夹爪

    在ros中下载的ur机器人包里不包括夹爪.力传感器等Robotiq的产品. Robotiq相关产品的ros功能包可以在 https://github.com/ros-industrial/roboti ...

  7. Sawyer机械臂学习系列之Moveit!配置

    Sawyer机械臂学习系列之Moveit!配置 前言 1.Sawyer SDK安装及配置 2.Moveit!安装 3.Sawyer机械臂Moveit!配置 4.查看配置结果 前言 1.Sawyer S ...

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

    ur机械臂 + robotiq gripper + robotiq ft sensor + gazebo + 连接真实机械臂 + 网页控制 仓库地址:[ur_ws](https://github.co ...

  9. 机械臂学习——舵机的速度控制、坐标变换、DH模型、正运动学解、逆运动学解

    机械臂学习 文章目录 机械臂学习 前言 一.舵机的速度控制 1.舵机概述 2.代码实现 二.机械臂的坐标变换 1.坐标变换 2.坐标的几何概述 三.DH模型和正运动学解 四.逆运动学解 1.逆运动学几 ...

最新文章

  1. 软件测试面试的linux基础知识,linux基础面试题
  2. C++ 虚函数成员和纯虚函数
  3. 03-缓存一致性---提高性能和引入CoreLink CCI-500
  4. C++11线程管理基础
  5. “一个人会不会一直穷下去”“先看看他关注的公众号”
  6. CSDN博客专家证书发放名单(10月已更新)
  7. 完整的VBA代码宝助手(完全开源)
  8. 计算机网络管理员四级理论知识试卷,2014计算机网络管理员模拟试题及答案
  9. java tif 转jpg_java 实现 tif图片(多页的)转换成jpg
  10. 概率空间probability space 伯努利实验 n次伯努利实验
  11. VB.NET和C# Ruby语言之间的转换
  12. win7可以运行python_win7安装python开发环境,运行python
  13. 【搜索排序】预训练综述Pre-training Methods in Information Retrieval
  14. source test.sh、sh test.sh、./test.sh有什么区别
  15. 排序算法(三)—— 插入法排序算法
  16. java8教程-并发编程
  17. java自定义lock锁
  18. 互联网虚拟大脑的结构全景图
  19. Python爬虫 抓取大数据岗位招聘信息(51job为例)
  20. 02-StringStringBuilderStringBuffer

热门文章

  1. SylixOS 设备树
  2. mitm6:通过IPv6攻破IPv4网络
  3. “贴纸”型可穿戴传感器诞生,中美科学家联合研发,可远程监控健康风险-1
  4. Aplication的作用
  5. mysql子查一般分为几种方法_解说词根据被解释的对象可分为____两种。
  6. js通过扫描枪快速扫码录入的功能实现(区分手动输入和扫码枪录入)-pc
  7. CV | 矩形度的计算(python)
  8. MySQL之PXC集群搭建
  9. 位置不可用–无法访问X:.–文件或目录损坏且无法读取
  10. curl7.83.1 android 编译