クラス Sapie::CMotionController

動作制御クラス [詳細]

#include <MotionController.h>

Sapie::CMotionControllerに対する継承グラフ

Sapie::CControllerBase

Public メソッド

 CMotionController ()
 コンストラクタ
virtual ~CMotionController ()
 デストラクタ
long Move (const MoveCommandList &liCmd)
 移動指示
long Move (const MoveCommandList &liCmd, const TargetInfo &targetInfo)
 移動指示
long Move (const ContinuousCommandList &liContCmd)
 移動指示
long WalkDistance (long distance, float angle, long speed)
 距離指定歩行指示
long Turn (float direction, long speed)
 方向転換指示
long Stepping (long second)
 足踏み指示
long InitMotion ()
 基本姿勢(全サーボ角度=0)を取る。
long FinMotion ()
 終了姿勢(リラックスポジション)を取る。
long FinMotion (long lOption)
 終了姿勢(リラックスポジション)を取る。引数で動作オプションを指定できます。
long WalkSteps (long steps, float angle, long stride, long cycle, long firstStep)
 歩数指定歩行指示
long MoveNeck (float hAngle, float vAngle, long execTime)
 指定角度(水平方向、垂直方向)に首を向ける
long MoveNeckFree (float hAngle, float vAngle, long execTime)
 指定角度(水平方向、垂直方向)に首を向ける
long MoveArm (float leftSholderPitch, float leftSholderRoll, float leftElbow, float rightSholderPitch, float rightSholderRoll, float rightElbow, long execTime)
 指定角度に腕サーボ(6個)を動かす
long StartMotion (ServoInfoList &servoInfoList, long startInterval, long execTime)
 指定角度に全サーボを動かす。
long StartMotion (std::string sFilePath)
 モーションを開始する
long StartMotion (std::string sFilePath, long lOption)
 モーションを開始する
long StartMotion (long motionID)
 モーションIDに紐付くモーションを実行する
long StartScenario (std::string name)
 シナリオを開始する。
long StartScenario (std::string name, long lOption)
 シナリオを開始する。
long StartScenario (long scenarioID)
 シナリオIDに紐付くモーションを実行する
long LoadMotionFile (const std::string sFilePath, MotionFileInfo &info)
 モーションファイルをロードする。
long SaveMotionFile (const std::string sFilePath, const MotionFileInfo &info)
 モーションファイルをセーブする
long CancelMotion ()
 実行中の動作を中止する。
long CancelMotionQuick ()
 実行中の動作を即時中止する。
long SetDetectObstacle (bool b)
 障害物検知オプションをセットする。
long GetDetectObstacle (bool &b)
 障害物検知オプションを取得する
long SetDctObsDetail (long flg)
 障害物検知詳細オプションをセットする
long SetWalkDetail (long flg)
 歩行詳細オプションをセットする
long GetDctObsDetail (long &flg)
 障害物検知オプションを取得する
long GetWalkDetail (long &flg)
 歩行詳細オプションを取得する
long SetMovePermission (bool b)
 歩行許可モードを設定する
long GetMovePermission (bool &b)
 歩行許可モードを取得する
long Lock (const std::vector< long > liServo)
 サーボをロックする
long Unlock ()
 サーボのロックを解除する
long GetIdleTime (std::vector< IdleInfo > &liIdle)
 アイドル時間を取得する。
long GetPoseStatus (long &pose)
 現在の姿勢を取得する
long GetInvalidMode (ServoInvalidConfList &liInvalid)
 サーボ無効化状態取得
long GetStepLimit (bool &b, long &step, long &maxStep)
 制限歩数状態取得
long GetMovable (bool &b, long &result)
 移動状態取得

説明

動作制御クラス

関数

long Sapie::CMotionController::Move ( const MoveCommandList liCmd  ) 

移動指示

引数:
[in] liCmd 移動コマンドリスト。このリストに格納された移動コマンドを順に実行する。現在は最大2要素までしか指定しないこと。
戻り値:
要求識別番号。異常時は0。

long Sapie::CMotionController::Move ( const MoveCommandList liCmd,
const TargetInfo targetInfo 
)

移動指示

引数:
[in] liCmd 移動コマンドリスト。このリストに格納された移動コマンドを順に実行する。現在は最大2要素までしか指定しないこと。 2要素を指定する場合、設定可能なパターンは、直進・直進、旋回・直進、直進・旋回の3パターンのみとする。
[in] targetInfo 目標物情報指定。
戻り値:
要求識別番号。異常時は0。
覚え書き:
歩行時に目標物の方向を見ながら歩行する。目標物の指定は、パルロの初期姿勢のカメラ位置を基点として指定すること。 移動コマンドを2要素指定した場合でも目標物は1つしか指定できない。
バージョン:
3.0以降

