Institute of Control, Robotics and Systems
[ Article ]
Journal of Institute of Control, Robotics and Systems - Vol. 32, No. 2, pp.180-186
ISSN: 1976-5622 (Print) 2233-4335 (Online)
Print publication date 01 Feb 2026
Received 10 Nov 2025 Revised 03 Dec 2025 Accepted 20 Jan 2026
DOI: https://doi.org/10.5302/J.ICROS.2026.25.0299

IMU 오차 보정 및 라이다 측정 잡음 공분산 튜닝 딥러닝 모델들을 이용한 실내 이동 로봇의 위치 및 자세 추정

성상만1, *
한국기술교육대학교 메카트로닉스공학부 교수 ssman@koreatech.ac.kr
An Indoor Mobile Robot Pose Estimation Method Using Deep Learning Models for IMU Error Calibration and LiDAR Measurement Noise Covariance Tuning
Sang Man Seong1, *
1School of Mechatronics Korea University of Technology and Education

Correspondence to: *Corresponding Author

Copyright© ICROS 2026

Abstract

Methods that fuse IMU and LiDAR data using an extended Kalman filter (EKF) are commonly employed to estimate the position and orientation of indoor mobile robots. Correcting the inherent errors of the IMU and mounting misalignments, as well as tuning the EKF measurement noise covariance according to the environmental conditions that affect the LiDAR performance, are required to improve localization and orientation estimation accuracy. This study proposes a method to address these issues by using two neural networks: one based on a long short-term memory network (LSTM) to compensate for IMU errors, and another based on a convolutional neural network (CNN) to estimate the error of the position and orientation measurements obtained from the LiDAR, which is then used to tune the EKF measurement noise covariance. To effectively train these networks, the CNN is first trained and then used to assist in training the IMU error compensation network. Experiments conducted in indoor environments, such as corridors and rooms, demonstrate that the proposed method significantly improves the position and orientation estimation performance of the robot compared to using only LiDAR or a conventional EKF.

Keywords:

indoor mobile robot, EKF, IMU error, LiDAR matching error, LSTM, CNN

I. 서론

실내 자율 이동 로봇은 돌봄 서비스, 물류 이동, 그리고 감시 분야 등 그 응용 분야가 확대됨에 따라 로봇의 위치 및 자세를 정확하게 추정하는 연구가 활발히 진행되고 있다[1,2]. 실내 이동 로봇의 위치 및 자세의 추정은 흔히 EKF (Extended Kalman Filter)를 이용하는데 IMU (Inertial Measurement Unit)의 가속도 및 각속도 출력을 적분하는 시간 갱신(time update)으로 사전 추정값(a priori estimate)을 산출하고 라이다 혹은 카메라로부터 획득되는 측정값을 이용한 측정값 갱신(measurement update)으로 사후 추정값(a posteriori estimate)을 출력한다. 이 경우 추정 오차를 줄이기 위해서는 IMU의 오차를 추정하여 보정(calibration)하는 것과 아울러 EKF 설계변수인 공분산(covariance)을 튜닝(tuning)하는 것이 중요하다. 자율 이동체의 관심이 높아짐에 따라 IMU 오차 보정 및 EKF 공분산 튜닝에 대한 연구도 꾸준히 진행되고 있다.

IMU의 오차는 크게 정규 오차(deterministic error)와 불규칙 오차(random error)로 나눌 수 있다. 정규 오차는 환산계수(scale factor), 비정렬(misalignment), 바이어스(bias) 등의 오차로 정확한 가속도 및 각속도 입력을 가할 수 있는 레이트테이블(rate table) 장치를 사용하여 추정하거나[3,4], 고가의 정밀 센서를 함께 손에 올려 놓고 자세를 바꿔가며 추정할 수 있다[5]. 정규 오차가 추정된 후에는 IMU의 출력으로부터 간단한 계산을 거쳐 보정될 수 있다. 불규칙 오차는 흔히 랜덤 상수 바이어스(random constant bias)로 가정하고 EKF 등과 같은 필터에서 상태변수로 추가하여 추정하여 보정한다[6].

EKF의 공분산 튜닝은 결과적으로는 가속도 및 가속도를 적분한 사전 추정값을 신뢰하여 유지할 것인지 아니면 라이다 혹은 카메라 등의 측정값을 신뢰하여 사전 추정값에 대한 보정을 크게 할 것인지 결정하는 것이다. 공분산 튜닝과 관련하여 최근에 인공지능을 활용하는 방법들이 많이 제시되고 있다. 참고문헌 [7]은 필터의 측정식을 인공지능으로 대체하는 방법을 제시하였는데 예로서 영상 이미지로부터 CNN (Convolution Neural Network)을 통해 이동체의 속도 측정값 및 측정잡음 공분산을 산출하는 방법을 제시하였다. 참고문헌 [8]은 도로를 주행하는 이동체가 IMU만을 사용한 항법(dead reckoning)을 하는 경우에 수직 및 옆방향 속도가 거의 0임을 이용한 가상 측정값을 사용하고 CNN으로 측정잡음 공분산을 튜닝하는 방법을 제시하였다. 참고문헌 [9]는 항법시스템(navigation system)에서 IMU를 입력으로 하는 딥러닝 모델에 의해 공정잡음 공분산을 튜닝하는 방법을 제시하였다. 참고문헌 [10]은 항법시스템에서 고정된 공정잡음 및 측정잡음 공분산을 사용한 EKF로부터 구한 잔차(residual) 및 상태오차 공분산을 LSTM (Long Short Time Memory)에 입력으로 넣어 시간에 따라 변하는 공정잡음 및 측정잡음 공분산을 다시 산출하는 방법을 제시하였다.

