1261.37 각 통신 패러다임의 적합한 사용 시나리오

1. 서론

ROS2의 세 가지 통신 패러다임인 토픽(Topic), 서비스(Service), 액션(Action)은 각각 상이한 통신 특성을 보유하며, 로봇 시스템의 다양한 기능적 요구에 대응한다. 통신 패러다임의 선택은 시스템의 응답성, 신뢰성, 확장성에 직접적인 영향을 미치므로, 각 패러다임이 최적의 성능을 발휘하는 구체적인 사용 시나리오를 명확히 이해하는 것이 필수적이다. 본 절에서는 로봇 행동 제어 시스템에서 발생하는 주요 통신 시나리오를 유형별로 분류하고, 각 시나리오에 적합한 통신 패러다임을 분석한다.

2. 토픽 통신의 적합한 사용 시나리오

2.1 센서 데이터의 연속적 스트리밍

토픽 통신이 가장 적합한 대표적 시나리오는 센서 데이터의 연속적 발행이다. 관성 측정 장치(Inertial Measurement Unit, IMU)는 가속도와 각속도 데이터를 수백 Hz의 주기로 생성하며, LiDAR 센서는 수만 개의 포인트로 구성된 포인트 클라우드(point cloud)를 10~20 Hz 주기로 발행한다. 카메라 센서는 영상 프레임을 30~60 Hz 주기로 스트리밍한다. 이러한 센서 데이터는 수신자가 존재하든 존재하지 않든 일정한 주기로 지속적으로 생성되며, 개별 메시지에 대한 수신 확인이 필요하지 않다.

센서 데이터 스트리밍에서 토픽이 적합한 이유는 다음과 같다. 첫째, 발행-구독 모델은 하나의 센서 데이터를 복수의 소비자(consumer)가 동시에 수신할 수 있는 일대다(one-to-many) 통신을 자연스럽게 지원한다. 경로 계획 노드, 장애물 탐지 노드, 지도 작성 노드가 동일한 LiDAR 토픽을 각자 구독하여 독립적으로 처리할 수 있다. 둘째, 센서 데이터는 시간에 따라 갱신되므로, 간헐적인 메시지 손실이 발생하더라도 후속 메시지에 의하여 보상된다. 이는 QoS 정책에서 BEST_EFFORT 신뢰성 설정이 유효함을 의미한다.

2.2 로봇 상태의 실시간 발행

로봇의 관절 상태(sensor_msgs/msg/JointState), 변환 정보(tf2_msgs/msg/TFMessage), 배터리 잔량, 진단 정보 등은 토픽을 통하여 주기적으로 발행된다. 이러한 상태 정보는 로봇 시스템 내의 다수 노드가 참조하여야 하며, 특정 요청 없이도 지속적으로 갱신되어야 한다.

ROS2의 robot_state_publisher 노드는 관절 상태 토픽을 구독하여 로봇의 전체 운동학적 변환을 계산하고 TF 토픽으로 발행한다. 이 과정에서 상태 정보의 소비자는 발행자의 존재를 인지할 필요가 없으며, 발행자 역시 구독자의 수를 파악할 필요가 없다. 이러한 느슨한 결합(loose coupling) 구조는 토픽의 발행-구독 모델이 제공하는 핵심적 장점이다.

2.3 제어 명령의 주기적 전송

이동 로봇의 속도 명령(geometry_msgs/msg/Twist)은 원격 조종(teleoperation) 노드 또는 자율 주행 모듈에서 토픽을 통하여 전송된다. 속도 명령은 일정 주기로 반복 전송되며, 특정 명령에 대한 응답이나 확인이 필요하지 않다. 또한 명령이 일시적으로 중단된 경우 로봇의 안전을 위하여 기본 정지(default stop) 행위가 적용되도록 타임아웃 메커니즘이 구현된다. 이처럼 실시간성이 중시되고 명령의 소실이 후속 명령에 의하여 자동 보정되는 시나리오에서 토픽은 최적의 선택이다.

2.4 이벤트 알림과 상태 변화 통보

특정 이벤트의 발생을 불특정 다수의 수신자에게 통보하는 시나리오에서도 토픽이 적합하다. 예를 들어, 장애물 탐지 이벤트, 배터리 경고, 비상 정지 신호 등은 토픽을 통하여 발행되며, 관심 있는 모든 노드가 이를 구독하여 각자의 방식으로 대응할 수 있다. 이러한 이벤트성 메시지는 발행 빈도가 불규칙적일 수 있으나, 발행-구독 모델의 비동기적 특성이 이를 자연스럽게 수용한다.

