이전 게시글에서는 MAVSDK를 사용하는 방법에 대해서 설명하였습니다.
이번에는, MAVlink Router를 이용해서 Endpoint에서 MAVlink 데이터를 수신하는 방법에 대해서 설명하겠습니다.
1. 왜 MAVlink Router를 사용하는가?
FC를 Offboard 모드로 사용하기 위해선 Jetson, Raspberry pi등의 Companion Computer가 필요합니다.
그러면, "PC에서 드론의 상태를 어떻게 볼 것이고, Companion Computer를 어떻게 접속할까?" 에 대해 생각해 볼 필요가 있습니다.
PC(QGC)에서 드론(PX4)으로 접속하기 위해선 드론이 현재 상태(Mavlink Data)를 PC의 특정 포트로 보내주어야 합니다.
PC에서 Companion Computer에 접속하여 Offboard 명령을 주기 위해서는 SSH등으로 Companion Computer에 접속하여야 합니다.
그러면, PC <-> 드론
PC <-> Companion Computer
2개의 통신 링크가 필요합니다.
하지만
Drone <-> Companion Computer <-> PC
와 같이 구성하고 Companion Computer가 PC와 드론의 중간다리 역할을 해준다면 시스템이 매우 간단해집니다.
그 중간다리 역할을 해주는 것이 MAVlink Router입니다.
2. 드론의 통신 시스템
MAVlink Router를 사용한 드론의 통신 시스템을 그림으로 간단히 설명해보자면 다음과 같이 표현될 수 있습니다.

그러면, PC에서 Drone의 MAVlink Data를 받아오기 위해서 Companion Computer가 Bridge역할을 해줘야 합니다.
UART로 입 출력 되는 MAVlink 데이터를 PC로 전달해주어야 정상적으로 PC에서 드론의 상태를 볼 수 있습니다.
MAVlink Router를 이용하면 각 Endpoint간에 통신 프로토콜을 선택해 MAVlink 데이터를 주고 받게 할 수 있습니다.
3. MAVlink Router SETUP
설치는 Companion Computer에서 진행합니다.
git clone https://github.com/mavlink-router/mavlink-router.git
cd mavlink-router
git submodule update --init --recursive
제가 사용하는 Companion Computer는 apt 로 meson을 설치하면 0.53으로 설치되어 그 이상의 버전을 다운받기 위해서는 직접 바이너리를 다운 받고 적용해주어야 했습니다.
mkdir meson
cd meson
wget https://github.com/mesonbuild/meson/releases/download/0.64.1/meson-0.64.1.tar.gz
tar -xzf meson-0.64.1.tar.gz
export MESON_PATH=~/meson
cp meson.py meson
chmod +x meson
sudo ln -s $MESON_PATH/meson /usr/bin/meson
echo 'export PATH=$PATH:$MESON_PATH' >> ~/.bashrc
source ~/.bashrc
이후 meson과 ninja를 이용해 Build후 install합니다.
meson setup build .
ninja -C build
sudo ninja -C build install
conf파일을 생성합니다.
nano test.conf
[UartEndpoint Telemetry_Drone1]
Device = /dev/ttyTHS0
Baud = 921600
[UdpEndpoint qgc_pc]
Mode = Normal
Address = 192.168.0.1
Port = 14540
여기서 Device는 Companion에 연결된 UART port를 선택하면 됩니다.
mavlink-routerd -c test.conf
해당 커맨드를 이용해 mavlink router를 작동시킵니다.
이와 같은 과정으로 PC와 Drone을 연결할 수 있습니다.
'드론 > PX4' 카테고리의 다른 글
| #4 SITL 환경에서 ROS Camera Topic을 이용해 Aruco Marker 검출하기 (0) | 2026.05.24 |
|---|---|
| #3 uXRCE-DDS와 ROS2를 활용한 드론 경로 가시화 (0) | 2026.05.10 |
| #1 MAVSDK 환경구성 및 Offboard 예제 (0) | 2026.04.25 |
| #0 PX4 개발환경 구성 (WSL2와 Ubuntu) (0) | 2026.04.13 |