콘텐츠로 건너뛰기
쿼드(QUAD) 드론연구소

쿼드(QUAD) 드론연구소

  • 👨‍✈️ 초보 파일럿
  • 🎖️ 개발자
  • 🥇 전문가
  • 💎 다이아몬드
  • 🛠️ Tech-Tip
  • 📝 블로그
  • ⚠️ 저작권
login
쿼드(QUAD) 드론연구소
쿼드(QUAD) 드론연구소

🕰️PX4와 ArduPilot의 개발 배경

4
  • ArduPilot 주요 개발자
  • ArduPilot
  • PX4 주요 개발자
  • PX4

📚드론 개발 라이브러리

10
  • 1.드론 개발자 로드맵(Load-Map)
  • 2.드론 개발 소프트웨어 개요
  • 3.MAVLINK
  • 4.PyMAVLink
  • 5.MavProxy
  • 6.MAVSDK
  • 7.MAVROS
  • 8.PX4 uORB with ROS 2
  • 9.자율주행드론 개발 프로세스
  • 10.학습 로드맵(Road-map)

🧩자율주행드론 시스템 아키텍처

4
  • Smart UAV is Robot!
  • PX4 System 아키텍쳐
  • PX4 Software 아키텍쳐
  • 쿼드(QUAD) 자율주행드론 UAV 시스템 아키텍처

🐧Linux (Ubuntu) 기초

14
  • Ubuntu 22.04 설치 (PC에 직접 설치)
  • Windows 10/11 WSL2 설치
  • Linux 개요
  • 리눅스 쉘 기본 명령어
  • 자주쓰는 명령어 정리 (Ubuntu 사용)
  • 자주 사용하는 터미널 명령어
  • Linux Package 에 대한 이해
  • su와 sudo 명령어 활용법
  • 리눅스 파일 시스템 이해하기
  • 리눅스 권한에 대한 이해
  • 빌드 시스템에 대한 이해
  • Make(Makefile) 사용 가이드
  • CMake 의 이해
  • CMake 사용 가이드

픽스호크(Pixhawk) 기초

29
  • 쿼드(QUAD) 자율주행 드론(UAV) 개발 키트
  • 픽스호크 드론의 기초 개요
  • 드론에 사용되는 물리학
  • 멀티콥터의 동작 원리
  • ArduPilot vs. PX4 선택
  • PX4 시스템 아키텍처
  • 지상국(Ground Control System) 선택
  • Pixhawk 6C 비행 컨트롤러
  • Pixhawk 6X 비행 컨트롤러
  • 드론에서 사용되는 센서간 통신제어 방식
  • Pixhawk 배선
  • Pixhawk 전원 공급
  • GPS/나침반
  • 거리 측정기 (LiDAR)
  • 고도(Altitude) 이해
  • 컴패니언 컴퓨터
  • 오프보드(Offboard) 제어
  • 컴패니언 컴퓨터 GPIO를 이용한 FC 제어
  • ESC(전자속도제어기)
    • ESC (전자속도제어기)
    • BLHeli32 및 BLHeli_S ESC
    • DShot ESC
    • DroneCAN ESC
    • PWM, OneShot 및 OneShot125 ESC
  • 무선제어시스템(Radio)
    • 무선 제어 시스템 (Radio)
    • 조종기/수신기
    • 수신기 RSSI 강도 표시
  • Telemetry 라디오
    • Telemetry 라디오
    • SiK Radio 설정
    • 다중 Point-to-Point 설정

Q250 사용 가이드

17
  • Q250 빠른 시작 가이드
  • QGroundControl 설치
  • Q250 펌웨어 재설치 (선택)
  • Q250 파라메터 설정
  • FS-i6x 조종기와 수신기 설정
  • 비행 모드
  • 전원 설정
  • Actuators (모터) 설정
  • Flight Behavior 설정
  • 텔레메트리 연결
  • GPS 연결
  • 컴패니언컴퓨터 전원 공급장치(UBEC) 사용 가이드
  • LED 컨트롤러 사용 가이드
  • 컴패니언 컴퓨터와 FC의 UART 케이블 연결
  • Optical-Flow & LiDAR 설정
  • 지자계 간섭 문제 해결
  • fake_gps (가상 GPS)

