ROS 기반 모듈형 AMR 설계 및 구현
초록
본 논문에서는 제어부, 메인부, 구동부, 센서부 및 전원부로 구성된 5개의 모듈을 핸디카트 하부에 장착 가능한 ROS(robot operating system) 기반 AMR(autonomous mobile robot)을 제안한다. 제안하는 AMR은 장애물 감지 및 회피를 위해 LiDAR(light detection and ranging) 및 적외선 센서를 사용하였으며, 전방 모니터링 및 사용자 경로 추종 시스템 구현을 위해 스테레오 카메라 및 UWB(ultra-wideband) 센서를 사용하였다. 실험 결과 실생활 환경인 건물 내 복도에서 센서 데이터를 통합하여 지도를 생성하는 SLAM(simultaneous localization and mapping), 생성된 지도를 통해 목적지로 자율주행을 하는 네비게이션(navigation) 및 UWB 센서를 사용한 사용자 경로 추종 시스템이 오차 20cm 이내로 정상 동작함을 검증하였다.
Abstract
In this paper, we propose an AMR(autonomous mobile robot) based on ROS(robot operating system) that can mount five modules consisting of a control unit, a main unit, a driving unit, a sensor unit, and a power supply unit at the bottom of a handy cart. The proposed AMR uses LiDAR (light detection and ranging) and infrared sensors for obstacle detection and avoidance and uses stereo cameras and UWB (ultra-wideband) sensors to implement forward monitoring and user path tracking systems. The experimental result shows that SLAM(Simultaneous localization and mapping) generates maps by integrating sensor data in corridors in buildings, which are real-life environments, navigation that destination through generated maps and user path tracking systems using UWB sensors operate normally within an error of 20 cm.
Keywords:
ROS, AGV, AMR, handy cart, UWBⅠ. 서 론
최근 비대면 산업이 활성화됨에 따라 물류 공장에서 주로 사용되는 자동화 장비, 자율주행차량, 물류 로봇 등의 연구가 활발히 이루어지고 있다[1]-[3]. 이러한 로봇은 주행 방식에 따라 AGV(Automated Guided Vehicle)와 AMR(Autonomous Mobile Robot)로 나누어진다.
AGV는 마그네틱 라인, QR 코드, LiDAR, 카메라 등의 센서를 사용하여 사람의 개입 없이 자율주행으로 목적지까지 물체를 운반하는 물류 로봇이다. 마그네틱 라인을 사용하는 AGV의 경우 마그네틱 라인을 이동 경로에 설치해야 하며, QR 코드를 사용하는 AGV의 경우 공장 내부에 QR 코드를 부착 후 카메라를 사용하여 공장 내부 또는 위치 인식을 수행한다[4].
AMR은 LiDAR 및 카메라를 통해 위치를 인식, 지도 생성 및 자율주행으로 목적지까지 물체를 운반하는 물류 로봇이다. LiDAR를 사용하는 AMR의 경우 LiDAR를 사용하여 물체와 로봇과의 거리 측정, 장애물 회피 및 지도 생성을 수행하며 물류 공장 등 산업현장에서 주로 사용된다.
그림 1의 (a)는 물류 공장에서 사용하는 대형 AMR이며, 물류 공장을 제외한 일반 가정 또는 공공기관, 사무용으로 사용하기엔 어려움이 있으며, 최근 일반 사무공간 및 가정에서도 물건을 자율주행기반으로 운반하는 경량화된 AMR의 필요성이 증가하고 있다[5].
그림 1(b)는 물체를 운반할 때 주로 사용되는 핸디카트이며, 가정 또는 사무실과 같은 실생활 또는 사무용으로 사용된다. 본 논문에서 제안하는 모듈형 AMR은 그림 2와 같이 물체를 운반할 때 사용되는 핸디카트 하부에 모듈을 부착하여 AMR의 기능을 사용할 수 있도록 구현하였다.
제안하는 AMR은 그림 3과 같이 제어부, 메인부, 구동부, 센서부 및 전원부인 총 5개의 모듈로 설계하였으며, 이러한 모듈 중 AMR 센서부의 UWB(Ultra-WideBand)를 사용한 AMR의 사용자 경로 추종 시스템을 구현하였다.
본 논문의 2장에서는 모듈형 AMR의 구성 및 각 모듈의 특징과 역할을 설명하며, 3장에서는 모듈형 AMR을 구현하기 위해 사용된 ROS에 관해 서술한다. 이후 4장에서는 기존 AMR의 기능인 SLAM(Simultaneous Localization and Mapping) 및 네비게이션(Navigation) 알고리즘을 통해 건물 내부에서 모듈형 AMR로 구현한 결과를 제시하며, 5장에서는 결론에 대해 논한다.
Ⅱ. 모듈형 AMR
그림 4 및 표 1은 제안하는 모듈형 AMR의 연결도 및 하드웨어 구성을 나타낸다.
2.1 메인부
메인부는 그림 4와 같이 제어를 위한 메인보드와 모터를 제어하는 모터 컨트롤러, 적외선 센서, 조이스틱의 데이터를 읽어 메인보드와 통신을 하는 MCU(Micro Control Unit)로 구성된다.
메인보드는 LiDAR와 RGB-Depth 카메라 데이터의 원활한 처리를 고려하여 NVIDIA 사의 Jetson Xavier NX로 구성되며, MCU는 4개의 적외선 센서와 조이스틱 데이터를 수신받기 위해 Arduino Mega로 구성된다.
제안하는 모듈형 AMR은 각 모듈과 센서들의 통합을 위해 이기종 센서들의 통합이 쉬운 ROS(Robot Operating System)를 기반으로 구성된다[6]. ROS는 메인보드인 Jetson Xavier NX에 설치되며, 메타 운영체제인 ROS를 실행하기 위해 linux 배포판인 Ubuntu 18.04 LTS(Long-Term Support) 버전을 사용한다. 메인부는 구동부 모터의 엔코더 데이터를 받아 AMR의 위치를 추정하는 오도메트리 실행 ROS 패키지인 diff.launch와 모터 컨트롤러에 신호를 입력하는 ROS 패키지인 driver.launch를 통해 제어한다.
2.2 구동부
구동부는 그림 4와 같이 BLDC 모터 및 모터 컨트롤러로 구성되며, 메인부에서 보낸 모터 제어 신호를 모터 컨트롤러를 통해 BLDC 모터를 제어한다. 구동부는 모터의 오도메트리(Odometry) 센서를 통해 AMR의 위치 인식을 수행한다. 모터 컨트롤러는 RS232, RS485 등의 통신이 가능하며 ROS를 지원하는 모터 컨트롤러인 Roboteq사의 모터 컨트롤러 SBL2360T로 구성하였다.
2.3 센서부
센서부는 그림 4와 같이 적외선 센서, LiDAR, 카메라 및 UWB로 구성되며, AMR의 자율주행 및 이동 시에 장애물을 감지 및 회피를 수행한다.
적외선 센서는 전방의 장애물을 인지하며, 20 ~ 150cm를 감지할 수 있는 적외선 센서인 GP2Y0A02를 사용한다. 적외선 센서는 AMR의 측면 및 전방의 최소 안전거리를 50cm로 유지하는 기능을 수행한다.
LiDAR는 UART와 같은 Serial 통신을 지원하는 RPLiDAR 사의 RPLiDAR A3로 선정하였다. LiDAR는 센서 데이터를 사용하여 지도 제작을 하는 SLAM을 위해 AMR에 장착 후 RPLiDAR의 패키지를 구동한다. 본 논문에서 사용하는 RPLiDAR A3는 25m의 범위를 360°로 감지한다. AMR 전방에 LiDAR를 장착할 시에 그림 5(a) 및 (b)와 같이 LiDAR 후방 180°에 있는 AMR을 장애물로 인식할 수 있다. 이를 해결하기 위해 LiDAR의 범위를 제한하는 ROS 패키지인 Laser_filter 패키지를 사용하여 LiDAR 전방의 180°를 감지하도록 제한한다.
그림 6은 UWB를 사용한 사용자 추종 시스템 구성도이다. UWB는 특정 공간에 설치되어 태그(Tag)와의 거리를 측정하는 앵커(Anchor) 및 앵커와의 거리 값을 측정하는 태그, 그리고 태그의 데이터를 수신하는 리스너(Listener)로 분류된다.
본 논문에서는 그림 7의 시스템 동작 흐름도와 같이 AMR을 관리할 수 있는 호스트 PC에 연결된 리스너로부터 UWB 좌표를 수신 후 이를 네트워크로 송신해주는 ROS 패키지를 개발 및 통합하였다. 또한, 호스트 PC가 공유한 데이터를 받아 두 개의 Tag 좌표로 변환하기 위해 데이터를 분리하여 원하는 데이터인 좌표값을 추출하고, 좌표의 차이와 일정한 거리 0.5m로 설정하여 일정 거리를 유지하며 사용자를 추종하도록 제어하였다.
2.4 제어부
제어부는 그림 4와 같이 LCD 배터리 잔량 표시기와 전원 버튼, 메인 보드 구동을 위한 CPU 버튼, 모터의 전력을 차단하는 긴급 버튼, AMR의 방향 제어할 수 있는 조이스틱으로 구성된다. 조이스틱 및 적외선 센서 데이터는 ROS 패키지 rosserial_python을 사용하여 시리얼 통신을 통해 메인부로 전달된다. 조이스틱의 경우 AMR이 자율주행 동작 중에도 사용자가 임의로 조작 가능하며 조이스틱 데이터의 경우 자율주행 데이터보다 우선순위가 높다. 만약, 적외선 데이터를 통해 전방 50cm 미만의 거리에 물체가 감지되면 조이스틱을 통해서는 후진 구동만 가능하다.
2.5 전원부
전원부는 그림 4와 같이 리튬 폴리머 배터리와 메인부의 Jetson Xavier NX 구동 전압으로 배터리 전압을 강하하기 위해 레귤레이터로 구성되며, AMR의 전력 공급 역할을 수행하기 위해 24V 리튬 폴리머 배터리를 사용하여 각 모듈의 정격 전압을 전달한다. 전원부는 일정한 전원 공급을 위해 Roboteq 사의 BMS(battery management system)인 BMS1040ABT를 사용하여 일정한 전압 24V를 공급하며, 배터리 충전 시에도 배터리에게 일정하게 전압을 분배하여 균등 충전이 되도록 설정한다.
Ⅲ. ROS 기반의 모듈형 AMR
ROS는 로봇 운영체제로 이기종 센서를 하나의 제어기로 통합, 관제, 제어하기 쉽다는 장점이 있으며, 로봇 개발을 위한 다양한 도구들을 지원한다. 본 논문에서는 각 모듈과의 통신을 위해 ROS 기반으로 모듈형 AMR을 구동하였다.
그림 8은 제안하는 ROS 기반 AMR 소프트웨어 구성도이다. 모터 엔코더 값으로 생성하는 오도메트리, 장애물 감지를 위해 사용된 LiDAR의 센서 데이터를 이용하여 지도를 생성하는 SLAM, 생성된 지도와 센서 값을 통해 속도 명령을 내리는 네비게이션으로 이루어져 있다.
SLAM은 AMR이 자신의 위치를 인식하며 지도를 만드는 알고리즘으로, 상태추정(state estimation)과 현지화(localization), 지도 제작(mapping)이 필요하다[7][8]. 상태추정은 AMR의 상태(AMR의 위치, AMR의 속도 등)를 추정하는 것이며 현지화는 AMR이 어디에 있는지 추정하는 것이다. 지도 제작 단계에서는 AMR과 LiDAR로 측정된 물체로부터 거릿값을 받아 실제 환경에 대한 AMR 모델을 추정하여 지도를 생성한다.
네비게이션 알고리즘을 사용하여 목적지에 도달하기 위해서는 global path plan과 local path plan이 필요하다. global path plan은 목적지를 향해 가는 전체적인 길을 구성하며 local path plan은 AMR이 가는 경로에 장애물이 존재할 경우 장애물을 회피하는 짧은 범위의 경로를 구성한다[9]. 이후, 네비게이션 알고리즘은 주행 거리 측정 및 센서 데이터를 수신하여 속도 명령을 메인보드로 송신하게 된다. 원하는 위치 좌표로 이동하기 위해 모터의 직선 속도, 각속도를 명령을 통해 모듈형 AMR 구동부의 모터 속도를 제어한다. 장애물 탐지를 위해 2D LiDAR를 사용하여 SLAM을 실행하고 AMR의 위치를 알 수 있도록 현지화를 한다.
그림 9는 ROS의 3D 시각화 도구인 RViz를 사용하여 URDF(unified robot description format)를 시각화한 것이다. URDF는 XML(extensible markup language) 파일 형태로 AMR의 하드웨어 정보를 담고 있는 파일이며, 네비게이션 알고리즘과 같은 시뮬레이션 중 AMR의 정보를 이용한 장애물 회피 알고리즘에 적용하기 위해 사용한다.
URDF는 설계한 AMR 모델의 정보를 기록하며, 해당 정보가 필요한 패키지 또는 노드에서 활용된다. 이에 따라 AMR이 목적지까지 운행하는 경우 URDF의 정보를 고려하여 장애물 회피를 수행한다.
Ⅳ. 실험 환경 및 구현
표 2는 본 논문에서 제안하는 모듈형 AMR의 하드웨어 및 기존 AMR[10]과의 비교표이다. 비교표의 항목은 크기, 허용 중량, 속도, 센서, 배터리 용량, SLAM, Navigation, 모듈화 가능 여부 및 UWB를 사용한 사용자 추종 기능으로 이루어져 있다.
그림 10의 (a)는 실험에 사용된 건물의 도면이며, 표시된 범위를 SLAM을 통해 그림 10의 (b)와 같이 지도가 생성되는 것을 확인하였다. SLAM 이후 만들어진 지도를 통해 네비게이션 알고리즘을 진행하였으며, 그림 11은 ROS의 3D 시각화 도구인 RViz를 사용하여 출력한 결과이다.
그림 11 및 표 3은 UWB를 사용한 사용자 추적 시스템의 실험 환경 및 결과이며, 사람과 AMR, 목표 좌표 및 실제 좌표와 오차를 나타낸다.
실험 결과, 적외선 센서와 LiDAR를 이용하여 SLAM을 통해 생성된 지도를 기반으로 장애물을 회피하는 네비게이션 알고리즘이 정상 동작하며, 센서부의 데이터를 통해 목적지에 도달하는 것을 확인하였다.
사용자 추적 시스템은 모듈형 AMR이 사용자를 60초 이내에 추종하지 않으면 실패한 것으로 간주하였으며, 추종을 위한 UWB 센서 데이터 수신 및 사용자와 로봇 간의 좌표 연산 시간은 평균 10초로 확인되었다. 실험에서는 사용자가 이동 중 정지했을 때의 좌표값 및 AMR의 좌표값을 측정하였으며, 20cm 이내의 오차 및 100%의 인식률을 얻을 수 있었다.
Ⅴ. 결론 및 향후 과제
본 논문에서는 제어부, 메인부, 구동부, 센서부 및 전원부로 구성된 5개의 모듈을 핸디카트 하부에 장착하여 구동하는 ROS 기반 모듈형 AMR을 제안하였다. 모듈형 AMR은 장애물 감지 및 회피를 위해 LiDAR 및 적외선 센서를 사용하였으며, 전방 모니터링 및 사용자 경로 추종 시스템 구현을 위해 스테레오 카메라 및 UWB 센서를 사용하였다.
실험 결과 제안하는 ROS 기반 모듈형 AMR은 실생활 환경인 건물 내 복도에서 센서 데이터를 통합하여 SLAM 및 네비게이션 알고리즘이 정상 동작하는 것을 확인하였으며, 사용자 추적 시스템을 통해 20cm 이내의 오차로 사용자를 추종하는 것을 확인하였다.
향후 제안하는 모듈형 AMR에 IMU 센서 및 카메라를 사용한 비주얼 오도메트리를 추가하여 장거리 주행 시 생길 수 있는 누적 오차를 분석하고 오차를 줄일 수 있는 방안을 연구할 계획이다.
Acknowledgments
이 논문은 2020학년도 동의대학교 연구년 지원에 의하여 연구되었음
References
- http://www.autoratt.com, [accessed 3 May, 2022]
- S. Jeon and J. Hwang, "Trend of research on logistics robot technology for non-face-to-face era", Journal of the Korean Communications Association (Information and Communication), Vol. 38, No. 1, pp. 21-26, Dec. 2020.
- Y. Kwo, E. Kim, J. Shin, and B. Park, "ROS based Embedded System using a Joystick for IndustrialRobots Remote Control", Journal of KIIT, Vol. 19, No. 12, pp. 43-51, Dec. 2021. [https://doi.org/10.14801/jkiit.2021.19.12.43]
- J. Cho, E. Jung, J. Kim, M. Park, and Y. Kim, "A Study on Improved Navigation Algorithm of Logistics Transportation Robot for Freight Moving on the Rack", Journal of Korean Institute of Intelligent Systems, Vol. 28, No. 5, pp. 436-442, Oct. 2018. [https://doi.org/10.5391/JKIIS.2018.28.5.436]
- H. Jang and Y. Lee, "Logistics Robot (AGV) Trends", The Korean Institute of Electrical Engineers, Vol. 67, No. 8, pp. 8-12, Aug. 2018.
- D. Bore, A. Rana, N. Kolhare, and U. Shinde, "Automated guided vehicle using robot operating systems", 2019 3rd International Conference on Trends in Electronics and Informatics (ICOEI), IEEE, pp. 819-822, Apr. 2019. [https://doi.org/10.1109/ICOEI.2019.8862716]
- S. Gobhinath, K. Anandapoorani, K. Anitha, D. D. Sri, and R. DivyaDharshini, "Simultaneous Localization and Mapping (SLAM) of Robotic Operating System for Mobile Robots", 2021 7th International Conference on Advanced Computing and Communication Systems (ICACCS), pp. 577-580, Jun. 2021. [https://doi.org/10.1109/ICACCS51430.2021.9441758]
- S. Hwang and K. Noh, "Industrial logistics transport robot driving technology", The Korean Society of Mechanical Engineers, Vol. 59, No. 5, pp. 27-31, May 2019.
- S. Gatesichapakorn, J. Takamatsu, and M. Ruchanurucks, "ROS based Autonomous Mobile Robot Navigation using 2D LiDAR and RGB-D Camera", 2019 First International Symposium on Instrumentation, Control, Artificial Intelligence, and Robotics (ICA-SYMP), IEEE, pp. 151-154, Jan. 2019. [https://doi.org/10.1109/ICA-SYMP.2019.8645984]
- M. Pedana, M. Gregora, and D. Plinta, "Implementation of Automated Guided Vehicle system in healthcare facility", Procedia Engineering Vol. 192, pp. 665-670, Jun. 2017. [https://doi.org/10.1016/j.proeng.2017.06.115]
2020년 2월 : 동의대학교 메카트로닉스공학과(공학사)
2022년 2월 : 동의대학교 지능시스템공학과(공학석사)
2022년 3월 ~ 현재 : ㈜아진엑스텍
관심분야 : 지능로봇, ROS
1988년 2월 : 경북대학교 전자공학과 (공학석사)
1999년 8월 : 경북대학교 전자공학과 (공학박사)
1988년 6월 ~ 1993년 2월 : 한국전자통신연구원(ETRI)연구원
1993년 3월 ~ 2005년 8월 : 동의과학대학교 전자과 교수
2005년 9월 ~ 현재 : 동의대학교 로봇·자동화공학전공 교수
관심분야 : 임베디드시스템,정밀모션제어,로봇제어시스템