Modified MiniSkywalker Tiltrotor VTOL


아래는 Mini Skywalker 라는 고정익 비행기에 Tilt Rotor를 장착하여 수직이착륙형 비행기(VTOL)로 개조한 내용을 정리한 것이다.

기체는 https://hobbyking.com/en_us/mini-skywalker-840mm-arf.html 에서 구매하였다.

이 기체는 날개 폭 840mm 정도로 소형으로 가격이 저렴하면서 개조가 용이하고 비행 안정성도 어느정도 확보되어있다. 다만 일부 부분에 보강등이 필요하다. 자세한 내용은 아래 VTOL 개조하기 부분을 참조한다.



그림: miniSkywalker 기체


1. VTOL 에 관하여

VTOL 은 Vertical Take Off and Landing의 약자로 "수직으로 이착륙한다" 라는 의미이지만 통상적으로는 날개를 가지고 비행하는 항공기인데 이착륙을 헬기처럼 하는 비행기를 통칭한다. 대표적으로는 AV-8 헤리어나 MV-22 오스프리 같은 항공기가 있다.



하지만 이러한 비행기는  VTOL을 위해서 설계된 비행기이고 그 구조도 매우 복잡하므로 기존 기체를 개조하는 방식으로 접근하도록 한다.

사실 VTOL 비행기를 만드는 가장 간단한 방법은 기존의 고정익 비행기의 무게중심 부분에 4개의 날개를 가진 쿼드콥터를 얹는 방식이다. 대표적으로는 아래 그림과 같은 기체가 있는데 Funcup 이라는 고정익 비행기의 날개에 4개의 프로펠러를 장착할 수 있는 구조물을 만들고 수직비행 상태에는 드론처럼 비행하고 수평비행 상태에는 앞쪽의 프로펠러만 사용하여 비행하는 단순한 방식이다.


VTOL Funcup


자세한 방법은 https://docs.px4.io/en/frames_vtol/vtol_quadplane_fun_cub_vtol_pixhawk.html 에 잘 나와있다.

이러한 구조는 구현하기 쉬운 반면 수평비행 상태에서는 4개의 모터가 모두 놀게 되어 비행기에서 가장 꺼리는 죽은 하중(Dead weight)이 되고 만다. 그리고 비행중에 멈춰있는 프로펠러가 큰 항력을 발생시키므로 비행성능에도 악영향을 끼친다.


이러한 문제점을 해결하기 위해 나온 방식이 프로펠러를 수직과 수평 모든 상태에서 사용할 수 있도록 한 Tilt rotor형 항공기이다.


Tilt Rotor형 항공기(이하 틸트로터)는 비행기의 추력을 만드는 로터를 수직<-->수평 방향으로 변경하여 헬기와 같이 이/착륙 하며 수평상태로 변환 시 일반 비행기처럼 비행이 가능한 항공기로 대표적으로 MV-22 Osprey 혹은 한국항공우주연구원에서 개발한 스마트 무인기가 이에 해당한다.


 


이러한 방식의 항공기들은 공통적으로 프로펠러를 구동하는 엔진이 날개 끝에서 회전할 수 있다는 점을 확인할 수 있다.



RC 비행기로 상용 제품으로 구현된 기체는 E-Flite의 Convergence가 대표적이다.



이번에 제작한 기체는 바로 이 Convergence라는 기체에서 영감을 얻어 멀티로터 항공기처럼 모터의 회전수로 롤/피치 안정성을 확보하고 이 로터를 앞/뒤로 틸팅할 수 있는 틸트 서보를 장착하여 Yaw방향 안정성을 확보하는 방식이다. 자세한 내용은 아래 문서를 참고하면 된다.

https://docs.px4.io/en/frames_vtol/vtol_tiltrotor_eflite_convergence_pixfalcon.html


2. VTOL 구성


전제적인 구성은 E-flite 의 Convergence 기체를 바탕으로 Elevon으로 된 조종면을 Aileron, Elevator, Rudder 로 변경한 형태이다.

세부사항은 아래 그림과 같다.


그림. VTOL Skywalker 구성도


사용된 주요 부품은 다음과 같다.


추진용 모터: 레이싱 드론용 1806 size 2300kv BLDC 모터 3개

틸트용 서보모터: Corona CS238MG Metal Gear Servo 4.6kg / 0.14sec / 22g 서보 2개

조종면 제어용 서보모터: Sub micro 서보 4개


