~欢迎关注~
微信公众号:古月居
新浪微博:古月春旭
知乎专栏:古月居
原文链接:古月私房课 | 风靡机器人圈的ROS到底是什么
古月居联合深蓝学院推出的“古月私房课”第一弹——《ROS机械臂开发:从入门到实战》已经上线啦,欢迎各位小伙伴前来围观,以下是第二讲《风靡机器人圈的ROS到底是什么》的精华内容。
大家好,这里是古月居和深蓝学院联合推出的《ROS机械臂开发:从入门到实战》的第二讲——风靡机器人圈的ROS到底是什么,我是主讲人胡春旭。
本讲我们将从以下五个方面给大家介绍ROS是什么?
ROS已经成为机器人领域的普遍标准,大家多少都用过或者听说过,那么ROS到底是什么?机器人操作系统的概念其实比较模糊,有没有一个更清晰的定义。
古月君认为ROS早期发布的这张图更能明确的说明ROS到底是什么?ROS = 通信机制 + 开发工具 + 应用功能 + 生态系统,接下来我们就从这四个方面深入剖析ROS的含义。
首先来看ROS的通信机制,这也是ROS最底层的原理。
ROS系统可以用一张计算图来描述,图中有处理各种机器人功能的节点,以及节点之间的通信数据。
计算图中会涉及以下概念:节点是处理功能的进程,节点管理器负责建立节点之间的连接,话题和服务是节点之间的通信机制。前者单向传输,后者带有反馈。
这里我们必须要理解话题与服务之间的区别,大家可以参考以下表格说明:
ROS的第二大部分是开发工具,可以大大提高我们机器人开发的效率。
ROS主要基于Linux实现,最为常用的工具就是命令行工具了,我们可以使用丰富的命令查询、控制、编译整个ROS系统。
坐标变换是机器人的基础理论,虽然理论并不复杂,但实现时需要一些空间想象力,TF可以帮助我们减轻计算压力,轻松管理系统中的所有坐标系。
ROS还基于Qt设计了一系列可视化工具——Qt工具箱,其中可以显示图像、日志、数据曲线、控制按键等等功能。
Rviz同样基于Qt开发,但是一个更加通用的显示平台,不仅可以显示机器人模型、地图环境、传感器信息等,还可以通过插件机制无限扩展成为一个机器人上位机。
Rviz的主要功能是显示数据,前提当然是有数据,那如果没有怎么办?这就需要仿真创造数据了,Gazebo就是一款三维物理仿真平台,可以实现机器人系统的仿真。
ROS的第三大部分——应用功能,也是资源最为丰富的部分,全球各地的开发者都在为这个部分作出贡献。
比如我们常用的导航框架,只需要完成传感器的数据发布,很快就可以实现移动机器人的导航功能。
ROS中还有多种SLAM建图的功能包。
我们课程主讲的ROS机械臂开发更离不开MoveIt!的支持。
最后一个部分是ROS生态系统,这个是ROS快速发展的大环境。
其中包括的资源众多,相对也比较松散,大家最好利用google等搜索工具来查找。
ROS社区的活跃度也呈指数级在上升,中国即将超过美国成为使用ROS的第一大国。
ROS在推动机器人快速发展的同时,也已经成为机器人领域的事实标准。
以上就是本讲内容精要,更多精彩,欢迎大家关注“古月居”。
完整内容和课程视频欢迎大家关注
《ROS机械臂开发:从入门到实战》
更多内容欢迎关注:
微信公众号:古月居 (guyue_home)
新浪微博:古月春旭
知乎专栏:古月居