/*!
  \page spur_convert_page Spur コマンドとの対応表

  Spur コマンドと RunCtrl コマンドとの対応表

  - 注意事項
    - Spur_line_GL_cm のように、cm 系コマンドとの対応については省略
    - RunCtrl run; という定義がされているとする
      - 走行制御オブジェクトの定義例
      \code
      int main(int argc, char *argv[]) {
        RunCtrl run;
        if (run.connect(argc, argv) < 0) {
          printf("RunCtrl::connect: %s\n", run.what());
	  exit(1);
        }
        ...
      } \endcode
    .
    - 座標系 local が run に対して定義されているとする
      - ローカル座標系の定義例
      \code
      CoordinateCtrl local;
      local.setOwnCrdToCrd(run); \endcode
    .
    - ある位置が position という変数で定義されているとする。
      - 位置オブジェクトの定義例
      \code
      Position position(x, y, deg(degree)); \endcode
    .
    - ある点が grid という変数で定義されているとする
      - 点オブジェクトの定義例
      \code
      Grid grid(x, y); \endcode
  
  \n
  - \b 移動コマンド
  <table>
  <tr><td>Spur_line_GL</td><td>\code run.followLine(position); \endcode</td></tr>
  <tr><td>Spur_line_LC</td><td>\code run.followLine(position, &local); \endcode</td></tr>
  <tr><td>Spur_line_FS</td><td>\code run.followLine(position, &run.FS); \endcode</td></tr>

  <tr><td>Spur_arc_c_GL</td><td>\code run.followCircle(grid, r); \endcode</td></tr>
  <tr><td>Spur_arc_c_LC</td><td>\code run.followCircle(grid, r, &local); \endcode</td></tr>
  <tr><td>Spur_arc_c_FS</td><td>\code run.followCircle(grid, r, &run.FS); \endcode</td></tr>

  <tr><td>Spur_arg_t_GL</td><td>\code run.followCircleOnTangent(grid, r); \endcode</td></tr>
  <tr><td>Spur_arg_t_LC</td><td>\code run.followCircleOnTangent(grid, r, &local); \endcode</td></tr>
  <tr><td>Spur_arg_t_FS</td><td>\code run.followCircleOnTangent(grid, r, &run.FS); \endcode</td></tr>

  <tr><td>Spur_stop_GL</td><td>\code run.stopToLine(position); \endcode</td></tr>
  <tr><td>Spur_stop_LC</td><td>\code run.stopToLine(position, &local); \endcode</td></tr>
  <tr><td>Spur_stop_FS</td><td>\code run.stopToLine(position, &run.FS); \endcode</td></tr>

  <tr><td>Spur_stop_q</td><td>\code run.stop(); \endcode</td></tr>

  <tr><td>Spur_spin_GL</td><td>\code run.rotateToDirection(deg(degree)); \endcode</td></tr>
  <tr><td>Spur_spin_GL</td><td>\code run.rotateToDirection(deg(degree), &local); \endcode</td></tr>
  <tr><td>Spur_spin_GL</td><td>\code run.rotateToDirection(deg(degree), &run.FS); \endcode</td></tr>
  <tr><td>指定角度だけ回転</td><td>\code run.rotateAngle(deg(degree)); \endcode</td></tr>
  <tr><td>指定角速度で回転し続ける</td><td>\code run.spin(deg(degree)); \endcode</td></tr>
  <tr><td>直前の移動コマンドを再発行</td><td>\code run.lastMoveCommand(); \endcode</td></tr>
  <tr><td>直前の移動コマンドを再発行</td><td>\code run.lastMoveCommand(&local); \endcode</td></tr>
  <tr><td>直前の移動コマンドを再発行</td><td>\code run.lastMoveCommand(&run.FS); \endcode</td></tr>
  </table>

  \n
  - \b 座標系操作コマンド
  <table>
  <tr><td>Spur_adjust_pos_GL</td><td>\code run.adjustRunPosition(position); \endcode</td></tr>
  <tr><td>Spur_adjust_pos_LC</td><td>\code run.adjustRunPosition(position, &local); \endcode</td></tr>
  <tr><td>Spur_adjust_pos_FS</td><td>\code run.adjustRunPosition(position, &run.FS); \endcode</td></tr>

  <tr><td>Spur_set_LC_on_GL</td><td>\code local.setOwnCrdToCrd(&run, position); \endcode</td></tr>
  <tr><td>Spur_set_LC_on_LC</td><td>\code local.updateParentCrdOffset(position); \endcode</td></tr>
  <tr><td>Spur_set_GL_on_GL</td><td>\code run.updateParentCrdOffset(position); \endcode</td></tr>

  <tr><td>Spur_set_pos_GL</td><td>\code run.adjustCrdPosition(position); \endcode</td></tr>
  <tr><td>Spur_set_pos_LC</td><td>\code local.adjustCrdPosition(position); \endcode</td></tr>
  </table>

  \n
  - \b パラメータ操作コマンド
  <table>
  <tr><td>Spur_set_vel</td><td>\code run.setStraightRefVel(mm_sec); \endcode</td></tr>
  <tr><td>Spur_set_accel</td><td>\code run.setStraightRefAcc(mm_acc); \endcode</td></tr>
  <tr><td>Spur_set_ang_vel</td><td>\code run.setRotateRefVel(deg(rotate_vel)); \endcode</td></tr>
  <tr><td>Spur_set_ang_accel</td><td>\code run.setRotateRefAcc(deg(rotate_acc)); \endcode</td></tr>

  <tr><td>Spur_serve</td><td>\code run.servoCtrl(true); \endcode</td></tr>
  <tr><td>Spur_serve_free</td><td>\code run.servoCtrl(false); \endcode</td></tr>

  <tr><td>Spur_get_pos_GL</td><td>\code position = run.getRunPosition(); \endcode</td></tr>
  <tr><td>Spur_get_pos_LC</td><td>\code position = run.getRunPosition(&local); \endcode</td></tr>

  <tr><td>Spur_get_vel</td><td>\code int mm_vel = run.getStraightVel(); \endcode</td></tr>
  <tr><td>回転速度を取得</td><td>\code Direction rotate_vel = run.getRotateVel(void); \endcode</td></tr>

  <tr><td>経路追従時の曲率を設定</td><td>\code run.setCurveRadius(r); \endcode</td></tr>
  <tr><td>経路追従時の曲率を取得</td><td>\code int r = run.getCurveRadius(); \endcode</td></tr>
  <tr><td>パラメータ設定の退避</td><td>\code run.push_runState(); \endcode</td></tr>
  <tr><td>パラメータ設定の復帰</td><td>\code run.pop_runState(); \endcode</td></tr>
  </table>

  \n
  - \b 判定コマンド
  <table>		      
  <tr><td>Spur_near_pos_GL</td><td>\code int l = run.getLengthToGrid(grid); \endcode</td></tr>
  <tr><td>Spur_near_pos_LC</td><td>\code int l = run.getLengthToGrid(grid, &local); \endcode</td></tr>

  <tr><td>Spur_near_ang_GL</td><td>\code Direction ang = run.getAngleToDirection(deg(degree)); \endcode</td></tr>
  <tr><td>Spur_near_ang_LC</td><td>\code Direction ang = run.getAngleToDirection(deg(degree), &local); \endcode</td></tr>

  <tr><td>Spur_near_vel</td><td>\code int mm_vel_diff = run.getStraightVelDiff(mm_vel); \endcode</td></tr>
  <tr><td>Spur_near_ang_vel</td><td>\code Direction ang_vel_diff = run.getRotateVelDiff(deg(degree)); \endcode</td></tr>

  <tr><td>Spur_over_line_GL</td><td>\code int l = run.getLengthToLine(position); \endcode</td></tr>
  <tr><td>Spur_over_line_LC</td><td>\code int l = run.getLengthToLine(position, &local); \endcode</td></tr>

  <tr><td>制御目標を達成しているか</td><td>\code bool stable = run.isStable(); \endcode</td></tr>
  </table>
*/
