본문 바로가기
-----ETC-----/SLAM

[SLAM] 4일차: TurtleBot3를 이용한 ROS와 Gazebo를 활용한 SLAM 실습

by cogito21_cpp 2024. 6. 3.
반응형

TurtleBot3를 이용한 ROS와 Gazebo를 활용한 SLAM 실습

이번 단계에서는 TurtleBot3를 이용하여 ROS와 Gazebo에서 SLAM을 실행하고 시뮬레이션 환경에서 실습을 진행합니다.

1. TurtleBot3 설치 및 환경 설정

M2 Pro에서 ROS Noetic과 Gazebo가 이미 설치되어 있다고 가정하고, TurtleBot3 패키지를 설치합니다.

 

1. TurtleBot3 관련 패키지 설치

mkdir -p ~/turtlebot3_ws/src
cd ~/turtlebot3_ws/src
git clone https://github.com/ROBOTIS-GIT/turtlebot3.git
git clone https://github.com/ROBOTIS-GIT/turtlebot3_msgs.git
git clone https://github.com/ROBOTIS-GIT/turtlebot3_simulations.git
cd ~/turtlebot3_ws
source /opt/ros/noetic/setup.bash
catkin_make

 

2. 환경 설정

echo "source ~/turtlebot3_ws/devel/setup.bash" >> ~/.bash_profile
echo "export TURTLEBOT3_MODEL=burger" >> ~/.bash_profile
source ~/.bash_profile

 

2. Gazebo에서 TurtleBot3 시뮬레이션 실행

 

1. ROS 코어 실행

roscore &

 

2. TurtleBot3 월드에서 Gazebo 시뮬레이션 실행

roslaunch turtlebot3_gazebo turtlebot3_world.launch

 

3. SLAM 실행

1. SLAM 노드 실행

Gmapping을 사용하여 SLAM을 실행합니다.

roslaunch turtlebot3_slam turtlebot3_slam.launch slam_methods:=gmapping

 

2. RViz에서 SLAM 결과 확인

roslaunch turtlebot3_slam turtlebot3_slam.launch

RViz가 실행되면, TurtleBot3의 움직임에 따라 지도 생성이 시작됩니다.

 

 

4. TurtleBot3 제어

TurtleBot3를 직접 제어하여 SLAM을 수행해 보겠습니다. 터미널을 새로 열고 아래 명령을 입력합니다.

 

1. 텔레옵(teleop) 키보드 제어

roslaunch turtlebot3_teleop turtlebot3_teleop_key.launch

 

키보드를 사용하여 TurtleBot3를 제어할 수 있습니다. 키보드 화살표 키를 이용해 로봇을 움직이면서 RViz에서 실시간으로 SLAM 지도가 생성되는 것을 확인합니다.

추가 실습

이 실습을 통해 TurtleBot3를 이용한 SLAM 시뮬레이션의 기본 과정을 익혔습니다. 추가로 다음과 같은 실습을 진행할 수 있습니다:

  1. 다른 SLAM 알고리즘 적용
    • Cartographer, Hector SLAM 등 다른 SLAM 패키지를 설치하고 실행해보세요.
  2. SLAM 성능 비교
    • 다양한 SLAM 알고리즘의 성능을 비교해보고, 각 알고리즘의 장단점을 이해해보세요.
  3. 실제 로봇 적용
    • 실제 TurtleBot3 로봇이 있는 경우, 시뮬레이션 환경에서 학습한 내용을 실제 환경에서 테스트해보세요.

이제 SLAM의 기본 이론과 실습을 마쳤습니다.

반응형