PX4의 제어 Output은 MAIN 8Pin + AUX 6 Pin으로 구성되어 있으며 각 핀은 아래 표와 같이 할당된다.


PX4 I/O

 Pin 번호

 역할

 MAIN

 1

 Motor Right

 2

 Motor Left

 3

 Motor Rear

 4

 Empty

 5

 Tilt Servo Right

 6

 Tilt Servo Left

 AUX

1

 Aileron

2

 Elevator

3

 Rudder


전체적인 시스템은 다음과 같다.

전체 시스템 구성도




3. VTOL 만들기


miniSkywalker 기체를 완성하기 위해 구매한 부품은 다음과 같다.


 

 품명 (키워드)

수량

 용도

구매 사이트

 1

 Mini Skywalker 840mm ARF

 1

 기체

 https://hobbyking.com/en_us/mini-skywalker-840mm-arf.html

 2

 Corona CS238MG Metal Gear Servo 4.6kg / 0.14sec / 22g

 2

 틸트 서보

 

 3

 HXT500 Micro Servo 0.8kg / 0.07sec / 6.2g

 3

 조종면 서보

 

 4

 Carbon Batten (1.0x4.0x1000mm)

 2

 기체 보강

 http://www.rcme.co.kr/shop/goods/goods_view.php?goodsno=6403156&category=023008

 5

 Pixhawk PX4

1

비행제어기
 

 6

 PX4 Airspeed sensor

1

기체속도 측정

 https://www.aliexpress.com/wholesale?catId=0&initiative_id=SB_20190123222452&SearchText=pixhawk+air+sensor


FC 장착 후 모습은 다음과 같다.




4. PX4 Flight Controller 설정하기


PX4는 비행제어를 위한 소프트웨어로 쿼드콥터, 헥사콥터, 고정익 비행기 등 다양한 형태의 무인 비행기를 지원하나 이번에 제작하는 VTOL같은 형태의 경우에는 비행 모드에 따라 다른 서보 출력, 모터 출력을 만들어야하므로 이에 해당하는 설정 파일을 작성해야한다.

이 과정은 px4 프로젝트에 대한 이해를 필요로 하는데 바로 Build 후 업로드하여 설치하고싶다면 다음 git 저장소에서 https://github.com/kyuhyong/Firmware  프로젝트를 다운받고 "vtol_skywalker" 브렌치로 Checkout 하면 된다.



A. Airframe 추가하기


PX4 는 다양한 기체 형태를 지원하기 위해 각각의 설정을 개별적으로 수정하는 대신 하나의 파일로 만들어서 Booting과정에서 해당 파일을 읽어드려 설정하는 방식을 사용하고 있다. 이렇게 하면 기체 설정 파일만 있으면 px4가 탑재된 보드에 쉽게 설정을 옮기고 업로드할 수 있게 된다.

해당 파일들은 Firmware/ROMFS/px4fmu_common/init.d 에 존재한다.


Firmware/ROMFS/px4fmu_common/init.d/13014_vtol_mini_skywalker 내용 추가


# @output MAIN1 Motor right
# @output MAIN2 Motor left
# @output MAIN3 Motor back
# @output MAIN4 Tilt servo right
# @output MAIN5 Tilt servo left
# @output AUX1 Aileron
# @output AUX2 Elevator
# @output AUX3 Rudder
param set VT_MOT_COUNT 3 #엔진 혹은 모터의 갯수
param set VT_FW_MOT_OFFID 3 #수평 비행상태일때 반드시 꺼져야하는 모터의 위치
param set VT_IDLE_PWM_MC 1200
param set VT_TYPE 1 # VTOL 타입. 0=Tailsitter (꼬리로 이착륙 하는 형태), 1=틸트로터형, 2=Standard 형태
param set VT_B_TRANS_DUR 1.0 # 이착륙 모드로 전환할 때 걸리는 시간(초)
param set VT_FW_DIFTHR_EN 1 # 전진방향 비행시 출력 디퍼렌셜 적용 여부
param set VT_FW_DIFTHR_SC 0.17 # 디퍼렌셜 출력의 스케일 게인: 러더 입력에 대한 출력 변화율
param set VT_FW_PERM_STAB 0 # 전진방향 비행시 Stabilization 적용 여부: 1로 설정하면 전진 비행시 무조건 Stabilize가 적용됨
param set VT_F_TRANS_DUR 1.2 # 전진방향 전환 시간(초) (최대 20초)
param set VT_F_TR_OL_TM 4.0 # 대기속도 센서가 없을 경우 전진방향 전환 시간(초) (최대 30초)
param set VT_TILT_FW 1.0 # 전진비행 시 틸트 서보의 위치 (0~1.0)
param set VT_TILT_MC 0.0 # 수직비행 시 틸트 서보의 위치(0~1.0)
param set VT_TILT_TRANS 0.45 # 전환 시 틸트 서보의 위치(0~1.0)
param set VT_TRANS_MIN_TM 1.2 # 전진방향 전환 최소 시간(초) (0~20.0)
param set VT_TRANS_P2_DUR 1.3 # 전진비행 2단계 전환 시간(초) (0.1~5.0) : 충분한 대기속도를 확보하여 고정익 항공기로
# 비행이 가능해질때까지 로터가 완전히 전진 방향으로 회전하는데 걸리는 시간
param set FW_ARSP_MODE 0 # 대기속도 모드: 0=노멀(가능하면 대기속도 사용), 1=대기속도 사용 안함
... 이하 생략


