콘텐츠로 건너뛰기
쿼드(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 프로그래밍
  • 이동하기(SET_POSITION_TARGET_GLOBAL_INT)

이동하기(SET_POSITION_TARGET_GLOBAL_INT)

3 min read

SET_POSITION_TARGET_GLOBAL_INT

SET_POSITION_TARGET_GLOBAL_INT 명령은 드론의목표 위치(WGS84 좌표), 속도, 방향 또는 선회율을 설정합니다. 이는 위치가 위도 및 경도 값으로 제공되고 고도가 집 또는 지형에 상대적인 해수면보다 높을 수 있다는 점을 제외하면 SET_POSITION_TARGET_LOCAL_NED 메시지와 유사합니다.

메시지 정의는 여기에서 찾을 수 있습니다.

명령 매개변수

명령 필드

설명

time_boot_ms

부팅 이후 보낸 사람의 시스템 시간(밀리초)

target_system

차량의 시스템 ID

target_component

비행 컨트롤러의 구성 요소 ID 또는 0

coordinate_frame

유효한 옵션은 다음과 같습니다.

  • MAV_FRAME_GLOBAL (0): 고도는해발 센티 미터입니다.
  • MAV_FRAME_GLOBAL_INT (5): 고도는해발 미터입니다.
  • MAV_FRAME_GLOBAL_RELATIVE_ALT (3): 고도는 홈 위의 센티미터 단위입니다.
  • MAV_FRAME_GLOBAL_RELATIVE_ALT_INT (6): alt는 홈 위의 미터 단위입니다.
  • MAV_FRAME_GLOBAL_TERRAIN_ALT (10): alt는 지형 위 센티미터 단위입니다.
  • MAV_FRAME_GLOBAL_TERRAIN_ALT_INT (11): alt는 지형 위 미터 단위입니다.

type_mask

차량에서 무시 해야 하는 필드를 나타내는 비트 마스크 (POSITION_TARGET_TYPEMASK 열거형 참조)

bit1:PosX, bit2:PosY, bit3:PosZ, bit4:VelX, bit5:VelY, bit6:VelZ, bit7:AccX, bit8:AccY, bit9:AccZ, bit11:yaw, bit12:yaw 비율

Pos, Vel 및/또는 Accel을 제공할 때 3축을 모두 제공해야 합니다. Pos, Vel 및 Accel 중 하나 이상을 제공해야 합니다(예: Yaw 또는 YawRate만 제공하는 것은 지원되지 않음).

  • 위치 : 0b110111111000 / 0x0DF8 / 3576(십진수)
  • 속도 : 0b110111000111 / 0x0DC7 / 3527(십진수)
  • 가속 사용 : 0b110000111000 / 0x0C38 / 3128 (십진수)
  • Pos+Vel 사용 : 0b110111000000 / 0x0DC0 / 3520(십진수)
  • Pos+Vel+Accel 사용 : 0b110000000000 / 0x0C00 / 3072(십진수)
  • 요 사용 : 0b100111111111 / 0x09FF / 2559(십진수)
  • 요레이트 사용 : 0b010111111111 / 0x05FF / 1535(십진수)

lat_int

위도 * 1e7

lon_int

경도 * 1e7

alt

해발 고도, 집 또는 지형(coordinate_frame 필드 참조)

vx

X 속도(m/s)(양수는 북쪽)

vy

Y 속도(m/s)(양수는 동쪽)

vz

Z 속도(m/s)(양수는 아래)

afx

X 가속도(m/s/s)(양수는 북쪽)

afy

Y 가속도(m/s/s)(양수는 동쪽)

afz

Z 가속도(m/s/s)(양수는 Down)

yaw

yaw 또는 라디안 방향(0은 전방)

yaw_rate

요레이트(rad/s)

메모

속도나 가속도 명령을 보내면 1초마다 다시 보내야 함(명령을 받지 않으면 3초 후 차량 정지)

예

다음은 이 명령을 테스트하기 위해 MAVProxy(일명 SITL)에 복사하여 붙여넣을 수 있는 몇 가지 예제 명령입니다. 이 명령을 실행하기 전에 다음을 실행 하십시오.

  • module load message
  • GUIDED 모드 변경
  • 암 스로틀
  • 이륙 10m

MAVProxy/SITL 명령의 예

설명

message SET_POSITION_TARGET_GLOBAL_INT 0 0 0 6 3576 -35.3621474 149.1651746 10 0 0 0 0 0 0 0 0

-35.36,149.16의 위도, 경도 및 집 위 10m까지 비행

message SET_POSITION_TARGET_GLOBAL_INT 0 0 0 5 3576 -35.3621474 149.1651746 600 0 0 0 0 0 0 0 0

-35.36,149.16의 위도, 경도 및 해발 600m까지 비행

message SET_POSITION_TARGET_GLOBAL_INT 0 0 0 11 3576 -35.3621474 149.1651746 10 0 0 0 0 0 0 0 0

-35.36,149.16의 위도, 경도 및 지형 위 10m까지 비행

message SET_POSITION_TARGET_GLOBAL_INT 0 0 0 6 3527 0 0 0 1 0 0 0 0 0 0 0

북쪽으로 1m/s로 비행

message SET_POSITION_TARGET_GLOBAL_INT 0 0 0 6 3135 0 0 0 0 0 0 1 0 0 0 0

북쪽으로 1m/s로 가속

message SET_POSITION_TARGET_GLOBAL_INT 0 0 0 6 2503 0 0 0 0 0 0 0 0 0 0.7854 0

북동쪽으로 회전(Yaw 대상 + 속도 0)

message SET_POSITION_TARGET_GLOBAL_INT 0 0 0 6 1479 0 0 0 0 0 0 0 0 0 0 0.174

시계 방향으로 10deg/sec로 회전(속도 0)

실습

이번에는 SET_POSITION_TARGET_GLOBAL_INT 명령을 사용하여 기체를 이동해 보겠습니다.

위도 30도, 경도 30도 위치로기체를 이동 시킵니다.

다음 코드를 movement.py 끝에 붙여 넣습니다.Copy

# set_position_target_global_int - move to lat 30, long 30, alt 20m
the_connection.mav.send(mavutil.mavlink.MAVLink_set_position_target_global_int_message(10, the_connection.target_system, 
                        the_connection.target_component, mavutil.mavlink.MAV_FRAME_GLOBAL_RELATIVE_ALT, 
                        int(0b110111111000), 30, 30, -20, 0,0,0,0,0,0,0,0))

# check response NAV_CONTROLLER_OUTPUT
while 1:
    msg = the_connection.recv_match(type='NAV_CONTROLLER_OUTPUT', blocking=True)
    print(msg)

# # check response NAV_CONTROLLER_OUTPUT
# while 1:
#     msg = the_connection.recv_match(type='LOCAL_POSITION_NED', blocking=True)
#     print(msg)

결과는 다음과 같습니다.

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

당신의 감정은 어떤가요?

  • Happy
  • 보통
  • 슬픈

이 문서 공유 :

  • Facebook
  • X
  • LinkedIn
  • Pinterest

제공 BetterDocs

답글 남기기 응답 취소

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

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

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