跳转至

术语表 & 快速参考

核心术语

自瞄相关

术语 英文 含义 对应代码
灯条 Light bar 装甲板两侧的 LED 发光条,是检测的主要特征 Light struct
装甲板 Armor plate 机器人上的目标区域,由灯条和面板组成 Armor struct
小装甲 Small armor 宽 135mm,普通机器人的前后面板 ArmorType::SMALL
大装甲 Large armor 宽 225mm,机器人侧面板(或3/4/5号板) ArmorType::LARGE
PnP Perspective-n-Point 从 N 个 2D-3D 点对应关系求解相机位姿 pnp_solver.cpp
EKF Extended Kalman Filter 扩展卡尔曼滤波器,用于状态估计 extended_kalman_filter.cpp
状态机 State machine 跟踪器的 LOST/DETECTING/TRACKING/TEMP_LOST 流程 tracker.cpp
装甲板跳变 Armor jump 旋转机器人上面向相机的装甲板从一个切到另一个 handleArmorJump()
来角/去角 Coming/leaving angle 小陀螺时判断装甲板运动方向的策略 aimer.cpp
小陀螺 Spinning 敌方机器人原地快速旋转的防御策略 ω > 2 rad/s
弹道补偿 Ballistic compensation 补偿子弹受重力和空气阻力的下落 trajectory.cpp
前馈 Feedforward 除了位置指令,还发送速度/加速度给电控 MPC 方案

ROS2 相关

术语 英文 含义
节点 Node ROS2 中最基本的计算单元
话题 Topic 发布/订阅通信机制
服务 Service 请求/响应通信机制
消息 Message 节点间传递的数据结构(.msg 文件)
Launch Launch 启动多个节点的配置文件
Component Composable Node 在同一进程内运行的节点,支持零拷贝
TF2 Transform 2 坐标系变换库
QoS Quality of Service 通信可靠性策略
SensorDataQoS 适合传感器数据的 QoS 策略(丢帧不重传)

数学/算法相关

术语 英文 含义
卡尔曼滤波 Kalman Filter 线性系统的最优状态估计器
扩展卡尔曼滤波 Extended KF 非线性系统的卡尔曼滤波(线性化近似)
雅可比矩阵 Jacobian Matrix 非线性函数的一阶偏导数矩阵
状态转移 State Transition 从上一时刻状态预测当前状态的函数
观测模型 Observation Model 从状态空间到观测空间的映射函数
新息 Innovation 观测值与预测观测值之差 z - h(x)
NIS Normalized Innovation Squared 新息的归一化平方和,用于一致性检验
NEES Normalized Estimation Error Squared 估计误差的归一化平方和
球坐标 Spherical Coordinates 用 (yaw, pitch, distance) 表示方向
SOLVEPNP_IPPE 适用于共面点的 PnP 求解算法
NMS Non-Maximum Suppression 非极大值抑制,去除重叠检测框
OTSU 自动选择二值化阈值的大津法
Letterbox YOLO 输入图像的等比例缩放填充方式

硬件相关

术语 英文 含义
工控机 Industrial PC 机器人上运行视觉算法的计算平台(如 NUC)
电控 Embedded control STM32 等下位机,控制云台和发射
云台 Gimbal 机器人上控制枪口方向的两轴伺服机构
IMU Inertial Measurement Unit 惯性测量单元,提供姿态(四元数/欧拉角)
串口 Serial port 与电控通信的接口(UART/USB虚拟串口)
CAN 总线 Controller Area Network 工业通信总线
OpenVINO Intel 的神经网络推理加速引擎

常用命令速查

ROS2 命令

# 查看节点
ros2 node list
ros2 node info /armor_detector

# 查看话题
ros2 topic list
ros2 topic echo /detector/armors
ros2 topic hz /image_raw          # 查看发布频率
ros2 topic info /detector/armors  # 查看消息类型和订阅者

# 发布测试消息
ros2 topic pub /tracker/reset std_srvs/srv/Trigger

# 查看参数
ros2 param list /armor_detector
ros2 param get /armor_detector binary_thres
ros2 param set /armor_detector detect_color 1  # 切换识别蓝色

# TF2
ros2 run tf2_tools view_frames  # 生成坐标系 PDF
ros2 topic echo /tf             # 查看实时 TF 变换

# Launch
ros2 launch rm_vision_bringup vision_bringup.launch.py
ros2 launch rm_vision_bringup no_hardware.launch.py  # 无硬件调试