그리고 이렇게 추가한 설정 파일을 Build과정에 추가하기 위해

Firmware/ROMFS/px4fmu_common/init.d/CMakeList.txt에 위에서 편집한 파일명을 추가한다.


    13014_vtol_mini_skywalker



B.Mixer 파일 추가하기


위에서 만든 파일은 기체 설정, 제어 파라미터에 대한 설정일 뿐 실제 출력은 기체 형태와 서보의 배치, 구성에 따라 달라지므로 각각의 출력을 Mixing하는 과정이 필요하다. PX4에는 main과 aux 채널 각각에 대해 별도의 mixing을 적용할 수 있다. 자세한 방법은 https://dev.px4.io/en/concept/mixing.html 에 있는 문서를 참조한다.


Firmware/ROMFS/px4fmu_common/mixers/ 에서

메인 핀에 연결된 3개의 모터, 2개의 틸트 서보 출력을 위한 vtol_mini_skywalker.main.mix 파일을 추가하여 아래와 같이 편집한다.


# MiniBixler Tricopter Y-Configuration Mixer
# Motors
R: 3y 10000 10000 10000 0
Z:
Tilt mechanism servo mixer
---------------------------
#RIGHT up:2000 down:1000
M: 2
S: 1 4 0 -20000 10000 -10000 10000
S: 0 2 8000 8000 0 -10000 10000
#LEFT up:1000 down:2000
M: 2
S: 1 4 0 20000 -10000 -10000 10000
S: 0 2 8000 8000 0 -10000 10000


다시 AUX핀에 연결된 에일러론, 엘리베이터, 러더 출력을 위한 vtol_AER.aux.mix 파일을 추가한다.


Mixer for an AER VTOL
=======================
Aileron mixer
---------------
M: 1
S: 1 0 -7500 -7500 0 -10000 10000
Elevator mixer
--------------
M: 1
S: 1 1 10000 10000 0 -10000 10000
Rudder mixer
------------
M: 1
S: 1 2 -10000 -10000 0 -10000 10000


마찬가지로 새로 추가한 파일을 Build과정에 포함하기 위해

Firmware/ROMFS/px4fmu_common/mixers/CMakeList.txt 에 다음을 추가한다.

    vtol_minibixler.main.mix

    vtol_AER.aux.mix


Build 후 생성되는 px4fmu-v2_default.px4 펌웨어 파일을 QGC를 통해 보드에 다운로드 후 QGC를 재실행 하면 아래 그림과 같이 방금 생성한 Airframe을 선택할 수 있다.




5. 비행 결과


첫번째 비행 결과는 아래와 같았다.





비행 제어기에 설정된 기본 제어 게인으로 비행한 결과 생각보다 안정적으로 전환 및 비행이 이루어졌다.

다만 전진 비행모드에서 수직 비행모드로 전환 시 Throttle 입력이 너무 낮으면(40% 미만) 기체가 제자리에서 회전하는 현상이 발생하였다. 이것은 수직 모드에서 Throttle 이 낮으면 Torque를 상쇄하는 힘이 부족해서 발생하는 것으로 보인다.

때문에 하강시에는 주의하면서 고도를 낮추어야한다.


비행 결과는 아래에 공유한다.

https://logs.px4.io/plot_app?log=190dc440-6d61-4a78-b7ef-3efc18c6a0c3



2019/2/12 최초 문서 발행



+ Recent posts