set_config 可配置字段参考(导航服务 / 相机服务 / 运动规划服务 / 控制服务)
GalbotRobot.set_config() 用于修改导航服务、相机服务、运动规划服务和控制服务的运行时配置。本文档列出这些服务当前支持设置的全部字段、含义、类型和取值范围。接口本身的签名、参数、返回值请参见 Python API 参考 / C++ API 参考 中 GalbotRobot.set_config 的说明。
基本用法
set_config() 接受一个 ConfigService(要修改哪个服务)和一组 ConfigItem(key, value)(要改哪些字段、改成什么值):
from galbot_sdk.g1 import GalbotRobot, ConfigService, ConfigItem, ControlStatus
robot = GalbotRobot()
robot.init()
status = robot.set_config(
ConfigService.NAVIGATION,
[
ConfigItem("replan_threshold", 30.0),
ConfigItem("no_replan_threshold", 1.0),
],
)
print(status) # ControlStatus.SUCCESS / INVALID_INPUT / ...
robot.request_shutdown()
robot.wait_for_shutdown()
robot.destroy()
几个关键行为,使用前务必了解:
key直接使用下方表格中列出的字段名称即可。- 调用只返回一个整体的
ControlStatus,不会告诉你具体是哪个字段出的问题;失败时请查看 SDK 日志(~/galbot_sdk_log/g1/下)里的ERR行定位原因。 - 一次调用可以传多个字段;只要有一个字段不合法(不在下表中,或者值不满足取值范围),这一整批都不会生效。
set_config() 调用成功(返回 ControlStatus.SUCCESS)仅表示配置已保存,不会立即生效。请在配置完成后重启设备,新的配置才会被相应服务重新加载并生效。
导航服务(ConfigService.NAVIGATION)
以下按功能分组列出导航服务支持设置的全部 52 个字段。
地图与避障
| 字段 (key) | 类型 | 取值范围 | 说明 |
|---|---|---|---|
esdf_map_path | str | 无限制 | ESDF 地图路径;地图不存在时服务将进入异常模式 |
forbidden_dyn_map | bool | - | 是否禁用动态地图(开启/关闭动态避障功能) |
use_static_map | bool | - | 启用静态地图规划:路径搜索在静态地图中进行,动态地图仅用于实时碰撞检测;遭遇障碍物阻挡时停障而非绕障 |
evaluate_at_dyn_map | bool | - | 是否在动态地图层进行点位可达预估(开启后同时在动态图层评估可达性;关闭时仅用静态图层评估) |
重规划与超时
| 字段 (key) | 类型 | 取值范围 | 说明 |
|---|---|---|---|
no_replan | bool | - | 规划失败或运行中检测到碰撞时是否立即上报失败、不再进行重规划尝试 |
task_timeout_sec | float | 单位秒 | 单次导航请求的全局超时时间,超过该时间未完成则判定导航失败并上报;正值为超时时长,非正值表示不设超时、允许无限重规划 |
dyn_plan | bool | - | 是否启用动态连续重规划(Beta):开启后重规划时不下发停止指令,以上一次轨迹执行位置为起始条件连续重规划,避障运动更连续;关闭(默认)则先停止底盘再重规划 |
replan_threshold | float | > 0.1,单位 m | 当前位置距离起始点小于该阈值时不进行重规划;replan_threshold + no_replan_threshold 之和须小于 planning_horizen,否则主动重规划会失效 |
no_replan_threshold | float | > 0.1,单位 m,一般设 1.0 | 当前位置距离目标点小于该阈值时不进行重规划;过小容易在接近目标点时因重规划引起轨迹抖动 |
planning_horizen | float | > 0,单位 m | 局部规划视界,每次仅规划该范围内的路径;超出部分按此长度截断,分多段完成导航 |
search_closest_distance | float | > 0,单位 m | 路径搜索失败时,返回的部分路径与障碍物保持的距离;若大于可行通道宽度的一半,该区域将被视为不可达区域 |
末端工具碰撞检测
| 字段 (key) | 类型 | 取值范围 | 说明 |
|---|---|---|---|
left_arm | int | 枚举 0~6 | 左臂末端工具类型,用于导航规划时纳入末端工具与环境的碰撞检测:0=None,1=gripper_hitbot,2=suction_cup,3=robotiq_gripper,4=galbot_gripper,5=GE103,6=GE103v1(默认 0,不考虑碰撞) |
right_arm | int | 枚举 0~6 | 右臂末端工具类型,含义同 left_arm |
路径搜索安全距离
| 字段 (key) | 类型 | 取值范围 | 说明 |
|---|---|---|---|
point_safe_margin | float | > 0,单位 m | 路径点与障碍物的距离(硬约束) |
search_start_radius | float | > 0,单位 m | 路径搜索阶段,起始点特化范围半径 |
search_end_radius | float | > 0,单位 m | 路径搜索阶段,目标点特化范围半径 |
start_safe_margin | float | > 0,单位 m | 起始特化范围内点位与障碍物距离,适配起始点接近障碍物的情况 |
end_safe_margin | float | > 0,单位 m | 目标特化范围内点位与障碍物距离,适配目标点接近障碍物的情况 |
return_closest_path | bool | - | 路径搜索失败(通路被阻挡)时,是否返回可行域内距目标点最近的部分路径;目标点在货架/墙壁对面等场景慎用,可能出现"走错位置"的观感 |
轨迹优化(安全距离与平滑度)
| 字段 (key) | 类型 | 取值范围 | 说明 |
|---|---|---|---|
safe_distance | float | > 0,单位 m | 路径控制点与障碍物距离(软约束);应大于搜索阶段的安全距离,一般大 0.2~0.5m |
start_safe_distance | float | > 0,单位 m | 起始特化范围内点位与障碍物距离 |
end_safe_distance | float | > 0,单位 m | 目标特化范围内点位与障碍物距离 |
optimize_start_radius | float | > 0,单位 m | 轨迹优化阶段,起始点特化范围 |
optimize_end_radius | float | > 0,单位 m | 轨迹优化阶段,目标点特化范围 |
post_check_hard_safe_distance | float | > 0,单位 m | 轨迹优化后验硬约束:最终规划路径点与障碍物距离小于该值则判定规划失败 |
weight_obstacle | float | > 0 | 障碍物距离权重(安全性权重),默认以安全性为优先,数值越大越优先避障 |
weight_smooth | float | 数值越大轨迹越平滑,20.0~50.0 通常有较好效果 | 轨迹平滑性权重;场景宽敞、无需贴近障碍物时可适当调高以提升导航流畅度 |
碰撞检测
| 字段 (key) | 类型 | 取值范围 | 说明 |
|---|---|---|---|
check_collision_radius | float | > 0,单位 m,建议不超过 5 | 导航执行时,沿规划路径基于机器人当前位置向前预测检测碰撞的距离;预测距离过大易导致频繁重规划、运动卡顿或抖动 |
collision_check_plan_path | bool | - | 规划完成时是否检测全轨迹(圆柱包络)碰撞可行性,不可行则不下发控制执行;高动态响应/无图长程导航等场景可关闭,改为运行时碰撞预测+动态重规划配合使用 |
速度、加速度与控制周期
| 字段 (key) | 类型 | 取值范围 | 说明 |
|---|---|---|---|
max_velocity | List[float] | 长度 3,单位 m/s、rad/s,元素范围 (0, 1.5) | 导航规划最大速度 [vx, vy, w];需同步保证机器人控制端速度上限不小于此值,否则可能出现跟踪不上的情况 |
max_acceleration | List[float] | 长度 3 | 导航规划最大加速度 [ax, ay, aw];一般不修改 |
max_jerk | List[float] | 长度 3 | 导航规划最大加加速度 [jx, jy, jw];一般不修改 |
enable_centripetal_constraint | bool | - | 是否启用向心加速度约束 |
max_centripetal_acc | float | > 0 | 向心加速度约束上限 |
control_cycle_time | float | 一般不修改 | 规划路点时间间隔(控制周期),决定路点密集程度 |
到位精度
| 字段 (key) | 类型 | 取值范围 | 说明 |
|---|---|---|---|
arrival_pos_err_x | float | > 0,单位 m | 到达位置误差(X 方向);需保证机器人控制精度小于此处到位误差,否则会触发无法到位问题,控制精度不宜小于 1cm |
arrival_pos_err_y | float | > 0,单位 m | 到达位置误差(Y 方向) |
arrival_ori_err | float | > 0,单位 rad | 到达角度误差 |
全向与短位移运动
| 字段 (key) | 类型 | 取值范围 | 说明 |
|---|---|---|---|
omni_plan | bool | 仅 G系列 | 是否启用全向规划(同时平移与旋转);关闭时为常规航向导航(先转向再直行)。受限于雷达可视范围,全向运动背对障碍物行进时存在碰撞风险,需结合场景判断是否开启。S1 机型传入会返回 INVALID_INPUT |
stop_err | float | 单位 m(G系列默认 0.2,S1 默认 0.5) | 短位移判定阈值:当前位置与目标位置距离小于该值时,采用短位移运动方式 |
adjust_motion_type | int | 枚举 0~2 | 短位移运动方式:0=全向(G系列),1=蟹行+旋转,2=旋转+蟹行(S1 推荐,避免关节碰撞) |
try_omni_plan_first | bool | - | 是否优先尝试全向(S1 为旋转+蟹行)直线运动到达,无碰撞则执行,否则进入常规规划流程 |
try_omni_plan_min_obstacle_distance | float | > 0,单位 m | 尝试全向直线路点与障碍物保持的距离 |
过渡点自动插入
| 字段 (key) | 类型 | 取值范围 | 说明 |
|---|---|---|---|
dis_with_obstacle | float | 单位 m;≥0 生效(建议 0.2),<0 关闭 | 规划首末位置与障碍物(机器人或指定 link 圆柱包络表面)保持的距离;需结合 find_valid_pos_step 一并设置 |
find_valid_pos_step | float | 单位 m;≥0 生效(建议 0.05),<0 关闭 | 首末与障碍物保持距离无法达成(窄通道)时,搜索最佳安全距离的步长;需结合 dis_with_obstacle 一并设置 |
find_start_valid_pos_check_link_list | List[str] | 来自 URDF | 起点查找远离点时,纳入包络检测的 link 列表 |
find_end_valid_pos_check_link_list | List[str] | 来自 URDF | 终点查找远离点时,纳入包络检测的 link 列表;指定较小的 link 列表可避免上身姿态臂展较大时圆柱包络半径过大而插入冗余过渡点 |
脱困策略
| 字段 (key) | 类型 | 取值范围 | 说明 |
|---|---|---|---|
enable_adjustment | bool | - | 是否启用脱困调整(导航规划路径碰撞时进入脱困策略);开启时若同时开启静态地图规划,停障功能将失效 |
recovery_strategy_order | List[int] | 元素枚举 0~3,建议顺序 [1,2,3,0] | 脱困策略尝试顺序:0=指定过渡点导航,1=直接全向(S1 为旋转+蟹行)直线到达,2=按碰撞位置搜索可原地旋转点,3=按碰撞位置分类处理 |
adjust_motion_types | List[int] | 元素枚举 0~2 | 到达远离障碍物过渡点尝试的运动方式,按配置顺序依次尝试:0=全向(G系列),1=蟹行+旋转,2=旋转+蟹行 |
transition_poses | List[List[float]] | 每项长度 3 或 7 | 指定脱困过渡点位姿列表,每项为 [x,y,yaw] 或 [x,y,z,rx,ry,rz,rw];设置多个时选运行耗时最短的可行点 |
其它
| 字段 (key) | 类型 | 取值范围 | 说明 |
|---|---|---|---|
save_data | bool | - | 是否保存每次导航的过程数据(动态地图、碰撞时局部地图、规划路径),用于问题复现与可视化排查 |
相机服务
相机被拆成 4 个独立的 ConfigService:
| ConfigService | 支持机型 |
|---|---|
LEFT_ARM_CAMERA | G系列 / S1 |
RIGHT_ARM_CAMERA | G系列 / S1 |
FRONT_HEAD_CAMERA | G系列 / S1 |
SURROUND_CAMERAS | 仅 G系列;S1 上调用会返回 INVALID_INPUT |
只有下表列出的字段可以设置;其它字段不在可设置范围内,传入会导致整批被拒绝。
color_width/color_height(全部 4 个相机服务都有)和 rs_color_width/rs_color_height(仅 LEFT_ARM_CAMERA/RIGHT_ARM_CAMERA,RealSense 相机专用)必须在同一次 set_config() 调用里成对出现,且组合必须是下表取值范围列给出的合法组合之一;只传一个,或者两个都传但组合不合法,都会导致整批被拒绝。只想改其中一个也必须把另一个的目标值一起传上去。
LEFT_ARM_CAMERA / RIGHT_ARM_CAMERA(两个服务字段定义完全相同)
左右臂相机既可能装的是单目(monocular)相机,也可能是 RealSense 深度相机,color_width/color_height 是最终输出分辨率(两种相机都用这组),rs_color_width/rs_color_height 是 RealSense 相机专用的采集分辨率;具体装的是哪种相机,由调用方自行确认,SDK 不做检测。
| 字段 (key) | 类型 | 取值范围 | 说明 |
|---|---|---|---|
color_width | int | 与 color_height 成对,合法组合:(1920,1536) (1280,1024) | 最终输出图像宽度 |
color_height | int | 见上 | 最终输出图像高度 |
frame_rate | int | 枚举 30、15 | 最终输出帧率 |
rs_color_width | int | 与 rs_color_height 成对,合法组合:(1280,720) (848,480) (640,480) (640,360) (480,270) (424,240) | RealSense 采集图像宽度 |
rs_color_height | int | 见上 | RealSense 采集图像高度 |
rs_frame_rate | int | 枚举 30、15、9、6 | RealSense 相机帧率;RealSense 仅支持这 4 个值 |
ir_enabled | bool | - | 是否开启红外图像发布 |
imu_enabled | bool | - | imu 数据发布的开关;目前仅 D436 支持 |
iframe_interval | int | ≥ 2 | I 帧间隔;建议为帧率的倍数 |
FRONT_HEAD_CAMERA
| 字段 (key) | 类型 | 取值范围 | 说明 |
|---|---|---|---|
undistort_enabled | bool | 默认 false | 是否开启畸变矫正 |
color_width | int | 与 color_height 成对,合法组合:(1280,992) 或 (-1,-1)(全尺寸) | 图像宽度 |
color_height | int | 见上 | 图像高度 |
frame_rate | int | 枚举 30、15 | 帧率 |
iframe_interval | int | ≥ 2 | I 帧间隔;建议为帧率的倍数 |
SURROUND_CAMERAS(字段名与 FRONT_HEAD_CAMERA 相同,分辨率取值不同)
| 字段 (key) | 类型 | 取值范围 | 说明 |
|---|---|---|---|
undistort_enabled | bool | 默认 false | 是否开启畸变矫正 |
color_width | int | 与 color_height 成对,合法组合:(1920,1536) 或 (-1,-1)(全尺寸) | 图像宽度 |
color_height | int | 见上 | 图像高度 |
frame_rate | int | 枚举 30、15 | 帧率 |
iframe_interval | int | ≥ 2 | I 帧间隔;建议为帧率的倍数 |
相机配置示例
from galbot_sdk.g1 import GalbotRobot, ConfigService, ConfigItem, ControlStatus
robot = GalbotRobot()
robot.init()
# 头部相机:设置分辨率(宽高必须一起传)
status = robot.set_config(
ConfigService.FRONT_HEAD_CAMERA,
[
ConfigItem("color_width", 1280),
ConfigItem("color_height", 992),
],
)
print(status)
robot.request_shutdown()
robot.wait_for_shutdown()
robot.destroy()
运动规划服务(ConfigService.MOTION_PLAN)
以下按功能分组列出运动规划服务支持设置的全部字段(22 个非按链字段 + 3 组共 35 个按链字段),G系列 / S1 均可使用。
按链字段的 key 命名规则
部分字段需要按身体链路分别配置,链名可取以下 5 种:head(头部)、left_arm(左臂)、right_arm(右臂)、torso(腰部)、leg(腿部)。这类字段的 key 命名规则是 {字段名}_{链名},例如 max_velocity_left_arm。
各链对应的关节数(即数组长度)随机型不同:
| 链 | G系列 | S1 |
|---|---|---|
head | 2 | 2 |
left_arm | 7 | 7 |
right_arm | 7 | 7 |
torso | 2 | 1 |
leg | 5 | 1 |
数组长度必须与当前连接机型对应链的关节数完全一致,否则该字段会被拒绝。
采样规划参数
| 字段 (key) | 类型 | 取值范围 | 说明 |
|---|---|---|---|
state_check_type | str | 常见取值 EUCLIDEAN_DISTANCE、RADIAN_DISTANCE(不做强校验) | 状态距离度量方式 |
state_check_resolution | float | > 0 | 判定两个状态是否视为不同的最小距离阈值 |
interpolate | bool | - | 采样点之间是否插值 |
interpolation_cnt | float | 无强制限制;≤0 表示自动/保持原值 | 插值中间点数量 |
simplify | bool | - | 是否对规划路径做简化(shortcut) |
max_simplification_time | float | 无强制限制,单位 s;≤0 表示保持原值 | 路径简化的时间预算 |
termination_condition_type | str | 常见取值如 TimeoutAndExactSolution(不做强校验) | 规划终止条件类型 |
plan_timeout | float | ≥ 0,单位 s | 规划超时时间 |
轨迹规划参数(非按链)
| 字段 (key) | 类型 | 取值范围 | 说明 |
|---|---|---|---|
min_move_time | float | ≥ 0,单位 s | 单段轨迹最短执行时间;0 表示尽量按动力学上限最快执行 |
move_line_intermidiate_point | float | > 0 | 直线段中间插值点数量(注意字段名拼写就是 intermidiate) |
way_point_plan_expected_time | float | 无强制限制,建议 > 0 | 多路点轨迹期望总时长提示 |
按链轨迹速度/加速度/加加速度限制
| 字段 (key) | 类型 | 取值范围 | 说明 |
|---|---|---|---|
max_velocity_{链} | List[float] | 长度为对应链的关节数 | 该链的最大关节速度限制 |
max_acceleration_{链} | List[float] | 长度为对应链的关节数 | 该链的最大关节加速度限制 |
max_jerk_{链} | List[float] | 长度为对应链的关节数 | 该链的最大关节加加速度限制 |
{链} 可取 head、left_arm、right_arm、torso、leg,如 max_velocity_left_arm。
IK 求解参数
| 字段 (key) | 类型 | 取值范围 | 说明 |
|---|---|---|---|
col_aware_ik_timeout | float | > 0,单位 ms | 碰撞感知 IK 单次求解的总时间预算 |
seed_type | str | 枚举 RANDOM_SEED、RANDOM_PROGRESSIVE_SEED、USER_DEFINED_SEED | IK 初值/随机种子策略;传入非法值该字段会被拒绝(避免导致 IK 配置整体加载失败) |
enable_collision_check_log | bool | 默认 false | 是否输出碰撞检测诊断日志 |
translation_eps | List[float] | 长度 3,各分量 ≥ 0,单位 m | 位置收敛容差 [x, y, z] |
rotation_eps | List[float] | 长度 3,各分量 ≥ 0,单位 rad | 姿态收敛容差 [roll, pitch, yaw] |
enable_collision_avoidance | bool | - | IK 求解时是否开启碰撞规避 |
IK 软限位(按链,必须成对设置)
ik_soft_limit_lower_{链} 和 ik_soft_limit_upper_{链} 必须在同一次 set_config() 调用里成对出现,只传一个会导致整批被拒绝。
| 字段 (key) | 类型 | 取值范围 | 说明 |
|---|---|---|---|
ik_soft_limit_lower_{链} | List[float] | 长度为对应链的关节数 | IK 求解关节软限位下限 |
ik_soft_limit_upper_{链} | List[float] | 长度为对应链的关节数 | IK 求解关节软限位上限 |
采样规划限位(按链,必须成对设置)
sample_planner_limit_lower_{链} 和 sample_planner_limit_upper_{链} 必须在同一次 set_config() 调用里成对出现,只传一个会导致整批被拒绝。
| 字段 (key) | 类型 | 取值范围 | 说明 |
|---|---|---|---|
sample_planner_limit_lower_{链} | List[float] | 长度为对应链的关节数 | 采样规划关节限位下限 |
sample_planner_limit_upper_{链} | List[float] | 长度为对应链的关节数 | 采样规划关节限位上限 |
碰撞检测开关
| 字段 (key) | 类型 | 取值范围 | 说明 |
|---|---|---|---|
enable_self_collision_check | bool | - | 是否开启自碰撞检测 |
enable_env_collision_check | bool | - | 是否开启环境碰撞检测;关闭后可能规划出与环境碰撞的轨迹 |
轨迹校验开关
| 字段 (key) | 类型 | 取值范围 | 说明 |
|---|---|---|---|
enable_collision_check | bool | - | 轨迹校验阶段是否做碰撞检查 |
enable_joint_limit_check | bool | - | 轨迹校验阶段是否做关节限位检查 |
enable_velocity_feasibility_check | bool | - | 轨迹校验阶段是否做速度可行性检查 |
运动规划配置示例
from galbot_sdk.g1 import GalbotRobot, ConfigService, ConfigItem, ControlStatus
robot = GalbotRobot()
robot.init()
# 设置 plan_timeout
status = robot.set_config(
ConfigService.MOTION_PLAN,
[
ConfigItem("plan_timeout", 5.0),
],
)
print(status)
robot.request_shutdown()
robot.wait_for_shutdown()
robot.destroy()
控制服务(ConfigService.CONTROL)
控制服务的字段分布在多个底盘/身体 controller 上,同一个字段名(如 max_vel、stop_acc、pos_threshold)会在好几个 controller 里各自出现一次,友好 key 用 {字段名}_{controller 后缀} 消歧,如 max_vel_chassis_pose、max_vel_chassis_pose_fast。哪个 controller 在当前连接的机器人上可用是运行时判断的(比如高速调参的底盘 controller 只在部分型号上存在),不适用时该字段会被拒绝。
通用参数
| 字段 (key) | 机型 | 类型 | 取值范围 | 说明 |
|---|---|---|---|---|
group_lists | G系列 / S1 | List[str] | 无强制校验 | 最终参与初始化的分组名称及顺序;结构性字段,误改可能导致部分子系统不再初始化,请谨慎修改 |
report_error_skip | G系列 / S1 | int | ≥ 1 | 每隔多少主循环上报一次 error |
report_sensor_skip | G系列 / S1 | int | ≥ 1 | 每隔多少主循环上报一次 sensor |
report_wbc_info_skip | G系列 / S1 | int | ≥ 1 | 每隔多少主循环上报一次 wbc_info |
report_wbcs_info_skip | G系列 / S1 | int | ≥ 1 | 每隔多少主循环上报一次 wbcs_info |
report_fault_skip | G系列 / S1 | int | ≥ 1 | 每隔多少主循环上报一次 fault 心跳 |
target_sub_log_skip | G系列 / S1 | int | ≥ 1 | 每隔多少 target 处理周期打印一次接收日志,只影响日志 |
target_sampling_default | G系列 / S1 | str | 枚举 LinearInterpolate、DirectPass | 未单独指定时,控制目标在控制周期内的默认采样/插值策略 |
wbc_rate | G系列 / S1 | float | > 0,单位 Hz | 控制主循环目标频率;修改后需重启设备并核对实际生效频率 |
切换分组当前生效的 controller
| 字段 (key) | 机型 | 类型 | 取值范围 | 说明 |
|---|---|---|---|---|
group_controller_default_{group} | G系列 / S1 | str | 必须是 {group} 当前已注册的 controller 名字之一(运行时校验,没有固定枚举);{group} 也必须是机器人上真实存在的分组,否则会被拒绝 | 切换 {group} 分组当前生效的 controller,例如 group_controller_default_chassis 传 "chassis_pose_ctrl_fast" 可以把底盘切到高速调参的 controller(前提是这个 controller 已经在系统里注册过);{group} 常见取值包括 chassis、head、left_arm、right_arm 等 |
group_controller_default_{group} 的合法取值取决于机器人当前实际注册了哪些 controller,会随机型、场景变化,不是一份固定的字段表;传一个不存在的分组名,或者一个该分组没有注册过的 controller 名字,都会被拒绝。
底盘位姿 controller
| 字段 (key) | 机型 | 类型 | 取值范围 | 说明 |
|---|---|---|---|---|
max_acc_chassis_pose | 仅 G系列 | List[float] | 长度 3,各项 > 0 | 底盘最大加速度 [x, y, yaw] |
max_vel_chassis_pose | 仅 G系列 | List[float] | 长度 3,各项 ≥ 0 | 底盘最大速度 [x, y, yaw] |
pos_threshold_chassis_pose | 仅 G系列 | List[float] | 长度 3,各项 ≥ 0 | 判断位姿目标到达的逐轴误差阈值 |
slow_stop_when_shutdown_chassis_pose | 仅 G系列 | bool | - | controller 关闭时是否按 stop_acc_chassis_pose 渐减速度停止 |
stop_acc_chassis_pose | 仅 G系列 | List[float] | 长度 3,各项 > 0 | 停止或关闭渐停阶段的逐轴减速度 |
底盘位姿 controller(高速变体,部分型号)
| 字段 (key) | 机型 | 类型 | 取值范围 | 说明 |
|---|---|---|---|---|
max_vel_chassis_pose_fast | 仅 G系列部分型号 | List[float] | 长度 3,各项 ≥ 0 | 底盘最大速度 [x, y, yaw](高速调参变体) |
pos_threshold_chassis_pose_fast | 仅 G系列部分型号 | List[float] | 长度 3,各项 ≥ 0 | 判断位姿目标到达的逐轴误差阈值 |
slow_stop_when_shutdown_chassis_pose_fast | 仅 G系列部分型号 | bool | - | controller 关闭时是否按 stop_acc_chassis_pose_fast 渐减速度停止 |
stop_acc_chassis_pose_fast | 仅 G系列部分型号 | List[float] | 长度 3,各项 > 0 | 停止或关闭渐停阶段的逐轴减速度 |
底盘速度 controller
| 字段 (key) | 机型 | 类型 | 取值范围 | 说明 |
|---|---|---|---|---|
max_acc_down_chassis_twist | 仅 G系列 | List[float] | 长度 3,各项 > 0 | 速度指令减小时的逐轴减速度上限 |
max_acc_up_chassis_twist | 仅 G系列 | List[float] | 长度 3,各项 > 0 | 速度指令增大时的逐轴加速度上限 |
max_vel_chassis_twist | 仅 G系列 | List[float] | 长度 3,各项 ≥ 0 | 底盘最大速度 [x, y, yaw] |
slow_stop_when_shutdown_chassis_twist | 仅 G系列 | bool | - | controller 关闭时是否按 stop_acc_chassis_twist 渐减速度停止 |
stop_acc_chassis_twist | 仅 G系列 | List[float] | 长度 3,各项 > 0 | 停止或关闭渐停阶段的逐轴减速度 |
舵轮底盘位姿 controller
| 字段 (key) | 机型 | 类型 | 取值范围 | 说明 |
|---|---|---|---|---|
max_acc_swerve_chassis_pose | 仅 S1 | List[float] | 长度 3,各项 > 0 | 底盘最大加速度 [x, y, yaw] |
max_vel_swerve_chassis_pose | 仅 S1 | List[float] | 长度 3,各项 ≥ 0 | 底盘最大速度 [x, y, yaw] |
pos_threshold_swerve_chassis_pose | 仅 S1 | List[float] | 长度 3,各项 ≥ 0 | 判断位姿目标到达的逐轴误差阈值 |
slow_stop_when_shutdown_swerve_chassis_pose | 仅 S1 | bool | - | controller 关闭时是否按 stop_acc_swerve_chassis_pose 渐减速度停止 |
stop_acc_swerve_chassis_pose | 仅 S1 | List[float] | 长度 3,各项 > 0 | 停止或关闭渐停阶段的逐轴减速度 |
final_pos_threshold_swerve_chassis_pose | 仅 S1 | List[float] | 长度 3,各项 ≥ 0 | 最终停车阶段的逐轴到位阈值 |
log_skip_swerve_chassis_pose | 仅 S1 | int | ≥ 0 | 每隔多少控制周期输出一次相关日志 |
舵轮底盘位姿 controller(NMPC 变体)
| 字段 (key) | 机型 | 类型 | 取值范围 | 说明 |
|---|---|---|---|---|
log_skip_swerve_chassis_pose_nmpc | 仅 S1 | int | ≥ 0 | 每隔多少控制周期输出一次相关日志 |
max_acc_swerve_chassis_pose_nmpc | 仅 S1 | List[float] | 长度 3,各项 > 0 | 底盘最大加速度 [x, y, yaw] |
max_vel_swerve_chassis_pose_nmpc | 仅 S1 | List[float] | 长度 3,各项 ≥ 0 | 底盘最大速度 [x, y, yaw] |
pos_threshold_swerve_chassis_pose_nmpc | 仅 S1 | List[float] | 长度 3,各项 ≥ 0 | 判断位姿目标到达的逐轴误差阈值 |
slow_stop_when_shutdown_swerve_chassis_pose_nmpc | 仅 S1 | bool | - | controller 关闭时是否按 stop_acc_swerve_chassis_pose_nmpc 渐减速度停止 |
stop_acc_swerve_chassis_pose_nmpc | 仅 S1 | List[float] | 长度 3,各项 > 0 | 停止或关闭渐停阶段的逐轴减速度 |
抬升高度 controller(部分型号)
| 字段 (key) | 机型 | 类型 | 取值范围 | 说明 |
|---|---|---|---|---|
target_height_leg_height | 仅 G系列 | float | 取值范围来自设备当前配置的高度上下限(运行时读取,非固定常量,出厂典型范围约为 [1.14, 1.72] 米) | 目标机身高度,单位 m |
控制服务配置示例
from galbot_sdk.g1 import GalbotRobot, ConfigService, ConfigItem, ControlStatus
robot = GalbotRobot()
robot.init()
# report_error_skip 是 G系列 / S1 都支持的通用参数
status = robot.set_config(
ConfigService.CONTROL,
[
ConfigItem("report_error_skip", 1),
],
)
print(status)
robot.request_shutdown()
robot.wait_for_shutdown()
robot.destroy()