IMU 오차 보정 및 EKF 공분산 튜닝에 대한 기존 연구는 살펴본 바와 같이 각각의 문제를 독립적으로 다루고 있다. 즉, IMU의 정규 오차가 실험실 수준에서 잘 추정되어 보정된다고 가정한다면 EKF 공분산 튜닝에 의해 가속도 및 각속도 값을 신뢰할 것인지 아니면 라이다 혹은 카메라 등의 측정값을 신뢰할 것인지 결정하는 것은 유효하다는 것이다. 그런데 현실적으로는 고가의 레이트테이블에 의한 IMU 정규 오차 추정이 힘들거나 IMU의 로봇 장착시에 발생하는 장착 오차에 의하여 EKF에 입력되는 가속도 및 각속도는 오차가 클 수 있다. 이 경우에는 공분산 튜닝이 의미가 없어지고 결과적으로 큰 위치 및 자세 추정 오차를 유발하게 된다. 이러한 문제를 해결하기 위하여 본 논문에서는 IMU의 정규 및 장착 오차를 보정하는 LSTM과 EKF의 측정잡음 공분산을 튜닝하는 CNN을 단계적으로 사용하여 EKF에 의한 로봇 위치 및 자세 추정 성능을 개선하는 방법을 제안한다. 관련된 연구로서 저자 등은 참고문헌 [11]에서 카메라에 의한 위치 및 자세 참값에 대한 미분필터로 가속도 및 각속도 참값을 구하고 이를 이용하여 LSTM으로 IMU의 정규 및 장착오차를 보정하는 방법을 제안한 바 있으나 이 역시 IMU 오차 보정에만 초점을 둔 연구이다. 본 논문은 참고문헌 [11]의 결과에 더 나아가 IMU 오차 보정 LSTM 이후에 또 다른 신경망인 CNN에 의해 튜닝된 측정잡음 공분산을 사용하는 EKF를 배치함으로써 카메라에 의한 위치 및 자세 참값에 대한 미분필터 없이 IMU 오차가 보정됨과 동시에 위치 및 자세 추정값을 바로 구할 수 있게 하였다.

본 논문에서는 측정잡음 공분산을 튜닝하는 방법도 라이다의 점군 정합 오차를 신경망이 출력하고 이를 이용해 측정잡음 공분산을 계산하는 방법을 제안하였다. 점군 정합 방법으로서 본 논문에서는 널리 사용되는 ICP (Iterative Closest Point) 방법을 채택하였는데, ICP를 사용한 경우의 오차공분산을 추정하는 기존 연구로 참고문헌 [13]은 ICP 알고리즘 가격함수(cost function)와 오차공분산의 관계식을 유도하여 오차공분산을 수식으로 계산하는 방법을 제시하였다. 참고문헌 [14]는 점군의 기하학적 배치, 가격함수 잔차(residual), 점군간의 대응점(correspondense) 품질(quality) 등 점군의 특징을 추출하여 망의 입력으로 하고 오차공분산을 출력으로 하는 다층 퍼셉트론(MLP, Multi-layer Perceptron)를 이용하는 방법을 제시하였다. 인공신경망을 사용한다는 점에서는 참고문헌 [14]와 관련이 있으나 본 논문은 점군에 속한 점들의 거리 및 각도 정보만 망의 입력으로 사용한다는 점, 인공신경망으로 CNN을 이용한다는 점, 그리고 망 출력으로 얻은 점군 정합 오차로부터 측정잡음 공분산은 계산으로 구한다는 점에서 차이점이 있다.

논문의 구성은 다음과 같다. II장에서 실내 이동 로봇을 위한 EKF 구성 및 오차 요인, III장에서 IMU 오차 보정 및 EKF 공분산 튜닝 딥러닝 모델, IV장에서 실험에 의한 제안한 방법의 검증, 그리고 V장에서 결론을 맺는다.


II. 실내 이동 로봇을 위한 EKF 구성 및 오차 요인

실내 이동 로봇의 위치 및 자세 추정에 사용되는 EKF를 제시하고 IMU 오차 및 라이다 점군 정합 오차가 어떤 과정을 통해서 로봇의 위치 및 자세 추정 오차를 유발시키는지 살펴본다. EKF를 구성하기 위해서는 시스템식과 측정식이 필요한데, 먼저 시스템식은 실내 이동 로봇이 평평한 바닥 위에서 2차원 운동을 한다고 가정하면 다음과 같은 운동방정식으로 둘 수 있다.

