한국센서학회 학술지영문홈페이지
[ Article ]
JOURNAL OF SENSOR SCIENCE AND TECHNOLOGY - Vol. 32, No. 2, pp.118-123
ISSN: 1225-5475 (Print) 2093-7563 (Online)
Print publication date 31 Mar 2023
Received 28 Feb 2023 Revised 29 Mar 2023 Accepted 30 Mar 2023
DOI: https://doi.org/10.46670/JSST.2023.32.2.118

엘리베이터를 통한 층간 이동이 가능한 실내 자율주행 로봇용 센서 시스템

이민호1 ; 나건우2 ; 한승오2,
1세종대학교 지능기전공학과
2호서대학교 로봇공학과
Sensor System for Autonomous Mobile Robot Capable of Floor-to-floor Self-navigation by Taking On/off an Elevator
Min-ho Lee1 ; Kun-woo Na2 ; Seungoh Han2,
1School of Intelligent Mechatronics Engineering, Sejong University 209 Neungdong-ro, Gwangjin-gu, Seoul, 05006, Korea
2School of Robotics, Hoseo Unversity 20, 79 Hoseo-ro ,Baebang-eup, Asan-si, Chungcheongnam-do, 31499, Korea

Correspondence to: + sohan@hoseo.edu

This is an Open Access article distributed under the terms of the Creative Commons Attribution Non-Commercial License(https://creativecommons.org/licenses/by-nc/3.0/) which permits unrestricted non-commercial use, distribution, and reproduction in any medium, provided the original work is properly cited.

Abstract

This study presents sensor system for autonomous mobile robot capable of floor-to-floor self-navigation. The robot was modified using the Turtlebot3 hardware platform and ROS2 (robot operating system 2). The robot utilized the Navigation2 package to estimate and calibrate the moving path acquiring a map with SLAM (simultaneous localization and mapping). For elevator boarding, ultrasonic sensor data and threshold distance are compared to determine whether the elevator door is open. The current floor information of the elevator is determined using image processing results of the ceiling-fixed camera capturing the elevator LCD (liquid crystal display)/LED (light emitting diode). To realize seamless communication at any spot in the building, the LoRa (long-range) communication module was installed on the self-navigating autonomous mobile robot to support the robot in deciding if the elevator door is open, when to get off the elevator, and how to reach at the destination.

Keywords:

Sensor system, Autonomous mobile robot, Floor-to-floor self-navigation, Image processing, LoRa communication

1. 서 론

제조 분야에서 사용되는 산업용 로봇과 구별되는 서비스 로봇은 교육 및 가사 지원은 물론 의료, 구조 및 보안, 국방 등 다양한 분야에서 폭넓게 활용되면서 그 응용 분야가 지속적으로 확대되고 있다. 이렇게 서비스 로봇에 대한 관심이 높아진 이유 중 하나는 자율주행 기술의 발전이다. 서비스 로봇은 병원, 공항, 공장 등 다양한 실내 공간에서 물건을 전달하거나 방문객에게 길을 안내하는 다양한 용도로 활용된다. 대부분의 실내 공간은 다층임에도 불구하고 거의 모든 서비스 로봇은 엘리베이터를 이용하지 못하기 때문에 층간 이동에 많은 제약이 따른다. 엘리베이터 탑승 문제를 해결하면 현행법의 정비 없이도 더 넓은 공간에서 다양한 작업을 수행할 수 있기 때문에 로봇의 엘리베이터 탑승 및 층간 이동을 가능하게 하는 기술이 요구된다[1,2].

우아한형제들 사의 배달 로봇인 ‘딜리타워’, Robotis 사의 호텔 로봇 ‘집개미’, LG전자 사의 ‘클로이’와 같이 현재 많은 기업에서 엘리베이터 탑승이 가능한 다양한 모바일 로봇을 출시하고 있지만 이들은 대부분 엘리베이터 시스템과의 연동을 통해 층간 이동을 가능하게 구현하였다. 이를 구현하는 과정에서 엘리베이터 제조업체와 협력이 필요하며 기존에 설치되어 사용되는 엘리베이터에 직접 적용하기에는 한계가 있다. 또한, 엘리베이터 시스템의 변동이 있으면 로봇을 지속적으로 유지보수해야 하는 불편함도 있다.

이러한 문제를 해결하기 위해 로봇 자체에 부착된 IMU의 가속도계를 이용해 순간적으로 움직이는 엘리베이터의 가속도를 측정하여 층 정보를 판단하거나[3], 로봇이 물리적인 장치를 통해 직접 원하는 층 및 호출 버튼을 눌러 자체적으로 엘리베이터에 탑승할 수 있도록 하였다. 로봇이 원하는 층에 도달하기 위해 2대의 카메라를 사용하여 엘리베이터의 내부 LCD/LED 디스플레이 패널 숫자를 인식한 후 템플릿 매칭(template matching) 기법을 통해 층 버튼의 숫자를 비교하여 현재 층에 대한 정보를 얻는다[4,5]. 하지만 로봇은 엘리베이터 내부에서 2대의 카메라로 촬영하기 때문에 로봇의 높이와 동작 위치가 제한된다.

이에 본 연구에서는 엘리베이터의 LCD/LED 패널에 표시되는 층을 촬영할 수 있도록 한 대의 카메라만을 설치하여 로봇에 입력된 목적지 층수와 비교하는 방식을 제안하게 되었다. 제안된 방법은 엘리베이터 내부에 통신 모듈을 사용하는 방식이나 물리적인 장치를 사용하는 방법들에 비해 1대의 카메라와 범용 통신모듈만을 이용하여 층을 인식하기 때문에 기존 엘리베이터에 대한 변경이 필요 없고 최소화된 센서 시스템 구성으로 낮은 비용으로 구현이 가능하다는 점에서 차별성을 지닌다. 다만, 본 연구에서 사용된 로봇의 원활한 동작을 위해서는 운영자가 엘리베이터를 직접 호출해주는 과정이 필요하며 엘리베이터 내의 지정한 위치에 탑승하기 위해 승객 또는 장애물에 의한 간섭이 없는 환경에서 운용하는 등의 제한요소가 존재한다.

로봇은 Robotis 사의 Turtlebot3 를 개조하였으며 기본 운영체제는 Ubuntu 20.04 LTS, 로봇 운영체제는 ROS 2(robot operating system 2)를 탑재하였다. Lidar 및 초음파 센서 기반의 자율주행을 위해 구글사에서 개발한 Cartographer 라이브러리와 ROS의 Navigation 2 패키지를 사용한다. 영상처리를 통해 엘리베이터 LCD/LED 디스플레이를 향해 카메라를 부착하여 숫자를 인식 후 LoRa(long range)통신 모듈로 로봇과 건물 내 장거리 통신을 구현한다.


2. 시스템 구성

2.1 로봇 플랫폼 구성

본 연구에서 로봇의 하드웨어 및 통신 시스템은 Fig. 1과 같이 구성하였다. 로봇은 Robotis 사의 Turtlebot3 모델을 일부 변경하였으며 전원은 11.9V LiPo(lithium ion polymer) 배터리를 사용한다. 배터리는 OpenCR 1.0 보드에 전원을 인가하여 모터 및 Raspberry Pi 4를 구동한다. LDS-01(Laser Distance Sensor)로 로봇 주위 물체 정보를 수집하여 SLAM (simultaneous localization and mapping) 기술에 사용한다. 로봇은 2개의 Dynamixel XL430-W250 모터로 이동하는데, 모터에는 자기식 엔코더(magnetic encoder)와 PID(proportional-integral-differential) 제어기가 포함된다. 각 모터에 연결된 바퀴는 지름 9.4cm이며, 자유로운 방향 전환을 위해 로봇 후방에 2개의 볼 캐스터를 장착하였다. OpenCR 보드는 3축 가속도계와 자이로스코프 센서가 포함된 IMU(inertial measurement unit)가 내장되어 있다[6].

Fig. 1.

Autonomous driving robot hardware block diagram.

Fig. 2는 로봇의 소프트웨어 블록도 이다. OpenCR 보드는 모터의 엔코더 정보로부터 계산한 모터의 회전속도를 bring_up 패키지를 통해 주 제어기인 Raspberry Pi로 전달함과 동시에 모터에 PWM(pulse width modulation) 신호를 입력한다. 주 제어기인 Raspberry Pi는 각속도와 IMU로부터 얻은 자세 정보를 이용하여 로봇의 위치(odometry)를 추정하고 이를 Navigation 2 패키지 노드(node)에 전송한다. 최종적으로 Navigation 2는 사용자가 입력한 목표 위치와 odometry 정보, 지도 데이터, LDS-01의 Scan 데이터를 이용하여 목적지에 도달하기 위한 선속도와 각속도를 계산한다. 이를 다시 OpenCR 보드에 전달하여 모터에 제어 명령을 입력하게 된다[7].

Fig. 2.

ROS 2 based robot software block diagram.

전술한 구성에 따라 제작된 로봇은 Fig. 3과 같다.

Fig. 3.

Robot and Camera module sensor configuration

2.2 ROS 2 데이터 통신

ROS 2에는 연산을 수행하는 노드와 노드 사이의 데이터 전송에 사용하는 메시지(message)가 존재하며 이러한 메시지는 주행 플랫폼, 센서, 서버에서 자유롭게 데이터 통신을 가능하게 한다[8,9]. 핵심 개념의 하나인 메시지 통신에는 목적과 방식에 따라 토픽(topic), 서비스(service), 액션(action)을 사용한다. Table 1은 연구에서 자율주행 로봇에 적용한 주요 토픽과 서비스의 일부를 나타냈다[8].

Topics and Services used in development.

ROS 2 기반의 로봇 개발을 위해 Ubuntu 운영체제와 ROS 2 Foxy 버전을 사용하였으며 자율주행에 사용되는 지도 제작을 위해 SLAM 라이브러리인 Cartographer와 장애물 회피 및 실시간 위치추정 알고리즘인 AMCL(adaptive monte carlo localization), DWA(dynamic window approach)를 적용한 Navigation 2 패키지를 사용하였다. Fig. 4은 패키지 간의 데이터 흐름을 나타낸다.

Fig. 4.

Topic data flow between packages.

2.3 지도 제작(mapping) 및 자율주행

Cartographer 라이브러리로 매핑(mapping)을 통해 얻은 지도상의 검정 영역은 로봇이 이동 불가능한 점유 영역(occupied area) 이며 흰 영역은 로봇이 자유롭게 이동할 수 있는 자유 영역(free area)이다. 그 외의 영역은 이동이 가능하지만 충돌 가능성에 따라 명도가 달라진다.

LDS-01이 근처 장애물이나 벽을 인식하게 되면 RGB 색상의 파티클(particle)이 나타난다. 파티클 데이터를 실시간으로 취합하여 각각의 파티클이 장애물일 확률을 계산하며 그 확률이 임계치를 넘으면 해당 영역은 점유 영역이 되고 그 외의 영역은 자유 영역이 된다[7]. SLAM으로 얻은 지도를 바탕으로 Navigation 2 패키지를 이용해 Fig. 5와 같은 순서로 자율주행을 구현한다.

Fig. 5.

Movement process of robot’s goal position. (a) elevator map to board, (b) robot waits for move signal, (c) robot moves in front of elevator door, (d) robot waits in front of elevator door.

지도(global map)에서 사용자가 목적지를 지정하면 현재 위치와 지도를 통해 로봇의 이동 경로(global path)를 결정한다. 현재 위치에서 LDS-01의 스캔 데이터와 경로를 이용해 한정된 작은 구역 내에서 지역 경로(local path)를 DWA 알고리즘으로 결정하여 지역 경로를 주행할 수 있도록 로봇의 속도를 조절한다. 그 과정에서 AMCL을 이용하여 로봇의 현재 위치를 보정하며, 위의 과정을 반복함으로써 목적지에 도착할 수 있게 된다[7,10,11].

매핑과 자율주행은 로봇의 파라미터(parameter) 수치가 중요하게 작용한다. 대표적으로 로봇의 전체 규격이나 바퀴의 지름, 바퀴 간의 거리가 있다. 그 외에도 정밀한 측정을 위해 파티클의 개수나, 로봇이 장애물에 충돌하지 않는 안정적인 범위를 조절하기도 한다. 본 연구에서 사용한 파라미터의 일부와 그 내용은 Table 2와 같다.

Robot parameters for optimal driving.

특정 위치까지 이동하기 위해 지도상의 좌표값을 추출하여 지정하는 방식으로 목표 위치를 설정하였으며, 이를 통해 엘리베이터에 탑승하거나 탑승 전 문 앞까지 이동하는 등 원하는 위치까지 자율주행을 가능하게 하였다.


3. 엘리베이터 탑승 및 하차

Fig. 6은 로봇의 엘리베이터 탑승 과정을 나타낸 흐름도이며 로봇이 자율 주행하여 엘리베이터에 탑승해 목적지로 이동하기 위해 거치는 과정을 설명한다.

Fig. 6.

Flow chart of elevator boarding.

3.1 목적지 지정

로봇에게 이동할 목적지를 지정해주기 위해 모바일 어플리케이션과 통신한다. 모바일 어플리케이션은 Android 기반으로 제작하였으며 로봇과 TCP/IP 소켓 통신한다. 이러한 과정은 Fig. 6의 단계 1에 해당한다.

로봇에는 건물의 각 층 호실에 대한 좌표 데이터가 저장되어 있으며 모바일 어플리케이션은 목적지에 해당하는 호실 데이터를 전송한다. 수신받은 좌표로 이동하기 전에 로봇은 엘리베이터 탑승이 필요한지 판단한다. 엘리베이터 탑승이 필요하다면 엘리베이터 앞으로 이동하고 그렇지 않으면 로봇이 위치한 층의 목적지로 이동할 수 있다. 이 과정이 Fig. 6의 단계 2에 해당한다.

3.2 엘리베이터 탑승

로봇이 엘리베이터에 탑승해야 한다면 Fig. 7(a)와 같이 엘리베이터 문 앞을 향해 이동한 후 대기한다. 엘리베이터 호출과 층 버튼을 클릭하는 과정은 사람이 대신한다.

Fig. 7.

Robot’s elevator boarding progress. (a) wait in front of elevator door, (b) completed elevator boarding.

로봇은 대기 중 정면을 향해 초음파 센서로 로봇과 엘리베이터 문까지의 거리를 측정한다. 엘리베이터의 문의 개폐 여부를 알기 위해 거리를 측정하는 방법은 3.3에서 소개한다. 엘리베이터 문이 열리면 로봇은 Fig. 7(b)와 같이 엘리베이터의 문을 바라보고 중앙에 위치한다. 여기까지 과정은 Fig. 6의 단계 3, 5에 해당한다.

3.3 엘리베이터 문 열림 판별

3.2에서 로봇이 엘리베이터에 탑승하기 위해서는 문의 개폐 여부를 판단해야 한다. 로봇의 정지 위치로부터 닫혀있는 엘리베이터 문까지 거리는 초음파의 속도 34,000 cm/s에 왕복 시간의 절반을 곱하는 수식 1을 통해 측정하였다. 거리 측정에는 초음파 센서 HC-SR04 모델을 사용하였다.

distance(cm)=17000×t(1) 

Fig. 8은 로봇의 정지 위치로부터 엘리베이터 문 그리고 엘리베이터 내부의 벽면까지의 거리를 0.1초 간격으로 30초간 초음파 센서로부터 측정한 300개의 거리 데이터이다.

Fig. 8.

Measure distance from stop position for 30 seconds.

Table 3은 실제 거리와 측정값의 차이를 통해 오차를 계산하여 센서 데이터의 유효성을 나타내고 있다. 실제 거리 데이터는 줄자로 측정했으며 정지 위치로부터 문까지는 2.01 m, 내부 벽면까지는 3.93 m이다. 최종적으로 얻어낸 초음파 센서의 시간 간격을 통해 산출한 약 300개의 측정 데이터 평균값은 각각 2.02 m, 3.95 m이며, 상대오차는 각각 0.76%, 0.69%이고 거리 측정이 정상적으로 이루어지고 있음을 알 수 있다. 따라서 문이 열렸음을 판단하기 위한 임계 거리 범위를 250~400 cm 이하로, 문이 닫힌 경우는 0~200 cm로 설정하여 문 열림 판별을 구현하였다. 엘리베이터를 하차할 때는 로봇과 엘리베이터 문까지 실제 거리보다 측정값이 클 경우 문 열림을 판별하였다. 이와 같은 문 열림 판별은 Fig. 6의 단계 4, 7에 해당한다.

Errors through actual and measured distances.

3.4 현재 층 판별

층간 이동 중 로봇은 현재 위치한 층 정보를 알 수 없다. 목적지에 해당하는 층에 맞게 하차하기 위해 엘리베이터의 LCD/LED 디스플레이를 촬영하는 카메라로부터 정보를 수신받을 수 있도록 한다. Fig. 9과 같은 흐름으로 영상을 처리한다. 연구가 진행된 건물은 총 6층으로 이루어져 있으나 5층의 층 판별을 예시로 소개한다.

Fig. 9.

Image processing flow chart.

Raspberry Pi 4에 연결된 카메라 모듈로 엘리베이터의 LCD/LED 디스플레이를 Fig. 10(a)와 같이 촬영한다. 카메라 모듈을 엘리베이터의 LCD/LED 디스플레이를 향해 천장에 배치하여 획득한 영상으로부터 숫자만 ROI(Region of interest)로 지정하여 얻은 영상은 Fig. 10(b)와 같다.

Fig. 10.

Image processing process (a) numeric area set as ROI, (b) preprocessing and binarization result.

Fig. 11.

Process of sending numerical data to robot.

Fig. 10(b)의 숫자를 인식하기 위한 몇 가지 전처리 과정을 거친다. Fig. 10(b)를 grayscale로 변환 후 명암비를 증가시키기 위해 수식 2를 적용한다. 수식 2에서 avg는 입력 영상의 평균 밝기이며 α는 기울기를 결정한다. α가 0보다 크면 기울기가 1보다 큰 직선의 방정식이며, 이는 명암비를 증가시킬 수 있다. 따라서 avg를 기준으로 밝은 픽셀은 더 밝게, 어두운 픽셀은 더 어둡게 하여 명암비를 증가시킨다. 명암비가 증가한 영상에 픽셀의 임계치를 70으로 하여 70 이상인 픽셀은 255, 70 이하인 픽셀은 0으로 한 이진화 결과는 Fig. 10 (c)와 같다[12,13].

dst(x,y)=saturate(src(x,y)+src(x,y)-avg)α(2) 

Fig. 10(c)에서 숫자를 인식하기 위해 k-NN(k-Nearest Neighbors) 알고리즘을 사용한다. k-NN 알고리즘은 가장 직관적인 머신러닝 분류 알고리즘이다. 새로운 데이터를 예측할 때, dataset에서 가장 가까운 최근접 이웃을 찾는 방식이다. OpenCV에서 제공하는 MNIST(Modified National Institude of Standards and Technology) dataset을 사용한다. 엘리베이터의 LCD/LED는 세븐 세그먼트, 도트 매트릭스 디스플레이 등 엘리베이터 제조사마다 다르다. 디스플레이의 숫자를 인식하기 위해 전처리 과정을 거친 후 숫자의 형태를 dataset을 토대로 학습하여 숫자를 분류하고 인식률을 높이는 방법을 제안한다. 이와 같은 과정은 Fig. 6의 단계 6에 해당한다[13].

3.5 층수 데이터 통신

카메라 모듈을 통해 인식된 엘리베이터 층 데이터를 로봇에게 전송하기 위해 LoRa통신을 사용한다. LoRa 통신은 사물인터넷 통신을 위해 만들어진 통신규격으로 저전력으로 초장거리 연결이 가능하다. 좋은 환경에서 최대 10마일 (16 km) 정도의 통신이 가능하다. 한국의 LoRa 주파수 대역은 920 MHz~923.3MHz이며, 비면허 주파수 대역으로 허가 없이 사용 가능하다.

로봇과 카메라 모듈 사이를 연결하는 통신 모듈은 PLNetworks 사의 PLM100모델로서, Semtech 사의 LoRa기술을 적용하여 저전력 동작 및 장거리 송수신이 가능하다[14,15].

로봇은 층수 데이터를 수신받아 엘리베이터의 현재 위치를 알 수 있다. 따라서 목적지에 해당하는 층에 도착하면 엘리베이터 문 열림 판별 과정을 거쳐 엘리베이터서 하차할 수 있다. 이후 목적지에 해당하는 층의 지도 데이터를 불러와 최종 목적지에 도달한다. 이는 Fig. 6의 단계 8, 9에 해당하며 이러한 과정을 통해 로봇의 주행은 완료된다.


4. 결 론

본 연구에서는 ROS 2 기반 엘리베이터 탑승 및 층간 이동이 가능한 실내 자율주행 로봇을 개발하였다. 개발한 로봇은 LDS-01, 모터 및 엔코더를 통해 위치추정 및 장애물 회피가 가능하며 그 과정에서 로봇에 알맞은 파라미터를 AMCL 패키지에 적용한다. 또한 구글의 SLAM 라이브러리인 Cartographer로 지도를 작성하여 자율주행에 사용하였다. 모바일 어플리케이션으로 사용자가 로봇에게 목적지를 전달할 수 있으며 층간 이동이 필요할 경우 엘리베이터에 탑승한다. 엘리베이터에 탑승하기 위해 특정 목적지 좌표까지 이동 후 초음파 센서를 통해 거리를 측정하여 문의 개폐 여부를 판단하였으며 약 0.7%의 오차가 있다. 엘리베이터 탑승 후 엘리베이터의 LCD/LED 디스플레이를 향해 부착된 카메라로 실시간 영상을 획득하여 영상처리로 엘리베이터가 위치한 층을 인식한다. LoRa 통신 모듈로 거리가 먼 로봇과도 층수 데이터를 주고받을 수 있어 최종적으로 로봇은 원하는 층에 하차하여 목표 지점까지 도달할 수 있다.

제시된 이동 로봇의 원활한 동작을 위해서는 운영자의 엘리베이터 조작, 승객 또는 장애물에 의한 간섭 방지 등의 제약조건들이 요구되기 때문에 화물전용 엘리베이터 등 제한된 응용 분야에서 유용할 것으로 기대된다.

Acknowledgments

본 연구는 2019년 과학기술정보통신부 및 정보통신기획 평가원의 SW중심대학사업의 연구결과로 수행되었음. (2019-0-01834)

References

  • I. I. Kim, “Service robot”, ASTI Market Insight., p. 1, 2022.
  • M. G. Jang, H. J. Jo, and J. B. Song, “Elevator Recognition and Position Estimation based on RGB-D Sensor for Safe Elevator Boarding”, J. Korea Robot. Soc., Vol. 15, No. 1, pp. 70-76, 2020. [https://doi.org/10.7746/jkros.2020.15.1.070]
  • Y Tianhui, K. Katsuhiko, and K Nobuo “Elevator Acceleration sensing : Design and estimation recognition algorithm using crowdsourcing”, Comput. Softw. Appl. Conf. Workshops, pp. 534-539, 2013.
  • E. H. Kim, “Vision based multi-storey and elevator navigation by a mobile robot”, M. S. thesis, University of Sungkyunkwan., Suwon, 2021.
  • K Tohidul Islam, G. Mujtaba, R. Gopal Raj, and H. Friday Nweke “Elevator Button and Floor Number Recognition through Hybrid Image Classification Approach for Navigation of Service Robot in Building”, Int. Conf. on Eng. Technol. Technopreneurship (ICE2T), pp. 1-4, 2017.
  • C. Y. Jung, T. Y. Kim, and H. C. Shim, “Development of ROS-based Mobile Robot System and Experiments on Indoor Autonomous Driving”, J. Inst. Control, Robot. Syst., Vol. 25, No. 5, pp. 438-444, 2019. [https://doi.org/10.5302/J.ICROS.2019.19.0040]
  • D. G. Park, K. R. Kim, J. W. Jang, and D. H. Kim, “ROS-based Control System for Localization and Object Identification of Indoor Self-driving Mobile Robot”, J. Mech. Sci. Technol., Vol. 45, No. 12, pp. 1149-1160, 2021. [https://doi.org/10.3795/KSME-A.2021.45.12.1149]
  • Y. S. Pyo, Robot programming starting with ROS2, Ruby-Paper, Korea, 2021.
  • H. M. Kim and Y. S. Choi, “Development of a ROS-based Autonomous Driving Robot for Underground Mines and Its Waypoint Navigation Experiments”, J. Korea Soc. Rock Mech., Vol. 32, No. 3, pp. 231-242, 2022.
  • W. Hess, D. Koholer, H. Rapp, and D. Andor “Real-Time Loop Closure in 2D LIDAR SLAM”, Int. Conf. Robot. Autom. (ICRA), pp. 1271-1278, 2016. [https://doi.org/10.1109/ICRA.2016.7487258]
  • S. Macenski, F. Martin, R. White and J. Gins Clavero “The Marathon 2 : A Navigation system”, Int. Conf. Intell. Robot. Syst. (IROS), pp. 2718-2725, 2020. [https://doi.org/10.1109/IROS45743.2020.9341207]
  • R. C. Gonzalez and R. E. Woods, Digital Image Processing, Pearson Publishing, 2017.
  • S. G. Hwang, Computer Vision and Machine Learning with OpenCV 4, Gilbut, Seoul, pp. 369-378, 2019.
  • S. H. Mah and B. S. Kim, “LoRa Technology Analysis and LoRa Use Case Analysis By Country”, J. Institute Internet, Broadcast. Commun., Vol. 19, No. 1, pp. 15-20, 2019.
  • Y. M. Ji, W. S. Choi, K. S. Oh, and J, J, Yoo, “The analysis of performance of wireless LoRa communication in the indoor and outdoor environments”, Inf. Commun. Mag., pp. 1264-1265, 2017.

Fig. 1.

Fig. 1.
Autonomous driving robot hardware block diagram.

Fig. 2.

Fig. 2.
ROS 2 based robot software block diagram.

Fig. 3.

Fig. 3.
Robot and Camera module sensor configuration

Fig. 4.

Fig. 4.
Topic data flow between packages.

Fig. 5.

Fig. 5.
Movement process of robot’s goal position. (a) elevator map to board, (b) robot waits for move signal, (c) robot moves in front of elevator door, (d) robot waits in front of elevator door.

Fig. 6.

Fig. 6.
Flow chart of elevator boarding.

Fig. 7.

Fig. 7.
Robot’s elevator boarding progress. (a) wait in front of elevator door, (b) completed elevator boarding.

Fig. 8.

Fig. 8.
Measure distance from stop position for 30 seconds.

Fig. 9.

Fig. 9.
Image processing flow chart.

Fig. 10.

Fig. 10.
Image processing process (a) numeric area set as ROI, (b) preprocessing and binarization result.

Fig. 11.

Fig. 11.
Process of sending numerical data to robot.

Table 1.

Topics and Services used in development.

Topic name Function
goal_pose Robot’s target position
odom Odometry from encoder
cmd_vel Robot’s velocity and rotation
Service name Function
success Checking arrival and target position
load_map Map change when moving floors

Table 2.

Robot parameters for optimal driving.

Parameter Function Values
separation Distance between wheels 0.159 m
radius Wheel radius 0.0475 m
max_vel_x Maximum velocity X 0.22 m/s
acc_lim_x Maximum acceleration X 2.5 rad/s2
max_vel_theta maximum angular velocity 1.0 rad/s

Table 3.

Errors through actual and measured distances.

  Door closed Door open
Actual distance 201 cm 392.5 cm
Measured distance 202.541 cm 395.228 cm
Absolute error +1.541 cm +2.728 cm
Relative error 0.76% 0.69%