관리 메뉴

데이터 과학

ESP32 기반 로봇과 ROS 2 기반 로봇의 차이 본문

인공지능/피지컬 AI

ESP32 기반 로봇과 ROS 2 기반 로봇의 차이

티에스윤 2026. 7. 25. 12:39
ESP32 기반 로봇과 ROS 2 기반 로봇의 차이
구조 중심 비교

ESP32 기반 로봇과 ROS 2 기반 로봇의 차이

두 로봇의 가장 중요한 차이는 크기나 카메라가 아니라 제어 구조입니다. ESP32 기반 로봇은 마이크로컨트롤러가 로봇을 직접 제어하는 임베디드 시스템이고, ROS 2 기반 로봇은 Raspberry Pi와 같은 컴퓨터에서 Linux와 ROS 2가 실행되는 로봇 소프트웨어 플랫폼입니다.

핵심 결론

ESP32 기반 로봇은 “센서와 모터를 직접 제어하는 임베디드 프로그래밍”에 적합하고, ROS 2 기반 로봇은 “여러 프로그램과 센서를 연결하는 로봇 시스템 학습”에 적합합니다.

따라서 ESP32 기반 로봇은 MicroPython, Arduino, 센서 입력, 서보모터와 동작 함수를 배우는 데 유리합니다. ROS 2 기반 로봇은 노드, 토픽, 서비스, 카메라, AI 비전, 시뮬레이션과 네트워크 기반 로봇 제어를 배우는 데 유리합니다.

1. ESP32 기반 임베디드 로봇

ESP32 기반

하나의 제어기가 로봇을 직접 움직입니다

ESP32 기반 로봇에서는 마이크로컨트롤러가 초음파센서와 IMU 값을 읽고, 8개의 서보모터를 제어하며, 전진후진회전자세 조절 같은 동작을 직접 실행합니다.

교육의 중심

  • MicroPython과 Arduino 문법
  • 센서 값 읽기
  • 조건문과 반복문
  • 서보모터 제어
  • 간단한 보행 알고리즘
  • BluetoothUSBWi-Fi 통신

ESP32 기반 로봇의 제어 구조

스마트폰 앱 또는 PC 프로그램
↓ Bluetooth / USB / Wi-Fi
ESP32 메인 컨트롤러
↓ 직접 제어
서보모터, IMU, 초음파센서, 확장 모듈

이 구조에서는 별도의 Linux 운영체제가 필요하지 않습니다. 프로그램은 ESP32 내부에서 바로 실행되며, 일반적으로 하나의 프로그램이 센서 처리와 동작 제어를 함께 담당합니다.

ESP32 기반 로봇에 ROS 2를 연결할 수는 있지만, ROS 2가 마이크로컨트롤러 내부에서 직접 실행되는 것은 아닙니다. 외부 Ubuntu PC나 Raspberry Pi에서 ROS 2 노드를 실행하고, USB 직렬통신이나 Wi-Fi를 통해 ESP32에 명령을 전달하는 브리지가 필요합니다.

2. ROS 2 기반 로봇 플랫폼

Linux + ROS 2 기반

여러 노드가 서로 통신하며 로봇을 제어합니다

ROS 2 기반 로봇에서는 Raspberry Pi와 같은 컴퓨터가 Linux와 ROS 2를 실행합니다. 카메라, 보행 제어, 사용자 명령, AI 비전과 센서 처리가 각각 독립적인 ROS 2 노드로 동작할 수 있습니다.

교육의 중심

  • Linux와 원격 접속
  • ROS 2 노드와 토픽
  • Publisher와 Subscriber
  • 서비스와 액션
  • 카메라 영상 토픽
  • AI 비전Gazebo패키지 개발

ROS 2 기반 로봇의 제어 구조

PC, VNC, 키보드, 앱, 게임패드
↓ Wi-Fi / ROS 2 네트워크
Raspberry Pi, Ubuntu, ROS 2
↓ 토픽, 서비스, 액션
보행 노드, 카메라 노드, AI 비전 노드, 센서 노드
서보 제어 보드, 모터, IMU, 카메라

ROS 2에서는 하나의 프로그램이 모든 기능을 처리하지 않습니다. 예를 들어 카메라 노드는 영상을 발행하고, 비전 노드는 영상을 받아 물체를 인식하며, 보행 노드는 인식 결과에 따라 이동 명령을 실행합니다.

3. ESP32 방식과 ROS 2 방식의 본질적인 차이

