在前面的分享中,我们介绍了在
AcmeGCS采用Micro-XRCE-DDS-Client中间件的方式接入ROS2网络,与PX4的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中,实现与应用层的隔离。
如下图所示: