🌍 SLAM (Simultaneous Localization and Mapping) 이해 및 개요
SLAM(Simultaneous Localization and Mapping)은 동시적 위치추정 및 지도작성을 의미하는 기술로, 로봇이 자신의 위치를 추정하면서 동시에 주변 환경의 지도를 작성하는 핵심 기술입니다. 이 기술은 자율주행, 로봇공학, 드론, 증강현실(AR) 등의 분야에서 활발히 활용되고 있습니다.
🔍 SLAM의 주요 구성 요소
1️⃣ 위치추정(Localization): 로봇이 현재 어디에 있는지를 파악합니다. 2️⃣ 지도작성(Mapping): 주변 환경을 탐색하고 그 정보를 바탕으로 지도를 생성합니다.
이 두 가지 기능을 동시에 수행함으로써, 로봇이 미지의 환경에서도 자율적으로 움직일 수 있습니다.
⚙️ SLAM의 작동 방식
1️⃣ 센서 데이터 수집 및 전처리
- 카메라, 라이다(LiDAR), IMU(관성 측정 장치) 등의 센서를 사용하여 데이터를 수집합니다.
2️⃣ 로봇 위치 및 지도 최적화
- 센서 데이터를 활용하여 로봇의 위치를 추정하고, 환경 지도를 작성합니다.
- 그래프 기반 최적화(Graph-based Optimization) 기법이 주로 사용됩니다.
🚀 SLAM의 응용 분야
✔️ 자율주행 차량 🚗
➡️ 실시간으로 도로 주행 시 위치를 파악하고 지도를 작성합니다.
✔️ 로봇 청소기 🏠
➡️ 효율적인 경로를 계획하여 청소할 수 있도록 도와줍니다.
✔️ 드론 🚁
➡️ 비행 중 장애물을 피하고 목적지까지 안전하게 이동할 수 있도록 합니다.
✔️ 증강현실(AR) 및 가상현실(VR) 🎮
➡️ 현실 세계와 가상의 오브젝트를 정밀하게 매칭합니다.
📌 SLAM의 종류
🔹 비주얼 SLAM(vSLAM) 📷
➡️ 카메라를 활용하여 영상 기반으로 위치를 추정하고 지도를 작성합니다.
🔹 라이다 SLAM (LiDAR SLAM) 🛑
➡️ 라이다 센서를 이용하여 3D 포인트 클라우드를 생성하고, 이를 통해 위치 및 지도 정보를 계산합니다.
🔹 휠 오도메트리 기반 SLAM 🛞
➡️ 로봇의 바퀴 회전 정보를 활용하여 위치를 추정합니다. 다만, 누적 오차가 발생할 수 있습니다.
🧩 SLAM 알고리즘
🔹 Voxel Grid
➡️ 3차원 공간을 작은 정육면체(Voxel)로 나누어 데이터를 표현하는 방법으로, 의료 영상, 지리 정보 시스템(GIS), 3D 모델링 등에 활용됩니다.
🔹 Extended Kalman Filter (EKF-SLAM)
➡️ 확장 칼만 필터를 이용하여 센서 데이터를 융합하고 위치 및 지도를 추정하는 방식입니다.
🔹 Graph-SLAM
➡️ 그래프 최적화 기법을 이용하여 센서 데이터 및 위치 추정을 결합하는 방식입니다.
🔥 SLAM 기술의 미래
SLAM 기술은 로봇과 자율주행의 핵심 요소로 자리 잡고 있으며, AI 및 딥러닝 기술과 결합하여 더욱 정밀한 실시간 환경 인식이 가능해지고 있습니다. 앞으로도 자율주행, 산업용 로봇, 스마트시티, 증강현실 등 다양한 분야에서 SLAM의 활용도가 높아질 것으로 기대됩니다! 🚀
https://roytravel.tistory.com/405
SLAM의 이해와 구현 PART 01 요약
본 글은 국내 신동원, 장형기님께서 배포해주신 "SLAM의 이해와 구현"이라는 자료를 기반으로 요약하였음을 밝힙니다. 01. SLAM 이란? SLAM이란 동시적 위치추정 및 맵핑을 의미한다. 아주 쉽게 말해
roytravel.tistory.com

오늘의 실습내용!!
가제보 시뮬레이션이 안열려서 하루종일 애먹은 하루였습니다.
이를 해결하기 위해 ssh로도 다운받아보고 했는데
실행시킬때 안된다고 강제종료하고 같은 터미널에 또 키지 마시고
새로운 터미널 창 열어보세요!!
바로 등장!!
자 그럼 teleopkey로 먼저 slam 완성하고 mapping해봅시다.
slam 키려면 cartographer켜야하는데
역시 봐주질않죠...? 없다해버리네요??
sudo apt-get install ros-humble-turtlebot3-cartographer
슥 다운받고!
source ~/turtlebot3_ws/install/setup.bash
파일 소스해서 환경변수 업데이트!!
cd ~/turtlebot3_ws
rosdep install --from-paths src --ignore-src -r -y
누락된 의존성 설치 해주고
ros2 pkg list | grep turtlebot3_cartographer
카토그래퍼 확인 슥 해주면
ros2 launch turtlebot3_cartographer cartographer.launch.py use_sim_time:=True
odom으로 바꿔주시고
teleopkey로 조종해서 맵핑
하우스 매핑 끝나면
ros2 run nav2_map_server map_saver_cli -f~/map
하면 yaml파일과 map.pgm이 생깁니다!!
그리고 이제 estimate해서 맞춰주고 돌리기
네비게이션 패키지가 다운이 안된거 같다...
다운이 잘 안된건가...
sudo apt update
sudo apt install ros-humble-turtlebot3-navigation2
다운 받아주고
cd ~/turtlebot3_ws/src
git clone https://github.com/ROBOTIS-GIT/turtlebot3_navigation2.git
cd ~/turtlebot3_ws
colcon build
github 아이디와 패스워드 입력해주시면 다운 가능합니다!
source ~/turtlebot3_ws/install/setup.bash
환경변수 소스에 저장
ros2 pkg list | grep turtlebot3_navigation2
패키지 목록 확인
ros2 launch turtlebot3_navigation2 navigation2.launch.py map:=$HOME/map.yaml
동작하면 라이다만 도는게 맞나?
cartographer를 안켰었네욬ㅋㅋㅋ
ros2 launch turtlebot3_gazebo turtlebot3_house.launch.py