Functions | |
virtual void | RunCtrl::stop (void) |
移動停止 | |
virtual void | RunCtrl::followLine (const VXV::Position &position, const CoordinateCtrl *crd=VXV::GL) |
直線追従 | |
virtual void | RunCtrl::followCircle (const VXV::Grid ¢er, int radius, const CoordinateCtrl *crd=VXV::GL) |
円弧追従 | |
void | RunCtrl::followCircleOnTangent (const VXV::Position &position, int radius, const CoordinateCtrl *crd=VXV::GL) |
接線指定の円弧に追従 | |
virtual void | RunCtrl::stopToLine (const VXV::Position &position, const CoordinateCtrl *crd=VXV::GL) |
停止直線の指定 | |
virtual void | RunCtrl::rotateToDirection (const VXV::Direction &direction, const CoordinateCtrl *crd=VXV::GL) |
指定角度方向に回転 | |
virtual void | RunCtrl::rotateAngle (const VXV::Direction &direction) |
指定角度だけ回転 | |
virtual void | RunCtrl::spin (const VXV::Direction &velocity) |
連続転回 | |
virtual void | RunCtrl::lastMoveCommand (const CoordinateCtrl *crd=VXV::GL) |
過去の移動コマンドを再発行 |
void RunCtrl::stop | ( | void | ) | [virtual, inherited] |
移動停止
標準加速度で速度 0 まで減速する
コマンド発行後、しばらくして停止
使用例
RunCtrl run; run.connect(argc, argv); // 3秒だけ前進して、停止 run.followLine(VXV::Position(0, 0, deg(0)), &run.FS); VXV::Delay(5000); run.stop();
Implements RunInterface.
Reimplemented in mRunCtrl.
Definition at line 35 of file moveCtrl.cpp.
void RunCtrl::followLine | ( | const VXV::Position & | position, | |
const CoordinateCtrl * | crd = VXV::GL | |||
) | [virtual, inherited] |
直線追従
座標系の指定された点を通る指定角度の直線へ追従走行する
指定直線経路への追従
position | [i] 追従直線を指定 | |
crd | [i] 座標系 |
RunCtrl run; run.connect(argc, argv); // 座標系の点 (0, 0) を通り、45度の向きの直線経路に対して追従走行 run.followLine(VXV::Position(0, 0, deg(45)));
Implements RunInterface.
Reimplemented in mRunCtrl.
Definition at line 44 of file moveCtrl.cpp.
References RunCtrl::to_div16(), VXV::Grid::x, VXV::Grid::y, and VXV::Position::zt.
Referenced by VXV::followLinesUpdate().
void RunCtrl::followCircle | ( | const VXV::Grid & | center, | |
int | radius, | |||
const CoordinateCtrl * | crd = VXV::GL | |||
) | [virtual, inherited] |
円弧追従
座標系の指定された点を中心とする半径の円へ追従走行する
指定円弧経路への追従
center | [i] 追従円弧の中心位置 | |
radius | [i] 追従円の半径 [mm] (radius > 0 で CW, radius < 0 で CCW) | |
crd | [i] 座標系 |
RunCtrl run; run.connect(argc, argv); // 中心が (500, 500) で半径 500 [mm] の円の軌跡に時計回りで追従走行 run.followLine(VXV::Grid(500, 500), 500);
Implements RunInterface.
Reimplemented in mRunCtrl.
Definition at line 60 of file moveCtrl.cpp.
References RunCtrl::setCurveRadius(), VXV::Grid::x, and VXV::Grid::y.
Referenced by RunCtrl::followCircleOnTangent().
void RunCtrl::followCircleOnTangent | ( | const VXV::Position & | position, | |
int | radius, | |||
const CoordinateCtrl * | crd = VXV::GL | |||
) | [virtual, inherited] |
接線指定の円弧に追従
指定直線に接する半径 r の円弧に追従
指定円弧経路への追従
position | [i] 接点を指定 | |
radius | [i] 追従円の半径 (radius > 0 で CW, radius < 0 で CCW) | |
crd | [i] 座標系 |
RunCtrl run; run.connect(argc, argv); // 座標系 (1000, 0) の点に接する円の軌跡に時計回りで追従走行 // (結果的に、円の中心は (1000, -500) となる) run.followCircleOnTangent(VXV::Position(1000, 0, deg(0)), 1000);
Implements RunInterface.
Reimplemented in mRunCtrl.
Definition at line 83 of file moveCtrl.cpp.
References RunCtrl::followCircle(), VXV::Grid::x, VXV::Grid::y, and VXV::Position::zt.
void RunCtrl::stopToLine | ( | const VXV::Position & | position, | |
const CoordinateCtrl * | crd = VXV::GL | |||
) | [virtual, inherited] |
停止直線の指定
指定直線に垂直な直線上で停止
指定直線に垂直な直線上で停止
position | [i] 指定直線を指定 | |
crd | [i] 座標系 |
RunCtrl run; run.connect(argc, argv); // 座標系 (1000, 1000) で向き 45度に垂直な直線上で停止 run.stopToLine(Posiiton(1000, 1000, deg(45)));
Implements RunInterface.
Reimplemented in mRunCtrl.
Definition at line 95 of file moveCtrl.cpp.
References RunCtrl::to_div16(), VXV::Grid::x, VXV::Grid::y, and VXV::Position::zt.
void RunCtrl::rotateToDirection | ( | const VXV::Direction & | direction, | |
const CoordinateCtrl * | crd = VXV::GL | |||
) | [virtual, inherited] |
指定角度方向に回転
座標系で指定された角度の方を向くように転回する
座標系の指定角度へ追従
direction | [i] 追従角度 | |
crd | [i] 座標系 |
RunCtrl run; run.connect(argc, argv); // 145度の方向を向く run.rotateToDirection(deg(145));
Implements RunInterface.
Reimplemented in mRunCtrl.
Definition at line 110 of file moveCtrl.cpp.
References RunCtrl::to_div16(), and VXV::Position::zt.
void RunCtrl::rotateAngle | ( | const VXV::Direction & | direction | ) | [virtual, inherited] |
指定角度だけ回転
指定された角度だけ相対的に転回する
指定角度だけ転回する
direction | [i] 回転角度 |
RunCtrl run; run.connect(argc, argv); // 時計回りに1転回する run.rotateAngle(deg(-360));
Implements RunInterface.
Reimplemented in mRunCtrl.
Definition at line 125 of file moveCtrl.cpp.
References VXV::Direction::getInnerRadian().
void RunCtrl::spin | ( | const VXV::Direction & | velocity | ) | [virtual, inherited] |
連続転回
指定速度で回転し続ける
指定速度で転回し続ける
velocity | [i] 転回速度 |
Implements RunInterface.
Reimplemented in mRunCtrl.
Definition at line 137 of file moveCtrl.cpp.
References RunCtrl::to_div16().
void RunCtrl::lastMoveCommand | ( | const CoordinateCtrl * | crd = VXV::GL |
) | [virtual, inherited] |
過去の移動コマンドを再発行
直前に発行した移動コマンドを再度発行する。発行の際には、過去にコマンドを発行したときの座標系が今も存在するのを確認するために、そのコマンドを発行したときの座標系を指定する必要がある。
crd | [i] 座標系 |
// 移動コマンドの発行 run.followLine(VXV::Position(0, 0, deg(0))); VXV::Delay(1000); // 障害物があった場合など、直前に発行した移動コマンドを待避してから停止 run.push_runState(); run.stop(); VXV::Delay(1000); // 移動コマンドの再発行 run.pop_runState(); run.lastMoveCommand(&run);
Implements RunInterface.
Reimplemented in mRunCtrl.
Definition at line 148 of file moveCtrl.cpp.