🚀
PX4 - MAVSDK Python 프로그래밍
  • MAVSDK 개요
  • 프로그래밍 전제 조건
  • MAVSDK Python 개발 환경 설정
  • MAVSDK 라이브러리 클래스
  • Python "asyncio" 이해
  • MAVSDK-Python 샘플 프로그램 분석
  • OFFBOARD 모드 이해하기
  • OFFBOARD 위치 제어 (NED 기준)
  • OFFBOARD 속도 제어 (BODY 기준)
  • OFFBOARD 속도 제어 (NED 기준)
  • OFFBOARD 위치, 속도 제어 (NED 기준)
  • Keyboard 입력을 이용한 기체 이동
  • 문제 해결
  • MAVSDK Server
  • 교육 안내
Powered by GitBook
On this page
  • 전제 사항
  • MAVLink 메시지
  • Copter/VTOL
  • OFFBOARD 관련 PX4 파라메터

OFFBOARD 모드 이해하기

저작권: 쿼드(QUAD) 드론연구소 https://smartstore.naver.com/maponarooo

PreviousMAVSDK-Python 샘플 프로그램 분석NextOFFBOARD 위치 제어 (NED 기준)

Last updated 6 months ago

OFFBOARD 모드에서 드론은 컴패니언 컴퓨터와 같이 비행 스택(FC) 외부에 있는 소스에서 제공하는 위치, 속도, 가속도, 자세, 자세 속도 또는 추력/토크 설정점(Setpoint)을 따릅니다. 설정점은 MAVLink(또는 MAVSDK 와 같은 MAVLink API)를 사용하여 제공될 수 있습니다. (또는 ROS 2를 사용합니다.)

PX4에서는 외부 컨트롤러가 지원되는 MAVLink setpoint 메시지 또는 ROS 2 메시지를 스트리밍하여 연속 2Hz "Heart-beat" 신호를 제공해야 합니다. PX4는 1초 이상 신호를 수신한 후에만 오프보드 제어를 활성화하고 신호가 중지되면 제어권을 다시 얻습니다.

메모

  • 이 모드에는 위치 또는 자세 정보가 필요합니다(예: GPS, Optical-Flow, VIO, Mocap 센서로 부터).

  • 모드 변경을 제외하고는 RC 제어가 비활성화됩니다( COM_RC_IN_MODE 매개변수를 4 스틱 입력 비활성화로 설정하면 수동 컨트롤러 없이도 비행할 수 있습니다).

  • 차량은 오프보드 모드로 무장하거나 비행 시 오프보드 모드로 전환하기 전에 이미 MAVLink 설정점(Setpoint) 메시지 또는 ROS 2 OffboardControlMode 메시지 스트림을 수신하고 있어야 합니다 .

  • OffboardControlModeMAVLink 메시지가 2Hz보다 큰 속도로 수신되지 않으면 차량은 오프보드 모드를 종료합니다 .

  • MAVLink가 허용하는 모든 좌표 프레임과 필드 값이 모든 설정점 메시지와 차량에 지원되는 것은 아닙니다. 지원되는 값만 사용되도록 아래 섹션을 주의 깊게 읽어보세요.

전제 사항

OFFBOARD 모드는 위치, 속도, 가속도, 자세, 자세 속도 또는 추력/토크 설정점을 설정하여 차량 이동 및 자세를 제어하는 ​​데 사용됩니다.

PX4는 외부 컨트롤러가 정상이라는 증거로 MAVLink 설정점 메시지 스트림 또는 2Hz의 ROS 2 OffboardControlMode 메시지를 수신해야 합니다. PX4가 오프보드 모드로 활성화되거나 비행 시 오프보드 모드로 전환되기 전에 스트림이 최소 1초 동안 전송되어야 합니다. 외부 제어 중에 속도가 2Hz 아래로 떨어지면 PX4는 시간 초과( ) 후 오프보드 모드에서 전환하고 착륙을 시도하거나 다른 안전 조치를 수행합니다. 동작은 RC 제어 가능 여부에 따라 달라지며 매개변수에 정의됩니다.

MAVLink를 사용할 때 설정점 메시지는 외부 소스가 "활성"임을 나타내는 신호와 설정점 값 자체를 모두 전달합니다. 이 경우 위치를 유지하려면 차량이 현재 위치에 대한 Setpoint 스트림을 수신해야 합니다.

