Files
acRealman_xr/docs/superpowers/specs/2026-07-28-rm75-control-timing-stats-design.md
T

1.1 KiB

RM75 控制周期统计设计

目标

在不改变控制、QP、安全停止和真机通信行为的前提下,确认激活遥操作时的 125 Hz 控制链路是否满足 8 ms 周期。

方案

SingleArmVelocityTeleop 内使用 time.perf_counter_ns() 采样,仅在 Grip 激活并执行关节命令的周期记录:

  • 相邻控制回调的实际周期;
  • 控制回调总执行时间;
  • Placo QP 求解时间;
  • send_joint_target() 调用时间;
  • 当前关节反馈年龄。

每累计约 5 秒激活样本,通过现有 ROS logger 输出一次汇总并清空窗口。每项 输出样本数、mean、P95、P99 和 max;实际周期与总执行时间额外输出超过 self._dt 的次数。首个激活周期没有可靠的相邻周期值,因此不记录周期。

统计只输出日志,不新增 ROS 消息、话题、参数、依赖或后台线程。计时与日志 异常不得影响控制路径。

验证

先添加一个小单元测试,使用确定性样本验证百分位数、超限计数、日志输出和 窗口清空。随后运行相关 pytest、姿态控制测试和 colcon build --symlink-install