etrobocon2018 feat.KatLab  770af34cce41ae9c30c41303275e1add2daae0c3 (with uncommitted changes)
 全て クラス 名前空間 ファイル 関数 変数 列挙型 列挙値 フレンド マクロ定義 ページ
Navigator.h
[詳解]
1 
6 #ifndef NAVIGATOR_H
7 #define NAVIGATOR_H
8 #include "Controller.h"
9 #include "Distinguisher.h"
10 #include "LineTracerWalker.h"
11 #include "Walker.h"
12 #include "WheelOdometry.h"
13 #include <algorithm>
14 #include <cstdint>
15 
16 class Navigator {
17  private:
18  Controller controller;
19  Walker walker;
20  WheelOdometry odometry;
21  LineTracerWalker line_tracer;
22  Distinguisher distinguisher;
23  Color color;
24 
25  public:
26  Navigator(const Controller& controller_, const Walker& walker_)
27  : controller(controller_),
28  walker(walker_),
29  odometry(),
30  line_tracer(),
31  distinguisher(controller),
32  color(Color::NONE)
33  {
34  }
35  Navigator(const Controller& controller_)
36  : controller(controller_),
37  walker(),
38  odometry(),
39  line_tracer(),
40  distinguisher(controller),
41  color(Color::NONE)
42  {
43  }
45  : controller(),
46  walker(),
47  odometry(),
48  line_tracer(),
49  distinguisher(controller),
50  color(Color::NONE)
51  {
52  }
54  void reset();
56  void spin(float angle, bool clockwise = false, std::int8_t pwm = 10);
58  void move(float distance, std::int8_t pwm = 20);
60  void back(float distance, std::int8_t pwm = 10);
62  void moveWhileDetecting(float distance, std::int16_t target, std::int8_t pwm = 10);
64  void moveOnLine(float distance, std::int16_t target, std::int8_t pwm = 20,
65  bool is_leftside_line = true);
67  void moveToColor(float distance, std::int16_t target_brightness, Color target_color,
68  std::int8_t speed = 20, bool is_leftside_line = true);
70  std::int16_t getBrightness();
72  void moveToColorCheck(float distance, Color target_color, std::int8_t pwm = 20);
74  std::int8_t getNearbyBrightness(float distance = 20.0f);
76  bool binarization(std::int16_t target);
77 };
78 
79 #endif
void moveOnLine(float distance, std::int16_t target, std::int8_t pwm=20, bool is_leftside_line=true)
指定した距離だけライントレースする
Definition: Navigator.cpp:163
void move(float distance, std::int8_t pwm=20)
指定した距離まで走行体を移動させる
Definition: Navigator.cpp:48
void moveWhileDetecting(float distance, std::int16_t target, std::int8_t pwm=10)
指定した距離まで黒色の点を検出しながら走行体を移動させる
Definition: Navigator.cpp:92
Navigator()
Definition: Navigator.h:44
void moveToColor(float distance, std::int16_t target_brightness, Color target_color, std::int8_t speed=20, bool is_leftside_line=true)
指定した距離分ライントレースして指定した色があると停止する
Definition: Navigator.cpp:211
Color
Definition: Distinguisher.h:16
void reset()
座標とエンコーダの値を初期化する
Definition: Navigator.cpp:12
std::int8_t getNearbyBrightness(float distance=20.0f)
現在位置の周辺における光センサ値を取得する
Definition: Navigator.cpp:126
std::int16_t getBrightness()
光センサの値を取得する
Definition: Navigator.cpp:115
void back(float distance, std::int8_t pwm=10)
指定した距離まで走行体を後退させる
Definition: Navigator.cpp:72
Navigator(const Controller &controller_, const Walker &walker_)
Definition: Navigator.h:26
走行体のカラーセンサを用いて、RGB情報より色を推定するクラス。
void spin(float angle, bool clockwise=false, std::int8_t pwm=10)
指定した角度まで走行体を回転させる(基本左エッジ)
Definition: Navigator.cpp:25
走行体のカラーセンサを用いて、RGB情報より色を推定するクラス。
Definition: Distinguisher.h:55
オドメトリ(Wheel odometry)手法を用いた速度/角度/自己位置推定
Navigator(const Controller &controller_)
Definition: Navigator.h:35
Definition: Walker.h:7
bool binarization(std::int16_t target)
2値化処理を実行する
Definition: Navigator.cpp:149
void moveToColorCheck(float distance, Color target_color, std::int8_t pwm=20)
指定した距離特定の色を探しながら進む(ライントレースしない)
Definition: Navigator.cpp:191