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:
Wed Apr 26 18:35:23 2017 +0000
Revision:
7:1f1bdb4e4f33
Parent:
6:21b3fbe57b88
Child:
15:2bf8eafacef8
UART????; ????????

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 5:4be30999853f 45 sprintf(str,"OPERATION_CHECK \nSW:%d",InterfaceManager::button.getButtonStatus(CROSS_DOWN));
alt0710 7:1f1bdb4e4f33 46 InterfaceManager::i2c.setLCDMsg(str,sizeof(str));
alt0710 4:8c6f6b687303 47 break;
alt0710 4:8c6f6b687303 48
alt0710 4:8c6f6b687303 49 case PARAMETERS_SET:
alt0710 5:4be30999853f 50 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 51 InterfaceManager::i2c.setLCDMsg(str,sizeof(str));
alt0710 4:8c6f6b687303 52 break;
alt0710 4:8c6f6b687303 53
alt0710 4:8c6f6b687303 54 default:
alt0710 4:8c6f6b687303 55 sprintf(str,"NO MODE");
alt0710 7:1f1bdb4e4f33 56 InterfaceManager::i2c.setLCDMsg(str,sizeof(str));
alt0710 4:8c6f6b687303 57 break;
alt0710 4:8c6f6b687303 58 }
alt0710 5:4be30999853f 59
alt0710 6:21b3fbe57b88 60
alt0710 4:8c6f6b687303 61 }
alt0710 4:8c6f6b687303 62