Journal of Korea Robotics Society
[ ARTICLE ]
The Journal of Korea Robotics Society - Vol. 20, No. 2, pp.268-276
ISSN: 1975-6291 (Print) 2287-3961 (Online)
Print publication date 30 May 2025
Received 24 Oct 2024 Revised 14 Nov 2024 Accepted 18 Nov 2024
DOI: https://doi.org/10.7746/jkros.2025.20.2.268

다중 2D-LiDAR 기반 로봇플랫폼 내부 반목 블록 위치 측정 및 캘리브레이션 알고리즘 개발

김명진1 ; 김진현
Development of Multi 2D-LiDAR-based Robot Platform Internal Keel Block Positioning and Calibration Algorithms
Myeongjin Kim1 ; Jinhyun Kim
1Graduate Student, Mechanical Engineering, Seoultech, Seoul, Korea kimmj@seoultech.ac.kr

Correspondence to: Full Professor, Mechanical Engineering, Seoultech, Seoul, Korea ( jinhyun@seoultech.ac.kr)

CopyrightⓒKROS

Abstract

Periodic maintenance is essential for maintaining the operational capabilities of modern naval vessels, with hull maintenance in drydock playing a critical role in ensuring safety and combat readiness. However, the current keel block placement process in naval drydocks relies on manual labor, resulting in low efficiency and a high risk of accidents. This study proposes an unmanned automated block placement system using a robot platform to address these issues. The system is equipped with a gripper and multiple 2D LiDAR sensors, enabling real-time precise measurement of block positions for automated placement. In particular, a RANSAC (Random Sample Consensus)-based calibration and block position measurement algorithm was developed to accurately measure the internal block positions using multiple LiDAR sensors in a fixed environment, solving the extrinsic calibration issues associated with multiple LiDAR sensors. The algorithm’s effectiveness was verified by comparing its performance with GICP (Generalized-Iterative Closest Point) in a simulation environment. This automated system aims to enhance worker safety and reduce task time by enabling precise block placement.

Keywords:

LiDAR, Drydock, Calibration, Object Detection, Simulation

1. 서 론

현대 해군 함정은 첨단 전투체계의 발전으로 인해 전투력이 지속적으로 향상되고 있다. 그러나 이러한 함정의 전투력을 온전히 발휘하기 위해서는 기본적인 선박 성능과 가동률이 유지되어야 하며, 이를 위한 주기적인 정비가 필수적이다. 함정의 가동률이 높아야만 전시에 전투력이 효과적으로 발휘될 수 있으므로, 주기적인 정비를 통해 가동률을 최대로 유지하는 것은 매우 중요한 과제이다. 특히, 함정의 선체 정비는 함정의 생존성과 직결되며, 정비가 적시에 이루어지지 않을 경우 함정의 전투력 저하뿐만 아니라 승조원의 안전에도 심각한 위험을 초래할 수 있다[1].

해군은 이러한 중요성을 인식하여 함정 정비를 체계적으로 규정화하여 주기적으로 관리하고 있다. 이 중에서도 선체 하부의 유지 보수와 같은 장기적 운영을 위한 핵심 정비 작업은 건선거(drydock)에서 수행되는 상가 수리를 통해 이루어진다. 건선거는 수면 아래의 지반을 굴착하여 건설된 정비 시설로, 함정 진입 전 선체의 형태에 맞게 반목 블록을 배치하여 안정적으로 함정을 안착시킨다. 이후 수문을 열어 물을 채운 상태에서 함정을 진입시키고, 수문을 닫아 배수함으로써 [Fig. 1]와 같이 선체가 반목 블록에 안착된 상태로 정비가 진행된다[2].

[Fig. 1]

Drydock environment[3,4]

건선거에서의 반목 블록 배치는 함정을 안전하게 지지하기 위한 핵심 작업이지만, 현재 크레인과 지게차를 이용한 수작업에 의존하고 있어 작업 효율이 낮고 안전사고의 위험성이 크다. 또한, 최근 함정의 대형화와 정비 대상 함정 수의 증가로 인해 블록 배치에 소요되는 시간이 점차 증가하고 있다. 해군이 운영 중인 3기의 대형 건선거는 이러한 대형화와 해경 함정 정비의 위탁으로 인해 정비 수요가 급증하고 있으며, 그 결과 정비 대기 시간이 증가하고, 정비를 제때 받지 못해 발생한 장비 손상으로 가동률 저하가 우려되는 상황이다[5,6].

본 연구는 이러한 문제를 해결하기 위해 기존의 유인 크레인 기반 블록 배치 방식을 로봇플랫폼을 활용한 무인 자동화 시스템으로 전환하고자 한다. 이 시스템에서의 로봇플랫폼은 [Fig. 2]와 같이 그리퍼와 2D-LiDAR 센서가 장착되어 있으며, 작동 방식은 로봇플랫폼의 지지부에 부착된 2D-LiDAR 센서로 내부에 위치한 반목 블록을 실시간으로 측정하고, 이를 바탕으로 X, Y축 이동 및 Yaw 축 회전이 가능한 그리퍼를 이용하여 블록을 파지 및 목표 위치에 배치하는 것이다.

[Fig. 2]

Representation of the robot platform

주요 목표는 2D-LiDAR를 이용하여 로봇플랫폼 내부에 위치한 블록의 위치를 실시간으로 정밀하게 측정하는 알고리즘을 개발하는 것이다. 이 알고리즘은 수집된 블록의 기하학적 데이터를 분석하여 블록의 중심 위치를 밀리미터(mm) 단위의 정밀도로 파악하도록 설계되었다. 이를 통해 작업자의 개입 없이도 높은 정밀도로 블록을 자동 배치할 수 있으며, 작업 시간 단축 및 작업자의 안전성을 크게 향상시킬 수 있다.

