Wiznet makers

lawrence

Published November 27, 2025 ©

119 UCC

9 WCC

31 VAR

0 Contests

0 Followers

0 Following

Original Link

ros2arduino

ros2arduino

COMPONENTS Hardware components

Arduino - Arduino MKR2UNO Adapter

x 1


WIZnet - W5500

x 1


PROJECT DESCRIPTION

 

1. 프로젝트 개요 (Executive Summary)

프로젝트명: ros2arduino

개발 주체: ROBOTIS (로보티즈)

핵심 정의: Arduino 환경에서 Micro-XRCE-DDS 기술을 활용하여, MCU를 ROS 2(Robot Operating System 2) 네트워크의 정식 노드(Node)로 참여시키는 라이브러리입니다.

기술적 포지셔닝:

**공식 micro-ROS**가 복잡하고 무거운 "표준 프레임워크"라면, **ros2arduino**는 아두이노 사용자가 가장 쉽고 빠르게 DDS 통신을 구현할 수 있도록 만든 **"경량화된 래퍼(Wrapper) 라이브러리"**입니다.

 

2. 소프트웨어 아키텍처 및 동작 원리

이 프로젝트를 이해하기 위해서는 **"왜 MCU는 PC처럼 직접 통신하지 못하는가?"**를 이해해야 합니다. 이를 해결하는 구조가 Client-Agent 모델입니다.

A. 시스템 구성도 (The Bridge Model)

MCU(아두이노)는 자원이 부족하여 거대한 ROS 2 네트워크(Global Data Space)에 직접 접속할 수 없습니다. 따라서 중간에 '통역사' 역할을 하는 Agent가 필요합니다.

MCU (Client): ros2arduino 라이브러리를 통해 센서 데이터를 **XRCE(eXtremely Resource Constrained Environments)**라는 아주 가벼운 프로토콜로 압축하여 전송합니다.

Transport Layer: 이 데이터를 Serial(UART) 또는 **Ethernet(W5500)**을 통해 전달합니다.

PC (Agent): MCU로부터 받은 데이터를 **표준 ROS 2 메시지(RTPS)**로 변환하여 글로벌 ROS 2 네트워크에 발행(Publish)합니다.

일반적인 ROS 2 노드 (PC): 자기 스스로 모든 처리를 다 합니다. (P2P 통신)

ros2arduino 노드 (MCU): 혼자서는 아무것도 못하고 Agent(PC)에 접속해야만 비로소 ROS 2의 일원이 됩니다.

핵심 비유: 아두이노(Client)는 스마트폰 앱으로 주문만 넣고, 실제 거래소에서 복잡한 매매를 수행하는 것은 증권사 서버(Agent)인 것과 같습니다.

B. Micro-ROS와의 관계

두 프로젝트 모두 엔진으로 Micro-XRCE-DDS를 사용한다는 점은 동일합니다.

ros2arduino는 이 엔진을 아두이노 IDE 스타일에 맞게 단순화시킨 버전으로, 교육용 및 프로토타이핑 시장에서 강력한 접근성을 가집니다.

 

3. 하드웨어 분석 및 인터페이스 전략

ROS 2 통신은 단순한 데이터 로깅보다 **메모리(RAM)**와 네트워크 안정성을 훨씬 많이 요구합니다.

A. MCU(마이크로컨트롤러) 선정 가이드

AVR (Arduino Uno, Mega): [비추천] RAM(2~8KB)이 부족하여 DDS 통신 버퍼를 감당하기 어렵습니다. 잦은 메모리 오버플로우 발생.

ARM Cortex-M (Arduino Due, Zero, Portenta): [강력 추천] 32-bit 아키텍처와 충분한 RAM을 갖추어 안정적인 노드 동작이 가능합니다.

B. 통신 인터페이스 비교 (Why WIZnet?)

ros2arduino는 Transport Layer를 교체할 수 있도록 설계되어 있습니다.

구분

Serial (USB)

Ethernet (WIZnet W5500)

연결 방식

PC와 1:1 직접 연결 (P2P 불가)

Network Switch 연결 (확장성 높음)

거리 제한

2~3m 이내 (USB 케이블 한계)

100m 이상 (산업 현장 적합)

신뢰성

노이즈에 취약, 연결 끊김 빈번

높은 신뢰성, 패킷 손실 최소화

주요 용도

단순 디버깅, 책상 위 테스트

이동 로봇, 공장 센서 네트워크, 액추에이터 제어

 

(주)로보티즈

https://en.robotis.com/

https://github.com/ROBOTIS-GIT

회사명: (주)로보티즈 (ROBOTIS)

설립: 1999년 (대한민국 기업, 코스닥 상장)

이름의 유래: "What is a Robot?"이라는 철학적 질문에 대한 답을 찾아가겠다는 의미로 **"ROBOT IS..."**를 줄여서 지은 이름입니다.

핵심 분야: 로봇 전용 액추에이터(관절 모터), 교육/연구용 로봇 플랫폼, 자율주행 로봇 서비스.

이 회사의 특별한 점 (Unique Points)

① 로봇 관절의 세계 표준, "다이나믹셀 (DYNAMIXEL)"

