状态读取

Scene、Frame、Geometry 与 Control Context 返回带 run、generation、revision 或 tick 的稳定值对象。调用者读取的是某个提交边界上的快照,而不是后端正在修改的可变容器。

控制目标

control.targets() 公开当前授权的 actor、resource group、axis、command space 和 controller 能力。控制源先发现目标,再按稳定 joint/track 身份构造命令;它不应猜测后端自由度顺序。

Control Chunk

控制源提交的是带时间与目标含义的 Chunk。Runtime 验证 generation、资源、单位、时序和权限,并在控制 tick 边界调度到 UniRoboSim。Rule-based、Model、Teleop 或远程 Server 最终使用同一执行器。

Operation

异步提交返回 Operation。它有独立 ID、状态、结果、取消与释放语义:

  • 调用等待超时不表示 Operation 已取消;
  • cancel 是显式请求,并返回是否被接受;
  • result 给出成功、失败或取消等终态;
  • reset 或 close 会使旧 generation 的操作失效并完成清理。

仲裁

当多个控制源覆盖同一资源时,Runtime 根据已编译的 authority 与优先级执行准入和抢占。仲裁发生在公共控制边界,而不是由插件彼此调用或直接覆盖最后一帧命令。

规划边界

规划算法不属于 Core。插件可以捕获一致的 scene/frame/geometry/control-target 数据,在自己的 worker 中计算轨迹,再把物理 Chunk 交给 Runtime。重新校验保证长时间计算后的结果不会落到已变化的世界。

具体方法见Application API 指南Python SDK