问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

ROS 2机器人开发入门:从ROS到ROS 2的技术演进

创作时间:
作者:
@小白创作中心

ROS 2机器人开发入门:从ROS到ROS 2的技术演进

引用
CSDN
1.
https://m.blog.csdn.net/m0_70020530/article/details/145621917

机器人操作系统(ROS)早已成为开发者与物理世界对话的桥梁,而ROS2以其更强的实时性、安全保密性、跨平台特性和去中心化架构,正在重新定义机器人开发的边界。本系列笔记旨在记录学习ROS 2的过程,读者可借鉴参考,有误请指正。当你的第一个机器人突然开始“薛定谔式运动”时,那不是故障,而是再用独特的方式与你say hello。

一、ROS 简单介绍

【Robot Operating System】:本身并不是操作系统,而是可以安装在现有(Linux、Windows、Mac)上的软件库工具集

1.ROS设计目的

简化在各种机器人平台上创建复杂而强大的机器人行为任务。 例如轮式移动机器人,它的行为架构就可依据ROS来分为感知+决策+控制三大板块,从而使得机器人行为变得更加清晰明了。不同的板块采用不同技术原理,大大简化复杂的行为任务。依此假设而言,就可假定设计如下:

  • 感知:激光雷达、深度相机、IMU、里程计、碰撞感知
  • 决策:建图、路径规划算法、定位算法
  • 控制:轮子驱动

2. ROS架构

ROS为简化机器人开发,设计了一整套通信机制(话题、服务、参数、动作),实现了将各个组件连接起来。 ROS Master:主节点,若主节点挂掉,会造成整个系统通信异常。

3.ROS存在的问题

  • 不稳定
  • 通信基于TCP实现,实时性差、系统开销大
  • 对Python3支持不友好,需要重新编译
  • 消息机制不兼容
  • 没有加密机制、安全性不高

二、ROS 2(ROS Pro版)

1.ROS 2简要介绍

ROS2是在ROS基础上设计开发的第二代机器人操作系统, ROS2继承了ROS,又带来了很多新的功能。 更大程度上可以简化机器人开发任务,加速机器人落地。

ROS2新概念:

  • 可用Python编写的Launch文件
  • 多机器人协同通信支持
  • 支持安全加密通信
  • 同一个进程支持多个节点
  • 支持Qos服务质量
  • 支持节点生命周期管理
  • 高效的进程间通信

2.ROS 2与ROS架构对比

  1. OS层

从原来的只支持linux平台变成了支持windows、mac甚至是嵌入式RTOS平台

  1. 中间层

ROS 1 中通信依赖于底层的TCP和UDP协议,而ROS 2不造通信的轮子,通信直接更换为更加复杂也更为完善的数据分发服务(Data Distribution Service,DDS)系统通信机制,使得ROS 2的实时性、可靠性和连续性上都有了增强。

  1. 应用层

在ROS 1中有且仅有一个Master节点,所有节点都需要听它指挥,如果Master节点突然罢工,那么整个ROS系统都会面临奔溃。为了增强系统的健壮性和可扩展性,ROS 2创新性的摒弃了这一设计,转而采用Discovery自发现机制,允许节点自主寻找并建立稳定的通信连接,从而避免单点故障的风险。

3.DDS通信协议

DDS是物联网中广泛应用的一种系统通信机制,类似于大家常听说的5G通信,DDS是一个国际标准,能够实现该标准的软件系统不是唯一的,所以可以选择多个厂家不同的DDS机制,每家的性能不同,使用的场景也不同。

4.ROS 2 版本

5.ROS 2保留概念

ROS 2保留了以下ROS 1中的概念,便于开发者从ROS 1迁移到ROS 2:

  • 工作空间(Workspace):放置各种开发文件
  • 功能包(Package):功能源码的聚集地
  • 节点(Node):是代码编译生成的一个可执行文件
  • 话题(Topic):节点间传递数据的桥梁
  • 服务(Service):用于某些机器人功能和参数的配置
  • 通信接口(Interface):数据传递的标准结构
  • 参数(Parameter):可定义或查询机器人的配置参数
  • 动作(Action):完整行为的流程管理
  • 分布式通信(Distributed Communication):多计算平台的任务分配
  • DDS(Data Distribution Service):机器人的神经网络
© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号