ROS 2를 사용할 때 외부 소스가 살아 있다는 증거는 OffboardControlMode 메시지 스트림을 통해 제공되는 반면, 실제 설정점은 와 같은 설정점 uORB 항목 중 하나에 게시하여 제공됩니다. 이 경우 위치를 유지하려면 차량이 OffboardControlMode스트림을 수신해야 합니다.

오프보드 모드는 매우 제한된 MAVLink 명령 및 메시지 세트만 지원합니다. 이륙, 착륙, RTL 같은 작업은 적절한 모드를 사용하여 가장 잘 처리될 수 있습니다. 업로드, 다운로드 미션과 같은 작업은 모든 모드에서 수행할 수 있습니다.

MAVLink 메시지

다음 MAVLink 메시지와 특정 필드 및 필드 값은 지정된 프레임에 허용됩니다.

Copter/VTOL

    • 다음 입력 조합이 지원됩니다.

      • 위치 지정치( x, y, z에만 해당 )

      • 속도 설정값( vx, vy, vz에만 해당 )

      • 가속도 설정값( afx, afy, afz에만 해당 )

      • 위치 설정점 및 속도 설정점(속도 설정점은 피드포워드로 사용되며 위치 컨트롤러의 출력에 추가되고 결과는 속도 컨트롤러의 입력으로 사용됩니다.)

      • 위치 지령치 및 속도 지령치 및 가속도(속도 및 가속도 지령치는 피드포워드로 사용됩니다. 속도 지령치는 위치 제어기의 출력에 추가되고 결과는 속도 제어기에 대한 입력으로 사용됩니다. 가속도 지령치는 피드포워드에 추가됩니다. 속도 컨트롤러의 출력과 추력 벡터를 계산하는 데 사용되는 결과).

    • 다음 입력 조합이 지원됩니다.

      • 위치 지령치( lat_int, lon_int, alt에만 해당 )

      • 속도 설정값( vx, vy, vz에만 해당 )

      • 추력 설정값( afx, afy, afz에만 해당 )

        메모

        가속도 설정점 값은 정규화된 추력 설정점을 생성하기 위해 매핑됩니다(즉, 가속도 설정점은 "적절하게" 지원되지 않습니다).

      • 위치 설정점 및 속도 설정점(속도 설정점은 피드포워드로 사용되며 위치 컨트롤러의 출력에 추가되고 결과는 속도 컨트롤러의 입력으로 사용됩니다.)

    • 다음 입력 조합이 지원됩니다.

      • SET_ATTITUDE_TARGET.q추력 설정값( )을 사용한 자세/방향( SET_ATTITUDE_TARGET.thrust).

      • 추력 설정값(SET_ATTITUDE_TARGET.thrust)을 사용한 Body_Rate( SET_ATTITUDE_TARGET .body_roll_rate ,.body_pitch_rate, .body_yaw_rate )입니다

OFFBOARD 관련 PX4 파라메터

오프보드 모드는 다음 파라메터의 영향을 받습니다.

파라메터

설명

오프보드 연결이 끊어졌을 때 오프보드 손실 안전 장치를 트리거하기 전에 기다리는 시간 초과(초)( COM_OBL_RC_ACT)

오프보드 제어가 상실된 경우 전환할 비행 모드(값: - 0: 위치 , 1: 고도 , 2: 수동 , 3: *복귀, 4: *Land*).

RC 손실이 무시되고 비상 안전 조치가 트리거되지 않는 모드를 지정합니다. 2오프보드 모드에서 RC 손실을 무시하도록 비트를 설정합니다 .

PX4는 다음 coordinate_frame값만 지원합니다: 및

PX4는 다음 coordinate_frame값만 지원합니다:

멀티콥터(또는 MC 모드의 VTOL)에서 스틱을 움직이면 모드가 로 변경되는지 여부를 제어합니다 . 기본적으로 오프보드 모드에서는 활성화되어 있지 않습니다.

로 전환되는 스틱 이동량입니다 ( 활성화된 경우).

OffboardControlMode
COM_OF_LOSS_T
COM_OBL_RC_ACT
TrajectorySetpoint
SET_POSITION_TARGET_LOCAL_NED
MAV_FRAME_LOCAL_NED
MAV_FRAME_BODY_NED
SET_POSITION_TARGET_GLOBAL_INT
MAV_FRAME_GLOBAL
SET_ATTITUDE_TARGET
COM_OF_LOSS_T
COM_OBL_RC_ACT
COM_RC_OVERRIDE
위치 모드
COM_RC_STICK_OV
위치 모드
COM_RC_OVERRIDE가
COM_RCL_EXCEPT