Functions | |
virtual VXV::Position3D | RunCtrl::getLocalPosition (void) |
モジュール内座標系における推定自己位置を返す | |
VXV::Position | RunCtrl::getRunPosition (const CoordinateCtrl *crd=VXV::GL) |
推定自己位置を返す | |
void | RunCtrl::adjustRunPosition (const VXV::Position &position, const CoordinateCtrl *crd=VXV::GL) |
推定自己位置の更新 | |
void | RunCtrl::coordinateUpdateDetect (bool on) |
座標系変更の影響を設定 |
VXV::Position3D RunCtrl::getLocalPosition | ( | void | ) | [virtual, inherited] |
モジュール内座標系における推定自己位置を返す
ロボットの推定自己位置を返す。ここで返される値は、座標系の設定に依存しない
走行モジュールが管理しているロボット位置
Implements RunInterface.
Reimplemented in mRunCtrl.
Definition at line 10 of file runCoordinate.cpp.
References VXV::convertWithAngle(), TicksCtrlInterface::getModuleTicks(), RunCtrl::local_offset, runCtrl_t::msec, VXV::Direction::rad(), runCtrl_t::sec, and RunCtrl::tbl.
Referenced by RunCtrl::getRunPosition().
VXV::Position RunCtrl::getRunPosition | ( | const CoordinateCtrl * | crd = VXV::GL |
) | [virtual, inherited] |
推定自己位置を返す
指定座標系からみたロボット位置を返す
crd | [i] 座標系 |
指定座標系におけるロボット位置
仕様例
#include <runCtrl.h> #include <typePrint.h> int main(int argc, argv) { RunCtrl run; run.connect(argc, argv); std::cout << run.getRunPosition() << std::endl; ...
Implements RunInterface.
Definition at line 26 of file runCoordinate.cpp.
References RunCtrl::getLocalPosition().
Referenced by RunCtrl::adjustRunPosition(), RunCtrl::getAngleToDirection(), RunCtrl::getLengthToGrid(), and RunCtrl::getLengthToLine().
void RunCtrl::adjustRunPosition | ( | const VXV::Position & | position, | |
const CoordinateCtrl * | crd = VXV::GL | |||
) | [virtual, inherited] |
推定自己位置の更新
ロボット位置を指定座標系の指定位置にあるように変更する
position | [i] 修正後の位置 | |
crd | [i] 座標系 |
ロボットの管理位置を修正
Implements RunInterface.
Definition at line 31 of file runCoordinate.cpp.
References RunCtrl::getRunPosition(), and RunCtrl::local_offset.
void RunCtrl::coordinateUpdateDetect | ( | bool | on | ) | [virtual, inherited] |
座標系変更の影響を設定
座標系の変更が、移動中のコマンドに影響を与えるかどうかを設定する。
on | [i] 座標系の変更が走行中の経路に影響を与える場合 true |
run.followLine(VXV::Position(0, 0, deg(0))); VXV::Delay(1000); // ロボット位置を (0, 0, 90[deg]) という風に再設定する run.adjustRunPosition(VXV::Position(0, 0, deg(90))); // 以前の評価が run.coordinateUpdateDetect(false) であれば、 // ロボットの移動経路は変更されない // 以前の評価が run.coordinateUpdateDetect(true) であれば、 // ロボットの移動経路は新しい座標系の (0, 0, deg(0)) の直線に // 追従するように更新される
設定による走行経路の違い
Implements RunInterface.
Definition at line 45 of file runCoordinate.cpp.