Skip to content

デカプラー/フェアリング

Flight中のactive vesselにある通常・ラジアルデカプラーと手動展開式フェアリングを自動検出します。ドッキングポートとModuleJettisonはこのAPIの対象外です。

入出力Topic

方向TopicQoS
入力/ksp_vessel/actuators/separation/commandpylon_interfaces/msg/SeparationCommandReliable / Volatile / depth 10
出力/ksp_vessel/actuators/separation/statepylon_interfaces/msg/SeparationStateReliable / Transient Local / depth 10

IDはdecoupler_<persistentId>_<moduleIndex>またはfairing_<persistentId>_<moduleIndex>です。stateのidで確認できます。

状態

フィールド内容
id対象の安定ID
name対象の安定名
mechanismdecouplerまたはfairing
available現在、KSP標準操作で切断・展開可能か
separated切断済み、またはフェアリング展開済みならtrue

切断済み状態は部品がactive vesselから外れてもbridgeに保持され、後から購読したsubscriberにも届きます。active vesselを切り替えると前の機体の保持状態を破棄します。

bash
ros2 topic echo /ksp_vessel/actuators/separation/state

切断・展開指令

separate: trueを1回publishすると、KSP標準の切断またはフェアリング展開処理を実行します。操作は不可逆なので、実vessel_idに対する取得済みauthority leaseと単調増加sequenceが必須です。owner以外、false、作動済み、利用不能、存在しない名前への指令は拒否または無視されます。

bash
ros2 topic pub --once /ksp_vessel/actuators/separation/command \
  pylon_interfaces/msg/SeparationCommand \
  '{vessel_id: <vessel-id>, controller_id: manual, lease_id: <lease-id>, sequence: 2, id: decoupler_12345_0, separate: true}'
bash
ros2 topic pub --once /ksp_vessel/actuators/separation/command \
  pylon_interfaces/msg/SeparationCommand \
  '{vessel_id: <vessel-id>, controller_id: manual, lease_id: <lease-id>, sequence: 3, id: fairing_67890_1, separate: true}'

identityは先に機体制御APIで取得したleaseへ置き換えてください。

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