본문 바로가기

FOSCAR-(Autonomous Driving)/ROS 스터디

[2025 ROS 스터디] 홍동형 #4주차 - SLAM과 내비게이션

반응형

길 찾기에 필요한 것

위치 : 로봇의 위치 계측/추정하는 기능

GPS(Global Positioning System)

한계 - 큰 오차, 날씨에 영향, 실외만 가능

 

Indoor Positioning Sensor

Landmark (Color, IR Camera) - 성능 good, 가격이 비쌈

Indoor GPS

WIFi SLAM

Beacon

 

추측 항법

이동 거리, 회전 값 계산, 위치측정

누적오차 발생

IMU 등의 관성 센서, 필터로 위치 보상

(상대좌표)

센싱 : 벽, 물체 등의 장애물의 계측하는 기능

거리센서

 

비전센서

 

Depth camera

지도 : 길과 장애물 정보가 담긴 지도

지도 만들기 -> SLAM!!

경로 : 목적지까지 최적 경로를 계산하고 주행하는 기능

내비게이션

위치 추정

경로 탐색/계획

- DWA, A* 등...

SLAM

Simultaneous Localization And Mapping

동시적 위치 추정 및 지도 작성

 

Gmapping - OpenSLAM에 공개된 SLAM의 한 종류

SLAM 관련 노드들의 처리 과정

위치 추정 필터 - 칼만 필터, 파티클 필터 등..

거의 교과서

내비게이션

차량 자동 항법 장치


실습하기

패키지 설치

강의에서는 kinetic 버전이나 나는 noetic버전을 사용하기에 주의가 필요하다. 에러를 처리하느라 많은 코드를 쳐서 뭐가 정답인지 모르겠다...

일단 참고 자료 : https://emanual.robotis.com/docs/en/platform/turtlebot3/simulation/#gazebo-simulation

어찌저찌 성공했다.

RViz의 여러 옵션들은 직접사용하면서 배워보도록 하자

 

SLAM 사용하기

위와 동일하게 gazebo, 원격조종을 실행하고 이번에는 SLAM을 실행하자

$ roslaunch turtlebot3_gazebo turtlebot3_world.launch
$ roslaunch turtlebot3_slam turtlebot3_slam.launch slam_methods:=gmapping
$ roslaunch turtlebot3_teleop turtlebot3_teleop_key.launch

RViz와 Gazebo가 실행된 모습을 볼 수 있다.

열심히 지도를 그려보자

지도를 완성하면

$ rosrun map_server map_saver -f ~/map

이 명령어로 지도를 저장하자

 

map.pgm, map.yaml 파일이 생성된 것을 볼 수 있다.

 

내비게이션 사용하기

이번에는 Gazebo와 내비게이션을 실행하자

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

처음에는 초록선 즉, 로봇의 위치와 방향에 대한 확률이 흩어져있다.

2D Pose Estimate와 원격조종툴로 이동, 회전을 해서 로봇의 위치를 보다 정확히 인식시키자.

초록선들이 로봇에 집중된 모습을 볼 수 있다.

 

2D Nav Goal로 로봇의 원하는 지점을 정할 수 있다.

목적지를 위한 이동경로와 실제 Gazebo상에서도 움직이는 모습을 볼 수 있다.

 

 

 

 

출처 : https://youtu.be/067HSmDvXdE?si=kqwsWSWZlxTy6EMg

반응형