Chapter 1296. 액션 노드 설계와 구현 (Action Node Design and Implementation) Chapter 1296. 액션 노드 설계와 구현 (Action Node Design and Implementation) 1296.1액션 노드의 개념과 역할 1296.2액션 노드와 실행 노드의 관계 1296.3액션 노드의 리프 노드 특성 1296.4액션 노드의 반환 상태 규칙 1296.5액션 노드의 분류 체계 1296.6동기 액션 노드 (SyncActionNode)의 정의 1296.7동기 액션 노드의 즉시 반환 특성 1296.8동기 액션 노드의 실행 모델 1296.9동기 액션 노드의 tick() 메서드 구현 1296.10동기 액션 노드의 RUNNING 미반환 원칙 1296.11비동기 액션 노드 (StatefulActionNode)의 정의 1296.12비동기 액션 노드의 RUNNING 반환 특성 1296.13비동기 액션 노드의 다중 Tick 실행 모델 1296.14비동기 액션 노드의 onStart() 콜백 1296.15비동기 액션 노드의 onRunning() 콜백 1296.16비동기 액션 노드의 onHalted() 콜백 1296.17비동기 액션 노드의 상태 기계적 생명주기 1296.18ThreadedAction 노드의 정의 1296.19ThreadedAction의 별도 스레드 실행 1296.20ThreadedAction의 tick() 블로킹 실행 1296.21ThreadedAction의 스레드 관리 메커니즘 1296.22ThreadedAction의 Halt 시 스레드 종료 1296.23ThreadedAction의 스레드 안전성 고려 사항 1296.24CoroActionNode (코루틴 액션 노드)의 정의 1296.25CoroActionNode의 협력적 다중 작업 1296.26CoroActionNode의 yield 기반 Running 반환 1296.27액션 노드의 설계 원칙 1296.28단일 책임 원칙의 적용 1296.29최소 부작용 원칙의 적용 1296.30재사용 가능한 액션 노드 설계 1296.31파라미터화된 액션 노드 설계 1296.32액션 노드의 블랙보드 입출력 포트 설계 1296.33입력 포트 (InputPort)의 정의와 활용 1296.34출력 포트 (OutputPort)의 정의와 활용 1296.35양방향 포트 (BidirectionalPort)의 정의와 활용 1296.36포트의 기본값 설정 1296.37포트의 필수/선택 설정 1296.38포트를 통한 데이터 읽기 (getInput) 1296.39포트를 통한 데이터 쓰기 (setOutput) 1296.40ROS2 액션 클라이언트 기반 액션 노드 구현 1296.41ROS2 액션 골 (Goal) 전송 액션 노드 1296.42ROS2 액션 피드백 처리 액션 노드 1296.43ROS2 액션 결과 처리 액션 노드 1296.44ROS2 액션 취소 처리 액션 노드 1296.45BtActionNode 기반 클래스의 활용 1296.46ROS2 서비스 호출 기반 액션 노드 구현 1296.47ROS2 서비스 요청 생성 액션 노드 1296.48ROS2 서비스 응답 처리 액션 노드 1296.49BtServiceNode 기반 클래스의 활용 1296.50ROS2 토픽 발행 기반 액션 노드 구현 1296.51ROS2 토픽 구독 기반 액션 노드 구현 1296.52ROS2 파라미터 설정 액션 노드 구현 1296.53내비게이션 관련 액션 노드 설계 1296.54NavigateToPose 액션 노드 구현 1296.55NavigateThroughPoses 액션 노드 구현 1296.56FollowPath 액션 노드 구현 1296.57ComputePathToPose 액션 노드 구현 1296.58Spin 액션 노드 구현 1296.59Wait 액션 노드 구현 1296.60BackUp 액션 노드 구현 1296.61매니퓰레이션 관련 액션 노드 설계 1296.62MoveToPose 액션 노드 구현 1296.63MoveToJointPositions 액션 노드 구현 1296.64GripperCommand 액션 노드 구현 1296.65드론 비행 관련 액션 노드 설계 1296.66Takeoff 액션 노드 구현 1296.67Land 액션 노드 구현 1296.68FlyToWaypoint 액션 노드 구현 1296.69Hover 액션 노드 구현 1296.70ReturnToHome 액션 노드 구현 1296.71센서 처리 관련 액션 노드 설계 1296.72CaptureImage 액션 노드 구현 1296.73ProcessPointCloud 액션 노드 구현 1296.74DetectObject 액션 노드 구현 1296.75통신 관련 액션 노드 설계 1296.76SendMessage 액션 노드 구현 1296.77PublishStatus 액션 노드 구현 1296.78로깅 관련 액션 노드 설계 1296.79LogMessage 액션 노드 구현 1296.80RecordData 액션 노드 구현 1296.81액션 노드의 오류 처리 전략 1296.82액션 노드 내부 예외 처리 1296.83액션 노드의 타임아웃 처리 1296.84액션 노드의 재시도 로직 구현 1296.85액션 노드의 실패 원인 보고 1296.86액션 노드의 Halt 구현 패턴 1296.87동기 액션 노드의 Halt 처리 1296.88비동기 액션 노드의 Halt 처리 1296.89ThreadedAction의 Halt 시 스레드 종료 처리 1296.90ROS2 액션 취소를 통한 Halt 구현 1296.91액션 노드의 단위 테스트 1296.92SyncActionNode의 테스트 패턴 1296.93StatefulActionNode의 테스트 패턴 1296.94모의 ROS2 인터페이스를 활용한 테스트 1296.95액션 노드의 디버깅 기법 1296.96액션 노드 상태 변화 추적 1296.97액션 노드 포트 데이터 검사 1296.98액션 노드 설계의 모범 사례 1296.99액션 노드 설계의 안티패턴