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
UART????; ????????

Who changed what in which revision?

UserRevisionLine numberNew contents of line
alt0710 7:1f1bdb4e4f33 1
alt0710 7:1f1bdb4e4f33 2 #include "mbed.h"
alt0710 7:1f1bdb4e4f33 3 #include "comm.h"
alt0710 7:1f1bdb4e4f33 4 #include "fifo.h"
alt0710 7:1f1bdb4e4f33 5
alt0710 7:1f1bdb4e4f33 6 /* **mbedクラス** */
alt0710 7:1f1bdb4e4f33 7 #ifdef LPC4088
alt0710 7:1f1bdb4e4f33 8
alt0710 7:1f1bdb4e4f33 9 #elif STM32
alt0710 7:1f1bdb4e4f33 10
alt0710 7:1f1bdb4e4f33 11 #endif
alt0710 7:1f1bdb4e4f33 12
alt0710 7:1f1bdb4e4f33 13
alt0710 7:1f1bdb4e4f33 14 /* **ローカル関数定義** */
alt0710 7:1f1bdb4e4f33 15
alt0710 7:1f1bdb4e4f33 16 /* **ローカル関数** */
alt0710 7:1f1bdb4e4f33 17
alt0710 7:1f1bdb4e4f33 18 /* **グルーバル関数** */
alt0710 7:1f1bdb4e4f33 19
alt0710 7:1f1bdb4e4f33 20 /* **クラス** */
alt0710 7:1f1bdb4e4f33 21 FIFO_Roots::FIFO_Roots()
alt0710 7:1f1bdb4e4f33 22 :head_write(0),
alt0710 7:1f1bdb4e4f33 23 head_read(0)
alt0710 7:1f1bdb4e4f33 24 {}
alt0710 7:1f1bdb4e4f33 25
alt0710 7:1f1bdb4e4f33 26 ErrAddFIFO FIFO_Roots::addFIFO(fifo_type data )
alt0710 7:1f1bdb4e4f33 27 {
alt0710 7:1f1bdb4e4f33 28 unsigned char next = (head_write+ 1) & (FIFO_SIZE - 1);
alt0710 7:1f1bdb4e4f33 29
alt0710 7:1f1bdb4e4f33 30 if( next == head_read ){
alt0710 7:1f1bdb4e4f33 31 return FIFO_OVERFLOWED;
alt0710 7:1f1bdb4e4f33 32 }
alt0710 7:1f1bdb4e4f33 33
alt0710 7:1f1bdb4e4f33 34 fifo_data[head_write] = data;
alt0710 7:1f1bdb4e4f33 35 head_write = next;
alt0710 7:1f1bdb4e4f33 36
alt0710 7:1f1bdb4e4f33 37 return ADD_SUCCESS;
alt0710 7:1f1bdb4e4f33 38
alt0710 7:1f1bdb4e4f33 39 }
alt0710 7:1f1bdb4e4f33 40
alt0710 7:1f1bdb4e4f33 41 fifo_type FIFO_Roots::getFIFO(void)
alt0710 7:1f1bdb4e4f33 42 {
alt0710 7:1f1bdb4e4f33 43 fifo_type buf;
alt0710 7:1f1bdb4e4f33 44
alt0710 7:1f1bdb4e4f33 45 buf = fifo_data[head_read];
alt0710 7:1f1bdb4e4f33 46 head_read = (head_read + 1) & (FIFO_SIZE - 1 );
alt0710 7:1f1bdb4e4f33 47
alt0710 7:1f1bdb4e4f33 48 return buf;
alt0710 7:1f1bdb4e4f33 49 }
alt0710 7:1f1bdb4e4f33 50
alt0710 7:1f1bdb4e4f33 51 ErrGetFIFO FIFO_Roots::statusFIFO(void)
alt0710 7:1f1bdb4e4f33 52 {
alt0710 7:1f1bdb4e4f33 53 if( head_read == head_write ){
alt0710 7:1f1bdb4e4f33 54 return FIFO_EMPTY;
alt0710 7:1f1bdb4e4f33 55 }
alt0710 7:1f1bdb4e4f33 56 return GET_SUCCESS;
alt0710 7:1f1bdb4e4f33 57 }