기존의 2D-LiDAR 기반 물체 탐지 기법은 주로 이동형 플랫폼을 이용하여 외부 환경을 탐지하거나 고정된 센서로 움직이는 물체를 분석하는 데 중점을 둔다. 예를 들어, 이동형 플랫폼에 부착된 2D-LiDAR 센서를 통해 계단을 인식하는 방법[7], 플랫폼이 이동하며 측정한 주변 물체를 통해 위치를 파악하는 방법[8], 고정된 위치에서 사람의 보행을 분석하는 방법[9] 등이 있다.

그러나 이러한 연구들은 플랫폼이 이동하며 물체의 전체 형상을 인식하는 데 중점을 두고 있어, 고정된 건선거 환경에서 정밀하게 블록의 위치를 측정하기에는 한계가 있다. 이동형 플랫폼에서 측정 데이터를 기반으로 물체 위치를 인식하는 방식은 주로 로봇이 환경 내 물체의 여러 면을 측정하여 위치를 파악한다. 하지만, 로봇플랫폼에서는 센서 위치가 고정되어 있기 때문에 센서가 바라보는 면만 측정이 가능하고, 내부에 위치한 블록의 크기 또한 크기 때문에 단일 센서로는 물체 일부만을 측정할 수밖에 없다. 이는 물체의 정확한 위치를 파악하는 데 한계가 있다.

이에 본 논문은 고정형 로봇 플랫폼에서 다중 2D-LiDAR 센서를 활용하여 블록의 모든 면을 동시에 측정하고, 이를 통해 정밀한 위치 측정을 가능하게 하는 방법을 제안한다. 또한, 다중 센서를 사용하는 과정에서 필연적으로 발생하는 외부 보정(Extrinsic calibration) 문제와 그 해결책을 제시한다. 로봇 플랫폼의 위치 변화 또는 외부 요인으로 인해 센서의 위치나 각도에 미세한 차이가 발생할 경우, 중심점을 찾는 과정에서 오차가 커질 수 있기 때문에 이를 방지하기 위해 다중 LiDAR 센서의 정밀한 캘리브레이션 방법이 필요하다.

기존 연구에서는 차량에 부착된 LiDAR 센서의 움직임을 활용한 캘리브레이션 방법[10,11]이나, 고정된 위치에서 3D-LiDAR로 측정한 독립적인 평면을 활용한 방법[12]이 제안된 바 있다. 그러나 제안하는 환경은 고정된 플랫폼에서 2D-LiDAR 센서를 사용하기 때문에 기존 방법을 적용하기에는 어려운 상황이다. 따라서 본 논문에서는 RANSAC (Random Sample Consensus)[13] 기반의 캘리브레이션 및 블록 위치 측정 알고리즘을 제안한다. 이 알고리즘은 로봇플랫폼의 지지부를 이용하여 LiDAR 센서의 최초 설치 위치와 실제 구동 후 위치 간의 차이를 보정하여 블록의 정확한 위치 정보를 도출한다. 또한, 시뮬레이션 환경에서 LiDAR 센서의 특성을 반영해 평가하였으며, 대표적인 point cloud 정합 기법인 GICP (Generalized-Iterative Closest Point)[14]와 성능을 비교하였다.

본 논문에서의 주요 기여는 다음과 같다.

  • 1. 건선거 무인 자동화 시스템을 위한 로봇 플랫폼에서의 블록 위치 측정 알고리즘을 제안하였다.
  • 2. 다중 센서 사용 시 발생할 수 있는 문제를 해결하기 위한 캘리브레이션 알고리즘을 제안하였다.
  • 3. 캘리브레이션 방법에 적용된 알고리즘의 성능을 비교 분석하였다.

2. 로봇플랫폼 시스템 구성

본 연구에서 반목 블록 배치 작업을 자동화하는 로봇플랫폼 시스템은 Ubuntu 환경에서 ROS (Robot Operating System)를 기반으로 구축되었으며, 각 노드(node) 간 데이터 통신은 Topic 메커니즘을 사용하여 이루어진다. 통신 방식은 메시지 기반으로, Publisher가 데이터를 송신하고, Subscriber가 해당 데이터를 수신하는 구조를 가진다. 이러한 Topic 구조를 활용하면, 시뮬레이션 환경과 실제 센서 간의 차이가 있더라도 동일한 Topic 이름과 메시지 형식을 유지함으로써 프로그램을 재작성할 필요 없이 시스템을 쉽게 적용할 수 있다. 이는 시뮬레이션과 실제 환경 간의 통신 구조를 일관되게 유지할 수 있도록 하여 개발 및 디버깅 과정에서의 효율성을 높인다.

또한, ROS는 Gazebo, MORSE, Webots, CoppeliaSim 등 다양한 로봇 시뮬레이션 프로그램을 지원한다. 본 연구에서는 기존 연구를 참고하여 여러 물리 엔진과 모델 유형을 지원하는 CoppeliaSim을 로봇플랫폼의 시뮬레이션 도구로 선택하였다[15]. 로봇플랫폼은 URDF (Unified Robot Description Format) 파일을 통해 구현되었으며, [Fig. 2]에 나타난 X, Y축 방향으로 최대 ±0.15 m이동 가능하고 Yaw 축 방향으로 ±15° 회전 가능한 그리퍼가 탑재되어 있고, 측정 블록은 실제 반목 블록과 동일한 크기(가로 1.5 m, 세로 1.5 m, 높이 2.7 m)로 설정한다.

[Fig. 2]에 보이는 바와 같이 LiDAR 센서는 블록을 측정할 때 그리퍼의 방해를 받지 않고, 각 센서 간 측정 영역이 중첩되도록 로봇플랫폼의 지지부 하단에 내부를 향하도록 설치하였다. LiDAR 센서는 실제로 사용하는 SICK 사의 TIM561-20501 01S80 모델과 동일한 성능을 가지며, FOV (Field of view)는 180°, 각 분해능은 0.33° 그리고 노이즈는 3.1에서 구한 노이즈 값을 반영하였다.


