ROS2 생태계 내 추가 학습 주제 소개

ROS2와 분산 컴퓨팅 및 클라우드 통합

ROS2는 네트워크 기반 통신 구조를 갖고 있으므로, 로컬 PC나 임베디드 디바이스에서만 동작하는 것이 아니라 클라우드 환경과 연동하여 분산 컴퓨팅(Distributed Computing)을 구현하는 사례가 점점 늘고 있다. 예를 들어, 센서 데이터를 로컬 디바이스에서 수집하고, 클라우드 서버에서 딥러닝 모델을 학습하거나 무거운 연산을 수행하는 식의 분산화가 가능하다. 특히 로봇 운영 간 요구되는 서비스(예: 위치 인식, 경로 계획)를 클라우드로 옮김으로써 로봇 하드웨어의 성능이 제한적이더라도 대규모 계산을 수행할 수 있다.

  • ROS2와 클라우드 연계 방법

    • DDS(데이터 분산 서비스) 브릿지: ROS2의 핵심 통신 메커니즘을 클라우드 상에서 실행되도록 브릿지를 구성

    • WebSockets 활용: ROS2 토픽을 웹 환경에서 Publish/Subscribe 하기 위한 브릿지

    • 원격 관리(Remote Launch): 로봇의 노드를 클라우드에서 실행하거나, 로봇에 탑재된 디바이스를 클라우드 서비스로 제어하기 위해 원격 실행 환경 구성

  • 장점 및 고려 사항

    • 클라우드 환경은 대규모 데이터 처리가 가능하고, 멀티 로봇에게 확장하기 용이

    • 네트워크 지연(Latency), 보안(Security) 문제가 발생할 수 있으므로 통신 방식과 암호화 방식을 신중히 선택해야 함

    • 클라우드와의 데이터 동기화를 지속적으로 모니터링하고 장애가 발생했을 때의 대안(Fail-Over) 전략도 수립해야 함

실시간성(Real-time)과 ROS2

고속으로 동작하는 로봇이나 산업용 제어 시스템은 실시간성을 필수적으로 요구한다. ROS2는 기존 ROS1보다 실시간 처리를 위한 QoS(Quality of Service) 설정 등을 지원하나, 이를 완벽하게 달성하기 위해서는 RTOS(Real-Time OS) 환경에서 ROS2를 구동하거나, 리눅스 RT 패치를 적용한 환경에서 세팅을 진행해야 한다.

  • 실시간 ROS2 구성 요소

    • RTOS에 ROS2 포팅: FreeRTOS, VxWorks 등과 같은 RTOS에서 구동 가능한 ROS2 변형판(micro-ROS 등)을 활용

    • Realtime Executor: 콜백 함수를 실시간 스케줄링할 수 있는 Executor를 적용해 지연시간 최소화

    • 고정된 메모리 할당: 가비지 컬렉션으로 인한 메모리 할당/해제 지연을 방지하기 위해 통신 버퍼나 메시지 메모리를 미리 예약

  • 수식 예시

    • 어떤 로봇의 동역학 방정식이 실시간 제어를 위해 다음과 같이 주어진다고 하자:

      M(q)q¨+C(q,q˙)q˙+g(q)=τ\mathbf{M}(\mathbf{q}) \ddot{\mathbf{q}} + \mathbf{C}(\mathbf{q}, \dot{\mathbf{q}}) \dot{\mathbf{q}} + \mathbf{g}(\mathbf{q}) = \mathbf{\tau}

      여기서 $\mathbf{q}$는 조인트각(Position), $\dot{\mathbf{q}}$는 조인트각 속도, $\ddot{\mathbf{q}}$는 조인트각 가속도, $\mathbf{M}(\mathbf{q})$는 조인트관성행렬, $\mathbf{C}(\mathbf{q}, \dot{\mathbf{q}})$는 코리올리스 및 원심력 항, $\mathbf{g}(\mathbf{q})$는 중력항, 그리고 $\mathbf{\tau}$는 조인트 토크를 나타낸다. 실시간 제어 환경에서는 이 방정식을 각 제어 주기마다 정확히 계산할 수 있어야 하므로, 실시간성 보장이 매우 중요하다.

컨테이너(Container) 기술과 ROS2

소프트웨어를 반복 가능하고 재현성 있게 배포하기 위해, ROS2 노드를 도커(Docker) 혹은 Podman 등 컨테이너 기반 환경에서 구동하는 방법이 널리 쓰이고 있다. 로봇 현장에서 발생하는 라이브러리 충돌 문제를 줄이고, 개발·테스트·배포 주기를 단축시킨다.

