当前位置: 首页 » 行业资讯 » 机器人»【知识】机器人操作系统ROS;
   

【知识】机器人操作系统ROS;

 46.1K
     [点击复制]
放大字体  缩小字体 发布日期:2016-09-09   浏览次数:395
核心提示:前言  先放一个ROSIndustrial一周年剪辑视频。  ROS已经发布八周年了,在国外科研机构中非常受欢迎。目前,以美国西南研究
       前言

  先放一个ROSIndustrial一周年剪辑视频。

  ROS已经发布八周年了,在国外科研机构中非常受欢迎。目前,以美国西南研究院为首的几位大佬开始尝试将ROS应用在工业机器人中,上面这个视频就是ROS-I项目一周年的进展情况。

  为了说明讲清楚ROS,我就从ROS是什么,为什么使用ROS,如何使用ROS三个方面展开。

  △出自今年《机器人视觉与应用》课程本人制作的课件

  是什么

  ROS是Robot Operating System的缩写,原本是斯坦福大学的一个机器人项目,后来由WillowGarage公司发展,目前由OSRF(Open Source Robotics Foundation,Inc)公司维护的开源项目。

  1、首先是一个操作系统

  根据wikipedia定义,操作系统是用来管理计算机硬件与软件资源,并提供一些公用的服务的系统软件。而ROS也自称是一个OS。

  △计算机OS与机器人OS对比示意图

  如上图所示,计算机的操作系统将计算机硬件封装起来,而应用软件运行在操作系统之上,不用管计算机具体应用的是什么类型的硬件产品。这能大大提高软件开发效率(否则大家只能都写汇编了)。

  同理,ROS则是对机器人的硬件进行了封装,不同的机器人、不同的传感器,在ROS里可以用相同的方式表示(topic等),供上层应用程序(运动规划等)调用。
  2、是一种跨平台模块化软件通讯机制

  ROS用节点(Node)的概念表示一个应用程序,不同node之间通过事先定义好格式的消息(Topic),服务(Service),动作(Action)来实现连接。

  △ROS分布特点

  △三种通讯方式的特点

  三种通讯方式的优缺点可看上表,由于很多模块化编程工具都有类似功能,这里就不具体展开了。

  基于这种模块化的通讯机制,开发者可以很方便地替换、更新系统内的某些模块;也可以用自己编写的节点替换ROS的个别模块,十分适合算法开发。

  此外,ROS可以跨平台,在不同计算机、不同操作系统、不用编程语言、不同机器人上使用。

  3、是一系列开源工具

  △几种ROS工具示意图:左上rqt_plot,右上rqt_graph,左下Rviz,右下TF

  如上图所示,ROS为开发者提供了一系列非常有用的工具,可以大大提高我们开发的效率。

  rqt_plot:可以实时绘制当前任意Topic的数值曲线;
  rqt_graph:可以绘制出各节点之间的连接状态,和正在使用的Topic等;

  TF:TF是Transform的简写,利用它,我们可以实时知道各连杆坐标系的位姿,也可以求出两个坐标系的相对位置。

  Rviz:超强大的3D可视化工具,可以显示机器人模型、3D电影、各种文字图标、也可以很方便二次开发;

  △在Rviz里显示机器人模型、3D点云、物体模型等

  △在Rviz里也可以实现方便交互功能

  除此之外,ROS还有很多其他有用的开源工具等待大家探索。

  4、是一系列最先进的算法

  △ROS包含许多先进的机器人开源项目

  除了ROS之外,世界上已经有很多非常优秀的机器人开源项目,但是ROS正逐渐将它们一一囊括在自己的范畴里。例如:

  PS:我跟ROS的其他几个开发者也正在努力将LinuxCNC整合进ROS

  OROCOS:这个开源项目主要侧重于机器人底层控制器的设计,包括用于计算串联机械臂运动学数值解的KDL、贝叶斯滤波、实时控制等功能。

  OpenRave:这是在ROS之前最多人用来做运动规划的平台,ROS已经将其中的ikfast(计算串联机械臂运动学解析解)等功能吸收。

  Player:一款优秀的二维仿真平台,可以用于平面移动机器人的仿真,现在在ROS里可以直接使用。

  OpenCV:大名鼎鼎的机器视觉开源项目,ROS提供了cv_bridge,可以将OpenCV的图片与ROS的图片格式相互转换。

  OMPL:现在最著名的运动规划开源项目,已经成了MoveIt的一部分。

  Visp:一个开源视觉伺服项目,已经跟ROS完美整合。

  Gazebo:一款优秀的开源仿真平台,可以实现动力学仿真、传感器仿真等,也已被ROS吸收。

  △左下角gazebo,右下角Rviz

  当然,除了吸收别的优秀开源项目,ROS自己也发展出许多非常优秀的项目和库。

  ORK:一个物体识别与位姿估计开源库,包含LineMod等算法,但实际使用效果还不是太理想。

  △LineMod识别效果

 
 
 
[ 行业资讯搜索 ]  [ 加入收藏 ]  [ 告诉好友 ]  [ 打印本文 ]  [ 关闭窗口 ]
 
 
展会更多+
视频更多+
点击排行
 
网站首页 | 网站地图 | 排名推广 | 广告服务 | 积分换礼 | 网站留言 | RSS订阅