Skip to content

XiaoPengYouCode/auto_aim_rust

Repository files navigation

🤖 自 瞄 🎯

Language: Rust Platform: RoboMaster Team: 3SE License: MIT ONNX: ort-rs

🚀 面向 RoboMaster 赛场的高性能自瞄,模块化架构、实时并发、全 Rust 编写、性能炸裂!


🧠 特性 Highlights

  • 🏆 面向比赛优化:针对 RoboMaster 赛场需求深度定制,兼顾实时性与可靠性
  • 🦀 全 Rust 实现:零成本抽象,安全而强大。基于 ort-rs 实现跨平台端侧推理部署(支持几乎全部onnxruntime-EP,包括TensorRT, OpenVino, RKNN, CANN ... )
  • 🚦 多线程任务调度:基于 tokio 打造全异步推理流,实时并发
  • 🎯 手搓 PnP 求解器(No OpenCV):高度特化 IPPE-PnP 模块,硬编码装甲板参数,省去平面化和各向同性归一化操作,解算速度超快
  • ⚙️ 状态估计算法:基于 ESKF 的状态估计器,内置装甲板选择与跟踪模块(Todo),,使用双装甲板反向投影,机器人解算更加精确
  • 📡 异步消息通信队列:基于异步机制构建的高性能无锁IPC缓冲区
  • 🏗️ 基础设施完善:结构化日志(tracing)与错误处理(thiserror)高度成熟,保障系统健壮高效
  • 🛠️ 超炫酷debug:基于 Rerun 打造一流的 debug 体验

rerun-log


📡 核心模块简介

模块名 说明
app APPs(同步、异步、测试(待完善))
lib/rbt_base 几何、数学、pnp 等底层模块
lib/rbt_infra 配置、日志、工具库、异步通信支持
lib/rbt_mod 包含视觉识别、装甲板选择、控制策略等业务逻辑

💻 开发与运行

🛠️ 环境要求

  • Rust Stable (未进行 MSRV 测试)
  • Python (3.8+)
  • uv (推荐使用 uv 进行 python 项目管理)

🚀 如何运行

  1. 克隆并进入仓库:

    git clone https://github.com/XiaoPengYouCode/auto_aim_rust.git
    cd auto_aim_rust
  2. 使用 uv 创建虚拟环境,安装依赖:

    uv sync
  3. 设置环境变量 (每次打开终端都需要执行,建议自行持久化):

    # This sets the library path to find ONNX Runtime and OpenVINO native libraries.
    # Note: If your Python version is not 3.11, adjust the path accordingly.
    export LD_LIBRARY_PATH="$PWD/.venv/lib64/python3.11/site-packages/onnxruntime/capi:$PWD/.venv/lib64/python3.11/site-packages/openvino/libs:$LD_LIBRARY_PATH"
  4. 分布构建并运行:

    cargo build --release
    cargo run -p auto_aim_async --release

3SE Logo    RoboRust Logo

❤️爱来自东南大学3SE战队❤️

About

自瞄

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published