3. 알고리즘 구성

[Fig. 3]은 본 연구에서 사용된 시뮬레이션 및 알고리즘의 흐름도이다. 전체적인 흐름은 시뮬레이션의 LiDAR 센서로부터 획득한 Point cloud 데이터를 기반으로 센서 캘리브레이션 후 측정된 블록 위치 정보로 그리퍼를 이동시킨다. 알고리즘은 2D-LiDAR 센서를 활용하여 센서의 위치를 정확하게 캘리브레이션하고 로봇플랫폼 내부의 블록 위치를 정밀하게 탐지하는 두 가지 방식으로 작동하며, 이 섹션에서는 해당 알고리즘의 구조와 작동 방식들을 구체적으로 설명한다.

[Fig. 3]

Simulation and algorithm flowchart

3.1 LiDAR 노이즈 모델링

실제 센서는 여러 요인에 의해 필연적으로 노이즈가 발생한다. 반면, 시뮬레이션에는 자체적인 노이즈가 없어 현실과 유사성을 높이기 위해 이를 모델링 할 필요가 있다. 이에 따라 실제 LiDAR 센서의 거리에 따른 노이즈 정도를 파악하고 이를 시뮬레이션 환경에 적용하였다.

실제 센서의 거리에 따른 노이즈 정도를 파악하기 위해 동일한 물체를 0.5 m, 1 m, 1.5 m, 2 m, 2.5 m, 3 m의 거리에서 20초 동안 3회 측정한 데이터에서 LiDAR 센서의 정면에 있는 한 점에 대한 데이터만 따로 추출하였다[16]. 분석 결과, [Fig. 4]에서 확인할 수 있듯이, 센서로부터의 거리가 증가할수록 노이즈의 표준 편차가 증가함을 확인하였다. 이를 바탕으로 노이즈의 거리에 따른 변화를 아래 식 (1)과 같이 모델링 하였다.

σd=α*d+β(1) 
[Fig. 4]

LiDAR noise modeling based on distance

여기서 σ(d)는 거리 d에 따른 노이즈의 표준 편차이며, αβ는 앞서 구한 데이터에 최소자승법(Least Square Method)을 적용하여 도출된 상수이다. 실험 결과, 노이즈의 표준 편차는 0.5 m에서 약 0.0027, 3 m에서 약 0.0047로 선형적인 증가 경향을 보였다고 할 수 있다.

또한, 동일한 실험에서 수집한 데이터의 분포를 분석한 결과, [Fig. 5]와 같이 모델링 된 노이즈는 정규 분포를 따르는 경향을 확인하였다. 따라서 LiDAR 센서의 노이즈에 정규 분포를 적용하기 위해 Box-Muller 변환을 사용하여 모델링하고, 시뮬레이션에 적용하여 실제 센서와의 유사도를 높였다.

[Fig. 5]

Histogram of LiDAR measurements based on distance

Box-Muller 변환은 두 개의 균등 분포 난수 U1, U2 ∈ (0,1)로부터 식 (2)을 통해 평균이 0이고 분산이 1인 표준 정규 분포 난수 Z를 생성할 수 있다. 이후, 식 (3)에서 평균 값으로는 LiDAR로 측정한 거리 값 d, 표준 편차로는 거리 기반 노이즈 모델 σ(d)를 적용하여 노이즈가 적용된 값 X를 구하였다.

Z=-2lnU1cos 2πU2(2) 
X=Z*σd+d(3) 

3.2 LiDAR 데이터 처리 및 통합

LiDAR 센서에서 수집된 데이터의 노이즈를 최소화하기 위해 본 연구에서는 각 센서로부터 획득한 데이터를 개별적으로 처리한 후 통합하는 방식을 사용하였다. 먼저, 각 LiDAR 센서에서 수집된 point cloud 데이터가 정규 분포의 경향성을 가지므로, 정확도를 높이기 위해 캘리브레이션의 경우 30초, 블록 측정의 경우 5초 동안 데이터를 수집한 후 평균 필터를 적용하여 노이즈를 보정하였다. 이 필터는 데이터에서 발생하는 불규칙한 노이즈를 보정함으로써 데이터의 신뢰성을 향상시킨다.

노이즈 필터링이 완료된 후에는 PCL (Point Cloud Library)에서 제공하는 Pass-through 필터를 적용하여, 특정 범위 내의 데이터만을 남기고 불필요한 외부 데이터를 제거하였다. 본 연구에서는 [Fig. 6]와 같이 캘리브레이션 시에는 로봇플랫폼 지지부를, 블록 위치 측정 시에는 로봇플랫폼 내부를 관심 영역(Region of Interest, ROI)으로 설정하여, 외부 환경에서 수집된 불필요한 데이터를 효과적으로 제거하였다.

[Fig. 6]

Robot platform’s internal configuration

Pass-through 필터를 적용한 결과, [Fig. 7(a)]와 [Fig. 7(d)] 같이 플랫폼 내부에 위치한 지지부 및 블록만이 탐지되었으며, 처리 시간 증가와 외부 요인에 의한 오류를 줄일 수 있었다. 이러한 필터링 과정을 적용한 데이터는 최종적으로 센서의 좌표계와 로봇플랫폼의 좌표계를 일치시키는 변환 정보를 기반으로 통합되었다. 이를 통해 모든 센서로부터 수집된 데이터를 하나의 공통된 참조 좌표계로 변환하였다.

[Fig. 7]

LiDAR-based process for calibrating with support detection and finding block position. (a) The LiDAR data is filtered to emphasize the support structure. White points and green points represent the target and source respectively. (b) Feature extraction identifies key geometric structures from the filtered LiDAR data using RANSAC algorithm. (c) The registration process aligns the source point cloud (green) to the target point cloud (white) based on the extracted features. (d) The LiDAR data is filtered to highlight the block structure. (e) The calibrated LiDAR data reveals the block’s boundaries. (f) The block’s position is determined by applying RANSAC to the calibrated data

