Files

7.9 KiB
Raw Permalink Blame History

AGV 自动标定车间 - 总述

本项目是 AGV(自动导引车)自动化标定车间的软件系统,用于在车间环境中对 AGV 进行底盘参数标定、运控参数标定、传感器内参/外参标定,以及手眼标定。

项目概述

核心能力

标定类型 说明 状态
外部真值接入 通过外部定位系统(如 OptiTrack、激光雷达定位)获取车辆位姿真值 已验证
底盘参数标定 标定轮距、轴距、转向角等底盘几何参数 已验证(模板)
运控参数标定 标定横向/纵向控制器的 PID/MPC/LQR 参数 已验证(模板)
传感器内参标定 相机(前视/下视)、IMU 的内参标定 已验证(模板)
传感器外参标定 相机、雷达等传感器相对于车体坐标系的外参标定 🚧 待完善
手眼标定 机械臂与相机之间的变换关系标定 🚧 待开发

技术架构

┌─────────────────────────────────────────────────────────────────┐
│                         车间工控机(Ubuntu)                      │
│  ┌─────────────────┐  ┌──────────────┐  ┌─────────────────────┐ │
│  │ workshop_       │  │ 底盘标定服务  │  │ 传感器标定服务       │ │
│  │ orchestrator_v2 │  │ chassis_     │  │ sensor_calibration_ │ │
│  │    (总控)       │  │ calibration  │  │     service         │ │
│  └────────┬────────┘  └──────────────┘  └─────────────────────┘ │
│           │                                                      │
│  ┌────────▼────────┐  ┌──────────────┐  ┌─────────────────────┐ │
│  │ vehicle_agent_  │  │ 运控标定服务  │  │ 外部位姿服务         │ │
│  │    gateway      │  │ control_     │  │ external_           │ │
│  │  (WiFi6/TCP网关) │  │ calibration  │  │ localization_       │ │
│  └─────────────────┘  └──────────────┘    └─────────────────────┘ │
└─────────────────────────────────────────────────────────────────┘
                              │ WiFi6/TCP
                              ▼
┌─────────────────────────────────────────────────────────────────┐
│                         车端电脑(Windows/Linux                │
│  ┌─────────────────┐  ┌──────────────┐  ┌─────────────────────┐ │
│  │   车端 Agent     │  │  底盘控制器   │  │    传感器驱动        │ │
│  │ (TCP<->CAN/PLC) │  │   (CAN/PLC)  │  │  (相机/雷达/IMU)     │ │
│  └─────────────────┘  └──────────────┘  └─────────────────────┘ │
└─────────────────────────────────────────────────────────────────┘

目录结构

agv_calib_brain/
├── src/
│   ├── core/              # 核心标定逻辑
│   │   ├── workshop_orchestrator/      # 车间总控编排器
│   │   ├── chassis_calibration_service/ # 底盘标定服务
│   │   ├── control_calibration_service/ # 运控标定服务
│   │   ├── sensor_calibration_service/  # 传感器标定服务
│   │   ├── external_localization_service/ # 外部位姿服务
│   │   └── vehicle_profile_manager/    # 车辆画像管理
│   │
│   ├── communication/     # 通信层
│   │   ├── win_ubuntu_bridge/          # 车间<->车端通信桥
│   │   └── interfaces/                 # ROS2 接口定义
│   │
│   ├── simulation/        # 仿真验证
│   │   ├── isaac_workshop_sim/         # Isaac Sim 标定车间
│   │   ├── vehicle_agent_sim/          # 仿真车端 Agent
│   │   ├── vehicle_sensor_agent_sim/   # 仿真传感器 Agent
│   │   └── tools/                      # 仿真工具脚本
│   │
│   ├── deployment/        # 部署配置
│   │   └── profiles/                   # 仿真/部署配置文件
│   │
│   ├── site_deployment/   # 真实现场部署
│   │   └── (真实车辆 SDK、PLC/CAN 适配)
│   │
│   └── apps/              # 操作员工具
│
├── run_isaac_real_sim_test.sh    # 一键启动 Isaac 仿真测试
├── stop_isaac_real_sim_stack.sh  # 停止仿真栈
├── SIMULATION_GUIDE.md           # 仿真环境启动指南
└── README.md                     # 本文件

快速开始

1. 编译

cd /home/nvidia/study/AutoCalib-Workshop/agv_calib_brain
colcon build
source install/setup.bash

2. 一键启动完整仿真

# 启动 Isaac + 车端 Agent + 车间总控 + 执行验收
./run_isaac_real_sim_test.sh --headless

3. 查看详细指南

主要验证场景

场景 启动方式 验证内容
快速闭环验证 launch_sim_stack.py --component vehicle-agent + minimal_workshop_demo.launch.py 车间总控能创建 session、生成阶段计划、调用车端接口
Isaac topic 检查 run_isaac_real_sim_test.sh --headless(前半段) Isaac 能发布传感器和真值 topic
完整 Isaac 仿真闭环 run_isaac_real_sim_test.sh --headless 场景、agent、桥接、总控一起运行
传感器转发链路 --component vehicle-agent,sensor-ingest 车端能订阅 Isaac topic,车间端能拉取数据

四条核心通信链路

链路 方向 功能 组件
外部真值链路 外部系统 → 车端 位姿、速度、时间戳 external-pose-bridge
底盘链路 车间 → 车端 下发标定动作、读取遥测 vehicle-agent-gateway
运控链路 车间 → 车端 下发控制任务、读取误差 vehicle-agent-gateway
传感器链路 车端 → 车间 相机、雷达、IMU 数据 sensor-ingest

开发状态

  • 已完成: 车间总控编排器、四类标定服务框架、车辆画像管理、Isaac 仿真环境、WiFi6/TCP 通信链路、端到端验收脚本
  • 🚧 进行中: 传感器外参标定采样链路、真实算法参数收敛
  • 待开发: 手眼标定、真实现场部署验证

关键设计原则

  1. 主控只编排流程 - workshop_orchestrator_v2 负责阶段调度,具体标定由独立 ROS2 包实现
  2. 仿真与现场分离 - Isaac 代码只在 simulation/,真实车辆代码只在 site_deployment/
  3. 统一通信协议 - 车间与车端通过 WiFi6/TCP 通信,协议由 communication/ 定义
  4. 车辆画像驱动 - 车辆能力、传感器配置通过 vehicle_profile 描述,支持多车型