비교 항목 ESP32 기반 로봇 ROS 2 기반 로봇
시스템 구조 하나의 마이크로컨트롤러가 센서와 모터를 직접 제어 여러 ROS 2 노드가 네트워크로 통신하며 기능을 분담
운영체제 일반적으로 Linux 없이 펌웨어가 직접 실행 Linux 위에서 ROS 2 실행
주요 언어 MicroPython, Arduino C/C++ Python, C++, ROS 2 메시지와 launch 파일
제어 방식 함수 호출과 조건문 중심 토픽, 서비스, 액션, 파라미터 중심
프로그램 구성 한 프로그램에 센서와 동작 기능을 함께 작성하는 경우가 많음 기능별로 노드를 나누어 독립적으로 실행
실시간 제어 모터와 센서의 빠른 저수준 제어에 유리 복잡한 시스템 통합에 유리하지만 저수준 제어는 별도 보드가 담당하는 경우가 많음
AI 처리 메모리와 연산 성능이 제한적 카메라OpenCVAI 모델 연동이 쉬움
네트워크 Bluetooth, Serial, Wi-Fi 명령 중심 ROS 2 DDS 기반 분산 통신
확장 방식 센서 모듈과 GPIO를 직접 연결 새 센서나 기능을 ROS 2 노드와 패키지로 추가
디버깅 시리얼 출력과 변수 확인 중심 ros2 topic, ros2 node, RViz, rqt 등을 사용
시뮬레이션 제한적 Gazebo와 RViz를 활용 가능
교육 난이도 초급 중급 이상
적합한 교육 임베디드, 센서, 모터, MicroPython ROS 2, AI 비전, 로봇 시스템, Physical AI

4. 같은 기능을 구현할 때의 차이

예시 1: 장애물을 만나면 멈추기

ESP32 기반 방식

ESP32가 초음파센서 값을 직접 읽고, 일정 거리 이하이면 보행 함수를 중지합니다.

거리 측정 → 조건문 → stop() 함수 실행

ROS 2 기반 방식

거리센서 노드가 값을 토픽으로 발행하고, 장애물 회피 노드가 이를 구독하여 보행 노드에 정지 명령을 보냅니다.

센서 노드 → 거리 토픽 → 회피 노드 → 이동 명령

예시 2: 카메라로 빨간 공 따라가기

ESP32 기반 방식

ESP32-S3 카메라 모듈이 간단한 색상 위치를 계산하고, ESP32가 바로 전진 또는 회전 함수를 실행합니다.

ROS 2 기반 방식

카메라 노드가 영상을 발행하고, 비전 노드가 빨간 공의 위치를 검출한 뒤, 추종 노드가 이동 명령을 계산하여 보행 노드에 전달합니다.

5. 교육적으로 무엇을 배우게 되는가?

ESP32 기반 로봇으로 배우는 핵심

  • 센서 값이 프로그램에 들어오는 과정
  • 조건문과 반복문으로 로봇 행동 만들기
  • 서보모터와 보행 함수 제어
  • 마이크로컨트롤러의 메모리와 연산 한계
  • SerialBluetoothWi-Fi 통신

ROS 2 기반 로봇으로 배우는 핵심

  • 여러 노드가 협력하는 분산 로봇 구조
  • 토픽, 서비스, 액션과 메시지 통신
  • 카메라센서보행 기능의 모듈화
  • Gazebo와 RViz를 이용한 시뮬레이션
  • AI 인식 결과를 실제 행동으로 연결하는 Physical AI

6. 기능 구현 예시

같은 기능이라도 ESP32 기반 로봇과 ROS 2 기반 로봇에서는 프로그램을 구성하는 방식이 다릅니다. ESP32 방식은 하나의 제어 프로그램 안에서 센서 판단과 동작 실행을 직접 연결하는 경우가 많고, ROS 2 방식은 기능을 여러 노드로 분리하여 메시지로 연결합니다.

예시 1: 장애물 회피

ESP32 기반 방식

초음파센서의 거리를 직접 읽고, 가까운 장애물이 감지되면 정지한 뒤 회전 함수를 실행합니다.

거리 측정 → 조건문 → 정지 → 회전 → 다시 전진

ROS 2 기반 방식

거리센서 노드가 토픽을 발행하고, 장애물 회피 노드가 이를 구독하여 이동 제어 노드에 속도 명령을 보냅니다.

센서 노드 → 거리 토픽 → 회피 노드 → /cmd_vel

예시 2: 카메라로 특정 색 물체 추적

ESP32 기반 방식

카메라 모듈이 빨간색 영역의 중심 좌표를 계산하고, 중심이 왼쪽이면 좌회전, 오른쪽이면 우회전, 가운데이면 전진하도록 제어합니다.

