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:
34:857b6cca2021
2019JapanOpenSoft

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 "interface_manager.h"
alt0710 9:41d5c728aa78 5 #include "status_manager.h"
alt0710 7:1f1bdb4e4f33 6 #include "xbee_roots.h"
alt0710 7:1f1bdb4e4f33 7
alt0710 7:1f1bdb4e4f33 8 /* **mbedクラス** */
alt0710 7:1f1bdb4e4f33 9 #ifdef LPC4088
alt0710 7:1f1bdb4e4f33 10
alt0710 7:1f1bdb4e4f33 11 #elif STM32
alt0710 9:41d5c728aa78 12 Serial XBee(D13,D12);
alt0710 9:41d5c728aa78 13 Timeout timeout;
alt0710 7:1f1bdb4e4f33 14 #endif
alt0710 7:1f1bdb4e4f33 15
alt0710 7:1f1bdb4e4f33 16 Ticker xbee_Timer;
alt0710 7:1f1bdb4e4f33 17
alt0710 7:1f1bdb4e4f33 18 /* **ローカル関数定義** */
alt0710 7:1f1bdb4e4f33 19
alt0710 7:1f1bdb4e4f33 20 /* **ローカル関数** */
alt0710 9:41d5c728aa78 21 void rx_timeout(void)
alt0710 9:41d5c728aa78 22 {
alt0710 9:41d5c728aa78 23 StatusManager::xbee_time_out = 1;
alt0710 9:41d5c728aa78 24 StatusManager::xbee_receiveing = 0;
alt0710 9:41d5c728aa78 25 return;
alt0710 9:41d5c728aa78 26 }
alt0710 7:1f1bdb4e4f33 27 void XBee_rx(){
alt0710 7:1f1bdb4e4f33 28 unsigned char buffer;
alt0710 9:41d5c728aa78 29 // char str[30] = {0};
alt0710 9:41d5c728aa78 30 // sprintf(str,"Recive_OK");
alt0710 9:41d5c728aa78 31 // InterfaceManager::i2c.setLCDMsg(str,sizeof(str));
alt0710 7:1f1bdb4e4f33 32 while(XBee.readable() == 1){
alt0710 7:1f1bdb4e4f33 33 buffer = XBee.getc();
alt0710 7:1f1bdb4e4f33 34 InterfaceManager::xbee.fifo.addFIFO(buffer);
alt0710 9:41d5c728aa78 35 }
alt0710 34:857b6cca2021 36 //timeout.detach();
alt0710 34:857b6cca2021 37 //timeout.attach(rx_timeout,0.5);
alt0710 34:857b6cca2021 38 //StatusManager::xbee_time_out = 0;
alt0710 7:1f1bdb4e4f33 39 }
alt0710 7:1f1bdb4e4f33 40
alt0710 7:1f1bdb4e4f33 41 /* **グルーバル関数** */
alt0710 7:1f1bdb4e4f33 42 extern void initXbee(void)
alt0710 7:1f1bdb4e4f33 43 {
alt0710 9:41d5c728aa78 44 // char str[30] = {0};
alt0710 9:41d5c728aa78 45 // sprintf(str,"MEME_OK");
alt0710 9:41d5c728aa78 46 // InterfaceManager::i2c.setLCDMsg(str,sizeof(str));
alt0710 9:41d5c728aa78 47
alt0710 7:1f1bdb4e4f33 48 XBee.baud(57600);
alt0710 7:1f1bdb4e4f33 49 XBee.attach( XBee_rx, Serial::RxIrq);
alt0710 7:1f1bdb4e4f33 50
alt0710 7:1f1bdb4e4f33 51 }
alt0710 7:1f1bdb4e4f33 52
alt0710 7:1f1bdb4e4f33 53 /* **クラス** */
alt0710 7:1f1bdb4e4f33 54 Xbee_Roots::Xbee_Roots()
alt0710 7:1f1bdb4e4f33 55 {
alt0710 7:1f1bdb4e4f33 56
alt0710 7:1f1bdb4e4f33 57
alt0710 7:1f1bdb4e4f33 58 }
alt0710 7:1f1bdb4e4f33 59
alt0710 7:1f1bdb4e4f33 60
alt0710 7:1f1bdb4e4f33 61