DOI QR코드

DOI QR Code

A Study on the Analysis of TEB Local Planner Parameters to Improve the Target Reach Time of Autonomous Mobile Robot

자율주행 이동로봇의 목표 도달 시간을 개선하기 위한 TEB Local Planner 파라미터의 분석에 관한 연구

  • Received : 2022.09.14
  • Accepted : 2022.09.30
  • Published : 2022.10.31

Abstract

In this study, we analyzed the instantaneous trajectory generation capability and target arrival rate of a mobile robot by changing the parameter of the TEB (Timed Elastic Band) Local Planner among local planners that affect the instantaneous obstacle avoidance ability of the mobile robot using ROS (Robot Operating System) simulation and real experience. As a result, we can expect a decrease in the target arrival time of the mobile robot through a decrease in the parameter values of the TEB Local Planner's min_obstacle_dist, inflation_dist, and penalty_epsilon. However, if this parameter is reduced too much, the risk of obstacle collision of the moving robot is increases, so it is important to combine the appropriate values to construct the parameter.

Keywords

1. 서론

5G 인터넷 기술의 발전과 하드웨어 기술의 발전으로 많은 이동로봇이 보급되고 있는 요즘 ROS(Robot Operating System)를 이용하는 자율주행 이동로봇 또한 증가하게 되었다.

이전 국내 연구를 살펴보면 ROS의 Local planner 중에서 TEB(Timed Elastic Band) Local planner의 파라미터에 관한 연구가 별로 이루어지지 않았다. 그러나 TEB Local planner는 4륜 구동 이동로봇과 Holonomic mobile robot 같은특수한 환경에서도 사용 가능하며 이동하는 장애물 회피에 관한 설정도 제공하므로 충분한 연구가치가 있다고 생각하였다. TEB Local planner는github와 같은 소스 코드 공유 사이트에 공개되어있고 접근이 쉬우므로 이동로봇의 개발 및 보급에큰 영향을 줄 것으로 판단되고 있다[1].

따라서 이 연구에서는 ROS를 사용하는 이동로봇의 순간적인 장애물 회피 능력에 영향을 주는 Local planner 중에서 TEB Local Planner의 파라미터 변경을 통해 이동로봇의 순간적인 궤적 생성 능력과 목표 도달 속도를 분석해 보았으며 이과정에서 시뮬레이션을 통해 Local planner의 최적 파라미터를 찾고 이 파라미터를 실제 이동로봇에 적용하여 구동하면서 이동로봇의 안정성과 목표도달 시간의 감소를 위한 연구가 진행되었다[2].

2. 실험 구성

2.1. 이동로봇의 하드웨어 구성

이번 실험에서 이동로봇의 주행을 담당하는 제어기로 Raspberry Pi 3B가 사용되었으며, 운영체제로 리눅스인 우분투 16.04 LTS, 그리고, ROS 버전으로 Kinetic이 사용되었다. 이동로봇의 구동을 위해서 MDROBOT 회사의 차륜 일체형인 인휠 MDR200 Driving Module과 함께 MD-200T 모터 드라이버가 사용되었다. 동력원으로 자체 제작한 24V 배터리 팩, 주변 환경을 검출하는 2D 센서로 SLAMTEC 회사의 RPLIDAR A1 LiDAR(Light Detection And Ranging)이 적용되었다.

이동로봇은 Fig. 1과 같이 차륜 일체형 모터, 드라이브, 센서, 제어기, 그리고 장치들로 구성되어 있다. 이동로봇에 장착된 드라이브 모듈MDR200은 스마트형으로 모터를 구동할 뿐만 아니라 각 모터에 연결된 차륜의 회전각도에 해당되는 엔코더 신호를 입력받게 된다. 한 편, 드라이브 모듈 MDR200은 RS485 통신을 통해서 주행제어기로 사용되고 있는 Raspberry Pi 3B에 연결되어 있고, 입력받은 엔코더 신호를 Raspberry Pi 3B로 전송하고 Raspberry Pi 3B는 그 엔코더 정보를 이용해서 이동로봇의 이동거리와 방위를 계산하게 된다[3].

