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

Revision:
9:41d5c728aa78
Parent:
7:1f1bdb4e4f33
Child:
34:857b6cca2021
diff -r 8bd8d008fe86 -r 41d5c728aa78 interface/xbee/xbee_roots.cpp
--- a/interface/xbee/xbee_roots.cpp	Wed Apr 26 22:33:39 2017 +0000
+++ b/interface/xbee/xbee_roots.cpp	Sun Apr 30 16:14:08 2017 +0000
@@ -2,13 +2,15 @@
 #include "mbed.h"
 #include "comm.h"
 #include "interface_manager.h"
+#include "status_manager.h"
 #include "xbee_roots.h"
 
 /* **mbedクラス** */
 #ifdef LPC4088
 
 #elif  STM32
-Serial XBee(D13,D12);//⇐STM用に直す
+Serial XBee(D13,D12);
+Timeout timeout;
 #endif
 
 Ticker xbee_Timer;
@@ -16,18 +18,33 @@
 /* **ローカル関数定義** */
 
 /* **ローカル関数** */
+void rx_timeout(void)
+{
+      StatusManager::xbee_time_out = 1;
+      StatusManager::xbee_receiveing = 0;
+    return;
+}
 void XBee_rx(){ 
     unsigned char   buffer;
-    
+//    char str[30] = {0};
+//    sprintf(str,"Recive_OK");
+//    InterfaceManager::i2c.setLCDMsg(str,sizeof(str));  
     while(XBee.readable() == 1){
         buffer = XBee.getc();
         InterfaceManager::xbee.fifo.addFIFO(buffer);
-    }    
+    }
+    timeout.detach();
+    timeout.attach(rx_timeout,0.5);
+    StatusManager::xbee_time_out = 0;    
 }
 
 /* **グルーバル関数** */
 extern void initXbee(void)
 {
+//    char str[30] = {0};
+//    sprintf(str,"MEME_OK");
+//    InterfaceManager::i2c.setLCDMsg(str,sizeof(str));  
+     
     XBee.baud(57600);
     XBee.attach( XBee_rx, Serial::RxIrq);