Skip to content

KSP標準ホイール

active vessel内のModuleWheelBaseを自動検出し、共有の型付きTopicで制御します。専用パーツへの置き換えは不要です。

入出力Topic

<name>wheel_<persistentId>_<moduleIndex>です。persistentIdが0の場合だけflightIDを使います。

方向TopicQoS
入力/ksp_vessel/actuators/wheel/commandpylon_interfaces/msg/WheelCommandReliable / depth 10
出力/ksp_vessel/actuators/wheel/statepylon_interfaces/msg/WheelStateBest Effort / depth 10

状態はFlight中に30 Hzで送信されます。

WheelCommand

Field単位内容
header現行bridgeでは指令変換に使用しない
vessel_id / controller_id / lease_id取得済みauthority identity
sequence同じlease内で単調増加する番号
id対象のwheel_<persistentId>_<moduleIndex>
enabledホイールモーターを有効化
target_angular_velocityrad/s目標回転速度
steering_anglerad目標操舵角
max_drive_torqueN·m最大駆動トルク
timeout_secsoverride時間。0ならbridge既定値
bash
ros2 topic pub --once /ksp_vessel/actuators/wheel/command \
  pylon_interfaces/msg/WheelCommand \
  "{vessel_id: <vessel-id>, controller_id: manual, lease_id: <lease-id>, sequence: 2, id: wheel_12345_2, enabled: true, target_angular_velocity: 12.0, steering_angle: 0.2, max_drive_torque: 20.0, timeout_sec: 0.5}"

WheelState

Field単位内容
headerbridge受信時刻、frame_id = base_link
idアクチュエータID
nameアクチュエータ名
enabledモーター有効状態
grounded接地状態
angular_positionradホイール回転位置
angular_velocityrad/sホイール回転速度
steering_anglerad現在操舵角
drive_torqueN·m駆動トルク
brake_torqueN·mブレーキトルク
slipKSPのcombined tire slip
max_drive_torqueN·m現在の最大駆動トルク
bash
ros2 topic echo /ksp_vessel/actuators/wheel/state

制御の優先順位と解除

例のidentityは、先に機体制御APIで取得したleaseへ置き換えてください。型付きcommandを受けたホイールはBody Wrench allocatorより優先されます。timeoutまたはactive vessel切替時にはdrive / steer入力を0へ戻し、元のmotor有効状態と最大トルクを復元します。

PyLoNを使ったROS2アプリケーション開発のためのガイドとAPIリファレンス