long Sapie::CMotionController::Move ( const ContinuousCommandList &  liContCmd  ) 

移動指示

引数:
[in] liContCmd 連続実行移動コマンドリスト。指定された移動コマンドを連続的に実行する。コマンドの途中に初期姿勢に戻らない。 moveCommandListには、最大2要素までしか指定しないこと。
戻り値:
要求識別番号。異常時は0。
バージョン:
3.0以降

long Sapie::CMotionController::WalkDistance ( long  distance,
float  angle,
long  speed 
)

距離指定歩行指示

引数:
[in] distance 歩行距離を指定(単位:mm)
[in] angle 旋回角度。歩行開始から歩行終了までどれだけ旋回するかの角度を指定する。単位deg。
[in] speed 歩行速度を指定(未使用) 現在は、必ず WALKSPD_NORMAL を指定すること。
戻り値:
要求識別番号。異常時は0。

long Sapie::CMotionController::Turn ( float  direction,
long  speed 
)

方向転換指示

引数:
[in] direction 方向を指定(-180~180)
[in] speed 方向転換速度を指定(未使用)。 現在は、必ず TURNSPD_NORMAL を指定すること。
戻り値:
要求識別番号。異常時は0。

long Sapie::CMotionController::Stepping ( long  second  ) 

足踏み指示

引数:
[in] second 秒数を指定(1~30)
戻り値:
要求識別番号。異常時は0。
バージョン:
3.2以降

long Sapie::CMotionController::InitMotion (  ) 

基本姿勢(全サーボ角度=0)を取る。

戻り値:
要求識別番号。異常時は0。

long Sapie::CMotionController::FinMotion (  ) 

終了姿勢(リラックスポジション)を取る。

戻り値:
要求識別番号。異常時は0。
バージョン:
2.0β以降

long Sapie::CMotionController::FinMotion ( long  lOption  ) 

終了姿勢(リラックスポジション)を取る。引数で動作オプションを指定できます。

引数:
[in] lOption 動作オプション(未使用)。 現在は、必ず FIN_OPTION_DETECT_PRESS_OFF を指定すること。
戻り値:
要求識別番号。異常時は0。
バージョン:
2.0β以降

long Sapie::CMotionController::WalkSteps ( long  steps,
float  angle,
long  stride,
long  cycle,
long  firstStep 
)

歩数指定歩行指示

引数:
[in] steps 歩行歩数
[in] angle 旋回角度。歩行開始から歩行終了までどれだけ旋回するかの角度を指定する。単位deg。
[in] stride 歩幅を指定(未使用)
[in] cycle 歩行周期を指定(未使用)
[in] firstStep 初回遊脚(未使用)
  • WALK_FIRST_STEP_DEFAULT 初回遊脚の選択をデフォルトにする
  • WALK_FIRST_STEP_LEFT 初回遊脚の選択を左にする
  • WALK_FIRST_STEP_RIGHT 初回遊脚の選択を右にする
戻り値:
要求識別番号。異常時は0。

long Sapie::CMotionController::MoveNeck ( float  hAngle,
float  vAngle,
long  execTime 
)

指定角度(水平方向、垂直方向)に首を向ける

引数:
[in] hAngle 水平方向の角度を指定。単位deg。
[in] vAngle 垂直方向の角度を指定。単位deg。
[in] execTime 動作にかける実行時間。単位ミリ秒。
戻り値:
要求識別番号。異常時は0。

long Sapie::CMotionController::MoveNeckFree ( float  hAngle,
float  vAngle,
long  execTime 
)

指定角度(水平方向、垂直方向)に首を向ける

引数:
[in] hAngle 水平方向の角度を指定。単位deg。
[in] vAngle 垂直方向の角度を指定。単位deg。
[in] execTime 動作にかける実行時間。単位ミリ秒。
戻り値:
要求識別番号。異常時は0。

long Sapie::CMotionController::MoveArm ( float  leftSholderPitch,
float  leftSholderRoll,
float  leftElbow,
float  rightSholderPitch,
float  rightSholderRoll,
float  rightElbow,
long  execTime 
)

指定角度に腕サーボ(6個)を動かす

引数:
[in] leftSholderPitch 左肩ピッチ角度。単位deg。
[in] leftSholderRoll 左肩ロール角度。単位deg。
[in] leftElbow 左肘角度。単位deg。
[in] rightSholderPitch 右肩ピッチ角度。単位deg。
[in] rightSholderRoll 右肩ロール角度。単位deg。
[in] rightElbow 右肘角度。単位deg。
[in] execTime 実行時間。単位ミリ秒。
戻り値:
要求識別番号。異常時は0。

