概要
ここでは、ルンバのバッテリー情報を取得する方法を説明します。
具体的には、充電中かどうかの取得と、充電する基地への移動を指示できます。
充電中かの取得
hrk::Roomba_driver::is_charging() を利用します。
このメソッドを呼び出すことで、充電中かどうかが取得できます。
充電する基地への移動
hrk::Roomba_driver::dock() を利用します。
以下に dock() メソッドを用いて充電の開始を指示するサンプルを紹介します。 dock() メソッドを呼び出した後に、実際に充電を開始したかを is_charging() を用いて監視しています。
#include <cstdlib>
#include <iostream>
#include <cstdio>
using namespace hrk;
using namespace std;
int main(int argc, char *argv[])
{
static_cast<void>(argc);
static_cast<void>(argv);
if (!robot.
open(
"/dev/ttyUSB0")) {
cerr << FILE_POSITION() << robot.
what() << endl;
return 1;
}
const double Timeout_second = 10.0;
long first_ticks = ticks_sec();
long spent_time;
do {
long current_ticks = ticks_sec();
spent_time = current_ticks - first_ticks;
if ((spent_time > 4.0) &&
(distance_to(
PointF(current_position.
x(), current_position.
y()),
previous_position.
y())) <= 0)) {
}
previous_position = current_position;
cout << "dock success!" << endl;
return 0;
}
delay_sec(0.1);
} while (spent_time < Timeout_second);
cout << "dock fail." << endl;
return 1;
}