Universal Robots(优傲机器人)公司是一家引领协作机器人全新细分市场的先驱企业,该公司成立于2005年,关注机器人的用户可操作性和灵活度,总部位于丹麦的欧登塞市,主要的机器人产品有:UR3、UR5和UR10,分别针对不同的负载级别。
Universal Robots早在2009年便推出了第一款协作机器人——UR5,自重18公斤,负载高达5公斤,工作半径85cm,不仅颠覆了人们对于传统工业机器人的认识,还自此定义了“协作机器人”的真正意义。除了安全度高、无需安全围栏等特点外,协作机器人还应该具备编程简单和灵活度高等特点,才能实现真正的人机和谐共事。

2015年3月推出的UR3是现今市场上最灵活轻便、并且可与工人一起肩并肩工作的台式机器人。它自重仅为11公斤,但是有效负载却高达3公斤,所有腕关节均可360度旋转,而末端关节可作无限旋转。UR 10的有效负载为10公斤,工作半径130cm。三款机器人均以编程的简易性、高度灵活性以及与人一起工作的安全可靠性而享誉业内。

一:安装ROS机器人操作系统

二:建立ros工作区

几个参考的网址(1) https://github.com/ros-industrial/universal_robot universal_robot
(2) https://github.com/ros-industrial/ur_modern_driver ur_modern_driver
installation
在此存储库中安装软件包有两种不同的方法。以下各节详细介绍了如何使用二进制发行版安装包,以及如何在Catkin工作区中从源代码构建包。
2.1方法以源码安装UR支持包
ROS中同样集成了Universal Robots机器人的功能包,使用如下命令即可安装,其中包含UR3、UR5、UR10三款机器人的相关功能:
sudo apt-get install ros-kinetic-universal-robots
(随不同的版本kinetic可以改变replace $ROS_DISTRO with hydro, indigo or kinetic, depending on which ROS version you have installed.

)
2.2方法二以源码的方式安装-建立ros_ur工作空间

In all other cases the packages will have to be build from sources in a Catkin workspace:

(1)cd $HOME/catkin_ws/src

#retrieve the sources (replace ‘$ROS_DISTRO’ with the ROS version you are using)
(2)git clone -b $ROS_DISTRO-devel https://github.com/ros-industrial/universal_robot.git

(3)cd $HOME/catkin_ws

#checking dependencies (again: replace ‘$ROS_DISTRO’ with the ROS version you are using)
(4)rosdep update
(5)rosdep install --rosdistro $ROS_DISTRO --ignore-src --from-paths src

#building
(6)catkin_make

#activate this workspace
(7)source $HOME/catkin_ws/devel/setup.bash
**(8)**在第六步前由于版本的原因需要更改universal_robot github的ur_driver驱动.将ur_modern_driver github下的驱动下在功能包下.然后重新编译…
在编译中会出现错误 参考链接 csdn链接描述 github链接描述
具体为/home/xxx/catkin_ws/src/ur_modern_driver/src/ur_hardware_interface.cpp:180:22: error: ‘const struct hardware_interface::ControllerInfo’ has no member named ‘hardware_interface’

将src/ur_hardware_interface.cpp中的

controller_it->hardware_interface (大概12处)
全部改为

controller_it->type
参考链接

三 运行真正的机器人UR

首先上命令行
真实UR
roslaunch ur_bringup ur5_bringup.launch robot_ip:=IP_OF_THE_ROBOT [reverse_port:=REVERSE_PORT]
roslaunch ur5_moveit_config ur5_moveit_planning_execution.launch
roslaunch ur5_moveit_config moveit_rviz.launch config:=true

真实带有关节限制的UR
启动驱动
roslaunch ur_bringup ur5_bringup.launch limited:=true robot_ip:=IP_OF_THE_ROBOT [reverse_port:=REVERSE_PORT]
启动moveit规划
roslaunch ur5_moveit_config ur5_moveit_planning_execution.launch limited:=true
启动rviz可视化界面
roslaunch ur5_moveit_config moveit_rviz.launch config:=true

要启动真正的机器人,请运行:
roslaunch ur_bringup ur5_bringup.launch robot_ip:=IP_OF_THE_ROBOT [reverse_port:=REVERSE_PORT]

MoveIt! with real Hardware
此外,您还可以使用MoveIt!控制机器人。
有它!两个机器人的配置包。
用于设置MoveIt!允许运行运动规划的节点:
roslaunch ur5_moveit_config ur5_moveit_planning_execution.launch
用于使用包含MoveIt的配置启动RViz!运动规划插件运行:
roslaunch ur5_moveit_config moveit_rviz.launch config:=true

NOTE:
As MoveIt!!似乎很难找到具有所有关节限制[-2pi,2pi]的UR路径规划,有一个联合限制版本使用限制为[-pi,pi]的联合限制。要使用此联合受限版本,只需使用启动文件参数“limited”,即:
roslaunch ur_bringup ur5_bringup.launch limited:=true 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

三Gazebo Rviz 中的UR机械臂仿真

首先上命令行

