책 이미지
책 정보
· 분류 : 국내도서 > 컴퓨터/모바일 > 인공지능
· ISBN : 9791193059784
· 쪽수 : 346쪽
· 출판일 : 2026-04-10
책 소개
전 세계적으로 로봇 산업이 급성장함에 따라 ROS2(Robot Operating System 2)는 로봇 개발자에게 필수적인 역량이 되었습니다. 하지만 초보자가 방대한 ROS2 생태계에 진입하기란 쉽지 않습니다. 이 책은 이러한 진입 장벽을 낮추기 위해 ‘직접 만드는 즐거움’과 ‘핵심 이론의 명확한 전달’에 집중했습니다.
이 책의 특징은 다음과 같습니다.
1. 실무적인 하드웨어 구성과 저비용 고효율 개발
고가의 로봇 장비가 없어도 괜찮습니다. 가성비 높은 ESP32 보드와 micro-ROS를 활용하여 무선 기반의 분산 로봇 시스템을 구축하는 방법을 상세히 안내합니다. 실제 기성품 로봇의 구조를 4가지 핵심 요소(하드웨어, 구동, 센서, 제어)로 나누어 설명함으로써 로봇의 기본 원리를 완벽히 이해하도록 돕습니다.
2. 시각화와 실습 중심의 학습 구조
복잡한 수식보다는 RViz2를 통한 시각적 확인, 실제 맵을 그려가는 SLAM 실습, 그리고 경로를 따라가는 Nav2 자율주행 설정을 통해 학습자가 성취감을 느끼며 진도를 나갈 수 있도록 구성되었습니다.
3. 미래를 준비하는 AI 융합 프로젝트
단순 주행을 넘어 카메라 기반의 영상 처리와 객체 인식을 다룹니다. 특히 최신 멀티 모달 AI API 연동 예제는 로봇이 주변 환경을 '이해'하고 '설명'하게 함으로써, 단순한 기계를 넘어선 진정한 피지컬 AI 로봇으로 거듭나는 경험을 선사할 것입니다. 로봇 공학도, 취미 개발자, 그리고 에듀테크에 관심 있는 교육자까지 모두에게 이 책은 ROS2와 AI 로봇이라는 미래 기술로 향하는 가장 빠른 지름길이 될 것입니다.
목차
CHAPTER 1 로봇 H/W 프로그래밍 I
1 로봇 구성 요소 살펴보기
2 micro-ROS 개발 환경 구성하기
아두이노 IDE 설치하기
ESP32 보드 패키지 설치하기
micro-ROS 라이브러리 설치하기
ESP32 업로드 테스트하기
전자 부품 테스트하기
3 로봇 조립하기
전체 부품 살펴보기
모터 조립하기
바퀴 장착하기
인코더 연결하기
부품 장착하기
라이다 장착하기
카메라 및 보드 장착하기
전원 연결하기
메인 보드 살펴보기
제어 핀 살펴보기
4 LED로 PWM 이해하기
LED 켜고 끄기 확인하기
LED 켜고 끄기 간격 줄여보기
LED 켜고 끄기를 밝기로 느껴보기
LED 어둡게 하기
LED 밝게 하기
5 PWM 모듈로 LED 밝기 제어하기
주파수 조절로 LED 켜고 끄기 반복해 보기
LED 켜고 끄기 간격 줄여보기
LED 켜기 끄기를 밝기로 느껴보기
LED 밝게 하기
6 PWM으로 모터 속도 제어하기
DC 모터 이해하기
dc_test_c
dc_test_cpp
dc_4_test_cpp
dc_pwm_test_c
dc_pwm_test_cpp
dc_4_pwm_test_cpp
7 Encoder로 모터 회전량 측정하기
Encoder 이해하기
enc_test_c
enc_test_cpp
enc_4_test_cpp
8 배터리 전압 측정하기
9 Wi-Fi 신호 세기 측정하기
10 micros 함수로 루프 주기 제어하기
CHAPTER 2 ROS2 프로그래밍 I
1 ROS2의 이해
ROS2 개요
ROS2의 핵심 구성 요소
micro-ROS Agent
2 ROS2 개발 환경 구성하기
WSL 설치하기
Docker 설치하기
VcXsrv 설치하기
VS Code 설치하기
Gimp 설치하기
Docker 컨테이너 구동하기
micro-ROS agent 설치하기
.bashrc 설정하기
Docker 컨테이너 다중 접속하기
ros2 패키지 설치하기
핫스팟 활성화하기
3 Twist 기반 로봇 제어 프로그래밍
(Arduino) Twist 메시지 구독 노드 구현하기
(Linux) Twist 메시지 발행 노드 구현하기
Twist 토픽 통신 실습하기
Twist → RPM 변환 로직 구현하기
teleop_twist_keyboard.py 구현하기
실제 로봇 제어해 보기
4 Odometry·TF2·Joint State 기반 로봇 상태 프로그래밍
(Arduino) 원시 Telemetry 발행 노드 분석하기
(Linux) 원시 Telemetry 구독 노드 구현하기
Odom · TF · Joint States 발행 노드 구현하기
5 LaserScan 기반 로봇 센서 프로그래밍
(Arduino) 원시 LaserScan 발행 노드 분석하기
(Linux) LaserScan 발행 노드 구현하기
CHAPTER 3 ROS2 프로그래밍 II
1 URDF의 이해
URDF 개요
URDF 문법 살펴보기
2 URDF로 로봇 구조 정의하기
base_link 만들고 chassis_joint 연결하기
chassis 추가하기
wheel_joint 추가하기
wheel 추가하기
laser_joint, laser_frame 추가하기
controller_joint, controller_frame 추가하기
camera_joint, camera_link 추가하기
camera_optical_joint, camera_link_optical 추가하기
base_footprint_joint, base_footprint 추가하기
3 로봇 Telemetry 토픽 시뮬레이션
로봇 구동하고 micro_ros_agent 연결하기
TF2 토픽 시뮬레이션
Joint State 토픽 시뮬레이션
Odometry 토픽 시뮬레이션
LaserScan 토픽 시뮬레이션
4 ROS2 패키지 생성 및 launch 파일 작성
myros_ws 워크스페이스 생성하기
myrosbot_one 패키지 생성하기
setup.py 수정하여 패키지 정보 반영하기
rsp.launch.py 파일 작성하기
패키지 빌드 및 설치하기(colcon build)
robot_visualization.launch.py 파일 작성 및 실행하기
robot_bringup.launch.py 파일 작성 및 실행하기
CHAPTER 4 SLAM & Nav2 활용하기
1 SLAM으로 맵 그리기
SLAM 개요
Nav2 + SLAM Toolbox로 맵 생성하기
GIMP로 저장한 맵 수정하기
slam_with_nav2.launch.py 파일 작성하기
save_map.launch.py 파일 작성하기
패키지 빌드 및 테스트하기(colcon build)
2 Nav2로 자율주행 실습하기
Nav2 개요
nav2_bringup으로 자율주행하기
[WayPoint] 설정으로 다중 목표점 자율주행하기
nav2_with_map.launch.py 파일 작성하기
3 탐사 플래너로 맵 자동 완성하기
탐사 플래너 개요
탐사 플래너 설치하기
explore_lite로 자동 맵 완성하기
explore_lite의 역할 이해하기
explore_navigation.launch.py 파일 작성하기
4 탐사 상태 제어하기
CHAPTER 5 ROS2 영상 처리 프로그래밍
1 MJPEG 기반 영상 스트리밍과 ROS2 연동
(Arduino) ESP32Cam 영상 스트리밍 분석하기
카메라 전원선 연결하기
(Linux) MJPEG Viewer 구현하기
(Linux) Camera 영상 발행 노드 구현하기
LiDAR 기반 로봇 시스템과 카메라 기능 연동하기
full_system_bringup.launch.py 파일 작성하기
2 카메라 기반 객체 인식과 추적
공 추적을 위한 비전 패키지 설치
실시간 카메라 기반 공 추적 실습
3 미션 상태 제어하기
공 추적 멈춤 토픽 구독하기
공 정면 정지 이벤트 토픽 발행하기
4 멀티 모달 AI API 기반 카메라 장면 이해
Gemini API로 카메라 장면 설명하기
OpenAI API로 카메라 장면 설명하기
부록 Vibe Coding 프로젝트와 로봇 H/W 프로그래밍 고급
부록 1 Vibe Coding 프로젝트: 화성 탐사선 보물찾기
1 탐사 상태 제어하기
2 탐사 미션 상태 전환하기
3 mission_manager 생성하기
4 (Vibe Coding) 미션 탐사 로봇 프로젝트
부록 2 로봇 H/W 프로그래밍 고급
1 PID 제어로 모터 속도 정밀 제어하기
PID 원리 이해하기
PID 제어하기
2 IMU로 방향 측정하기
3 LiDAR로 거리 측정하기
LiDAR 개요
LiDAR 패킷 살펴보기
LiDAR 읽기
LiDAR 주요 파일 살펴보기
책속에서





















