직접 자율주행해보기 with Gazebo, Rviz [ROS] 터틀봇3(Turtlebot3) 가상 시뮬레이션(2) Navigation에서

사실 자율주행을 위해서는 이해해야 할 것이 많다.

특히 ROS가 제공하는 Navigation 기능을 활용하기 위해서는 AMCL과 같은 경로 최적화 알고리즘과 Particle Filter와 같은 위치 추정 이론 등을 알아야 한다.

하지만 일단 지금의 목표는 터틀봇 시뮬레이션을 통해 자율주행이 어떻게 이뤄지는지 접하기 때문에 크게 신경 쓸 필요는 없다.

Navigation에서 자율주행하기

기존과 마찬가지로 터틀봇 3 모델을 설정한다.

그리고 마찬가지로 가상환경(Gazebo World)을 위해 Gazebo를 실행시킨다.

마지막으로 네비게이션 패키지를 실행한다.

원격주행제어를 위해 teleop_key를 실행시킨다.

여기서 중요한 것은 Rviz 상단에서 2D Pose Estimate를 통해 로봇의 위치를 최대한 멋있게 해야 한다는 것이다.

Drag & Drop으로 조절할 수 있어

비슷한 레이어가 겹치면 키보드 주행으로 위치를 더욱 확실하게 해준다.

지금 이 상태가 레이어는 겹쳤는데 현재 로봇의 위치가 잘 정해지지 않은 상태이다.

파티클(녹색 입자)이 분산돼 있다.

주행시키면 로봇 센서 데이터와 기존 지도 데이터를 비교해 이렇게 최적화할 수 있다.

참고로 아무리 줄여도 어느 정도 오차(파티클)가 남아 있다.

이제부터는 자율주행을 시켜보자.

Rviz 상단에서 2D Nav Goal로 원하는 장소(목적지)를 설정한다.

위 그림과 같이 붉은 실과 같은 형태로 경로가 표시되어 자동으로 주행하여 목적지까지 도착할 수 있다.

아래와 같이 거북 모양 맵을 돌아다니면 성공이다.

[ROS] 터틀봇3 내비게이션으로 자율주행 시뮬레이션을 하는

다음은 로보티즈가 제공하는 내비게이션의 예이다.

그동안 간단히 가상환경체험, 지도제작(SLAM), 자율주행(Navigation)을 시뮬레이션해 봤다.

Gazebo를 잘 활용하면, 이외에도 매니뮬레이터, 드론, 자동차 등을 직접 가상 환경에서 시뮬레이션 할 수도 있다.

error: Content is protected !!