X˙Y˙V˙XV˙Yθ˙δfx˙δfy˙δωz˙=VXVYcos θ-sin θsin θcos θfx-δfxfy-δfyωz-δωz000+000000cos θ-sin θ0sin θcos θ0001000000000wxwywz(1) 

여기에서 X, Y는 로봇의 절대좌표계(inertial frame) 상의 위치, VX, VY는 절대좌표계 상의 속도, θ는 자세각을 나타낸다. IMU와 관련된 항으로서 fx, fy, ωz는 동체좌표계(body frame) 상의 가속도 및 각속도 측정값, δfx, δfy, δωz는 측정값들의 바이어스 오차, 그리고 wx, wy, wz는 바이어스를 제외한 나머지 오차로 흔히 공정잡음(process noise)이라 한다.

2D 라이다로부터 획득되는 점군을 정합하여 위치 및 자세 측정값을 생성할 수 있다. 그러면 EKF의 측정식 부분은 다음과 같이 둘 수 있다.

XLYLθL=XYθ+vXvYvθ(2) 

여기에서 XL, YL, θL은 라이다 점군의 정합 결과로 얻게 되는 로봇의 위치 및 자세이며 vX, vY, vθ는 측정값 오차로 측정잡음(measurement noise)이라고 불린다. 시스템식과 측정식이 주어진 상태에서 초기 추정값, 추정값의 공분산값, 공정잡음 공분산, 측정잡음 공분산 값을 부여하면 EKF는 동작하게 되는데 자세한 식은 참고문헌 [12]에 잘 정리되어 있다.

EKF가 동작할 때 IMU 오차는 시스템식을 통해 위치 및 자체 추정 성능에 영향을 주게 된다. 식 (1)에서 바이어스 δfx, δfy, δωz는 상수로 두고 있는데 이는 정규 오차 중 환산계수, 비정렬에 의한 오차는 잘 제거되어 정규 오차의 바이어스나 불규칙 오차의 랜덤 상수 바이어스에 해당하는 상수 오차만 남아 있다고 가정하는 것이다. 이 경우에는 공정잡음을 평균이 0인 백색가우시안 잡음으로 가정할 수 있다. 만약 환산계수, 비정렬에 의하여 오차가 제거되지 않는다면 IMU에 입력되는 가속도나 각속도에 영향을 받는 오차가 남아 있어 바이어스가 상수라는 가정에 위배되고 아울러 EKF의 정확도 성능은 담보할 수 없게 된다. 이 경우에도 공정잡음 공분산을 크게 주어 큰 IMU 오차를 반영하는 EKF를 구성할 수 있으나 성능 개선에 한계가 있어 근본적인 해결은 IMU의 오차를 최대한 보정하는 것이다.

라이다 점군 정합 오차는 식 (2)의 측정식을 이용한 사후 추정값을 계산할 때 EKF의 위치 및 자체 추정 성능에 영향을 주게 된다. 그림 1은 ICP를 사용한 경우에 주변 물체의 상황에 따른 점군 정합 오차를 나타낸 것이다. XY 평면위의 여러 가지 색깔의 실선은 주변 물체들의 위치를 나타내고 평면 위에 그려진 stem들은 각 위치에서의 Y축 위치 정합 오차의 절대값을 나타낸 것이다. 그림에서 오른쪽 부분과 같이 오차가 작은 경우는 주변 물체들이 로봇 위치 주위에 밀집되게 위치하고 있는 반면에 그림의 아래쪽 부분과 같이 오차가 큰 경우는 주변 물체들의 밀집도가 작음을 알 수 있다. 이와 같이 ICP에 의한 점군 정합 오차는 로봇 주위의 물체들의 밀집도 및 그에 따른 점군간의 대응점의 품질에 따라 달라짐으로 실시간으로 식 (2)의 측정잡음 공분산을 튜닝하여 IMU 출력을 적분한 사전 추정값을 더 신뢰할 것인지 아니면 라이다 측정값을 더 신뢰할 것인지 조정할 필요성이 발생한다.

Fig. 1.

An example of point cloud matching error depending on the geometry of surrounding objects when the ICP is used.


III. IMU 오차 보정 및 측정잡음 공분산 튜닝 딥러닝 모델을 이용한 위치 및 자세 추정

II장에서 설명한 바와 같이 EKF에 의한 실내 이동 로봇의 위치 및 자세 추정 정확도를 높이기 위해서는 IMU의 정규 및 장착 오차 보정과 측정잡음 공분산 튜닝이 필수적이다. 이를 위하여 본 논문에서는 그림 2와 같이 딥러닝 모델들을 이용한 위치 및 자세 추정 방법을 제안한다. 제안하는 방법은 크게 IMU 오차 보정 망과 측정잡음 공분산 튜닝 망으로 구성되어 있다.

Fig. 2.

Pose estimation using deep learning models.

1. IMU 오차 보정 망

