여기 CABSL의 기본 코드와 대한 요약 정보는 최근에 읽은.
행동 언어 CABSL (FSM)의 코드는 게임에서 로봇의 동작을 제어 할 수 있습니다. 섹션이라는 선택한 작업 B-인간의 행동 제어 시스템을 수행하는 단계를 포함한다.
? 다음 사실은 공식 문서에서 6.1, 큰 볼 분명하다.
실행 순서
로봇 경쟁 정책 파일이 실행되는 Modules/BehaviorControl/BehaviorControl/Options
역할은 스트라이커 데모와 함께 제공 Bhuman 소스 코드를 포함, 아래에.
Soccer.h 루트 디렉토리 Bhuman 코드 실행이 코드가 나오 Soccer.h 부팅 후 실행됩니다.
노트의 주요 트리거는 실제 축구 액션을 명시, 여기가 호출되고 Modules/BehaviorControl/BehaviorControl/Options/GameControl/HandlePenaltyState.h
, 해당 국가는 다음과 같습니다 (수직)을 일어 서서 NAO 가슴 프레스, 두 번 처벌 모드 (범) 입력, 세 (notPenalized) 비 징벌 시작 스트라이커 코드입니다.
년 HandlePenaltyState.h
말, 우리는 볼 수 있습니다 :
/** Play soccer! */
state(playing)
{
action
{
PlayingState();
}
}
후속으로 PlayingState.h
:
위의 최종 호출 명시된 바와 같이 음, 결국은 온 Striker()
스트라이커 데모 :
CABSL
옵션 (옵션), 상태 (상태), 전환 (전환), 액션 (행동) : CABSL에서 다음과 같은 기본 요소를 사용하여. 옵션 옵션의 그룹에 의해 행위도 조성물에 배치. 하나의 시작 옵션은 다른 모든 옵션이 호출이있다, 그것은 루트 옵션 차트이다. 각 옵션은 기술이나 로봇의 머리의 움직임과 같은 특정 부분의 동작 설명?, 그것은 유한 상태 기계, 또는 같은 기본 기능을 결합한 제품입니다. 각 옵션은 intital_state로 시작합니다. 한 상태에서 다른 옵션을 호출하고, 예를 들어, 컨트롤의 동작을 수정하는 것이 어떤 C ++ 코드를 수행 할 수 있습니다 수행 할 수있는 작업은? 표현은 공급했다. 또한, 각 상태에서 다른 상태로의 변환에 (옵션) 결정을있다. 행동처럼, 변환은 C ++ 코드 실행할 수 있습니다. [번역] 6.1
선택권
common_transition
옵션은 작업 기계 아기로 이해 될 수있다.
각 옵션에 common_transition
관계없이 국가의 현재 구현이만큼 만나는 비 정지 작업, 가장 높은 우선 순위를 결정하는 글로벌 ** (이 옵션) ** 논리 common_transition
조건을, 그것은 지정된에, 고토을 이동합니다 또 다른 옵션을 선택합니다.
카메라가 확인되지 않을 때 다음 그림에서, 그는 sitDown을하고있다.
상태
상태는 입력 만 고토 수있는 상태입니다. 전환 (해서는 안)과 행동의 일반 상태가 있습니다.
액션은 액션의 일부는 특정 기능이거나 다른 곳으로 이동할 수 있습니다, 수행됩니다. 이 전이 상태는 고토 점프 때 상태를 판정하고있다.
initial_state
initial_state는 옵션을 입력 한 후 initial_state 동작의 자동 실행 상태에서 옵션으로 초기화된다.
action_done
action_done 동작 실행 상태가 완료 판정 action_done 수행 동작의 전환 후의 상태에서 다른 상태로 이동할 수 나타낸다.
action_aborted
action_aborted 쇼 동작을 수행하거나 불완전 예기치 않게.