# 录制/回放
ros2 bag record /detector/armors /tracker/target -o test_bag
ros2 bag play test_bag/

Git 命令

# 克隆代码
git clone https://github.com/UIC-RoboMaster/rm_vision.git
git clone -b sentry https://github.com/Navigator-Vision-Algorithm-Team/RM_Vision_2027.git

# 常用操作
git status           # 查看状态
git diff             # 查看修改
git add .            # 暂存所有
git commit -m "msg"  # 提交
git push             # 推送
git pull             # 拉取
git log --oneline    # 查看提交历史
git branch -a        # 查看所有分支
git checkout -b new_branch  # 创建并切换分支

Linux 命令

# 文件操作
ls -la               # 列出文件详情
cd /dev/             # 进入设备目录
cat file.txt         # 查看文件内容
grep -rn "keyword" . # 搜索关键词
find . -name "*.cpp" # 查找文件
chmod 666 /dev/ttyACM0  # 修改串口权限

# 进程管理
ps aux | grep ros    # 查看 ROS 进程
kill -9 PID          # 强制终止进程
screen -S vision     # 创建 screen 会话
screen -r vision     # 恢复 screen 会话

# 系统信息
lsusb                # 列出 USB 设备
dmesg | tail         # 查看内核日志(串口连接时)
cat /dev/ttyACM0     # 读取串口数据
stty -F /dev/ttyACM0 921600  # 设置串口波特率

CMake 构建

# 标准构建
cmake -B build
cmake --build build/ -j$(nproc)

# ROS2 colcon 构建
colcon build --packages-select armor_detector
colcon build --symlink-install  # 符号链接加速迭代
source install/setup.bash

# 清理
rm -rf build/
rm -rf install/ log/

常见错误排查

症状 可能原因 解决方法
Permission denied: /dev/ttyACM0 串口权限不足 sudo chmod 666 /dev/ttyACM0 或加入 dialout 组
No camera found 相机未连接或 SDK 未安装 lsusb 检查设备,确认 SDK 路径
检测不到灯条 曝光/增益不合适 调整相机参数,检查 binary_thres
EKF 发散 初始化错误或噪声参数不对 检查 sigma2_q_*r_* 参数
TF 变换查找失败 时间戳不同步 检查 timestamp_offset,确认 TF 广播
跟踪器不进入 TRACKING tracking_thres 太大 减小阈值(默认5)或检查检测率
弹道补偿不准 标定误差或弹道参数错误 重新手眼标定,检查子弹速度参数
colcon build 失败 依赖缺失 rosdep install --from-paths src -iry
装甲板 ID 判断错误 MLP 模型或阈值问题 检查 classifier_threshold,重新训练模型
云台抖动 EKF 噪声参数不对或延迟补偿不足 调整 Q/R 矩阵,检查 timestamp_offset

C++ / 数学库

术语 英文 含义
Eigen Eigen C++ 线性代数库,提供矩阵/向量运算。Eigen::Matrix<double,11,11> = 11×11 双精度矩阵
cv_bridge cv_bridge ROS2 包,将 sensor_msgs/Image 转换为 cv::Mat
RotatedRect RotatedRect OpenCV 旋转矩形结构体(center, size, angle)
Rodrigues Rodrigues 旋转向量 ↔ 旋转矩阵转换函数 cv::Rodrigues()

EKF / 状态估计

术语 英文 含义
过程噪声 Process noise (Q) EKF 预测步骤中模型不确定性的量化
观测噪声 Measurement noise (R) EKF 更新步骤中传感器测量不确定性的量化
协方差 Covariance (P) 状态估计不确定性的矩阵表示
新息 Innovation 观测值与预测观测值之差 z - h(x)
卡方检验 Chi-squared test 用于检测 EKF 发散的统计检验方法
softmax Softmax 将神经网络输出转换为概率分布的激活函数
sigmoid Sigmoid 将数值映射到 (0,1) 的激活函数

OpenCV 相关

术语 英文 含义
findContours findContours 查找二值图像中的轮廓
minAreaRect minAreaRect 计算轮廓的最小外接旋转矩形
warpPerspective warpPerspective 透视变换,将倾斜图像校正为正视图
threshold threshold 阈值处理,将灰度图转为二值图
OTSU OTSU 自动计算最优阈值的大津法