モード切替¶
このページでわかること
practice(練習)と competition(競技)の 2 つのモードの違い、切替方法、launch.env による起動パラメータのカスタマイズ方法がわかります。
2 つのモード¶
| モード | 電源 ON 時の動作 | 用途 |
|---|---|---|
practice(既定) |
ROS 2 を自動起動しない | 整備・練習・設定変更時 |
competition |
ROS 2 を自動起動する | 競技本番・フィールドテスト |
作業・整備中は practice モードで
competition モードのまま電源を入れると即座にモーターが制御状態になります。
ハードウェアの作業中は必ず practice モードに戻してください。
モードの確認¶
モードの切替¶
# 競技モード(電源 ON で自動起動)
echo competition | sudo tee /etc/questix_robot/mode
# 練習モード(自動起動をスキップ)
echo practice | sudo tee /etc/questix_robot/mode
切替は即時反映されます(サービスの再起動は不要)。次回電源投入時から新しいモードで動作します。
Robot Manager から切替
Robot Manager Web UI がインストールされている場合、ブラウザ(:8888)からボタン操作でモードを切り替えられます。
起動フロー¶
flowchart TD
A[電源 ON\nquestix_robot.service が起動] --> B[questix_robot_launcher.sh]
B --> C{/etc/questix_robot/mode を読む}
C -->|"competition"| D[launch.env を読み込む]
D --> E[ROS 2 を起動]
C -->|"practice / その他"| F[スキップして終了]
launch.env による起動パラメータの変更¶
/etc/questix_robot/launch.env を編集すると、自動起動時の構成を変更できます。
設定項目¶
# ROS 2 のバージョンとワークスペース
ROS_DISTRO=jazzy
ROBOT_WS=/home/ubuntu/robot_ws
# ROS_DOMAIN_ID(複数台運用時は機体ごとに変更)
ROS_DOMAIN_ID=42
# 起動するコンポーネント
ENABLE_LIDAR=true # YDLiDAR を起動するか
ENABLE_SHOT=true # 発射コンポーネントを起動するか
ENABLE_DRIVE=true # 走行コンポーネントを起動するか
ENABLE_GPIO_REF=false # GPIO 参照系を起動するか
ENABLE_RVIZ=false # RViz を起動するか
# コントローラ種別
CONTROLLER_TYPE=uart # uart または dualshock
反映タイミング
launch.env の変更はサービス再起動(または次回電源 ON)から有効になります。
手動で反映するには sudo systemctl restart questix_robot.service を実行します。
複数台運用での ROS_DOMAIN_ID¶
同一ネットワーク上で複数台のロボットを動かす場合、ROS_DOMAIN_ID が重複するとトピックが混線します。台ごとに異なる値を設定してください。
# robot-01 の場合
echo "ROS_DOMAIN_ID=41" | sudo tee -a /etc/questix_robot/launch.env
# robot-02 の場合
echo "ROS_DOMAIN_ID=42" | sudo tee -a /etc/questix_robot/launch.env
サービス操作¶
# 状態確認
systemctl status questix_robot.service
# 手動で起動(competition モードのときだけ ROS 2 が起動する)
sudo systemctl start questix_robot.service
# 停止
sudo systemctl stop questix_robot.service
# 再起動(launch.env 変更後など)
sudo systemctl restart questix_robot.service
# ログをリアルタイムで表示
journalctl -u questix_robot.service -f