가장 특별한 부분은 **'다이나믹셀'**이라는 제품입니다.

특별한 이유: 과거에는 로봇 관절을 만들려면 모터, 제어기, 통신선, 감속기 등을 일일이 배선하고 납땜해야 했습니다. 로보티즈는 이 모든 것을 하나의 블록(모듈)으로 합쳐서 **"레고처럼 끼워서 조립하는 로봇 모터"**를 세계 최초로 상용화했습니다.

영향: 전 세계 로봇 연구실, 대학, 심지어 DARPA 로봇 챌린지에 나가는 재난 구조 로봇들도 이 모터를 사용합니다. **"로봇 계의 레고"**라고 불리며 연구 시간을 획기적으로 줄여준 혁신적인 제품입니다.

② ROS(로봇 운영체제)의 '공식 파트너'

질문하신 ros2arduino 프로젝트가 여기서 나온 것은 우연이 아닙니다.

터틀봇(TurtleBot): 전 세계에서 ROS를 배우는 모든 학생과 연구자가 사용하는 표준 로봇인 '터틀봇' 시리즈(현재 TurtleBot3, 4)의 공식 메인 제조사입니다. (ROS의 관리 주체인 Open Robotics와 함께 개발)

즉, 로보티즈는 단순 하드웨어 판매를 넘어 오픈소스 로봇 생태계의 표준 하드웨어를 담당하고 있는 핵심 플레이어입니다.

https://www.robotis.com/shop/list.php?ca_id=3040

https://www.robotis.com/model/page.php?co_id=controller

 

4. 예상 질문과 답변 (Q&A)

Q1. ros2arduinomicro-ROS, 무엇을 고객에게 권해야 하나요?

Answer: 상황에 따라 다릅니다. 빠른 프로토타이핑에는 ros2arduino를, 양산형 제품 개발에는 micro-ROS를 권합니다.

Explanation: ros2arduino는 아두이노 라이브러리 매니저에서 바로 설치되어 접근성이 압도적입니다. 반면 micro-ROS는 Zephyr, FreeRTOS 등 다양한 OS와 연동되지만 초기 설정이 복잡합니다.

Outlook: 장기적으로는 micro-ROS가 표준이 되겠지만, 아두이노 생태계 내에서는 ros2arduino의 간편함이 계속 유지될 것입니다.

Q2. Agent(브리지) 없이 아두이노가 직접 ROS 2와 통신할 수는 없나요?

Answer: 현재 기술로는 불가능에 가깝습니다.

Explanation: 표준 ROS 2(RTPS)는 수백 개의 노드를 발견(Discovery)하고 상태를 유지하기 위해 MB 단위의 메모리를 소모합니다. MCU 레벨에서는 이를 감당할 수 없으므로, 무거운 짐을 대신 들어주는 Agent가 반드시 필요합니다.

Outlook: MCU 성능이 PC급으로 발전하기 전까지는 Agent 구조가 임베디드 ROS의 표준 아키텍처로 남을 것입니다.

Q3. 위즈네트 칩을 쓰면 Arduino에서 ROS 2 통신 속도는 얼마나 나오나요?

Answer: SPI 통신 속도에 따라 다르지만, 센서 데이터 처리에 **충분한 고속 통신(수십~수백 Hz)**이 가능합니다.

Explanation: W5500은 최대 80Mbps(SPI) 대역폭을 가집니다. 라이다(LiDAR) 같은 대용량 포인트 클라우드 데이터는 어렵지만, IMU, 엔코더, 초음파 센서 등의 데이터는 지연 없이 실시간 전송이 가능합니다.

Outlook: 향후 W6100 등 고성능 칩셋과 병렬 버스 인터페이스를 활용하면 더 높은 대역폭의 ROS 2 데이터 전송도 가능해질 것입니다.

Q4. 이 솔루션은 어떤 산업 분야에 적용 가능한가요?

Answer: 스마트 팩토리의 센서 노드AGV/AMR(자율주행로봇)의 말단 제어부입니다.

Explanation: 메인 PC가 고장 나도 말단 센서들이 데이터를 계속 보낼 수 있어야 하며, 공장 내 노이즈 환경에서도 버텨야 합니다. 이때 Arduino + WIZnet Ethernet + ROS 2 조합은 가장 저렴하고 신뢰성 높은 솔루션입니다.

Outlook: 기존 PLC 중심의 공장 자동화가 ROS 2 기반으로 전환되면서, 레거시 장비를 ROS 2 네트워크에 물리기 위한 'ROS 2 Gateway' 수요가 폭발할 것입니다.

Q5. 소프트웨어 개발 난이도는 어떤가요? (고객사 지원 관점)

Answer: "하" (매우 쉬움) 입니다.

Explanation: Arduino IDE에서 라이브러리 설치 후, 예제 코드의 Serial 부분을 EthernetUDP로 바꾸고 IP 주소만 넣으면 끝납니다. 복잡한 네트워크 소켓 프로그래밍을 몰라도 됩니다.

Outlook: 이러한 낮은 진입 장벽은 위즈네트 제품이 ROS 2 교육용 키트 및 메이커 시장에 침투하는 데 큰 무기가 될 것입니다.

Documents
  • ros2arduino

Comments Write