1. 서 론
최근에는 다양한 분야에서 공중 드론(aerial drone)에 대한 연구가 활발히 진행되고 있으며, 해양 분야에서는 수상 드론(surface drone) 및 수중 드론(underwater drone)에 대한 연구도 진행되고 있다.
수상 드론의 경우에는 소나(sonar)의 음향정보(acoustic information)를 필수적으로 사용한다. 이와 관련된 기존의 연구들을 살펴보면 장애물회피를 위하여 전방감시소나(FLS : Forward Looking Sonar)를 활용하여 장애물 정보를 활용하고 있는데, FLS의 경우에는 크기가 크고 에너지 소모가 크다는 단점을 가지고 있다[1]. 이런 단점을 보완하기 위하여 장애물 회피소나(OAS : Obstacle Avoidance Sonar)를 활용한 연구들도 이루어지고 있다[2, 3]. 하지만 OAS와 FLS와 같은 소나의 경우 빔폭(beam width)과 탐지거리(detection range)가 갖는 제한으로 인하여 장애물회피 시에 국부적인 정보만을 활용할 수 있다.
이를 극복하기 위한 연구로는 카메라와 같은 비전 센서(vision sensor)를 이용하여 광학영상(optical image)을 활용하는 전역적 방법의 연구가 진행이 되고 있는데, 수상 드론에 카메라를 탑재할 경우에는 클러터(clutter) 등의 존재로 인하여 탐지가 불가능한 경우가 발생한다[4, 5].
이와 관련해서 공중 드론에 카메라를 탑재하는 방식이 바람직하다. 하지만, 동적부양 방식의 드론의 경우에는 고도 유지에 에너지 소모가 크므로 드론의 장기 운용에 적합하지 않다. 정적부양 방식의 공중 드론에 탑재된 카메라 영상 및 수상 드론에 탑재된 소나의 음향정보를 기반으로 하는 이종 해양 로봇의 협력제어에 관현 연구가 진행이 되기도 하였는데, 이는 수상 드론에 대표벡터(representative vector)를 설정하지 않음으로 인해서 공중 드론의 몸체 좌표계를 기준으로 하는 수상 드론의 좌표 데이터가 넓게 분포하는 경향이 존재하였다[6].
이러한 문제를 해결하기 위해서, 본 논문에서는 수상 드론의 대표벡터를 설정하여 대표벡터를 추적하는 방식을 도입한 협력적 장애물회피(obstacle avoidance) 기법을 제안하고자 한다. 대표벡터를 구하면 움직임을 최소화할 수 있으며, 풍선기반의 공중 드론을 이용하면 고도 유지에 에너지 소모가 적어 비용 및 크기 측면에서 장점을 가진다[7, 8]. 그리고 공중에서 카메라를 이용하여 전역적인 정보를 수상 드론에 줄 수 있기 때문에 수상 드론의 장애물 회피 및 임무 수행 시 빔폭 및 탐지거리가 갖는 제한으로 인하여 발생하는 충돌 위험성을 줄일 수 있다.
제안된 기법의 검증을 위하여 OAS를 탑재한 초소형 수상 드론(MSD : Micro Surface Drone)과 카메라를 탑재한 풍선기반 초소형 공중 드론(BMAD : Balloon-based Micro Aerial Drone)[9]을 이용하였다.
협력적 장애물회피 시스템의 구성은 2장에서, 협력적 장애물 회피 기법의 설계는 3장에서 설명되며, 4장에서는 제안된 기법을 이용한 실험 및 고찰을 하고 있다. 마지막으로, 결론은 5장에 요약한다.
2. 협력적 장애물회피 시스템의 구성
이 장에서는 수상 드론과 공중 드론의 협력적 장애물회피 기법에 관한 시스템 구성을 주요내용으로 하는데, 해양 환경의 특수성 및 시험 평가의 어려움으로 인하여 기존에 연구 개발된 MSD 및 BMAD를 이용하여 시스템을 구성하였고, 유사 환경에서 실험을 진행하였다.
다음의 그림 1은 시스템 구성에 사용한 MSD의 3D 설계 모습이다. 전방, 좌측, 우측의 3방향을 탐지할 수 있는 3채널 초소형 OAS를 자체 탑재하고 있다. OAS의 센서 데이터 값의 1은 탐지 거리 1[cm]를 의미하며, 탐지 영역인 빔폭 ±15° 및 탐지거리 1∼31[cm]내에 존재하는 정상 탐지의 경우에는 1∼31의 정수로 표현되지만, 그 외의 경우는 255로 표현된다.
그림 1초소형 수상 드론 Fig. 1 Micro surface drone
그림 2는 MSD의 추적에 사용한 BMAD의 3D 설계 모습이다. 무게 중심부에 카메라가 설치되어 있어 카메라를 이용하여, MSD의 추적 및 장애물을 인지한다.
그림 2풍선기반 초소형 공중 드론 Fig. 2 Balloon-based micro aerial drone
그림 3은 MSD와 BMAD을 이용한 협력적 장애물회피 기법의 운용개념이다. BMAD의 고도는 약 1.5[m]로 일정하게 유지할 수 있게 하였고, 본 논문에서는 BMAD의 2D 움직임만을 고려하였다.
그림 3협력적 장애물회피 개념 Fig. 3 Concept of collaborative obstacle avoidance
Host PC와 로봇간의 통신은 Zigbee 통신을 사용하였고 카메라는 단독 모듈로서 RF통신을 이용하였다. 통신 편의를 위하여 모든 통신은 Host PC를 이용하여 처리한 후 각 MSD와 BMAD에게 제어 신호를 보내주도록 구성하였다. 그림 4는 시스템의 연동도이다.
그림 4시스템 연동도 Fig. 4 System interface diagram
Host PC에서 카메라의 영상처리를 실시하였는데, BMAD 몸체 좌표계 기준의 MSD의 위치는 다음 그림 5와 같이 표현된다.
그림 5BMAD의 몸체 좌표계 Fig. 5 Body coordinate system of BMAD
그림 5와 같이 선수는 적색 사각형, 선미는 황색 사각형으로 표현하였고, 선수와 선미의 사각형들을 연결하는 대표벡터를 설정하여 BMAD가 이를 추적하도록 하였다. 또한, 카메라의 원점은 좌측 상단에 위치하고 있다.
3. 협력적 장애물회피 기법의 설계
이 장에서는 MSD와 BMAD의 협력적 장애물회피 기법에 관한 내용을 주요내용으로 한다.
먼저, BMAD의 MSD 추적을 위하여 카메라의 영상 처리가 중요하다. 여기서는 영상처리의 편의를 위하여, MSD와 장애물을 색으로 분간하여서 MSD의 추적 및 장애물 인지를 용이하게 하였다.
또한, 그림 6에서 표현된 다각 장애물의 인지 및 경로 선택을 위하여 다음 식을 고려하였다. 다음 식(1)은 실험에 의해 구해진 실험식이다.
그림 6MSD의 대표 벡터 Fig. 6 Representative vector of MSD
여기서, xH는 MSD의 선수부의 X좌표이며, xO는 장애물의 X좌표이다. 1.1[mm]는 영상 좌표계의 1[pixel]이 약 1.1[mm]이기 때문에 거리 값으로 환산을 위하여 곱해주었다. d(k)는 우측 OAS의 값으로서 [cm]단위로 측정된 값이다. 그래서 단위 환산을 위해 10을 곱해준다. 그리고MSDW는 MSD의 너비이다. 그림 6의 점선으로 표시된 사각형과 같은 MSD의 1.5배 크기의 마스크를 씌어 안전영역을 확보할 수 있게 하였다. 그리고 카메라에서는 장애물이 1.5배의 마스크 안에 들어왔을 경우에만 장애물로 인식하게 하였다.
그리고 BMAD의 MSD 추적을 위하여 대표벡터를 설정하여 추적을 용이하게 하였다. 식(2)는 대표벡터를 구하는 식이다.
여기서, xT는 MSD의 선미부 X좌표이며, yH와 yT는 각 MSD의 선수 및 선미부 Y좌표이다. MSDL은 MSD의 길이이고 오차를 고려하여 ±0.2배의 범위를 주었다. 해당 범위는 카메라 성능 등을 고려하여 실험을 통해 얻어내었다.
그림 7은 협력 제어에 사용된 알고리즘 흐름도이다. OAS 데이터를 이용한 장애물 인지 및 추적을 실시할 때는 퍼지제어기(Fuzzy Logic Control : FLC)를 이용했다[10]. 다음 그림 8은 협력 제어 기법의 블록선도이다.
그림 7협력적 장애물회피 흐름도 Fig. 7 Flow chart of collaborative obstacle avoidance
그림 8협력적 장애물회피 시스템 블록선도 Fig. 8 Block diagram of collaborative obstacle avoidance system
여기서, Obstacle은 장애물의 좌표이고, MSDH 및 MSDT는 각각 MSD의 선수와 선미의 좌표이다. 그리고 Tracking Mode는 MSD의 벽면 추적 모드이며, Tracking Mode (MSD)는 BMAD의 MSD 추적 모드이다. Controller는 필터링된 OAS 계측 데이터인 및 영상 좌표를 기반으로 각 상황에 맞는 제어부를 선택하게 되어있다.
4. 실험 및 고찰
제안된 협력적 장애물회피 기법의 검증을 위해서 자체 제작된 수조에서 시험평가를 진행하였다. 시험평가를 위해 고려한 두 개의 다각 평면 장애물 중 하나는 수조의 벽면을 이용하였고 다른 하나는 MSD의 경로 상에 임의 배치하여 MSD의 장애물회피 여부를 검증하였다. 그림 9는 시험평가 시나리오를 보여준다. 점선으로 표현된 1번 경로로 MSD가 진행하게 되면 장애물과 충돌하게 된다. 하지만 BMAD의 영상 정보를 활용하게 되면 실선으로 표현된 2번 경로로 MSD가 진행하게 되어 장애물을 회피할 수 있다.
그림 9시험평가 시나리오 Fig. 9 Scenario for Test & Evaluation
영상처리 구현의 편의를 위하여 MSD의 선수와 선미에 각 적색과 황색의 표시를 하여 BMAD의 몸체 좌표계에서 MSD를 인지하기 용이하도록 하였다. 또한 장애물에 흑색 표시를 하여 MSD와 구분할 수 있도록 하였다. 그리고 BMAD는 약 1.5[m]의 일정 고도를 유지할 수 있게 하였다. 실제의 경우에는 고급 영상처리 기법을 도입하고 BMAD의 고도제어를 수행할 필요가 있다. 시험평가는 그림 9의 1번 경우인 다각 장애물이 경로에 영향을 주지 않았을 때와 2번 경우인 다각 장애물이 경로에 영향을 줄 때를 비교하였고, 시험평가를 간략히 표현하면 표 1과 같다.
표 1시험평가 시나리오 Table 1 Scenario for Test & Evaluation
먼저, 그림 10-15는 시나리오 1에 대한 결과들인데, 그림 10을 통해 MSD가 8[cm]에서 ±1[cm]의 오차를 가지며 벽면 추적을 유지하고 있음을 알 수 있다.
그림 10우측 OAS 데이터 Fig. 10 Right OAS data
그림 11장애물 및 MSD의 위치 Fig. 11 Position of obstacle and MSD
그림 12MSD의 좌측 모터 입력 값 Fig. 12 Input value of MSD left motor
그림 13MSD의 우측 모터 입력 값 Fig. 13 Input value of MSD right motor
그림 14BMAD의 좌측 모터 입력 값 Fig. 14 Input value of BMAD left motor
그림 15BMAD의 좌측 모터 입력 값 Fig. 15 Input value of BMAD left motor
그림 11을 살펴보면 BMAD의 몸체 좌표계에서 MSD가 움직인 궤적과 장애물이 인식된 후의 장애물 궤적이 표현되어 있다. BMAD의 몸체 좌표계를 기준으로 하는 MSD의 좌표가 일정 부분에 분포하고 있는데, 이는 BMAD가 MSD를 잘 추적하고 있음을 보여준다. 그리고 장애물의 좌표가 MSD의 오른쪽에 밀집해 있는데 이는 오른쪽 벽면을 인식하고 있는 것을 보여준다. 또한 원점과 가까운 점에 장애물이 인식이 되는 것은 경로에 영향을 주지 않는 장애물이 인식이 되고 있음을 보여준다.
그림 12, 13는 MSD의 좌측 모터의 입력 값이 일정한 상태에서 MSD의 우측 모터의 입력 값이 변화하면서 벽면 추적이 이루어지고 있음을 보여준다.
그리고, 그림 14, 15는 MSD를 추적하는 BMAD의 모터 입력 값을 보여주는데, 좌측 및 우측 모터의 입력 값들이 상황에 맞게 적절하게 변화하면서 MSD를 잘 추적하고 있음을 보여준다.
다음으로, 그림 16-21은 제안된 기법의 적용 전인 시나리오 2와 제안된 기법의 적용 후인 시나리오 3을 비교한 결과들이다. 그림 16은 MSD의 우측 OAS 데이터 비교로서 시나리오 2의 경우에는 계속 일정한 값이 들어오는데 이는 장애물에 충돌이 유지되고 있어 우측 벽면을 계속 인식하고 있음을 보여준다. 시나리오 3의 경우에는 MSD의 우측 OAS로 인식이 안 되는 장애물을 BMAD의 영상정보를 이용하여 인식 및 회피를 실시하고 있음을 보여준다.
그림 16우측 OAS 데이터 비교 Fig. 16 Comparison of right OAS data
그림 17장애물 및 MSD의 위치 Fig. 17 Position of obstacle and MSD
그림 18MSD의 좌측 모터 입력 값 Fig. 18 Input value of MSD left motor
그림 19MSD의 우측 모터 입력 값 Fig. 19 Input value of MSD right motor
그림 20BMAD의 좌측 모터 입력 값 Fig. 20 Input value of BMAD left motor
그림 21BMAD의 우측 모터 입력 값 Fig. 21 Input value of BMAD right motor
그림 17을 살펴보면 BMAD의 몸체 좌표계에서 MSD가 움직인 궤적과 장애물이 인식된 후의 장애물 궤적이 표현되어 있다. BMAD의 몸체 좌표계를 기준으로 하는 MSD의 좌표가 일정 부분에 분포하고 있는데, 이는 BMAD가 MSD를 잘 추적하고 있음을 보여준다. 그리고 장애물이 MSD의 우측과 전방에 위치해 있음을 알 수 있는데, 이는 우측 벽면을 추적하면서 진행하다가 전방에 장애물을 인지하면서 장애물회피를 실시함을 보여준다. 그리고 다시 장애물이 MSD의 우측에 위치하게 됨을 보여준다. 마지막으로 장애물의 끝 지점에 도달하면서 다시 회피를 실시하고 장애물은 MSD의 우측에 위치하기 때문에 장애물의 정보는 우측에 많이 분포하게 된다. 이를 통해 BMAD의 카메라가 장애물을 잘 인식하고 있음을 알 수 있다.
그림 18, 19는 OAS 데이터와 영상좌표 데이터를 활용하여 장애물회피를 실시하는 MSD의 좌우측 모터 입력 값을 보여준다. 그림 16에서 OAS 정보 미획득 시에 모터 입력 값이 변화하는 것으로 보아 영상정보를 활용하여 MSD가 효과적으로 장애물을 회피하고 있는 것을 알 수 있다. 그림 18, 19의 모터 입력 값을 자세히 살펴보면 다음을 알 수 있다. 시나리오 3의 모터 입력 값이 변하는 것은 MSD가 장애물 인식 후 회피를 실시하는 것으로서 약 25[초] 때, OAS 정보의 미획득으로 영상정보를 이용하여 회피를 실시한다. 약 55[초] 때는 장애물회피 후 자세를 잡는다. 또한 85[초] 때 다시 OAS 정보의 미획득이 나타난다. 이 경우는 장애물회피를 위해 장애물을 완전히 벗어난 부분이다. 또한, 100[초]부터 회피를 실시하여 115[초]경 완료되고 118[초]부터 OAS의 정보가 획득됨을 알 수 있다.
그리고 그림 20, 21은 MSD를 추적하는 BMAD의 모터 입력값을 보여주는데, 여기서도 좌측 및 우측 모터의 입력 값들이 상황에 맞게 적절하게 변화하면서 MSD를 잘 추적하고 있음을 보여 준다.
5. 결 론
본 논문에서는 정적부양 방식의 수상 드론에 탑재된 소나의 음향정보 및 공중 드론에 탑재된 카메라 영상을 기반으로 하는 협력적 장애물회피 기법이 제안되었다.
제안된 협력적 장애물회피 기법의 검증을 위하여 MSD의 OAS 정보와 BMAD의 영상정보를 이용하여 MSD의 장애물 회피를 실시하였다. 또한, MSD의 대표벡터를 설정하여서 BMAD가 MSD를 추적하게 하였는데, 검증을 통하여 수상과 공중 드론의 협력을 통해 장애물회피 시 충돌안정성이 높아진 것과 BMAD의 MSD 추적 성능이 개선되었음을 알 수 있었다.
추후에는 본 연구를 바탕으로 협력적 장애물회피 기법에 공중 드론의 고도제어와 고도의 영상처리 기법을 이용하여 지능 이론을 적용한 협력적 장애물회피 알고리즘에 관해 연구를 지속할 예정이다.
Cited by
- Collaborative Control Method of Underwater, Surface and Aerial Robots Based on Sensor Network vol.65, pp.1, 2016, https://doi.org/10.5370/KIEE.2016.65.1.135