遥操作与会话回放
结果: 检查的关节映射允许领导者控制跟随者,并且可以在没有领导者的情况下重播已保存的会话。
准备两辆巴士
对于引导者和跟随者使用单独的串行适配器,1 – 6 联合对,保存非空限制,普通位置模式和单位分辨率。领导者可以使用工厂固件;追随者需要 Extension v9。
每条总线必须准确包含其配置的 ID。预先禁用引导扭矩:工具 永远不会写入引导 。必须锁定跟随者设置,不得延迟传统写入。使用 配置指南 准备配置文件和重力模型(如果需要)。
配置文件
macOS / Linux
cp tools/teleoperation/example.json tools/teleoperation/controller.local.json
Windows PowerShell
Copy-Item tools/teleoperation/example.json tools/teleoperation/controller.local.json
设置不同的 leaderPort 和 followerPort 、波特率和所有 joints 对。源示例包含一对;将其展开为实际手臂。为每个关注者提供一个配置文件,其中包含相对于控制器文件的路径。
{"leaderId": 1, "followerId": 1, "mapping": "angle", "direction": 1}
这是一个 joints 数组条目,而不是完整的文件。映射选项:
| 领域 | 含义 |
|---|---|
mapping: "angle" |
保留距已保存限制中点的计数位移;假设编码器刻度和传动装置兼容 |
mapping: "range" |
将引导件行程的每一半缩放到相应的从动件行程的一半,对于不同的夹具很有用 |
direction |
1 或 − 1 |
leaderMiddle , followerMiddle |
仅适用于 range 的可选中心,严格遵守各自的限制 |
限制中点可能与参考计数 2048 不同。因此,当限制不对称时,匹配校准姿势不能保证匹配目标。目标有追随者限制。
预览并开始
此命令读取总线并预览映射而不更改设置:
macOS / Linux
npm run teleoperate -- tools/teleoperation/controller.local.json
Windows PowerShell
npm.cmd run teleoperate -- tools/teleoperation/controller.local.json
将报告的位置和目标与物理设置进行比较,并检查每对的方向。支持这两种机制,并为追随者接近领导者姿势留下空间。然后显式启动控制:
macOS / Linux
npm run teleoperate -- tools/teleoperation/controller.local.json --run
Windows PowerShell
npm.cmd run teleoperate -- tools/teleoperation/controller.local.json --run
请求的 hz 范围为 1 – 60 Hz,默认为 60 ;实际速率取决于总线、计算机、反馈和记录。错过的时间段将被跳过,而不是以追赶的方式突发发送。不要在同一总线上运行另一个控制器。
检查: 没有陈旧框架或反馈错误,方向和预期行程限制正确。正常完成且 Ctrl+C 保持通电保持。采用重力模型,等待休息才能完成;如果没有,该过程可以退出,同时电机继续朝最后一个目标前进。该工具不会自动将手臂移至停车姿势。
没有领导者的情况下重播
日志保存在 logs/motion/ 中。选择包含预检前导限制和映射的 SESSION.ndjson,后跟命令事件。在当前控制器文件中保留相同的关节映射。重播仅打开关注者:
macOS / Linux
npm run replay -- tools/teleoperation/controller.local.json SESSION.ndjson
Windows PowerShell
npm.cmd run replay -- tools/teleoperation/controller.local.json SESSION.ndjson
macOS / Linux
npm run replay -- tools/teleoperation/controller.local.json SESSION.ndjson --run
Windows PowerShell
npm.cmd run replay -- tools/teleoperation/controller.local.json SESSION.ndjson --run
第一个命令预览;第二个动作。重播使用记录的领导者位置和限制、 当前跟随者限制 、当前配置文件和当前重力。它不会重述历史的成果或电机输出指令。记录的停顿仍然存在;处理延迟拉伸时间而不是发出追赶突发。
表达预期命令的日志记录并不能证明电机接受。在检查失败的会话时,比较预期命令、实际传输和反馈。