运行机制与保护#
本页解释当前软件的控制频率、反馈检查、命令所有权与电流保护,帮助分析“为什么停止发送动作”或“为什么另一客户端无法接管”。数值来自当前软件说明,修改配置或升级版本后需重新核对。
控制、图像与数据频率#
环节 |
当前行为 |
|---|---|
Host 控制 |
命令处理、反馈、看门狗与保护检查目标 50 Hz |
原生遥操作 |
控制目标 50 Hz,相机请求默认 30 Hz |
单频录制 |
控制与采样都使用 |
多频录制 |
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 是否仍在线 → 控制权是否属于当前客户端 → 反馈是否新鲜 → 是否触发关节保护 → 相机是否满足录制要求。具体检查命令见 调试与排错。