3.3 캘리브레이션 알고리즘

LiDAR 센서는 3차원 공간에 설치되므로, 위치 변화는 X, Y, Z 축뿐만 아니라 Roll, Pitch, Yaw 축을 기준으로도 발생할 수 있다. 이 중 Roll과 Pitch는 수평계를 통해 지면에 대한 기울기를 측정하여 보정할 수 있으며, 2D-LiDAR 센서는 수평면만 측정하므로 Z 축 정보와 Roll, Pitch에 대한 보정은 제외하고 X, Y, Yaw 축에 대해서만 캘리브레이션을 수행한다.

먼저, 보정 기준점을 설정하기 위해 [Fig. 7]와 같이 로봇플랫폼 내부에 블록이 없는 상태에서 LiDAR 센서를 이용하여 플랫폼의 지지부를 스캔하였다. 이때, 3.2에서 설명한 필터링 기법을 적용하였고, 이 데이터를 Target point cloud로 정의하였다. 이후, LiDAR 센서의 위치를 임의로 변경한 후 다시 지지부를 스캔하고 필터링 한 데이터를 Source point cloud로 정의하였다.

[Fig. 7(a)]에 나타난 Target point cloud와 Source point cloud 간의 위치 변화를 분석하기 위해 RANSAC 알고리즘을 적용하여 [Fig. 7(b)]와 같이 데이터에 fitting 된 직선을 도출하였다. 이 과정에서, LiDAR 센서에서 발생하는 노이즈는 평균 필터로 완화하였으나 간헐적으로 발생하는 이상치를 제거하는 데에는 한계가 존재한다. 따라서, 이러한 이상치에 강건하게 대응하고 지지부의 사각형 구조를 안정적으로 추출하기 위해 RANSAC을 사용하였다. RANSAC은 이상치에 강건한 모델을 제공하므로, 지지부 데이터에서 정확한 변(edge)을 fitting 할 수 있다.

이렇게 fitting된 변의 직선 방정식은 RANSAC을 통해 얻은 직선 위의 점 좌표(xi, yi, zi)와 직선의 방향 벡터(dx, dy, dz)를 통해 도출된다. 이를 식 (4)에 적용하여 직선의 방정식을 구한 후, 두 직선의 교차점으로 지지부의 꼭짓점 위치를 구하였다.

fx=dydxx-xi+yi(4) 

그러나 Source point cloud와 Target point cloud에서 구한 꼭짓점의 위치 차이를 이용하여 Yaw 값을 계산할 경우, 이는 실제 센서의 회전 각도가 아닌 Target LiDAR에 대한 Source LiDAR의 상대적인 방향을 나타낸다. 따라서 정확한 회전 각도를 구하기 위해, RANSAC으로 추출된 지지부의 직선 데이터를 활용하여 각 데이터에서 직선의 기울기를 계산한 후, 두 기울기의 차이를 통해 Yaw 축에서의 실제 회전 각도를 산출한다.

먼저, 앞서 구한 직선의 방향벡터(dxi, dyi)를 식 (5)에 적용하여 각 LiDAR에서 추출된 직선의 기울기를 계산한다.

slopei=dyidxi(5) 

추출된 지지부의 직선은 총 두 개가 나오므로 각각의 직선에 대해 기울기를 계산한 후, 식 (6)을 통해 두 값 중 더 작은 기울기를 최종 기울기로 판단한다.

slope=minslope1, slope2(6) 

그다음, 식 (7)를 통해 Target point cloud와 Source point cloud에서 구한 두 직선의 기울기의 차이를 활용하여 LiDAR 센서의 실제 회전 각도를 계산한다.

ψ=atanslope'-atanslope(7) 

이때, Target LiDAR에서 얻은 지지부의 기울기와 꼭짓점 좌표를 각각 slopex, yT, 그리고 Source LiDAR에서 얻은 지지부의 기울기와 꼭짓점 좌표를 각각 slope와 [x, y]T로 정의한다. 두 LiDAR 간의 평행이동은 X, Y축을 기준으로 각각 [tx, ty]T로 나타낼 수 있다.

마지막으로, 식 (8)을 사용하여 Source LiDAR에서 측정된 좌표를 Target LiDAR의 좌표계로 변환하여, 두 센서 간의 회전과 평행 이동을 보정한다.

xy=R txy=cos(ψ)-sin(ψ)sin(ψ)cos(ψ)xy+txty(8) 

이와 같은 직선 기울기와 좌표 변환을 통해 Source LiDAR의 위치와 방향을 Target LiDAR에 맞춰 보정 작업을 완료한다.

3.4 블록 위치 측정 알고리즘

블록이 위치한 위치에 플랫폼이 안착하여 2D-LiDAR 센서로 [Fig. 7]과 같이 블록 센싱을 시작한다. 측정한 데이터에 3.2의 필터링 방법을 적용하여 [Fig. 7(d)]와 같이 정렬되지 않은 블록 측정 데이터를 얻는다. 그 후 캘리브레이션 알고리즘을 통해 측정한 변환 행렬을 적용하여 [Fig. 7(e)]와 같이 정렬된 데이터를 얻는다. 이후, RANSAC을 사용하여 정렬된 데이터에서 [Fig. 7(f)]와 같이 블록의 각 모서리를 구할 수 있다. 식 (4)를 이용하여 모서리의 직선의 방정식을 구하고, 블록의 형상이 직사각형이므로 마주 보는 두 직선의 기울기가 평행하고, 네 각의 크기가 모두 직각이라는 점을 이용하여 각 직선의 교차 여부 및 교차점을 계산한다. 그렇게 얻어진 교차점은 사각형 블록의 각 꼭짓점(ai, bi)으로, 식 (9)를 이용하여 블록의 중심점(xc, yc)을 구할 수 있다. 또한, 블록의 yaw 방향 각도 또한 3.3와 같이 RANSAC으로 얻은 변의 데이터를 이용하여 식 (6)을 통해 구할 수 있다.

