Files
TG3/README.md

96 lines
5.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# TG3 天工 3.0 本地同构臂遥操
本仓库保存 TS1P 同构臂经 OmniSocket 控制天工 3.0 双臂、BrainCo Revo2
双手和 HBWALK 前后/转向所需的自写代码。它不包含、不修改 xTELE、机器人厂家
控制源码或 OmniSocketGo 本体。
## 目录
- `tg3_omnisocket_transport/`:部署到 EAI 工控机;从 xTELE 的本机 5003/5001
读取数据,仅在左 Z + 右 C 连续 3 秒开启后注册并发送,STOP 后立即断开;还包含
不走公网时在 EAI 运行 `kcpserver` 的本地 Hub 用户服务模板。
- `tg3_local_teleop/`:部署到机器人 Nvidia;直接接收 OmniSocket 数据,发布双臂、
双手及 `/hric/robot/cmd_vel`,提供限速回 Home,并独立录制控制数据 MCAP。
- `tg3_data_collection/`:部署在本机;通过本地 SSH/rsync 拉取已完整收尾并校验的
episode,原子保存到 `Data_Get/`;持久化验真凭据后自动回收机器人上的对应副本。
- `Data_Get/`:最终数采目录。实际 MCAP、清单和同步状态默认不提交 Git。
- `docs/`:跨设备迁移先看
[`天工3.0同构臂遥操与数采跨设备迁移手册.md`](docs/天工3.0同构臂遥操与数采跨设备迁移手册.md),
更底层的公网/本地 Hub 与 ZMQ 细节见原迁移部署指南。含实测帧和现场拓扑的汇报/证据文档只保留在
当前本地工作副本,不同步到匿名可读的远端仓库。
## 外部依赖(不随仓库提交)
两端都需要单独安装 OmniSocketGo 的 Python 扩展。当前验证版本为:
```text
https://gitea.public.snrc.site/limingjie/OmniSocketGo.git
commit de3f5c96779dbe1571c10feb22fc7f2331b6b222
```
EAI 还需已安装并运行 xTELE;本地 Hub 模式必须保留完整 OmniSocketGo 源码并编译
`bin/kcpserver`。机器人端需已有 ROS 2 Jazzy、厂家消息包与驱动。
详见
[`docs/天工3.0本地同构臂遥操迁移部署指南.md`](docs/天工3.0本地同构臂遥操迁移部署指南.md)。
OmniSocket Python 扩展包含本机架构代码,必须分别在 EAI 和机器人上从上述固定提交
原生执行 `make python-ext`,不能复制另一种 CPU 或 Python 版本生成的 `.so`。
提交或部署前可运行 `./verify.sh` 完成两端协议、手势、接收端刷新、Python 编译和
TOML 解析检查。若还要核对外置 OmniSocketGo 版本,可设置任务专用环境变量
`OMNISOCKETGO_DIR=/path/to/OmniSocketGo` 后再运行。
## 当前按键
- 左 Z + 右 C 连续 3 秒:开始遥操;再次连续 3 秒:结束并限速回 Home。
若 Hub 尚未运行,本次长按只检测一次并立即结束,不发送控制数据;服务器启动后须先
稳定松开,再重新长按 3 秒。pending 和活动会话都不会自动重试或自动恢复。
- 遥操开启且双摇杆先回中过一次后,左摇杆上下直接控制 HBWALK 前进/后退。
- 遥操开启且双摇杆先回中过一次后,右摇杆左右直接控制 HBWALK 原地转向。
- 右 B 连续 1 秒:左右手同时进入厂商“单食指”姿态;松开至少 0.5 秒后再次连续
1 秒退出。手指动作继续受 `400 units/s` 限速。
- 按住右 A:右手限速摆到目标位置 `[428,735,500,77,77,72]`;松开 A 后恢复
原有右手输入。A 在每个新遥操会话中必须先稳定松开 0.5 秒,防止跨会话误触。
- 左摇杆按下(L3)连续 1 秒:开始数采;松开至少 0.5 秒后再次连续 1 秒:
结束并保存。只有遥操已开启时才接受;Z+C 结束遥操或安全解除会自动结束数采。
## 数采保存
Nvidia 独立服务录制明确白名单内的机器人实测状态、双臂/双手命令与反馈、行走、
IMU、电源状态、xTELE 应用帧以及头/腰 Orbbec 的 RGB-D。RGB 使用标准 JPEG 压缩流,
16 位深度使用无损 compressedDepth PNG,并同时保存相机内参与静态 TF。头部和腰部
相机都是可选流:服务运行就自动采集,未运行不阻塞核心 episode;manifest 会分别标记
`absent/healthy/partial/low_rate`。它不接管或停止厂家
`/record_bag_node`,也不录点云。正常结束后先校验 MCAP、生成 SHA-256
`manifest.json` 和 `READY`,再由
本机服务拉取到:
```text
/home/ps/Desktop/TG3_TS1P_OmniSocket_Teleop/Data_Get/<episode_id>/
```
传输中断只会留在 `Data_Get/.incoming/`,不会显示为完成 episode。机器人在录制期间
必须临时写 `active/ready`;只有本机完成全文件 SHA-256、fsync、原子发布并写入
`VERIFIED` 后,才会自动删除机器人上同 ID、同 manifest 哈希的 `ready` 目录。EAI
从不保存 MCAP 或图像 payload。部署、状态检查和恢复步骤见
`tg3_data_collection/README.md`。
## 迁移前必须修改
至少核对并修改服务器地址、两端 Peer ID、同构臂 ID、直连回退 IP、安装用户名和
路径。`config.toml` 中的 14 关节 Home 是当前实机采集值,不能直接用于另一台机器人;
必须在新机器人上重新采集并完成低速验证。所有厂家默认限位、碰撞、电流和急停保护
保持不变。
运行产生的 `status.json`、日志、Python 缓存及 ROS 构建目录已由 `.gitignore`
排除。
## 安全与仓库可见性
这是物理机器人控制项目。启动带 `--allow-publish` 的服务、测试手势、行走或回 Home
前,必须确认机器人处于 HBWALK,防护和急停有效,双臂、灵巧手与行走区域净空。
仓库保留了现场 Hub 地址、设备/Peer ID、内网地址、当前实机 Home 姿态,以及标记为
`Proprietary` 的 ROS 消息定义,建议 Gitea 仓库保持私有。原厂 SDK 文档和 PDF 未收入
仓库,避免上传其中的下载授权码、Wi-Fi 信息及版权资料。