1. ROS简介

1.1什么是ROS

ROS(Robot Operating System,下文简称“ROS”)是一个适用于机器人的开源的元操作系统。它提供了操作系统应有的服务,包括硬件抽象,底层设备控制,常用函数的实现,进程间消息传递,以及包管理。它也提供用于获取、编译、编写、和跨计算机运行代码所需的工具和库函数。

ROS虽然也属于操作系统,但需要在LINUX系统下才能使用。因此在真正使用ROS之前需要安装LINUX系统。ROS与Linux系统有一定的对应关系如下,只有安装对应的版本才能保证正常使用。

ROS发布日期

ROS版本

对应Ubutnu版本

2017.5

ROS Lunar Loggerhead

Ubuntu 17.04(Zesty)

2016.3

ROS Kinetic Kame

Ubuntu 16.04 (Xenial) / Ubuntu 15.10 (Wily)

2015.3

ROS Jade Turtle

Ubuntu 15.04 (Wily) / Ubuntu LTS 14.04 (Trusty)

2014.7

ROS Indigo Igloo

Ubuntu 14.04 (Trusty)

2013.9

ROS Hydro Medusa

Ubuntu 12.04 LTS (Precise)

2012.12

ROS Groovy Galapagos

Ubuntu 12.04 (Precise)

...

...

...

表1 ROS与Ubutun对应关系

  1. Ubuntu安装

2.1 软件安装

Ubuntu的安装要和使用的ROS对应,本文采用的是ROS Indigo 的版本,因此对应的Ubuntu系统为14.04.

Ubuntu下载地址:Ubuntu 14.04.4 发布_Linux_Linux公社-Linux系统门户网站

系统的安装有两种方式,一种为实体机安装,另一种为虚拟机安装。具体采用哪种大家可以自行选择。但是不管使用哪种模式,都要确保Ubuntu安装后可以正常的网络连接。ROS的安装会通过网络的服务器到官网的资源库进行安装包查找,并进行下载安装。

2.2软件中心配置

安装完后,首先打开软件和更新对话框(Software & Update),可以在 Ubuntu 最左上角的系统设置(System Settings)中查找。打开后按照下图进行配置(确保上面的 "universe" ,"restricted"和 "multiverse."前是打上勾的),允许访问。

关闭对话框,安装完成。

2.3添加源列表

设置计算机可以接受来自官网ROS里packages.org的软件。

打开一个控制台(Ctrl + Alt + T), 输入如下指令:

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

设置密匙:

sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116

  1. ROS安装(Indigo)

3.1软件安装

本文是以Indigo作为安装讲解的,若安装其他版本将代码上的indigo替换为相应版本既可。

PS:在指令前有sudo的代表是在root下输入的指令。

首先确保系统软件处于最新版

sudo apt-get update

开始安装ROS,ROS有多种库和工具可以安装,下面将为大家分别介绍不同的安装方法,根据实际情况任选一种。

方法a): Desktop-Full Install: (推荐) ROS, rqt, rviz, robot-generic libraries, 2D/3D simulators and 2D/3D perception

安装指令如下:

sudo apt-get install ros-indigo-desktop-full
安装指令如下:方法b): Desktop Install: ROS, rqt, rviz, and robot-generic libraries

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

安装指令如下:方法c): ROS-Base: (Bare Bones) ROS package, build, and communication libraries. No GUI tools.

sudo apt-get install ros-indigo-ros-base

ROS可以根据实际使用的情况安装不同的功能包,将需要实际安装的数据包名字替换PACKAGE方法d):单独数据包安装

安装指令如下:

sudo apt-get install ros-indigo-PACKAGE

例如:安装Slam的包格式

sudo apt-get install ros-indigo-slam-gmapping

下面回到正文,安装ROS,从上面的a、b、c中选择安装,为了方便起见,本文采用的推荐的安装方式Desktop-Full Install

输入命令为:

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

系统会自动下载安装,因为安装比较软件包比较多,所以会需要一些时间,耐心等待直到安装完成。(网速快的话也是分分钟的事)

apt-cache search ros-indigo

安装完成后可以查找ros-indigo可以使用的数据包

3.2ROS初始化(Indigo)

在使用ROS之前,需要初始化ROSdep。ROSdep可以方便的为希望编译的源代码安装系统依赖项,并且ROS中的一些核心组件运行所需的工具。

输入命令为:

sudo rosdep init

rosdep update

3.3环境变量设置

初始化环境变量,输入命令如下:

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

source ~/.bashrc

上面两句非常非常非常重要,很多小伙伴在日常的开发过程中,有的找不到 Package, 找不到node, 很多情况下都是没有添加source。

3.4Rosintall安装

sudo apt-get install python-rosinstall

安装一个在ROS中会经常使用到的插件 rosintall,指令如下:

3.5ROS测试(Indigo)

sudo  roscore

经过以上步骤ROS已安装完成,为了确保安装正确。我们进行一下测试,指令如下:

出现以下图片上的内容认为安装成功。

  1. UR软件包安装

4.1Universal_robot的软件包安装

sudo  cd ~/catkin_ws/src

