Navigation은 주어진 환경에서 로봇을 어떤 한 위치에서 지정된 목적지로 이동시키는 것입니다. 이를 위해 주어진 환경의 가구, 사물, 벽의 geometry를 포함하는 지도가 필요합니다. 이전 SLAM 섹션에서 작성한 지도를 사용합니다.

3.1 Launch Simulation World

Gazebo를 실행시켜 가상 환경을 불러와 주세요

$ roslaunch turtlebot3_gazebo turtlebot3_world.launch

3.2 Run Navigation Node

이전에 작성한 지도로 Navigation node를 실행시켜 주세요

$ roslaunch turtlebot3_navigation turtlebot3_navigation.launch map_file:=$HOME/map.yaml

3.3 Estimate Initial Pose

로봇이 자율주행을 하기 전에 먼저 지금 로봇이 지도상에서 어디에 있는지를 알아야 함(AMCL 이라는 알고리즘을 사용)

AMCL은 ‘입자’를 사용하여 로봇의 가능한 위치를 나타내는 알고리즘. 각 입자는 로봇이 해당 위치에 있을 가능성을 나타냄 이 입자가 가능한 실제 로봇의 위치를 추정하도록 초기화를 해줘야 한다.

                                    초기화 전

                                초기화 전

                                  초기화 후

                              초기화 후
  1. Rviz 메뉴에서 2D Pose Estimate을 클릭하세요

Untitled

  1. 실제 로봇이 위치한(Gazebo 로봇이 위치한 위치) 지도 부분 클릭하고 녹색 화살표를 로봇이 바라보는 방향으로 드래그 하세요

Untitled

  1. 키보드 teleoperation node를 키고 로봇을 조종하여 로봇의 위치를 정확하게 찾으세요
$ roslaunch turtlebot3_teleop turtlebot3_teleop_key.launch

                                조종 전                                                                     조종 후

                            조종 전                                                                     조종 후