3、ROS2编程入门与实践

ROS2编程入门与实践

1. ROS2的DDS实现

ROS2能够自动发现发布者和订阅者,无需集中式服务。这种发现是通过多播实现的,不过后续连接为单播。市面上有多家DDS供应商,如FastDDS、CycloneDDS和RTI Connext,它们都全部或部分实现了由对象管理组织(OMG)定义的DDS标准。ROS2可以使用这些DDS实现,大多数开发者在使用时可能察觉不到差异,但在对延迟、数据量或资源使用有高性能要求时,就需要根据客观标准进行选择。

这些DDS实现的API并不相同,为简化rcl层,引入了名为rmw的底层,它为rcl程序员提供了统一的API来访问每个受支持的DDS实现的功能。选择使用哪个DDS很简单,只需修改环境变量 RMW_IMPLEMENTATION 即可。在Foxy发行版中,官方的DDS版本是FastDDS,而在Galactic中则是CycloneDDS,这些供应商之间存在竞争,有望让ROS2社区从中受益。

2. 编程环境与工具要求

在学习ROS2编程时,推荐使用C++作为主要编程语言,同时也会包含Python示例。选择C++是因为在机器人开发中,编译型语言通常比解释型语言更具优势。此外,建议使用Linux(特别是Ubuntu GNU / Linux 20.04 LTS),因为它是ROS2的参考平台,在机器人领域占据主导地位。

在编程过程中,会使用到C++17的许多特性,如智能指针( shared_ptr unique_ptr )、容器( vector list

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值