나오 로봇 -CABSL

여기 CABSL의 기본 코드와 대한 요약 정보는 최근에 읽은.

행동 언어 CABSL (FSM)의 코드는 게임에서 로봇의 동작을 제어 할 수 있습니다. 섹션이라는 선택한 작업 B-인간의 행동 제어 시스템을 수행하는 단계를 포함한다.

? 다음 사실은 공식 문서에서 6.1, 큰 볼 분명하다.

6-1

실행 순서

로봇 경쟁 정책 파일이 실행되는 Modules/BehaviorControl/BehaviorControl/Options역할은 스트라이커 데모와 함께 제공 Bhuman 소스 코드를 포함, 아래에.

Soccer.h 루트 디렉토리 Bhuman 코드 실행이 코드가 나오 Soccer.h 부팅 후 실행됩니다.

노트의 주요 트리거는 실제 축구 액션을 명시, 여기가 호출되고 Modules/BehaviorControl/BehaviorControl/Options/GameControl/HandlePenaltyState.h, 해당 국가는 다음과 같습니다 (수직)을 일어 서서 NAO 가슴 프레스, 두 번 처벌 모드 (범) 입력, 세 (notPenalized) 비 징벌 시작 스트라이커 코드입니다.

Soccer.h

HandlePenaltyState.h

HandlePenaltyState.h말, 우리는 볼 수 있습니다 :

  /** Play soccer! */
  state(playing)
  {
    action
    {
      PlayingState();
    }
  }

후속으로 PlayingState.h:

PlayingState.h

위의 최종 호출 명시된 바와 같이 음, 결국은 온 Striker()스트라이커 데모 :

Demo.h

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 쇼 동작을 수행하거나 불완전 예기치 않게.


게시 73 개 원래 기사 · 원 찬양 90 ·은 40000 +를 볼

추천

출처blog.csdn.net/Hanoi_ahoj/article/details/89053840