Chapter 1283. SMACC2 프레임워크 아키텍처 (SMACC2 Framework Architecture) Chapter 1283. SMACC2 프레임워크 아키텍처 (SMACC2 Framework Architecture) 1283.1SMACC2의 개요와 설계 목적 1283.2SMACC2의 역사와 발전 배경 1283.3SMACC 1.0에서 SMACC2로의 주요 변경 사항 1283.4SMACC2의 ROS2 기반 아키텍처 개요 1283.5SMACC2의 설계 철학과 핵심 원칙 1283.6SMACC2의 모듈화 아키텍처 1283.7SMACC2의 소프트웨어 계층 구조 1283.8SMACC2 코어 라이브러리의 구조 1283.9SMACC2 상태 머신 코어 (StateMachine Core)의 역할 1283.10SMACC2 상태 기반 클래스 (SmaccState)의 구조 1283.11SMACC2 상태 머신 기반 클래스 (ISmaccStateMachine)의 구조 1283.12SMACC2 상태 리액터 (State Reactor)의 개념 1283.13SMACC2 이벤트 생성기 (Event Generator)의 개념 1283.14SMACC2의 이벤트 시스템 아키텍처 1283.15SMACC2 이벤트의 정의와 분류 1283.16SMACC2 이벤트의 생성 메커니즘 1283.17SMACC2 이벤트의 전달 메커니즘 1283.18SMACC2 이벤트의 소비 메커니즘 1283.19SMACC2의 전이 메커니즘 1283.20SMACC2 전이의 등록 방법 1283.21SMACC2 전이의 실행 흐름 1283.22SMACC2 조건부 전이의 구현 1283.23SMACC2의 클라이언트 (Client) 아키텍처 1283.24SMACC2 클라이언트의 개념과 역할 1283.25SMACC2 클라이언트와 ROS2 액션 클라이언트의 관계 1283.26SMACC2 클라이언트와 ROS2 토픽 구독의 관계 1283.27SMACC2 클라이언트와 ROS2 서비스 클라이언트의 관계 1283.28SMACC2 클라이언트의 생명주기 관리 1283.29SMACC2 클라이언트의 등록과 해제 1283.30SMACC2 기본 제공 클라이언트 목록 1283.31SMACC2 Nav2 클라이언트의 아키텍처 1283.32SMACC2 MoveIt2 클라이언트의 아키텍처 1283.33SMACC2 커스텀 클라이언트의 생성 방법 1283.34SMACC2의 클라이언트 행동 (Client Behavior) 아키텍처 1283.35SMACC2 클라이언트 행동의 개념과 역할 1283.36SMACC2 클라이언트 행동의 기반 클래스 1283.37SMACC2 클라이언트 행동의 생명주기 1283.38SMACC2 클라이언트 행동의 활성화와 비활성화 1283.39SMACC2 커스텀 클라이언트 행동의 생성 방법 1283.40SMACC2의 직교 상태 (Orthogonal) 아키텍처 1283.41SMACC2 직교 상태의 개념과 역할 1283.42SMACC2 직교 상태의 기반 클래스 1283.43SMACC2 직교 상태와 클라이언트의 매핑 1283.44SMACC2 직교 상태 간 독립 실행 메커니즘 1283.45SMACC2 직교 상태 간 동기화 메커니즘 1283.46SMACC2의 상태 리액터 아키텍처 1283.47SMACC2 상태 리액터의 기반 클래스 1283.48SMACC2 조건 상태 리액터 (Conditional State Reactor) 1283.49SMACC2 복합 이벤트 상태 리액터 1283.50SMACC2 커스텀 상태 리액터의 생성 방법 1283.51SMACC2의 이벤트 생성기 아키텍처 1283.52SMACC2 이벤트 생성기의 기반 클래스 1283.53SMACC2 토픽 기반 이벤트 생성기 1283.54SMACC2 타이머 기반 이벤트 생성기 1283.55SMACC2 센서 조건 기반 이벤트 생성기 1283.56SMACC2 커스텀 이벤트 생성기의 생성 방법 1283.57SMACC2의 상태 머신 실행 흐름 1283.58SMACC2 상태 머신의 초기화 과정 1283.59SMACC2 상태 진입 시퀀스 (onEntry) 1283.60SMACC2 상태 체류 시퀀스 (onRuntimeConfigure) 1283.61SMACC2 상태 퇴장 시퀀스 (onExit) 1283.62SMACC2 상태 전이 실행 시퀀스 1283.63SMACC2 상태 머신의 종료 과정 1283.64SMACC2의 내비게이션 통합 아키텍처 1283.65SMACC2와 Nav2 (Navigation2)의 통합 1283.66SMACC2 내비게이션 클라이언트의 구조 1283.67SMACC2 웨이포인트 내비게이터의 아키텍처 1283.68SMACC2의 매니퓰레이션 통합 아키텍처 1283.69SMACC2와 MoveIt2의 통합 1283.70SMACC2 매니퓰레이션 클라이언트의 구조 1283.71SMACC2의 인지 (Perception) 통합 아키텍처 1283.72SMACC2 인지 클라이언트의 구조 1283.73SMACC2의 패키지 구조 1283.74SMACC2 코어 패키지의 구성 1283.75SMACC2 클라이언트 패키지의 구성 1283.76SMACC2 상태 머신 애플리케이션 패키지의 구성 1283.77SMACC2 메시지/서비스/액션 패키지의 구성 1283.78SMACC2의 빌드 시스템과 의존성 관리 1283.79SMACC2의 colcon 빌드 설정 1283.80SMACC2의 CMakeLists.txt 구조 1283.81SMACC2의 package.xml 의존성 정의 1283.82SMACC2의 C++ 코드 구조 1283.83SMACC2의 헤더 파일 조직 구조 1283.84SMACC2의 소스 파일 조직 구조 1283.85SMACC2의 템플릿 메타프로그래밍 활용 1283.86SMACC2의 타입 추론 (Type Erasure) 패턴 1283.87SMACC2의 CRTP (Curiously Recurring Template Pattern) 활용 1283.88SMACC2의 정적 다형성 활용 1283.89SMACC2의 실행 환경 설정 1283.90SMACC2 런치 파일의 구조 1283.91SMACC2 런치 파일에서의 파라미터 설정 1283.92SMACC2 런치 파일에서의 노드 구성 1283.93SMACC2의 시각화 도구 아키텍처 1283.94SMACC2 RViz 패널의 구조 1283.95SMACC2 상태 머신 시각화 플러그인 1283.96SMACC2의 웹 기반 시각화 도구 1283.97SMACC2의 로깅과 디버깅 아키텍처 1283.98SMACC2 상태 전이 로깅 시스템 1283.99SMACC2 이벤트 로깅 시스템 1283.100SMACC2 성능 프로파일링 메커니즘 1283.101SMACC2의 내부 통신 아키텍처 1283.102SMACC2 내부 서비스 인터페이스 1283.103SMACC2 내부 토픽 인터페이스 1283.104SMACC2의 상태 머신 내성 (Introspection) 서비스 1283.105SMACC2의 확장 기법 1283.106SMACC2 커스텀 상태 기반 클래스 확장 1283.107SMACC2 커스텀 클라이언트 확장 1283.108SMACC2 커스텀 행동 확장 1283.109SMACC2 커스텀 이벤트 확장 1283.110SMACC2 커스텀 상태 리액터 확장 1283.111SMACC2의 테스트 아키텍처 1283.112SMACC2 단위 테스트의 구조 1283.113SMACC2 통합 테스트의 구조 1283.114SMACC2 시뮬레이션 기반 테스트의 구조 1283.115SMACC2와 다른 상태 머신 프레임워크의 아키텍처 비교 1283.116SMACC2와 FlexBE의 비교 1283.117SMACC2와 SMACH의 비교 1283.118SMACC2와 BehaviorTree.CPP의 비교 1283.119SMACC2의 성능 특성과 최적화 1283.120SMACC2 상태 전이 오버헤드 분석 1283.121SMACC2 이벤트 처리 지연 분석 1283.122SMACC2 메모리 사용 패턴 분석 1283.123SMACC2 아키텍처의 프로젝트 적용 사례 1283.124SMACC2를 활용한 이동 로봇 임무 아키텍처 1283.125SMACC2를 활용한 드론 임무 아키텍처 1283.126SMACC2를 활용한 매니퓰레이터 작업 아키텍처 1283.127SMACC2 아키텍처의 한계와 발전 방향