IMU 오차 보정 망은 크게 LSTM 블록과 EKF 블록으로 나뉘어 진다. LSTM 블록은 3축 IMU에서 측정된 가속도 fx, fy, fz 및 각속도 ωx, ωy, ωz를 입력으로 사용하여 정규 및 장착 오차가 보정된 2차원 평면상의 가속도 f-x, f-y 및 각속도 ω-z를 얻기 위한 블록이다. LSTM 블록의 내부 구성은 그림 3과 같다.

Fig. 3.

Structure of LSTM block.

LSTM 블록은 LSTM 딥러닝 모델을 중심으로 구성되어 있는데 이는 IMU의 출력이 진동과 잡음에 의한 영향이 시간에 걸쳐 나타나므로 데이터의 연관 관계를 반영할 수 있는 LSTM이 적합하다고 판단되기 때문이다. 블록 내부의 세부 구조는 본 논문에서 딥러닝 모델들을 PyTorch library를 사용하였으므로 이와 관련한 설정값으로 설명한다. LSTM은 input_size는 3축 IMU의 가속도 및 각속도를 입력으로 받으므로 6으로 설정하였다. 출력의 개수에 해당하는 hidden_size는 IMU의 환산계수, 비정렬, 바이어스 등의 오차항들의 개수가 가속도 12개, 각속도 15개임을 감안하여 그 합보다 많은 32로 설정하여 다양한 오차의 영향을 반영할 수 있도록 하였다. 층의 개수 num_layer는 많은 숫자에서 점점 줄여나가 시도한 결과 한 개의 층으로 충분함을 확인하여 1로 설정하였다. LSTM 이후에는 FC (Fully Connected) 층(layer)을 이중으로 배치하면서 점점 출력의 개수가 줄어들면서 최종적으로 보정된 가속도 및 각속도가 출력되도록 하였다. 첫 번째 FC 층은 ‘output_dim’ = 16을 설정하고 이후에 활성화 함수(activation function)로서 가속도 및 각속도에 부호가 있으므로 양수 및 음수를 모두 출력할 수 있는 tanh 함수를 사용하였다. 다음 단계에 또 한번 FC 층을 두어 환산계수, 비정렬, 바이어스 오차 등이 순차적으로 제거될 수 있도록 하였다. 출력 차원은 2차원 평면상의 가속도 f-x, f-y 및 각속도 ω-z를 출력하기 위하여 ‘output_dim’ = 3을 설정하고 이후의 활성화 함수는 마찬가지로 tanh 함수를 두었다.

EKF 블록은 IMU 오차 보정 망 전체로 보면 하나의 활성화 함수처럼 동작한다. LSTM 블록에서 보정된 가속도 및 각속도가 EKF에 전달되며 이는 식 (1)의 fx, fy, ωz에 대입되어 시간 갱신을 통한 로봇의 위치, 속도, 자세각, IMU 바이어스의 사전 추정값을 계산한다. 다음 단계는 측정값 갱신 부분으로 최종 출력은 위치 및 자세각 사후 추정값 X^, Y^, θ^이다. 측정값 갱신을 위해서는 먼저 라이다 출력 즉, 물체까지의 거리 ri 및 방향 φi를 담고 있는 점군 데이터 {ri, φi}로부터 점군 정합 알고리즘을 적용하여 구한 위치 및 자세각 XL, YL, θL이 필요하다. 본 논문에서는 대표적인 방법 중의 하나인 ICP 알고리즘을 사용하였다. EKF 측정값 갱신에 필요한 측정잡음 공분산 R은 측정잡음 공분산 튜닝 망으로부터 계산되어 입력된다.

IMU 오차 보정 망의 학습(training)은 EKF의 계수들은 정해져 있으므로 LSTM 내부의 계수들을 학습하는 과정이다. 이때 IMU 오차 보정 망의 출력 즉, EKF로부터 구한 위치 및 자세 각 추정값이 참값과의 차이가 최소가 되도록 학습하는 것이다. 본 논문에서 참값은 정해진 위치에 놓여 있는 마커를 로봇에 부착된 카메라로 검출함으로써 로봇의 위치 및 자세를 참값을 구하도록 하였다. 학습 과정에서 주의해야 하는 것은 LSTM 블록이 정규 및 장착오차를 효과적으로 제거하여 출력인 f-x, f-y 및 ω-z가 로봇의 참 가속도 및 각속도에 근접한 경우 EKF의 출력 X^, Y^, θ^도 로봇의 참 위치 및 자세값에 근접해야 올바른 학습이 이루어 질 수 있다는 점이다. 이를 위해서는 라이다의 측정값으로부터 구한 XL, YL, θL에 오차가 있을 때 그 크기가 크고 작음에 따라 측정잡음 공분산 R의 튜닝이 동기화 되어 이루어져야 한다는 것이다. 그러므로 IMU 오차 보정 망의 학습 과정에서도 측정잡음 공분산 튜닝 망의 역할이 매우 중요하다.

2. 측정잡음 공분산 튜닝 망