영상 분석 → 중심 좌표 계산 → 방향 결정 → 모터 제어

ROS 2 기반 방식

카메라 노드가 영상을 발행하고, 영상 처리 노드가 물체 위치를 계산한 뒤, 추종 노드가 이동 속도를 생성합니다.

카메라 노드 → 이미지 토픽 → 비전 노드 → 추종 노드 → 이동 노드

예시 3: 라인 추종

ESP32 기반 방식

적외선 라인센서 또는 저해상도 카메라 값을 읽고 좌우 편차에 따라 모터 속도를 직접 조정합니다.

라인 위치 확인 → 좌우 편차 계산 → 모터 속도 보정

ROS 2 기반 방식

카메라 노드, 영상 처리 노드, 경로 추종 노드를 분리할 수 있으며, 각 노드는 토픽을 통해 연결됩니다.

이미지 토픽 → 차선 검출 → 중심 오차 → 속도 제어

예시 4: 음성 명령으로 이동

ESP32 기반 방식

정해진 음성 명령을 인식하는 전용 음성 모듈을 사용하여 “앞으로”, “멈춰”, “돌아”와 같은 명령을 동작 함수에 직접 연결합니다.

ROS 2 기반 방식

음성인식 노드가 문장을 텍스트로 변환하고, 명령 해석 노드가 의미를 분석한 뒤, 이동 노드나 행동 노드에 명령을 전달합니다.

마이크 → 음성인식 → 명령 해석 → 행동 노드

예시 5: 넘어짐 감지와 자세 복구

ESP32 기반 방식

IMU의 기울기 값을 읽어 일정 각도 이상 기울어지면 복구 동작 함수를 바로 실행합니다.

IMU 값 → 기울기 판단 → 복구 자세 실행

ROS 2 기반 방식

IMU 노드가 자세 정보를 발행하고, 상태 감시 노드가 넘어짐을 판단하여 액션 서버에 자세 복구 동작을 요청할 수 있습니다.

IMU 토픽 → 상태 판단 노드 → 복구 액션

예시 6: 웹 브라우저 원격제어

ESP32 기반 방식

ESP32가 간단한 웹 서버를 열고, 버튼 입력을 받으면 전진후진회전 함수를 실행합니다.

ROS 2 기반 방식

웹 인터페이스가 ROS 브리지와 연결되어 토픽을 발행하고, 이동 노드가 해당 명령을 구독합니다.

웹 UI → ROS 브리지 → 제어 토픽 → 이동 노드

예시 7: 여러 로봇 동시에 제어

ESP32 기반 방식

각 로봇의 IP 주소나 Bluetooth 연결을 개별 관리해야 하며, 통신 규칙을 직접 설계해야 합니다.

ROS 2 기반 방식

네임스페이스와 토픽 이름을 분리하여 여러 로봇을 하나의 ROS 2 네트워크에서 관리할 수 있습니다.

/robot1/cmd_vel, /robot2/cmd_vel, /robot3/cmd_vel

예시 8: AI 객체 탐지 후 행동 실행

ESP32 기반 방식

간단한 색상 분류나 소형 모델은 가능하지만, 메모리와 연산 능력 때문에 고성능 객체 탐지에는 한계가 있습니다.

ROS 2 기반 방식

카메라 영상, 객체 탐지 모델, 행동 판단과 이동 제어를 각각 독립 노드로 구성할 수 있습니다. 외부 GPU 컴퓨터나 Jetson과도 쉽게 연결할 수 있습니다.

카메라 → 객체 탐지 → 행동 판단 → 이동 또는 로봇팔 제어

최종 정리

ESP32 기반 로봇은 마이크로컨트롤러가 센서와 모터를 직접 제어하는 임베디드 로봇입니다. 따라서 임베디드 프로그래밍, 센서 처리와 액추에이터 제어를 배우는 데 적합합니다.

ROS 2 기반 로봇은 Linux에서 여러 노드가 통신하는 로봇 플랫폼입니다. 따라서 ROS 2 통신 구조, 카메라와 AI 비전, 시뮬레이션과 Physical AI를 배우는 데 적합합니다.

한 문장으로 정리하면, ESP32 기반 로봇은 하드웨어를 직접 제어하는 방법을 배우는 장비이고, ROS 2 기반 로봇은 로봇 시스템을 구성하고 여러 기능을 연결하는 방법을 배우는 장비입니다.

ESP32 기반 로봇과 ROS 2 기반 로봇의 구조 비교 자료