Q500 사용 가이드

10
  • Q500 사용 가이드 개요
  • QGroundControl 설치
  • Q500 펌웨어 설정
  • Q500 파라메터 설정
  • Radiomaster 조종기 설정
  • 수신기의 전파 수신 강도(RSSI) 설정
  • Pixhawk 6X Ethernet 설정
  • 컴패니언 컴퓨터와 FC 연결 설정
  • 시뮬레이터 사용 가이드
  • fake_gps (가상 GPS)

Q650 사용 가이드

9
  • Q650 사용 가이드 개요
  • QGroundControl 설치
  • Q650 펌웨어 설정
  • Q650 파라메터 설정
  • 조종기 설정
  • 수신기의 전파 수신 강도(RSSI) 설정
  • Pixhawk 6X Ethernet 설정
  • 컴패니언 컴퓨터와 FC 연결 설정
  • H-Flow 설정 가이드

첫 비행 및 튜닝

12
  • 첫 비행 및 튜닝 개요
  • 첫 비행 지침
  • 수동비행 지침
  • 임무 비행
  • 지오펜스
  • 안전지점(Rally Points)
  • 비행 모드
  • 지형 추적/유지
  • PID 튜닝
  • 비행 기록 분석
    • 비행 기록 분석
    • Flight Review를 이용한 로그 분석
    • 비행기록 분석 실습

PX4-Toolchain 개발환경 구성

4
  • Windows 10/11 WSL2 설치
  • ROS(1) + PX4 Toolchain 구성
  • Gazebo Classic 시뮬레이터 사용하기
  • ROS2 + PX4 Toolchain 구성

MAVLink-Python 프로그래밍

17
  • MAVLINK 개요
  • Python MAVLink 라이브러리 사용
  • 드론에 연결하기(Connect)
  • MAVLINK 메시지 주고받기
  • 비행 모드 (PX4 멀티콥터)
  • MAV_CMD
  • PX4 ‘OFFBOARD” 와 Ardupilot ‘GUIDED’ 모드 차이
  • PX4 Offboard 모드에서만 유효한 주요 MAV_CMD
  • 드론에 시동걸기(MAV_CMD_COMPONENT_ARM_DISARM)
  • 이륙하기(MAV_CMD_NAV_TAKEOFF)
  • 이동하기(SET_POSITION_TARGET_GLOBAL_INT)
  • 이동하기(SET_POSITION_TARGET_LOCAL_NED)
  • 기수 방향과 속도 변경
  • [별첨]참고 자료
  • MAVLINK 신뢰성 보장
    • MAVLINK 신뢰성 보장
    • MAVLINK 2 메시지 서명
    • [참고]HMAC-SHA256이란?

🛠️Tech-Tip

2
  • MAVLink Router
  • 쿼드(QUAD) 자율주행 드론용 컴패니언컴퓨터 소프트웨어 – Jetson Orin-Nano 용 (Ver.3.1-Ubuntu 22.04)
카테고리 보기
  • Home
  • Docs
  • 픽스호크(Pixhawk) 기초
  • 고도(Altitude) 이해

고도(Altitude) 이해

6 min read

강좌 영상

PX4 문서에서는 “고도”라는 단어를 다양한 방식과 맥락에서 자주 사용합니다. 모든 “고도”가 같은 것을 의미하는 것은 아니며 주어진 상황에서 고도가 의미하는 바를 잘 이해하는 것이 예상되는 작동 및 동작을 이해하는 데 중요합니다.

메모

ORIGIN 및 HOME은 GPS에서 지상 초기화 중에 설정되며 일반적으로 동일한 위치이지만 사용자는 Mission Planner를 통해 비행 중에 HOME 위치를 이동할 수 있지만(다른 RTL 지점에 대해) 의도적으로 재설정하지 않는 한 Origin은 항상 동일하게 유지됩니다. .

