移動コマンド


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 &center, 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)
 過去の移動コマンドを再発行

Function Documentation

void RunCtrl::stop ( void   )  [virtual, inherited]

移動停止

標準加速度で速度 0 まで減速する

move_stop.png

コマンド発行後、しばらくして停止

使用例

    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]

直線追従

座標系の指定された点を通る指定角度の直線へ追従走行する

move_followLine.png

指定直線経路への追従

Parameters:
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]

円弧追従

座標系の指定された点を中心とする半径の円へ追従走行する

move_followCircle.png

指定円弧経路への追従

Parameters:
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 の円弧に追従

move_followCircleOnTangent.png

指定円弧経路への追従

Parameters:
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]

停止直線の指定

指定直線に垂直な直線上で停止

move_stopToLine.png

指定直線に垂直な直線上で停止

Parameters:
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]

指定角度方向に回転

座標系で指定された角度の方を向くように転回する

move_rotateToDirection.png

座標系の指定角度へ追従

Parameters:
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]

指定角度だけ回転

指定された角度だけ相対的に転回する

move_rotateAngle.png

指定角度だけ転回する

Parameters:
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]

連続転回

指定速度で回転し続ける

move_spin.png

指定速度で転回し続ける

Parameters:
velocity [i] 転回速度
使用例
    RunCtrl run;
    run.connect(argc, argv);

    // 30[deg/sec]で時計回りに回転し続ける
    run.spin(deg(-30));

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]

過去の移動コマンドを再発行

直前に発行した移動コマンドを再度発行する。発行の際には、過去にコマンドを発行したときの座標系が今も存在するのを確認するために、そのコマンドを発行したときの座標系を指定する必要がある。

Parameters:
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.


Generated on Mon Apr 13 22:52:07 2009 by  doxygen 1.5.7.1