대표적인 활용 방법:

  • ROS2 코드를 여러 환경에서 동일하게 실행하기 위해, OS 버전·라이브러리 버전 등이 미리 정의된 도커 이미지를 생성

  • CICD(Continuous Integration, Continuous Deployment) 파이프라인에서 컨테이너 이미지를 빌드 후 자동 테스트

  • 경량화 이미지(Micro Distro)로 배포 사이즈 최소화

구성 예시:

위 코드 펜스는 예시 Dockerfile을 보여주며, 실제 ROS2 프로젝트 규모에 따라 추가 설정이 필요하다.

마이크로 ROS(micro-ROS)

ROS2의 장점 중 하나는 임베디드 디바이스나 마이크로컨트롤러(MCU) 기반 하드웨어로까지 확장이 가능하다는 점이다. 대표적인 사례가 micro-ROS로, 저사양 마이크로컨트롤러에서도 ROS2 스타일의 통신과 작업 흐름을 구현할 수 있도록 제공된다.

  • 주요 특징

    • 멀티스레딩보다는 이벤트 기반 처리와 비동기 통신을 사용해 자원 점유를 최소화

    • DDS의 경량화 버전인 XRCE-DDS(Extremely Resource Constrained Environments DDS)를 통해 MCU 기반에서도 퍼블리셔-서브스크라이버 구조를 유지

    • 소형 로봇, 센서 노드, IoT 기기 등에 적용 가능하며, 기존 ROS2와 쉽게 연동 가능

  • 구성 예시

    • $\mathbf{Client}$: 마이크로컨트롤러 측(FreeRTOS, Zephyr 등)에서 동작하며 센서 데이터를 수집하고, actuator 신호를 생성

    • $\mathbf{Agent}$: 일반 OS(예: 리눅스) 기반의 노드로서 DDS 네트워크와 마이크로컨트롤러 사이의 브릿지 역할 담당

    • 커스텀 메시지 타입이나 QoS 설정이 가능하며, 일반 ROS2 노드에서 마이크로컨트롤러 노드와 동일하게 통신 가능

  • 활용 예시

    • 초음파 센서, 광학 센서 등 간단한 센서 장치를 MCU에 연결해 micro-ROS로 데이터를 송신

    • 저전력 구동이 필요한 웨어러블 디바이스나 휴대용 로봇에서 ROS2 네트워크에 연결되어 센서 데이터를 실시간으로 보고

ROS2와 보안(Security)

여러 노드가 네트워크 상에서 메시지를 주고받는 환경에서는 보안이 중요한 이슈가 될 수밖에 없다. ROS2는 DDS 계층에서 제공하는 DDS-Security를 통해 인증(Authentication), 암호화(Encryption), 접근 제어(Access Control) 등을 지원한다.

  • DDS-Security 구성 요소

    • Authentication: 노드(Participant) 간 상호 인증 절차를 거쳐 신뢰할 수 있는 노드만 네트워크에 참여하도록 함

    • Encryption: 노드 간 주고받는 메시지 내용을 암호화하여 중간에서 스니핑(Sniffing)이나 도청을 방지

    • Access Control: 토픽 단위로 접근 권한을 설정해 특정 노드만 특정 토픽을 발행/구독할 수 있도록 제한

  • 필요성

    • 로봇의 안전성 보장: 예컨대 원격 제어나 자율주행 로봇에 악의적 공격이 발생하면 시스템 전체가 마비될 수 있음

    • 개인 정보 보호: 이미지, 음성 등 민감한 데이터가 제3자에게 노출되는 상황 방지

    • 산업 현장 보안 규정 준수: ISO 27001, IEC 62443 등 보안 표준을 만족하기 위한 보안 기능 구축 필요

시뮬레이션 환경과 ROS2

ROS2 애플리케이션을 개발할 때는 실제 로봇 하드웨어 없이도 시뮬레이션 환경에서 테스트를 진행하는 것이 일반적이다. 대표적으로 Gazebo, Ignition Gazebo, Webots, Unity 시뮬레이션 등 여러 시뮬레이터가 ROS2를 지원한다.

장점:

  • 하드웨어 충돌 위험이 없어 안전하게 실험 가능

  • 가상 환경에서 다양한 시나리오(예: 장애물 배치, 환경 변화)를 빠르게 반복 테스트

  • 센서 모델(레이저 스캐너, 카메라, IMU 등)과 물리 엔진(충돌, 마찰력)을 활용해 현실감 높은 시나리오 구성

