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
actuator/kicker.h@25:15f75825fc36, 2018-04-29 (annotated)
- Committer:
- alt0710
- Date:
- Sun Apr 29 08:51:32 2018 +0000
- Revision:
- 25:15f75825fc36
- Parent:
- 15:2bf8eafacef8
- Child:
- 26:d626e7968063
????????;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
alt0710 | 3:6f87cbec2ae8 | 1 | #ifndef KICKER_ROOTS_H |
alt0710 | 3:6f87cbec2ae8 | 2 | #define KICKER_ROOTS_H |
alt0710 | 3:6f87cbec2ae8 | 3 | |
alt0710 | 3:6f87cbec2ae8 | 4 | /* **Include** */ |
alt0710 | 3:6f87cbec2ae8 | 5 | #include "mbed.h" |
alt0710 | 3:6f87cbec2ae8 | 6 | #include "comm.h" |
alt0710 | 3:6f87cbec2ae8 | 7 | #include "interface_manager.h" |
alt0710 | 3:6f87cbec2ae8 | 8 | #include "status_manager.h" |
alt0710 | 3:6f87cbec2ae8 | 9 | |
alt0710 | 3:6f87cbec2ae8 | 10 | /* **Define** */ |
alt0710 | 15:2bf8eafacef8 | 11 | #define STRAIGHT 0 |
alt0710 | 15:2bf8eafacef8 | 12 | #define CHIP 1 |
alt0710 | 25:15f75825fc36 | 13 | #define CONTINUE_DELAY 1400 //main処理周期 0.45ms |
alt0710 | 25:15f75825fc36 | 14 | #define NUM_OF_KICK 49//n+1回やります |
alt0710 | 3:6f87cbec2ae8 | 15 | |
alt0710 | 3:6f87cbec2ae8 | 16 | /* **変数定義** */ |
alt0710 | 3:6f87cbec2ae8 | 17 | |
alt0710 | 3:6f87cbec2ae8 | 18 | /* **グルーバル関数** */ |
alt0710 | 3:6f87cbec2ae8 | 19 | |
alt0710 | 3:6f87cbec2ae8 | 20 | /* **クラス** */ |
alt0710 | 3:6f87cbec2ae8 | 21 | class InterfaceManager; |
alt0710 | 3:6f87cbec2ae8 | 22 | class StatusManager; |
alt0710 | 3:6f87cbec2ae8 | 23 | |
alt0710 | 3:6f87cbec2ae8 | 24 | class Kicker{ |
alt0710 | 3:6f87cbec2ae8 | 25 | public: |
alt0710 | 3:6f87cbec2ae8 | 26 | Kicker(); |
alt0710 | 3:6f87cbec2ae8 | 27 | void setKick(char flag_kick, char kick_Type, char kick_power); |
alt0710 | 3:6f87cbec2ae8 | 28 | void setCharge(char flag_charge); |
alt0710 | 10:9cd22f673968 | 29 | void forceFireKick(void); |
alt0710 | 3:6f87cbec2ae8 | 30 | |
alt0710 | 3:6f87cbec2ae8 | 31 | |
alt0710 | 3:6f87cbec2ae8 | 32 | private: |
alt0710 | 10:9cd22f673968 | 33 | void fireKick(char t_KickType,char t_power); |
alt0710 | 3:6f87cbec2ae8 | 34 | void checkKickEnable(void); |
alt0710 | 3:6f87cbec2ae8 | 35 | void checkRelease(void); |
alt0710 | 3:6f87cbec2ae8 | 36 | void checkChargeCompleted(void); |
alt0710 | 3:6f87cbec2ae8 | 37 | void checkBallSensor(void); |
alt0710 | 3:6f87cbec2ae8 | 38 | void fireTimer(void); |
alt0710 | 3:6f87cbec2ae8 | 39 | |
alt0710 | 3:6f87cbec2ae8 | 40 | enum BALL{IS_NOT_EXIST, IS_EXIST}; |
alt0710 | 3:6f87cbec2ae8 | 41 | enum KickPermit{DISABLE, ENABLE}; |
alt0710 | 3:6f87cbec2ae8 | 42 | BALL ball; |
alt0710 | 3:6f87cbec2ae8 | 43 | KickPermit kickPermit; |
alt0710 | 3:6f87cbec2ae8 | 44 | char f_kick; |
alt0710 | 3:6f87cbec2ae8 | 45 | char f_charge_fin; |
alt0710 | 3:6f87cbec2ae8 | 46 | char kickType; |
alt0710 | 3:6f87cbec2ae8 | 47 | char power; |
alt0710 | 3:6f87cbec2ae8 | 48 | char f_charge; |
alt0710 | 3:6f87cbec2ae8 | 49 | char isRelease; |
alt0710 | 3:6f87cbec2ae8 | 50 | short fireTime; |
alt0710 | 10:9cd22f673968 | 51 | int count_continue_delay; |
alt0710 | 10:9cd22f673968 | 52 | int count_num_of_kick; |
alt0710 | 10:9cd22f673968 | 53 | int mode_discharge; |
alt0710 | 10:9cd22f673968 | 54 | |
alt0710 | 3:6f87cbec2ae8 | 55 | }; |
alt0710 | 3:6f87cbec2ae8 | 56 | |
alt0710 | 3:6f87cbec2ae8 | 57 | #endif |