하나의 제어기가 로봇을 직접 움직입니다
ESP32 기반 로봇에서는 마이크로컨트롤러가 초음파센서와 IMU 값을 읽고, 8개의 서보모터를 제어하며, 전진후진회전자세 조절 같은 동작을 직접 실행합니다.
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | ||||||
| 2 | 3 | 4 | 5 | 6 | 7 | 8 |
| 9 | 10 | 11 | 12 | 13 | 14 | 15 |
| 16 | 17 | 18 | 19 | 20 | 21 | 22 |
| 23 | 24 | 25 | 26 | 27 | 28 | 29 |
| 30 | 31 |
두 로봇의 가장 중요한 차이는 크기나 카메라가 아니라 제어 구조입니다. ESP32 기반 로봇은 마이크로컨트롤러가 로봇을 직접 제어하는 임베디드 시스템이고, ROS 2 기반 로봇은 Raspberry Pi와 같은 컴퓨터에서 Linux와 ROS 2가 실행되는 로봇 소프트웨어 플랫폼입니다.
ESP32 기반 로봇은 “센서와 모터를 직접 제어하는 임베디드 프로그래밍”에 적합하고, ROS 2 기반 로봇은 “여러 프로그램과 센서를 연결하는 로봇 시스템 학습”에 적합합니다.
따라서 ESP32 기반 로봇은 MicroPython, Arduino, 센서 입력, 서보모터와 동작 함수를 배우는 데 유리합니다. ROS 2 기반 로봇은 노드, 토픽, 서비스, 카메라, AI 비전, 시뮬레이션과 네트워크 기반 로봇 제어를 배우는 데 유리합니다.
ESP32 기반 로봇에서는 마이크로컨트롤러가 초음파센서와 IMU 값을 읽고, 8개의 서보모터를 제어하며, 전진후진회전자세 조절 같은 동작을 직접 실행합니다.
이 구조에서는 별도의 Linux 운영체제가 필요하지 않습니다. 프로그램은 ESP32 내부에서 바로 실행되며, 일반적으로 하나의 프로그램이 센서 처리와 동작 제어를 함께 담당합니다.
ROS 2 기반 로봇에서는 Raspberry Pi와 같은 컴퓨터가 Linux와 ROS 2를 실행합니다. 카메라, 보행 제어, 사용자 명령, AI 비전과 센서 처리가 각각 독립적인 ROS 2 노드로 동작할 수 있습니다.
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 |
ESP32가 초음파센서 값을 직접 읽고, 일정 거리 이하이면 보행 함수를 중지합니다.
거리 측정 → 조건문 → stop() 함수 실행
거리센서 노드가 값을 토픽으로 발행하고, 장애물 회피 노드가 이를 구독하여 보행 노드에 정지 명령을 보냅니다.
센서 노드 → 거리 토픽 → 회피 노드 → 이동 명령
ESP32-S3 카메라 모듈이 간단한 색상 위치를 계산하고, ESP32가 바로 전진 또는 회전 함수를 실행합니다.
카메라 노드가 영상을 발행하고, 비전 노드가 빨간 공의 위치를 검출한 뒤, 추종 노드가 이동 명령을 계산하여 보행 노드에 전달합니다.
같은 기능이라도 ESP32 기반 로봇과 ROS 2 기반 로봇에서는 프로그램을 구성하는 방식이 다릅니다. ESP32 방식은 하나의 제어 프로그램 안에서 센서 판단과 동작 실행을 직접 연결하는 경우가 많고, ROS 2 방식은 기능을 여러 노드로 분리하여 메시지로 연결합니다.
초음파센서의 거리를 직접 읽고, 가까운 장애물이 감지되면 정지한 뒤 회전 함수를 실행합니다.
거리 측정 → 조건문 → 정지 → 회전 → 다시 전진
거리센서 노드가 토픽을 발행하고, 장애물 회피 노드가 이를 구독하여 이동 제어 노드에 속도 명령을 보냅니다.
센서 노드 → 거리 토픽 → 회피 노드 → /cmd_vel
카메라 모듈이 빨간색 영역의 중심 좌표를 계산하고, 중심이 왼쪽이면 좌회전, 오른쪽이면 우회전, 가운데이면 전진하도록 제어합니다.
영상 분석 → 중심 좌표 계산 → 방향 결정 → 모터 제어
카메라 노드가 영상을 발행하고, 영상 처리 노드가 물체 위치를 계산한 뒤, 추종 노드가 이동 속도를 생성합니다.
카메라 노드 → 이미지 토픽 → 비전 노드 → 추종 노드 → 이동 노드
적외선 라인센서 또는 저해상도 카메라 값을 읽고 좌우 편차에 따라 모터 속도를 직접 조정합니다.
라인 위치 확인 → 좌우 편차 계산 → 모터 속도 보정
카메라 노드, 영상 처리 노드, 경로 추종 노드를 분리할 수 있으며, 각 노드는 토픽을 통해 연결됩니다.
이미지 토픽 → 차선 검출 → 중심 오차 → 속도 제어
정해진 음성 명령을 인식하는 전용 음성 모듈을 사용하여 “앞으로”, “멈춰”, “돌아”와 같은 명령을 동작 함수에 직접 연결합니다.
음성인식 노드가 문장을 텍스트로 변환하고, 명령 해석 노드가 의미를 분석한 뒤, 이동 노드나 행동 노드에 명령을 전달합니다.
마이크 → 음성인식 → 명령 해석 → 행동 노드
IMU의 기울기 값을 읽어 일정 각도 이상 기울어지면 복구 동작 함수를 바로 실행합니다.
IMU 값 → 기울기 판단 → 복구 자세 실행
IMU 노드가 자세 정보를 발행하고, 상태 감시 노드가 넘어짐을 판단하여 액션 서버에 자세 복구 동작을 요청할 수 있습니다.
IMU 토픽 → 상태 판단 노드 → 복구 액션
ESP32가 간단한 웹 서버를 열고, 버튼 입력을 받으면 전진후진회전 함수를 실행합니다.
웹 인터페이스가 ROS 브리지와 연결되어 토픽을 발행하고, 이동 노드가 해당 명령을 구독합니다.
웹 UI → ROS 브리지 → 제어 토픽 → 이동 노드
각 로봇의 IP 주소나 Bluetooth 연결을 개별 관리해야 하며, 통신 규칙을 직접 설계해야 합니다.
네임스페이스와 토픽 이름을 분리하여 여러 로봇을 하나의 ROS 2 네트워크에서 관리할 수 있습니다.
/robot1/cmd_vel, /robot2/cmd_vel, /robot3/cmd_vel
간단한 색상 분류나 소형 모델은 가능하지만, 메모리와 연산 능력 때문에 고성능 객체 탐지에는 한계가 있습니다.
카메라 영상, 객체 탐지 모델, 행동 판단과 이동 제어를 각각 독립 노드로 구성할 수 있습니다. 외부 GPU 컴퓨터나 Jetson과도 쉽게 연결할 수 있습니다.
카메라 → 객체 탐지 → 행동 판단 → 이동 또는 로봇팔 제어
ESP32 기반 로봇은 마이크로컨트롤러가 센서와 모터를 직접 제어하는 임베디드 로봇입니다. 따라서 임베디드 프로그래밍, 센서 처리와 액추에이터 제어를 배우는 데 적합합니다.
ROS 2 기반 로봇은 Linux에서 여러 노드가 통신하는 로봇 플랫폼입니다. 따라서 ROS 2 통신 구조, 카메라와 AI 비전, 시뮬레이션과 Physical AI를 배우는 데 적합합니다.
한 문장으로 정리하면, ESP32 기반 로봇은 하드웨어를 직접 제어하는 방법을 배우는 장비이고, ROS 2 기반 로봇은 로봇 시스템을 구성하고 여러 기능을 연결하는 방법을 배우는 장비입니다.
| ESP32란 무엇인가? (0) | 2026.07.29 |
|---|---|
| Physical AI 시대의 로봇 소프트웨어 플랫폼 (0) | 2026.07.21 |
| ROS 2 구현 예제 - Gazebo에서 TurtleBot3 자동 전진 후 정지 (0) | 2026.07.20 |
| Ubuntu 24.04 + ROS 2 Jazzy + Gazebo Harmonic 설치 매뉴얼 (3) | 2026.07.20 |