예시 시뮬레이션 구조:

spinner

위 그림처럼, ROS2와 시뮬레이션 모델이 토픽을 통해 상호 통신하여 실제 물리 환경과 유사한 테스트를 진행한다.

ROS2 네비게이션 스택(Navigation Stack, Nav2)

이동 로봇의 경로 계획과 자율주행 기능을 구현할 때는 **ROS2 네비게이션 스택(Nav2)**이 사실상 표준으로 쓰인다. ROS1 시절의 Move Base와 네비게이션 스택을 발전시킨 형태이며, ROS2 특유의 노드 구조 및 QoS 설정에 맞게 설계되었다.

  • 주요 기능

    • SLAM 또는 사전 지도(Map)를 이용해 로봇의 현재 위치를 추정(Localization)

    • 전역 경로(global path)와 지역 경로(local path)를 동적으로 생성해 장애물을 회피하며 목표 지점으로 이동

    • 플러그인 구조를 채택하여 센서 유형(라이다, 카메라, IMU 등)이나 로봇 베이스 형태(차륜, 무한궤도 등)에 맞게 확장 가능

    • 행동 트리(Behavior Tree) 기반으로 상태 전환 및 오류 처리를 유연하게 구성

  • 구성 요소

    • Costmap 2D/3D: 로봇 주변의 장애물, 영역 정보를 기록하는 지도 구조

    • Planner Server: 전역 경로와 지역 경로 생성을 위한 플러그인 인터페이스

    • Controller Server: 목표 속도, 회전 명령을 실시간으로 산출하는 제어 알고리즘

    • Recovery Behaviors: 경로 상 충돌이나 차단이 발생했을 때 재시도 혹은 다른 경로로 우회 등의 행동 수행

  • 일반적인 사용 절차

    1. 로봇의 URDF, 센서 세팅, 바퀴 운동학(또는 구동 체계) 등을 구성

    2. Nav2 패키지를 설치 후, $\mathbf{nav2_bringup}$ 런치 파일 등을 통해 로봇 환경 구동

    3. RViz를 이용해 목표 지점을 설정하거나, API를 통해 목표 좌표를 전송

    4. Nav2에서 계산한 경로 및 속도 명령을 로봇 하드웨어로 전달해 실제 움직임을 제어

MoveIt 2

MoveIt은 로보틱 매니퓰레이터(Manipulator)나 로봇팔의 경로 계획, 운동학 풀이(Inverse Kinematics), 충돌 감지 등을 관리하는 강력한 프레임워크이다. ROS1 기반으로 널리 사용되었으며, ROS2용으로 업그레이드된 버전이 MoveIt 2이다.

  • 핵심 기능

    • Planning: 목표 위치나 자세(End-effector Pose)에 따른 경로를 자동으로 계산

    • Inverse Kinematics(IK): 6자유도 이상의 복잡한 로봇팔에서도 고속으로 조인트각을 도출

    • Collision Checking: 로봇 자체나 주변 환경과의 충돌을 사전에 감지하고 회피 경로 생성

    • Scene Graph: 3D 객체 정보를 시각화하고, 경로를 설정하는 데 필요한 지오메트리(Geometry) 데이터를 관리

  • 사용 예시

    • 산업용 로봇팔(예: UR 로봇, Fanuc 로봇)에 대해 MoveIt 2를 세팅하고, 물체 픽앤플레이스(pick & place) 작업 시뮬레이션

    • 의료용 로봇, 협동 로봇에서 정밀한 경로 제어가 필요할 때 계획 알고리즘을 커스텀 플러그인으로 교체

    • Task & Motion Planning(TAMP)과 연계해 조작(Manipulation)과 네비게이션을 하나의 시나리오로 통합

ROS2의 라이프사이클(Lifecycle) 노드