1)打开之前定义的工作空间:

git clone -b indigo-devel https://github.com/ros-industrial/universal_robot.gitindustrial/universal_robot.git

2)下载Ros服务器中的universal_robot.git的数据包源码,并添加到src中

git clone -b indigo-devel https://github.com/ros-industrial/universal_robot.gitindustrial/universal_robot.git

3)进入到catkin_ws目录下:

cd ~/catkin_ws

4)使用rosdep安装插件

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

5)封装

catkin_make

6)source  devel/setup.bash

4.2 ur_modern_driver驱动更换

目前UR机器人的控制器软件版本已更新到3.0版本以上,早期的ur_driver驱动不在适合,因此需要用ur_modern_driver进行替换。

Ur_modern_driver的下载链接如下:GitHub - ros-industrial/ur_modern_driver: (deprecated) ROS 1 driver for CB1 and CB2 controllers with UR5 or UR10 robots from Universal Robots

1)删除catkin_ws/src/universal_robot这个目录下的ur_driver文件夹

sudo  cd   ~/catkin_ws/src/universal_robot

sudo  rm  ur_driver

2)将下载好的ur_modern_driver .zip复制到catkin_ws/src/universal_robot这个目录下

sudo  cd  /home/ur/Desketop

sudo  cp  ur_modern_driver .zip  ~/catkin_ws/src/universal_robot

sudo  rm  -r ur_driver

3)解压ur_modern_driver.zip

sudo  unzip  ur_modern_driver.zip

4) 进入到catkin_ws目录下:

cd ~/catkin_ws

5)重新封装

catkin_make

  1. UR本体与ROS通讯

5.1 IP设置

  1. 设置Linux系统的IP地址,并查看其地址。
  1. 设置机器人的IP

在示教器上选择设置机器人—》网络—》静态地址,将IP地址和主机设置为同一网段。

  1. 测试是否连接正常

指令如下:其中ip_of _The_Robot为机器人IP地址

Ping  ip_of _The_Robot

5.2 通信连接

本文以UR5为例与ROS进行通讯,若和UR3或UR10进行通讯,只要替换相应代码中相应的机器人型号即可。

1)打开工作空间

sudo cd ~/catkin_ws

2)打开资源库

source  devel/setup.bash

3)和UR5进行通讯连接,将代码中IP_OF_THE_ROBOT替换为机器人的实际IP地址

roslaunch ur_modern_driver ur5_bringup.launch limited:=true robot_ip:=

IP_OF_THE_ROBOT [reverse_port:=REVERSE_PORT]

代码中limited:=true是在运动规划时,将机器人的关节角度限制在[−π,π][−π,π]

  1. 设置Moveit的节点

再打开一个新控制台(Ctrl + Alt + T), 输入如下指令:

在执行步骤4命令前,请先执行步骤1和步骤2

roslaunch ur5_moveit_config ur5_moveit_planning_execution.launch limited:=true

  1. 启动带有运动规划插件的 RViz

再打开一个新控制台(Ctrl + Alt + T), 输入如下指令:

在执行步骤4命令前,请先执行步骤1和步骤2

roslaunch ur5_moveit_config moveit_rviz.launch config:=true

5.2通信测试

在打开的RVIZ中可以看到的UR5机械臂和实物的状态是一致的。

a)实体随仿真运动

拖动UR5机械臂实物,在RVIZ里的机械臂也会跟着运动。

b)仿真带动实体运动

此时,你可以在RVIZ中用鼠标拖动机械臂到达目标位置,在planing下点击plan,如果路径规划成功即可点击execute,你就会看到UR5实物也会跟着运动到目标点。

c)程序控制实体运动

通讯连接成功后,可以直接发送运动的指令。运行的程序在test_move.py里。

再打开一个新控制台(Ctrl + Alt + T), 输入如下指令:

1)打开工作空间

sudo cd ~/catkin_ws

2)打开资源库

source  devel/setup.bash

rosrun  ur_modern_driver test_move.py

  1. 仿真环境设置

6.1环境设置

有些情况下可能无法使用实体机器人,因此需要仿真运行,可以通过gazebo仿真学习。

1)打开工作空间

sudo cd ~/catkin_ws

2)打开资源库

source  devel/setup.bash

3)启动仿真插件

roslaunch ur_gazebo ur10.launch

4)启动moveit节点,并设置为模拟环境

roslaunch ur10_moveit_config ur10_moveit_planning_execution.launch sim:=true

5)启动带有运动规划插件的 RViz

roslaunch ur10_moveit_config moveit_rviz.launch config:=true

a)在Rviz里面选择合适的规划库OMPL

,

b)然后在Planning选项卡中,根据在显示界面拖动的位置,点击Plan,待规划完成后点击Execute。

Ps:机器人移动的位置请勿随意,根据机器人的运动范围设定。只可以按工具端笛卡尔的XYZ和转动拖动,无法单关节移动。