3. 서비스 통신의 적합한 사용 시나리오

3.1 파라미터 조회 및 설정

로봇 시스템의 구성 파라미터를 조회하거나 변경하는 작업은 서비스의 전형적인 사용 사례이다. 제어기의 이득(gain) 값 조회, 센서의 해상도 변경, 필터 계수의 설정 등은 요청을 전송하고 그 결과를 확인하는 일회성 상호작용으로 구성된다. 이러한 작업은 수행 시간이 극히 짧으며, 요청에 대한 명확한 응답(성공 또는 실패)이 반드시 필요하다.

3.2 시스템 상태 질의

로봇의 현재 상태를 특정 시점에 질의하는 시나리오에서 서비스가 적합하다. 현재 지도 정보의 요청, 특정 좌표의 점유 여부 확인, 노드의 활성화 상태 확인 등은 요청-응답 패턴에 자연스럽게 부합한다. 이러한 질의는 주기적으로 반복되는 것이 아니라 필요한 시점에 단발적으로 수행되며, 요청과 응답 사이의 대응 관계가 명확하여야 한다.

3.3 트리거형 연산 요청

특정 연산의 일회적 실행을 요청하는 시나리오에서 서비스가 활용된다. 센서 캘리브레이션 수행, 지도 저장, 경로 재계산 트리거, 장애물 지도 초기화 등이 이에 해당한다. 이러한 연산은 요청에 의하여 촉발되고, 연산 결과가 응답으로 반환되며, 수행 시간이 상대적으로 짧다(일반적으로 수 밀리초에서 수백 밀리초 이내).

3.4 상태 전이 명령

로봇의 운영 모드를 전환하는 명령은 서비스를 통하여 전달되는 것이 적합하다. ROS2의 생명주기(Lifecycle) 노드에서 제공하는 상태 전이 서비스(change_state)가 대표적인 사례이다. configure, activate, deactivate, shutdown 등의 상태 전이 요청은 명확한 성공/실패 응답을 수반하며, 전이가 완료되었음을 확인한 후 후속 처리를 진행하여야 한다.

3.5 좌표 변환 및 수학적 연산

특정 좌표계 간의 변환 계산, 역기구학(inverse kinematics) 해의 산출, 경로 위의 특정 지점에서의 곡률 계산 등 수학적 연산 결과를 단회 요청하는 경우에 서비스가 적합하다. 이러한 연산은 입력 데이터에 대한 결정론적(deterministic) 출력을 반환하며, 연산 과정에서의 중간 상태 보고나 취소 기능이 불필요하다.

4. 액션 통신의 적합한 사용 시나리오

4.1 자율 내비게이션

이동 로봇의 자율 내비게이션은 액션 통신의 가장 대표적인 적용 사례이다. Nav2의 NavigateToPose 액션은 목표 위치를 액션 서버에 전달하고, 로봇이 해당 위치에 도달하는 전 과정을 관리한다. 내비게이션 작업은 수초에서 수분에 이르는 불확정적 수행 시간을 갖는다. 작업 수행 중 로봇의 현재 위치, 경로 진행률, 추정 잔여 시간 등의 피드백이 주기적으로 필요하다. 또한 장애물의 출현, 사용자의 개입, 우선순위가 높은 작업의 발생 등에 의하여 현재 내비게이션 작업의 취소가 요구될 수 있다. 이러한 요구사항은 토픽이나 서비스만으로는 충족시킬 수 없으며, 액션의 복합 통신 구조가 필수적이다.

4.2 매니퓰레이션 작업

로봇 팔(manipulator)의 물체 파지(grasping) 및 배치(placing) 작업은 액션을 통하여 제어된다. MoveIt2의 MoveGroup 액션은 목표 관절 위치 또는 말단 장치(end-effector)의 목표 자세를 입력으로 받아 경로 계획, 충돌 검사, 궤적 실행의 전 과정을 수행한다. 매니퓰레이션 작업은 경로 계획의 성공 여부, 현재 관절 위치, 실행 진행률 등의 중간 상태 정보가 중요하며, 충돌 위험이 감지된 경우 즉각적인 작업 중단이 가능하여야 한다.

4.3 순찰 및 순회 임무

