Functions | |
virtual bool | RunCtrl::isStable (void) |
移動の制御状態が安定しているかを返す | |
int | RunCtrl::getLengthToGrid (const VXV::Grid &grid, const CoordinateCtrl *crd=VXV::GL) |
int | RunCtrl::getLengthToBody (const VXV::Grid &grid, const CoordinateCtrl *crd=VXV::GL) |
指定位置と推定自己位置との距離を返す | |
int | RunCtrl::getLengthToLine (const VXV::Position &line, const CoordinateCtrl *crd=VXV::GL) |
指定直線に垂直な直線と推定自己位置との距離を返す | |
VXV::Direction | RunCtrl::getAngleToDirection (const VXV::Direction &t, const CoordinateCtrl *crd=VXV::GL) |
指定角度との差を返す | |
int | RunCtrl::getStraightVelDiff (int mm_vel=0) |
指定並進速度との差を返す | |
VXV::Direction | RunCtrl::getRotateVelDiff (const VXV::Direction &t=VXV::Direction()) |
指定回転速度との差を返す |
bool RunCtrl::isStable | ( | void | ) | [virtual, inherited] |
移動の制御状態が安定しているかを返す
直線追従であれば、直線上を走行しているとき、停止コマンドであれば、停止しているときに true が返される。現在実行中のコマンドの制御目標を達成しているかどうかを返す
true | 安定 | |
false | 安定にむけて制御中 |
RunCtrl run; run.connect(argc, argv); // 目的の方向への回転速度がゼロ近くになったら、次の移動コマンドを発行 run.rotateToDirection(deg(90)); while (!run.isStable()) { VXV::Delay(100); } run.followLine(VXV::Position(0, 0, deg(90)));
Implements RunInterface.
Reimplemented in mRunCtrl.
Definition at line 10 of file judgeCtrl.cpp.
int RunCtrl::getLengthToGrid | ( | const VXV::Grid & | grid, | |
const CoordinateCtrl * | crd = VXV::GL | |||
) | [virtual, inherited] |
指定位置と推定自己位置との距離を返す | 推定自己位置と、指定座標系の点との距離を返す |
距離
grid | [i] 指定位置 | |
crd | [i] 座標系 |
RunCtrl run; run.connect(argc, argv); // 移動しながら、座標 (1000, 1000) との距離を表示し続ける VXV::Grid grid(1000, 1000); run.followLine(VXV::Position(0, 0, deg(0))); while (1) { printf("length: %d\n", run.getLengthToGrid(grid)); VXV::Delay(1000); }
Implements RunInterface.
Definition at line 19 of file judgeCtrl.cpp.
References RunCtrl::getRunPosition(), VXV::Grid::x, and VXV::Grid::y.
Referenced by RunCtrl::getLengthToBody().
int RunCtrl::getLengthToBody | ( | const VXV::Grid & | grid, | |
const CoordinateCtrl * | crd = VXV::GL | |||
) | [virtual, inherited] |
指定位置と推定自己位置との距離を返す
grid | [i] 指定位置 | |
crd | [i] 座標系 |
Implements RunInterface.
Definition at line 29 of file judgeCtrl.cpp.
References RunCtrl::getLengthToGrid().
int RunCtrl::getLengthToLine | ( | const VXV::Position & | line, | |
const CoordinateCtrl * | crd = VXV::GL | |||
) | [virtual, inherited] |
指定直線に垂直な直線と推定自己位置との距離を返す
返される値は、指定直線の向きの方に自己位置があれば距離が、指定直線の向きとは反対側に自己位置があれば、距離に負号を付けた値が返される
直線との距離
line | [i] 指定直線 | |
crd | [i] 座標系 |
RunCtrl run; run.connect(argc, argv); // 次の移動直線(1000, 0, deg(90))に近づいたらその直線への追従コマンドを発行 VXV::Position next_line(1000, 0, deg(90)); run.followLine(VXV::Position(0, 0, deg(0)); while (run.getLengthToLine(next_line) < -300) { VXV::Delay(100); } run.followLine(next_line);
Implements RunInterface.
Definition at line 35 of file judgeCtrl.cpp.
References RunCtrl::getRunPosition(), VXV::Grid::x, VXV::Grid::y, and VXV::Position::zt.
Referenced by VXV::followLinesUpdate().
VXV::Direction RunCtrl::getAngleToDirection | ( | const VXV::Direction & | t, | |
const CoordinateCtrl * | crd = VXV::GL | |||
) | [virtual, inherited] |
指定角度との差を返す
座標系で指定された角度と推定自己位置の角度との差を返す
角度差
t | [i] 指定角度 | |
crd | [i] 座標系 |
Implements RunInterface.
Definition at line 47 of file judgeCtrl.cpp.
References RunCtrl::getRunPosition(), and VXV::Position::zt.
int RunCtrl::getStraightVelDiff | ( | int | mm_vel = 0 |
) | [virtual, inherited] |
指定並進速度との差を返す
指定した速度と現在の移動速度との差を返す
速度差
mm_vel | [i] 指定並進速度 [mm/sec] |
Implements RunInterface.
Definition at line 54 of file judgeCtrl.cpp.
References RunCtrl::getStraightVel().
VXV::Direction RunCtrl::getRotateVelDiff | ( | const VXV::Direction & | t = VXV::Direction() |
) | [virtual, inherited] |
指定回転速度との差を返す
指定回転速度と現在の回転速度との差を返す
回転速度差
t | [i] 指定回転速度 [direction/sec] |
Implements RunInterface.
Definition at line 59 of file judgeCtrl.cpp.
References RunCtrl::getRotateVel().