在gazebo中的仿真UR
启动gazebo中的UR
roslaunch ur_gazebo ur5.launch
启动moveit控制
roslaunch ur5_moveit_config ur5_moveit_planning_execution.launch sim:=true
启动rviz可视化
roslaunch ur5_moveit_config moveit_rviz.launch config:=true

带有关节限制的,在gazebo中的仿真UR

roslaunch ur_gazebo ur5.launch limited:=true
roslaunch ur5_moveit_config ur5_moveit_planning_execution.launch sim:=true limited:=true
roslaunch ur5_moveit_config moveit_rviz.launch config:=true

查看链接ros wiki
Usage with Gazebo Simulation
There are launch files available to bringup a simulated robot - either UR5 or UR10.
In the following the commands for the UR5 are given. For the UR10, simply replace the prefix accordingly.

Don’t forget to source the correct setup shell files and use a new terminal for each command!

To bring up the simulated robot in Gazebo, run:

roslaunch ur_gazebo ur5.launch

MoveIt! with a simulated robot
Again, you can use MoveIt! to control the simulated robot.

For setting up the MoveIt! nodes to allow motion planning run:

roslaunch ur5_moveit_config ur5_moveit_planning_execution.launch sim:=true

For starting up RViz with a configuration including the MoveIt! Motion Planning plugin run:

roslaunch ur5_moveit_config moveit_rviz.launch config:=true

NOTE:
As MoveIt! seems to have difficulties with finding plans for the UR with full joint limits [-2pi, 2pi], there is a joint_limited version using joint limits restricted to [-pi,pi]. In order to use this joint limited version, simply use the launch file arguments ‘limited’, i.e.:

roslaunch ur_gazebo ur5.launch limited:=true

roslaunch ur5_moveit_config ur5_moveit_planning_execution.launch sim:=true limited:=true

roslaunch ur5_moveit_config moveit_rviz.launch config:=true

使用以下命令启动UR5机器人的gazebo仿真环境:
$ roslaunch ur_gazebo ur5.launch
查看当前系统中的话题列表。


follow_joint_trajectory是MoveIt!最终规划发布的action消息,由机器人控制器端接收该消息后控制机器人完成运动。从上边的话题列表中,可以找到follow_joint_trajectory,由仿真机器人的控制器插件订阅。
打开启动的ur5.launch文件,可以看到以下代码段:

  <!-- start this controller --><rosparam file="$(find ur_gazebo)/controller/arm_controller_ur5.yaml" command="load"/><node name="arm_controller_spawner" pkg="controller_manager" type="controller_manager" args="spawn arm_controller" respawn="false" output="screen"/>

控制器管理节点controller_manager启动了一个arm_controller插件,该插件的配置可以查看arm_controller_ur5.yaml文件:

arm_controller:type:position_controllers/JointTrajectoryControllerjoints:-shoulder_pan_joint-shoulder_lift_joint-elbow_joint-wrist_1_joint-wrist_2_joint- wrist_3_joint
constraints:goal_time: 0.6stopped_velocity_tolerance: 0.05shoulder_pan_joint: {trajectory: 0.1, goal: 0.1}shoulder_lift_joint: {trajectory: 0.1, goal: 0.1}elbow_joint: {trajectory: 0.1, goal: 0.1}wrist_1_joint: {trajectory: 0.1, goal: 0.1}wrist_2_joint: {trajectory: 0.1, goal: 0.1}wrist_3_joint: {trajectory: 0.1, goal: 0.1}
stop_trajectory_duration: 0.5
state_publish_rate:  25
action_monitor_rate: 10

从上边的配置信息中可以看到,arm_controller是一个JointTrajectory类型的控制器,接收follow_joint_trajectory中的轨迹信息后,完成机器人的运动控制。

使用MoveIt!控制UR机器人
ROS中类似于UR5这样的机械臂控制当然离不开MoveIt!,接下来我们就使用MoveIt!实现对gazebo中UR5的控制。

UR5的控制需要通过follow_joint_trajectory这个action接口实现,这就需要在MoveIt!端配置一个控制器插件,实现该接口的功能。该插件的配置在ur5_moveit_config中已经实现,可以查看ur5_moveit_config功能包中的controllers.yaml文件:

controller_list:- name: ""action_ns: follow_joint_trajectorytype: FollowJointTrajectoryjoints:- shoulder_pan_joint- shoulder_lift_joint- elbow_joint- wrist_1_joint- wrist_2_joint- wrist_3_joint

所以我们并不需要进行任何修改,使用如下命令启动MoveIt!和rviz,启动过程会包含所需要的控制器插件:

$ roslaunch ur5_moveit_config ur5_moveit_planning_execution.launch sim:=true
$ roslaunch ur5_moveit_config moveit_rviz.launch config:=true

realsense相机和 手眼标定
标定链接:https://blog.csdn.net/weixin_43735353/article/details/106128655

