TeacherMachine - ロボカップジュニアサッカー用見本マシンの開発

TeacherMachine - ロボカップジュニアサッカー用見本マシンの開発

バイト先でのロボカップジュニアサッカー用の見本マシン「TeacherMachine」を開発しました。本記事では、ハードウェア設計からソフトウェア実装まで、開発プロセスの全体像を紹介します。

TeacherMachine完成写真

プロジェクト概要

TeacherMachine は、ロボカップジュニアサッカーリーグの教育用見本マシンとして開発されました。初心者でも理解しやすい構成でありながら、実戦で使える性能を目指して設計しています。

プロジェクトリポジトリ:

ハードウェア設計

構成とコスト

全体の構成と概算コストは以下の通りです:

パーツ値段(円)個数
Arduino Mega Pro Mini2,1481
IG22 モーター(アリエク)3,0004
DRV8874 モータードライバー1,7954
IR センサー(基盤自作 + 素子)2,0001
BNO055 ジャイロセンサー2,4501
ラインセンサー(基盤自作 + 素子)1,5001
メイン基板(自作)2911
モーター基板(自作)5821
オムニホイール(自作)-4

総額: 約 30,000 円

設計思想

コストパフォーマンスを重視しつつ、教育用途として理解しやすい構成を心がけました:

  • Arduino Mega Pro Mini: 豊富な I/O ピンと親しみやすい Arduino 環境
  • 自作センサー: コストを抑えながら必要な機能を実現
  • モジュラー設計: メイン基板とモーター基板を分離し、保守性を向上

機械設計

Fusion360 による 3D 設計

機体の設計と基板設計には Fusion360 を使用しました。CAD データも GitHub で公開しています。 Fusion360設計画面 Fusion360設計画面

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輪の協調制御による全方向移動

制御アルゴリズム

回り込み戦略

ボールに対する効率的なアプローチを実現するため、以下のアルゴリズムを実装:

  1. ボール角度の正規化: -180°〜180° の範囲に変換
  2. 距離による戦略変更:
    • 遠距離時: 大きく回り込んで攻撃角度を確保
    • 近距離時: 直接的なアプローチ
  3. 角度閾値制御: 小さな角度変化では回り込みを抑制

センサー統合制御

  • ライン回避: 白線検出時の緊急回避動作
  • 姿勢補正: ジャイロセンサーによる向き制御
  • ボール追跡: IR センサーによる目標設定

デバッグ機能

開発効率を高めるため、シリアル出力によるデバッグ機能を実装:

  • ジャイロ角度
  • ライン角度・ベクトル強度
  • ボール角度・距離
  • センサーステータス
1# シリアルモニター起動
2pio device monitor --baud 9600

完成

完成したTeacherMachine

  • 全方向移動による高い機動性を実現
  • センサー統合による安定したボール追跡
  • ライン検出による確実なフィールド内制御

教育効果

見本マシンとしての教育効果:

  • 理解しやすいモジュラー構成
  • コスト効率の良い部品選定の参考

まとめ

TeacherMachine の開発を通じて、ロボカップジュニアサッカーに必要な要素技術を統合したシステムを構築できました。特に:

  • ハードウェア: コスト効率と教育効果を両立した設計
  • ソフトウェア: モジュラー設計による保守性の高い実装
  • 開発プロセス: 現代的な開発ツールの活用

今後は実際の競技内容に合わせて、さらなる改良を進めていく予定です。

関連リンク:

TeacherMachine2025 (メインプロジェクト) TeacherMachineSoftware (ソフトウェア専用)