측정잡음 공분산 튜닝 망은 라이다 출력인 물체까지의 거리 ri 및 방향 φi를 담고 있는 점군 데이터 {ri, φi}로부터 ICP 알고리즘에 의해 구한 위치 및 자세각의 오차를 추정하는 CNN 블록과 이로부터 측정잡음 공분산 R을 계산하는 블록으로 나뉜다. CNN 블록의 내부 구성은 그림 4와 같다.

Fig. 4.

Structure of CNN block.

CNN 블록은 입력이 라이다 점군 데이터 {ri, φi}이며 출력은 로봇 위치, 자세 오차의 절대값 |δX|, |δY|, |δθ|이다. 절대값을 출력으로 사용하는 이유는 라이다 주위의 물체들이 놓여 있는 방향보다는 축 방향으로의 밀집도가 관련성이 높아, 오차의 부호보다는 크기가 점군 데이터와의 관련성이 높은 것으로 망 학습 결과 나타났기 때문이다. CNN 내부의 Conv는 모두 1차원 컨볼루션(convolution) 블록이다. 모든 Conv 들은 kernel_size는 점군에서 4개 정도의 작은 그룹으로 모여있는 점들도 독립된 물체로 인식하기 위하여 4로 설정하였으며, dilation은 인접한 점들을 자세하게 탐색하게 하기 위하여 1로 두었으며, 또한 ‘padding’=“same”으로 정하여 입력 데이터의 길이와 출력 데이터의 길이를 갖게 하였다. 먼저 첫 번째 Conv는 입력이 점군내 각 점들의 거리, 각도 2개의 특징을 가지므로 ‘in_channels’ = 2로 두었으며, ‘out_channnels’ = 16이다. 이어서 활성화 함수로서 CNN의 최종 출력이 오차의 절대값임을 고려하여 양수 출력을 주는 ReLU를 사용하였다. 두 번째 Conv는 ‘out_channnels’ = 64로 주고 활성화 함수 ReLU, 그리고 세 번째 Conv는 ‘out_channnels’ = 128 그리고 마찬가지로 활성화 함수 ReLU를 사용하였다. 이와 같이 3단계의 Conv를 사용한 것은 물체들이 벽면, 직각 모서리, 자유각도 모서리 등의 다양한 특징 뿐만 아니라 그 크기도 달라 여러 단계의 Conv가 망 학습에 유리하였기 때문이다. 입력 채녈이 크기 2에서 출발하여 출력 채녈이 128로 늘어나는 것은 Conv를 거칠 때 마다 위치 및 자세 오차와 관련된 더 세분화 된 특징을 추출하기 위함이며 마지막 단계 FC는 ‘output_dim’ = 3으로 두어 |δX|, |δY|, |δθ|를 출력하도록 하였다. Flat 즉, Flatten 층이 세 번째의 Conv와 마지막 단계 FC 사이에 배치되어 있는데 이는 Conv의 결과를 1차원으로 변환한 후 FC를 연결하기 위한 용도이다.

CNN 블록의 학습은 그림 2의 전체 블록과는 별도로 독립적으로 이루어지는데 그 이유는 첫째, CNN 블록의 출력 |δX|, |δY|, |δθ|은 ICP에 의한 점군 정합 결과인 XL, YL, θL와 카메라를 이용하여 계산된 로봇의 위치 및 자세 참값의 차이로부터 계산 가능하기 때문이다. 둘째, 그림 2의 전체 블록을 사용하여 CNN 블록을 학습하기 위해서는 IMU 오차 보정 망의 LSTM이 이미 학습이 되어 있어야 한다는 전제가 필요하기 때문이다. 이에 따라 본 논문에서는 CNN 블록을 먼저 학습하고 이어서 IMU 오차 보정 망의 LSTM을 학습하는 방법을 사용하였다.

CNN 블록의 출력으로 EKF에서 사용할 측정잡음 공분산 R은 수식 (3)과 같이 계산한다.

R=10α*diag|δX|β,|δY|β,|δθ|β(3) 

식에서 diag는 각 항을 대각화(diagonalize) 한다는 의미로 결과적으로 R은 3x3 행렬이 된다. α, β는 센서의 규격에 따라 조정해야할 변수로서 본 논문의 실험 환경에서는 α = 1, β = 2에서 좋은 추정 성능을 보임을 확인할 수 있었다.


IV. 실험에 의한 제안한 방법의 검증

실험에 의하여 제안한 방법을 검증한다. 실험 환경은 그림 5의 (a)와 같은 이동 로봇을 사용하여 (b), (c)와 같이 건물의 복도 및 실내 환경에서 주행 시험을 하였다.

Fig. 5.

Experiment environment.

