TeacherMachine - ロボカップジュニアサッカー用見本マシンの開発
バイト先でのロボカップジュニアサッカー用の見本マシン「TeacherMachine」を開発しました。本記事では、ハードウェア設計からソフトウェア実装まで、開発プロセスの全体像を紹介します。
プロジェクト概要
TeacherMachine は、ロボカップジュニアサッカーリーグの教育用見本マシンとして開発されました。初心者でも理解しやすい構成でありながら、実戦で使える性能を目指して設計しています。
プロジェクトリポジトリ:
- メインプロジェクト: TeacherMachine2025
- ソフトウェア専用: TeacherMachineSoftware
ハードウェア設計
構成とコスト
全体の構成と概算コストは以下の通りです:
パーツ | 値段(円) | 個数 |
---|---|---|
Arduino Mega Pro Mini | 2,148 | 1 |
IG22 モーター(アリエク) | 3,000 | 4 |
DRV8874 モータードライバー | 1,795 | 4 |
IR センサー(基盤自作 + 素子) | 2,000 | 1 |
BNO055 ジャイロセンサー | 2,450 | 1 |
ラインセンサー(基盤自作 + 素子) | 1,500 | 1 |
メイン基板(自作) | 291 | 1 |
モーター基板(自作) | 582 | 1 |
オムニホイール(自作) | - | 4 |
総額: 約 30,000 円
設計思想
コストパフォーマンスを重視しつつ、教育用途として理解しやすい構成を心がけました:
- Arduino Mega Pro Mini: 豊富な I/O ピンと親しみやすい Arduino 環境
- 自作センサー: コストを抑えながら必要な機能を実現
- モジュラー設計: メイン基板とモーター基板を分離し、保守性を向上
機械設計
Fusion360 による 3D 設計
機体の設計と基板設計には Fusion360 を使用しました。CAD データも GitHub で公開しています。
3D プリンティング
Bambu Lab X1-Carbonを使用してマシンのパーツを製作しました。軽量かつ十分な強度を持つ構造を実現しています。
基板設計と製造
JLCPCB での基板製造
自作基板の製造にはJLCPCBを利用しました。
センサー統合
各センサーの特徴と役割:
- IR センサー: 8 個のセンサーでボールの位置(角度・距離)を検出
- ラインセンサー: 8 個のセンサーで白線を検出し、線の角度とベクトル強度を計算
- BNO055 ジャイロ: 高精度なヨー角度取得による姿勢制御
ソフトウェア実装
開発環境
Cursor + PlatformIO
ソフトウェア開発にはCursor(VSCode のフォーク)を使用しました。AI によるコード補完とチャット機能でのコード修正が非常に便利で、学生は現在無料で Pro プランを利用できます。
拡張機能PlatformIOを用いて Arduino フレームワークで開発を行いました。
GitHub Actions による品質管理
GitHub Actions による自動ビルドチェックを設定し、コードの信頼性を担保しています(今回は個人開発ですが、チーム開発時の準備として)。
アーキテクチャ設計
ソフトウェアは以下のライブラリ構成で実装されています:
1lib/
2├── Debugger/ # シリアル通信によるデバッグ情報出力
3├── GyroSensor/ # BNO055センサーからヨー角度を取得
4├── IRSensor/ # ボールの位置(角度・距離)検出
5├── LineSensor/ # 白線検出と角度・ベクトル強度計算
6├── Motor/ # 個別モーターの方向・速度制御
7└── MotorController/ # 4輪の協調制御による全方向移動
制御アルゴリズム
回り込み戦略
ボールに対する効率的なアプローチを実現するため、以下のアルゴリズムを実装:
- ボール角度の正規化: -180°〜180° の範囲に変換
- 距離による戦略変更:
- 遠距離時: 大きく回り込んで攻撃角度を確保
- 近距離時: 直接的なアプローチ
- 角度閾値制御: 小さな角度変化では回り込みを抑制
センサー統合制御
- ライン回避: 白線検出時の緊急回避動作
- 姿勢補正: ジャイロセンサーによる向き制御
- ボール追跡: IR センサーによる目標設定
デバッグ機能
開発効率を高めるため、シリアル出力によるデバッグ機能を実装:
- ジャイロ角度
- ライン角度・ベクトル強度
- ボール角度・距離
- センサーステータス
1# シリアルモニター起動
2pio device monitor --baud 9600
完成
- 全方向移動による高い機動性を実現
- センサー統合による安定したボール追跡
- ライン検出による確実なフィールド内制御
教育効果
見本マシンとしての教育効果:
- 理解しやすいモジュラー構成
- コスト効率の良い部品選定の参考
まとめ
TeacherMachine の開発を通じて、ロボカップジュニアサッカーに必要な要素技術を統合したシステムを構築できました。特に:
- ハードウェア: コスト効率と教育効果を両立した設計
- ソフトウェア: モジュラー設計による保守性の高い実装
- 開発プロセス: 現代的な開発ツールの活用
今後は実際の競技内容に合わせて、さらなる改良を進めていく予定です。
関連リンク:
TeacherMachine2025 (メインプロジェクト) TeacherMachineSoftware (ソフトウェア専用)