加入星计划,您可以享受以下权益:

  • 创作内容快速变现
  • 行业影响力扩散
  • 作品版权保护
  • 300W+ 专业用户
  • 1.5W+ 优质创作者
  • 5000+ 长期合作伙伴
立即加入
  • 正文
    • AimRT的特点
    • AimRT的核心设计理念
    • AimRT的架构
  • 相关推荐
  • 电子产业图谱
申请入驻 产业图谱

智元开源机器人中间件AimRT

09/26 15:08
1056
阅读需 7 分钟
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

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

相关链接

    官网:https://aimrt.org/文档:https://docs.aimrt.org/index.htmlGitHub:https://github.com/AimRT/AimRTGitee:https://gitee.com/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!

相关推荐

电子产业图谱

本公众号专注于嵌入式技术,包括但不限于C/C++、嵌入式、物联网、Linux等编程学习笔记,同时,公众号内包含大量的学习资源。欢迎关注,一同交流学习,共同进步!