로봇은 가로 60cm, 세로 30cm, 높이는 팔길이 포함 80cm 정도로 로봇팔을 부착하여 그리퍼(gripper)로 물건을 집어 필요한 곳으로 전달할 수 있는 4륜 이동 로봇이다. 앞바퀴는 조향(steering)을 할 수 있으며 뒷바퀴에 의하여 전진 및 후진 속도를 제어한다. 마이크로콘트롤러는 Nvidia nano 보드가 장착되어 데이터의 수집과 연산을 담당한다. IMU는 EBRCV 25GV4 모델로 3축 가속도 및 각속도를 측정할 수 MEMS 형 센서이다. 라이다는 RPLIDAR-A1으로 스캔 해당도 1 deg, 스캔 주파수 5.5Hz, 감지 거리는 0.15~6m 규격을 지닌다. 딥러닝 모델의 학습과 성능 검증을 위한 로봇의 위치 및 자세 참값을 측정하기 위하여 카메라를 부착하였으며 사용된 모델은 Intel RealSense D455로 depth를 측정할 수 있고 추천 감지 거리는 6m 정도이다. 그림 5(b)와 같이 정해진 위치에 Aruco 마커를 설치하고 카메라가 이를 인식하면 연산을 거쳐 절대좌표계 상의 로봇 위치 및 자세를 구할 수 있다.

그림 6은 복도 및 실내 실험에서의 로봇의 주행 궤적을 나타낸 것이다. 파란색은 라이다가 인식하는 주변 물체의 표면이며 빨간색은 로봇의 궤적이다. 복도 실험은 벽면과 방들의 출입문이 반복적으로 나타나다가 교차로에서 회전하는 일반적인 주행 상황을 가정하였다. 실내 실험은 크게 원을 그리도록 하여 주변 물체가 다양하게 놓여 있는 상황을 접하도록 하였다. 복도 실험은 총 10회, 실내 실험은 총 6회의 실험 set를 획득하여 50%는 망의 학습에 사용하고 나머지 50%는 검증(test)에 사용하였다. LSTM 및 CNN 모두 optimizer로 많이 사용되는 Adam (Adaptive Moment Estimation)을 사용하였으며 손실함수는 MSE (Mean Squared Error)를 주어 전 시간대에서 망출력과 참값과의 차이를 줄이도록 하였다. 학습 총 epoch 수는 50000회를 학습하여 그 중에서 최소 손실함수 값을 주는 학습 결과를 선택하였다.

Fig. 6.

Trajectory of robot.

망의 학습에 사용되지 않은 IMU 출력값 및 라이다 점군 데이터 중 한 set을 사용하여 추정한 로봇의 위치 및 자세의 추정 오차를 그림 7에 나타내었다.

Fig. 7.

Comparison of position and attitude estimation error.

비교를 위하여 라이다 점군 데이터에 ICP를 적용한 정합 결과(청록색), IMU 오차의 보정 없이 고정된 측정잡음 공분산을 사용한 통상적인 EKF(파란색), 제안한 방법(빨간색)의 추정 오차를 하나의 그림에 표시하였다. 복도 실험, 실내 실험 모두 제안한 방법의 X,Y 위치 및 자세의 추정값이 라이다 데이터로부터 계산한 결과 그리고 통상적인 EKF에 비해서 오차가 감소 됨을 시각적으로 확인할 수 있다.

표 1 및 표 2에 정량적 비교를 위하여 복도 및 실내 실험 추정값의 RMSE (Root Mean Squared Error, 평균 제곱근 오차)와 최대오차를 제시하였다.

RMSE and max error of estimates in corridor experiment.

RMSE and max error of estimates in interior room experiment.

표 1의 복도 실험에서는 X, Y 위치 및 자세 오차가 RMSE 및 최대오차 모든 면에서 제안한 방법이 가장 작음을 알 수 있다. 위치 오차는 제안한 방법이 라이다 점군에 대한 ICP 결과에 비해서 RMSE 및 최대오차를 각각 최대 0.049m, 0.054m 까지 감소시키고, 기존 EKF에 비해서는 각각 최대 0.032m, 0.034m까지 감소시킨다. 자세 오차는 제안한 방법이 라이다 점군 ICP 결과에 비해서 RMSE 및 최대오차를 각각 0.018rad, 0.028rad 감소시키고, 기존 EKF에 비해서는 각각 0.018rad, 0.027rad 감소시킨다.

표 2의 실내 실험에서는 제안한 방법이 X, Y 위치 오차는 RMSE 및 최대오차 모두 가장 작으나 자세는 라이다 점군에 대한 ICP 결과가 오차가 가장 작다. 위치 오차는 제안한 방법이 라이다 점군에 대한 ICP 결과에 비해서 RMSE 및 최대오차를 각각 최대 0.005m, 0.056m까지 감소시키고, 기존 EKF에 비해서는 각각 최대 0.022m, 0.065m까지 감소시킨다. 자세 오차는 제안한 방법이 라이다 점군에 대한 ICP 결과에 비해서 RMSE 및 최대오차가 각각 0.001rad, 0.003rad 더 증가하나 수치에서 드러나듯이 그 차이는 미미하다고 할 수 있다. 기존 EKF에 비해서는 제안한 방법이 RMSE 및 최대오차를 각각 0.007rad, 0.02rad 감소시킨다.

본 논문의 제안한 방법이 잘 작동하는지 확인하는 방법은 그림 2의 측정잡음 공분산 튜닝이 잘 되는지 그리고 IMU 오차가 잘 보정이 되는지를 살펴보는 것이다. 측정잡음 공분산 튜닝 결과를 알아보기 위하여 그림 8에 라이다 점군에 대한 ICP 정합 결과 오차(청록색)과 제안한 공분산 튜닝에 의하여 산출되는 위치 및 자세 오차 공분산(검은색)을 도시하였다.