이동로봇이 이동하는 과정에서 차륜과 지면 사이의 마찰력이 고르지 못하거나 지면이 고르지 못한 이유 등으로 차륜의 미끄럼 등이 발생하게 되는데, 그 미끄럼에 의해서 엔코더 정보로 계산된이동로봇의 이동거리와 방위로 추정한 이동로봇의위치가 부정확해지는 문제가 발생되게 된다.

SOOOB6_2022_v25n5_853_f0001.png 이미지

Fig. 1 Mobile robot composition diagram

차륜의 엔코더 정보만으로 추정한 이동로봇의 위치를 보정하기 위해서 주변 환경을 직접적으로 검출하는 LiDAR 센서가 사용되게 된다. LiDAR 센서를 이용한 SLAM(Simultaneous Localization and Mapping)을 통해 이동로봇의 위치가 최대한 실제에 근접하도록 이동로봇의 엔코더 정보를 이용해서 추정된 위치가 보정되고 해당 주변 환경의 지도가 작성되게 된다[4].

이동로봇의 위치가 보정되고 주변의 지도가 작성되고 나면, 그 지도를 바탕으로 그 지도위에 특정한 목표 지점이 입력되면 Raspberry Pi 3B에서 실행되고 있는 ROS 프로그램 노드인 Global plan과 Local plan으로부터 이동로봇이 움직여야 하는 속도와 각속도 값이 계산되게 된다. 그 계산된 속도와 각속도 값은 모터 드라이버로 전송되고 모터 드라이버는 다시 Driving Module을 통해서 차륜구동 모터를 구동하면서 이동로봇은 주어진 목표로 진행하게 된다.

2.2 이동로봇의 프로그램 구성

이동로봇 구동 프로그램은 안정성이 확보된 ROS Kinetic 버전을 사용하며, ROS 프로그램 구성은 node와 topic으로 구성되어 있다. ROS 프로그램에서 node는 실행파일을 의미한다. 이번 실험에서 사용된 주요 node는 move base, rplidar, tf amcl, map server, md로 이루어져 있으며 각각의 node에서 주고받는 topic으로는 scan, map, cmd_vel, odom, tf data, pose, modified pose 로 구성되어 있다[5].

Fig. 2는 이동로봇의 프로그램 구성 환경을 도표로 나타낸 것으로 설명은 다음과 같다.

이동로봇의 주행경로 생성 및 제어를 담당하는 move base는 이동로봇의 위치와 방위 정보에 해당되는 odom topic을 구독(입력)하고 이동로봇이 주어진 목표에 도달하도록 이동로봇의 속도와 각속도 정보에 해당되는 cmd_vel topic을 출간(출력)하게 된다. 이 때, MDROBOT 회사에서 제공되는 프로그램 md를 통해서 차륜의 엔코더 신호로부터 odom topic이 생성되고 각 차륜의 모터가 cmd_vel topic에 맞추어 구동되도록 모터 드라이버가 작동하게 된다[6].

이동로봇이 목표로 진행하는 과정에서 move base는 map server에서 받은 map 정보와 LiDAR 에서 받은 주변 환경 scan 데이터를 바탕으로 장애물과 이동로봇 사이의 거리에 관한 위험도를 2D 형태로 나타내는 costmap을 생성하고, global plan으로 장애물을 회피하면서 시작점과 도착지점사이의 대략적인 전체 경로를 생성하는데, 이 과정에서 global planner가 사용된다.

계속해서 이동로봇은 costmap과 global planner 에 의해 생성된 경로를 주행하게 되는데, 그 과정에서 이동로봇의 상태와 즉석에 발생될 수 있는 장애물의 상태를 고려하여 짧은 임시 경로를 계속해서 생성하게 되는데, 그 짧은 임시 경로를 생성해 주는 planner가 local planner이며, 그 local planner에서 생성되는 경로를 바탕으로 이동로봇의 주행제어에 필요한 속도와 각속도 정보가 생성되게 된다. 이번 연구에서는 local planner로 TEB Local Planner가 사용되었다.

SOOOB6_2022_v25n5_853_f0002.png 이미지

