# 到实验室后：履带车接入记录单

2026-11-10 已确认平台是 **BUNKER MINI 2.0 / ROS 2 Humble**；厂家公开驱动的 `/cmd_vel` 接口已核对，详见 [BUNKER_MINI2_INTEGRATION.md](BUNKER_MINI2_INTEGRATION.md)。当前项目增加了可选动作适配器，但**尚未接入现场传感器、导航程序或实车驱动进行验证**。

这份记录单按“先识别、再旁路观测、再低速受控测试”的顺序使用。到场的第一目标是核对实验室安装，而不是立即让算法发运动命令。

## 1. 先向实验室确认并记录

| 要记录的内容 | 为什么要问 | 记录位置 |
|---|---|---|
| 履带车型号、底盘厂家与控制器文档 | 已知 BUNKER MINI 2.0 / AgileX；现场核对是否改装 | ________ |
| 控制电脑系统版本、CPU/GPU、Python 版本 | 确定安装和算力方案 | ________ |
| ROS 发行版及工作空间位置 | 已知 ROS 2 Humble；补实际工作空间和启动文件 | ________ |
| 有线/无线网络拓扑与机器人端 IP | 排查话题发现和延迟 | ________ |
| 遥控器、硬件急停、软件急停、看护负责人 | 保证测试中能立即停机 | ________ |
| 底盘接收 `Twist`，还是左/右履带独立命令；单位、范围、指令超时 | 决定动作空间与限幅 | ________ |
| 雷达/深度相机、IMU、里程计、摄像头等传感器及标定 | 决定可用观测与安全判断 | ________ |
| 操作区域、限速、禁入区、允许采集/保存 bag 的位置 | 约束测试范围 | ________ |

## 2. 在控制电脑上做只读检查

若希望一次性保存系统、ROS 节点及话题清单，在项目目录运行：

```bash
python3 tools/collect_lab_environment.py --output lab_inventory.json
```

脚本只读，不发布控制命令。分享前先自行查看 `lab_inventory.json`；话题名称可能包含实验室内部信息。若没有项目文件或 Python，也可以按下面的命令逐条查看。

若是 Linux，可让实验室人员打开终端，并在**已经加载机器人原有环境**的终端运行：

```bash
cat /etc/os-release
uname -a
python3 --version
printenv ROS_DISTRO
command -v ros2
```

若确认是 ROS 2，再运行：

```bash
ros2 node list
ros2 topic list -t
ros2 service list -t
```

然后对**实际存在**的底盘控制话题和传感器话题，分别记录：

```bash
ros2 topic info <实际话题名> -v
ros2 interface show <上一步看到的消息类型>
ros2 topic hz <实际传感器话题名>
```

尖括号内是占位文字，必须替换为现场查到的值。请保存完整输出或截图，并记下 `odom`/`base_link`/雷达/IMU/图像等实际名称与时间戳。`ros2 topic echo <实际话题名>` 可用于短时间查看消息，但图像/点云话题输出很大，优先看类型、频率和少量消息。若 `ros2` 不存在，先请实验室确认是否使用 ROS 1、尚未加载环境，或根本没有 ROS；不要自行安装后覆盖原有控制环境。

## 3. 接入决策：必须现场核对

| 核对项 | 通过条件 |
|---|---|
| 遥控/原控制器可接管 | 实验室人员演示硬件急停与人工接管并确认有效。 |
| 动作范围 | 确认线速度、角速度或左右履带命令的物理单位、上下限、坐标系与失联停机时间。 |
| 安全状态 | 障碍距离与姿态可持续获得，并有明确无效数据处理。履带车阈值由车体尺寸、制动距离和场地决定。 |
| 理性控制器 | 已有可用且经过验证的避障/回退控制，不应把论文中未提供的 Interactive-FAR 假定为现成模块。 |
| 数据与奖励 | 可得到目标位置、实际运动、碰撞/接近障碍及里程等数据，并能定义实验目标。 |
| 软件路径 | 可以先只订阅传感器、记录数据，不把 CogRun `/decision` 连接到驱动。 |

如果任何一项没有通过，当天只做**只读采集、离线分析和仿真**。

## 4. 分阶段实验建议

1. **旁路观测**：用原控制器/遥控器驾驶，CogRun 只订阅和记录；检查消息时间戳、坐标系和数据完整性。
2. **回放与仿真**：用录制数据验证观测向量、奖励计算、经验回放和动作单位；建立履带车仿真或数字孪生，并测试失联、障碍、侧翻等场景。
3. **受控低速**：在隔离场地、急停就绪、人工监护下，先验证底盘受限动作与独立安全控制器。新算法的决策先只记录，和原控制器动作对比。
4. **逐步接入**：只有安全层、回退控制、超时/限幅、数据记录和停机机制都通过验证，才考虑让算法参与决策；在线学习要单独审查。

## 5. 到场后发回这些信息，才能继续写真实适配器

- 上述系统版本与 ROS 版本；`ros2 topic list -t`、底盘控制话题的 `topic info -v`、关键传感器话题及消息类型。
- 控制接口文档或样例消息；动作单位/限幅/坐标系/失联停机行为。
- 履带车照片或型号、车体宽长、最大速度、遥控与急停方式、场地限制。
- 若允许，录制一小段**不含敏感信息**的传感器数据与原控制器动作日志。

这些信息到手后，才能把当前 `std_msgs/String` 开发桥改成与履带车真实话题匹配的适配器，并设计其安全判定和实物测试方案。
