Programming/ROS

Navigation 정의

오숭이 2022. 2. 23. 00:30

내비게이션은 주어진 환경에서 로봇이 현재 위치부터 지정한 목적지까지 이동하는 것으로, 이를 위해서는 주어진 환경의 가구, 물체, 벽 등의 기하학적인 정보(Geometry, geo-: 토지, metry: 측정)가 담긴 지도가 필요합니다. 앞서 설명한 SLAM 기술을 이용하여 로봇이 자신의 위치 정보와 센서로부터 얻은 거리 정보에서 지도를 얻을 수 있었습니다. 내비게이션은 이 지도와 로봇의 엔코더, 관성 센서, 거리 센서 등을 이용하여 현재 위치부터 지도상에 지정된 목적지까지 이동하게 됩니다. 이를 수행하는 순서는 아래와 같습니다.

 

① 센싱(Sensing) - 지도

지도상에서 로봇은 엔코더와 관성 센서(IMU 센서) 등으로 자신의 오도메트리(Odometry) 정보를 갱신하면서 거리 센서가 장착된 위치부터 장애물(벽, 물체, 가구 등)과의 거리를 계측합니다.


② 위치 추정(Localization / Pose Estimation)

엔코더로부터 바퀴 회전량, 관성 센서로부터 관성 정보, 거리 센서로부터 장애물과의 거리 정보 등을 기반으로 기존에 작성해 둔 지도상에 로봇이 현재 어디에 있는지 위치를 추정(Localization / Pose Estimation)하게 됩니다.

*AMCL(Adaptive Monte Carlo Localization)


③ 모션 계획(Motion Planning) 

이동 경로 계획(Path Planning)이라고도 불리는데, 현재 위치에서부터 지도상에 지정받은 목표 지점까지 이동 궤적(Trajectory)을 생성합니다. 지도 전체상의 전역 이동 경로 계획(Global Path Planning)과 로봇 중심으로 일부 지역을 대상으로 한 국부 이동 경로 계획(Local Path Planning)으로 나누어 로봇의 이동 경로를 만듭니다.

*DWA(Dynamic Window Approach)

*TEB(Timed Elastic Band)


④ 이동/장애물 회피(Move / Collision Avoidance)

모션 계획에서 작성된 이동 궤적을 따라서 로봇에 속도 명령을 내리면 로봇은 그 이동 궤적을 따라 목적지까지 이동합니다.