RobocupSSLのメイン基板白mbedのプログラム

Dependencies:   mbed

Rootsロボット mainプログラム

~ Robocup SSL(小型車輪リーグ)ロボット ~


Robocup SSLとは


●試合構成
Robocup小型ロボットリーグ(Small Size League)は,直径180[mm],高さ150[mm]以内のサイズのロボット6台が1チームとなり,オレンジ色のゴルフボールを使ってサッカー競技を行う自立型ロボットコンテストである. フィールドの上には2台のWebカメラが設置され,フィールド上のロボットとボールを撮影する.Visionサーバは,フィールドの画像データよりロボットとボールの座標データを算出し,LANを用い各チームのAI用PCに送信する.Webカメラの撮影速度は,60[fps]である.レフリーボックスは,ファウルやフリーキック,スローインなどの審判の判定を入力し,LANを通じて各チームのAI用PCに送信する.それぞれのチームのAI用PCは,ロボットとボールの座標,審判の判定を元にロボットの移動,キックなどの作戦を決定し,無線によってロボットに指令を送信する. 700


ロボット機能紹介


●オムニホイールによる方向転換不要の全方位移動

オムニホイールは,自由に回転可能なローラをホイールの外周上に配置した車輪である.ローラの回転により,車輪の回転と垂直の方向に駆動力を発することはできないが移動は可能となる.各車輪の角速度を調整することによって全方向への移動を可能にする.
400

●ドリブルバーのバックスピンによるボール保持

●電磁力を利用したキッカー

●キッカーの電磁力エネルギーを充電する充電回路

●ロボット情報が一目でわかるLCD

Committer:
alt0710
Date:
Sun Sep 22 10:23:42 2019 +0000
Revision:
35:b1b00cfaa163
Parent:
15:2bf8eafacef8
2019JapanOpenSoft

Who changed what in which revision?

UserRevisionLine numberNew contents of line
alt0710 4:8c6f6b687303 1
alt0710 4:8c6f6b687303 2 #include "mbed.h"
alt0710 4:8c6f6b687303 3 #include "comm.h"
alt0710 4:8c6f6b687303 4 #include "interface_manager.h"
alt0710 4:8c6f6b687303 5 #include "status_manager.h"
alt0710 4:8c6f6b687303 6 #include "parameter_manager.h"
alt0710 4:8c6f6b687303 7 #include "mode.h"
alt0710 6:21b3fbe57b88 8 #include "normal_routine.h"
alt0710 4:8c6f6b687303 9
alt0710 4:8c6f6b687303 10 /* **mbedクラス** */
alt0710 4:8c6f6b687303 11 #ifdef LPC4088
alt0710 4:8c6f6b687303 12
alt0710 4:8c6f6b687303 13 #elif STM32
alt0710 4:8c6f6b687303 14
alt0710 4:8c6f6b687303 15 #endif
alt0710 4:8c6f6b687303 16
alt0710 4:8c6f6b687303 17 /* **ローカル関数定義** */
alt0710 4:8c6f6b687303 18
alt0710 4:8c6f6b687303 19 /* **ローカル関数** */
alt0710 4:8c6f6b687303 20
alt0710 4:8c6f6b687303 21 /* **グルーバル関数** */
alt0710 4:8c6f6b687303 22
alt0710 4:8c6f6b687303 23 /* **クラス** */
alt0710 4:8c6f6b687303 24 class InterfaceManager;
alt0710 4:8c6f6b687303 25 //メンバ変数の初期化は、定義順(Warningになる)
alt0710 4:8c6f6b687303 26 ActMode::ActMode()
alt0710 4:8c6f6b687303 27 :mode(NORMAL_ROUTINE)
alt0710 4:8c6f6b687303 28 {
alt0710 4:8c6f6b687303 29 }
alt0710 4:8c6f6b687303 30
alt0710 4:8c6f6b687303 31 void ActMode::run(void)
alt0710 4:8c6f6b687303 32 {
alt0710 4:8c6f6b687303 33 selectMode();
alt0710 4:8c6f6b687303 34
alt0710 4:8c6f6b687303 35 }
alt0710 4:8c6f6b687303 36
alt0710 4:8c6f6b687303 37 void ActMode::selectMode(void)
alt0710 4:8c6f6b687303 38 {
alt0710 4:8c6f6b687303 39 switch(InterfaceManager::button.getButtonStatus(MODE_SW)){
alt0710 4:8c6f6b687303 40 case NORMAL_ROUTINE:
alt0710 6:21b3fbe57b88 41 normal_routine.run();
alt0710 4:8c6f6b687303 42 break;
alt0710 4:8c6f6b687303 43
alt0710 4:8c6f6b687303 44 case OPERATION_CHECK:
alt0710 15:2bf8eafacef8 45 operation_check.run();
alt0710 4:8c6f6b687303 46 break;
alt0710 4:8c6f6b687303 47
alt0710 4:8c6f6b687303 48 case PARAMETERS_SET:
alt0710 5:4be30999853f 49 sprintf(str,"PARAMETERS_SET \nSW:%d%d%d%d",InterfaceManager::button.getButtonStatus(CROSS_UP),InterfaceManager::button.getButtonStatus(CROSS_DOWN),InterfaceManager::button.getButtonStatus(CROSS_LEFT),InterfaceManager::button.getButtonStatus(CROSS_RIGHT));
alt0710 7:1f1bdb4e4f33 50 InterfaceManager::i2c.setLCDMsg(str,sizeof(str));
alt0710 4:8c6f6b687303 51 break;
alt0710 4:8c6f6b687303 52
alt0710 4:8c6f6b687303 53 default:
alt0710 4:8c6f6b687303 54 sprintf(str,"NO MODE");
alt0710 7:1f1bdb4e4f33 55 InterfaceManager::i2c.setLCDMsg(str,sizeof(str));
alt0710 4:8c6f6b687303 56 break;
alt0710 4:8c6f6b687303 57 }
alt0710 5:4be30999853f 58
alt0710 6:21b3fbe57b88 59
alt0710 4:8c6f6b687303 60 }
alt0710 4:8c6f6b687303 61