ROS+UR机械臂+Moveit+ 仿真与实体机械臂的使用+realsense相机+eye_handeye手眼标定(亲测有效)上相关推荐

  1. ROS+UR机械臂+Moveit+ 仿真与实体机械臂的使用+realsense相机+eye_handeye手眼标定(亲测有效)下

    ** 1参考链接 ** (1)UR5.realsense手眼标定 (2)优遨机器人UR5与RealSense深度摄像头D435的手眼标定 (3)UR5.realsense手眼标定**** (4)标定所 ...

  2. ROS 罗技手柄控制机器人(仿真和实体机器人)

    20210615更新 测试的时候发现一个问题,之前代码的逻辑是每次按一下摇柄就发一个命令,但是如果一直按着摇柄往一个方向,也是发送一次命令,摇柄转到其他方向,信号发生变化才再次发送一个速度命令,这点其 ...

  3. 小鱼发现玩机械臂的小姐姐越来越多了。。。再说说手眼标定那些事~

    大家好,我是小鱼.最近小鱼发现玩机械臂的小姐姐越来越多了,因为又有小姐姐找小鱼请教机械臂手眼标定的事情,所以小鱼今天为了小姐姐们优化一下自己之前写的代码. 之前小鱼之前手撸过tsai的手眼标定算法,但 ...

  4. UR5机械臂与realsense相机在Gazebo仿真环境下的手眼标定(眼在手上)

    简介 这是一个Gazebo仿真环境下利用UR5机械臂和realsense相机进行手眼标定的教程(眼在手上). 准备相关文件 # UR5 git clone https://github.com/Uni ...

  5. 机器人动起来1:机械臂手眼标定、像素-世界坐标系转换

    机械臂要想到达期望的位置,必须将其感知系统和机械臂运动产生联系,这关键的两步就是手眼标定和坐标系转换.按我所讲的步骤进行调试一定可以成功. 1.手眼标定 机械臂手眼标定目的是为了求得三个参数:机械臂末 ...

  6. ROS+UR机械臂系列-1- 虚拟机及ROS安装

    ROS+UR机械臂系列-1- 虚拟机及ROS安装 小白,刚开始使用ROS系统,希望可以成一个系列,方便大家参考,避过大坑!最开始使用的是Ubuntu20.04+ ROS-noetic,遇到问题时,发现 ...

  7. UR3机械臂+Realsense D435+ROS手眼标定记录

    UR3机械臂+Realsense D435+ROS手眼标定记录 前面一段时间,由于实验室工作安排,上手了UR3机械臂和Realsense D435深度相机,在手眼标定这一段真的是让人心累,断断续续折腾 ...

  8. Moveit!入门——古月居机械臂开发笔记(一)

    Moveit!入门--古月居机械臂开发笔记(一) 引言 Moveit!与机械臂控制 1.创作机械臂模型 2.生成配置文件 3.如何使用Moveit!实现机械臂仿真(gazebo) 完善模型 在gaze ...

  9. Moveit!入门——古月居机械臂开发笔记(二)

    Moveit!入门--古月居机械臂开发笔记(二) 引言 ROS机械臂开发_机器视觉与物体抓取 1.ROS中的运动学插件 2.Moveit!碰撞检测 规划场景 3.Pick and Place 4.RO ...

最新文章

  1. 曲线图绘制软件_Origin教程丨一文教你快速绘制20种常用图
  2. 剑指offer 面试3题
  3. 学习笔记Hive(九)—— 实例:航空客户价值分析数据预处理
  4. 递归1:二叉搜索树的范围和
  5. UI5应用如果出现白屏但是没有任何错误消息打印出来,应该如何处理
  6. 进销存系统软件怎么测试,进销存系统中的报表测试
  7. BP神经网络综合评价法
  8. learning rate对深度模型的影响:论文阅读Cyclical Learning Rates for Training Neural Networks
  9. docker镜像启动后端口号是多少_RSS、智能家居、个人博客、维基百科……Docker 入门指南...
  10. (文献研读)ContainerCloudSim:云数据中心中容器建模和仿真的环境
  11. 简述RAKsmart香港服务器的的优势
  12. 【DS1302驱动】
  13. 量化交易系列【4】高频函数:rolling与expanding用法
  14. 请登录游戏大厅进行签到
  15. 形式逻辑(02)逻辑概述 负判断
  16. 微信小程序之Github API用户登录认证的三种方式
  17. 摸爬滚打DirectX11_day08——纹理映射
  18. STM32F103(一):ADC
  19. ant-design的Table组件暂无数据,滚动条位置修改
  20. python数据解析——xpath爬取文字和图片

热门文章

  1. rdpclip.exe
  2. JavaScript中的 语法糖 是什么?
  3. 你还有这些JS问题需要掌握
  4. Chrome浏览器依然是最受欢迎的浏览器 排名轻微下滑
  5. i.MX8芯片介绍(米尔电子iMX8系列核心板及开发板学习笔记)
  6. JavaScript算法——插入排序
  7. python绘制折线图保存_Python利用matplotlib绘制折线图的新手教程
  8. Django的学习日记
  9. oracle dg库慢,dg库日志应用慢参数调整
  10. Vue2进度条(Progress)