[ROS] Karto SLAM 실습

HEEJOON MOON·2023년 1월 26일
0

ROS

목록 보기
5/5

이번 포스트에서는 graph SLAM의 대표적인 예제인 Karto SLAM을 가제보 시뮬레이션에서 실습하는 포스트입니다. 이 외에도 잘 알려진 graph SLAM으로는 Cartographer가 있습니다. 실제로 아래의 논문에서 발췌한 내용으로, 언급한 두가지 SLAM 알고지즘이 대표적인 것을 알 수 있습니다.

  • 2D SLAM Algorithms Characterization, Calibration, and Comparison Considering Pose Error, Map Accuracy as Well as CPU and Memory Usage, Sensors, 2022

Procedure

1) Roscore 실행

$ roscore 

2) 가제보 시뮬레이터를 실행시킵니다. 이 때, 서로 다른 세계의 시뮬레이션 맵을 선택할 수 있습니다. 또한 터틀봇 모델을 'waffle_pi' 혹은 'burger' 중 하나로 선택할 수 있습니다

  • Empty World
$ roslaunch turtlebot3_gazebo turtlebot3_empty_world.launch 
  • Turtlebot3 World
$ roslaunch turtlebot3_gazebo turtlebot3_world.launch 
  • Turtlebot3 House
$ roslaunch turtlebot3_gazebo turtlebot3_house.launch 

3) Karto SLAM 노드를 실행시킵니다. 기본적으로 Karto SLAM 패키지는 turtlebot simulation 패키지 안에 포함되어 있으나, 아래의 커맨드를 이용하여 설치합니다.

# install gMapping SLAM package
$ sudo apt-get install ros-kinetic-slam-gmapping 
  • Run Karto SLAM node
$ export TURTLEBOT3_MODEL=waffle_pi
$ roslaunch turtlebot3_slam turtlebot3_slam.launch slam_methods:=karto 

4) Rviz를 실행시켜 update되는 grid-map을 살펴봅니다. 또한 Teleoperation Node를 실행시켜서 터틀봇은 unknown area로 이동시키면서 map을 업데이트 합니다

  • Teleoperation command
$ roslaunch turtlebot3_teleop turtlebot3_teleop_key.launch 

5) 만들어진 맵을 저정할 수 있습니다.

  • Save map
$ rosrun map_server map_saver -f ~/map 

시현영상

profile
Robotics, 3D-Vision, Deep-Learning에 관심이 있습니다

0개의 댓글