PX4 Offboard 모드에서만 유효한 주요 MAV_CMD
저작권: 쿼드(QUAD) 드론연구소 https://www.youtube.com/@quad-robotics / Updated: 2025-04-30
아래 명령들은 오직 Offboard 모드에서만 "accept"되고 수행되며, 다른 모드에서는 "Command Denied" 또는 무시됨:
🔹 1. 위치/속도/가속도/자세 제어 관련 명령
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_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에서는 무시됩니다.
✍️ 요약
위치/속도 제어
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