Go to file
2026-03-01 02:43:03 +08:00
assets 整理架构 2026-02-27 03:15:09 +08:00
calibration change name space 2026-02-28 15:25:24 +08:00
configs 整理架构 2026-02-27 03:15:09 +08:00
src add task 2026-03-01 02:43:03 +08:00
.gitignore add 、lib 2026-02-28 12:13:02 +08:00
build.sh 整理架构 2026-02-27 03:15:09 +08:00
CMakeLists.txt add task 2026-03-01 02:43:03 +08:00
readme.md 整理架构 2026-02-27 03:15:09 +08:00
README.md add task 2026-03-01 02:43:03 +08:00

MOVE_AI

适用于 RoboMaster 机器人的视觉自瞄系统,参考同济大学 Superpower 战队 25 年开源设计,适配 MOVE。

项目结构

├── calibration/          # 标定工具
├── configs/              # 配置文件yaml
├── src/
│   ├── component/        # 通用组件EKF、弹道、日志、绘图等
│   ├── device/           # 设备驱动相机、串口、CAN、IMU
│   ├── module/
│   │   ├── auto_aim/     # 自瞄模块(检测、解算、跟踪、瞄准、规划)
│   │   ├── auto_buff/    # 打符模块
│   │   └── omniperception/  # 全向感知模块(哨兵用)
│   └── task/
│       ├── *.cpp         # 各兵种主程序
│       └── test/         # 测试用例

环境要求

  • Ubuntu 22.04
  • 运算平台Intel NUCi7-1260P / i7-1165G7
  • 相机:海康 MV-CS016-10UC + 6mm 镜头
  • 下位机RoboMaster C 型开发板STM32F407/ 达妙 MC02STM32H7

依赖安装

  1. SDK

  2. 系统依赖:

    sudo apt install -y \
        git g++ cmake can-utils \
        libopencv-dev libfmt-dev libeigen3-dev \
        libspdlog-dev libyaml-cpp-dev libusb-1.0-0-dev \
        nlohmann-json3-dev openssh-server screen
    

编译与运行

cmake -B build
make -C build/ -j$(nproc)
./build/auto_aim_test    # 运行测试

可执行目标

主程序task

目标 说明 配置文件
standard 步兵自瞄 configs/standard3.yaml
standard_mpc 步兵自瞄MPC 规划) 需指定
uav 无人机自瞄 + 打符 configs/uav.yaml
uav_debug 无人机调试(含可视化) configs/uav.yaml
mt_standard 多线程步兵 需指定
sentry 哨兵 configs/sentry.yaml
sentry_multithread 哨兵多线程 configs/sentry.yaml
sentry_debug 哨兵调试 configs/sentry.yaml
sentry_bp 哨兵(带弹道预测) configs/sentry.yaml
auto_aim_debug_mpc 自瞄 MPC 调试 需指定
auto_buff_debug 打符调试 需指定
auto_buff_debug_mpc 打符 MPC 调试 需指定
mt_auto_aim_debug 多线程自瞄调试 需指定

标定工具calibration

目标 说明
capture 采集标定图像
calibrate_camera 相机内参标定
calibrate_handeye 手眼标定
calibrate_robotworld_handeye 机器人-世界手眼标定
split_video 视频拆帧

测试用例test

目标 说明
auto_aim_test 自瞄全流程测试
auto_buff_test 打符全流程测试
camera_test 相机基础测试
camera_detect_test 相机 + 检测测试
camera_thread_test 相机多线程测试
cboard_test C 板通信测试
gimbal_test 云台通信测试
gimbal_response_test 云台响应测试
fire_test 发射测试
dm_test 达妙 IMU 测试
handeye_test 手眼标定测试
detector_video_test 离线视频检测测试
planner_test MPC 规划器测试
planner_test_offline MPC 规划器离线测试
usbcamera_test USB 相机测试
usbcamera_detect_test USB 相机 + 检测测试
multi_usbcamera_test 多 USB 相机测试
minimum_vision_system 最小视觉系统

串口设置

  1. 授予权限:

    sudo usermod -a -G dialout $USER
    
  2. 获取端口 IDserial, idVendor, idProduct

    udevadm info -a -n /dev/ttyACM0 | grep -E '({serial}|{idVendor}|{idProduct})'
    
  3. 创建 udev 规则:

    sudo touch /etc/udev/rules.d/99-usb-serial.rules
    

    写入(用实际 ID 替换):

    SUBSYSTEM=="tty", ATTRS{idVendor}=="1234", ATTRS{idProduct}=="1234", ATTRS{serial}=="A1234567", SYMLINK+="gimbal"
    
  4. 重新加载规则:

    sudo udevadm control --reload-rules
    sudo udevadm trigger
    
  5. 验证:

    ls -l /dev/gimbal