Engineering

드론 프로젝트할 때 고려할 요소. ps. realtime video stream drone control

luckydipper 2024. 4. 22. 09:20

K-SW square 프로그램으로 Purdue 대학교에서 프로젝트를 하고 있다. 원래는 realtime video stream를 기반으로 드론을 제어하려고 했다. 그러나 많은 난관에 부딪혔다. 다른 분들은 이런 고생을 하지 않았으면 하는 마음에 글을 쓴다.

0. 결론

  만약 Realtime video streamming을 통해 드론 제어를 한다면 둘 중 하나를 선택할 것이다.
wifi area에서 끝내려면 parrot bebop2을 사용할 것이다. 만약 wifi area 밖으로 보내려면 pixhawk를 통한 opensource 드론을 활용할 것이다.

1. 어떤 UAV을 사용할 것인가?

기체의 종류에 따른 UAV 분류.

  multi copter, Fixed wing, VTOL (vertical take of and landing) 등 다양한 모델이 존재한다. multicopter는 수직으로 이착륙이 가능하지만 비행 효율이 좋지 않다. 배터리가 금방 단다. Fixed wing은 수직 이착륙이 불가능하여, 활공할 수 있는 공간이 필요하다. 이 둘의 장점을 합친 것이 VTOL이다.

multi-copter fixed-wing VTOL

이후에 기술하는 드론은 UAV중에서 multicopter를 칭한다.

상업용 드론과 오픈소스 드론으로 분류.

1.1 상업용 드론

  상업용 드론은 용도에 따라 촬영용(Cinematic) 드론과 FPV(First Person View) 드론으로 분류된다. 촬영영 드론은 말 그래도 촬영하기 위한 드론이고, FPV 드론은 VR과 같은 기계를 차고 레저 스포츠를 위한 드론이다. FPV 드론이 더 현란한 움직임이 가능하고, 대부분의 경우 카메라에 짐벌이 없다. 높은 픽셀에 안정적인 사진을 원한다면 촬영용 드론을 선택해야 하고, 빠른 반응성과 제어를 원한다면 FPV 드론을 선택해야 한다.

  대표적인 드론 회사는 DJI, Syma, Autel, Parrot, Yuneec가 있다. 이중 DJI 드론이 가장 유명하다.

분류 DJI Syma Autel Parrot Yuneec
국적 중국 중국 미국 프랑스 중국
특징 가장 많이 쓰인다. 싸다. 저성능이다 비싸다. 고성능이다. ROS를 지원한다 비싸다. 고성능이다

  상업용 드론으로 부터 센서값을 받아오거나 제어신호를 보내기 위해선 SDK를 찾아봐야 한다. DJI 드론이 가장 많이 쓰이기에 해당 SDK를 찾아봤다. 처음에 봤을 때 황당하였다. SDK가 c, C++, python도 아닌 Android와 IOS로 돼있다. 왜냐면 휴대폰이 디스플레이로 보여지기 때문이다. onboard SDK가 있긴 하지만, 해당 드론들은 매우 비싸다.

1.2 오픈소스 드론

  Pixhawk를 기반으로 한 드론 제어를 한다. Pixhawk는 UAV용 오픈소스 하드웨어이다. 마이크로컨트롤러와 마이크로프로세서의 역할을 동시에 수행한다. 즉, nutex라는 OS가 올라가고 센서와 IO도 직접 한다. pixhawk의 제어는 Ardupilot, QGroundControl이라는 소프트웨어를 통해서 이뤄진다. Ardupilot은 window용, QGroundControl은 cross platform이다. 하지만 해당 SW를 통해 직접 기체를 제어할 수는 없다. Waypoint를 찍어서 해당 지역으로 보내는 것만 가능하다. 여기에 ROS를 확장시키려면 MavROS 라고 공식 문서에 있다. 이것을 활용하면 ROS도 쓸 수 있을 것이다.

장점 :
  1. 싸다 (부품도 교체 가능하다)
  2. 커스텀이 자유롭다. ROS도 올릴 수 있고, cellular 통신까지 달 수 있을 것이다.
단점 :
  1. 주변기기 연결하고 날리면 한 학기가 사라질 수 있다. 한번 날리기 매우 힘들다.
  2. obstacle avoidance 기능이 없다. 즉, 날리다가 부딪히면 안녕이다. 그간 노력이 물거품이 되어 사라진다. 안녕~
주의 :
  1. usb hub를 통해 연결하면 펌웨어 다운이 안 된다. USB 포트가 있는 컴퓨터나 노트북을 사용하도록 하자.

2. 어느 영역까지 띄우고 싶은가? 영상을 받아오고 싶은가? 어떤 컨트롤러를 쓰고 싶은가? 

  대부분의 드론 제어는 라디오 신호 (RFID)를 기반으로 한다. 조이스틱으로 조종하는 이유가 RFID 신호를 보내기 위해서이다. 이는 wifi보다 넓은 지역에서 날 수 있지만 실시간 비디오 스트림 하기엔 부족하다.  
만약 컴퓨터와 ROS를 사용한다면 wifi 영역 안에서만 키보드로 제어가 가능하다. 비디오 신호도 받아올 수 있다. 멀리서 무선 영상 송수신 하기 위해선 celluar 통신을 해야 한다. celluar + Zenoh + ROS2를 통해 가능하다고 한다.

'Engineering' 카테고리의 다른 글

Docker hub에 image 올리는 법.  (0) 2024.02.03