コンテンツにスキップ

カスタマイズ

このページでわかること

コントローラのボタン・軸割当の変更方法、新しいコントローラへの対応方法、新しい ROS 2 ノードをシステムに追加する方法がわかります。


操作割当の変更

ボタン・軸のインデックスを確認する

まず、使用するコントローラのボタン・軸の Joy インデックスを確認します。

# ROS 2 の Joy ノードを起動してトピックを確認
ros2 topic echo /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.xmlcontroller_type 引数に応じて Joy ドライバを選択しています。現在は dualshock(USB Joy ノード)と uart(UART Joy ドライバ)の 2 種類があります。

新しいコントローラを追加するには:

  1. Joy ドライバの確認:コントローラが /dev/input/jsX として認識される場合は標準の joy パッケージが使えます。シリアル入力の場合は uart_joy_driver を参考に新しいドライバを作成します。

  2. launch ファイルの追加launcher/launch/ に新しいコントローラ用の launch ファイルを作成します。

  3. YAML の追加motor_control_app/config/shot_config.<新コントローラ名>.yaml を作成して Joy インデックスを設定します。

  4. questix_core.launch.xml の修正controller_type の分岐に新しいケースを追加します。

DualShock / Xbox コントローラ(USB)

標準の joy パッケージを使います。デバイスが /dev/input/js0 に現れれば追加設定は不要です。

ros2 launch questix_launcher questix_core.launch.xml controller_type:=dualshock

新しい ROS 2 ノードの追加

パッケージを新規作成する

cd ~/questix
ros2 pkg create --build-type ament_cmake my_package

既存パッケージに依存関係を追加する

package.xml に依存パッケージを追記します。

<depend>rclcpp</depend>
<depend>std_msgs</depend>

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 を編集します。

sudo nano /etc/questix_robot/launch.env

変更できる項目:CONTROLLER_TYPEENABLE_LIDARENABLE_SHOTENABLE_DRIVEROS_DOMAIN_ID など。

詳細は モード切替 を参照してください。


次のステップ