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:
Tue Apr 25 16:08:47 2017 +0000
Revision:
6:21b3fbe57b88
Parent:
4:8c6f6b687303
Child:
7:1f1bdb4e4f33
Kicker????????????; ????????

Who changed what in which revision?

UserRevisionLine numberNew contents of line
alt0710 0:d4b98dbcb767 1 #include "mbed.h"
alt0710 0:d4b98dbcb767 2 #include "interface_manager.h"
alt0710 0:d4b98dbcb767 3
alt0710 0:d4b98dbcb767 4 Button_Roots InterfaceManager::button;
alt0710 1:c359b1fcfb5a 5 I2C_Roots InterfaceManager::i2c;
alt0710 2:ba11cc8540d3 6 CAN_Roots InterfaceManager::can;
alt0710 0:d4b98dbcb767 7
alt0710 3:6f87cbec2ae8 8 DigitalOut InterfaceManager::straight_kick(D3);
alt0710 3:6f87cbec2ae8 9 DigitalOut InterfaceManager::chip_kick(D6);
alt0710 3:6f87cbec2ae8 10 DigitalOut InterfaceManager::charge_request(D1);
alt0710 3:6f87cbec2ae8 11
alt0710 3:6f87cbec2ae8 12 DigitalIn InterfaceManager::ball_sensor(A7);
alt0710 3:6f87cbec2ae8 13 DigitalIn InterfaceManager::charge_completed(D0);
alt0710 4:8c6f6b687303 14 //DigitalIn InterfaceManager::modeSW_1(A3);
alt0710 4:8c6f6b687303 15 //DigitalIn InterfaceManager::modeSW_2(A2);
alt0710 3:6f87cbec2ae8 16
alt0710 3:6f87cbec2ae8 17
alt0710 3:6f87cbec2ae8 18
alt0710 0:d4b98dbcb767 19 void init_interface(void)
alt0710 0:d4b98dbcb767 20 {
alt0710 3:6f87cbec2ae8 21 //割り込み優先度決定※Timerの優先度は低めに
alt0710 4:8c6f6b687303 22 NVIC_SetPriority(TIM2_IRQn,8);
alt0710 1:c359b1fcfb5a 23 NVIC_SetPriority(I2C1_EV_IRQn,1);
alt0710 2:ba11cc8540d3 24 NVIC_SetPriority(CAN_TX_IRQn,1);
alt0710 2:ba11cc8540d3 25 NVIC_SetPriority(CAN_RX0_IRQn,1);
alt0710 2:ba11cc8540d3 26 NVIC_SetPriority(CAN_RX1_IRQn,1);
alt0710 3:6f87cbec2ae8 27
alt0710 0:d4b98dbcb767 28 initButton();
alt0710 1:c359b1fcfb5a 29 initI2C();
alt0710 2:ba11cc8540d3 30 initCAN();
alt0710 1:c359b1fcfb5a 31
alt0710 3:6f87cbec2ae8 32 //入力PINの設定
alt0710 6:21b3fbe57b88 33 InterfaceManager::ball_sensor.mode(PullNone);
alt0710 3:6f87cbec2ae8 34 InterfaceManager::charge_completed.mode(PullNone);
alt0710 4:8c6f6b687303 35 // InterfaceManager::modeSW_1.mode(PullNone);
alt0710 4:8c6f6b687303 36 // InterfaceManager::modeSW_2.mode(PullNone);
alt0710 3:6f87cbec2ae8 37 InterfaceManager::straight_kick = 0;
alt0710 3:6f87cbec2ae8 38 InterfaceManager::chip_kick = 0;
alt0710 3:6f87cbec2ae8 39 InterfaceManager::charge_request = 0;
alt0710 0:d4b98dbcb767 40 }