LEGO MINDSTORMS EV3 と ROBOTC を用いて作成した、サッカー用ロボットの実験コード集です。
赤外線を発するボールを HiTechnic IR Seeker V2 で追跡し、必要に応じてジャイロセンサーで姿勢補正しながらゴール方向へ移動することを目的としています。
このリポジトリには、以下の2種類のコードが含まれています。
- サッカーロボットの移動ロジックを試した実験コード
- 各種センサーの単体テストコード
開発は ROBOTC を前提としており、EV3 本体上での動作確認を目的にしています。
- LEGO MINDSTORMS EV3
- EV3 Large Motor x2
- HiTechnic IR Seeker V2
- EV3 Gyro Sensor
- EV3 Color Sensor
- EV3 Touch Sensor
- EV3 Ultrasonic Sensor
主にゴール追従系のコードでは、以下の構成を前提にしています。
S1:HiTechnic IR Seeker V2S2:EV3 Gyro SensorS3:EV3 Color Sensor(単体テスト用)S4:EV3 Ultrasonic Sensor(単体テスト用)motorB: 左右駆動の一方motorC: 左右駆動の一方motorA: 一部コードで補助動作に使用
実際の配線は各ファイル先頭の #pragma config に従ってください。
goal1.c: IR Seeker を用いた基本的なボール追跡goal2.c: ジャイロを併用した進行方向補正の試作goal3.c:goal2.cの速度調整版goal4.c: ジャイロ補正つきゴール追従の別調整版sub_goal.c: 単純な条件分岐で動かす初期版hitechnic-irseeker-v2-goal.c: IR Seeker の値に応じて旋回・前進する基本実装hitechnic-irseeker-v2-goal2.c: IR Seeker ベースの派生実装hitechnic-irseeker-v2-test1.c: IR Seeker の動作確認用
Gyro.c: ジャイロの角速度・角度表示Basic_Colour_Detection.c: カラーセンサーの色判定Basic_Colour_Reflective.c: 反射光モードの確認Basic_Touch_Detection.c: タッチセンサーの状態確認Basic_Touch_Move.c: タッチ入力による簡単な移動テストBasic_Sonar_Detection.c: 超音波センサーで距離を保つ制御hitechnic-colour-v2-test1.c: HiTechnic Color V2 の確認hitechnic-colour-v2-SMUX-test1.c: Sensor Multiplexer 経由での Color V2 テスト
- ROBOTC for EV3
- EV3 3rd Party Driver Library
HiTechnic IR Seeker V2 と HiTechnic Color V2 のコードでは、以下のような 3rd party driver のヘッダを利用しています。
#include "\EV3\3rd Party Driver Library\include\hitechnic-irseeker-v2.h"
#include "\EV3\3rd Party Driver Library\include\hitechnic-colour-v2.h"そのため、コンパイル前に ROBOTC 側で対応ライブラリが利用可能になっている必要があります。
- ROBOTC で対象の
.cファイルを開く - センサーとモーターを
#pragma configに合わせて接続する - EV3 に書き込み、実機で挙動を確認する
まずは hitechnic-irseeker-v2-test1.c や Gyro.c で各センサーの値を確認し、その後 goal1.c から順に試すのがおすすめです。
- それぞれのファイルは実験段階のコードであり、命名や制御ロジックは統一されていません
- サッカーロボット本番用というより、試行錯誤の過程を残したリポジトリです
- 3rd party driver 由来のサンプルコードをベースにしている箇所があります
このリポジトリは、EV3 を用いたサッカーロボット開発の記録、センサー検証、制御ロジックの試作をまとめて公開するためのものです。