エンドツーエンド(E2E)パイプライン結合試験¶
bag 記録 → 変換・品質検証 → ACT 推論 → ROS 2 / Rerun モック連携を連続実行して疎通を確認する。実機接続前の機材準備は hardware.md を参照する。
前提条件と環境要件¶
- Docker ランタイム(ROS 2 実行環境)
- ホスト Python 仮想環境:
pip install -e "port_pick_align/[training,dev]"をインストール済みであること - 環境分離方針: Docker イメージには PyTorch を含めない構成としているため、チェックポイント推論はホスト環境で実行し、Docker 内では
policy_mode:=mockによる可視化ループを実行する。
パイプラインの一括実行¶
# 既存のチェックポイント(checkpoints/synthetic_act/best_model.pt)が存在する場合、再学習を省略して推論疎通を行う
./scripts/e2e_pipeline_smoke.sh
実行ステージの内訳:
- Docker 環境:
mock_sensor_publisherから配信されるセンサトピックをros2 bag recordによりdata/e2e/recorded_bagへ記録する。 - ホスト環境:
scripts/convert_bag.pyを実行し、バリデータによる品質検証を経てdata/e2e/lerobotへデータ変換を行う(実行環境の負荷により記録バッグにフレーム欠落が生じた場合は、固定フィクスチャsample_bagを用いて後続の検証を進める)。 - ホスト環境: 学習済みチェックポイントを用いた推論スモークテスト(
--infer-only)を実行する。 - Docker 環境:
mock_inference.launch.pyを起動し、モック推論ノードと Rerun ノード間のトピック送受信を検証する。
単体 bag 変換・結合テスト・checkpoint 推論¶
1. 単体 bag ファイルの変換¶
python scripts/convert_bag.py \
--bag port_pick_align/tests/fixtures/sample_bag \
--output data/from_bag/lerobot
2. ホスト環境における結合テスト(CI integration 相当)¶
3. ホスト ROS 2 でのチェックポイント推論¶
ros2 run pai_final_pkg act_policy_node --ros-args \
-p policy_mode:=checkpoint \
-p checkpoint_path:=/workspace/checkpoints/synthetic_act/best_model.pt
Feetech extra と udev の事前準備¶
pip install -e "port_pick_align/[training,feetech,dev]"
# Linux 環境: deploy/udev/99-feetech-so101.rules のシリアル番号を実機に合わせて修正し、/etc/udev/rules.d/ に配置する
詳細な機材設定手順は hardware.md を参照する。