https://jihong.tistory.com/820
[issac sim] FAST-LIVO2 - 1
1. isaac sim을 실행 2. robot_localization패키지의 ekf_node를 실행한다. ( odom --> base_link의 TF를 만들기 위해서 )ros2 run robot_localization ekf_node --ros-args -r __node:=ekf_filter_node --params-file ~/fast_ws/config/ekf_carter1.yaml
jihong.tistory.com
저거 포스팅 이어서 한다....
저기에서는 단순히 fast-livo2를 실행해서 지도작성하는거였다....
이번에는 사전에 작성된 지도를 불러와서 주행할건데, 실시간으로 장애물을 costmap에 반영할 계획이다...
static_map + localization + dynamic costmap 방식으로 할 예정이다.
- 사전에 작성한 지도는 정적인 맵 ( /map )으로 나타낸다. ==> 여기서 벽,기둥같은 것들이 정적인 장애물이다.
- 위치추정 TF는 FAST-LIVO2 + EKF을 사용한다... ( map --> odom --> base_link )
- 실시간 장애물은 local_costmap or global_costmap에 반영한다.
- nav2에서는 /map + TF + costmap을 이용해서, 경로생성 및 주행을 한다.
===> 즉, map은 고정, 실시간 변화는 costmap, 로봇의 위치는 FAST-LIVO2/EKF기반 TF로 처리.
전체적인 구조
- 1. [isaac-sim]
- IMU , odometry , sensorData같은 데이터를 보냄.
- 2. [Static Map]
- 사전에 작성된 map을 nav2_map_server로 열어준다. ( /map토픽 )
- 3. [Odometry]
- wheel odom + IMU를 가지고 EKF를 적용...
그러면 /odometry/filtered 토픽이 나올것임. 해당 토픽은 odom --> base_link의 TF를 가짐. - EKF는 odom --> base_link의 TF를 만든다. 이는 짧은 시간에서 부드럽고 연속적인 로컬 위치이다.
- wheel odom + IMU를 가지고 EKF를 적용...
- 4. [ Global Localization ]
- FAST-LIVO2의 pose + EKF의 결과를 기반으로 map --> odom TF를 만든다.
- FAST-LIVO2는 map기준 전역 pose를 나타내며, drift를 보정하는 global localization역할이다...
- 그래서 해당 pose와 EKF의 odom을 이용해서 map --> odom TF를 계산한다.
- FAST-LIVO2의 pose + EKF의 결과를 기반으로 map --> odom TF를 만든다.
- 5. [Dynamic Costmap]
- 3D LiDAR의 pointCloud를 /scan으로 변환..... 그리고 이를 costmap에 반영
- 6. [nav2]
- 주행
'gazebo > SLAM' 카테고리의 다른 글
| [issac sim] FAST-LIVO2 - 1 (0) | 2026.06.17 |
|---|---|
| FAST-LIVO2 (0) | 2026.06.08 |
| VINS-Fusion 이란? (0) | 2026.05.27 |
| [Slam] Vins-Fusion (0) | 2026.05.26 |
| pySLAM (1) | 2025.12.06 |