趣味で作ってるロボット用ソフトウェア
 All Classes Files Functions Enumerations Enumerator Friends Pages
Run_driver.h
Go to the documentation of this file.
1 #ifndef HRK_RUN_DRIVER_H
2 #define HRK_RUN_DRIVER_H
3 
9 #include "Coordinate.h"
10 
11 
12 namespace hrk
13 {
14  class Connection;
15 
17  class Run_driver : public Locatable
18  {
19  public:
20  static Coordinate* Global;
21 
22 
23  virtual ~Run_driver()
24  {
25  }
26 
32  virtual const char* what() const = 0;
33 
35  virtual void close() = 0;
36 
38  virtual void set_connection(Connection* connection) = 0;
39 
41  virtual Connection* connection() = 0;
42 
44  virtual void set_straight_velocity(double m_per_sec) = 0;
45 
47  virtual double straight_velocity() const = 0;
48 
50  virtual void set_rotate_velocity(const Angle& angle_per_sec) = 0;
51 
53  virtual Angle rotate_velocity() const = 0;
54 
56  virtual void set_straight_acceleration(double m_per_sec2) = 0;
57 
59  virtual void set_rotate_acceleration(const Angle& angle_per_sec2) = 0;
60 
66  virtual PositionF
67  position(const Locatable* coordinate = Global) const = 0;
68 
70  virtual void set_position(const PositionF& position,
71  const Locatable* coordinate = Global) = 0;
72 
74  virtual double path_change_distance() = 0;
75 
77  virtual bool is_stable() = 0;
78 
86  virtual void follow_line(const PositionF& line,
87  const Locatable* coordinate = Global) = 0;
88 
97  virtual void follow_circle(const PointF& center, double radius,
98  const Locatable* coordinate = Global) = 0;
99 
107  virtual void stop_to_line(const PositionF& line,
108  const Locatable* coordinate = Global) = 0;
109 
111  virtual void spin(const Angle& spin_angle) = 0;
112 
120  virtual void
121  spin_to_direction(const Angle& target_angle,
122  const Locatable* coordinate = Global) = 0;
123 
125  virtual void stop() = 0;
126 
128  virtual double distance_to(const PointF& point,
129  const Locatable* coordinate = Global) = 0;
130 
138  virtual double
140  const Locatable* coordinate = Global) = 0;
141 
143  virtual Angle angle_to(const Angle& angle,
144  const Locatable* coordinate = Global) = 0;
145  };
146 }
147 
148 #endif
virtual Angle rotate_velocity() const =0
回転角速度を取得する
virtual void follow_line(const PositionF &line, const Locatable *coordinate=Global)=0
追従させる直線を指定する
virtual void set_straight_velocity(double m_per_sec)=0
並進速度を指定する
virtual void close()=0
接続を閉じる
virtual void spin_to_direction(const Angle &target_angle, const Locatable *coordinate=Global)=0
指定した向きで停止させる
virtual Connection * connection()=0
接続オブジェクトを返す
virtual double distance_to_perpendicular(const PositionF &line, const Locatable *coordinate=Global)=0
ベクトルの始点を通る垂線とロボットとの距離を返す
virtual const char * what() const =0
状態を示すメッセージを返す
virtual void spin(const Angle &spin_angle)=0
指定した角度だけ回転させる
角度
Definition: Angle.h:13
virtual void set_rotate_velocity(const Angle &angle_per_sec)=0
回転角速度を指定する
位置
Definition: PointF.h:12
virtual void stop()=0
停止させる
virtual void set_rotate_acceleration(const Angle &angle_per_sec2)=0
回転角加速度を指定する
virtual void stop_to_line(const PositionF &line, const Locatable *coordinate=Global)=0
直線上で停止させる
接続のインターフェース
Definition: Connection.h:21
virtual PositionF position(const Locatable *coordinate=Global) const =0
推定自己位置の取得
virtual double straight_velocity() const =0
並進速度を取得する
virtual double path_change_distance()=0
経路の切替えが適切に行える最短距離を返す
virtual bool is_stable()=0
移動コマンドの動作が安定したかを返す
virtual void set_position(const PositionF &position, const Locatable *coordinate=Global)=0
位置の登録
virtual void follow_circle(const PointF &center, double radius, const Locatable *coordinate=Global)=0
追従させる円を指定する
ロボット用インターフェース
Definition: Run_driver.h:17
Definition: Coordinate.h:15
座標系
Definition: Locatable.h:15
virtual void set_straight_acceleration(double m_per_sec2)=0
並進加速度を指定する
virtual double distance_to(const PointF &point, const Locatable *coordinate=Global)=0
点とロボットとの距離を返す
位置
Definition: PositionF.h:16
virtual void set_connection(Connection *connection)=0
接続オブジェクトを設定する
virtual Angle angle_to(const Angle &angle, const Locatable *coordinate=Global)=0
向きとロボットとの角度差を返す