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:
Sat May 06 06:18:09 2017 +0000
Revision:
18:8db19ccf7e02
Parent:
14:f6cc949a8046
Child:
19:0bbd90be9aa3
dribbler?????; PWM???10kHz?20kHz

Who changed what in which revision?

UserRevisionLine numberNew contents of line
alt0710 12:b7d7523733cd 1
alt0710 12:b7d7523733cd 2 #include "mbed.h"
alt0710 12:b7d7523733cd 3 #include "comm.h"
alt0710 12:b7d7523733cd 4 #include "interface_manager.h"
alt0710 12:b7d7523733cd 5 #include "parameter_manager.h"
alt0710 12:b7d7523733cd 6 #include "dribbler.h"
alt0710 12:b7d7523733cd 7
alt0710 12:b7d7523733cd 8 /* **mbedクラス** */
alt0710 12:b7d7523733cd 9 #ifdef LPC4088
alt0710 12:b7d7523733cd 10
alt0710 12:b7d7523733cd 11 #elif STM32
alt0710 12:b7d7523733cd 12
alt0710 12:b7d7523733cd 13 #endif
alt0710 12:b7d7523733cd 14
alt0710 12:b7d7523733cd 15 /* **ローカル関数定義** */
alt0710 12:b7d7523733cd 16 void fireTimer(void);
alt0710 12:b7d7523733cd 17 void driveFireTimer(double firetime);
alt0710 12:b7d7523733cd 18
alt0710 12:b7d7523733cd 19 /* **ローカル関数** */
alt0710 12:b7d7523733cd 20
alt0710 12:b7d7523733cd 21 /* **グルーバル関数** */
alt0710 12:b7d7523733cd 22
alt0710 12:b7d7523733cd 23 /* **クラス** */
alt0710 12:b7d7523733cd 24 class InterfaceManager;
alt0710 12:b7d7523733cd 25 //メンバ変数の初期化は、定義順(Warningになる)
alt0710 12:b7d7523733cd 26 Dribbler::Dribbler()
alt0710 12:b7d7523733cd 27 :f_dribble(0),
alt0710 12:b7d7523733cd 28 power(0)
alt0710 12:b7d7523733cd 29 {
alt0710 12:b7d7523733cd 30 }
alt0710 12:b7d7523733cd 31
alt0710 12:b7d7523733cd 32 void Dribbler::setdribble(char flag_dribble, char dribble_power)
alt0710 12:b7d7523733cd 33 {
alt0710 12:b7d7523733cd 34 f_dribble = flag_dribble;
alt0710 12:b7d7523733cd 35 power = dribble_power;
alt0710 12:b7d7523733cd 36
alt0710 12:b7d7523733cd 37 checkIC();
alt0710 12:b7d7523733cd 38 // if(f_dribble)
alt0710 14:f6cc949a8046 39 if(f_dribble && (StatusManager::dribbleIC_fault == 0))
alt0710 14:f6cc949a8046 40 {
alt0710 14:f6cc949a8046 41 InterfaceManager::dribbleStandBy = 0;
alt0710 12:b7d7523733cd 42 driveDribble(power);
alt0710 14:f6cc949a8046 43 }
alt0710 14:f6cc949a8046 44 else
alt0710 14:f6cc949a8046 45 {
alt0710 18:8db19ccf7e02 46 InterfaceManager::dribbleStandBy = 0;
alt0710 14:f6cc949a8046 47 }
alt0710 12:b7d7523733cd 48 }
alt0710 12:b7d7523733cd 49
alt0710 12:b7d7523733cd 50 void Dribbler::driveDribble(char t_power)
alt0710 12:b7d7523733cd 51 {
alt0710 12:b7d7523733cd 52
alt0710 14:f6cc949a8046 53 InterfaceManager::dribbleMotor.write((float)(t_power/15.0));
alt0710 14:f6cc949a8046 54 //InterfaceManager::dribbleMotor.write(0.0);
alt0710 12:b7d7523733cd 55
alt0710 12:b7d7523733cd 56 }
alt0710 12:b7d7523733cd 57
alt0710 12:b7d7523733cd 58 void Dribbler::checkIC(void)
alt0710 12:b7d7523733cd 59 {
alt0710 12:b7d7523733cd 60 StatusManager::dribbleIC_fault = InterfaceManager::dribbleIC_fault;
alt0710 12:b7d7523733cd 61 }
alt0710 12:b7d7523733cd 62