xc=a1+a2+a3+a44, yc=b1+b2+b3+b44(9) 

4. 실 험

본 장에서는 제안하는 캘리브레이션 및 블록 위치 측정 알고리즘의 성능을 검증하기 위해 CoppeliaSim 시뮬레이션 환경에서 알고리즘을 적용하였다. 성능 평가는 캘리브레이션과 블록 위치 측정의 정확도를 중심으로 수행되었으며, 제안한 캘리브레이션 알고리즘의 성능은 대표적인 포인트 클라우드 정합(Registration) 기법인 GICP와 비교 분석하였다. 제안한 알고리즘은 RANSAC 기반으로 target과 source point cloud에서 특징점을 추출하여 정합 후 캘리브레이션을 수행하는 방식으로, 노이즈에 강한 성능을 보인다. 반면, GICP는 공분산 행렬을 활용하여 두 point cloud를 정밀하게 정합하며, 밀집된 point cloud에서 우수한 정합 성능을 갖는다. 이로써, 각 알고리즘의 X, Y 거리 및 Yaw 회전 각도 기준의 성능 차이를 비교하여 실험적 결과를 분석하였다.

4.1 실험데이터 추출

본 실험은 CoppeliaSim에서 LiDAR 센서의 위치를 변경하며 데이터 셋을 구축하였고, 두 가지 방법으로 진행하였다. 첫째, 센서가 정확한 위치에 있을 때 블록을 이동시키고 위치를 측정하여, 캘리브레이션이 필요하지 않은 상태에서 블록 위치 측정 알고리즘의 성능을 평가하였다. 이 실험에서는 그리퍼의 이동 범위인 X, Y축 ±15 cm, Yaw 축 15°를 고려하여 설정된 직사각형 측정 영역 내에서 로봇플랫폼의 중심으로부터의 거리가 X, Y축으로 150 mm, 75 mm, 0 mm인 위치와 회전 각도는 0°, 15°인 블록 위치 데이터 셋을 구축하고, 이를 통해 블록 위치 측정 알고리즘을 적용하였다.

둘째, 캘리브레이션을 적용한 후 중심에 위치한 블록의 위치를 측정하였다. 이 실험에서는 총 세 가지 데이터 셋을 구축하였으며, 첫째는 초기 설치된 위치에서 측정한 지지부 데이터([Fig. 7(a)]의 흰색 데이터), 둘째는 센서 이동 후 측정한 지지부 데이터([Fig. 7(a)]의 초록색 데이터), 셋째는 이동 후 측정한 블록 데이터[Fig. 7(d)]이다. 각 실험에서 지지부 데이터는 30초, 블록 데이터는 5초 동안 수집하였다.

실험에서는 로봇플랫폼의 중심에 블록이 위치하고, 로봇플랫폼 및 외부 요인에 의한 LiDAR 센서의 이동이 크지 않다고 가정하였다. 센서 이동 후 측정한 지지부 데이터는 센서의 위치를 X, Y축으로 각각 1 mm, 3 mm, 5 mm 이동시키고, Yaw 축으로 1°, 3°, 5°로 회전시킨 총 9가지의 상황에서 데이터를 추출하였다. 초기 위치의 지지부 데이터를 Target point cloud로 설정하고, 이동 후 데이터를 Source point cloud로 설정하여 제안한 알고리즘과 GICP로 캘리브레이션을 수행한 후, 캘리브레이션 결과로 도출한 변환 행렬을 블록 데이터에 적용하여 블록 위치 측정 알고리즘을 통해 블록의 위치 정보를 측정하였다.

4.2 실험 결과

[Table 1]은 첫 번째 실험의 결과를, [Table 2]와 [Table 3]은 두 번째 실험에서 GICP와 제안된 알고리즘을 적용했을 때의 결과를 나타낸다.

표에 제시된 각 항목의 의미는 다음과 같다:

Block Position: 블록의 위치이며, 실험의 기준으로 사용.

Block Position Error: 블록 위치 측정 알고리즘을 사용하였을 때 발생한 블록의 위치 오차로, 최종 블록 위치 추정의 정확성을 평가하는 지표.

LiDAR Position: 초기 설치 위치로부터 LiDAR 센서가 이동한 거리를 의미하며, 실험의 기준으로 사용.

Calibration Error (1, 2, 3, 4): 각 LiDAR 센서 이동 후 측정한 지지부 데이터를 활용하여 도출한 LiDAR 센서의 X, Y 및 Yaw 축 오차.

Calibration Average Error: 이동 후 측정한 X, Y, Yaw 축 오차들의 평균값.

Results of Block positioning algorithm

Results of using G-ICP

Results of using RANSAC

[Table 1]에서 블록의 위치 변화에 따른 블록 위치 측정 알고리즘의 성능을 분석하였다. 로봇플랫폼의 중심에서 블록이 멀어질수록 블록 위치 오차가 증가하는 경향을 확인할 수 있다. 이러한 현상의 원인은 [Fig. 8]와 같이 블록이 로봇플랫폼의 중심에서 벗어날수록 측정 면이 센서와 근접해지며, 이로 인해 해당 센서에서 검출되는 데이터가 줄어들어 알고리즘의 정확도가 다소 저하되는 것이다. 그러나, 전체적인 성능을 확인하였을 때, 블록이 그리퍼의 최대 이동 거리에 위치한 경우에도 1 mm 이내의 오차 범위를 유지하여, 로봇플랫폼 내부에서 위치한 반목 블록의 위치를 정밀하게 측정할 수 있음을 확인하였다.

[Fig. 8]

Results of measured block point cloud changes according to block position

또한, [Table 2]의 GICP를 적용한 캘리브레이션 결과, X, Y축에서 최소 0.003 mm, 최대 14.54 mm, Yaw 축에서 최소 0.002°, 최대 0.479°의 오차가 나타났다.

