FrootsPiは、サッカーロボット用のROS 2ベースの制御システムです。複数のモジュールが連携してロボットの動作を制御します。
[外部システム/ジョイスティック]
↓ (RobotCommand)
[frootspi_conductor] ← 統合制御モジュール
↓ (各種トピック)
┌─────────────────────────────────┐
↓ ↓ ↓
[frootspi_wheel] [frootspi_kicker] [frootspi_hardware]
↓ ↓ ↓
車輪制御 キック制御 ハードウェア制御
(センサー、LED、等)
command(RobotCommand): 外部からの統合コマンドtarget_velocity(Twist): 目標速度dribble_power(DribblePower): ドリブラーパワーkick_command(KickCommand): キックコマンドtarget_wheel_velocities(WheelVelocities): 車輪個別速度ball_detection(BallDetection): ボール検出情報
capacitor_charge_request(SetBool): キッカー充電要求set_kicker_charging(SetKickerCharging): キッカー充電制御kick(Kick): キック実行
- コマンド受信:
frootspi_conductorが外部からのRobotCommandを受信 - コマンド分解: 統合コマンドを各モジュール向けの個別コマンドに分解
- モジュール実行: 各モジュールが担当する機能を実行
- ハードウェア制御:
frootspi_hardwareが実際のハードウェアを制御
ros2 launch frootspi_examples robot.launch.pyros2 launch frootspi_examples conductor.launch.py
ros2 launch frootspi_examples hardware.launch.pyrobot_config.yaml: ロボットID等の基本設定gpio.yaml: GPIO設定(ハードウェア制御用)
- ROS 2 Foxy
- frootspi_msgs: 独自メッセージ定義
- consai_frootspi_msgs: 外部システム連携用メッセージ
- pigpio: GPIO制御ライブラリ