고도의 정의(ALT)

위의 다이어그램에는 다양한 유형의 “고도”가 표시됩니다.

  • ASL: (평균) 해수면 위의 고도 – 세계의 평균 해수면 위의 거리로 표현되는 차량의 고도.
  • AGL: 지면 위 고도: 바로 아래에 있는 차량 위의 고도.
  • 상대: HOME/ORIGIN 위치의 고도 위의 상대 고도. 이것이 지상국과 OSD에 차량의 고도로 표시됩니다.
  • Terrain ALT: 지형 위치의 해수면 위 높이(asl). 여기에는 때때로 지형의 지상 고도에 대한 자연적 또는 인공적 추가가 포함되지만 항상 그런 것은 아닙니다.
  • 예상 ALT: 고도 제어 모드(비행기: FBWB/AUTO/GUIDED/CRUISE/LOITER/CIRCLE)에서 목표 ALT를 유지하거나 얻기 위해 차량의 고도 컨트롤러가 내부적으로 사용하는 ORIGIN 이상의 차량 상대 고도에 대한 자동조종장치의 추정치, 헬리콥터: 알홀드/서클/로이터/가이드/자동/드리프트)
  • Target ALT: 고도 제어 모드에서 원하는 고도. 파일럿 입력(예: ALTHOLD) 또는 내비게이션 컨트롤러(예: AUTO)에서

예상 및 목표 ALT

위의 단순화된 다이어그램은 ArduPilot에서 고도 제어가 구현되는 방법을 보여줍니다.

EKF 하위 시스템은 내비게이션 및 제어 시스템이 제대로 작동할 수 있도록 차량의 자세, 속도, 위치 및 고도 추정치를 생성하는 역할을 합니다. EKF는 IMU, GPS 및 BARO 센서 입력을 가져와 통합하여 이러한 추정치를 제공하며, 그 중 하나가 추정 ALT입니다.

그런 다음 차량의 고도 제어 시스템에 입력되어 고도 제어 모드에서 Target ALT를 일치시키려고 시도합니다.

Target ALT는 차량 모드에 따라 다양한 출처에서 나올 수 있습니다. 예를 들어 비행기의 FBWB 모드에서 피치 스틱은 목표 ALT를 높이거나 낮추는 반면 자동 모드에서는 웨이포인트로 이동할 때 내비게이션 컨트롤러가 웨이포인트를 향해 진행하면서 목표 ALT의 다양한 램프를 공급하여 해당 웨이포인트의 새로운 고도에 도달합니다. , 이전 경유지와 다른 경우.

고도 컨트롤러에서 대상 ALT는 EKF2_ALT_MODE=3 이 활성화된 경우 GCS 또는 SD 카드의 지형 데이터 및/또는 활성화된 경우 거리계 범위 내에서 지상 거리의 RangeFinder 고도 판독값으로 수정할 수도 있습니다 . 두 경우 모두 EKF가 작동하는 한 GCS HUD 또는 OSD에 표시된 고도는 예상 고도입니다(그렇지 않으면 HOME에 상대적인 BARO 고도를 사용함).

메모

지상 초기화 중에 EKF에서 원점 위치를 설정하기 전에 GPS ASL 고도가 표시되는 경우가 있습니다.

RangeFinder(RF)를 사용한 목표 ALT 수정

콥터

아래쪽을 향한 RangeFinder가 활성화되고 범위 내에 있는 경우 Target ALT는 Copter 및 Plane의 VTOL 모드에서 RF의 고도 측정을 사용하도록 수정됩니다.

예를 들어, Copter의 ALTHOLD에 있고 RangeFinder의 범위를 벗어나 30m에서 호버링하고 있습니다. Target ALT는 현재 예상 ALT로 설정되었으며 이를 유지하려고 합니다. 이제 스로틀 스틱을 사용하여 10m까지 하강하고 이제 RF 범위 내에 있습니다. 스틱을 놓으면 Target ALT가 RF 보고 고도로 설정됩니다. 예상 고도는 여전히 제어 출력을 조정하는 데 사용되고 있습니다.

