当前位置: 首页 > news >正文

ROS2入门介绍

1 系统架构

img

1.1 操作系统层

是由Linux、Windows或者macOS系统建立的,驱动计算机硬件、底层网络通信等实现都是交由操作系统来实现的。

1.2 DDS实现层

  • DDS全称Data Distribution Service(数据分发服务),是由OMG发布的分布式通信规范,采用了订阅发布模型,以中间件的形式提供通信服务、并提供多种QoS策略,保障数据进行实时、高效、灵活的分发。更深入理解DDS是一个以数据为中心的中间件协议和API标准,意味用户只关心自己想要的数据,数据通过Topic进行标识,这样发布者根据主题发布数据,订阅者根据自己感兴趣的主题订阅数据。
    img

1.3 抽象DDS层

这一层将DDS实现层进一步的封装,使得DDS更容易使用。原因在于DDS需要大量的设置和配置(分区,主题名称,发现模式,消息创建,...),这些设置都是在ROS2的抽象层中完成的。

1.4 ROS2客户端库RCL

RCL(ROS Client Library)ROS客户端库,其实就是ROS的一种API,提供了对ROS话题、服务、参数、Action等接口。

1.5 应用层

应用层就是开发功能实现代码以及ROS2开发的各种常用的机器人相关开发工具所在的层了。

下图为ROS2的API的实现层级,最新下面的是第三方的DDS,rmw(中间件接口)层是对各家DDS的抽象层,基于rmw实现了rclc,基于rclc,ROS2官方实现了rclcpp和rclpy。
img

2 ROS2节点

2.1 基本介绍

ROS2中每一个节点也是只负责一个单独的模块化的功能(比如一个节点负责控制车轮转动,一个节点负责从激光雷达获取数据、一个节点负责处理激光雷达的数据、一个节点负责定位等等)
img

2.2 节点间的交互

在激光雷达的例子,一个节点负责获取激光雷达的扫描数据,一个节点负责处理激光雷达数据,比如去除噪点,建图等。这时节点与节点之间就必须要通信了,而ROS2中一共有四种通信方式:

  • 话题-topic
  • 服务-services
  • 动作-Action
  • 参数-parameter
    img

3 ROS2工作空间

  • 工作空间是包含若干个功能包的目录,这个目录下有src/目录(自己创建)。
  • src/目录下来实现开发不同的功能包,功能包相当于一个“软件模块”或“工具箱”。一个功能包可以包含一个或多个节点,同时还可以包含库、配置文件、启动文件、数据文件以及描述包信息和依赖关系的配置文件。
  • 功能包的作用是将不同的功能(如移动控制、视觉感知、自主导航等)划分到不同的包中,尽量降低各个功能模块之间的耦合关系,使得功能包可以独立分发、编译和复用。当需要以功能包为单位提供功能时,这种模块化的组织方式会非常方便,从而提高了软件的复用率和维护效率

4 编译工具

colcon是一个功能包构建工具。

4.1 编译工程

进入工作区目录,运行build命令

colcon build#只编译一个包
colcon build --packages-select <package_name>

构建完成后,在src同级目录我们应该会看到 build 、 install 和 log 目录

├── build
├── install
├── log
└── src

build 目录存储的是中间文件。对于每个包,将创建一个子文件夹,在其中调用CMake
install 目录是每个软件包将安装到的位置。默认情况下,每个包都将安装到单独的子目录中
log 目录包含有关每个colcon调用的各种日志信息

4.2 运行编译后的节点

运行前,需要运行如下指令,主要作用是将当前工作空间中刚刚编译生成的功能包路径,加载到当前终端的环境变量中

source install/setup.bash

节点运行命令,运行功能包中的节点程序

ros2 run <package_name> <executable_file>
http://www.jsqmd.com/news/1336280/

相关文章:

  • 找铁螺丝工厂推荐几家怎么选才不踩坑 - 热点品牌推荐
  • 螺旋速冻机加工厂推荐:如何挑选稳定高效的冷链加工设备 - 热点品牌推荐
  • 138、LLC谐振变换器的数字保护控制
  • 为什么你的AI学习平台用户留存率不足18%?3个底层架构缺陷正在 silently 毁掉个性化体验
  • 线下门店做数字化收银,抖音支付哪家好?聊聊靠谱的抖音聚合支付服务商选择逻辑 - 品牌测评网
  • 苏州本地商家对接新媒体代运营怎么联系更稳妥?2026参考 - 热点品牌推荐
  • 找主板排线优质厂商联系方式,这几家企业值得关注 - 热点品牌推荐
  • 2004年研究生数学建模竞赛B题:有交货时间限制的大规模实用下料问题
  • 2026 年广东二氧化硅厂家推荐广州顺泰新材料:疏水二氧化硅厂家、开口剂二氧化硅厂家推荐 - 天下观知
  • CCF GESP 五级真题考频与知识点分析-ds
  • 139、LLC谐振变换器的数字通信接口
  • Unity 2D游戏敌人AI系统:基于PlayMaker状态机与2D Toolkit的实战开发
  • 2026年厂房改造如何选抛光固化地坪施工队伍如何选择 - 热点品牌推荐
  • 2026年国内优质白麻路沿石工厂实力及选购参考 - 热点品牌推荐
  • 基金持股数据统计分析:用Python追踪机构持仓变化与抱团效应
  • 性价比高的台柜非标定制制造厂家怎么选才靠谱 - 热点品牌推荐
  • 2026 年 8 月新发布:岱山评价高的凉皮机厂家地址制造厂深度解析与优选指南,想开凉皮店别乱找?附能挖到靠谱货源的具体位置 - 企业官方推荐【认证】
  • 从零搭建AI播客工作室:硬件清单×软件链路×成本核算(含3种ROI超200%的变现组合)
  • 满语学习入门:从零搭建虚拟学习环境与高效学习路径规划
  • Unity无限滚动列表优化:OSA插件多预制体实战指南
  • 先看边界再看参数:OCR文字识别接口的适用场景与实现细节
  • 北京网站建设推广那些事儿:从0到1打造高转化流量引擎
  • Unity相机抖动插件Camera-Shake集成与应用实战指南
  • 常州离婚财产分割与子女抚养实务参考:一位15年家事律师的办案思路 - 本地品牌推荐
  • 找410钢丝定制厂家哪家靠谱?看准这几点很关键 - 热点品牌推荐
  • 140、LLC谐振变换器的PMBus协议实现
  • 找海曙不锈钢钣金制品定做热门厂家,2026年看这篇就够了 - 热点品牌推荐
  • Golang - 备忘录模式(Memento Pattern)
  • 南通三星镇中捷缝纫机购机介绍
  • SpringBoot+Vue全栈旅游管理系统架构解析