ROS2에는 노드의 상태 전이(State Transition)를 체계적으로 관리할 수 있는 Lifecycle Node 혹은 Managed Node 개념이 도입되었다. 이를 통해 노드가 실행 중에 특정 단계를 거쳐서 활성화/비활성화, 재설정 등을 수행할 수 있다.

  • 주요 상태

    • Unconfigured: 노드가 초기화되었으나 아직 설정(파라미터 로딩, 내부 변수 초기화)이 완료되지 않은 상태

    • Inactive: 설정은 완료되었으나 실제 동작(토픽 퍼블리시, 센서 데이터 읽기 등)이 중단된 상태

    • Active: 노드가 정상적으로 모든 기능을 수행하는 동작 상태

    • Finalized: 노드가 종료되거나, 에러로 인해 더 이상 실행 불가능한 상태

  • 장점

    • 시스템 전체를 단계적으로 구동/중단하면서 이벤트를 처리할 수 있으므로, 복잡한 로봇 어플리케이션에서 상태를 체계적으로 관리 가능

    • 노드 재시작 없이 구성(파라미터)만 다시 불러와 재동작시키거나, 장애 발생 시 자동 복구 로직 적용이 용이

    • 특정 노드의 활성/비활성을 중앙 관리자(예: 로봇 운영 컨트롤러)에서 제어할 수 있어 운영 및 유지보수 효율성 증가

ROS2와 AI/머신러닝(ML), 딥러닝(DL) 연계

최근 로봇이 AI를 통해 인지·판단 능력을 갖추고, 자율적으로 작업을 수행하는 사례가 증가하고 있다. 이를 위해 ROS2와 AI, 특히 머신러닝/딥러닝 기법이 결합되는 방법이 다양하게 시도되고 있다.

  • 활용 예시

    • 물체 인식(Object Detection) 및 추적(Tracking)을 위해 딥러닝 모델(예: YOLO, Faster R-CNN 등)을 ROS2 노드로 래핑

    • 강화학습(Reinforcement Learning)을 통해 로봇의 경로 계획이나 팔 움직임을 학습

    • 음성 인식/합성(Speech Recognition/Synthesis)을 통한 휴머노이드 로봇과의 자연어 인터랙션

  • 기술 스택

    • OpenCV, TensorFlow, PyTorch 등을 사용하여 신경망 모델을 훈련하거나 추론(Inference)을 수행

    • ROS2 토픽으로 카메라 영상 스트리밍 → AI 노드에서 모델 추론 → 결과(인식 객체, 바운딩 박스 정보 등)를 다른 노드로 전달

    • GPU 액셀러레이션이 가능한 엣지 디바이스(NVIDIA Jetson, Intel NCS 등)를 사용해 실시간 처리를 구현

  • 분산 학습 및 클라우드 연계

    • 데이터가 대규모일 경우 클라우드 환경(예: AWS RoboMaker, Azure 등)에서 분산 학습 진행

    • 훈련된 모델만 로컬(로봇)에 배포하고, 실시간 추론을 수행해 네트워크 대역폭 소비를 최소화

ROS2와 DevOps, CI/CD 파이프라인

소프트웨어를 개발하면서 자동화된 빌드, 테스트, 배포 절차를 구축하는 DevOps 문화를 로봇 개발에도 적용할 수 있다. 특히 ROS2는 패키지 구조가 명확하고, colcon 빌드 시스템이 특정 스크립트나 Docker 이미지를 통해 쉽게 재현 가능하므로 CI/CD에 자연스럽게 적합하다.

  • 주요 구성

    • CI(Continuous Integration): 깃 저장소에 코드를 푸시할 때마다 자동으로 빌드 및 유닛 테스트 수행

    • CD(Continuous Deployment): 성공적으로 빌드된 아티팩트(도커 이미지 등)를 로봇에 자동 배포

    • 코드 커버리지(Code Coverage), 스타일 체크(lint), 정적 분석(Static Analysis) 등을 자동화해 품질 확보

  • 이점

    • 빠르고 반복적인 통합 테스트로 인해 기능 결함을 조기 발견

    • 여러 버전의 ROS2, 또는 여러 환경(Ubuntu, Debian 등)에서 자동 빌드하여 호환성 문제를 신속 파악

    • 대규모 팀이 협업할 때 빌드 절차나 로봇 소프트웨어 버전을 일관성 있게 유지

  • 예시 워크플로우

    위와 같이 CI 설정을 두면 깃에 코드를 푸시할 때마다 빌드 및 테스트가 자동 수행되어 결과를 알려준다.

ROS2 데이터 로깅(Logging)과 모니터링(Monitoring)

