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

ROS 2机器人开发入门:从ROS到ROS 2的核心演变

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

ROS 2机器人开发入门:从ROS到ROS 2的核心演变

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

机器人操作系统(ROS)早已成为开发者与物理世界对话的桥梁,而ROS2以其更强的实时性、安全保密性、跨平台特性和去中心化架构,正在重新定义机器人开发的边界。本文将带你从零开始,全面了解ROS 2的核心概念、架构设计以及与ROS 1的主要区别,帮助你快速掌握ROS 2机器人开发的基础知识。

前言

机器人操作系统(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平台

2.中间层

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

3.应用层

在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号