充電の開始を指示充電できる基地の近くで実行することを想定しており, 一定時間が経過しても充電できなかったら動作を終了する。
#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;
}