로봇은 다양한 센서와 노드를 통해 대량의 데이터를 생성한다. 이를 적절히 로깅하고 모니터링하는 체계를 갖추면, 이후 디버깅이나 성능 최적화, 추적(Trace) 등의 작업이 용이하다.

  • ROS2 Logging

    • rclcpp 또는 rclpy에서 RCLCPP_INFO, RCLCPP_WARN 등 메크로를 사용해 로그 메시지 출력

    • ROS2 노드별로 로그 레벨(Info, Debug, Warn, Error 등)을 동적으로 설정 가능

    • 로그 데이터를 파일이나 외부 서버(Elastic Stack, Splunk 등)로 전송해 중앙 모니터링 시스템 구축

  • 모니터링 툴

    • ros2 topic 명령어로 현재 퍼블리시되는 메시지 상태, 초당 메시지 수(Hz) 등을 확인

    • rqt_graph, rqt_tf_tree 등을 통해 노드 토폴로지, TF 트리 구조 시각화

    • Prometheus, Grafana 등 서드파티 모니터링 툴과 연동해 CPU 사용량, 메모리, 네트워크 상황 등을 대시보드화

  • 실시간 추적(Tracing)

    • LTTng, ros2_tracing 패키지 등을 사용해 노드 간 통신 지연, 콜백 처리 시점을 세밀하게 추적 가능

    • 대규모 시스템에서 병목 구간이나 비효율적인 설계를 분석할 때 매우 유용

ROS2 멀티 로봇 협업(Multi-robot Collaboration)

ROS2는 네트워크 기반 구조이므로 여러 로봇이 동시에 서로 다른 노드를 실행하면서 상호 협력하는 시나리오가 상대적으로 쉽다.

  • 협업 시나리오

    • 여러 자율주행 로봇이 각각의 센서로 맵을 작성하여 공동 맵을 업데이트(SLAM 협업)

    • 한 로봇이 물건을 집어 다른 로봇에게 넘기는 물류 협업(단순 예: 창고 로봇 시스템)

    • 분산된 로봇 군집(Swarm)이 각자의 위치, 센서 정보를 공유하며 집단 지능(Collective Intelligence)을 발휘

  • 필요한 요소

    • 공통 통신: 같은 DDS 도메인(Domain ID) 또는 멀티캐스트 그룹 설정으로 여러 로봇 간 메시지 교환

    • 네임스페이스(Namespace): 로봇마다 중복되는 토픽 이름을 구분하기 위해 네임스페이스 적용

    • 동기화 메커니즘: 시계(clock) 동기화 또는 분산 TF(Transform Frames) 관리

    • 협업 알고리즘: 전역 경로 및 멀티 에이전트 경로 계획, 충돌 방지 스케줄링 등

ROS2의 플러그인 시스템(pluginlib)과 확장성

ROS2는 다양한 기능을 모듈화·플러그인 구조로 제공하고 있어, 필요에 따라 커스텀 알고리즘을 삽입하거나 기존 알고리즘을 교체하기가 상대적으로 쉽다.

  • pluginlib

    • ROS2의 pluginlib 라이브러리를 사용하면, 공용 인터페이스만 정의해둔 뒤 여러 구현체(Shared Library 형태)를 동적으로 로드 가능

    • 예: 로컬 플래너(Local Planner) 플러그인을 만들고, 사전에 제공된 DWB(Dynamic Window Approach) 외에 RRT, A* 기반 플래너를 교체하여 시험

    • 빌드 후 런타임 시점에 플러그인을 로드하므로, 재컴파일 없이도 알고리즘을 교체하거나 확장할 수 있음

  • 장점

    • 다양한 벤더나 개발자가 만든 알고리즘을 표준 인터페이스로 교체·실험 가능

    • 코드 유지보수성 향상: 각 알고리즘이 독립된 플러그인으로 구성되어 충돌이나 종속성을 최소화

    • 오픈소스 커뮤니티 기여가 활발: 서로 다른 구현체를 쉽게 비교·검증·통합

ROS1-ROS2 브리지(Bridge)

기존 ROS1 생태계의 방대한 패키지와 툴을 그대로 포기하기는 어렵기 때문에, ROS1-ROS2 브리지를 통해 단계적으로 마이그레이션하거나 동시에 혼합 사용하기도 한다.

  • 주요 개념

    • Bridge Node: ROS1 토픽과 ROS2 토픽 간 메시지를 중계(bridging)해 두 시스템의 노드가 상호 정보 교환

    • Dynamic Bridge: 런타임에 토픽 타입을 자동 인식해서 브리지를 생성하거나 해제

    • ROS1 메시지 타입과 ROS2 메시지 타입이 일치해야 하며(동일한 MD5 sum), 다른 타입인 경우 매핑(marshalling) 작업 필요

  • 활용 시나리오

    • 기존 ROS1 기반 자율주행 패키지를 재활용하면서, ROS2 기반 네트워크 통신이나 네비게이션 스택(Nav2) 일부 기능을 조합

    • 천천히 ROS2로 전환하기 위해, 핵심 노드만 ROS2로 이전하고 나머지는 ROS1에서 구동

    • ROS1 전용 드라이버가 제공되는 하드웨어(센서, 로봇 팔)를 ROS1 노드로 연결한 뒤, 처리 알고리즘 노드는 ROS2로 개발

