Chapter 1264. ROS2 액션 아키텍처와 프로토콜 (ROS2 Action Architecture and Protocol) Chapter 1264. ROS2 액션 아키텍처와 프로토콜 (ROS2 Action Architecture and Protocol) 1264.1ROS2 액션의 전체 아키텍처 개요 1264.2액션 통신의 계층적 구조 1264.3액션 인터페이스 정의(.action 파일) 구조 1264.4.action 파일의 세 영역: 목표, 결과, 피드백 1264.5.action 파일의 문법과 작성 규칙 1264.6기본 데이터 타입과 복합 데이터 타입 사용 1264.7중첩 메시지 타입의 활용 1264.8배열 타입과 가변 길이 시퀀스의 사용 1264.9상수 정의와 기본값 설정 1264.10표준 액션 인터페이스 사례 분석 1264.11rosidl 코드 생성기의 역할과 동작 1264.12.action 파일에서 생성되는 소스 코드 구조 1264.13C++ 헤더 파일 생성 과정 1264.14Python 바인딩 생성 과정 1264.15생성된 Goal, Result, Feedback 메시지 타입 1264.16생성된 내부 서비스 타입: SendGoal 1264.17생성된 내부 서비스 타입: GetResult 1264.18생성된 내부 토픽 타입: FeedbackMessage 1264.19생성된 내부 토픽 타입: GoalStatusArray 1264.20액션 프로토콜의 전체 통신 흐름 1264.21목표 전달 프로토콜(Goal Protocol) 1264.22SendGoal 서비스의 요청 메시지 구조 1264.23SendGoal 서비스의 응답 메시지 구조 1264.24목표 UUID 생성과 관리 1264.25UUID v4 생성 알고리즘 1264.26목표 UUID의 고유성 보장 1264.27목표 수락/거부 판정 프로토콜 1264.28수락된 목표의 타임스탬프 기록 1264.29피드백 프로토콜(Feedback Protocol) 1264.30FeedbackMessage의 구조와 필드 1264.31피드백 발행 주기 설정 1264.32피드백 토픽의 QoS 정책 1264.33피드백 메시지에서의 목표 UUID 포함 1264.34다중 목표 환경에서의 피드백 식별 1264.35결과 프로토콜(Result Protocol) 1264.36GetResult 서비스의 요청 메시지 구조 1264.37GetResult 서비스의 응답 메시지 구조 1264.38결과 대기와 비동기 수신 메커니즘 1264.39결과 캐싱과 유효 기간 관리 1264.40목표 상태 프로토콜(Goal Status Protocol) 1264.41GoalStatusArray 메시지 구조 1264.42GoalStatus 메시지의 상태 코드 정의 1264.43STATUS_UNKNOWN의 의미와 처리 1264.44STATUS_ACCEPTED의 의미와 전이 조건 1264.45STATUS_EXECUTING의 의미와 전이 조건 1264.46STATUS_CANCELING의 의미와 전이 조건 1264.47STATUS_SUCCEEDED의 의미와 전이 조건 1264.48STATUS_CANCELED의 의미와 전이 조건 1264.49STATUS_ABORTED의 의미와 전이 조건 1264.50목표 상태 전이 다이어그램 상세 분석 1264.51유효한 상태 전이 경로 1264.52비유효 상태 전이 시 예외 처리 1264.53취소 프로토콜(Cancel Protocol) 1264.54CancelGoal 서비스의 요청 메시지 구조 1264.55CancelGoal 서비스의 응답 메시지 구조 1264.56특정 목표 취소 요청 1264.57모든 목표 일괄 취소 요청 1264.58특정 시간 이전 목표 취소 요청 1264.59취소 응답의 상태 코드 1264.60ERROR_NONE: 취소 성공 1264.61ERROR_REJECTED: 취소 거부 1264.62ERROR_UNKNOWN_GOAL_ID: 알 수 없는 목표 1264.63ERROR_GOAL_TERMINATED: 이미 종료된 목표 1264.64취소 요청에 대한 서버 측 처리 전략 1264.65액션 내부 통신 토폴로지 1264.66액션이 사용하는 내부 서비스 목록 1264.67액션이 사용하는 내부 토픽 목록 1264.68내부 서비스/토픽의 네임스페이스 규칙 1264.69_action 접미사 규칙 1264.70내부 통신 채널의 자동 생성과 관리 1264.71액션 서버의 아키텍처 상세 1264.72액션 서버의 내부 컴포넌트 구성 1264.73목표 핸들(GoalHandle)의 역할과 구조 1264.74목표 핸들의 생명주기 1264.75목표 핸들을 통한 상태 전이 API 1264.76액션 서버의 콜백 인터페이스 1264.77handle_goal 콜백의 역할과 시그니처 1264.78handle_cancel 콜백의 역할과 시그니처 1264.79handle_accepted 콜백의 역할과 시그니처 1264.80execute 콜백의 역할과 시그니처 1264.81액션 클라이언트의 아키텍처 상세 1264.82액션 클라이언트의 내부 컴포넌트 구성 1264.83ClientGoalHandle의 역할과 구조 1264.84목표 전송 옵션(SendGoalOptions) 1264.85goal_response_callback의 역할 1264.86feedback_callback의 역할 1264.87result_callback의 역할 1264.88액션 프로토콜과 DDS 매핑 1264.89DDS 토픽으로의 매핑 구조 1264.90DDS 서비스로의 매핑 구조 1264.91DDS QoS 프로파일과 액션 통신 1264.92액션 통신의 Reliability 설정 1264.93액션 통신의 Durability 설정 1264.94액션 통신의 History 설정 1264.95액션 통신의 Deadline 설정 1264.96액션 프로토콜의 네트워크 효율성 분석 1264.97액션 통신의 대역폭 소비 패턴 1264.98피드백 주기에 따른 네트워크 부하 분석 1264.99액션 프로토콜의 지연 시간 분석 1264.100목표 전달부터 결과 수신까지의 종단 지연 1264.101액션 프로토콜의 확장성 분석 1264.102동시 활성 목표 수에 따른 성능 변화 1264.103액션 프로토콜의 신뢰성 분석 1264.104네트워크 분할 상황에서의 프로토콜 동작 1264.105서버 장애 시 클라이언트의 프로토콜 동작 1264.106클라이언트 장애 시 서버의 프로토콜 동작 1264.107액션 프로토콜의 보안 고려사항 1264.108DDS Security를 활용한 액션 통신 보호 1264.109Zenoh 미들웨어에서의 액션 프로토콜 동작 1264.110rmw_zenoh를 통한 액션 통신 구현 1264.111Zenoh 환경에서의 액션 QoS 매핑 1264.112액션 프로토콜 버전 관리와 호환성 1264.113ROS2 배포판별 액션 프로토콜 차이 1264.114액션 아키텍처와 프로토콜 요약