趣味で作ってるロボット用ソフトウェア
 All Classes Files Functions Enumerations Enumerator Friends Pages
mRoomba_driver.h
Go to the documentation of this file.
1 #ifndef HRK_M_ROOMBA_DRIVER_H
2 #define HRK_M_ROOMBA_DRIVER_H
3 
9 #include "Run_driver.h"
10 #include "Power_manager.h"
11 
12 
13 namespace hrk
14 {
16  class mRoomba_driver : public Run_driver, public Power_manager
17  {
18  public:
20  ~mRoomba_driver();
21 
27  const char* what() const;
28 
30  bool open(const std::string& device_name);
31 
32  void close();
34  void set_connection(Connection* connection);
35  void set_straight_velocity(double m_per_sec);
36  double straight_velocity() const;
37  void set_rotate_velocity(const Angle& angle_per_sec);
38  Angle rotate_velocity() const;
39  void set_straight_acceleration(double m_per_sec2);
40  void set_rotate_acceleration(const Angle& angle_per_sec2);
41  PositionF position(const Locatable* coordinate) const;
42  void set_position(const PositionF& position,
43  const Locatable* coordinate);
44  double path_change_distance();
45  bool is_stable();
46  void follow_line(const PositionF& line, const Locatable* coordinate);
47  void follow_circle(const PointF& center, double radius,
48  const Locatable* coordinate);
49  void stop_to_line(const PositionF& line, const Locatable* coordinate);
50  void spin(const Angle& spin_angle);
51  void spin_to_direction(const Angle& target_angle,
52  const Locatable* coordinate);
53  void stop();
54  double distance_to(const PointF& point, const Locatable* coordinate);
55  double distance_to_perpendicular(const PositionF& line,
56  const Locatable* coordinate);
57  Angle angle_to(const Angle& angle, const Locatable* coordinate);
58 
59  bool sleep();
60  bool wake_up();
61  bool power_down();
62  bool dock();
63  bool is_charging();
64  int charged_percent();
65 
66  void set_vacuum(bool on = true);
67  void control_wheel_velocity(double right_m_per_sec,
68  double left_m_per_sec);
69 
70  void set_simulator_position(const PositionF& position);
71 
72  private:
73  mRoomba_driver(const mRoomba_driver& rhs);
74  mRoomba_driver& operator = (const mRoomba_driver& rhs);
75 
76  struct pImpl;
77  std::auto_ptr<pImpl> pimpl;
78  };
79 }
80 
81 #endif
bool open(const std::string &device_name)
接続を開く
Definition: mRoomba_driver.cpp:66
void set_position(const PositionF &position, const Locatable *coordinate)
位置の登録
Definition: mRoomba_driver.cpp:149
bool wake_up()
省電力な状態からの復帰
Definition: mRoomba_driver.cpp:234
ロボットの移動制御
Angle rotate_velocity() const
回転角速度を取得する
Definition: mRoomba_driver.cpp:125
角度
Definition: Angle.h:13
void stop_to_line(const PositionF &line, const Locatable *coordinate)
直線上で停止させる
Definition: mRoomba_driver.cpp:182
位置
Definition: PointF.h:12
void stop()
停止させる
Definition: mRoomba_driver.cpp:202
電源の管理インターフェース
Definition: Power_manager.h:12
double distance_to_perpendicular(const PositionF &line, const Locatable *coordinate)
ベクトルの始点を通る垂線とロボットとの距離を返す
Definition: mRoomba_driver.cpp:215
void set_straight_velocity(double m_per_sec)
並進速度を指定する
Definition: mRoomba_driver.cpp:113
const char * what() const
状態を示すメッセージを返す
Definition: mRoomba_driver.cpp:59
void set_rotate_acceleration(const Angle &angle_per_sec2)
回転角加速度を指定する
Definition: mRoomba_driver.cpp:137
int charged_percent()
充電されている割合をパーセントで返す
Definition: mRoomba_driver.cpp:258
電源の管理インターフェース
接続のインターフェース
Definition: Connection.h:21
bool sleep()
省電力な状態への遷移
Definition: mRoomba_driver.cpp:228
void spin_to_direction(const Angle &target_angle, const Locatable *coordinate)
指定した向きで停止させる
Definition: mRoomba_driver.cpp:195
void close()
接続を閉じる
Definition: mRoomba_driver.cpp:88
PositionF position(const Locatable *coordinate) const
推定自己位置の取得
Definition: mRoomba_driver.cpp:143
void follow_circle(const PointF &center, double radius, const Locatable *coordinate)
追従させる円を指定する
Definition: mRoomba_driver.cpp:175
Angle angle_to(const Angle &angle, const Locatable *coordinate)
向きとロボットとの角度差を返す
Definition: mRoomba_driver.cpp:222
void spin(const Angle &spin_angle)
指定した角度だけ回転させる
Definition: mRoomba_driver.cpp:189
bool is_charging()
充電中かを返す
Definition: mRoomba_driver.cpp:252
ルンバの制御
Definition: mRoomba_driver.h:16
Connection * connection()
接続オブジェクトを返す
Definition: mRoomba_driver.cpp:95
double straight_velocity() const
並進速度を取得する
Definition: mRoomba_driver.cpp:107
void follow_line(const PositionF &line, const Locatable *coordinate)
追従させる直線を指定する
Definition: mRoomba_driver.cpp:168
double distance_to(const PointF &point, const Locatable *coordinate)
点とロボットとの距離を返す
Definition: mRoomba_driver.cpp:208
ロボット用インターフェース
Definition: Run_driver.h:17
void set_connection(Connection *connection)
接続オブジェクトを設定する
Definition: mRoomba_driver.cpp:101
Definition: Locatable.h:15
位置
Definition: PositionF.h:16
bool dock()
充電の開始を指示
Definition: mRoomba_driver.cpp:246
void set_rotate_velocity(const Angle &angle_per_sec)
回転角速度を指定する
Definition: mRoomba_driver.cpp:119
bool is_stable()
移動コマンドの動作が安定したかを返す
Definition: mRoomba_driver.cpp:162
double path_change_distance()
経路の切替えが適切に行える最短距離を返す
Definition: mRoomba_driver.cpp:156
bool power_down()
電源を切る
Definition: mRoomba_driver.cpp:240
void set_straight_acceleration(double m_per_sec2)
並進加速度を指定する
Definition: mRoomba_driver.cpp:131