공장환경에서 AGV를 위한 인공표식 기반의 포즈그래프 SLAM
†Corresponding Author : Mechanical Engineering, Korea University, 145, Anam-ro, Seongbuk-gu, Seoul, Korea jbsong@korea.ac.kr
© Korea Robotics Society All rights reserved
This is an Open-Access article distributed under the terms of the Creative Commons Attribution Non-Commercial License (http://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 paper proposes a pose-graph based SLAM method using an upward-looking camera and artificial landmarks for AGVs in factory environments. The proposed method provides a way to acquire the camera extrinsic matrix and improves the accuracy of feature observation using a low-cost camera. SLAM is conducted by optimizing AGV’s explored path using the artificial landmarks installed on the ceiling at various locations. As the AGV explores, the pose nodes are added based on the certain distance from odometry and the landmark nodes are registered when AGV recognizes the fiducial marks. As a result of the proposed scheme, a graph network is created and optimized through a G2O optimization tool so that the accumulated error due to the slip is minimized. The experiment shows that the proposed method is robust for SLAM in real factory environments.
Keywords:
Pose-graph, SLAM, Upward-looking camera, AGV, Camera extrinsic matrix1. 서 론
AGV(automated guided vehicle)는 주로 공장에서 작업자를 대신하여 수화물을 운송하는 수단으로 사용된다. 과거에는 AGV가 라인 트레이싱 방식으로 이동하였으나, AGV가 이 동하는 구간마다 테이프를 설치해야 하며, 정기적으로 보 수해야 하는 불편함이 있었다. 최근에는 AGV에 자율주행 기술을 접목시켜 위와 같은 문제점들을 해결하기 위한 연 구들이 진행되고 있다.
자율주행 방식의 AGV 구동에서는 AGV의 위치인식 성 능이 매우 중요하다. 이는 AGV가 자신의 위치를 정확하 게 인식하지 못하면 목적지로 주행하는 것이 어려워지고, 설비나 작업자와 충돌할 위험이 커지게 된다. AGV가 위치 인식을 수행하며 주행을 수행하기 위해서는 미리 작성된 환경지도를 사용하는 것이 효과적이다[1,2]. 환경지도는 SLAM(simultaneous localization and mapping) 과정을 통해 작 성할 수 있는데, Fig. 1에는 기존에 제안된 다양한 SLAM 기법들이 소개되어 있다. EKF (extended Kalman filter)[3]나 ICP(iterative closest point) 필터[4]를 이용하여 로봇의 위치를 인식하는 방법은 현재까지 많이 사용되고 있다. 그러나 EKF는 관측하는 특징의 수가 많아질수록 계산부하가 매 우 커져서 넓은 환경에서 사용하기는 비효율적이며, ICP는 회전에 취약한 한계점이 있다. 전방 카메라를 이용하여 Bag of visual words 기반의 루프감지(loop detection)를 수행하 는 그래프 SLAM 방식은 최근 활발히 진행되고 있지만[5], 실외 환경같이 특징이 다양한 환경에서 검증된 방법으로 단순한 패턴이 반복되는 실내 공장환경에서는 사용하기 힘들다. 최근 여러 반사판(reflector)을 설치하고 삼각측량 방식으로 위치를 인식하는 레이커 스캐너를 장착한 AGV 의 정밀주행 방법이 제안되었으나[6], 센서 가격이 고가이 며, 공장 전역에 많은 반사판을 설치해야 하는 제한이 있 다.
본 논문에서는 이륜차동(two-wheel differential) 방식의 AGV가 공장환경에서 SLAM을 수행하는 방법을 제안한다. 제안한 방법은 저가의 천장 지향 카메라를 이용하여 미리 설치된 인공표식을 인식하고, AGV는 이를 특징으로 사용 하여 포즈그래프(pose-graph) SLAM을 수행한다. 제안한 방 법은 다음과 같은 장점이 있다. 첫째, 천장환경은 한번 설 치되면 변화가 거의 없으므로, 수화물 위치나 설비의 변화 가 잦은 공장 환경에서 효과적이다. 또한, 천장에 설치된 인공표식은 장애물이나 설비로 인해서 가려질 우려가 거 의 없다. 둘째, 저가의 카메라 센서를 이용하므로, 경제적 이고, 특징으로 사용하는 인공표식은 기존 라인 트레이싱 방식에 사용되는 테이프보다 매우 저렴하고 유지 및 관리 가 용이하다. 제안한 방법에서는 카메라로 특징을 관측하 는 성능이 SLAM 정확성에 영향을 주므로, AGV에 장착된 카메라의 정확한 외부행렬(extrinsic matrix)을 획득하여 관측 정확성을 향상 시키는 것이 매우 중요하다
본 논문은 다음과 같이 구성되어 있다. 2장에서는 천장 지향 카메라를 통한 관측성능을 향상시키기 위해 카메라 외부행렬을 획득하는 과정을 설명한다. 3장에서는 천장에 설치된 인공표식을 인식하며 그래프를 형성하는 과정에 대해 설명한다. 4장에서는 실험 결과에 대하여 논하고, 5장 에서 결론을 도출한다.
2. 천장 영상지도 작성
2.1. 영상 투영모델
천장을 지향하는 카메라로 특징을 관측하는 정확성이 높을수록 이에 기반한 SLAM의 정확성이 향상된다. 카메 라와 천장 사이에는 장애물이 존재하지 않도록 카메라를 설치하여야 하므로, 많은 경우에 카메라의 중심과 로봇 중 심이 일치하기는 어렵다. 또한, 로봇좌표계와 카메라좌표 계가 일치하도록 설계되더라도 설치 시에 두 좌표계가 기 구적 오차로 인해 틀어질 수도 있다.
Fig. 2에서와 같이, 본 논문에서는 AGV의 두 바퀴를 연 결하는 축의 중심을 지나는 수직 축과 바닥 평면과 평행 하고 카메라의 중심을 포함하는 평면의 교점을 로봇좌표 계 원점으로 정의한다. Fig. 3(a)는 카메라좌표계와 로봇좌 표계 간의 병진 및 회전 이동을 보여준다. Fig. 3(b)와 같이 이미지 평면에 투영된 특징은 두 좌표계 간의 변환관계를 고려해 주어야 정확한 관측이 가능하며, 이러한 변환관계 는 카메라 외부행렬로 표현된다.
카메라 외부행렬 E와 내부행렬(intrinsic matrix) I를 고려하 면, 카메라로 관측한 특징의 로봇좌표계 (XR, YR, ZR)에서 영 상좌표계 (u,v)로의 투영모델은 다음과 같다.
(1) |
여기서 상수 s는 스케일 상수, fu, fv는 초점거리, cu, cv는 주 점(principal point)를 나타낸다. 카메라의 외부행렬은 3×3 회전행렬 r과 1×3 병진행렬 t로 나타낸다. 식 (1)에서 영 상좌표계의 u, v 축은 로봇좌표계의 y, x 축과 대응된다. 식 (1)은 다음과 같이 전개할 수 있다.
(2) |
(3) |
(4) |
(5) |
식 (5)는 다음과 같이 변환할 수 있으며, 양변의 3행이 1 로 동일하기 때문에 스케일 상수 s를 제거할 수 있다.
(6) |
식 (6)은 다음과 같이 두 식으로 전개할 수 있다.
(7) |
(8) |
2.2. 인공표식 인식을 통한 외부행렬 획득
Fig. 4에는 AGV가 천장에 설치된 동일한 인공표식을 관 측하며 이동한 경로가 나타나 있다. 여기서, 로봇이 위치 n 에서 카메라를 통해 인공표식을 인식하면 영상좌표상에서 인공표식의 중심 좌표 (un, vn)를 얻을 수 있다. 로봇에서 인 공표식으로의 전역좌표상의 상대위치는 (XR,n, YR,n, ZR,n)로 나 타낸다. 임의로 다음과 같은 식을 정의한다.
(9) |
(10) |
(11) |
(12) |
식 (9) ~ (12)은 내부행렬이 주어졌을 때, 로봇에서 인공표 식으로의 전역좌표상의 상대위치 정보와 영상좌표의 정보 를 포함한다. 카메라 외부행렬 E는 다음과 같이 행렬 E′로 변형할 수 있다.
(13) |
식 (7)과 (8)은 (9) - (13)를 이용하여 다음과 같이 나타낼 수 있다.
(14) |
식 (14)은 AX = 0 형식인 행렬방정식이므로, 특이값 분해 (singular value decomposition) 과정을 통해 X에 해당하는 E′ 을 계산할 수 있다. E′는 12×1 행렬이고, 한 개의 데이터 가 추가될 때마다 A에 해당하는 행렬은 두 행이 추가되므 로 데이터의 수가 최소 6개 이상일 때 E′을 계산할 수 있 으므로 카메라 외부행렬을 획득할 수 있다.
AGV에 장착된 카메라의 외부행렬을 계산하기 위해서는 먼저 로봇이 인공표식 주위를 이동하며 인공표식 관측 정 보를 수집하여야 한다. Fig. 4와 같이, AGV가 인공표식을 중심으로 ‘8’자로 이동하며 엔코더 정보, 즉 오도메트리 정 보를 누적한다. AGV가 일정 거리 이상을 이동하면, 로봇 에서 인공표식으로의 상대 위치정보와 인공표식의 영상좌 표를 수집한다. 오도메트리 정보를 통해 로봇에서 인공표 식으로의 상대 위치를 얻기 위해서는 AGV 초기 위치와 인공표식의 전역좌표상의 (x, y)가 일치해야 한다.
3. 천장 카메라 기반의 포즈그래프 SLAM
공장환경에서 AGV가 자율주행을 수행할 때, 미리 작성 한 환경지도를 이용해서 위치인식을 수행하는 것이 효율 적이다. 환경지도는 SLAM을 수행한 결과로 얻을 수 있다. 본 장에서는 포즈그래프 SLAM을 수행하기 위해, 저가의 천장 지향 카메라로 인식한 인공표식을 특징으로 사용하 여 그래프를 형성하는 과정을 설명한다.
Fig. 5는 포즈그래프 SLAM을 위해 형성된 그래프의 예 를 보여준다. AGV의 위치와 인공표식의 위치는 노드로 등 록하고, 등록된 AGV 위치노드 간의 상대거리와 AGV에서 인공표식으로의 상대거리는 에지를 형성한다. AGV가 미지 의 영역을 탐사할 때, xt-1s 노드에서 일정 거리를 이동하여 새로운 노드 xts 로 도달한 경우, 오도메트리를 누적시켜 두 위치 간의 상대위치를 획득하고, 이를 에지로 등록한다. xts 에서 새로운 인공표식이 발견되면 xkl 노드를 새로 등록하 고 xts에서 xkl까지의 상대위치를 에지로 등록한다. 이와 같은 과정을 통해 그래프를 형성한다. 그리고 동일한 인공표 식을 재인식하면 그래프를 최적화하여 오차를 최소화한다.
3.1. AGV 위치 노드 및 에지 등록
AGV의 이동거리는 오도메트리를 통해 파악할 수 있지 만 오차가 발생하게 되며, 특히 회전 시에 더 큰 오차가 발생한다. 그러므로 Fig. 6에서와 같이, 그래프 SLAM은 직 진구간보다는 회전구간에서 더 많은 노드를 등록하는 것 이 효과적이다. 예를 들어, AGV의 180° 회전과 10m 이동 을 동일하게 간주하고, AGV가 이전에 등록된 노드부터 1m 이동할 때마다 노드를 추가하면 회전 구간에서 더 많 은 노드를 등록할 수 있다.
3.2. 인공표식 인식을 통한 루프 인식
형성된 그래프를 최적화하기 위해서는 로봇이 주행 중 에 이전에 인식하였던 인공표식을 다시 인식하고, 이를 이 용하여 루프결합(loop closing)을 수행하여야 한다. Fig. 7(a) 와 같이, AGV가 이동하며 등록한 노드는 인공표식이 인식 된 노드와 인공표식이 인식되지 못한 노드로 분류한다. Fig. 7(b)에는 동일한 인공표식을 연속으로 관측한 노드들을 같 은 그룹으로 군집화한 모습이 나타나 있다. 카메라 영상에 는 왜곡이 존재하므로 영상의 주점에서 멀수록 오차가 커 진다. 따라서 Fig. 7(c)와 같이, 인식된 인공표식의 영상좌표 가 주점과 가장 가까운 노드만을 각 그룹에서 추출한다. 추출한 노드가 인식한 인공표식이 이전에 인식한 인공표 식과 동일한 경우 루프가 발생한 것으로 간주하고, 이 인 공표식을 특징노드로 등록한다. 각 AGV의 위치노드에서 특징노드로의 상대위치는 구속조건(constraint)이 된다.
AGV가 SLAM을 수행할 때, 위의 과정을 통해 그래프를 형성하게 된다. 형성된 그래프는 G2o 2D SLAM 알고리즘 을 이용하여 최적화한다[7]. Fig. 8에는 경로를 최적화한 예 가 나타나 있다.
4. 실험 및 결과
본 연구에서 제안한 방법을 실제 공장환경에서의 실험 을 통해 검증하였다. AGV가 가로 70m, 세로 20m의 경로 를 이동하며 SLAM을 수행하였는데, Fig. 9(a)에는 엔코더 정보만을 누적시킨 경로가 파란색으로 표시되어 있고, 제 안한 방법으로 최적화시킨 경로가 빨간색으로 표시되어 있다. 여기서 추출된 AGV 위치노드는 2110개 이다. 이 결 과로부터 제안한 방법을 이용하여 성공적인 SLAM을 수 행할 수 있음을 알 수 있으며, SLAM의 결과로 얻은 격자 지도가 (b)에 나타나 있다. 이때, 모든 인공표식의 높이를 직접 측정하여 AGV 위치에서 관측한 인공표식의 상대위 치를 계산하는 과정에서 사용하였다.
Fig. 10은 인식된 인공표식의 ID를 보여주는데, 인공표식 간의 실제 거리는 Bosch의 GLM150 레이저 거리측정기로 측정하였다. SLAM의 결과로 AGV 경로가 최적화되는데, 각 위치에서 관측된 인공표식의 위치도 오차가 최소화된 다. 따라서 본 논문에서는 인공표식 간의 실제 거리와 최 적화된 그래프를 통해서 얻은 인공표식 간의 거리를 비교 하여 SLAM의 정확도를 판단하였다.
Fig. 11는 관측된 인공표식의 ID 순서대로, 연속된 두 인 공표식 간의 실제 거리와 AGV가 관측한 거리의 오차를 나타내었다. Fig. 11(a)에는 외부행렬을 고려하지 않고 인식
5. 결 론
References
- Jung, MK, Song, JB, “Robust Global Localization based on Environment map through Sensor Fusion, Journal of Korea Robotics Society, (2014), 9(2), p96-103. [https://doi.org/10.7746/jkros.2014.9.2.096]
- Heo, H, Song, JB, “Global Localization Based on Ceiling Image Map, Journal of Korea Robotics Society, (2014), 9(3), p170-177. [https://doi.org/10.7746/jkros.2014.9.3.170]
- Bailey, T, Nieto, J, Guivant, J, Stevens, M, Nebot, E, “Consistency of the KF-SLAM Algorithm, IEEE/RSJ Int. Conf. on Intelligent Robots and Systems, (2006). [https://doi.org/10.1109/iros.2006.281644]
- Martinez, JL, Gonzalez, J, Morales, J, Mandow, A, Garcia-Cerezo, AJ, “Mobile Robot Motion Estimation by 2D Scan Matching with Genetic and Iterative Closest Point Algorithms, Journal of Field Robotics, (2006), 23(1), p21-34. [https://doi.org/10.1002/rob.20104]
- Cummins, M, Newman, P, “FAB-MAP: Probabilistic Localization and Mapping in the Space of Appearance, Int. Journal of Robotics Research, (2008, June), 27(6), p647-665. [https://doi.org/10.1177/0278364908090961]
- ronzoni, D, Olmi, R, Secchi, C, Fantuzzi, C, AGV Global Localization Using Indistinguishable Artificial Landmarks, Int. Conf. on Robotics and Automation, (2011), p287-292. [https://doi.org/10.1109/icra.2011.5979759]
- Kummerle, R, Grisetti, G, Stasdat, H, Konolige, K, Burgard, W, “g o2: A General Framework for Graph Optimization”, Int. Conf. on Robotics and Automations, (2011), p3607-3613. [https://doi.org/10.1109/icra.2011.5979949]