long Sapie::CMotionController::StartMotion ( ServoInfoList servoInfoList,
long  startInterval,
long  execTime 
)

指定角度に全サーボを動かす。

引数:
[in] servoInfoList サーボの角度を格納した構造体のリスト
[in] startInterval 動作開始までのインターバル(ミリ秒)
[in] execTime 動作にかける実行時間(ミリ秒)
戻り値:
要求識別番号。異常時は0。

long Sapie::CMotionController::StartMotion ( std::string  sFilePath  ) 

モーションを開始する

引数:
[in] sFilePath モーションファイルのフルパス。
戻り値:
要求識別番号。異常時は0。

long Sapie::CMotionController::StartMotion ( std::string  sFilePath,
long  lOption 
)

モーションを開始する

引数:
[in] sFilePath モーションファイルのフルパス。
[in] lOption オプション。SUDDEN_MOVE_GUARD_OFFの指定が可能。
戻り値:
要求識別番号。異常時は0。

long Sapie::CMotionController::StartMotion ( long  motionID  ) 

モーションIDに紐付くモーションを実行する

引数:
[in] motionID 登録されているモーションID
戻り値:
要求識別番号。異常時は0。

long Sapie::CMotionController::StartScenario ( std::string  name  ) 

シナリオを開始する。

引数:
[in] name シナリオファイルのフルパス。
戻り値:
要求識別番号。異常時は0。

long Sapie::CMotionController::StartScenario ( std::string  name,
long  lOption 
)

シナリオを開始する。

引数:
[in] name シナリオファイルのフルパス。
[in] lOption オプション。SUDDEN_MOVE_GUARD_OFFの指定が可能。
戻り値:
要求識別番号。異常時は0。

long Sapie::CMotionController::StartScenario ( long  scenarioID  ) 

シナリオIDに紐付くモーションを実行する

引数:
[in] scenarioID 登録されているシナリオファイルのID
戻り値:
要求識別番号。異常時は0。

long Sapie::CMotionController::LoadMotionFile ( const std::string  sFilePath,
MotionFileInfo info 
)

モーションファイルをロードする。

引数:
[in] sFilePath モーションファイルのフルパス
[out] info 読み込んだモーションファイルのデータ
戻り値:
異常時は0。正常時は0以外。

long Sapie::CMotionController::SaveMotionFile ( const std::string  sFilePath,
const MotionFileInfo info 
)

モーションファイルをセーブする

引数:
[in] sFilePath モーションファイルのフルパス
[in] info 保存するモーションのデータ。
戻り値:
異常時は0。正常時は0以外。

long Sapie::CMotionController::CancelMotion (  ) 

実行中の動作を中止する。

歩行や方向転換においては、安全な姿勢で停止する。停止するまでの 時間は動作による。例えば、歩行では本メソッドをコールしてから 最大3歩程度歩行する。

停止が完了した時点で、停止された動作に対する OnComplete イベントが 発生する。

戻り値:
異常時は0。正常時は0以外。

long Sapie::CMotionController::CancelMotionQuick (  ) 

実行中の動作を即時中止する。

歩行や方向転換は対象外。通常の中止に準じる。

停止が完了した時点で、停止された動作に対する OnComplete イベントが 発生する。

モーション実行は即時中断を

戻り値:
異常時は0。正常時は0以外。
バージョン:
3.0以降

long Sapie::CMotionController::SetDetectObstacle ( bool  b  ) 

障害物検知オプションをセットする。

引数:
[in] b 障害物検知を行うかどうか。trueの場合、障害物検知を行う。
戻り値:
異常時は0。正常時は0以外。

long Sapie::CMotionController::GetDetectObstacle ( bool &  b  ) 

障害物検知オプションを取得する

引数:
[out] b 障害物検知を行うかどうか。trueの場合、障害物検知を行う。
戻り値:
異常時は0。正常時は0以外。

long Sapie::CMotionController::SetDctObsDetail ( long  flg  ) 

障害物検知詳細オプションをセットする

引数:
[in] flg 障害物検知詳細オプション。以下の値をビットフラグで指定する。
  • DETECT_OBS_BEFORE_WALK 歩行前障害物検知を有効にする。
  • DETECT_OBS_DURING_WALK 歩行中障害物検知を有効にする。
  • DETECT_OBS_ALL すべての障害物検知を有効にする。
