UniflexAI/tinynav

TinyNav: A lightweight, hackable system to guide your robots anywhere.

解决的问题

TinyNav 是一个轻量级、可定制的导航系统,旨在引导机器人在环境中移动。它解决了为各种机器人平台和硬件芯片提供鲁棒、实时的导航、建图和定位的挑战,同时保持代码库精简,以便于原型设计和社区贡献。

工作原理

该系统由 Python 和 C++ 组件组成的模块化流水线组成:

  • Perception Node:处理传感器数据(例如来自 RealSense 或 Looper 等立体摄像机的数据)并集成 IMU-visual 融合,以提高定位和俯仰角精度。
  • Map Node:构建并维护环境地图,支持用于高质量可视化和精确 POI 放置的 3D Gaussian Splatting (3DGS) 等表示形式。
  • Planning Node:利用地图和感知数据计算最优路径和轨迹,并利用基于 ESDF 的避障功能来保持与障碍物的安全距离。
  • Control Node:发送最终控制命令以驱动机器人。

通过用于 Jetson Nano 等平台上的低延迟推理的 CUDA Graph 优化、用于提速的 Numba JIT 以及用于并发模型推理的 asyncio 来优化性能。

适用对象

需要支持多种机器人平台(例如 Unitree GO2、LeKiwi)和各种计算平台(Jetson Orin、RK3588、桌面端)的灵活导航栈的机器人开发者和研究人员。

亮点

  • 精简的代码库:约 2,000 行 Python 代码,确保清晰易用。
  • 多平台支持:开箱即用支持 Unitree GO2 和 LeKiwi 机器人。
  • 高级建图:集成 3D Gaussian Splatting 用于地图表示和编辑。
  • 硬件优化:通过 CUDA Graphs 针对 NVIDIA Jetson 和其他高性价比芯片进行了优化。
  • C++ 后端:性能关键型操作由带有绑定的 C++ 后端处理。
  • 仿真支持:包含用于测试的 Gazebo 仿真环境。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目