thinking

자동 비행 문제점 or 어려운 점

빠릿베짱이 2014. 4. 6. 15:07
반응형

Q. 작은 비행물체를 자동으로 조정하여 원하는 목적지까지 도달하도록 하는 연구의 문제점 or 어려운점

facebook의 김병상님의 의견 : https://www.facebook.com/#!/groups/cvprml/689269671111568/?notif_t=group_comment


* 기구/역학관점

소형 비행체의 경우, 기체는 작고, 가벼워야 하는데, 충분한 부력을 제공하기 위해서는 높은 출력의 구동기들이 필요합니다. 그런데 일단, 작으면서도 충분한 출력이 나오는 구동기를 구하는게 쉽지 않습니다. 자. 일단 구동기는 무시합니다. 그렇다면 남은 것은 기체를 더욱 더 가볍게 하는 것입니다.

그런데 기계라는 녀석은 참 신기합니다. 무거울 때는 중력이라는 이름으로 엔지니어를 괴롭히는데, 일정 수준 이하로 가벼워지면 점성력이라는 이름으로 엔지니어들을 괴롭힙니다. 즉, 가벼워서 중력을 이기고 잘 날아 오르기는 하는데, 바람이 불면 휙휙~ 날아가 버리죠. 네. 휙~휙~ 날아갑니다. 즉, 작은 바람에도 큰 가속도로 움직인다는 거죠.

그럼 바람과 같은 외력을 이기고 자신의 위치로 돌아 가야 하는데, 이미 구동기의 성능에는 한계가 왔습니다. 이제는 바람따라 날아 가는 수 밖에 없는 것이죠. 하늘이 도와서 기체가 수평 방향을 정확하게 유지하면서 날아가면 그래도 제어를 해 볼만 하겠습니다. 그런데 비행체가 빙긍빙글 3차원 회전을 합니다, 이젠 이 녀석을 어떻게 제어해야 할지... 제어기가 참 난감해 합니다. 제어기가 사람이던 MCU이던 말입니다.

흔히, 소형 비행체를 구매해서 방 안에서 가지고 놀면 잘 조정이 됩니다. 그런데 밖에만 나가면 비행체가 바닥으로 곤두박질 칩니다. 싸구려 기체면 몰라도, 과거 엄청 고가였던 RC 비행체라면... 그저 눈물밖에...

한줄 요약을 해 보면, 공중에 떠 있는 비행체는 역학적인 관점에서 근본적으로 불안정 시스템이고, 그렇기에 외란에 매우 민감하다. 정도가 될 것 같네요.

 * 전자 부품/센서 관점

기구적으로는 공중에 떠 있는 비행체는 불안정 시스템이지만, 제어적으로 안정화를 시킵니다. 일단 제어를 하려면 기체 상태를 인식할 수 있는 다양한 센서들이 필요할 텐데요...


일단 구동기 회전속도를 인식할 수 있는 속도검출기(엔코더라고 하죠), 기체 자세를 인식할 수 있는 IMU 센서 (자이로 센서+가속도 센서), 글로벌 위치를 인식할 수 있는 GPS, 주변 환경을 인식할 수 있는 각종 센서들...

이런 센서가 이상적인 센서라면, 모터의 속도를 정확하게 인식하고, 기체의 자세를 정확하게 인식하고, 글로벌 좌표를 정확하게 인식할 텐데... 아쉽지만 그런 센서는 없겠지요. 세상에 모든 것들이 그렇듯, 성능의 한계라는게 있습니다. 센서 입장에서는 얼마나 세밀하게 원하는 정보를 받을 수 있는지를 말하는 분해능, 받아들인 정보가 얼마나 정확한가를 의미하는 정확성, 그리고 외란 대비 신호는 얼마나 깨끗한지를 말하는 SNR, 등등등..

그러다보니, 기체의 상태를 모두 알고 있는 것 처럼 생각되지만, 실질적으로는 확률론적으로 알고 있다는 것입니다.

이와 같은 문제를 해결하려면 좀 비싼~ 아니 많이 비싼~ 센서들을 사용하면 조금은 문제가 쉬워집니다. 그런데 센서 가격들이 일반 제품에서 정밀 제품으로 넘어갈 때, 2~3배 비싸지는게 아니라, 껑~충 뛰어 버립니다. 그리고 정밀급 센서 중에는 국방관련 문제로 인하여 일반인들에게 판매되지 않는 것들도 많이 있습니다.

많은 연구원들이 하는 연구가, 바로 이와 같은 한계가 있는 센서들을 가지고 원하는 성능을 끌어 내기 위해, 다양한 알고리즘을 개발하는 것이라고 이해하면 좋을 것 같습니다.

 

* 제어 관점

자... 이제 제어 관점에서 한번 이야기를 해 볼께요...

앞에서 말한 것처럼 기체를 제어하려고 하는데, 바람, 온도 등의 외란이 작용하고 있고, 센서들 값은 일정 오차 범위 내에서 오락 가락 하고 있습니다.

그 변화가 고정되어 있다면, 즉 바람의 세기가 늘 일정하다면, 온도가 늘 일정하다면, 센서의 오차가 늘 일정하다면, 이런 오차들을 보상하여 제어하기가 쉬울 텐데요, 문제는 시간에 따라 계속 변화한다는 것이지요. 즉, 사람이 상식적인 수준에서, 조건 별로 이럴 땐 이렇게 해라~ 이럴 땐 이렇게 해라~ 이렇게 제어하는게 어려워 집니다.

한 가지 예를 들어 볼게요. "A에서 B로 이동하라"라는 명령을 수행하기 위해서, 시스템이 제어해야 할 변수가 6가지가 있고, 각 변수는 3가지 상태를 가질 수 있다고 가정해 봅니다. 그럼 실제 작업을 수행하기 위해서는 제어기는 729개의 답 중 하나를 골라 내야 합니다. 그리고 그 답은 제어를 수행하는 매 사이클 마다 바뀝니다. 이런게 어려우니, 강화 학습을 하거나, 적응 제어를 하거나... 다양한 제어 이론들이 녹아 들어가야 하게 됩니다.

그리고 제어를 하는데 또 하나의 이슈는 다객체 제어가 있습니다. 예를 들어 비행체가 한대라면 문제가 없을 텐데, 이게 수천대~수만대가 하늘에서 돌아 다닌다고 가정해 보면, 날아 다니다가 서로 부딪힐 수도 있겠지요. 이와 관련해서도 하드웨어 적인 문제와 소프트웨어적인 문제들이 많이 있습니다. 그 중 하나는, 보안 문제도 포함됩니다. 하늘을 날아다니느 비행체 통신 프로토콜을 누군가 해킹해서, 자기 집으로 빼 돌릴 수 있으니까요.

결론적으로 이야기 하자면, 주변 외란이 없는 환경에서 하나의 시스템으로 특정 작업을 수행하는 것은 어느 정도 가능하다고 봅니다. 실제 연구실 수준에서 많이 구현하고 있지요. 하지만 이를 상용화하여 실생활로 가지고 오게 될 경우 ,수 많은 예상하지 못한 상황들이 존재하기에 어려움이 있다라고 말씀 드리고 싶습니다.



반응형