Fig. 8.

Comparison of ICP registration error of lidar point cloud and error covariance by proposed method.

그림을 비교해 보면 라이다에 의한 오차가 클 때 오차 공분산 역시 큰데 이는 측정잡음 공분산의 값을 크게 하여 IMU 측정값을 더 신뢰한다는 의미이며, 라이다에 의한 오차가 작을 때 오차 공분산이 작은 것은 측정잡음 공분산을 작게 하여 라이다에 의한 결과를 더 신뢰한다는 것이다. 이는 제안한 측정잡음 공분산 튜닝 망이 의도대로 잘 작동함을 보여준다.

IMU 오차 보정 망이 잘 동작하는지 확인하기 위하여 그림 9에서 IMU 출력값에 대한 오차 보정 전후의 값을 비교하였다. IMU의 출력의 참값은 구하기 힘드나 로봇이 정지하고 있을 때의 가속도 및 각속도의 참값은 0이다. 그림에서 정지하고 있는 주행 시작 시간 및 종료 시간에 가속도 및 각속도가 오차 보정 후의 값(빨간색)이 보정 전의 값(파란색)에 비해 0에 가까움을 시각적으로 확인할 수 있다.

Fig. 9.

Comparison of before and after calibration to IMU output.

정량적인 수치는 표 3에 제시하였다. 표는 로봇의 출발전 약 2초 동안 그리고 주행후 약 3초 동안의 정지 상태에서의 가속도 및 각속도 평균을 나타낸 것이다. 정지 상태에서 보정 후의 값이 보정 전의 값에 비해 가속도 및 각속도 절댓값이 3~4배 작으므로 제안한 IMU 오차 보정 망이 잘 동작함을 확인할 수 있다.

Comparison of before and after calibration of averaged IMU outputs at rest.

이상의 결과로부터 IMU 및 라이다를 사용하여 EKF 방법으로 로봇의 위치 및 자세를 추정하는 경우에는 본 논문에서 제안하는 IMU 오차 보정 및 측정잡음 공분산 튜닝 방법이 추정 오차를 줄이는 매우 유용한 방법임을 알 수 있다.


V. 결론

본 논문에서는 IMU 및 라이다 센서를 사용하고 EKF 방법으로 로봇의 위치 및 자세를 추정하는 경우에 딥러닝 모델들을 활용하여 IMU의 정규 및 장착 오차를 보정하고 측정잡음 공분산을 튜닝하는 방법을 제안하였다. IMU의 오차 보정값을 출력하는 LSTM 딥러닝 모델에 활성화 함수로서 EKF를 결합하여 카메라로 구한 위치 및 자세 참값으로 LSTM을 학습하는 방법을 제안하였다. 또한 라이다 점군의 각 점들의 거리 및 각도 정보만을 입력으로 사용하는 CNN으로 ICP에 의한 위치 및 자세 오차를 추정하고 이로부터 EKF에서 사용할 측정잡음 공분산을 튜닝하는 방법을 제한하였다. IMU 오차 보정과 측정 잡음 공분산 튜닝을 위한 2개의 인공 신경망의 학습 절차를 제시함으로써 상호 연관성을 가지면서 최종적인 로봇의 위치 및 자세 추정 성능을 높이도록 하였다. 복도 및 실내에서의 실제 실험에 의한 결과는 제안한 방법이 라이다 측정값만을 사용하거나 통상적인 EKF를 사용하는 것에 비해 위치 및 자세 추정 오차를 효과적으로 감소시킬 수 있음을 보여준다.

Acknowledgments

본 논문은 2023년도 한국기술교육대학교 교수 교육연구진흥과제에서 지원하여 연구하였음.

