ここCABSLのメインコードと集計情報が最近読ん。
ゲームでロボットの動作を制御するための行動の言語CABSL(FSM)のコード。セクションと呼ばれる選択されたアクションのB-ヒト行動制御システムを実行します。
?以下の事実は、また、公式文書では6.1より大きい見ることが明らかです。
実行順序
ロボット競技ポリシーファイルが実行されているModules/BehaviorControl/BehaviorControl/Options
役割、下Bhumanのソースコードは、ストライカーのデモが付属していますが含まれています。
Soccer.hルートディレクトリBhumanのコード実行、コードがナオSoccer.h起動後に実行されます。
ノートの主なトリガーは、実際のサッカーのアクションを述べる、ここではそれがコールされModules/BehaviorControl/BehaviorControl/Options/GameControl/HandlePenaltyState.h
、対応する状態は以下のとおりです(直立)に立つNAOチェストプレス、二回罰モード(ペナルティ)を入力し、3は(notPenalized)非懲罰的、開始しますストライカーコード。
ではHandlePenaltyState.h
最後に、我々は見ることができます:
/** Play soccer! */
state(playing)
{
action
{
PlayingState();
}
}
へのフォローアップPlayingState.h
:
上述のようにまあ、最終的には、最終的に呼び出してきたStriker()
ストライカーデモ:
CABSL
オプション(オプション)、ステート(状態)、遷移(変換)、アクション(行動):CABSLでは、以下の基本的な要素を使用して。オプションオプションのグループによる作用は、図組成物中に配置されています。単一起動オプションは、他のすべてのオプションが呼び出されるあり、それはrootオプションチャートです。各オプションは、このようなスキルやロボットの頭部の動きなどの特定の部分の動作、説明?、それ有限状態機械である、またはそれは、このような基本的な機能を兼ね備えています。各オプションは、そのintital_stateで始まります。一方の状態では、実行可能なアクションは、別のオプションを呼び出し、例えば、コントロールの動作を変更する、ことを任意のC ++コードを実行することができますか?表現が供給されます。また、各状態内の別の状態への変換に(オプションで)判定があります。アクションと同様に、変換は、C ++コードを実行することができます。[翻訳] 6.1
オプション
common_transition
オプションは、アクション・マシンの赤ちゃんとして理解することができます。
各オプションにはcommon_transition
関係なく、状態の現在の実装では、限り会う場所のノンストップオペレーション、最も優先度の高い、決定するグローバル**(このオプション)**ロジックcommon_transition
条件を、それが指定さに、後藤をジャンプします別のオプション。
次の図では、カメラがOKでないとき、彼はsitDownてきました。
状態
状態が状態であり、それだけで入力するように後藤ができます。通常のトランジションの状態(してはならない)とアクションがあります。
アクションは、アクションのいくつかは、それが特定の関数であるか、またはどこか他の場所にジャンプすることができ、実行されます。この遷移状態では、後藤ジャンプの際の条件を決定しました。
初期状態
INITIAL_STATEは、オプションを入力した後INITIAL_STATE行動の自動実行中の状態のオプションに初期化されます。
action_done
action_doneアクションの実行状態が完了決意のaction_doneは、動作の遷移後の状態で別の状態にジャンプすることができ示します。
action_aborted
action_abortedショーは動作を行うか、不完全に予期せず終了しました。