반응형
로봇이 움질일 때 경로만 가지고는 로봇이 제대로 움직일 수 없습니다.
로봇이 움직이면서 현재의 위치를 알면서 경로를 탐색해야 비로소 제대로된 길을 찾아갈 수 있습니다.
이를 위해서 AMCL 알고리즘을 통해 로봇이 지도상에서 현재 위치를 알아내는 방법을 간략하게 설명드리겠습니다.
AMCL(Adaptive Monte Carlo localization) 이란?
- paricle filter를 통해 위치를 파악하는 알고리즘
- 이동을 하면서 주변 환경을 라이다 센서, 초음파 센서 등 복합적인 센서를 통해 현재 위치를 파악함.
※ Particla filter 적용 방식
- Re-sampling - 중요도 가중치를 통해 정의된 분포에 따라 무작위로 샘플 추출
- Sampling
- Importance Sampling
github 코드 분석 // https://github.com/ros-planning/navigation/tree/noetic-devel/amcl
- cfg: configure
- src=>amcl=>sensor (amcl_laser.cpp, amcl_odom.cpp, amcl_sensor.cpp) // pf: particle filter
amcl scan := base_scan
※ Topic, Service, TF 정리
- Subscribed Topics
- Scan (sensor_msgs / LaserScan)
- tf (tf / Message)
- initialpose (geometry_msgs / PoseWithCovarianceStamped)
- map (nav_msgs / OccupancyGrid)
- Published Topics
- amcl_pose (geometry_msgs / PoseWithCovarianceStamped)
- pariclecloud (goemety_msgs / PoseArray)
- tf (tf / Message)
- Services
- global_localization (std_srvs / Empty)
- request_nomotion_update (std_srvs / Empty)
- set_map (nav_msgs / SetMap)
- TF
반응형
'ROS' 카테고리의 다른 글
[ROS noetic] slam gmapping 토픽, 서비스, tf (0) | 2022.04.04 |
---|---|
ROS 좌표계 설명 오일러, 쿼터니언 (euler, quaternion) (0) | 2022.02.06 |
[ROS noetic] DWA(Dynamic Window Approach) local planner 알고리즘 (0) | 2022.01.18 |