戻り値:
異常時は0。正常時は0以外。

long Sapie::CMotionController::SetWalkDetail ( long  flg  ) 

歩行詳細オプションをセットする

引数:
[in] flg 歩行詳細オプション。以下の値をビットフラグで指定する。
  • DETECT_OBS_BEFORE_WALK 歩行前障害物検知を有効にする。
  • DETECT_OBS_DURING_WALK 歩行中障害物検知を有効にする。
  • DETECT_OBS_ALL すべての障害物検知を有効にする。
  • SELF_CRASH 歩行破綻する。
戻り値:
異常時は0。正常時は0以外。

long Sapie::CMotionController::GetDctObsDetail ( long &  flg  ) 

障害物検知オプションを取得する

引数:
[out] flg 障害物検知詳細オプション。
  • DETECT_OBS_BEFORE_WALK 歩行前障害物検知を有効にする。
  • DETECT_OBS_DURING_WALK 歩行中障害物検知を有効にする。
戻り値:
異常時は0。正常時は0以外。

long Sapie::CMotionController::GetWalkDetail ( long &  flg  ) 

歩行詳細オプションを取得する

引数:
[out] flg 障害物検知詳細オプション。
  • DETECT_OBS_BEFORE_WALK 歩行前障害物検知を有効にする。
  • DETECT_OBS_DURING_WALK 歩行中障害物検知を有効にする。
  • SELF_CRASH 歩行破綻する。
戻り値:
異常時は0。正常時は0以外。

long Sapie::CMotionController::SetMovePermission ( bool  b  ) 

歩行許可モードを設定する

引数:
[in] b 歩行許可モードを設定する。trueの場合は歩行が許可される。
戻り値:
異常時は0。正常時は0以外。

long Sapie::CMotionController::GetMovePermission ( bool &  b  ) 

歩行許可モードを取得する

引数:
[in] b 歩行許可モードを設定する。trueの場合は歩行が許可される。
戻り値:
異常時は0。正常時は0以外。

long Sapie::CMotionController::Lock ( const std::vector< long >  liServo  ) 

サーボをロックする

引数:
[in] liServo ロック対象のサーボIDリスト
戻り値:
要求識別番号。異常時は0。

long Sapie::CMotionController::Unlock (  ) 

サーボのロックを解除する

戻り値:
異常時は0。正常時は0以外。

long Sapie::CMotionController::GetIdleTime ( std::vector< IdleInfo > &  liIdle  ) 

アイドル時間を取得する。

引数:
[out] liIdle アイドル情報リスト
戻り値:
異常時は0。正常時は0以外。

long Sapie::CMotionController::GetPoseStatus ( long &  pose  ) 

現在の姿勢を取得する

引数:
[out] pose 現在の姿勢
  • POSE_STAT_UNKNOWN 不明な姿勢
  • POSE_STAT_INIT 初期姿勢
  • POSE_STAT_SQUAT しゃがんだ姿勢(リラックスポジション)
  • POSE_STAT_SIT それ以外の座った姿勢
戻り値:
異常時は0。正常時は0以外。

long Sapie::CMotionController::GetInvalidMode ( ServoInvalidConfList liInvalid  ) 

サーボ無効化状態取得

無効化されているサーボの一覧を取得する。無効化されているサーボは、トルクONが禁止されている。

引数:
[out] liInvalid サーボ無効化情報リスト
戻り値:
異常時は0。正常時は0以外。

long Sapie::CMotionController::GetStepLimit ( bool &  b,
long &  step,
long &  maxStep 
)

制限歩数状態取得

一日の制限歩数を超えていないか歩数をチェックする。

引数:
[out] b 状態(true:制限歩数以内 false:制限歩数以上)
[out] step 歩行許可歩数
[out] maxStep 一日の歩行可能歩数
戻り値:
異常時は0。正常時は0以外。
バージョン:
3.0以降

long Sapie::CMotionController::GetMovable ( bool &  b,
long &  result 
)

移動状態取得

歩行許可モード、制限歩数、アクチュエーター無効化、アクチュエーターロック の状態から移動可能かを判断する。

引数:
[out] b 状態(true:移動可能 false:移動不可能)
[out] result 0x00000000 : 正常 0x00000001 : 歩行許可モード 0x00000002 : 制限歩数 0x00000004 : アクチュエーター無効化 0x00000008 : アクチュエーターロック
戻り値:
異常時は0。正常時は0以外。
バージョン:
3.0以降


このクラスの説明は次のファイルから生成されました:

SAPIに対してFri Aug 2 21:58:33 2013に生成されました。  doxygen 1.5.5