カスタマイズ¶
このページでわかること
コントローラのボタン・軸割当の変更方法、新しいコントローラへの対応方法、新しい ROS 2 ノードをシステムに追加する方法がわかります。
操作割当の変更¶
ボタン・軸のインデックスを確認する¶
まず、使用するコントローラのボタン・軸の Joy インデックスを確認します。
コントローラを操作しながら buttons[] と axes[] の値の変化を観察し、使いたいボタン・軸のインデックスを特定します。
発射・チルト操作のボタンを変更する¶
motor_control_app/config/shot_config.yaml を編集します。
shot_component:
ros__parameters:
fire_button: 5 # 発射ボタン(Joy の buttons[] インデックス)
tilt_axis: 7 # チルト軸(-1 でボタンモード)
tilt_up_button_index: 4 # チルト上ボタン
tilt_down_button_index: 6 # チルト下ボタン
走行軸を変更する¶
motor_control_app/config/joy_axis_drive_params.yaml を編集します。
joy_axis_drive:
ros__parameters:
left_axis_index: 1 # 左モーター軸
right_axis_index: 4 # 右モーター軸
invert_left_axis: false
invert_right_axis: true
変更の反映
YAML のみの変更は --symlink-install でビルド済みであれば、ノードを再起動するだけで反映されます。colcon build は不要です。
新しいコントローラへの対応¶
コントローラ種別の追加¶
questix_core.launch.xml は controller_type 引数に応じて Joy ドライバを選択しています。現在は dualshock(USB Joy ノード)と uart(UART Joy ドライバ)の 2 種類があります。
新しいコントローラを追加するには:
-
Joy ドライバの確認:コントローラが
/dev/input/jsXとして認識される場合は標準のjoyパッケージが使えます。シリアル入力の場合はuart_joy_driverを参考に新しいドライバを作成します。 -
launch ファイルの追加:
launcher/launch/に新しいコントローラ用の launch ファイルを作成します。 -
YAML の追加:
motor_control_app/config/shot_config.<新コントローラ名>.yamlを作成して Joy インデックスを設定します。 -
questix_core.launch.xml の修正:
controller_typeの分岐に新しいケースを追加します。
DualShock / Xbox コントローラ(USB)¶
標準の joy パッケージを使います。デバイスが /dev/input/js0 に現れれば追加設定は不要です。
新しい ROS 2 ノードの追加¶
パッケージを新規作成する¶
既存パッケージに依存関係を追加する¶
package.xml に依存パッケージを追記します。
CMakeLists.txt にも追記します。
find_package(rclcpp REQUIRED)
find_package(std_msgs REQUIRED)
ament_target_dependencies(my_node rclcpp std_msgs)
launch ファイルから起動する¶
questix_core.launch.xml または新しい launch ファイルにノードを追加します。
<node pkg="my_package" exec="my_node" name="my_node" output="screen">
<param name="my_param" value="42" />
</node>
ビルドと確認¶
rw
colcon build --symlink-install --packages-select my_package
source install/setup.bash
ros2 run my_package my_node
launch.env で自動起動時の動作を変える¶
実機の自動起動(systemd)で動かす構成を変更するには、/etc/questix_robot/launch.env を編集します。
変更できる項目:CONTROLLER_TYPE、ENABLE_LIDAR、ENABLE_SHOT、ENABLE_DRIVE、ROS_DOMAIN_ID など。
詳細は モード切替 を参照してください。
次のステップ¶
- パラメータ詳説 — 変更できる全パラメータの一覧
- 開発サイクル — ビルド・確認の手順
- ROS 2 パッケージ一覧 — 各パッケージの役割