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 May 03 08:21:33 2017 +0000
Revision:
14:f6cc949a8046
Child:
15:2bf8eafacef8
Dribbler????OK;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
alt0710 14:f6cc949a8046 1
alt0710 14:f6cc949a8046 2 #include "mbed.h"
alt0710 14:f6cc949a8046 3 #include "comm.h"
alt0710 14:f6cc949a8046 4 #include "mode.h"
alt0710 14:f6cc949a8046 5 #include "interface_manager.h"
alt0710 14:f6cc949a8046 6 #include "status_manager.h"
alt0710 14:f6cc949a8046 7 #include "parameter_manager.h"
alt0710 14:f6cc949a8046 8 #include "operation_check.h"
alt0710 14:f6cc949a8046 9
alt0710 14:f6cc949a8046 10 /* **mbedクラス** */
alt0710 14:f6cc949a8046 11 #ifdef LPC4088
alt0710 14:f6cc949a8046 12
alt0710 14:f6cc949a8046 13 #elif STM32
alt0710 14:f6cc949a8046 14
alt0710 14:f6cc949a8046 15 #endif
alt0710 14:f6cc949a8046 16
alt0710 14:f6cc949a8046 17 /* **ローカル関数定義** */
alt0710 14:f6cc949a8046 18
alt0710 14:f6cc949a8046 19 /* **ローカル関数** */
alt0710 14:f6cc949a8046 20
alt0710 14:f6cc949a8046 21 /* **グルーバル関数** */
alt0710 14:f6cc949a8046 22
alt0710 14:f6cc949a8046 23 /* **クラス** */
alt0710 14:f6cc949a8046 24 class InterfaceManager;
alt0710 14:f6cc949a8046 25 class StatusManager;
alt0710 14:f6cc949a8046 26 class ParameterManager;
alt0710 14:f6cc949a8046 27
alt0710 14:f6cc949a8046 28
alt0710 14:f6cc949a8046 29 //メンバ変数の初期化は、定義順(Warningになる)
alt0710 14:f6cc949a8046 30 OperationCheck::OperationCheck()
alt0710 14:f6cc949a8046 31 {
alt0710 14:f6cc949a8046 32 }
alt0710 14:f6cc949a8046 33
alt0710 14:f6cc949a8046 34 void OperationCheck::run(void)
alt0710 14:f6cc949a8046 35 {
alt0710 14:f6cc949a8046 36
alt0710 14:f6cc949a8046 37
alt0710 14:f6cc949a8046 38 createLcdData();
alt0710 14:f6cc949a8046 39 InterfaceManager::i2c.setLCDMsg(str,sizeof(str));
alt0710 14:f6cc949a8046 40
alt0710 14:f6cc949a8046 41 }
alt0710 14:f6cc949a8046 42
alt0710 14:f6cc949a8046 43 void OperationCheck::createLcdData(void)
alt0710 14:f6cc949a8046 44 {
alt0710 14:f6cc949a8046 45
alt0710 14:f6cc949a8046 46 /*
alt0710 14:f6cc949a8046 47
alt0710 14:f6cc949a8046 48 * 0 : 正常終了
alt0710 14:f6cc949a8046 49
alt0710 14:f6cc949a8046 50 * -1 : タイムアウト
alt0710 14:f6cc949a8046 51
alt0710 14:f6cc949a8046 52 * -2 : オーバーランエラー
alt0710 14:f6cc949a8046 53
alt0710 14:f6cc949a8046 54 * -3 : フレーミングエラー
alt0710 14:f6cc949a8046 55
alt0710 14:f6cc949a8046 56 * 1 : 受信中
alt0710 14:f6cc949a8046 57
alt0710 14:f6cc949a8046 58 * 2 : フレームリーダー1まで受信
alt0710 14:f6cc949a8046 59
alt0710 14:f6cc949a8046 60 * 3 : フレームリーダー2まで受信
alt0710 14:f6cc949a8046 61
alt0710 14:f6cc949a8046 62 * 4 : マシンIDまで受信
alt0710 14:f6cc949a8046 63
alt0710 14:f6cc949a8046 64 */
alt0710 14:f6cc949a8046 65 switch(StatusManager::uart){
alt0710 14:f6cc949a8046 66 case 0:
alt0710 14:f6cc949a8046 67 sprintf(str,"ID%d EN:\nComplete",ParameterManager::machine_id);
alt0710 14:f6cc949a8046 68
alt0710 14:f6cc949a8046 69 break;
alt0710 14:f6cc949a8046 70
alt0710 14:f6cc949a8046 71 case 1:
alt0710 14:f6cc949a8046 72 break;
alt0710 14:f6cc949a8046 73
alt0710 14:f6cc949a8046 74 case 2:
alt0710 14:f6cc949a8046 75 sprintf(str,"ID%d EN:\nHeader1",ParameterManager::machine_id);
alt0710 14:f6cc949a8046 76
alt0710 14:f6cc949a8046 77 break;
alt0710 14:f6cc949a8046 78
alt0710 14:f6cc949a8046 79 case 3:
alt0710 14:f6cc949a8046 80 sprintf(str,"ID%d EN:\nHeader2",ParameterManager::machine_id);
alt0710 14:f6cc949a8046 81
alt0710 14:f6cc949a8046 82 break;
alt0710 14:f6cc949a8046 83
alt0710 14:f6cc949a8046 84 case 4:
alt0710 14:f6cc949a8046 85 sprintf(str,"ID%d EN:\nCheckER1",ParameterManager::machine_id);
alt0710 14:f6cc949a8046 86
alt0710 14:f6cc949a8046 87 break;
alt0710 14:f6cc949a8046 88
alt0710 14:f6cc949a8046 89 case 5:
alt0710 14:f6cc949a8046 90 sprintf(str,"ID%d EN:\nCheckER2",ParameterManager::machine_id);
alt0710 14:f6cc949a8046 91
alt0710 14:f6cc949a8046 92 break;
alt0710 14:f6cc949a8046 93
alt0710 14:f6cc949a8046 94 case -1:
alt0710 14:f6cc949a8046 95 sprintf(str,"ID%d EN:\nTimeOut",ParameterManager::machine_id);
alt0710 14:f6cc949a8046 96
alt0710 14:f6cc949a8046 97 break;
alt0710 14:f6cc949a8046 98
alt0710 14:f6cc949a8046 99 case -2:
alt0710 14:f6cc949a8046 100 sprintf(str,"ID%d EN:\nOERR",ParameterManager::machine_id);
alt0710 14:f6cc949a8046 101
alt0710 14:f6cc949a8046 102 break;
alt0710 14:f6cc949a8046 103
alt0710 14:f6cc949a8046 104 case -3:
alt0710 14:f6cc949a8046 105 sprintf(str,"ID%d EN:\nFERR",ParameterManager::machine_id);
alt0710 14:f6cc949a8046 106
alt0710 14:f6cc949a8046 107 break;
alt0710 14:f6cc949a8046 108
alt0710 14:f6cc949a8046 109 default:
alt0710 14:f6cc949a8046 110 sprintf(str,"ID%d EN: \n %d",ParameterManager::machine_id, StatusManager::uart);
alt0710 14:f6cc949a8046 111 break;
alt0710 14:f6cc949a8046 112 }
alt0710 14:f6cc949a8046 113
alt0710 14:f6cc949a8046 114 }