Fig. 2 ROS program configuration diagram

이동로봇이 목표 지점으로 진행하는 과정에서 이동로봇의 움직임에 의해 생성된 위치 정보는 ROS 의 tf 서버에서 관리되며, map에서 이동로봇의 위치가 계산된다. 이때, 이동로봇을 구동하는 차륜의 엔코더 신호에서 생성된 정보만으로는 이동로봇의 위치의 정밀도는 충분하지 않으며, 이동로봇이 이동한 경로가 길어지는 경우 오차 누적이 심각하게 증가하기 때문에, 그 오차 누적 문제를 보정하기위해서는 amcl 서버를 통해 주변 환경 scan 데이터와 map 데이터가 비교되어 이동로봇의 현재 위치가 map 상에서 추정되어 이동로봇의 현재 위치는 가장 가능성이 높은 위치로 보정되게 된다[7].

3. 실험 및 고찰

3.1 시뮬레이션

자율주행을 실제 로봇에 적용하기 전에, TEB Local Planner 기반의 이동로봇 주행 시뮬레이션을 통해서 TEB Local Planner의 파라미터들이 조절되었으며, 이동로봇 시뮬레이션 과정에서 이동로봇 실험에 사용할 주요 조절 파라미터들로 min_obstacle_dist, inflation_dist, penalty_epsilon 등이 선정되었다.

Fig. 3은 ROS의 rqt(ROS의 QT기반 Graphic User Interface)로 사용 가능한 plugin 중에서dynamic_reconfigure라는 프로그램의 실행화면을 나타내고 있는데, dynamic_reconfigure는 실시간으로 특정한 파라미터 값을 변경할 수 있는 기능이 있다. dynamic_reconfigure 실행화면을 통해 값 입력 또는 슬라이더의 조작으로 필요한 파라미터를 실시간으로 변경하면서 자율주행 실험이 진행되었다. Fig. 4는 이동로봇의 자율주행 시뮬레이션 화면이 나타내어지고 있으며, 시뮬레이션 로봇 모델인 노란색 직사각형이 시작점에서 빨간색 화살표의 도착점까지 이동하는 실험을 실제 환경이 아닌 컴퓨터의 가상 환경에서 진행하는 모습이 나타내어지고 있다. 이 시뮬레이션에서 검은색은 가상 환경에서 mapping된 map이며 전체 맵에서 장애물을 나타낸다. 정사각형의 진한 색깔이 들어간 네모 영역은 local costmap으로 로봇 주위에 장애물이 인식되는 범위이다. 이 local costmap에서 파란색은 안전한 영역, 빨간색은 위험한 영역, 하늘색은 로봇이 이동하면 장애물과 충돌하는 지역으로 나타내어진다. 이 시뮬레이션을 통해 로봇이 시작점에서 좁은 통로와 장애물을 지나 도착점까지 이동하는 과정이 가상의 환경에서 진행되었으며 이때 시뮬레이션에서 Fig. 3의 슬라이더 조작을 통해 TEB local planner의 파라미터 값이 변경되었다. 이에 따라서 가상 환경에서 이동로봇이 patameter의 변화에 따라 시작점에서 도착점까지 도달하는 시간이 Table 1과 같이 정리되었다.

SOOOB6_2022_v25n5_853_f0003.png 이미지

Fig. 3 TEB Local Planner parameter configuration screen

SOOOB6_2022_v25n5_853_f0004.png 이미지

Fig. 4 Simulation of mobile robot

Table 1. Goal reach time according to parameters

SOOOB6_2022_v25n5_853_t0001.png 이미지

Table 1은 Fig. 3과 같은 시뮬레이션 환경에서 각각의 파라미터와 그 파라미터의 값에 따른 목표 도달시간을 나타내고 있는데, 가상 주행의 시뮬레이션 환경에서 동일한 이동로봇의 시작점과 도착점을 설정하여 이동로봇의 도착점 도달 시간이 측정되었다.

