Marathongo 是一个面向人形机器人马拉松比赛场景的导航全栈开源方案,聚焦于人形机器人在大尺度室外环境中的高速、稳定、自主运行能力。
朗毅机器人是一家专注于端侧具身大脑的公司,在感知导航与机器人操作方面具有多年的核心技术积累和工程化落地经验。开源这个仓库的目标,不是提供一个单点算法 Demo,而是希望把一套经过多平台验证、可扩展、可裁剪的实战框架开放给机器人研究者与产业伙伴,帮助大家更快地完成自身机器人平台的适配与验证。
本仓库强调以下几个核心特征:
- 大规模室外场景下的鲁棒定位与导航能力。
- 从极简方案到复杂方案的多技术路线并行实现。
- 视觉感知、激光雷达、定位与控制链路的多模块协同。
- 面向真实机器人适配,尽可能接近开箱即用。
- 代码、训练与部署相关内容尽可能完整开放。
以下动图展示了 Marathongo 在不同机器人平台、不同昼夜环境以及巡线、奔跑、避障等场景下的部分运行片段。
人形机器人马拉松并不是一个单纯的路径跟踪问题。它通常同时包含以下挑战:
- 长距离室外赛道,定位漂移不能持续累积。
- 高速运动状态下,系统需要兼顾稳定性与实时性。
- 赛道中既有明确边界,也可能出现临时障碍、机器人干扰和局部遮挡。
- 机器人平台差异较大,不同传感器、控制接口、运动能力之间存在明显异构性。
Marathongo 正是在这样的背景下构建的。它试图回答一个更工程化的问题:
如何让不同的人形机器人,能够更快接入一套经过真实场景验证的导航框架,并在大规模室外高速运动任务中稳定工作。
本仓库从总体上由以下几部分组成:
面向大规模室外场景的鲁棒定位与建图模块,是整套系统稳定运行的重要基础。
它重点解决的是:
- 长距离运行中的全局一致性与定位稳定性。
- GNSS、IMU、LiDAR 等多源信息的融合利用。
- 面对户外动态环境、坡道、遮挡和局部退化时的鲁棒性。
如果你关注的是“机器人如何在几十分钟、数十公里级别的室外任务中保持可靠定位”,那么 glio_mapping 是这个仓库中最核心的基础能力之一。
这是一条更偏极简、轻量、容易理解和快速接入的技术路线,主要用于巡线与基础避障。
它的特点是:
- 系统相对简洁,适合快速上手与原型验证。
- 巡线效果整体较好,适用于希望先尽快跑通系统闭环的用户。
- 避障链路具备基础能力,但当前调试成熟度相对不足。
如果你的目标是先用较低复杂度验证整机导航能力,这一路线会是更直接的切入点。
这是更完整、更复杂、工程化程度更高的一条巡线避障技术路线。
它包含更完整的局部规划、控制与系统集成逻辑,适合:
- 对机器人真实比赛表现有更高要求的场景。
- 需要结合更复杂障碍处理策略的用户。
- 希望在已有基础上继续深入优化控制、规划与系统协同的团队。
相较于极简路线,marathontracking 更接近一套面向实战落地的导航框架实现。
这是仓库中的视觉感知部分,包含障碍物识别相关的数据、训练与部署代码。
这一部分的主要特点包括:
- 面向机器人场景的视觉障碍物识别能力。
- 自建数据集相关流程与训练代码开放。
- 推理部署链路一并提供,便于用户继续接入自己的系统。
需要说明的是,视觉与导航的最终在线融合,仍然依赖具体机器人平台上的标定与系统集成工作。也就是说,我们开源了训练与部署相关能力,但用户仍需根据自身硬件完成标定和融合接入。
在真实机器人项目中,并不存在唯一正确的导航方案。不同团队面临的约束往往不同,例如:
- 算力预算不同。
- 传感器组合不同。
- 比赛策略不同。
- 平台控制精度和动态性能不同。
- 更看重“快速跑通”还是“复杂场景上限”。
因此,Marathongo 并没有强行把所有能力收束到单一方案,而是同时保留:
- 以
tangent_arc_navigation为代表的极简路线。 - 以
marathontracking为代表的复杂路线。 - 以
glio_mapping为代表的高鲁棒定位底座。 - 以
vision_part为代表的多模态感知补充能力。
这样的组织方式更适合开源社区使用。研究者可以从中挑选最适合自己平台的一部分,也可以将多条路线组合起来,形成适合自己机器人的完整系统。
这个仓库尤其适合以下用户:
- 希望快速适配自己人形机器人平台的研究者。
- 关注人形机器人高速运动导航的高校与科研团队。
- 希望构建比赛型或长距离室外自主导航系统的工程团队。
- 需要参考真实系统组织方式,而不只是单个算法模块的开发者。
如果你已经具备机器人基础软件环境,并且希望减少“从零拼装导航系统”的成本,这个仓库会更有参考价值。
室外长距离导航首先依赖可靠定位。glio_mapping 体现了我们在定位链路上的积累,也是整套系统能面向真实比赛场景工作的关键。
同一任务提供极简与复杂两类实现,不同团队可以根据资源、时间和目标自由取舍,而不是被单一路线绑定。
仓库不仅包含定位和导航,也提供视觉障碍物识别相关训练与部署链路,方便用户构建更完整的多模态系统。
我们在仓库中实现了多款机器人平台的适配,核心目标是让用户更容易把这套系统迁移到自己的机器人上。
我们尽量开放了系统中的关键组成部分,让大家不必只拿到论文思路或零散脚本,而是能直接看到一套更完整的工程实现。
本 README 只负责从项目总体层面介绍 Marathongo。
如果你已经明确关注某一部分能力,建议进一步阅读对应子项目中的说明文档:
glio_mapping/README.mdmarathontracking/README.mdtangent_arc_navigation/src/README.MDvision_part/seg_fusion/README.mdvision_part/seg_tensorrt/README.md
各子项目会分别提供更具体的环境、依赖、运行、复现或模块说明。
我们希望这个仓库能够为机器人社区提供一个更接近真实系统的参考底座。你可以基于自身平台对其中的定位、规划、控制、感知和系统集成部分进行裁剪、替换与扩展。
需要注意的是,不同机器人平台在以下方面可能存在明显差异:
- 传感器型号与外参关系。
- 控制接口与底层执行器能力。
- 机体运动学与动态约束。
- 算力平台与实时性预算。
- 安全策略与比赛规则要求。
因此,开源代码并不等价于对所有机器人平台的直接无修改适配。实际部署时,请结合自身硬件条件完成必要的工程化调整、标定与安全验证。
需要特别说明的是,这个仓库更多是我们在真实项目和持续调试过程中逐步沉淀下来的工程代码。
因此,你会在仓库中看到一些比较明显的调试痕迹,例如:
- 部分脚本、配置和目录组织带有阶段性实验特征。
- 不同模块之间的代码风格、命名方式和注释习惯并不完全统一。
- 某些实现更强调“真实可跑、便于验证和快速适配”,而不是产品级的高度抽象与统一封装。
这也是开源这份仓库时我们希望提前说明的一点:它首先是一套经过真实场景打磨的实战框架沉淀,其次才是一份追求完全统一风格的展示型代码。
如果你在阅读、迁移或适配过程中感到理解成本较高,这是正常现象。我们建议你结合:
- 各子模块 README 与源码一起阅读。
- 自身机器人的传感器、控制接口和系统链路做针对性梳理。
- AI 辅助工具对代码结构、模块职责、依赖关系和适配点进行分析与解释。
借助 AI 对较大体量、工程化较强且带有历史调试痕迹的代码进行辅助理解,通常会显著提升上手效率。我们也欢迎大家在理解、整理和适配的基础上,继续对仓库进行工程化改进。
本仓库的实现参考、借鉴并受益于机器人领域许多优秀的开源工作。在此向相关作者和社区表示感谢。
这里列举部分对本项目有重要启发或支撑作用的代表性工作,包括但不限于:
FAST-LIOFAST-LIO-SAMLIO-SAMIKFoMikd-Treecostmap_converterTensorRT
此外,仓库中还可能包含基于其他开源项目进一步整理、适配、重构或工程化集成的内容。更具体的引用、依赖和说明,请以各子项目目录内的文档、源码注释和许可证文件为准。
本仓库旨在促进学术研究、工程交流与机器人系统开发效率提升,但不对以下事项作任何明示或默示担保:
- 代码在任意硬件平台上的直接可用性。
- 在所有环境、赛道、天气或动态人群场景中的稳定表现。
- 对特定商业用途、合规要求或安全标准的天然满足。
机器人系统涉及真实世界运动与人机环境交互,具有一定风险。请务必在充分评估安全性的前提下使用本仓库内容,并在真实设备部署前完成必要的仿真、空场测试、限速验证与应急策略设计。
我们尊重开源社区及相关权利人的合法权益,并会认真对待仓库中涉及的代码、文档、数据、模型、图片及其他内容的来源与版权问题。
如果你认为本仓库中的任何内容存在以下情况:
- 版权归属说明遗漏或不准确。
- 引用、转载或依赖关系标注不完整。
- 数据、模型、代码或文档涉及你的合法权益。
请通过仓库 Issue 或维护者联系方式与我们取得联系。我们会在核实后尽快处理,包括但不限于:
- 补充来源说明与版权声明。
- 更正相关文档描述。
- 调整引用方式。
- 下线或移除存在争议的内容。
欢迎机器人领域的研究者、开发者与行业伙伴基于本仓库继续扩展。我们尤其欢迎以下方向的贡献:
- 新机器人平台适配。
- 传感器驱动与接口适配。
- 定位、感知、规划、控制模块优化。
- 文档完善与工程整理。
- Benchmark、测试数据和案例补充。
如果这个仓库对你有帮助,欢迎关注、引用、反馈问题并参与共建。