평균적으로 X, Y축에서 최소 1.28 mm, 최대 12.68 mm, Yaw 축은 최소 0.071°, 최대 0.349°의 오차를 확인하였고, 블록 위치 측정 결과 X, Y축에서 최소 0.04 mm, 최대 10.16 mm, Yaw 축은 최소 0.002°, 최대 0.479°의 오차가 나타났다. 반면, 제안된 캘리브레이션 알고리즘을 적용한 결과, X, Y축에서 최소 0.01 mm, 최대 1.54 mm, Yaw 축에서 최소 0.001°, 최대 0.038°의 오차를 보였으며, 평균적으로는 X, Y축에서 최소 0.18 mm, 최대 0.67 mm, Yaw 축에서 최소 0.006°, 최대 0.018°의 오차가 나타났다. 블록 위치 측정의 경우 X, Y축에서 최소 0.01 mm, 최대 0.65 mm, Yaw 축에서 최소 0.001°, 최대 0.038°의 오차가 발생하였다.

이러한 결과는, 두 가지 면에서 의미가 있다. 첫째, 제안한 알고리즘이 GICP보다 X, Y, Yaw 축 모두에서 평균적으로 더 낮은 오차와 작은 오차의 편차를 보여 캘리브레이션 시 더 높은 성능과 안정성을 제공함을 의미한다. 둘째, 동일한 방법으로 블록의 위치를 측정했음에도 결과 차이가 발생한 것은 앞서 실행한 캘리브레이션의 영향을 받았기 때문이며, 이는 제안된 캘리브레이션 알고리즘이 블록 위치 측정 시 더욱 정밀한 결과를 제공할 수 있음을 보여준다.

또한, GICP를 통한 정합이 제대로 이루어지지 않았던 특정 위치(x, y, yaw = (5 mm, 5 mm, 1°))의 데이터를 제외하고 블록 측정 오차를 분석한 결과, [Fig. 9]의 산점도 그래프에서 제안한 알고리즘이 GICP를 사용할 때보다 블록의 위치 오차 분포가 더 작고 정밀한 것을 확인할 수 있었다. 제안된 알고리즘은 오차 범위가 더 좁게 집중되어 있어 블록 위치 측정에서 높은 정확도를 보인다.

[Fig. 9]

Comparison of block position error using GICP and RANSAC

마지막으로, [Fig. 10]은 제안된 알고리즘과 GICP를 사용하였을 때의 결과를 시각화한 것이다. GICP를 사용한 경우, [Fig. 10(a)], [Fig. 10(b)]와 같이 캘리브레이션 진행 시 데이터가 정밀하게 정합 되지 않아 블록 데이터의 정렬이 불완전한 모습을 보였으나, 제안된 알고리즘을 사용한 경우 [Fig. 10(c)], [Fig. 10(d)]와 같이 데이터들이 더 정렬된 모습을 확인할 수 있었다. 이러한 시각적 결과는 블록 위치 측정의 정확성이 제안된 알고리즘에서 더 높다는 점을 뒷받침한다.

[Fig. 10]

Results of the proposed algorithm and GICP. (a) and (b) show the results from GICP, (c) and (d) show the results from the proposed calibration algorithm


5. 결 론

본 논문에서는 건선거 반목 블록 배치 시스템의 무인 자동화를 위한 로봇플랫폼에서의 센서 캘리브레이션 및 반목 블록 위치 측정 알고리즘을 제시하였다. 제안한 알고리즘을 통해 센서의 위치 오차를 정밀하게 캘리브레이션하고, 블록 위치 측정을 높은 정확도로 수행할 수 있었다. 제시한 알고리즘의 성능 평가를 위해 CoppeliaSim 시뮬레이션 환경에서 실제 LiDAR 센서의 노이즈를 적용하였고, 센서의 위치를 옮겨가며 검증한 결과, 캘리브레이션 방법은 X, Y축에서 최소 0.01 mm, 최대 1.54 mm, Yaw 축으로는 최소 0.001°, 최대 0.038°의 오차를 확인하였다. 또한, 블록 위치 측정에서는 X, Y축에서 최소 0.01 mm, 최대 0.65 mm, Yaw 방향에서 최소 0.001°, 최대 0.038°의 오차로, 건선거 로봇플랫폼의 특수한 환경에서 GICP 대비 우수한 성능을 보였다.

이러한 결과는 제안된 방법이 플랫폼 내부의 블록 위치 측정에 있어서 높은 정밀도를 제공하며, 특히 센서의 오차 위치를 최소화하는데 효과적임을 입증한다. 이를 통해 실제 블록 자동 배치 시스템에서도 안정적이고 신뢰성 있는 위치 측정이 가능하여, 실제 건선거 환경에서도 블록을 정밀하게 배치함으로써 선박을 안정적으로 안착시킬 수 있을 것으로 기대된다. 또한, 작업자 없이도 블록을 배치할 수 있어 휴식시간 없이 연속 작업이 가능하며, 이에 따라 작업의 효율성은 증가하고 작업자의 안전성도 확보될 것으로 예상된다.

다만, 본 논문에서 제안한 알고리즘은 건선거 로봇플랫폼에서의 맞춤형 보정 및 물체 중심점 측정 방법을 개발한 것으로, 로봇플랫폼 외 다른 환경에서는 추가 보완이 필요하다는 한계가 존재한다. 따라서 추후 실제 로봇플랫폼에서의 테스트를 통해 알고리즘의 성능을 검증하고 개선 방안을 모색하며, 다양한 환경에서의 적용 가능성을 높일 수 있도록 알고리즘을 확장할 계획이다.

Acknowledgments

This project was supported by Defense Acquisition Program Administration and Ministry of Trade, Industry and Energy. 2023 (No. 22-SN-MU-05) and partially supported by Korea Institute for Advancement of Technology (KIAT) grant funded by the Korea Government. (MOTIE) (RS-2024-00406796, HRD Program for Industrial Innovation).