ROS2의 다양한 DDS 벤더

ROS2는 DDS(데이터 분산 서비스) 기반 통신을 채택하고 있으며, 여러 DDS 벤더(Implementations)를 지원한다. 대표적으로 eProsima Fast DDS, ADLINK Cyclone DDS, RTI Connext DDS 등이 있다.

  • 성능 차이와 특징

    • eProsima Fast DDS: 오픈소스 중심, 커뮤니티 기여가 활발하며 ROS2 표준 구현 중 하나

    • Cyclone DDS: Eclipse 재단 주관 오픈소스 프로젝트로, 경량화와 확장성에 초점

    • RTI Connext DDS: 상용 솔루션으로, 산업용·미션 크리티컬 환경에서 오랜 시간 검증됨

    • DDS 벤더마다 QoS 설정, 네트워크 트래픽 처리 방식 등에 차이가 있으므로, 실제 사용 환경에 맞춰 벤더를 선택 혹은 교체 가능

  • DDS 선택 시 고려 사항

    • 목표 플랫폼(임베디드, 데스크톱, 클라우드) 및 네트워크 토폴로지(유선, 무선, 혼합망)

    • 메시지 트래픽 규모와 QoS(신뢰성, 실시간성, 지연시간 등) 요구사항

    • 라이선스 형태(오픈소스 vs. 상용) 및 기술 지원 서비스

ROS2-ROS1 하이브리드 시스템

ROS2로 완전히 넘어가기 전, 또는 특정 기능을 ROS1 버전에서 더 안정적으로 활용하기 위해, ROS1과 ROS2를 동시에 구동하는 하이브리드 시스템도 존재한다.

  • 장단점

    • 장점: ROS1 생태계(노드, 패키지, 드라이버)를 즉시 재활용 가능, ROS2의 신규 기능(라이프사이클, RT 지원 등) 일부 활용

    • 단점: 브리지 구동을 위한 오버헤드(메시지 중계 비용), QoS 간 불일치, 트러블슈팅 난이도 증가

  • 추천 시나리오

    • 특정 센서 드라이버나 로보틱스 라이브러리가 ROS1에만 존재하고, ROS2 포팅이 어려운 경우

    • 대규모 기존 시스템을 한 번에 ROS2로 전환하기 부담스러울 때, 점진적으로 이전

    • 프로토타이핑 단계에서 ROS2 기능 시험을 병행하려 할 때

ROS2의 로봇 개발 지원 툴(Visual Tools)

ROS2 생태계는 터미널 기반 스크립트/노드 실행뿐만 아니라 시각적 디버깅, 3D 시뮬레이션/모델링, GUI 기반 개발을 편리하게 하기 위한 툴들이 풍부하다.

  • RViz2

    • 3D 시각화 툴로, 토픽이나 TF 정보 등을 실시간으로 확인

    • 센서 값(레이저 스캔, 포인트 클라우드, 카메라 이미지) 표시 가능

    • 로봇 모델(URDF, Collada 등)도 3D 형태로 시각화하며, 센서/링크 상태 체크

  • rqt

    • 다양한 플러그인을 제공하는 GUI 툴 모음

    • rqt_graph: 노드 간 토픽 연결 구조 시각화

    • rqt_plot: 토픽 데이터(수치값)를 실시간 그래프로 표시

    • rqt_tf_tree: TF 프레임 트리 확인

  • ROS2 Control / MoveIt Setup Assistant

    • 매니퓰레이터 로봇을 위한 MoveIt 설정 파일을 쉽게 생성

    • URDF를 불러와서 조인트 개수, 링크 관계, 조인트 제한 등을 GUI에서 편집 가능

  • Visual Studio Code Extensions

    • ROS2 개발용 VSCode 익스텐션을 설치하면, colcon 빌드 통합, 자동 완성, 디버깅 세팅 등을 지원

    • 파이썬 노드, C++ 노드 각각에 맞춘 자동 포맷, lint 검사 설정

Last updated