이동로봇과 장애물 사이의 최소 거리를 설정하는 min_obstacle_dist 값은 Table 1에 따르면, min_obstacle_dist가 0.2로 설정된 경우, 이동로봇과 통로 사이의 거리가 그 min_obstacle_dist 값보다 좁으면 이동로봇은 그 통로를 지나갈 수 없다고 판단하여 통로를 지나가지 못하고 정지하 였다. 나머지 경우를 보면 min_obstacle_dist 값이 감소할수록 도달 시간은 감소하는 것을 알 수 있다. 그러나, 그 min_obstacle_dist 값이 감소할수록 TEB Local Planner에 의해 경로를 생성하는 과정에서 이동로봇이 장애물에 가까이 접근할 수있어서 위험성이 증가하는 모습을 보였다.

다음으로 inflation_dist는 공간에 여유가 있는 경우 로봇이 그 거리만큼 떨어져서 진행하게 하는 파라미터이다. 따라서 그 값을 감소시킬 경우 Table 1과 같이 도달 시간이 감소하는 모습을 보이지만 min_obstacle_dist와 같이 inflation_dist가 감소할수록 장애물에 가까이 가는 위험성이 증가하는 모습을 보였다.

마지막으로 penalty_epsilon은 이동로봇이 장애물에 접근하는 것을 막는 값으로 이 값이 클수록로봇이 장애물에 접근하려고 하는 경우 로봇을 멈추고 장애물 반대편으로 이동하는 모습을 보였다. 따라서 Table 1과 같이 penalty_epsilon 값이 0.5인 경우 이동로봇이 장애물에 가까이 가면 이동로봇은 장애물과 반대쪽으로 이동하면서 경로를 따라가지 못하고 결국 멈추게 되었다. penalty_ epsilon 값이 0.5인 경우를 제외하면 다른 파라미터와 같이 penalty_epsilon 값이 감소할수록 목표에 빨리 도달하나 이 경우 로봇이 예상치 못하게 장애물에 가까이 가는 경우 그대로 장애물에 부딪힐 위험성이 증가할 것으로 추정된다.

따라서 이동로봇이 TEB Local Planner로 생성된 경로를 따르는 목표 도달 시간 감소를 위해서는min_obstacle_dist와 inflation_dist, penalty_ epsilon 값들은 감소 되어야 한다. 그렇지만, 안정적으로 이동로봇을 운용하기 위해서는 min_obstacle_ dist 와 inflation_dist, penalty_epsilon 등이 너무 감소하게 되면, 이동로봇은 장애물에 근접해서 이동하기 때문에, 충돌 및 사고의 위험을 감소시키기 위해서는 그 값들은 안정한 범위에서 감소되어야 한다.

3.2 제작 및 시험

시뮬레이션을 현실에 적용하기 위해 Fig. 5는 자체 제작한 이동로봇의 모습을 나타내고 있으며 크기는 가로 460mm, 세로 610mm, 높이 230mm 이다. 이 이동로봇을 이용하여 시뮬레이션과 비슷한 방식으로 시작점과 도착점을 설정하여 시작점과 도착점 사이에 폭 800mm의 문과 같은 이동로봇이 자율주행으로 통과하기 어려운 장애물을 통과하도록 하여 이동로봇이 원활하게 통과하는지 도착점 도달 시간을 측정하는 자율주행 실험이 진행되었다.

Table 2. Goal reach time according to parameters

SOOOB6_2022_v25n5_853_t0002.png 이미지

SOOOB6_2022_v25n5_853_f0005.png 이미지

Fig. 5 Mobile robot

이동로봇의 자율주행 실험 결과는 Table 2와 같이 나타났으며, 그 결과는 시뮬레이션과 유사하게 TEB Local Planner의 파라미터인 min_obstacle_ dist와 inflation_dist, penalty_epsilon의 값이 감소할수록 이동로봇의 목표 도달 시간이 감소하는 것으로 관찰되었다.

시뮬레이션 진행을 통해 예상되었던 파라미터의 값이 감소할 경우 이동로봇이 장애물에 가까이 접근해서 위험한 상황이 발생되는 현상은 현실의 이동로봇에서도 적용되어 해당 파라미터가 매우 작은 값으로 설정된 경우 이동로봇은 장애물에 충돌하였다. Fig. 6의 (a)는 파라미터가 적절할 경우이동로봇이 정상적으로 주행하고 있는 상황을 Fig. 6 의 (b)는 파라미터가 부적절한 경우 이동로봇이 장애물에 매우 근접한 상황을 나타내고 있다.

