Turtlebot3 키보드 제어 기본 실행

0. Prepare

1. TurtleBot3 시뮬레이션 패키지 설치

sudo apt install ros-humble-turtlebot3-gazebo
sudo apt install ros-humble-turtlebot3-navigation2
# 필요시
sudo apt install ros-humble-turtlebot3-simulations
sudo apt install ros-humble-turtlebot3*
  • ros-humble-turtlebot3-gazebo :
    • 로봇이 돌아다닐 빈 공간이나 장애물이 배치된 맵(turtlebot3_world, turtlebot3_house 등) 정보
    • 터틀봇3(Burger, Waffle, Waffle_Pi)의 3D 형상(Meshes)과 물리적 특성(충돌 범위, 무게, 관성 등) 정의
    • Gazebo 안의 가상 모터와 가상 LiDAR가 ROS 2 토픽(/cmd_vel, /scan)과 통신할 수 있게 연결해주는 설정
  • ros-humble-turtlebot3_simulations :
    • turtlebot3_gazebo뿐만 아니라 시뮬레이션에 필요한 다른 유틸리티들도 함께 설치되도록 보장함

2. 환경 변수 설정

# turtlebot3 모델 설정
export TURTLEBOT3_MODEL=burger
# Gazebo model path 설정
export GAZEBO_MODEL_PATH=$GAZEBO_MODEL_PATH:/opt/ros/humble/share/turtlebot3_gazebo/models

3. Gazebo 시뮬레이터 실행

ros2 launch turtlebot3_gazebo turtlebot3_world.launch.py
  • 구성:
    • Gazebo world
    • TurtleBot3 모델 spawn
    • /cmd_vel, /odom, /tf 등 기본 토픽 활성화

+full

4. 키보드 teleop 실행

ros2 run turtlebot3_teleop teleop_keyboard

+full

  • w, a, s, d, x 키로 로봇 제어, gazebo 연동

5. 통신 구조 확인

현재 노드/토픽 목록

# 노드 목록 확인
ros2 node list
 
>>
/gazebo
/robot_state_publisher
/teleop_keyboard
/turtlebot3_diff_drive
/turtlebot3_imu
/turtlebot3_joint_state
/turtlebot3_laserscan
 
# 토픽 목록 확인
ros2 topic list

노드 구조 시각화

ros2 run rqt_graph rqt_graph

+full

제어 흐름

  • /teleop_keyboard (노드) /cmd_vel (토픽) /turtlebot3_diff_drive (노드)
  • /teleop_keyboard
    • 사용자 입력 → 속도 명령 생성
    • 선속도(linear.x), 각속도(angular.z)
    • /cmd_vel 생성/출력
  • /cmd_vel
    • 토픽, 노드 간 데이터를 주고받기 위한 비동기 메시지 채널
    • Publisher: /teleop_keyboard
    • Subscriber: /turtlebot3_diff_drive
  • /turtlebot3_diff_drive
    • 차동구동(differential drive) 모델
    • 속도 명령 → 실제 로봇 움직임 변환
    • gazebo의 플러그인