智元自主研发的机器人中间件AimRT正式开源上线。

相关链接

  • 官网:https:///
  • 文档:https://docs./index.html
  • GitHub:https://github.com/AimRT/AimRT
  • Gitee:https:///robot-os/AimRT

AimRT的特点

1、现代化、轻量级与高效性

AimRT基于现代C++新标准开发,摒弃了对其他库的依赖,实现了轻量级、无依赖的架构设计。这不仅提升了开发效率,还降低了系统资源的消耗,使得AimRT成为ROS2等主流开源中间件的轻量替代方案。

2.、高兼容性与灵活部署

AimRT能够支持ROS2、gRPC、HTTP及MQTT等多种通信协议,为开发者提供了灵活的选择空间。无论是机器人端、边缘端还是云端,AimRT都能高效运行,满足各种部署需求。

3.、强大的调试与性能分析工具

AimRT提供了完善的调试和性能分析工具,以及良好的可观测性支持。这些工具能够帮助开发者快速发现并解决系统中的问题,确保机器人系统的稳定运行。

4.、丰富的插件接口与拓展性

AimRT提供了全面的插件开发接口,并附带十余种官方插件。这些插件涵盖了机器人开发的多个方面,如运动控制、图像处理等。同时,智元机器人也鼓励开发者进行二次开发,以适应更多特殊场景的需求。

AimRT的核心设计理念

1、Initialize 阶段和 Start 阶段

2、逻辑实现与部署运行分离

AimRT 的一个重要设计思想是:将逻辑开发与实际部署运行解耦。

3、AimRT 中的线程资源

4、兼容第三方生态

AimRT 的底层通信是交给插件来执行的,也可以借此实现一些兼容第三方生态的功能。

AimRT的架构

AimRT的架构设计巧妙地平衡了硬件资源与高层应用软件之间的需求,为开发者提供了一个清晰、易用的开发环境。AimRT充分考虑了嵌入式系统的特性和需求,其主要模块包括核心管理模块、通信模块、设备驱动模块、算法库模块以及应用开发模块。

1. 核心管理模块

核心管理模块是AimRT的中枢神经,负责系统资源的高效管理和调度。它主要包括以下几个子模块:

  • 任务管理: 负责创建、删除和管理系统中的任务,包括实时任务和非实时任务,确保各个任务在系统中的合理执行和优先级调度。
  • 内存管理: 高效管理系统内存资源,提供动态内存分配和释放功能,确保内存资源的合理利用和高效回收。
  • 错误处理: 提供完善的错误捕获和处理机制,在系统运行过程中检测和处理各种可能的异常情况,保障系统的稳定性和可靠性。

2. 通信模块

通信模块实现了功能模块之间的高效通信,支持多种通信协议和方式。主要包括:

  • 消息队列: 支持任务间通过消息队列进行数据传递,确保数据的有序传递和处理。
  • 共享内存: 允许任务间通过共享内存进行数据共享,实现高速的数据交换。
  • 网络通信: 支持TCP/IP、UDP等常用网络协议,满足远程数据通信需求。
  • 串口通信: 提供对常见串行通信接口(UAR、CAN等)的支持,方便与外部设备进行数据交互。

3. 设备驱动模块

设备驱动模块为开发者提供了丰富的设备驱动支持,能够方便地接入各种传感器和执行器。主要包括:

  • 传感器驱动: 支持各种常见传感器(如摄像头、激光雷达、惯性测量单元等),并提供标准化接口,方便数据读取和处理。
  • 执行器驱动: 提供对各种执行器(如电机、伺服机构等)的驱动支持,方便进行运动控制和任务执行。
  • 存储设备驱动: 支持常见的存储设备(如SD卡、USB存储器等),方便数据存储和读取。

4. 算法库模块

算法库模块集成了一系列常用的机器人算法,涵盖路径规划、运动控制和环境感知等方面,开发者可以直接调用这些算法库,加速应用开发。主要包括:

  • 路径规划算法: 提供A*、Dijkstra、RRT等常见路径规划算法,帮助机器人在复杂环境中找到最优路径。
  • 运动控制算法: 支持PID控制、MPC(模型预测控制)等多种控制算法,确保机器人按照预定轨迹运动。
  • 环境感知算法: 集成SLAM(同步定位与地图构建)、目标识别和跟踪等算法,帮助机器人实时感知和理解周围环境。
  • 数据处理算法: 提供信号滤波、数据融合等算法,提升传感数据的精度和可靠性。

5. 应用开发模块

应用开发模块为开发者提供了一系列简便的API和工具链,帮助快速开发和部署机器人应用。主要包括:

  • 标准化API接口: 提供统一的API接口,方便调用各个模块的功能,加速开发进程。
  • 开发工具链: 集成丰富的开发工具(如代码编辑器、调试器、编译器等)和插件,提升开发效率。
  • 仿真环境: 提供虚拟仿真环境,开发者可以在仿真环境中测试和验证算法和功能,减少硬件调试的时间和成本。
  • 调试工具: 提供实时调试和监控工具,帮助开发者快速定位和解决问题,提升系统稳定性。

最后

AimRT的开源,是智元机器人对机器人技术发展的又一次贡献。它不仅为嵌入式行业相关工作者和学生提供了一个高效、灵活的开发工具,更为整个机器人行业的发展注入了新的活力。

随着更多企业和开发者的参与,AimRT将不断壮大其生态系统,推动机器人技术的不断创新与发展。

让我们共同关注AimRT!