runtime配置
请在本地hw_r2c_sdk-x.x.x/r2c_sdk_python/config文件夹找到机器人配置文件robot_{不同的机器人}_config.yaml,比如robot_flexiv_config.yaml。
机器人端配置文件中runtime配置项主要分为基础控制项、异步融合、心跳上报、键盘控制这几类。
runtime配置项示例
runtime:
publish_hz: 20.0 # 动作运行频率 (Hz),同时决定观测发布检查频率
max_duration_s: 0.0 # 最大运行时长 (秒),0表示持续运行
dry_run: false # 调试模式:只发送观测,不运行动作
action_response_timeout_s: 5.0 # 等待云端动作响应的超时时间 (秒)
max_enqueue_actions_per_chunk: -1 # 单次入队的动作数上限,-1表示全部采用
enable_action_chunk_alignment: false # 启用chunk对齐
skip_initial_observations: 1 # 启动后跳过的初始观测数,默认1
# 心跳上报
heartbeat:
enabled: true
interval_ms: 5000
jitter_ms: 0
status: "ONLINE"
mode: "AUTO"
# 键盘控制
keyboard_control:
enabled: false # ── 异步请求融合配置 ─────────────────────────────────────────────
# 控制是否启用异步请求与轨迹融合。启用后,队列未空即可提前发布新
# observation(掩盖云端推理延迟),并用融合策略平滑新旧 chunk 衔接。
async_request:
enabled: false
# 队列中剩余 action 数低于此阈值时提前请求新 observation。
# 0 退化为队列空才发布。
publish_trigger_threshold: 0
# 轨迹融合子配置
fusion:
# 融合策略: replace (直接替换) / weighted_average (加权平均) / nearest_neighbor (最近邻)
strategy: weighted_average
# 融合窗口大小 (用于 weighted_average / nearest_neighbor)
window_size: 10
# 类型感知融合 (Type-Aware Fusion):声明 joint_states.position 中每个元素的物理语义。
# 可选值: joint_angle / position_xyz / euler / quaternion。
# 需同时配置 strategy != replace 才能触发融合。
state_types:
- joint_angle
- joint_angle
- joint_angle
- joint_angle
- joint_angle
- joint_angle
# state_type_order — 为每个观测字段指定类型优先级排序 (可选)
# state_type_order:
# euler: rpy
# quaternion: wxyz runtime基础控制项
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| publish_hz | float | 30 | 控制循环(动作运行)频率。 主循环每tick消费1个队列中的动作并运行,同时检查是否需要发布新观测。 实际观测发布速率取决于云端响应和队列消耗速度,一般为10Hz~30Hz。 |
| max_duration_s | float | 0 | 最大运行时长。 0或负数表示持续运行,需通过Ctrl+C停止运行。 |
| dry_run | bool | false | 该参数为true时正常发送观测数据,但不运行推理返回的动作。 适用于调试。 |
| action_response_timeout_s | float | 1.0 | 发送观测后等待云端动作的超时时间。 超时后重新发送观测。 |
| skip_initial_observations | int | 1 | 启动后跳过前N个观测不发布。 首个观测通常包含不完整数据(传感器未就绪),默认跳过1个。 |
动作序列与异步融合
云端返回的action chunk(动作序列)被拆分为多个action,将action逐个推入运行队列消费。当队列中仍有未消费的旧动作时,新chunk到达会触发融合逻辑,避免关节轨迹跳变。
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| max_enqueue_actions_per_chunk | int | -1 | 单次入队的动作数上限,超出部分丢弃。 -1表示全部采用。 |
| enable_action_chunk_alignment | bool | false | 新chunk到达时,先对齐到上次已运行的最后一个动作位置。 适用于chunk之间存在重叠的推理场景。 |
| publish_trigger_threshold | int | 0 | 队列中剩余动作数低于此阈值时触发新一轮观测发布。 0表示队列清空才发布(不进行异步融合)。 |
| fusion_strategy | str | replace | 融合策略,当前仅支持对关节值的融合,未端位姿暂不支持,请参见表3。 |
| fusion_window_size | int | 10 | 融合窗口大小,仅weighted_average策略使用。 |
| 策略 | 说明 | 适用场景 |
|---|---|---|
| replace | 直接替换旧队列(默认行为)。 | 低延迟、single-step推理 |
| weighted_average | 新旧动作前W步线性加权平均,逐步过渡。 | chunk推理、要求平滑过渡 |
| nearest_neighbor | 以当前关节状态为锚点,在新chunk中匹配最近点作为起点。 | 关节快速运动、空间对齐 |
动作队列与异步融合的配置建议
# 低延迟模式(single-step 推理,不融合) runtime: publish_trigger_threshold: 0 fusion_strategy: "replace" # 平滑过渡模式(chunk 推理,加权融合) runtime: publish_trigger_threshold: 10 fusion_strategy: "weighted_average" fusion_window_size: 10
心跳上报
runtime.heartbeat参数控制向云端定期发送心跳信号,用于监控设备在线状态。
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| enabled | bool | false | 是否启用心跳 |
| interval_ms | int | 1000 | 心跳间隔 |
| jitter_ms | int | 0 | 随机抖动(毫秒),避免多设备同时上报 |
| status | str | "ONLINE" | 心跳状态值 |
| mode | str | "AUTO" | 心跳模式 |
心跳上报示例
heartbeat: enabled: true interval_ms: 5000 status: "ONLINE" mode: "AUTO"
键盘控制
runtime.keyboard_control参数启用终端键盘快捷键控制机器人。
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| enabled | bool | false | 是否启用键盘控制。 键盘控制默认快捷键如表6。 |