보안 로봇이나 순찰 로봇이 다수의 순찰 지점(waypoint)을 순회하는 임무는 액션 통신에 적합한 시나리오이다. Nav2의 NavigateThroughPoses 또는 FollowWaypoints 액션은 복수의 목표 지점을 순차적으로 방문하는 장시간 임무를 관리한다. 피드백을 통하여 현재 방문 중인 지점의 인덱스, 잔여 지점 수, 전체 진행률 등의 정보를 제공할 수 있으며, 임무 도중 새로운 순찰 지점의 추가나 임무 취소가 가능하여야 한다.

4.4 도킹 및 충전 절차

이동 로봇이 충전 스테이션에 자동으로 접근하여 도킹(docking)하는 절차는 다단계로 구성된 장시간 작업이다. 충전 스테이션의 탐색, 정밀 접근, 물리적 결합, 충전 시작 확인 등의 단계를 순차적으로 수행하여야 하며, 각 단계의 진행 상황을 모니터링할 수 있어야 한다. 접근 과정에서 정렬 오차가 허용 범위를 초과하거나 장애물이 감지될 경우 작업을 안전하게 중단하여야 한다. 이러한 요구사항은 액션 통신의 피드백 및 취소 메커니즘과 정확히 부합한다.

4.5 탐사 및 지도 작성

미지의 환경을 자율적으로 탐사하며 지도를 작성하는 작업은 수행 시간이 수십 분에서 수 시간에 이를 수 있다. 탐사 진행률, 현재 탐사된 영역의 비율, 잔여 미탐사 영역의 추정 면적 등의 정보가 피드백으로 제공되어야 하며, 배터리 잔량 부족이나 외부 명령에 의한 작업 중단이 가능하여야 한다. 탐사 완료 시 최종 지도 데이터가 결과(result)로 반환된다.

4.6 물체 인식 및 분류 작업

딥러닝 기반 물체 인식 모델의 대규모 추론 작업은 수행 시간이 불확정적이며, 처리 진행률의 보고가 유용한 시나리오이다. 다수의 영상 프레임에 대한 일괄(batch) 인식 작업의 경우, 처리 완료된 프레임 수, 현재까지의 인식 결과 요약 등을 피드백으로 전달할 수 있다. 단, 단일 프레임에 대한 실시간 추론은 수행 시간이 짧으므로 서비스 또는 토픽으로 처리하는 것이 더 적합할 수 있다.

5. 경계 시나리오와 패러다임 선택의 판단 기준

5.1 수행 시간에 따른 판단

통신 패러다임의 선택에서 가장 기본적인 판단 기준은 작업의 예상 수행 시간이다. 수행 시간이 수 밀리초 이내인 작업은 서비스가 적합하다. 수행 시간이 불확정적이거나 수 초 이상에 이르는 작업은 액션이 적합하다. 작업의 개념 없이 연속적으로 데이터가 흐르는 경우에는 토픽이 적합하다.

5.2 피드백 필요성에 따른 판단

작업 수행 과정에서 중간 상태 정보가 필요한 경우에는 액션을 사용하여야 한다. 중간 상태 정보가 불필요하고 최종 결과만 있으면 충분한 경우에는 서비스가 적절하다. 결과의 개념 자체가 없고 데이터의 연속적 전달이 목적인 경우에는 토픽을 사용한다.

5.3 취소 가능성에 따른 판단

작업 수행 중 외부 요인에 의한 취소가 요구될 수 있는 시나리오에서는 액션이 유일한 선택이다. 서비스 호출은 전송 이후 취소할 수 없으며, 토픽은 작업의 개념이 존재하지 않으므로 취소의 의미가 적용되지 않는다.

6. 결론

토픽은 연속적 데이터 스트리밍과 이벤트 통보에, 서비스는 일회성 질의와 짧은 연산 요청에, 액션은 장시간 비동기 작업의 생명주기 관리에 각각 최적화된 통신 패러다임이다. 로봇 행동 제어 시스템의 설계에서는 각 통신 시나리오의 시간적 특성, 데이터 흐름 패턴, 피드백 필요성, 취소 가능성을 종합적으로 분석하여 적합한 패러다임을 선택하여야 한다. 복잡한 로봇 시스템에서는 단일 패러다임이 아닌 세 가지 패러다임의 유기적 조합이 요구되며, 이러한 조합의 적절성이 시스템 전체의 안정성과 효율성을 결정한다.