关键词:
ROS
嵌入式实时操作系统
DDS
QoS
摘要:
近年来,由于人工智能行业的高速成长,人工智能、万物互联也越来越成了人工智能生产的最新趋势。但人工智能系统往往存在开发周期过长、无法复用的弊端,不符合开发者的需求。斯坦福大学研发的机器人操作系统ROS(Robot Operation System)作为一种先进的人工智能中间件,具有发送/订阅的消息机制,成功实现了机器人软件系统中不同模块间的信息解耦,极大地提高了机器人软件中系统模块的可复用性。为克服ROS的缺点,ROS官方继而研制了ROS2,在保留其优秀的发布/订阅机制的同时,还使用DDS(数据分发服务)作为底层的通信协议,去掉了ROS的中心节点,实现了真正的去中心化,使ROS2成为了一个真正的分布式机器人系统,对于实时性和稳定性也有提升。
ROS2的官方版本不支持微控制器或国产RTOS,这限制了ROS2的发展。除此之外,目前还有许多机器人产品有低功耗和小型化的需求,并且机器人产品上存在的许多微控制器板卡是无法直接与ROS2进行通信的,所以需要一种可以使运行在微控制器上的ROS2节点与运行在PC端的标准ROS2节点进行通信的方法。因此,ROS2在国产嵌入式操作系统中的应用研究将有助于ROS2在机器人领域中的广泛使用,对于扩展ROS2的应用范围以及机器人的国产化都会起到积极的作用。
本研究的主要工作是:实现了运行在资源有限的微控制器上的ROS2节点可以通过代理与运行在PC机上的ROS2节点进行无缝兼容的通信。选取中国电子科技集团第32研究所自主研制的锐华嵌入式实时操作系统作为本研究的目标操作系统,将其移植到STM32微控制器上;使用面向资源受限的Micro XRCE-DDS作为ROS2的底层DDS实现,并对DDS抽象层和客户端库进行了适用于微控制器的修改;提出一种QoS调控机制,对服务质量进行监控和动态调节。实现了ROS2对国产嵌入式实时操作系统的支持扩展。
经过编写用例和功能性、非功能性测试,本研究对ROS2完成了国产嵌入式实时操作系统扩展,在微控制器上运行的ROS2节点可以无缝执行与PC上运行的节点兼容的发布和订阅操作。最后,本研究采用Turtle Bot3机器人构建了移动机器人目标检测系统,将轻量化的Yolo V3算法应用于嵌入式设备,并在实际场景中进行行人检测与跟踪测试。结果表明,实时性和稳定性均满足要求,达到了本研究的研究目标。