Chapter 1265. rclcpp_action 라이브러리 심화 (Advanced rclcpp_action Library) Chapter 1265. rclcpp_action 라이브러리 심화 (Advanced rclcpp_action Library) 1265.1rclcpp_action 라이브러리의 개요와 역할 1265.2rclcpp_action 패키지 구조와 헤더 파일 구성 1265.3rclcpp_action 네임스페이스 구조 1265.4rclcpp_action과 rclcpp의 관계 1265.5rclcpp_action의 의존성 분석 1265.6액션 서버 클래스 계층 구조 1265.7rclcpp_action::Server 템플릿 클래스 상세 1265.8Server 클래스의 템플릿 매개변수 1265.9Server 클래스의 생성자와 초기화 1265.10Server 클래스의 공개 인터페이스 1265.11Server 클래스의 내부 구현 구조 1265.12ServerBase 클래스의 역할과 구조 1265.13액션 클라이언트 클래스 계층 구조 1265.14rclcpp_action::Client 템플릿 클래스 상세 1265.15Client 클래스의 템플릿 매개변수 1265.16Client 클래스의 생성자와 초기화 1265.17Client 클래스의 공개 인터페이스 1265.18Client 클래스의 내부 구현 구조 1265.19ClientBase 클래스의 역할과 구조 1265.20create_server 팩토리 함수 상세 1265.21create_server의 매개변수 분석 1265.22create_server의 콜백 매개변수 상세 1265.23create_server의 옵션 매개변수 1265.24create_server의 반환 타입과 소유권 1265.25create_client 팩토리 함수 상세 1265.26create_client의 매개변수 분석 1265.27create_client의 반환 타입과 소유권 1265.28GoalResponse 열거형 상세 1265.29GoalResponse::REJECT의 의미와 사용 1265.30GoalResponse::ACCEPT_AND_EXECUTE의 의미와 사용 1265.31GoalResponse::ACCEPT_AND_DEFER의 의미와 사용 1265.32CancelResponse 열거형 상세 1265.33CancelResponse::REJECT의 의미와 사용 1265.34CancelResponse::ACCEPT의 의미와 사용 1265.35ServerGoalHandle 클래스 상세 1265.36ServerGoalHandle의 템플릿 구조 1265.37ServerGoalHandle::get_goal() 메서드 1265.38ServerGoalHandle::get_goal_id() 메서드 1265.39ServerGoalHandle::is_active() 메서드 1265.40ServerGoalHandle::is_canceling() 메서드 1265.41ServerGoalHandle::is_executing() 메서드 1265.42ServerGoalHandle::execute() 메서드 1265.43ServerGoalHandle::publish_feedback() 메서드 1265.44ServerGoalHandle::succeed() 메서드 1265.45ServerGoalHandle::canceled() 메서드 1265.46ServerGoalHandle::abort() 메서드 1265.47ServerGoalHandle의 스레드 안전성 1265.48ClientGoalHandle 클래스 상세 1265.49ClientGoalHandle의 템플릿 구조 1265.50ClientGoalHandle::get_goal_id() 메서드 1265.51ClientGoalHandle::get_goal_stamp() 메서드 1265.52ClientGoalHandle::get_status() 메서드 1265.53ClientGoalHandle의 유효성 검사 1265.54SendGoalOptions 구조체 상세 1265.55goal_response_callback 필드 분석 1265.56feedback_callback 필드 분석 1265.57result_callback 필드 분석 1265.58콜백 함수 시그니처와 반환 타입 1265.59콜백 함수에서의 예외 처리 1265.60Client::async_send_goal() 메서드 상세 1265.61async_send_goal의 반환 타입: SharedFuture 1265.62SharedFuture를 활용한 비동기 결과 대기 1265.63Client::async_get_result() 메서드 상세 1265.64Client::async_cancel_goal() 메서드 상세 1265.65Client::async_cancel_all_goals() 메서드 상세 1265.66Client::async_cancel_goals_before() 메서드 상세 1265.67Client::wait_for_action_server() 메서드 상세 1265.68Client::action_server_is_ready() 메서드 상세 1265.69rclcpp_action과 실행자(Executor)의 통합 1265.70SingleThreadedExecutor에서의 액션 처리 1265.71MultiThreadedExecutor에서의 액션 처리 1265.72콜백 그룹과 액션 콜백의 관계 1265.73MutuallyExclusive 콜백 그룹에서의 액션 동작 1265.74Reentrant 콜백 그룹에서의 액션 동작 1265.75콜백 그룹 설정에 따른 성능 영향 1265.76rclcpp_action의 스레드 안전성 분석 1265.77공유 자원 보호 메커니즘 1265.78뮤텍스와 락 패턴 분석 1265.79데드락 방지 전략 1265.80rclcpp_action의 메모리 관리 1265.81shared_ptr 기반 소유권 모델 1265.82weak_ptr 활용 패턴 1265.83순환 참조 방지 전략 1265.84rclcpp_action의 예외 처리 체계 1265.85rclcpp_action::exceptions 네임스페이스 1265.86UnknownGoalHandleError 예외 1265.87예외 안전 보장 수준 1265.88rclcpp_action의 로깅 통합 1265.89RCLCPP_ACTION 로거 사용 1265.90디버그 수준 로깅과 진단 1265.91rclcpp_action과 생명주기 노드의 통합 1265.92LifecycleNode에서의 액션 서버 생성 1265.93생명주기 상태 전이와 액션 서버 상태의 관계 1265.94rclcpp_action과 컴포넌트(Component)의 통합 1265.95컴포넌트 기반 액션 노드 구현 1265.96컴포넌트 컨테이너에서의 액션 로딩 1265.97rclcpp_action의 QoS 설정 인터페이스 1265.98액션 서버의 QoS 커스터마이징 1265.99액션 클라이언트의 QoS 커스터마이징 1265.100피드백 토픽 QoS 세부 설정 1265.101상태 토픽 QoS 세부 설정 1265.102rclcpp_action의 타이머 통합 1265.103피드백 발행 주기 타이머 구현 1265.104타임아웃 관리를 위한 타이머 활용 1265.105rclcpp_action 소스 코드 분석 방법 1265.106rclcpp_action 단위 테스트 구조 1265.107rclcpp_action 버전별 API 변경 사항 1265.108Humble에서의 rclcpp_action API 1265.109Iron에서의 rclcpp_action API 변경 1265.110Jazzy에서의 rclcpp_action API 변경 1265.111Rolling에서의 최신 rclcpp_action API 1265.112rclpy.action과의 API 비교 1265.113Python 액션 API와 C++ 액션 API의 차이점 1265.114언어 간 액션 상호운용성 1265.115rclcpp_action 라이브러리 심화 요약