References

  • S. H Cho and B. K. Yoon, “An Analysis on the Operation Level of the Dry Dock for Warship Maintenance Using Priority Queue,” Korean Management Science Review, vol. 36, no. 1, pp. 37-49, Mar., 2019. [https://doi.org/10.7737/KMSR.2019.36.1.037]
  • K.-C. Ok, S.-J. Cho, J.-H. Jeon, J.-Y. Yang, and Y.-C. Cho, “A Study on an Efficient Size Dry Docks for Warship Maintenance using Queueing Problem,” Journal of the Korean Institute of Industrial Engineers, vol. 40, no. 4, pp. 428-434, Aug., 2014. [https://doi.org/10.7232/JKIIE.2014.40.4.428]
  • Dry Docking, [Online], https://www.wilhelmsen.com/ship-management/dry-docking, , Accessed: Oct. 24, 2024.
  • M. Dalton, Inside Sydney Harbour’s 230-million-litre dry dock, [Online], https://www.9news.com.au/national/behind-the-scenes-at-garden-island-s-dry-dock/72af649e-980d-441b-be1f-263f92356e9c, , Accessed: Oct. 24, 2024.
  • S. K. Cha and B. K. Yoon, “Efficient Drydock Operations Strategies for Naval Fleet Maintenance Using El Farol Bar Model,” Journal of the Korean Institute of Industrial Engineers, vol. 50, no. 2, pp. 120-129, Apr., 2024. [https://doi.org/10.7232/JKIIE.2024.50.2.120]
  • S. W. Cho, S. H. Won, and J. H. Lee, “The Evolution of Container Vessel Sizes and its Impact on the Vessel Specifications,” Journal of Shipping and Logistics, vol. 31, no. 3, pp. 507-528, 2015. [https://doi.org/10.37059/tjosal.2015.31.3.507]
  • H. C. Hwang, W. Y. Lee, J. H. Ha, C. W. Lee, and E. H. Lee, “A Study on the 2D-Lidar based Line Segmentation Extraction Algorithm for Determining the Elevated Environment of Stair-climbing Robots,” The Korean Institute of Electrical Engineers Information and Control Symposium, pp. 137-139, 2021, [Online], https://www.dbpia.co.kr/journal/articleDetail?nodeId=NODE10554941, .
  • L. A. Fagundes, Jr., A. G. Caldeira, M. B. Quemelli, F. N. Martins, and A. S. Brandão, “Analytical Formalism for Data Representation and Object Detection with 2D LiDAR,” Sensors, Apr., 2024. [https://doi.org/10.3390/s24072284]
  • S.-K. Woo and M. Y. Kim, “Development of footprint tracking and analysis algorithm using 2D-LiDAR,” The Institute of Electronics and Information Engineers Summer Annual Conference, pp. 1856-1858, Jun., 2023, [Online], Available: https://www.dbpia.co.kr/journal/articleDetail?nodeId=NODE11522518, .
  • M. He, H. Zhao, J. Cui, and H. Zha, “Calibration method for multiple 2D LIDARs system,” 2014 IEEE International Conference on Robotics and Automation (ICRA), Hong Kong, China, pp. 3034-3041, 2014 [https://doi.org/10.1109/ICRA.2014.6907296]
  • J. Jiao, Y. Yu, Q. Liao, H. Ye, R. Fan, and M. Liu, “Automatic Calibration of Multiple 3D LiDARs in Urban Environments,” 2019 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS), Macau, China, pp. 15-20, 2019. [https://doi.org/10.1109/IROS40897.2019.8967797]
  • J. Jiao, Q. Liao, Y. Zhu, T. Liu, Y. Yu, R. Fan, L. Wang, and M. Liu, “A Novel Dual-Lidar Calibration Algorithm Using Planar Surfaces,” 2019 IEEE Intelligent Vehicles Symposium (IV), Paris, France, pp. 1499-1504, 2019. [https://doi.org/10.1109/IVS.2019.8814136]
  • M. A. Fischler and R. C. Bolles, “Random sample consensus: a paradigm for model fitting with applications to image analysis and automated cartography,” Communications of the ACM, vol. 24, no. 6 pp. 381-395, Jun., 1981. [https://doi.org/10.1145/358669.358692]
  • A. V. Segal, Haehnel, D. Haehnel, and S. Thrun, “Generalized-icp,” Robotics: science and systems. vol. 2, no. 4. 2009. [https://doi.org/10.15607/RSS.2009.V.021]
  • A. Farley, J. Wang, and J. A. Marshall, “How to pick a mobile robot simulator: A quantitative comparison of CoppeliaSim, Gazebo, MORSE and Webots with a focus on the accuracy of motion simulations,” Simulation Modelling Practice and Theory, vol. 120, Nov., 2022. [https://doi.org/10.1016/j.simpat.2022.102629]
  • S. J. Yoon, “Development of LiDAR Noise Model based on Experimentally Measured Data and Demonstration of Model Usefulness for Object Detection in Virtual Autonomous Driving Environment,” MS Thesis, HanYang University, Seoul, Republic of Korea, 2023, [Online], Available: https://repository.hanyang.ac.kr/handle/20.500.11754/180057, .
김 명 진

2023 서울과학기술대학교 기계자동차공학과(학사)

2023~현재 서울과학기술대학교 기계공학과 석사과정

관심분야: Robotics, Object Dectection, Computer Vision

김 진 현

1998 POSTECH 기계공학과(학사)

2000 POSTECH 기계공학과(석사)

2005 POSTECH 기계공학과(박사)

2005~2007 한국생산기술연구원 선임연구원

2007~현재 서울과학기술대학교 기계자동차공학과 교수

관심분야: Redundant Manipulator, Underwater Robots, Hovering Robots, Neuro Robotic

[Fig. 1]

[Fig. 1]
Drydock environment[3,4]

[Fig. 2]

[Fig. 2]
Representation of the robot platform

[Fig. 3]

[Fig. 3]
Simulation and algorithm flowchart

[Fig. 4]

[Fig. 4]
LiDAR noise modeling based on distance

[Fig. 5]

[Fig. 5]
Histogram of LiDAR measurements based on distance

[Fig. 6]

[Fig. 6]
Robot platform’s internal configuration

[Fig. 7]

[Fig. 7]
LiDAR-based process for calibrating with support detection and finding block position. (a) The LiDAR data is filtered to emphasize the support structure. White points and green points represent the target and source respectively. (b) Feature extraction identifies key geometric structures from the filtered LiDAR data using RANSAC algorithm. (c) The registration process aligns the source point cloud (green) to the target point cloud (white) based on the extracted features. (d) The LiDAR data is filtered to highlight the block structure. (e) The calibrated LiDAR data reveals the block’s boundaries. (f) The block’s position is determined by applying RANSAC to the calibrated data

[Fig. 8]

[Fig. 8]
Results of measured block point cloud changes according to block position

[Fig. 9]

[Fig. 9]
Comparison of block position error using GICP and RANSAC

[Fig. 10]

[Fig. 10]
Results of the proposed algorithm and GICP. (a) and (b) show the results from GICP, (c) and (d) show the results from the proposed calibration algorithm

[Table 1]

Results of Block positioning algorithm

Block Position Block Position Error
X (mm) Y (mm) ψ (°) X (mm) Y (mm) ψ (°)
0 0 0 0.02 0 0.0012
0 0 15 0.17 0.07 0.0004
75 75 0 0.09 0 0.0003
75 75 15 0.06 0.02 0.0002
150 150 0 0.14 0 0.001
150 150 15 0.45 0.16 0.0022

[Table 2]

Results of using G-ICP

LiDAR Position Calibration Error #1 Calibration Error #2 Calibration Error #3 Calibration Error #4 Calibration Average Error Block Position Error
X Y ψ X Y ψ X Y ψ X Y ψ X Y ψ X Y ψ X Y ψ
1 1 1 2.61 2.05 0.070 1.22 2.89 0.071 2.59 2.08 0.071 1.27 2.92 0.072 1.92 2.48 0.071 0.31 2.99 0.002
1 1 3 10.61 0.10 0.317 9.37 1.07 0.320 12.05 2.91 0.370 10.86 3.68 0.368 10.72 1.94 0.340 0.36 3.32 0.010
1 1 5 13.60 4.16 0.395 12.19 5.53 0.403 6.16 6.62 0.154 9.94 2.98 0.347 10.47 4.82 0.325 0.91 0.04 0.116
3 3 1 2.65 1.08 0.073 0.77 1.04 0.073 9.14 0.62 0.262 1.04 8.13 0.069 3.40 2.72 0.119 0.22 1.74 0.125
3 3 3 11.27 2.69 0.319 7.49 0.43 0.334 12.59 0.46 0.370 9.33 1.54 0.374 10.17 1.28 0.349 1.17 2.07 0.007
3 3 5 11.68 3.00 0.324 10.21 4.07 0.411 5.77 2.49 0.138 7.75 0.35 0.330 8.85 2.48 0.301 2.15 0.44 0.182
5 5 1 5.96 6.25 0.135 1.89 4.81 0.268 0.84 0.94 0.413 3.42 4.06 0.269 3.03 12.68 0.271 4.69 10.16 0 .479
5 5 3 12.72 3.46 0.330 4.18 1.64 0.337 13.57 4.05 0.337 7.27 0.09 0.370 9.44 2.31 0.344 1.17 0.56 0.020
5 5 5 14.54 2.57 0.405 6.25 1.28 0.387 7.26 0.003 0.159 7.78 2.29 0.410 8.96 1.54 0.340 2.22 3.06 0.074

[Table 3]

Results of using RANSAC

LiDAR Position Calibration Error #1 Calibration Error #2 Calibration Error #3 Calibration Error #4 Calibration Average Error Block Position Error
X Y ψ X Y ψ X Y ψ X Y ψ X Y ψ X Y ψ X Y ψ
1 1 1 0.17 0.15 0.001 0.18 0.42 0.007 0.30 0.43 0.008 0.67 1.54 0.030 0.33 0.64 0.012 0.08 0.33 0.008
1 1 3 0.35 0.65 0.012 0.25 0.77 0.013 0.07 0.21 0.005 0.05 0.06 0.003 0.18 0.42 0.008 0.05 0.25 0.002
1 1 5 0.40 0.60 0.011 0.77 0.67 0.025 0.86 0.13 0.033 0.37 0.33 0.004 0.60 0.43 0.018 0.01 0.65 0.033
3 3 1 0.11 0.35 0.007 0.01 0.11 0.002 0.15 0.53 0.011 1.63 1.19 0.018 0.48 0.55 0.009 0.35 0.06 0.019
3 3 3 0.14 0.28 0.006 0.67 1.13 0.019 0.78 0.79 0.014 0.96 0.48 0.011 0.64 0.67 0.012 0.23 0.29 0.038
3 3 5 0.41 0.57 0.010 0.16 0.54 0.010 0.47 0.58 0.008 1.08 0.39 0.009 0.53 0.52 0.009 0.13 0.05 0.001
5 5 1 0.13 0.27 0.006 0.11 0.05 0.013 0.72 1.08 0.037 0.38 0.78 0.009 0.34 0.55 0.016 0.10 0.34 0.001
5 5 3 0.60 1.01 0.020 0.06 0.18 0.003 0.16 0.55 0.010 0.06 0.16 0.005 0.22 0.48 0.009 0.04 0.27 0.007
5 5 5 0.27 0.47 0.007 0.07 0.07 0.001 0.74 0.38 0.006 0.46 0.64 0.009 0.39 0.39 0.006 0.09 0.27 0.008