콘텐츠로 건너뛰기
쿼드(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
  • MAVLink-Python 프로그래밍
  • MAV_CMD

MAV_CMD

4 min read

개요

MAV_CMD 메세지는 자동 비행 모드에서 기체에 줄 수 있는 제어명령 목록 입니다.

MAVLINK Common Message Set (common.xml) | MAVLink Guidemavlink.io

MAV_CMD는 크게 COMMAND_INT 와 COMMAND_LONG 타입이 있으며, 드론에 어떠한 명령을 보낼때 사용합니다.

COMMAND_INT 는 GPS 좌표 또는 고도 정보가 포함된 명령을 보낼 때 사용해야 합니다. 이는 위치 및 고도 값에 대해 정확한 좌표 프레임을 지정할 수 있기 때문입니다.

COMMAND_INT

Field Name

Type

Values

Description

target_system

uint8_t

System ID

target_component

uint8_t

Component ID (0 : 모든 컴포넌트)

frame

uint8_t

MAV_FRAME

좌표계

command

uint16_t

MAV_CMD

Command ID, see MAV_CMD enum

current

uint8_t

Not used (set 0)

autocontinue

uint8_t

Not used (set 0)

param1

float

PARAM1

param2

float

PARAM2

param3

float

PARAM3

param4

float

PARAM4

param5

int32_t

Local: x position in meters * 1e4, Global: 위도 * 10^7

param6

int32_t

Local: y position in meters * 1e4, Global: 경도 * 10^7

param7

float

z position: Global: 고도 m (좌표계에 따라 절대고도, 상대고도)

COMMAND_LONG은 매개변수 5와 6에서 부동소수점 값을 보내는 데 사용해야 합니다. 이러한 값은 COMMAND_INT에서 보내면 정수로 잘립니다.

COMMAND_LONG

Field Name

Type

Values

Description

target_system

uint8_t

System ID

target_component

uint8_t

Component ID (0 : 모든 컴포넌트)

command

uint16_t

MAV_CMD

Command ID, see MAV_CMD enum

confirmation

uint8_t

0: First transmission of this command. 1-255: Confirmation transmissions

param1

float

Parameter 1 (for the specific command).

param2

float

Parameter 2 (for the specific command).

param3

float

Parameter 3 (for the specific command).

param4

float

Parameter 4 (for the specific command).

param5

float

Parameter 5 (for the specific command).

param6

float

Parameter 6 (for the specific command).

param7

float

Parameter 7 (for the specific command).

COMMAND_INT 시퀀스

요청은 COMMAND_INT 내에 인코딩된 지상국에서 전송됩니다 . 드론은 요청을 처리하고 결과를 나타내는 COMMAND_ACK 로 신속하게 응답합니다. 결과(MAV_RESULT)는 명령이 승인되었거나( COMMAND_ACK.result=MAV_RESULT_ACCEPTED), 승인되어 진행 중이거나(MAV_RESULT_IN_PROGRESS) 일부 이유 코드와 함께 거부 됩니다. “MAV_RESULT_ACCEPTED“은 명령이 유효하고 플라이트 스택이 명령이 완료되었음을 의미하는 것이 아니라 그에 대한 조치를 시도함을 의미합니다. 대부분의 명령은 “MAV_RESULT_ACCEPTED“을 반환합니다.

COMMAND_ACK.result_param2는명령별 enum에 명령 거부 이유에 대한 추가 정보를 포함할 수도 있습니다.

ACK를 받지 못한 경우 GCS는 COMMAND_INT를다시 보냅니다.

COMMAND_LONG 시퀀스

명령이 드롭되면 발신자는 confirmation 필드를 증가해야 합니다.

장기 실행 명령

일부 명령은 오래 실행 되며 즉시 완료할 수 없습니다. 드론은 COMMMAND_ACK 메시지를 COMMAND_ACK.result=MAV_RESULT_IN_PROGRESS 전송하여 진행률COMMMAND_ACK.progress을 보고하고 진행률을 ([0-100] 퍼센트 완료, 진행률이 제공되지 않은 경우 255) 백분율로 표시합니다. 작업이 완료되면 드론은 작업의 최종 결과 ( MAV_RESULT_ACCEPTED, MAV_RESULT_FAILED, MAV_RESULT_CANCELLED)를 포함하는 COMMMAND_ACK로종료해야 합니다.

장기 실행 작업은 COMMAND_CANCEL 메시지를 전송하여 취소할 수 있습니다 . 드론은 작업을 취소하고 COMMAND_ACK(COMMAND_ACK.result=MAV_RESULT_CANCELLED)를 보내 시퀀스를 완료해야 합니다.

  • 취소가 되지 않으면 드론은 완료될 때까지 진행률 업데이트를 계속 보낼 수 있습니다.
  • 시퀀스가 이미 완료되었거나 유휴 상태이면 취소 명령을 무시 합니다.

진행률 메시지MAV_RESULT_IN_PROGRESS가 내보내지는 속도는 시스템에 따라 다릅니다.

진행 또는 완료 업데이트를 기다리는 동안 시간 초과가 트리거되면 GCS는 시퀀스를 종료(유휴 상태로 돌아가기)하고 적절한 경우 사용자에게 알려야 합니다.

특정 장기 실행 명령 의 한 인스턴스만 한 번에 실행할 수 있습니다. 장기 실행 작업을 다시 시작하려면 먼저 기존 명령을 취소해야 합니다!

이 프로토콜은 수신 플라이트 스택의 상태 시스템에서 지원하는 경우 서로 다른 장기 실행 명령을 병렬로 실행할 수 있습니다.

결과 확인

COMMAND_ACK ( #77 )

Field Name

Type

Units

Values

Description

command

uint16_t

MAV_CMD

Command ID (of acknowledged command).

result

uint8_t

MAV_RESULT

Result of command.

progress **

uint8_t

%

The progress percentage when result is MAV_RESULT_IN_PROGRESS. Values: [0-100], or UINT8_MAX if the progress is unknown.

result_param2 **

int32_t

Additional result information. Can be set with a command-specific enum containing command-specific error reasons for why the command might be denied. If used, the associated enum must be documented in the corresponding MAV_CMD (this enum should have a 0 value to indicate “unused” or “unknown”).

target_system **

uint8_t

System ID of the target recipient. This is the ID of the system that sent the command for which this COMMAND_ACK is an acknowledgement.

target_component **

uint8_t

Component ID of the target recipient. This is the ID of the system that sent the command for which this COMMAND_ACK is an acknowledgement.

업데이트된 날짜 2025년 12월 08일

당신의 감정은 어떤가요?

  • Happy
  • 보통
  • 슬픈

이 문서 공유 :

  • Facebook
  • X
  • LinkedIn
  • Pinterest

제공 BetterDocs

답글 남기기 응답 취소

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

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

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