차량이 1m 높이의 지상 물체 위로 이동하는 경우. 예상 ALT는 BARO, GPS ALT 등을 기반으로 하기 때문에 변경되지 않지만 목표 ALT는 지상까지의 거리가 1m 더 적은 RF 판독값으로 인해 1M 증가합니다. RF 고도의 모든 변경 사항은 Target ALT에 즉시 반영되므로 덜 정확한 Estimated ALT가 약간 잘못 변경되는 경우 RF는 Target ALT 조정을 통해 이를 즉시 효과적으로 취소하여 보다 정확한 고도 제어를 제공합니다.

RF의 측정값이 너무 빠르게 변경되거나(3개의 보고에 대해 >2m) RF가 범위를 벗어나면 무시되고 예상 ALT의 현재 고도가 새로운 목표 ALT로 설정됩니다. 이것은 빠르게 움직이는 RF 데이터로 급격한 상승/하강을 방지합니다. 또한 키가 큰 물체에 빠르게 접근하는 것과 같이 크고 빠른 변화가 필요한 추적은 영향을 미칠 수 있음을 의미합니다. 이러한 경우 물체 회피를 참조하십시오 .

이것은 ArduPilot에서 호출됩니다.Surface Tracking

선택적으로(일반적으로 실내용으로만 권장됨) 고도 추정을 위해 RF를 EKF의 추가 센서 소스로 사용할 수 있습니다. 이것은 일반적으로 사용 가능한 유일한 고도 센서가 RF인 경우에만 사용됩니다. 범위가 매우 제한되어 있고 정확도에 대한 환경적 영향을 더 많이 받기 때문입니다.

비행기

평면에서 고정 날개 모드를 사용할 때 RangeFinder 사용은 범위 내에 있고 RNGFND_LANDING 매개변수에 의해 활성화된 경우 다음으로 제한됩니다.

  • 착륙의 접근 및 플레어 전 단계에서 자동 착륙 중 활공 경사를 조정합니다 .
  • 하향 RF가 활성화되고 범위 내에 있는 경우 LGR_DEPLOY_ALT 또는 LGR_RETRACT_ALT 에 도달할 때 고도를 결정합니다 .
  • Q_LAND_FINAL_ALT 에 Q_LAND_FINAL_ALT에 도달 하면 하향 RF가 활성화된 경우 QuadPlane의 VTOL 랜딩에 도달합니다.
  • Q_ASSIST_ALT 미만인지 확인 중입니다 .
  • Q_VFWD_ALT 미만인지 확인합니다 .

지형 추종 데이터를 사용한 타겟 ALT 수정

Terrain Follow(지형 추적)가 활성화되고 활성화된 경우 차량 및 모드에 따라 이동할 때 현재 위치가 무엇이든 대상 ALT를 높이거나 낮추기 위해 지형 고도 변경이 사용됩니다. 자세한 내용은 평면에 대한 지형 추적 또는 Copter에 대한 지형 추적(자동, 유도 등)을 참조하십시오.

Copter의 경우 저고도에서 장애물 너머의 표면 추적을 얻기 위해 RangeFinder 사용과 결합할 수 있습니다 .


✅ 정확한 PX4 고도 추정 관련 파라미터

PX4에서 고도 추정 기준은 다음 두 가지 파라미터의 조합으로 설정됩니다:

1. EKF2_HGT_MODE (✔️ 고도 추정 기준을 정하는 핵심 파라미터)

값기준 고도설명
0Barometer(기본값) 기압계 기반 고도
1GPSGPS 절대고도 사용
2Range SensorRange Finder 기반 (저고도 사용)
3VisionVIO 기반 고도 (Z축)
4External외부 주입 고도 (e.g., RTK base)

