
장애물 정보를 포함한 SLAM 기반 실시간 환경 맵핑 알고리즘의 개발 및 구현
CopyrightⓒKROS
Abstract
In indoor environments, such as buildings or residential homes, autonomous robot operation requires accurate mapping of the environment and precise localization of the robot within that space. Simultaneous Localization and Mapping (SLAM) is a technique that simultaneously constructs a map of an unknown environment while estimating the robot’s position within it. Traditional 2D-SLAM, which relies on 2D LiDAR for spatial perception and map generation, faces limitations in comprehending the complexities of 3D environments. To address these challenges, this study proposes an enhanced SLAM algorithm that integrates 3D Depth camera technology for advanced obstacle detection. By incorporating an object recognition architecture, the proposed method aims to improve the robot’s environmental perception and mapping accuracy, thereby overcoming the constraints of conventional 2D-SLAM in complex indoor spaces.
Keywords:
2D LiDAR, Mobile Robot, Real-Time, SLAM, Object Detection, Obstacle, YOLO, ROS1. 서 론
최근 다양한 산업 분야에서 로봇 기술의 급속한 발전이 이루어지고 있으며, 특히 자동차, 서빙, 택배와 같은 분야에서는 자율 주행 기술을 탑재한 로봇이 실생활에 적극적으로 도입되고 있다[1]. 이러한 자율 주행 로봇은 스마트 시티 구축, 물류 시스템의 자동화, 그리고 소비자 서비스의 질 향상 등 여러 방면에서 핵심적인 역할을 담당하고 있다. 자율 주행 로봇의 주요 기능 중 하나는 주행 중 주변 환경을 정확하게 인식하고, 이를 기반으로 안전한 이동 경로를 계획하는 것이다. 이를 실현하기 위해 주로 사용되는 핵심 기술 중 하나가 바로 SLAM (Simultaneous Localization and Mapping)이다[2].
SLAM이란, 자율 주행 로봇이 이동 중 자신의 위치를 실시간으로 추정하면서 동시에 주변 환경의 지도를 생성하는 기술을 의미한다[3]. SLAM 알고리즘은 로봇의 이동 경로에 따라 수집된 센서 데이터를 바탕으로, 로봇의 현재 위치와 주위 환경에 대한 지도를 동시다발적으로 생성하고 업데이트한다. 이 과정에서 로봇은 LiDAR, IMU, Encoder 등 다양한 센서로부터 수집된 데이터를 바탕으로 주변 환경을 감지하고, 정확한 위치 추정과 지도 제작을 수행한다[Fig. 1].
특히 2D LiDAR (Light Detection and Ranging)는 레이저 펄스를 활용하여 센서로부터의 물체의 거리와 각도 정보를 수집하는 센서로, 2차원 평면상에서 장애물의 위치를 감지하는 데 널리 사용되고 있다[4]. 이 기술은 구조가 단순하고 신뢰성이 높으며, 상대적으로 저비용으로 고속의 데이터 수집이 가능하다는 장점 때문에 널리 활용되고 있다. 그러나 2D LiDAR는 설계 특성상 단일 평면에서의 횡 단면적만을 감지할 수 있기 때문에, 3차원 공간에서 발생하는 다양한 상황을 완전하게 인식하는 데 한계가 존재한다.
이러한 제약은 복잡한 실내 환경에서 더욱 두드러진다. 로봇이 계단이나 경사면, 높이가 다른 물건들과 같은 장애물을 제대로 인식하지 못할 경우 충돌 위험이 증가하거나 비효율적인 경로가 계획될 가능성이 높아진다.
특히 빌딩 내 청소나 방역과 같은 단순한 작업을 수행할 때, 사람과 같은 동적 장애물이 존재하지 않는 시간대에 로봇을 구동할 수 있어 비교적 안정적인 환경이 제공되지만, 여전히 로봇이 복잡한 환경을 탐험하고 인식해야 한다는 도전 과제가 남아 있다. 따라서 모바일 로봇이 복잡한 3차원 환경에서 안정적으로 자율 주행을 수행하기 위해서는 3차원 공간에 대한 인지 능력이 필수적이다.
이러한 3차원 공간 인지 능력을 구현하기 위해, 최근 연구들에서는 3D LiDAR 및 3D Depth 카메라를 활용한 3D SLAM 기법이 활발히 적용되고 있다[2]. 3D SLAM이란 로봇이 미지의 환경에서 자신의 위치를 추정함과 동시에 3차원 지도를 작성하는 기술이다[Fig. 2]. 2D SLAM과 달리 3차원의 환경 데이터를 통해 지도를 제작하여 자율 주행 로봇의 주행 과정에서의 충돌 위험성을 감소시키고, 안전한 경로를 계획할 수 있다.
그러나 3D SLAM은 센서의 감지 범위 내 모든 3차원 정보를 처리해야 하므로, 데이터 처리량이 급격히 증가하며, 노이즈, 데이터 누락, 동적 물체로 인한 불안정성 문제가 발생할 가능성이 크다. 이러한 문제들은 실시간 경로 계획에 어려움을 초래할 수 있다. 따라서 3D SLAM을 효과적으로 활용하기 위해서는 효율적인 데이터 필터링, 동적 물체 제거 알고리즘, 그리고 분산 컴퓨팅을 통한 데이터 처리 기술 등이 요구된다.
최근 연구들에서는 이런 2D SLAM과 3D SLAM의 단점과 한계를 보완하기 위해 객체 인식과 SLAM을 결합하여 지도를 작성하는 기술을 개발해 나가고 있다.
객체 인식이란 이미지나 비디오와 같은 시각적 데이터 내에서 특정 객체의 위치와 종류를 동시에 파악하는 기술로, 컴퓨터 비전의 핵심 과제 중 하나이다. 이 기술은 자율 주행 차량, 영상 감시, 증강 현실, 로봇 비전 등 다양한 응용 분야에서 필수적인 역할을 수행하며, 이를 통해 시스템의 환경 이해 및 상황 인지 능력을 크게 향상시킬 수 있다.
대표적인 객체 인식 모델로는 Faster R-CNN, SSD (Single Shot MultiBox Detector), 그리고 본 연구에서 사용하는 YOLO (You Only Look Once) 등이 있으며, 이들은 빠른 속도와 높은 정확도로 실시간 응용에 적합하다. YOLO는 입력된 이미지를 단일 패스로 처리하여 객체의 위치와 종류를 동시에 예측하는 고속 모델로, 실시간 처리 성능이 중요한 로봇 환경에서 특히 적합하다[6].
객체 인식 기술은 SLAM 분야에서 [Fig. 3]과 같이 특징점 도출을 통해 Localization 성능을 개선하고, [Fig. 4]와 같이 동적 물체를 효과적으로 제거하며, 장애물 환경에 대한 이해를 높이는 등 다양한 방식으로 활용되고 있다.
본 논문에서는 2D SLAM의 공간 인지 능력을 강화하기 위해 지도 상의 장애물 가시화에 중점을 두어, 객체 인식 기술과 SLAM을 결합한 프레임워크 [Fig. 5]를 제안한다.
제시한 프레임워크는 2D SLAM을 기반으로 하되, 3D Depth 카메라를 통한 객체 인식 기술을 활용하여 로봇의 3차원 공간 인지 능력을 강화하는 것을 목표로 한다. 본 프레임워크를 통해 기존 3D SLAM의 높은 계산량 문제를 피하면서도, 3차원 환경의 복잡한 요소들을 효과적으로 맵핑할 수 있다. 특히 장애물의 위치와 정보를 실시간으로 맵 상에 시각화함으로써 로봇과 사용자가 공간을 보다 정밀하게 인식할 수 있으며, 이를 바탕으로 더욱 정확한 경로 계획을 수립할 수 있다. 제안된 프레임워크의 성능을 검증하기 위해 ROS (Robot Operating System) 플랫폼을 기반으로, 실제 환경과 Gazebo 가상 환경에서의 실험을 통해 성능 평가를 수행한다.
2. 본 론
본 논문에서는 2D SLAM을 진행하는 동시에 장애물을 인식하고 map 상에 표시하고자 한다. 이를 위해 모바일 로봇에 3D Depth 카메라를 부착하여 실시간으로 이미지 데이터를 수집하고, 이를 바탕으로 객체 탐지 기법인 YOLO v8을 적용한다. 테스트베드 환경에 존재하는 장애물을 분류하여 데이터셋을 생성하고, 이를 학습시켜 객체를 인식할 수 있도록 한다. SLAM을 진행하는 동시에 인식한 객체를 실시간으로 맵 상에 시각화하고, 최종적으로 이를 정확히 반영한 2D 지도를 제작할 수 있도록 알고리즘을 개발한다.
2.1 좌표 변환 및 가시화
3D Depth 카메라를 활용하여 객체를 인식하고 이를 3D 맵 상에 정확하게 표시하기 위해서는 카메라의 이미지 평면, 카메라의 방향과 좌표계, 그리고 맵 좌표계를 모두 고려해야 한다. [Fig. 6]과 같이 객체 인식 결과는 카메라의 이미지 평면에서 도출되며, 이 결과는 깊이 정보를 포함하지 않는 단위 이미지 평면으로 사영된다. 즉, 인식된 객체의 위치는 카메라에서의 상대적인 2D 좌표로만 표현되므로, 객체의 실제 3D 공간에서의 위치를 정확히 도출하기 위해서는 깊이 정보가 필요하다.
카메라에 내장된 깊이 정보(depth map)와 결합하여 카메라 좌표계에서의 3D 좌표를 계산한다. 그러나, 카메라 좌표계와 맵 좌표계는 서로 다른 참조점을 기준으로 하기 때문에, 객체의 정확한 3D 위치를 맵 좌표계에 반영하기 위해서는 두 좌표계 간의 좌표 변환이 필수적이다.
이를 위해 다음의 수식을 적용하여 좌표 변환을 수행한다.
| (1) |
- • fx, fy는 카메라의 초점 거리(단위 : m)
- • cx, cy는 카메라의 중심 좌표(단위: 픽셀)
| (2) |
| (3) |
- • u, v는 단위 이미지 좌표(단위: 픽셀)
- • X, Y, Z는 3D 포인트 클라우드의 좌표
| (4) |
- • x, y는 인식된 객체의 중심 좌표(단위: 픽셀)
| (5) |
- • R = 3 × 3 회전 행렬
- • t = 3 × 1 평행 이동 행렬
| (6) |
- • Pcamera = 카메라 좌표계 기준 좌표
- • Pmap = map 좌표계 기준 좌표
객체 인식과 좌표 변환을 통해 얻은 3D 좌표를 기반으로 SLAM을 진행하는 동시에 장애물 정보를 MarkerArray 형태로 시각화한다. 이때 마커 생성의 과정에서, 불필요한 마커가 무분별하게 생성되는 것을 방지하기 위해 마커를 검증하고 관리하는 알고리즘[Algorithm 1]을 적용한다. 이 알고리즘은 임시마커를 생성하고, 이를 일정 조건에 맞춰 영구 마커로 변환하는 과정을 거쳐 잘못된 객체 인식이나 중복된 마커 생성을 방지하는 역할을 한다. 이를 통해 로봇은 실내 환경에서 정확한 장애물 정보를 바탕으로 실시간으로 경로를 계획하고, 효율적으로 장애물을 회피할 수 있다.
SLAM 과정을 통해 생성된 2D 맵과 해당 맵의 해상도 및 원점 좌표 등의 정보를 저장한다. 또한, 알고리즘에 의해 검증된 장애물 정보를 추후 다른 작업에 활용할 수 있도록 데이터로 저장한다. 저장되는 장애물 정보에는 맵 좌표계를 기준으로 한 장애물의 위치와 클래스(분류) 등이 포함된다.
2.2 장애물을 포함한 2D 맵
장애물 정보를 포함한 2D 맵을 생성하기 위해 2D 맵과 객체 인식 데이터를 결합하여 맵 상에 표시하는 알고리즘[Algorithm 2]을 적용한다. 이 알고리즘은 OpenCV 영상 처리 라이브러리를 활용하여, 로봇의 원점(origin), 맵의 크기(height), 해상도(resolution), 그리고 객체 인식으로 얻은 장애물의 위치(pos)와 클래스(class_ name) 정보를 기반으로 장애물을 맵 상에 시각적으로 표현한다.
로봇의 원점과 맵의 해상도 정보를 바탕으로, 장애물 좌표를 OpenCV 좌표계에 맞게 변환하는 과정을 거친다. 여기서 로봇의 원점(origin)은 맵 좌표계의 기준이 되며, 이를 바탕으로 객체 인식에서 얻어진 장애물의 3D 좌표를 2D 평면상의 픽셀 좌표로 변환한다. 이때, 맵의 해상도(resolution)를 고려하여 장애물의 실제 클래스와 위치가 적절하게 반영될 수 있도록 처리한다. 이 과정을 통해 로봇을 구동하는 작업에서 경로 계획 및 장애물 회피에 편의를 제공할 수 있다.
3. 실 험
본 연구에서는 교내 실내 환경에서 장애물을 인식하고 이를 시각화하기 위해 객체 인식 모델(YOLO)을 학습하여 활용한다. 장애물 인식을 위해 테스트베드 환경에 존재하는 장애물을 분류하여 데이터셋을 구축한다. ‘Bench’, ‘Chair’, ‘Door’, ‘Elevator’, ‘Fire-extinguisher’, ‘Potted-plant’, ‘Restroom’, ‘Stairs’, ‘Table’, ‘Waste-container’로 총 10개의 장애물을 선정하여 클래스를 구성한다.
데이터셋[Fig. 7]은 오픈소스 이미지와 직접 수집한 실내 환경 이미지로 구성되었으며, 총 2,635장의 이미지가 포함되었다. 이미지의 품질과 다양성을 확보하기 위해 여러 각도에서 촬영된 이미지와 다양한 조명 조건을 반영하였다. 학습 과정은 총 500 에포크(epoch)에 걸쳐 진행되었다.
본 논문에서 개발한 알고리즘을 실제 환경과 시뮬레이션 환경에서 실험을 통해 성능을 검증한다. 교내의 건물 내부에 임의로 배치된 장애물들을 대상으로 알고리즘의 성능을 평가하며, 건물의 건축 도면은 [Fig. 8]에 제시하였다. 실험에는 학습 데이터셋에 포함된 10개의 장애물을 환경에 모두 배치하여 진행한다.
실제 모바일 로봇과 시뮬레이션 내 로봇의 URDF에 3D Depth 카메라를 부착하여 깊이 데이터를 활용할 수 있도록 한다. 모바일 로봇과 URDF 모델의 모습은 [Fig. 9]에 나타나 있다.
실제 환경 및 시뮬레이션 환경에 장애물을 배치한 모습은 [Fig. 10], [Fig. 11]에 제시되어 있다.
4. 결 과
테스트베드 환경에서 장애물을 분류하여 데이터셋을 구축하고 500 에포크에 걸쳐 학습한 결과, 약 350번째 에포크에서 최적 성능을 보였으며, 검증 데이터셋의 손실 값은 0.538, 모델 정확도는 79.1%를 기록하였다.
[Fig. 12]에 제시한 그래프에서, 학습과 검증 데이터셋 모두에서 경계 상자 및 클래스 손실이 안정적으로 감소하며 모델이 수렴하는 경향을 보인다. 이를 통해 YOLO v8 모델이 실내 환경에서 다양한 장애물을 효과적으로 탐지하고 분류할 수 있음을 확인할 수 있다.
본 논문에서 제시한 연구 방법 및 알고리즘을 통하여 구성한 실험 환경에서 장애물 정보를 포함한 2D map을 제작한다.
테스트베드 환경에서 수집된 영상 데이터는 학습된 YOLO 모델을 통해 처리되며, 인식된 객체의 정보는 좌표 변환 수식과 검증 알고리즘을 통해 맵 좌표계로 변환된다.
변환된 장애물 정보는 ROS (Robot Operating System) 플랫폼의 시각화 도구 Rviz를 통해 마커 형태로 실시간으로 시각화되며, 이 과정에서 장애물의 위치와 클래스 정보는 모두 정확하게 맵에 반영된다. [Fig. 10]의 테스트베드 환경에서 알고리즘을 실행한 결과, 객체의 위치와 클래스가 지도에 반영된 것을 확인할 수 있다. SLAM 과정에서 인식된 객체를 Marker 형태로 지도에 표시한 결과는 [Fig. 13]에 제시되어 있다.
[Algorithm 2]를 통해 SLAM으로 구축된 2D 맵에 장애물 정보가 중첩되어, 객체의 위치와 클래스가 정확하게 반영된다. [Fig. 10]의 테스트베드 환경에서 알고리즘을 실행한 결과는 [Fig. 14]에 제시되어 있으며, 이 환경 내 모든 장애물이 정확하게 인식되고 표시되었다. 또한, [Fig. 11]의 시뮬레이션 환경에서 알고리즘을 실행한 결과는 [Fig. 15]에 제시되어 있으며, 모든 장애물이 정확하게 인식되고 표시되었다.
본 알고리즘의 효용성을 효과적으로 평가하기 위해서 기존 지도 작성 연구들의 결과와 비교할 필요가 있다. 따라서 본 논문에서는 ROS 플랫폼에서 많이 사용되는 RTAB-MAP[9]과 비교하여, 지도 작성 시간 및 실시간 연산량을 평가하였다. [Fig. 16]은 RTAB-MAP을 통해 [Fig. 10]의 테스트베드 환경에서 3D SLAM을 진행한 결과이다.
[Fig. 17]의 프레임 속도 분석 결과에 따르면, RTAB-MAP을 사용한 3D SLAM의 경우, 초기에는 알고리즘 수행 속도가 일정하나 시간이 지남에 따라 3D 포인트들이 누적되면서 연산량이 증가하고 이에 따라 프레임 속도가 저하되는 경향을 보인다. 반면, 본 논문에서 제안한 알고리즘은 시간이 지나도 비교적 안정적인 프레임 속도를 유지하는 것을 볼 수 있다. 제시된 알고리즘의 평균 연산 속도는 약 30.29 F/s로, RTAB-MAP의 평균 연산속도(약 9.70 F/s)에 비해 현저히 개선된 결과를 나타내었다. 이는 3D 포인트의 복잡한 처리 없이도 효과적으로 공간을 인식하고 지도를 작성할 수 있음을 시사한다.
또한, 지도 작성 시간 또한 본 논문의 알고리즘에서는 약 200초가 소요된 반면, RTAB-MAP에서는 시스템 속도 저하로 인해 약 300초 이상이 걸렸다. 이러한 결과들은 본 논문에서 제시한 알고리즘이 실시간성과 효율성 측면에서 우수한 성능을 보임을 입증한다.
5. 결 론
본 논문에서는 제한적인 공간 인식 성능을 가지는 기존 2D SLAM 기반 시스템을 개선하고자, 2D SLAM과 3D Depth 카메라를 통한 객체 인식 기술을 융합한 실시간 장애물 정보를 포함한 환경 맵핑 프레임워크를 제안하였다.
제안된 프레임워크는 2D SLAM 기반으로 구동되면서도 3차원 깊이 정보를 활용해 객체 인식을 수행한다. 3D의 모든 정보를 처리하지 않으므로 기존의 경량 연산 구조를 유지할 수 있으며, 이로써 실시간성이 중요한 자율 주행 응용에 적합한 특성을 가진다. 따라서, 본 프레임워크를 통해 기존 3D SLAM의 높은 계산량 문제를 피하면서도, 3차원 환경의 복잡한 요소들을 효과적으로 맵핑할 수 있다.
실제 및 시뮬레이션 환경에서 수행한 실험 결과, 제안된 시스템이 실시간으로 2D 및 3D 맵에 장애물 정보를 효과적으로 가시화할 수 있음을 확인하였다. 이로써 로봇이 이동하는 경로와 주변의 장애물 정보를 명확하게 파악할 수 있으며, 이러한 실시간 시각화 기능은 자율 주행 로봇의 제어와 모니터링 과정에서 운영 효율성을 크게 향상시킬 수 있다.
기존의 3D SLAM 알고리즘과의 성능 비교 분석에 따르면, 제안된 알고리즘은 기존의 3D SLAM보다 실시간 처리 속도 및 시스템 부하 측면에서 현저히 개선된 성능을 보였다. 이는 기존 시스템에서 경험한 계산량 증가와 성능 저하 문제를 효과적으로 해결하며, 특히 복잡한 동적 환경에서의 빠른 응답 속도가 요구되는 애플리케이션에 적합함을 입증한다.
추후 연구에서는 장애물의 위치뿐만 아니라 장애물의 형상 및 크기 등을 고려하여 자율 주행 과정에서 이를 효과적으로 회피하는 알고리즘을 개발하고자 한다. 이를 통해 자율 주행 로봇이 스마트 빌딩, 물류 시스템, 공장 환경 등 다양한 복잡한 실내 환경에서도 원활하게 작동할 수 있을 것이다.
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
-
Y. Xie, Y. Zhang, L. Chen, H. Cheng, W. Tu, D. Cao, and Q. Li, “RDC-SLAM: A real-time distributed cooperative SLAM system based on 3D LiDAR,” IEEE Transactions on Intelligent Transportation Systems, vol. 23, no. 9, pp. 14721-14730, Sept..
[https://doi.org/10.1109/TITS.2021.3132375]
-
M. Filipenko and I. Afanasyev, “Comparison of various SLAM systems for mobile robot in an indoor environment,” 2018 International Conference on Intelligent Systems (IS), Funchal, Portugal, pp. 400-407, 2018.
[https://doi.org/10.1109/IS.2018.8710464]
-
G. Grisetti, C. Stachniss, and W. Burgard, “Improved techniques for grid mapping with Rao-Blackwellized particle filters, IEEE Transactions on Robotics, vol. 23, no. 1, pp. 34-46, Feb., 2007.
[https://doi.org/10.1109/TRO.2006.889486]
-
A. N. Catapang and M. Ramos, “Obstacle detection using a 2D LIDAR system for an autonomous vehicle,” 2016 6th IEEE International Conference on Control System, Computing and Engineering (ICCSCE), Penang, Malaysia, pp. 441-445, 2016.
[https://doi.org/10.1109/ICCSCE.2016.7893614]
-
A. Hornung, K. M. Wurm, M. Bennewitz, C. Stachniss, and W. Burgard, “OctoMap: an efficient probabilistic 3D mapping framework based on octrees,” Autonomous Robots, vol. 34, pp. 189-206, Feb., 2013.
[https://doi.org/10.1007/s10514-012-9321-0]
-
J. Redmon, S. Divvala, R. Girshick, and A. Farhadi, “You Only Look Once: Unified, Real-Time Object Detection,” 2016 IEEE Conference on Computer Vision and Pattern Recognition (CVPR), Las Vegas, NV, USA, pp. 779-788, 2016.
[https://doi.org/10.1109/CVPR.2016.91]
-
W. Wu, L. Guo, H. Gao, Z. You, Y. Liu, and Z. Chen, “YOLO-SLAM: A semantic SLAM system towards dynamic environment with geometric constraint,” Neural Computing and Applications, vol. 34, pp. 6011–6026, Jan., 2022.
[https://doi.org/10.1007/s00521-021-06764-3]
-
S. Cheng, C. Sun, S. Zhang, and D. Zhang, “SG-SLAM: A Real-Time RGB-D Visual SLAM Toward Dynamic Scenes With Semantic and Geometric Information,” IEEE Transactions on Instrumentation and Measurement, vol. 72, pp. 1-12, Jan., 2023.
[https://doi.org/10.1109/TIM.2022.3228006]
-
M. Labbé and F. Michaud, “RTAB-Map as an open-source lidar and visual simultaneous localization and mapping library for large-scale and long-term online operation,” Journal of Field Robotics, vol. 35, no. 2, pp. 416-446, Mar., 2019.
[https://doi.org/10.1002/rob.21831]
2024 서울과학기술대학교 기계공학과(학사)
2024~현재 서울과학기술대학교 석사과정
관심분야: Robotics, Mobile robot, SLAM, Manipulator
1998 POSTECH 기계공학과(학사)
2002 POSTECH 기계공학과(석사)
2005 POSTECH 기계공학과(박사)
2007~현재 서울과학기술대학교 교수
관심분야: Robotic Manipulation, SLAM, Underwater Robots Reinforcement Learning, Digital Twin

![[Fig. 1] [Fig. 1]](/xml/45107/JKROS_2025_v20n2_245_f001.jpg)
![[Fig. 2] [Fig. 2]](/xml/45107/JKROS_2025_v20n2_245_f002.jpg)
![[Fig. 3] [Fig. 3]](/xml/45107/JKROS_2025_v20n2_245_f003.jpg)
![[Fig. 4] [Fig. 4]](/xml/45107/JKROS_2025_v20n2_245_f004.jpg)
![[Fig. 5] [Fig. 5]](/xml/45107/JKROS_2025_v20n2_245_f005.jpg)
![[Fig. 6] [Fig. 6]](/xml/45107/JKROS_2025_v20n2_245_f006.jpg)
![[Algorithm 1]](../img/npr_tablethum.jpg)
![[Fig. 7] [Fig. 7]](/xml/45107/JKROS_2025_v20n2_245_f007.jpg)
![[Fig. 8] [Fig. 8]](/xml/45107/JKROS_2025_v20n2_245_f008.jpg)
![[Fig. 9] [Fig. 9]](/xml/45107/JKROS_2025_v20n2_245_f009.jpg)
![[Fig. 10] [Fig. 10]](/xml/45107/JKROS_2025_v20n2_245_f010.jpg)
![[Fig. 11] [Fig. 11]](/xml/45107/JKROS_2025_v20n2_245_f011.jpg)
![[Fig. 12] [Fig. 12]](/xml/45107/JKROS_2025_v20n2_245_f012.jpg)
![[Fig. 13] [Fig. 13]](/xml/45107/JKROS_2025_v20n2_245_f013.jpg)
![[Fig. 14] [Fig. 14]](/xml/45107/JKROS_2025_v20n2_245_f014.jpg)
![[Fig. 15] [Fig. 15]](/xml/45107/JKROS_2025_v20n2_245_f015.jpg)
![[Fig. 16] [Fig. 16]](/xml/45107/JKROS_2025_v20n2_245_f016.jpg)
![[Fig. 17] [Fig. 17]](/xml/45107/JKROS_2025_v20n2_245_f017.jpg)

