본문 바로가기

FOSCAR-(Autonomous Driving)/ROS 스터디

[2024 ROS 스터디]이준호 #4주차 - SLAM + 네비게이션

반응형

ROS 4주차 스터디

https://www.youtube.com/playlist?list=PLX-Ur4rl2-qxGXUo_odjVjv7eqN-Hmuek

 

2024 ROS 스터디 4주차

 

www.youtube.com

 

SLAM - Simultaneous Localization And Mapping : 동시적 위치 추정 및 지도 작성

Navigation : 차량 자동 항법 장치

길찾기에 필요한 4가지

  1. 위치 : 로봇의 위치 계측/추정 하는 기능
  2. 센싱: 벽, 물체 등의 장애물의 계측하는 기능
  3. 지도: 길과 장애물 정보가 담긴 지도
  4. 경로: 목적지까지 최적 경로를 계산하고 주행하는 기능

SLAM, Navigation

 

Gmapping

OpenSLAM에 공개된 SLAM 의 한 종류, ROS에서 패키지로 제공

 

TurtleBot3

https://emanual.robotis.com/docs/en/platform/turtlebot3/simulation/#gazebo-simulation

 

ROBOTIS e-Manual

 

emanual.robotis.com

  • 패키지 설치
 sudo apt-get install ros-noetic-joy ros-noetic-teleop-twist-joy \\
ros-noetic-teleop-twist-keyboard ros-noetic-laser-proc \\
ros-noetic-rgbd-launch ros-noetic-rosserial-arduino \\
ros-noetic-rosserial-python ros-noetic-rosserial-client \\
ros-noetic-rosserial-msgs ros-noetic-amcl ros-noetic-map-server \\
ros-noetic-move-base ros-noetic-urdf ros-noetic-xacro \\
ros-noetic-compressed-image-transport ros-noetic-rqt ros-noetic-rviz \\
ros-noetic-gmapping ros-noetic-navigation ros-noetic-interactive-markers \\
ros-noetic-turtlebot3-msgs ros-noetic-turtlebot3
source ~/.zshrc
  • turtlebot3 및 시뮬레이터(이하 gazebo) 관련 패키지 설치
 cd ~/catkin_ws/src
git clone -b noetic-devel <https://github.com/ROBOTIS-GIT/turtlebot3.git>
git clone -b noetic-devel <https://github.com/ROBOTIS-GIT/turtlebot3_msgs.git>
git clone -b noetic-devel <https://github.com/ROBOTIS-GIT/turtlebot3_simulations.git>
cd .. && catkin_make
source ./devel/setup.zsh
echo -e "\\nexport TURTLEBOT3_MODEL=waffle" >> ~/.zshrc
  • 실행하기
 roslaunch turtlebot3_gazebo turtlebot3_world.launch
roslaunch turtlebot3_teleop turtlebot3_teleop_key.launch
roslaunch turtlebot3_gazebo turtlebot3_gazebo_rviz.launch

각각 gazebo 실행, turtlebot3 조종 터미널, 센서 데이터 확인용 rviz 실행을 위한 명령이다.

  • SLAM - 맵 생성 후 teleop을 통한 맵 구조 파악
export TURTLEBOT3_MODEL=waffle
$ roslaunch turtlebot3_gazebo turtlebot3_world.launch
$ roslaunch turtlebot3_slam turtlebot3_slam.launch slam_methods:=gmapping
$ roslaunch turtlebot3_teleop turtlebot3_teleop_key.launch
  • 맵 생성하기
$ rosrun map_server map_saver -f ~/map

TurtleBot3

ROBOTIS e-Manual

  • 패키지 설치
 sudo apt-get install ros-noetic-joy ros-noetic-teleop-twist-joy \\
ros-noetic-teleop-twist-keyboard ros-noetic-laser-proc \\
ros-noetic-rgbd-launch ros-noetic-rosserial-arduino \\
ros-noetic-rosserial-python ros-noetic-rosserial-client \\
ros-noetic-rosserial-msgs ros-noetic-amcl ros-noetic-map-server \\
ros-noetic-move-base ros-noetic-urdf ros-noetic-xacro \\
ros-noetic-compressed-image-transport ros-noetic-rqt ros-noetic-rviz \\
ros-noetic-gmapping ros-noetic-navigation ros-noetic-interactive-markers \\
ros-noetic-turtlebot3-msgs ros-noetic-turtlebot3
source ~/.zshrc
  • turtlebot3 및 시뮬레이터(이하 gazebo) 관련 패키지 설치
 cd ~/catkin_ws/src
git clone -b noetic-devel <https://github.com/ROBOTIS-GIT/turtlebot3.git>
git clone -b noetic-devel <https://github.com/ROBOTIS-GIT/turtlebot3_msgs.git>
git clone -b noetic-devel <https://github.com/ROBOTIS-GIT/turtlebot3_simulations.git>
cd .. && catkin_make
source ./devel/setup.zsh
echo -e "\\nexport TURTLEBOT3_MODEL=waffle" >> ~/.zshrc
  • 실행하기
 roslaunch turtlebot3_gazebo turtlebot3_world.launch
roslaunch turtlebot3_teleop turtlebot3_teleop_key.launch
roslaunch turtlebot3_gazebo turtlebot3_gazebo_rviz.launch

각각 gazebo 실행, turtlebot3 조종 터미널, 센서 데이터 확인용 rviz 실행을 위한 명령이다.

  • SLAM - 맵 생성 후 teleop을 통한 맵 구조 파악
export TURTLEBOT3_MODEL=waffle
$ roslaunch turtlebot3_gazebo turtlebot3_world.launch
$ roslaunch turtlebot3_slam turtlebot3_slam.launch slam_methods:=gmapping
$ roslaunch turtlebot3_teleop turtlebot3_teleop_key.launch

  • 맵 생성하기
$ rosrun map_server map_saver -f ~/map
반응형