Skip to content

部署与验收

注意

OTA 属于高风险操作,只有在版本包信息、回退方案、供电保障及现场授权均完全确认后,方可启动执行。

示教器 OTA 文件上传入口

示教器 OTA 文件升级入口

交付包说明

本页面引用的 examples/ 脚本请通过正式交付渠道提供的交付包获取,并使用与软件版本匹配的交付包版本;文档中的路径仅用于说明脚本结构。

部署路线

根据现场的开发环境与硬件条件,按优先级选择对应的部署路线:

客户条件首选路线准入条件回退路线
机器人本机ROS2 本机节点Humble、自定义消息、权限和资源预算通过SSH 手工运行或离线文件闭环
Ubuntu 22.04/Humble 开发机跨机 ROS2Domain ID、RMW/消息兼容,DDS 可达并已复验部署到机器人本机
无 ROS 平台loopback HTTP 桥 + SSH 隧道token、唯一实例、日志与回滚通过SSH/SFTP + 离线 MCAP
macOS/WindowsREST、SSH、受控 HTTP、离线 MCAP不假设本机具备同构 ROS2Ubuntu 网关

上线验收门禁

注意

必须严格按照以下顺序逐层推进,任何一层未通过必须立即停止。

  1. 基础信息校验:核对设备型号、软硬件版本及交付包哈希。

  2. 接口闭环:验证 REST、SSH、Topic、系统状态和电量只读闭环。

  3. 功能校验:验证启用的控制/录制/桥接功能。

  4. 业务数据闭环:验证唯一 run ID、拉取、MCAP 时间与 Topic 闭环。

    说明

    录制交付 Demo 仅在 report.json.status == "PASS" 时才可进入下一层,FAIL 或执行未完成,必须保留远端数据并终止交付。

  5. 安全与权限:验证错误 token、loopback/ACL、唯一控制权和日志敏感信息脱敏。

  6. 异常与回滚:验证异常恢复、凭据轮换和回滚功能。

  7. 性能基线:在客户真实业务负载下,采集至少 3 个等时窗口的系统性能指标基线。

提醒

systemd 服务部署必须在手工运行测试全部通过后方可进行。

  • 部署流程:审查模板 → 备份同名单元 → systemd-analyze verify → 手工 start → 功能/鉴权/重启/回滚验收 → 最后评估是否 enable。
  • 严禁提供一步 enable --now

日志与交付完整性

  • 日志记录与数据交付要求

    • 交付日志至少包含带时区时间、机器人与软硬件版本、run ID、请求类型、退出码/业务码、状态回读、文件哈希和恢复结果。
    • 禁止包含 SSH 密码、Bearer token、Authorization 头、私钥和完整客户业务数据。
    • 录制交付闭环应保留精确录制目录、ros2_bag_info.txtdelivery_manifest.jsonreport.jsonreport.md;报告必须标明远端数据仍保留,并把录制目录、证据目录与同一 run ID 绑定。
  • 日志定位与分析

    当前基线整机的只读启动链如下(仅供定位日志和判断影响范围;不可作为客户可复制的 systemd 模板):
    realman.service/home/realman/workspace/start.sh → 等待视频设备约 40 秒 → 后台启动 rm_data_collect/data_collect_start.sh → 前台进入 rm_robot_ws/run.shrm_robot_bringup_master.launch.py

说明

realman.service 当前为 enabled/active,Restart=no。因此“服务 active”只能表示主进程仍在,不能证明所有子节点、传感器和平台功能正常;主进程意外退出后也不能假设 systemd 会自动恢复。

客户只读检查如下:

bash
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 -hps 和短窗口 tegrastats 建立特定基线。缺少 tegrastats 时标记 WARN,不安装软件或切换功耗模式来完成只读验收。

OTA 高风险边界

注意

OTA 只是参考信息,未在本手册流程实机执行。

  • 升级前门禁:必须同时确认升级包来源与 SHA-256、机器人型号、当前/目标版本、主从升级顺序、稳定供电、安全姿态、书面授权和厂商恢复方案。缺少任意一项,严禁开启升级程序。
  • 升级中门禁:升级过程中绝对不断电、不刷新、不重复点击、不切包、不裸重启。若发生页面无响应或连接中断,一律将结果定级为“未知”,保持现场并按恢复方案处理。
  • 升级后门禁:升级失败后严禁反复盲目重试、手工覆盖文件或无预案降级。升级成功后,须重新读取系统版本,并完整重跑 REST、ROS 2 图、运行状态、电池电量、必须 Topic 及数据录制闭环。任意一项基线测试未通过,绝对禁止恢复业务运行。