AcmeGCS-21-原生ROS2支持

在前面的分享中,我们介绍了在

AcmeGCS-18-支持ROS2

AcmeGCS采用Micro-XRCE-DDS-Client中间件的方式接入ROS2网络,与PX4的MicroDDS组件采用相同方法

PX4-19-MicroDDS

这种方式的优点是轻量级,对部署的平台要求低,不需要ROS2环境支持即可运行。

缺点也很明显,

  • 只能进行消息的订阅和发布,不能使用ROS2丰富的软件包

  • Micro-XRCE-DDS是针对嵌入式环境设计,对消息包的大小也有限制,对于一般的消息订阅收发没有影响,但是点云数据就非常受限。

  • 必须启动Micro-XRCE-DDS-Agent节点才能接入ROS2网络

针对这样的问题,AcmeGCS对构建系统进行完善,以实现原生ROS2软件包的支持。

AcmeGCS基于QT开发,可以非常方便的使用第三方C++库,不过原本的build系统采用QT的qmake,并不兼容ROS2采用的cmake系统。

重构AcmeGCS的构建系统,以支持cmake方式构建,并引入ROS2软件包即可在AcmeGCS中原生使用ROS2了。

AcmeGCS通过Link抽象层管理不同的连接实现,ROS2作为Link层接入到AcmeGCS中,实现与应用层的隔离。

如下图所示: