드론 쿼드콥터

고도유지(Alt Hold) 모드

하늘이푸른오늘 2017. 6. 29. 22:19

고도유지 모드에서는 roll/pitch/yaw 입력은 평상시처럼 제어할 수 있되, 콥터가 고도를 일관성있게 유지한다.

개요

고도유지(AltHold) 모드가 선택되면, 현재의 높이를 유지하기 위해 쓰로틀이 자동 제어된다. Roll, Pitch, Yaw는 안정화(Stabilize)모드와 동일하게 작동된다. 즉, 조종사가 Roll/Pitch 방향의 기울기 각도 및 기수방향(heading)을 직접 제어한다.

자동 고도유지는 다른 많은 비행모드(로이터, 스포츠 등)의 기능이므로, 여기에 있는 정보는 이들 모드에도 동일하게 적용된다.

참고 : 비행콘트롤러는 고도를 결정하기 위한 수단으로 기압계를 사용한다. 따라서 극단적인 날씨 등으로 인해 비행지역에서 기압이 변하면, 콥터는 실제 고도가 아닌 기압 변화를 따라가게 된다. (예외로 지상에서 6-7미터 이내에 있고 SONAR를 탑재하고 활성화 시켰을 경우는 이를 사용한다.) 26피트 (8미터) 이하에서는 SONAR(활성화되어 있을 경우)가 자동적으로 훨씬 정확한 고도를 제공한다.

제어(Controls)

조종사는 쓰로틀 스틱을 사용하여 기체의 상승/하강 속도를 제어할 수 있다.

  • 쓰로틀 스틱이 중앙 부근(40% ~ 60%)에 있다면 기체는 현재의 고도를 유지한다.
  • 쓰로틀 중앙 불감대역(deadband)을 벗어나면(즉 40% 이하거나, 60% 이상일 때) 기체는 스틱이 얼마나 기울어졌는지에 따라 상승하거나 하강한다. 쓰로틀 스틱을 완전히 내리면 콥터는 2.5m/sec 속도로 하강하며, 스틱을 완전히 올리면 2.5m/sec 으로 상승한다. 이 속도는 PILOT_VELZ_MAX 파라미터로 조정할 수 있다.
  • 불감대역의 범위는 THR_DZ 파라미터(AC3.2 이상)를 사용하여 조정할 수 있다. 이 파라미터는 0과 400 사이여야 한다. 0은 불감대역이 없다는 뜻이며, 100은 쓰로틀 중앙점에서 10% 이상 및 이하 사이를 불감대역으로 만든다. (즉, 쓰로틀 스틱 40%-60% 범위가 불감대역이 된다.)

AC3.1 이후에서는 고도유지 모드에서도 시동/시동해제가 가능하다. 시동해제를 하면, 콥터를 착륙지점에서 몇 초정도 가만히 있도록 하여, "착륙 점검기(landing checker)"가 착륙했는지를 확인시켜야 한다. 이후에야 시동해제를 시킬 수 있다.

튜닝(Tuning)

AltHold P 는 높이오차(희망 높이와 실재 높이와의 차이)를 상승/하강 속도로 변환하는데 사용된다. 높은 값을 두면 좀더 공격적으로 고도를 유지하려고 시도하지만, 너무 높이면 쓰로틀 반응이 홱홱 날카로워진다.

Throttle Rate (대부분 튜닝이 필요없음) 희망 상승/하강 속도를 원하는 상하 가속도로 변환하는데 사용된다.

The Throttle Accel PID 이득값은 가속도 오차(즉 희망 가속도와 실재 가속도간의 차이)를 모터 출력으로 변환하는 데 사용된다. 이 파라미터를 수정할 경우, P:I 의 비율은 1:2로 유지해야 한다. (즉, I 값을 P 값의 두배로) 이 값은 절대 증가시켜서는 안되지만, 매우 강력한 콥터의 경우, P와 I를 50% (즉, P 는 0.5, I 는 1.0) 내리면 더 반응이 좋아질 수 있다.

dataflash log를 사용하여 AltHold 성능 검증하는 방법

고도유지 모드의 성능은 해당 비행의 데이터플래시 로그를 다운로드 받은 후, 미션플래너에서 기압계 고도, 희망 고도, 관성항법 기반의 고도 추정값을 그래프로 표시하면 쉽게 확인할 수 있다. 이 데이터는 버전과 보드의 종류에 따라 약간 다른 행에 나타난다.

APM AC3.1의 경우

