開発サイクル¶
このページでわかること
QUESTiX のコードを変更してロボットで動かすまでの開発サイクル(編集 → ビルド → 起動 → 確認)と、ワークスペース構成がわかります。
開発の流れ¶
flowchart LR
A["① コードを編集\n~/questix/ 配下"] --> B
B["② ビルド\ncolcon build --symlink-install"] --> C
C["③ install を読み込む\nsource install/setup.bash"] --> D
D["④ 起動・確認\nros2 launch ..."] --> A
--symlink-install について
--symlink-install フラグをつけてビルドすると、Python スクリプトや YAML ファイルはシンボリックリンクで install/ に展開されます。これらのファイルを変更した場合、再ビルドせずにノードを再起動するだけで変更が反映されます。C++ コードを変更した場合は再ビルドが必要です。
ワークスペース構成¶
開発は 2 つのディレクトリにまたがります。
~/
├── questix/ ← ROS 2 パッケージのソース(git リポジトリ)
│ ├── motor_control_app/
│ │ ├── config/ ← パラメータ YAML(変更が多い)
│ │ └── src/
│ ├── launcher/
│ │ └── launch/ ← launch XML ファイル
│ └── ...
│
└── robot_ws/ ← colcon ワークスペース
├── src/ ← vcs import で取得したソース(symlink)
├── build/
├── install/ ← ビルド成果物(ここを source する)
└── log/
ソースは questix/ に置く
~/robot_ws/src/ は vcs import によって生成されるシンボリックリンクを含みます。実際のコードは ~/questix/ を直接編集してください。
よく使うコマンド¶
ビルド¶
rw # ~/robot_ws に移動
source /opt/ros/jazzy/setup.bash # ROS 2 環境を読み込む(初回 or 新しいターミナル)
colcon build --symlink-install # 全パッケージをビルド
# 特定パッケージのみ(高速)
colcon build --symlink-install --packages-select motor_control_app
install の読み込み¶
ターミナルを新しく開いた場合は毎回実行します(または ~/.bashrc に追記)。
依存リポジトリの取得¶
依存パッケージ(ydlidar_ros2_driver など)を取得または更新します。
cd ~/robot_ws
vcs import src < ~/questix/dependency.repos
rosdep install --from-paths src --ignore-src -r -y
開発機(AMD64)でのビルド¶
実機 Pi を使わず、開発機(x86_64)でビルド・テストする場合の手順です。
# 開発機セットアップ後
mkdir -p ~/ros2_ws/src
cd ~/ros2_ws
vcs import src < ~/questix/dependency.repos
source /opt/ros/jazzy/setup.bash
rosdep install --from-paths src --ignore-src -r -y
colcon build --symlink-install
source install/setup.bash
GPIO・シリアルデバイスは Pi 専用
gpio_reader・drive_component・shot_component は Pi の実ハードウェアに依存します。開発機では launch 引数で該当コンポーネントを無効化してください。