관리 메뉴

데이터 과학

ROS 2와 Gazebo를 활용한 TurtleBot3 로봇 제어 본문

인공지능/피지컬 AI

ROS 2와 Gazebo를 활용한 TurtleBot3 로봇 제어

티에스윤 2026. 10. 28. 16:56

ROS 2와 Gazebo를 활용한 TurtleBot3 로봇 제어

1. 실습 개요

Ubuntu 24.04 환경에서 ROS 2 Jazzy와 Gazebo Harmonic을 활용하여 TurtleBot3 Burger 로봇을 시뮬레이션하고, ROS 2의 /cmd_vel 토픽을 통해 로봇의 이동과 회전을 제어하는 실습이다.

2. 개발 환경

  • OS: Ubuntu 24.04 LTS (WSL2)
  • ROS: ROS 2 Jazzy
  • Simulator: Gazebo Harmonic
  • Robot: TurtleBot3 Burger
  • Programming: ROS 2 CLI, Python

3. TurtleBot3 시뮬레이션 실행

Ubuntu 터미널에서 다음 명령어를 실행한다.

source /opt/ros/jazzy/setup.bash
export TURTLEBOT3_MODEL=burger
ros2 launch turtlebot3_gazebo turtlebot3_world.launch.py

Gazebo 시뮬레이터에 TurtleBot3 로봇이 나타나면 제어 준비가 완료된다.

4. ROS 2를 이용한 로봇 이동

새 터미널을 열고 ROS 2 환경을 활성화한다.

source /opt/ros/jazzy/setup.bash
ros2 topic type /cmd_vel

geometry_msgs/msg/TwistStamped가 출력되는 환경에서는 다음과 같이 제어한다.

① 전진

ros2 topic pub -r 10 /cmd_vel \
geometry_msgs/msg/TwistStamped \
"{twist: {linear: {x: 0.2}, angular: {z: 0.0}}}"

② 회전

전진 명령을 Ctrl+C로 중단한 후 실행한다.

ros2 topic pub -r 10 /cmd_vel \
geometry_msgs/msg/TwistStamped \
"{twist: {linear: {x: 0.0}, angular: {z: 0.5}}}"

③ 정지

회전 명령을 Ctrl+C로 중단한 후 실행한다.

ros2 topic pub --once /cmd_vel \
geometry_msgs/msg/TwistStamped \
"{twist: {linear: {x: 0.0}, angular: {z: 0.0}}}"

5. 실습 결과 및 교육적 의의

ROS 2의 토픽 통신을 이용하여 Gazebo 환경에서 TurtleBot3의 직진, 회전 및 정지 동작을 제어할 수 있다.

이 실습을 통해 학생들은 ROS 2의 Publish/Subscribe 통신 구조, 로봇의 선속도와 각속도 개념, 시뮬레이션 기반 로봇 제어 원리를 학습할 수 있다.

향후 LiDAR 센서 기반 자율주행, SLAM 지도 작성, 강화학습(PPO)을 활용한 자율 이동 로봇 연구로 확장할 수 있다.