CTUN의 BarAlt (기압계 고도), WPAlt (원하는 고도)와 GPS 메시지에 있는 RelAlt(관성항법 고도추정)

APM AC3.2 이상 또는 Pixhawk 

CTUN의 BarAlt(기압계 고도), DAlt(원하는 고도), Alt (관성항법 고도 추정)

이 세가지항목은 아래와 같이 서로 잘 추적해야 한다.

일반적인 문제점

  1. 진동이 심하면 고도유지모드로 들어가자 마자 콥터가 빠르게 상승할 수 있다. 진동을 측정하고 줄이는 방법을 참고하라.
  2. 콥터가 천천히 상승하거나 하강한다. 조종사가 안정화모드(Stabilize)에서 제어를 되찾아야 한다. 일반적으로 이러한 현상은 쓰로틀 스틱이 중앙 위치가 아니기 때문에 발생한다. 가장 흔한 경우는 쓰로틀 중앙에서 호버링하지 않는 콥터를 조종사가 수동비행모드(Stabilize 등)에서 AltHold 로 바꿀 때 발생한다. 쓰로틀 중앙 위치 설정 페이지를 참고하라.
  3. AltHod 모드로 전환한 직후 잠시동안 모터가 정지한듯 하다가 금방 회복된다. 이는 일반적으로 빠르게 상승하는 동안 AltHold 모드로 바꿨을 때 발생한다. 목표 고도는 조종사가 Alt Hold 모드로 들어갔을 때의 순간에 설정되지만, 기체가 빠르게 상승하고 있기 때문에 기체가 목표지점 위에서 날고 있는 상태가 된다. 공격적인 고도유지 제어기는 일단 잠시 모터 속도를 최저수준으로 줄인뒤 목표 고도로 되돌아가기 시작한다. 안정된 고도에서 비행하는 중 AltHold 모드로 들어가면 이러한 현상이 발생하지 않는다.
  4. 대기압 변화가 있으면 기체가 장시간에 걸쳐 몇 미터 정도 천천히 상승 또는 하강한다. 또는 지상국에 표시된 고도가 몇미터 정도 부정확할 때(경우에 따라서는 음수로 표시되기도 함)에도 이런 현상이 발생한다.
  5. 콥터가 고속으로 전진한 뒤 수평을 잡을 때 순간적으로 고도가 1m-2m 정도 떨어진다. 이는 공기역학적 효과 때문으로, 비행 콘트롤러가 설치된 콥터의 꼭대기에 순간적으로 저압 공기방울이 형성되고, 이로 인해 제어기는 기체가 상승하고 있다고 믿어 하강 반응을 하는 것이다. 현재로서는 이런 행태에 대해 교정할 방법이 없다. 단 [INAV_TC_Z] 파라미터를 7로 (기본값은 5) 올리면 이 효과를 줄일 수 있지만, #1에서 언급한 상황이 더 크게 나타나게 된다.
  6. 지상에 가깝거나 착륙중에 고도 유지가 잘 안된다. 이는 prop-wash로 인해 발생하는 기압 변화에 의해 기압계가 영향을 받기 때문에 발생한다. 해결책은 비행콘트롤러를 prop-wash가 없는 지역으로 이동시키거나, 적절하게 환기가 잘되는 울타리 안에 보호하는 것이다. ??  shield it within an appropriately ventilated enclosure.
  7. 기압계를 살짝 건드리면 고도가 갑자기 변한다. 2013년 중반 이후 판매된 APM2.x 는 케이스 내부에 검정 테이프로 처리하여 이를 방지하고 있다.

적절한 동력

기체에 충분한 동력이 있어야 하는 것은 매우 중요하다. 동력이 충분하지 못하면 AltHold 와 고도 제어기가 모터에서 사용가능한 것보다 더 많은 동력을 요구하는 상황이 발생할 수 있으며 이로 인해 일부 제어를 포기함으로써 고도나 자세를 잃어버리게 된다.

이상적으로 기체는 50% 쓰로틀 (스틱 중앙 위치)에서 호버링할 수 있어야 하며, 70% 이상이면 위험하다.

경고 : 송신기에 expo를 도입하면 Alt Hold 쓰로틀 불감대역의 크기가 커진다. ???? If you incorporate expo on your transmitter, that directly increases the size of the Alt Hold throttle dead band.

===

원문 : http://ardupilot.org/copter/docs/altholdmode.html

이전글 : 안정화(Stabilize) 모드

다음글 : 로이터(Loiter) 모드