SOOOB6_2022_v25n5_853_f0006.png 이미지

Fig. 6 Mobile robot through narrow path

Fig. 6의 (a)의 경우 이동로봇은 양쪽 장애물로부터 비슷한 거리를 두고 양쪽에 여유를 두고 진행하는 반면, Fig. 6의 (b)의 경우 이동로봇은 한쪽에 지나치게 근접해서 불안하게 통과한다.

따라서 (a)와 같은 형상으로 로봇이 장애물을 회피하면서 빠른 속도로 도달하는 파라미터의 값은 각각 min_obstacle_dist 값 0.1, inflation_dist 값 0.6, penalty_epsilon 값 0.03이 자체제작 모바일 로봇에 적절한 파라미터 값으로 평가되고 있다.

4. 결론

TEB Local Planner의 파라미터 변경을 통해 파라미터에 따른 실제 자율주행 이동로봇의 목표 도달 시간에 관한 연구를 진행하였으며, 이번 연구 결과에 따르면 TEB Local Planner의 파라미터 값인 min_obstacle_dist와 inflation_dist, penalty_ epsilon이 감소할수록 이동로봇의 도착점 도달 시간이 감소하는 경향을 보인다는 것이 측정되었다. 그러나 이 파라미터가 지나치게 감소될 경우 좁은 통로에서 이동로봇의 장애물 충돌 위험이 증가하게 되므로 무조건 값을 감소시키는 것이 아니라 적당한 값을 조합하여 파라미터를 구성하는 방식이 중요하다고 생각된다. 종합적으로 이번 실험에서는 자체제작 이동로봇에 맞는 파라미터는 각각 min_obstacle_dist는 0.1, inflation_dist는 0.6, penalty_epsilon은 0.03을 적용하는 것이 이동로봇의 목표 도달 시간 단축에 가장 적절한 값으로 평가된다. 그러나 이번 실험은 특정 실험 환경에서 진행한 실험으로, 좀 더 일반적인 실험 환경과 조건에서 실험을 통해 그 자율주행 성능을 검증을 진행하면 좀 더 신뢰성 높은 이동로봇의 자율주행이 구현될 것이다.

References

  1. 최웅식, "ERP42 차량에서의 장애물 회피를 위한 TEB Local Planner 적용", 한국생산제조학회 학술발표대회 논문집, pp. 159, (2020).
  2. Jiafeng Wu, "An Improved Timed Elastic Band (TEB) Algorithm of Autonomous Ground Vehicle (AGV) in Complex Environment", Sensors, pp. 8312, (2021).
  3. Y. Kim, S. Kim, and Y. Kwak, "Dynamic analysis of a nonholonomic two-wheeled inverted pendulum robot," Journal of Intelligent and Robotic Systems, vol. 44, no. 1, pp. 25-46, (2005). https://doi.org/10.1007/s10846-005-9022-4
  4. 김정민, 정승영, 전태룡, 김성신, "자율주행 장치를 위한 특징 맵 기반 SLAM", 한국해양정보통신학회논문지, pp. 1437-1443, (2009).
  5. Pablo Marin-Plaza, Ahmed Hussein, David Martin, and Arturo de la Escalera "Global and Local Path Planning Study in a ROS-Based Research Platform for Autonomous Vehicles".
  6. Yasuhiro Nitta, So Tamura, and Hideki Takase, "ZytleBot: FPGA integrated development platform for ROS based autonomous mobile robot", 29th International Conference on Field Programmable Logic and Applications (FPL), pp. 422-423, (2019).
  7. Susumu Tarao, Yasunori Fujiwara, Naoaki Tsuda, and Soichiro Takata, "Development of Autonomous Mobile Robot Platform Equipped with a Drive Unit Consisting of Low-End In-Wheel Motors", 2020 5th International Conference on Control and Robotics Engineering (ICCRE)., pp. 42-47.