REFERENCES

  • M. Lee, M. Kang, D. G. Shin, J. Pyo, J. Kim, H. Song, and M. Kim, “Localization Method in dense smoke scenarios using radar-thermal stereo sensor fusion,” Journal of Institute of Control, Robotics and Systems (in Korean), vol. 30, no. 8, pp. 871-878, August 2024. [https://doi.org/10.5302/J.ICROS.2024.24.0084]
  • H. H. Kim, H. H. Kang, D. H. Noh, and H. M. Lee, “Comparative evaluation of odometry in LiDAR inertial SLAM algorithms for agricultural robots,” Journal of Institute of Control, Robotics and Systems (in Korean), vol. 31, no. 12, pp. 1403-1409, Dec. 2025. [https://doi.org/10.5302/J.ICROS.2025.25.0218]
  • U. Krogmann, “Identification procedures for strapdown sensor parameters by laboratory testing,” DGON-Symposium Gyro Technology, Bochum, Germany, p. 36, Sept. 1978.
  • F. Ghanipoor, M. Hashemi, and H. Salarieh, “Toward calibration of low-precision MEMS IMU using a nonlinear model and TUKF,” IEEE Sensors Journal, vol. 20, no. 8, pp. 4131-4138, April 2020. [https://doi.org/10.1109/JSEN.2019.2963538]
  • K. H. Chang, S. B. Chun, S. K. Sung, E. S. Lee, H. S. Jun, and Y. J. Lee., “Calibration of a low grade MEMS IMU using a high performance reference sensor,” Journal of the Korea Institute of Information and Communication Engineering (in Korean), vol. 12, no. 10, pp. 1822-1829, Oct. 2008.
  • J. A. Farrell and M. Barth, The Global Positioning System & Inertial Navigation, McGraw-Hill, 1999.
  • T. Haarnoja, A. Ajay, S. Levine, and P. Abbeel, “Backprop KF: Learning discriminative deterministic state estimators,” in Proc. Advances in Neural Information Processing Systems, pp. 4376–4384, May 2016.
  • M. Brossard, A. Barrau, and S. Bonnabel, “AI-IMU Dead-Reckoning,” IEEE Transactions on Intelligent Vehicle, vol. 5, no. 4, pp. 585-595, December, 2020. [https://doi.org/10.1109/TIV.2020.2980758]
  • B. Or and I. Klein, “A hybrid model and learning-based adaptive navigation filter,” IEEE Transactions on Instrumentation and Measurement, vol. 71, pp. 1-11, August 2022. [https://doi.org/10.1109/TIM.2022.3197775]
  • H.-J. Yang and S. M. Seong, “Extended Kalman filter covariance tuning using LSTM for navigation system,” Journal of Institute of Control, Robotics and Systems (in Korean), vol. 28, no. 2, pp. 130-137, Feb. 2022. [https://doi.org/10.5302/J.ICROS.2022.21.0192]
  • S. M. Seong and S. Jeong, “A Calibration Method for IMU Attached to a Mobile Robot Using LSTM Network,” Journal of Institute of Control, Robotics and Systems (in Korean), vol. 29, no. 6, pp. 488-494, June 2023. [https://doi.org/10.5302/J.ICROS.2023.23.0034]
  • D. J. Simon, Optimal State Estimation - Kalman, H infinity, and Nonlinear Approaches, John & Wiley, 2006. [https://doi.org/10.1002/0470045345]
  • A. Censi, “An accurate closed-form estimate of ICP’s covariance,” Proc. of IEEE International Conference on Robotics and Automation (ICRA), pp. 3167–3172, April 2007. [https://doi.org/10.1109/ROBOT.2007.363961]
  • D. Landry, F. Pomerleau, and P. Giguere, “CELLO-3D: Estimating the Covariance of ICP in the Real World,” 2019 International Conference on Robotics and Automation (ICRA), pp. 8190–8196, May 2019. [https://doi.org/10.1109/ICRA.2019.8793516]
성 상 만

1993년 서울대 제어계측공학과 졸업. 1995년 동 대학원 석사. 2000년 서울대 전기공학부 박사. 2000년~2004년 삼성전자 무선사업부. 2004년~현재 한국기술교육대학교 메카트로닉스공학부 교수. 관심분야는 항법, 비선형필터, 시스템 식별 및 제어.

Fig. 1.

Fig. 1.
An example of point cloud matching error depending on the geometry of surrounding objects when the ICP is used.

Fig. 2.

Fig. 2.
Pose estimation using deep learning models.

Fig. 3.

Fig. 3.
Structure of LSTM block.

Fig. 4.

Fig. 4.
Structure of CNN block.

Fig. 5.

Fig. 5.
Experiment environment.

Fig. 6.

Fig. 6.
Trajectory of robot.

Fig. 7.

Fig. 7.
Comparison of position and attitude estimation error.

Fig. 8.

Fig. 8.
Comparison of ICP registration error of lidar point cloud and error covariance by proposed method.

Fig. 9.

Fig. 9.
Comparison of before and after calibration to IMU output.

Table 1.

RMSE and max error of estimates in corridor experiment.

오차 종류 추정 방법 X 오차 [m] Y 오차 [m] 자세 오차 [rad]
RMSE 점군 ICP 0.080 0.059 0.038
기존 EKF 0.063 0.034 0.038
제안방법 0.031 0.031 0.020
최대오차 점군 ICP 0.131 0.159 0.090
기존 EKF 0.119 0.138 0.089
제안방법 0.085 0.105 0.062

Table 2.

RMSE and max error of estimates in interior room experiment.

오차 종류 추정 방법 X 오차 [m] Y 오차 [m] 자세 오차 [rad]
RMSE 점군 ICP 0.027 0.023 0.020
기존 EKF 0.044 0.029 0.028
제안방법 0.022 0.019 0.021
최대오차 점군 ICP 0.149 0.142 0.077
기존 EKF 0.158 0.105 0.100
제안방법 0.093 0.090 0.080

Table 3.

Comparison of before and after calibration of averaged IMU outputs at rest.

구분 x축 가속도 [m/s2] y축 가속도 [m/s2] z축 각속도 [rad/s]
보정전 -0.128 0.269 0.067
보정후 -0.045 0.069 -0.026