ROS与优傲机器人UR机器人通讯相关推荐

  1. 凡诚工业机器人_【优傲】协作机器人组装案例集锦

    点击蓝字 关注我们 智能机器人商情微信公众号,关注中国智能机器人行业热点与发展趋势,打造最快捷高效的行业资讯交互平台.更多内容,您可以点击标题下方的蓝字关注我们. 随着城市工业化进程加快,无论是大型还 ...

  2. 机器人J中WPR_优傲:协作机器人的未来在哪里?

    2019年9月17日,第21届中国国际工业博览会于上海国家会展中心如期举办,期间优傲机器人(Universal Robots)公司推出新品,UR16e.有效载荷高达16kg,引起业界广泛的关注.优傲机 ...

  3. 6自由度优傲(ur)机械臂做圆周运动

    实验中需要控制机9械臂做圆周运动,末端机械臂万向,理论上可以实现,但是在输入900度时,默认变成旋转180度,经过一段时间咨询,探索,最终解决这个问题,这里把过程分享出来,希望对有相同或相似需要的人有 ...

  4. 卡鲁机器人智能_成都屹安自动化 | MiR自主协作式智能AGV、优傲人机协作机器人...

    MiR智能AGV在Kamstrup无人工厂的应用仅在短短一年内,全球电子产品制造商卡姆鲁普的产量翻了一番,且未增加劳动力成本.其秘诀在于灵活的自动化,包括使用来自 Mobile Industrial ...

  5. robodk导出html错误,在优傲机器人示教器上调试RoboDK机器人程序

    优傲(UR)机器人作为新兴工业机器人品牌,自面世后就以其简单易懂的操控性征服了轻型及协作型机器人应用市场.这在很大程度上归功于优傲示教器上自带的用户图形编程界面,即Polyscope.用户可以通过直观 ...

  6. UR机器人开发(1)-上位机直接通讯控制

    第一次使用UR机器人,并且尝试与上位机直接通讯,进行运动控制.因此本文记录整个安装调试过程,避免后续踩坑.本文采用socket通讯方式,通过python编程,实现机器人乱序抓取(暂且不考虑视觉部分). ...

  7. 优傲协作机器人变身“火眼金睛”质检员

    在绝大多数制造业中采用纯人工检测的方式显然已经不靠谱,不仅费时低效,也无法保证产品质量的一致性.但传统工业机器人安装.维护等成本还有对专业编程的高要求往往让很多制造商望而却步.协作机器人能很好地平衡效 ...

  8. 优傲优化福特汽车装配线生产效率

    减少员工的重复性工作 快速将协作机器人集成到生产流程中 提升生产速度及效率 部署灵活, 可快速切换作业 市场压力增大,产线升级需求迫在眉睫 一直以来,汽车行业的自动化水平在制造业中是数一数二的.大多数 ...

  9. 西门子plc博图与优傲UR机器人进行Profinet通讯,s7-1200/1500 与UR机器人通讯,实际应用案例使用中

    西门子plc博图与优傲UR机器人进行Profinet通讯,s7-1200/1500 与UR机器人通讯,实际应用案例使用中,可提供配置文件,设置说明书,和博图plc程序,目前版本为v15或以上,程序只提 ...

最新文章

  1. 招程序员,得招 “会编程” 的
  2. 阿里云视频云编码优化的思考与发现
  3. mysql怎么用sb文件_mysql脚本mysql_safe解释、mysql.sock文件、mysql_install_db
  4. 关于计算机知识竞答的问题,电脑知识竞赛题目有哪些
  5. 蓝桥杯入门训练圆的面积c语言,蓝桥杯-入门训练-圆的面积
  6. pytorch图像检索评价指标MAP
  7. maven2+依赖传递
  8. Bailian2701 Bailian3864 与7无关的数【进制】(POJ NOI0105-39)
  9. 无法找到脚本文件 C:/Windows/explorer.exe:574323188.vbs
  10. DTP模型之一:(XA协议之一)XA协议、二阶段2PC、三阶段3PC提交
  11. Arcgis使用教程(十)ARCGIS地图制图之固定比例尺设计
  12. 会议OA项目之我的会议排座批审功能
  13. 解决Linux下adb devices找不到设备
  14. 数据分析SQL【离职率】和【司龄】的计算
  15. input输入密码的时候调用纯数字键盘和加密,js弹出键盘
  16. 【机器学习】机器学习模型迭代方法(Python)
  17. 1. 从0开始学ARM-安装Keil MDK uVision集成开发环境
  18. 华硕飞行堡垒 新机子安装双系统 linux
  19. 什么是网关,及其作用 (转载)
  20. xshell里面使用黑色背景时蓝色字体看不清楚的解决方法

热门文章

  1. 深入浅出PA和LNA
  2. html emmet输入法_Emmet HTML参考
  3. 基于AVR单片机的AT24C01-512eeprom读写程序
  4. (附源码)计算机毕业设计SSM基于旅游服务平台
  5. 大数据为什么需要学python?
  6. 奥鹏教育计算机成绩查询,奥鹏远程教育网可以进行我们入学考试成绩查询吗
  7. 【Django】模板
  8. 视频字幕文件 SSA、ASS 参数-攻略
  9. android ui设计最新字体,2017年最新最直白的app界面设计字体规范
  10. c语言iota函数,C++ iota函数用法详解