交付与运维:
部署与验收 注意
OTA 属于高风险操作,只有在版本包信息、回退方案、供电保障及现场授权均完全确认后,方可启动执行。


交付包说明
本页面引用的 examples/ 脚本请通过正式交付渠道提供的交付包获取,并使用与软件版本匹配的交付包版本;文档中的路径仅用于说明脚本结构。
部署路线
根据现场的开发环境与硬件条件,按优先级选择对应的部署路线:
| 客户条件 | 首选路线 | 准入条件 | 回退路线 |
|---|---|---|---|
| 机器人本机 | ROS2 本机节点 | Humble、自定义消息、权限和资源预算通过 | SSH 手工运行或离线文件闭环 |
| Ubuntu 22.04/Humble 开发机 | 跨机 ROS2 | Domain ID、RMW/消息兼容,DDS 可达并已复验 | 部署到机器人本机 |
| 无 ROS 平台 | loopback HTTP 桥 + SSH 隧道 | token、唯一实例、日志与回滚通过 | SSH/SFTP + 离线 MCAP |
| macOS/Windows | REST、SSH、受控 HTTP、离线 MCAP | 不假设本机具备同构 ROS2 | Ubuntu 网关 |
上线验收门禁
注意
必须严格按照以下顺序逐层推进,任何一层未通过必须立即停止。
基础信息校验:核对设备型号、软硬件版本及交付包哈希。
接口闭环:验证 REST、SSH、Topic、系统状态和电量只读闭环。
功能校验:验证启用的控制/录制/桥接功能。
业务数据闭环:验证唯一 run ID、拉取、MCAP 时间与 Topic 闭环。
说明
录制交付 Demo 仅在
report.json.status == "PASS"时才可进入下一层,FAIL 或执行未完成,必须保留远端数据并终止交付。安全与权限:验证错误 token、loopback/ACL、唯一控制权和日志敏感信息脱敏。
异常与回滚:验证异常恢复、凭据轮换和回滚功能。
性能基线:在客户真实业务负载下,采集至少 3 个等时窗口的系统性能指标基线。
提醒
systemd 服务部署必须在手工运行测试全部通过后方可进行。
- 部署流程:审查模板 → 备份同名单元 →
systemd-analyze verify→ 手工 start → 功能/鉴权/重启/回滚验收 → 最后评估是否 enable。 - 严禁提供一步
enable --now。
日志与交付完整性
日志记录与数据交付要求:
- 交付日志至少包含带时区时间、机器人与软硬件版本、run ID、请求类型、退出码/业务码、状态回读、文件哈希和恢复结果。
- 禁止包含 SSH 密码、Bearer token、Authorization 头、私钥和完整客户业务数据。
- 录制交付闭环应保留精确录制目录、
ros2_bag_info.txt、delivery_manifest.json、report.json和report.md;报告必须标明远端数据仍保留,并把录制目录、证据目录与同一 run ID 绑定。
日志定位与分析:
当前基线整机的只读启动链如下(仅供定位日志和判断影响范围;不可作为客户可复制的 systemd 模板):
realman.service→/home/realman/workspace/start.sh→ 等待视频设备约 40 秒 → 后台启动rm_data_collect/data_collect_start.sh→ 前台进入rm_robot_ws/run.sh→rm_robot_bringup_master.launch.py。
说明
realman.service 当前为 enabled/active,Restart=no。因此“服务 active”只能表示主进程仍在,不能证明所有子节点、传感器和平台功能正常;主进程意外退出后也不能假设 systemd 会自动恢复。
客户只读检查如下:
systemctl is-enabled realman.service
systemctl is-active realman.service
systemctl --failed --no-pager
systemctl show realman.service \
-p MainPID -p ActiveEnterTimestamp -p ExecStart -p Result| 日志位置 | 内容 | 边界 |
|---|---|---|
journalctl -u realman.service | 整机启动、Web 子进程和 systemd 上下文 | 只按精确时间范围读取;不使用日志内容中的任何凭据 |
/tmp/robot_run.log、/tmp/rm_robot_logs/ | 机器人 bringup、相机编码、部件连接和 ROS2 节点日志 | 日志可能高速增长;支持包只取故障时间窗口 |
/tmp/startup.log、/tmp/rm_data_collect_start.log | 平台层启动顺序和节点 PID | 只用于发现,不根据 PID 直接终止进程 |
/tmp/rm_data_collect_logs/、/tmp/rm_func_*.log | 平台故障、追踪、录制、触发和上传节点日志 | 可能包含任务标识与路径,提交前脱敏 |
推荐先运行 robot_health_snapshot.sh,再针对报告中明确的 WARN/FAIL 读取精确日志。严禁使用 tail -f 长期占用支持终端,严禁执行模糊进程终止,切勿因单条旧日志直接重启整栈。
性能调优边界
所有的性能调优手段(如 Fast DDS XML、RMW 环境变量、全局 sysctl、CPU 亲和性和桌面服务)均会改变系统行为,只能作为经授权的单变量诊断候选。
**单变量:**每次只改一项,记录基线、三个等时窗口、源端帧率、MCAP count/duration、CPU/温度/编码资源和回退结果。
**运行基线:**应用上线前用
free -h、ps和短窗口tegrastats建立特定基线。缺少 tegrastats 时标记 WARN,不安装软件或切换功耗模式来完成只读验收。
OTA 高风险边界
注意
OTA 只是参考信息,未在本手册流程实机执行。
- 升级前门禁:必须同时确认升级包来源与 SHA-256、机器人型号、当前/目标版本、主从升级顺序、稳定供电、安全姿态、书面授权和厂商恢复方案。缺少任意一项,严禁开启升级程序。
- 升级中门禁:升级过程中绝对不断电、不刷新、不重复点击、不切包、不裸重启。若发生页面无响应或连接中断,一律将结果定级为“未知”,保持现场并按恢复方案处理。
- 升级后门禁:升级失败后严禁反复盲目重试、手工覆盖文件或无预案降级。升级成功后,须重新读取系统版本,并完整重跑 REST、ROS 2 图、运行状态、电池电量、必须 Topic 及数据录制闭环。任意一项基线测试未通过,绝对禁止恢复业务运行。

