PX4 Offboard 모드에서만 유효한 주요 MAV_CMD

저작권: 쿼드(QUAD) 드론연구소 https://www.youtube.com/@quad-robotics / Updated: 2025-04-30

아래 명령들은 오직 Offboard 모드에서만 "accept"되고 수행되며, 다른 모드에서는 "Command Denied" 또는 무시됨:


🔹 1. 위치/속도/가속도/자세 제어 관련 명령

MAV_CMD
설명
비고

MAV_CMD_DO_SET_POSITION

위치 직접 제어

비공식 / 내부 구현 필요

MAV_CMD_DO_SET_POSITION_LOCAL

로컬 프레임 위치 설정

NED 또는 ENU 기준

MAV_CMD_DO_SET_VELOCITY

속도 제어

PX4 자체 구현 없음 (속도 토픽 사용 권장)

MAV_CMD_DO_SET_VELOCITY_LOCAL

로컬 속도 제어

MAVROS setpoint_velocity 대응

MAV_CMD_DO_SET_ATTITUDE

자세 설정 (Roll/Pitch/Yaw)

MAVROS setpoint_attitude 대응

MAV_CMD_DO_SET_ATTITUDE_TARGET

자세 + 스러스트 제어

Attitude target과 yaw_rate

MAV_CMD_DO_SET_ACTUATOR

직접 actuator 제어

실험적


🔹 2. Offboard 모드 유지/전환 관련

MAV_CMD
설명

MAV_CMD_DO_SET_MODE

모드를 OFFBOARD로 설정 (모드 전환용)

MAV_CMD_NAV_GUIDED_ENABLE

수동 guided 제어 활성화 (Offboard 지원용)


🔹 3. MAVROS / MAVSDK에서 자주 사용하는 연속 명령 흐름

이건 직접 MAV_CMD는 아니지만, Offboard 모드에서 이 토픽 메시지만 인식합니다:

메시지 타입
목적

SET_POSITION_TARGET_LOCAL_NED

위치/속도/가속도/yaw 제어 (주로 사용)

SET_ATTITUDE_TARGET

자세/스로틀 제어

SET_ACTUATOR_CONTROL_TARGET

직접 모터/서보 제어 (고급용)


✅ 반드시 Offboard 모드일 때만 수신되는 이유

PX4는 다음 조건이 만족해야만 Offboard 명령을 수행합니다:

조건
설명

현재 모드 = OFFBOARD

commander mode offboard 또는 MAV_CMD_DO_SET_MODE

Offboard 메시지 연속 수신

예: SET_POSITION_TARGET_* 100ms 이하 주기

safety 상태 OK

Armed 상태에서만 움직임 수행


✅ 예제: MAVROS Offboard 제어 중 유효한 명령

  • SET_POSITION_TARGET_LOCAL_NED

  • MAV_CMD_DO_SET_MODE (PX4_CUSTOM_MAIN_MODE=OFFBOARD)

  • SET_ATTITUDE_TARGET

그 외의 일반 MAV_CMD_NAV_TAKEOFF, MAV_CMD_NAV_WAYPOINT 등은 Auto 모드 전용이며 Offboard에서는 무시됩니다.


✍️ 요약

범주
Offboard 모드 전용 MAV_CMD

위치/속도 제어

MAV_CMD_DO_SET_POSITION_LOCAL, MAV_CMD_DO_SET_VELOCITY_LOCAL

자세 제어

MAV_CMD_DO_SET_ATTITUDE_TARGET

모드 전환

MAV_CMD_DO_SET_MODE (→ OFFBOARD), MAV_CMD_NAV_GUIDED_ENABLE

기타

SET_POSITION_TARGET_*, SET_ATTITUDE_TARGET 메시지들은 Offboard 모드에서만 실행됨

Last updated