🚀
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
  • ✅ 6️⃣ 빌드된 mavsdk_server를 시스템에서 사용 가능하도록 이동
  • ✅ 7️⃣ MAVSDK Server 자동 실행 설정 (선택)
  • MAVSDK-Python 코드 설정

MAVSDK Server

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

MAVSDK는 내부적으로 gRPC를 사용하므로, 윈도우에서 리눅스에 있는 PX4-SITL에 MAVSDK로 실행을 해야하는 경우와 같이 리모트 MAVSDK를 사용할때는 MAVSDK-SERVER를 사용해야 합니다.

1️⃣ 의존 패키지 설치 (필요한 라이브러리 설치)

sudo apt update && sudo apt upgrade -y
sudo apt install -y cmake ninja-build g++ git \
                   protobuf-compiler libprotobuf-dev \
                   libgrpc++-dev libgrpc-dev \
                   libssl-dev curl unzip

✅ 필수 라이브러리 설치 완료!


2️⃣ MAVSDK 소스 코드 다운로드

git clone https://github.com/mavlink/MAVSDK.git --recursive
cd MAVSDK

✅ 소스 코드 다운로드 완료!


3️⃣ CMake 설정 (MAVSDK Server 빌드 활성화)

기본적으로 mavsdk_server는 자동으로 빌드되지 않으므로, CMake 옵션에서 -DBUILD_MAVSDK_SERVER=ON을 추가해야 합니다.

cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=OFF -DBUILD_MAVSDK_SERVER=ON -Bbuild/default -S.

✅ 이제 mavsdk_server가 포함된 빌드 구성이 생성되었습니다.


4️⃣ MAVSDK Server 빌드

MAVSDK Server를 8개의 CPU 코어를 사용하여 병렬 빌드합니다.

cmake --build build/default -j8

✅ 빌드가 정상적으로 완료되면 mavsdk_server 실행 파일이 생성됩니다! 🎉


5️⃣ MAVSDK Server 실행

빌드된 mavsdk_server 실행 파일은 build/default/src/mavsdk_server/에 있습니다.

cd ~/mavsdk/build/default/src/mavsdk_server
./mavsdk_server -p 50051

✅ 이제 MAVSDK Server가 실행됩니다!


✅ 6️⃣ 빌드된 mavsdk_server를 시스템에서 사용 가능하도록 이동

빌드된 mavsdk_server를 /usr/local/bin/에 복사하여 어디서나 실행 가능하도록 설정합니다.

sudo cp ~/mavsdk/build/default/src/mavsdk_server/src/mavsdk_server /usr/local/bin/

이제 터미널에서 다음 명령어로 MAVSDK Server를 실행할 수 있습니다.

mavsdk_server -p 50051

✅ 이제 MAVSDK Server가 어디서나 실행됩니다!


✅ 7️⃣ MAVSDK Server 자동 실행 설정 (선택)

부팅할 때 MAVSDK Server가 자동으로 실행되도록 systemd 서비스를 설정할 수 있습니다.

🔹 1. systemd 서비스 파일 생성

sudo nano /etc/systemd/system/mavsdk_server.service

📌 아래 내용을 복사하여 붙여넣고 저장하세요.

[Unit]
Description=MAVSDK Server
After=network.target

[Service]
ExecStart=/usr/local/bin/mavsdk_server -p 50051
Restart=always
User=$USER

[Install]
WantedBy=multi-user.target

🔹 2. 서비스 등록 및 실행

sudo systemctl daemon-reload
sudo systemctl enable mavsdk_server
sudo systemctl start mavsdk_server

✅ 이제 MAVSDK Server가 부팅할 때 자동 실행됩니다!

MAVSDK-Python 코드 설정

현재 코드에서 mavsdk_server_address와 system_address 설정이 올바르지 않습니다. MAVSDK Server는 **gRPC(50051)**로 통신하고, PX4는 **UDP(14540)**로 MAVSDK Server와 연결됩니다.

🔹 올바른 코드 설정 (PX4와 MAVSDK Server가 같은 컴퓨터에 있을 경우)

python복사편집drone = System(mavsdk_server_address="172.21.77.220", port=50051)  # MAVSDK Server의 gRPC 포트로 연결
await drone.connect()  # system_address 생략 (자동 감지)

✅ 이제 MAVSDK Server를 통해 PX4와 연결됩니다.

Previous문제 해결Next교육 안내

Last updated 2 months ago