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:
12:b7d7523733cd
Parent:
6:21b3fbe57b88
Child:
15:2bf8eafacef8
diff -r 7f5259ad738c -r b7d7523733cd interface/button/button_roots.cpp
--- a/interface/button/button_roots.cpp	Tue May 02 13:57:23 2017 +0000
+++ b/interface/button/button_roots.cpp	Wed May 03 03:35:32 2017 +0000
@@ -16,7 +16,7 @@
 //CrossSelectSW
 InterruptIn CrossSW_UP(D11);   //EXT2
 InterruptIn CrossSW_LEFT(D7);  //PUSH D7
-InterruptIn CrossSW_DOWN(D9);  //KICK
+//InterruptIn CrossSW_DOWN(D9);  //KICK
 DigitalIn   DUMY(D8);  //KICK
 InterruptIn CrossSW_RIGHT(A1); //EXT
 #endif
@@ -44,19 +44,19 @@
     t_up.detach();
     
 }
-void check_click_down(void)
-{
-    if(InterfaceManager::button.count_click[1]  ==  1)
-    {
-        InterfaceManager::button.setButtunStatus(CROSS_DOWN, SINGLE_CLICK); 
-    }  
-    else if(InterfaceManager::button.count_click[1]  ==  2)
-    {
-        InterfaceManager::button.setButtunStatus(CROSS_DOWN, DOUBLE_CLICK); 
-    }
-    InterfaceManager::button.count_click[1]  = 0;
-    t_down.detach();    
-}
+//void check_click_down(void)
+//{
+//    if(InterfaceManager::button.count_click[1]  ==  1)
+//    {
+//        InterfaceManager::button.setButtunStatus(CROSS_DOWN, SINGLE_CLICK); 
+//    }  
+//    else if(InterfaceManager::button.count_click[1]  ==  2)
+//    {
+//        InterfaceManager::button.setButtunStatus(CROSS_DOWN, DOUBLE_CLICK); 
+//    }
+//    InterfaceManager::button.count_click[1]  = 0;
+//    t_down.detach();    
+//}
 void check_click_left(void)
 {
     if(InterfaceManager::button.count_click[2]  ==  1)
@@ -104,25 +104,25 @@
     }  
     
 }
-void click_down(void)
-{
-    myled = !myled;
-    switch(InterfaceManager::button.count_click[1]){
-        case 0:
-        t_down.attach(check_click_down, CHECK_TIME);
-        InterfaceManager::button.count_click[1]++;
-        break;
-        
-        case 1:
-        InterfaceManager::button.count_click[1]++;
-        break;
-        
-        default:
-        InterfaceManager::button.count_click[1] = 0;
-        break;
-    } 
-    
-}
+//void click_down(void)
+//{
+//    myled = !myled;
+//    switch(InterfaceManager::button.count_click[1]){
+//        case 0:
+//        t_down.attach(check_click_down, CHECK_TIME);
+//        InterfaceManager::button.count_click[1]++;
+//        break;
+//        
+//        case 1:
+//        InterfaceManager::button.count_click[1]++;
+//        break;
+//        
+//        default:
+//        InterfaceManager::button.count_click[1] = 0;
+//        break;
+//    } 
+//    
+//}
 void click_left(void)
 {
     myled = !myled;
@@ -170,7 +170,7 @@
     Mode_SW2.mode(PullDown);
     
     CrossSW_UP.mode(PullNone);
-    CrossSW_DOWN.mode(PullNone);
+    //CrossSW_DOWN.mode(PullNone);
     DUMY.mode(PullNone);
     CrossSW_LEFT.mode(PullNone);
     CrossSW_RIGHT.mode(PullNone);   
@@ -178,7 +178,7 @@
     //入力割り込み設定
     CrossSW_UP.fall(&click_up);
     CrossSW_LEFT.fall(&click_left);
-    CrossSW_DOWN.rise(&click_down);
+    //CrossSW_DOWN.rise(&click_down);
     CrossSW_RIGHT.fall(&click_right);
     
 }