运行机制与保护#

本页解释当前软件的控制频率、反馈检查、命令所有权与电流保护,帮助分析“为什么停止发送动作”或“为什么另一客户端无法接管”。数值来自当前软件说明,修改配置或升级版本后需重新核对。

控制、图像与数据频率#

环节

当前行为

Host 控制

命令处理、反馈、看门狗与保护检查目标 50 Hz

原生遥操作

控制目标 50 Hz,相机请求默认 30 Hz

单频录制

控制与采样都使用 dataset.fps

多频录制

50 Hz 控制,按数据集频率写入新鲜对齐样本

相机独立发布

显式开启后通过 TCP 5557 发布

机械臂位置控制使用舵机侧的速度与加速度配置。当前配置字段 arm_goal_velocity、arm_acceleration 使用舵机原始寄存器单位,不能把数值直接解释为通用的度/秒或米/秒。

网络接口#

端口

数据

5555

控制命令

5556

观测、状态和元数据;传统请求保留状态与图像响应

5557

可选独立相机流

状态请求令牌以 :state 结尾时返回纯状态。ROS 兼容相机流需要 Host 显式开启:

python -m lerobot.robots.alohamini.alohamini_host \
  --robot_model alohamini2 \
  --camera-stream

开启相机流不会自动把默认两路相机改为五路,启用清单仍由相机配置决定。

单个客户端拥有控制权#

第一个发送有效命令的客户端取得控制权,Host 拒绝其他写入者。纯状态观察者不会取得控制权。

当当前控制器超过默认 1 秒未发送命令,Host 先停止运动,再释放控制权。切换遥操作、录制与评估时,应先停止当前控制器,等待释放后再启动新的控制器。

新客户端把命令绑定到 Host 会话与控制 epoch,用于区分重启或接管前后的命令。Host 和 PC 应一起升级;旧版未标识命令作为一个共享旧控制器处理,缺少相同的会话重放保护,不应同时运行多个旧版命令客户端。

反馈必须足够新#

PC 发送命令前,需要完整反馈来自最近 250 ms 内发出的请求。响应缺失时停止发送新命令,防止继续依据过期状态执行。

同步策略推理后会更新已经过期的反馈;该限制不等于推理时间限制。看门狗、关节保护、Host 重启或控制权变化后,评估会暂停并清空待执行动作,等待显式恢复。

电流保护参数#

以下为软件文档列出的电流参数,单位为 A:

舵机

额定

堵转

碰撞保持

持续过载停止

接近堵转停止

STS3215

0.9

2.7

1.35

1.8

2.16

STS3095

2.2

9.8

3.3

4.4

7.84

STS3250

1.4

4.2

2.1

2.8

3.36

碰撞保持#

当前逻辑需要同时满足电流阈值、至少 2° 的目标误差,以及 150 ms 内向目标前进不足 0.2°。位置差通过校准转换为角度,包括采用归一化坐标的情况。

目标反向越过保持位置可以解除该保持。Host 每个控制周期都会监督活动目标,即使该周期没有新命令;保持目标改变时才写入相应保护修正。

过载与近堵转#

持续过载达到 650 ms 后停止;近堵转达到 80 ms 后停止。持续时间按实际经过时间判断,触发检测发生在下一次反馈采样,因此不是精确到毫秒的硬件断电承诺。

夹爪另有 0.5 A 接触阈值。观测元数据中的电机电流采用 mA,分析日志时注意单位转换。

这些软件机制用于限制异常动作,不能替代合理的机械装配、运动空间和实际测试。反复触发时应先检查负载、卡滞、校准与控制目标。

相机时间戳与缺图#

缺图告警依据 Host 已启用的相机清单产生,并按缺图阶段提示。纯状态响应不会被误报为缺图;旧 Host 没有相机元数据时,客户端使用本地相机配置。

缓存图像和占位图不会获得新的采集时间戳。多频录制因此可以区分新图与重复旧图,避免把“窗口中仍有画面”误认为相机正在持续采集。

排查顺序#

发生动作暂停时,先确定:Host 是否仍在线 → 控制权是否属于当前客户端 → 反馈是否新鲜 → 是否触发关节保护 → 相机是否满足录制要求。具体检查命令见 调试与排错。