RobocupSSLのメイン基板白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は,ロボットとボールの座標,審判の判定を元にロボットの移動,キックなどの作戦を決定し,無線によってロボットに指令を送信する.
ロボット機能紹介
●オムニホイールによる方向転換不要の全方位移動
オムニホイールは,自由に回転可能なローラをホイールの外周上に配置した車輪である.ローラの回転により,車輪の回転と垂直の方向に駆動力を発することはできないが移動は可能となる.各車輪の角速度を調整することによって全方向への移動を可能にする.
●ドリブルバーのバックスピンによるボール保持
●電磁力を利用したキッカー
●キッカーの電磁力エネルギーを充電する充電回路
●ロボット情報が一目でわかるLCD
Diff: interface/button/button_roots.cpp
- 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); }