1. 项目概览

1.1 是什么
Autonomy(libautonomy)是一套自主移动机器人软件框架,核心用 CMake + C++17 构建,提供:
2D 导航栈:代价地图、全局规划、局部控制、行为树编排
定位与建图:视觉 SLAM(Atlas)、地图服务
通信运行时:Autolink(Node / Channel / Service / Action)
可选桥接:gRPC、ROS 2 兼容消息(
commsgs)
设计目标:可独立运行(不强制依赖 ROS 2),同时保持与 Navigation2 等生态的语义对齐,降低迁移与集成成本。
1.2 设计原则
原则 |
说明 |
|---|---|
模块化 |
各子系统以独立库形式组织,通过接口与配置解耦 |
插件化 |
规划器、控制器、BT 节点等以插件动态加载 |
配置驱动 |
Lua → Protobuf 统一配置管线 |
Nav2 对齐 |
接口语义、BT 结构、代价地图用法对标 Navigation2 |
跨平台 |
x86-64 / ARM64;推荐 Ubuntu 22.04 |
1.3 与 ROS 2 的关系
维度 |
Autonomy |
ROS 2 |
|---|---|---|
运行时 |
Autolink(可进程内/共享内存/RTPS) |
rclcpp / DDS |
是否必须 ROS |
否,核心可独立运行 |
是 |
消息类型 |
|
标准 |
导航栈对标 |
planning / control / navigator |
nav2_* |
可视化 |
Bridge / 外部工具 |
RViz2、Foxglove 等 |
Autonomy 不是 ROS 2 的替代品,而是可独立部署、并按需与 ROS 2 工具链互操作的框架。详见 §6 生态集成。
1.4 核心能力一览
领域 |
模块 |
状态 |
|---|---|---|
通信 |
|
✅ 运行时完整 |
定位 |
|
✅ Atlas 已实现 |
地图 |
|
✅ |
规划 |
|
✅ |
控制 |
|
⏳ 骨架 + Checker,主循环待完成 |
编排 |
|
⏳ 配置/XML 就绪,BT 栈待恢复 |
桥接 |
|
⏳ 部分实现 |
系统 |
|
✅ 统一入口 |
1.5 适用场景
室内/结构化环境的移动机器人导航研发
需要脱离 ROS 2 运行时的嵌入式或车载部署
基于 Navigation2 经验、希望迁移到统一 C++ 框架的团队
视觉 SLAM + 2D 导航的复合系统原型
1.6 相关链接
资源 |
地址 |
|---|---|
GitHub |
https://github.com/quandy2020/autonomy |
Gitee |
https://gitee.com/quanduyong/autonomy |
在线文档 |
https://autonomy.readthedocs.io |
许可证 |
Apache 2.0 |