ROS与优傲机器人UR机器人通讯
- 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对应关系
- 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
- 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已安装完成,为了确保安装正确。我们进行一下测试,指令如下:
出现以下图片上的内容认为安装成功。
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
- UR本体与ROS通讯
5.1 IP设置
- 设置Linux系统的IP地址,并查看其地址。
- 设置机器人的IP
在示教器上选择设置机器人—》网络—》静态地址,将IP地址和主机设置为同一网段。
- 测试是否连接正常
指令如下:其中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是在运动规划时,将机器人的关节角度限制在[−π,π][−π,π]
- 设置Moveit的节点
再打开一个新控制台(Ctrl + Alt + T), 输入如下指令:
在执行步骤4命令前,请先执行步骤1和步骤2
roslaunch ur5_moveit_config ur5_moveit_planning_execution.launch limited:=true
- 启动带有运动规划插件的 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
- 仿真环境设置
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机器人通讯相关推荐
- 凡诚工业机器人_【优傲】协作机器人组装案例集锦
点击蓝字 关注我们 智能机器人商情微信公众号,关注中国智能机器人行业热点与发展趋势,打造最快捷高效的行业资讯交互平台.更多内容,您可以点击标题下方的蓝字关注我们. 随着城市工业化进程加快,无论是大型还 ...
- 机器人J中WPR_优傲:协作机器人的未来在哪里?
2019年9月17日,第21届中国国际工业博览会于上海国家会展中心如期举办,期间优傲机器人(Universal Robots)公司推出新品,UR16e.有效载荷高达16kg,引起业界广泛的关注.优傲机 ...
- 6自由度优傲(ur)机械臂做圆周运动
实验中需要控制机9械臂做圆周运动,末端机械臂万向,理论上可以实现,但是在输入900度时,默认变成旋转180度,经过一段时间咨询,探索,最终解决这个问题,这里把过程分享出来,希望对有相同或相似需要的人有 ...
- 卡鲁机器人智能_成都屹安自动化 | MiR自主协作式智能AGV、优傲人机协作机器人...
MiR智能AGV在Kamstrup无人工厂的应用仅在短短一年内,全球电子产品制造商卡姆鲁普的产量翻了一番,且未增加劳动力成本.其秘诀在于灵活的自动化,包括使用来自 Mobile Industrial ...
- robodk导出html错误,在优傲机器人示教器上调试RoboDK机器人程序
优傲(UR)机器人作为新兴工业机器人品牌,自面世后就以其简单易懂的操控性征服了轻型及协作型机器人应用市场.这在很大程度上归功于优傲示教器上自带的用户图形编程界面,即Polyscope.用户可以通过直观 ...
- UR机器人开发(1)-上位机直接通讯控制
第一次使用UR机器人,并且尝试与上位机直接通讯,进行运动控制.因此本文记录整个安装调试过程,避免后续踩坑.本文采用socket通讯方式,通过python编程,实现机器人乱序抓取(暂且不考虑视觉部分). ...
- 优傲协作机器人变身“火眼金睛”质检员
在绝大多数制造业中采用纯人工检测的方式显然已经不靠谱,不仅费时低效,也无法保证产品质量的一致性.但传统工业机器人安装.维护等成本还有对专业编程的高要求往往让很多制造商望而却步.协作机器人能很好地平衡效 ...
- 优傲优化福特汽车装配线生产效率
减少员工的重复性工作 快速将协作机器人集成到生产流程中 提升生产速度及效率 部署灵活, 可快速切换作业 市场压力增大,产线升级需求迫在眉睫 一直以来,汽车行业的自动化水平在制造业中是数一数二的.大多数 ...
- 西门子plc博图与优傲UR机器人进行Profinet通讯,s7-1200/1500 与UR机器人通讯,实际应用案例使用中
西门子plc博图与优傲UR机器人进行Profinet通讯,s7-1200/1500 与UR机器人通讯,实际应用案例使用中,可提供配置文件,设置说明书,和博图plc程序,目前版本为v15或以上,程序只提 ...
最新文章
- 招程序员,得招 “会编程” 的
- 阿里云视频云编码优化的思考与发现
- mysql怎么用sb文件_mysql脚本mysql_safe解释、mysql.sock文件、mysql_install_db
- 关于计算机知识竞答的问题,电脑知识竞赛题目有哪些
- 蓝桥杯入门训练圆的面积c语言,蓝桥杯-入门训练-圆的面积
- pytorch图像检索评价指标MAP
- maven2+依赖传递
- Bailian2701 Bailian3864 与7无关的数【进制】(POJ NOI0105-39)
- 无法找到脚本文件 C:/Windows/explorer.exe:574323188.vbs
- DTP模型之一:(XA协议之一)XA协议、二阶段2PC、三阶段3PC提交
- Arcgis使用教程(十)ARCGIS地图制图之固定比例尺设计
- 会议OA项目之我的会议排座批审功能
- 解决Linux下adb devices找不到设备
- 数据分析SQL【离职率】和【司龄】的计算
- input输入密码的时候调用纯数字键盘和加密,js弹出键盘
- 【机器学习】机器学习模型迭代方法(Python)
- 1. 从0开始学ARM-安装Keil MDK uVision集成开发环境
- 华硕飞行堡垒 新机子安装双系统 linux
- 什么是网关,及其作用 (转载)
- xshell里面使用黑色背景时蓝色字体看不清楚的解决方法