什么是ROS2

ROS是机器人操作系统 的简称,它本身并不是一个操作系统,而是可以安装在现在已有的操作系统(Linux、Windows、Mac)上的一组用于构建机器人应用程序的软件库和工具集。

ROS包括两个版本 ROS1和ROS2,ROS1是在2007年由斯坦福大学人工智能实验室与机器人技术公司Willow Garage为了个人机器人项目的合作而开发的,2008年后由Willow Garage来进行推动,目前由开源机器人基金会(OSRF)负责维护和发布。它的主要组成包括ROS Mastar、 ROS Node等,不同的功能可以由不同的节点实现,节点之间可以通过发布和订阅话题来传递消息,它的本质是基于TCP/IP的Socket通信机制。不同的模块可以被单独设计,在运行时松散耦合,它执行若干种类型的通信,比如基于服务的同步RPC通信、基于话题的异步消息通信以及基于参数服务器的数据存储等。

ROS2是从零开始开发的,一个全新的ROS,主要是解决ROS1在架构时存在的一些天然缺陷,如存在Master主节点,一旦主节点挂掉,整个系统就会出现异常;通信基于TCP实现,实时性差、系统开销大;消息格式为非标准格式,没有加密机制、安全性不高等。

ROS2继承了部分ROS1的概念,如应用节点、消息通信、服务通信、Action通信等,同时引入很多新的概念,如基于RTPS(Real-Time Publish-Subscribe)协议的DDS,服务质量(Qos)等,这些新引入的特性是ROS2支持更快的通信,更彻底的分布式。

ROS2的主要功能

根据ROS2的官方网站介绍,ROS2的核心功能包括:

  • 基于话题的发布/订阅通信
  • 基于客户端(clients)和服务端(services)的服务通信
  • 支持设置和查询参数
  • 支持基于共同核心客户端库(RCL)的多语言客户端库,客户端是允许用户实现其代码的API集合,目前C++ 客户端库 ( rclcpp ) 和Python客户端库 ( rclpy ),由核心ROS 2团队维护,ROS 2社区的成员已经创建了其他客户端库,如c#、Rust、Ada、Swift等;
  • 采用DDS的发现、传输和序列化,数据处理基于标准DDS,使不同客户端语言开发的节点能够相互共享数据;
  • 对多个DDS实现的支持,可以在运行时指定不同DDS,目前完全支持Eclipse Cyclone DDS、eProsima Fast DDS和RTI Connext DDS;
  • 使用服务质量设置(Qos)处理非理想网络的通讯设置,通过修改QoS的设置,在有损信道上加强可靠性意味着发布者将重新发送网络数据包,直到收到消费者的确认;
  • 支持进程内部和进程间通讯,并使用相同的API,目前仅在C++ 中
  • 支持与ROS1通信,ROS1-ROS2通讯bridge,可用于话题和服务,尚未用于动作。
  • 单个进程中可加载多个节点,目前仅支持C++;
  • 支持具有托管生命周期的节点 ,目前仅在C++ 中;
  • SROS2安全支持, SROS2即“安全(Secure) ROS 2”,为ROS2提供了身份验证、访问控制和数据加密功能;
  • 完备的命令行自检工具,ROS2提供了各种子命令,用于查看节点、话题、服务、参数安全配置等信息;
  • 使用Launch运行和监控多节点 ;
  • 支持节点和话题的命名空间设置;
  • 提供ROS节点内的名称静态重新映射,可以将话题、服务重新命名;
  • 完善的日志管理,客户端程序库(rclcpp和rclpy)使用一个通用的日志库(rcutils)来提供日志管理功能:基于过滤器的日志调用,设置日志级别,与节点相关联的日志可以自动的使用节点的名称和命名空间;

除以上核心功能,ROS2还提供丰富的上层应用资源包,如:

RViz2: ROS2中三维可视化平台,一方面能够实现对外部信息的图形化显示,另外还可以通过rviz给对象发布控制信息,从而实现对机器人的监测与控制;

Rosbag2: 一个基于ros2系统的话题数据录制和回放工具,在实际应用中,可以使用 bag 文件来保存和恢复系统的运行状态,常用于初始数据采集及DEBUG;

Navigaton2: 基于ROS2的定位、全局路径规划、局部路径规划与避障、多点导航、插件式地图管理等功能包的合集;

Gazebo: 基于ROS2的一款免费机器人仿真软件,其提供高保真度的物理模拟,一整套传感器模型,以及对用户和程序非常友好的交互方式;

Image_transport: image订阅和发布,它为低带宽压缩格式(compressed formats)image传输提供透明支持;

geometry2:用于实现坐标变换的资源包,包括tf2,tf2_kdl,tf2_ros等。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值