🧠 이 값이 PX4에서 실제 EKF가 사용하는 고도 기준입니다

❓ Terrain 고도 기준을 쓰려면?

PX4는 직접적으로 terrain을 EKF의 메인 고도 기준으로 쓰지는 않습니다. 하지만 terrain 데이터를 보조적으로 사용해서 아래와 같이 활용할 수 있습니다:

✔️ 활용 방식

bottom_clearance 계산terrain + range sensorEKF에서 거리 센서와 지형 고도 조합
terrain 보조 추정기EKF2_RNG_AID = 1range finder로 terrain 추정을 보조
제어 기준MPC_ALT_MODE = 1지형 기준으로 고도 제어 (mission 등에서 사용됨)

✅ 정리: Terrain 고도를 EKF 기준으로 쓰고 싶다면?

PX4에서는 terrain을 EKF의 주 고도 기준으로 직접 설정할 수는 없지만, 다음과 같은 방식으로 조합해서 사용할 수 있습니다:

EKF 고도 기준EKF2_HGT_MODE = 2 (range) 또는 0 (baro)
지형 기반 제어MPC_ALT_MODE = 1 (terrain following)
보조 높이 추정EKF2_RNG_CTRL = 1

🎯 세 가지 고도 제어 방식 비교

Altitude Following고도 명령(또는 스틱 조작)대로 절대적 또는 상대적 고도를 유지
Terrain Following지형 표면을 따라 상대적인 지면 거리를 유지
Terrain Hold이륙한 위치에서의 지형 기준 고도를 유지 (고도 고정)

📊 3가지 고도 제어 모드 비교표

고도 기준고도 명령 또는 상대 고도 (local NED)지형 고도 + 상대 거리이륙 시 지형 고도
지형 반영❌ 반영 안 함✅ 실시간 반영⭕ 초기만 반영
용도일반적 GPS 비행, 미션, POSCTL 등산악지형 추적 비행지형 위 호버 유지
목표 고도 변경조작자 또는 미션에 따라 바뀜지형 변화 따라 자동 갱신고정됨
프레임MAV_FRAME_GLOBAL, LOCAL_NEDMAV_FRAME_GLOBAL_TERRAIN_ALT동일
QGC 적용 예시일반 Waypoint, 고도 100mTerrain-follow 명령POSCTL 고도 유지

🔍 쉽게 이해하는 비유

드론 명령“고도 100m로 가라”“지면에서 20m 띄워서 따라가라”“이 위치에서 고도 15m를 계속 유지해”
사람 걷기GPS로 해발 100m에 올라가라땅에서 항상 2m 띄워서 걸어라현재 위치에서 키 2m로 서 있어라
지형 대응❌ 무시✅ 대응❌ 이동 시 무시됨

✅ 실전에서의 선택 기준

고정 고도 미션 (평지)Altitude Following
산악 지형, 댐 등 고도 급변 지역Terrain Following
위치 유지하며 고도 유지Terrain Hold

✍️ 정리 요약

Altitude Following고도 명령 or 상대 고도❌ 없음기본적인 고도 제어 방식
Terrain Following지형 + 상대 거리✅ 실시간 대응Terrain 데이터를 따라 비행
Terrain Hold이륙 당시 지형 고도⭕ 초기만 대응Hover 시 높이 유지, 이동 시 지형 무시

업데이트된 날짜 2025년 11월 24일

당신의 감정은 어떤가요?

  • Happy
  • 보통
  • 슬픈

이 문서 공유 :

  • Facebook
  • X
  • LinkedIn
  • Pinterest

제공 BetterDocs

답글 남기기 응답 취소

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

© 2025 쿼드(QUAD) 드론연구소 - Kadence WP의 워드프레스 테마

  • 👨‍✈️ 초보 파일럿
  • 🎖️ 개발자
  • 🥇 전문가
  • 💎 다이아몬드
  • 🛠️ Tech-Tip
  • 📝 블로그
  • ⚠️ 저작권
Korean
English