最近热点

chatgpt全称为“chat Generative Pre-trained Transformer

ChatGPT: Optimizing Language Models for Dialogue (openai.com)

 

 

ROS系统--初识ROS - 知乎 (zhihu.com)

ROS系统--初识ROS

 

背景介绍

本人从事自动驾驶系统开发行业,最近想从事算法开发的工作。苦于公司目前没有成熟的操作系统以及硬件设施进行相关模块的算法验证。查阅当前的可用的自动驾驶开源的操作系统包括百度的apollo以及autoware系统都或多或少的对ROS系统进行了沿用或者改进,因此ROS系统的学习对未来进行自动驾驶的算法模块仿真验证,软件架构设计有非常大的帮助。

ROS系统介绍

  • 什么是ROS

这个问题的答案无论是在百度还是CSDN等社区进行搜索的话,都会有一堆答案。

 

ROSwiki解释

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

简单来说:ROS是机器人操作系统(Robot Operating System)的英文缩写。ROS是用于编写机器人软件程序的一种具有高度灵活性的软件架构。它具备通讯机制,开发工具,应用功能,生态系统四大功能。

-----图片摘自 古月居《ROS入门21讲》

  • ROS的历史

ROS发展到现在,2020已发布最新版本的ROS Noetic版本,但目前相关的教材以及视频教程都是用的Indigo或者Kinetic版本,因此,笔者不建议目前初学者直接使用Noetic版本。而且当前系统ROS系统主要是部署在Linux系统上,不同的ROS系统适配不同的Linux系统,具体可参考ROS的官网http://wiki.ros.org进行安装 。

  • ROS通讯机制

点对点的分布式通信机制是ROS的核心,使用了基于TCP/IP的通信方式,实现模块间点对点的松耦合连接,可以执行若干种类型的通信,包括基于话题(Topic)的异步数据流通信,基于服务(Service)的同步数据流通信,还有参数服务器上的数据存储等。

正是基于上述的通信机制,ROS的实时性、稳定性、兼容性无法得到保证,因此无法进行大规模的商用或者量产,因此APOLLO平台针对这些缺点进行了改进,详细的说明可参考资深架构师首次解密Apollo ROS有何不同! 。另外,ROS 2.0也通过采用DDS(数据分布服务)的通讯方式来提高通讯的实时性。

  • ROS开发工具
  1. ROS原生工具,比如rviz、qt工具箱、命令行工具等;
  2. 编译和测试工具,基于已有工具进一步的包装;
  3. 第三方工具,基于成熟工具,使用一些插件或接口和ROS系统兼容

ROS应用功能

•底层驱动

涉及很多传感器、执行器的驱动,常用硬件在ROS匹配的驱动功能包可基于此网站 

•上层功能

机器人导航,机器视觉,机器语音,MoveIt 机械臂控制

•控制模块

控制器管理器,控制器,硬件资源,机器人硬件抽象,真实机器人

•常用组件

常用组件,比如TF、URDF、Message

  • ROS生态系统

生态系统是指在一个特定环境内,相互作用的所有生物和此环境的统称。

国内外常用的机器人平台大部分都已经支持ROS系统 

1.机器人硬件设计参考

2.辅助机器人原型搭建

3.基于应用功能包的二次开发

4.算法验证

5.学习机器人系统

  • 使用ROS系统益处
  1. ROS中的功能包非常丰富,一定可以找到与我们研究方向相关的应用功能,虽然不太可能直接应用在产品开发中,但还是可以减少类似重复造轮子的工作。
  2. 如果我们是算法工程师,手上又没有现成的机器人平台,那么使用ROS中的机器人可以随便挑随便选,放在物理仿真环境中,想怎么用怎么用,还分文不要。
  3. 无论我们是机器人方向刚入门的初学者,还是资深工程师,都不可能掌握机器人方方面面的知识,那么借助ROS学习更多机器人相关的技能,一定可以事半功倍
  4. 最重要的是:开源自动驾驶框架Autoware也是依赖于ROS 1进行的开发和使用。

Autoware系统

Autoware已成为公认的开源项目。Autoware也是世界上第一个用于自动驾驶技术的“多合一”开源软件。而同样的自动驾驶平台,2017年4月发布的Baidu apollo则可以说是Autoware的“小老弟”。目前其基于ROS 1,并在Apache 2.0许可下可用。它包含以下模块:

  1. 定位(Localization ):通过结合GNSS和IMU传感器的3D地图和SLAM算法来实现定位。
  2. 检测(Detection ):使用具有传感器融合算法和深度神经网络的摄像机以及LiDAR。
  3. 预测和规划(Prediction and Planning ):基于概率机器人技术和基于规则的系统,部分还使用深度神经网络。
  4. 控制(Control):Autoware向车辆输出的是速度和角速度的扭曲量。尽管控制量的主要部分通常位于车辆的线控控制器中,但这些是Control的一部分。

----以上摘自Autoware.AI 官网

后续的文章中将分别进行ROS系统的使用以及Autoware系统的使用跟大家进行交流与分享

第一次进行知乎文章的编写与发布,望大家多多给予交流与指导。

如有任何问题都可以在下方进行评论与留言,我会及时予以答复!

发布于 2021-02-28 11:56
posted @ 2023-02-08 10:26  七君子风  阅读(19)  评论(0编辑  收藏  举报