ゲーム内のロボットは、この記事でBHuman行動の崩壊後に立ち上がる最近の記録の実行時にこのプロセスの動作を分析することであると、落下(自身がボールをブロックするように投げ、多くの場合、ゴールキーパー)を回避することは困難です。
HandleGameState.h
ロボットが落下状態決意であるので、ゲーム内の様々な要因によって落ちることがグローバル崩壊後、後者の停止アクションの実行、実装getUpに向けます。これは、内部の外観に次のように、theFallDownStateモジュールと呼ばれ、ここで見ることができます。
if(theFallDownState.state == FallDownState::fallen)
goto getUp;
FallDownState
FallDownStateは、構造は、6つの状態四の方向についてロボットの内部に落下、転倒状態です。
[画像のダンプはチェーンが失敗し、発信局は、(https://ws1.sinaimg.cn/large/006wR0dcly1g1rveodb7ej32la1makjl.jpg)(IMG-A6xhIeJS-1574386448505)直接アップロードダウン画像を保存することが推奨され、セキュリティチェーン機構を有していてもよいです]
したがって、上記のif
文はそれのための非常に明確な条件です。中には、HandleGameState.h
秋にはgetUp状態に転送されます後にここで見ることができます。呼び出すgetUpで見ることができGetUp()
、このオプションを内部に見下ろします。
GetUp.h
GetUpではこのオプションは、直接見ることができgoto standUp
立ち上がりで、この状態を実行するために立って行動し、そしてアクションが終了した場合には、ロボットの状態を判断し、機械の放浪者に立ち上がってきましたgoto stand
。
等身大パネルでは、この状態では、裁判官と一緒にその対応するアクションでアクションの実装とロボットの状態、彼らは上の転送に落ちた場合state(standUp)
。
この図は、彼らはいくつかの表現を使用する場所を指し中に一度ずつと、以下を参照してください。
Activity.h
Bhuman/BHumanCodeRelease-coderelease2017/Src/Modules/BehaviorControl/BehaviorControl/Options/Output/Activity.h
示すように物事を見て、そこにこのBehaviorStatusことをするには、どのような機能ですか?
BehaviorStatus.h
Bhuman/BHumanCodeRelease-coderelease2017/Src/Representations/BehaviorControl/BehaviorStatus.h
。
この文書では、動作の現在の状態に関するデータを格納する構造体を宣言します。
ENUM(Activity,
{,
unknown,
blocking, // 阻塞
duel, // 决斗
dribble, // 运球
dribbleDuel,//
searchForBall, // 找球
searchForBallAtRecentPosition, // 在附近的位置找球
goToBall, // 走向球
takingPosition, // 取得位置
kick, // 踢球
guardGoal, // 保护目标
catchBall, // 控制住球
standAndWait, // 站住 等待
passing, // 带球?
gettingUp, // 站起来
turn,
walkNextToKeeper,
kickoff, // 开球
waving,
});
[OK]を、今戻っGetUp.hに、私たちは見続けます。
HeadControlMode.h
見ることができるに来て、この文書は、上記の呼び出しlookForwardにおけるいくつかの制御モードの頭でした。
路径:Bhuman/BHumanCodeRelease-coderelease2017/Src/Modules/BehaviorControl/BehaviorControl/Options/HeadControl
LookForward.h
/** Pun intended. Looks straight ahead in a way that the Nao V4's cameras cover the area in front of its feet as well as everything else in front of the robot.*/
option(LookForward, (float)(0.38f) tilt, (float)(0.f) pan)
{
/** Simply sets the necessary angles */
initial_state(lookForward)
{
action
{
// 参数:pan 角度 速度
SetHeadPanTilt(pan, tilt, 150_deg);
}
}
}
さて、ここでは基本的に最後の文の呼び出しでGetUpEngine()
、この中にインタフェースBhuman/BHumanCodeRelease-coderelease2017/Src/Modules/MotionControl/GetUpEngine
ミニスタンド運動エンジンは、いくつかのアクションを実行するために各関節を制御している次の、ナオが立ち上がることができます。
ここGetUp.hはそれを終えました。
要約します
実際には、この記事では、私はちょうど出て再び記録し、方法をステップバイステップで行きたいです。
ちょうどプロセスを学ぶために始めCABSL挙動制御では、私はこのように感じたり、コードの理解に貢献しています。
OK、ベッドに行きます。