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 仿真环境。
相关
- 项目
- 项目
- 项目
- 项目
- 项目