LoginSignup
1
0

More than 1 year has passed since last update.

MAVLink-rounterを使ってラズパイ経由でQGCとPixhawkを有線接続する

Posted at

目的

QGCとPixhawkを接続する場合、無線接続は事例が多いのですが有線接続は情報がなく、またCompanion Computerと呼ばれているラズパイなどの機体上のサブPCを経由する場合は更にまとまった情報が無いので、自分用のメモとして書いておきます。

使用した構成部品

<備考>

  • QGCが動けばMacはなんでもいいと思います(多分M2の実力の数%くらいしか使わない)。
  • ラズパイは手元に余っていた2Bを使いましたが、3Bでも4Bでも同じです。ドローンに載せる前提なので、無線LANやBluetoothが無い2Bの方が消費電力的に有利かな、というだけです。
  • Pixhawkはデバッグ用にAmazonで安く手に入るやつを選びました。外観からの判断ですがあまり質が良くない?飛行させるときはもうちょっとちゃんとしたものを購入します。

システム構成図

スクリーンショット 2023-01-11 16.38.35.png

  • ラズパイにMAVLink-routerというMAVLinkコマンドを任意のポートにバイパスしてくれるツールがあり、それを使ってQGCとPixhawk間のMAVLink通信を確立します。
  • ラズパイ-Pixhawk間のケーブルは自作する必要あり。TELEM2とラズパイのUARTをつなぐ。
  • Pixhawkの通信ボーレートは115200に設定。ボーレートは任意の値でよいが、Pixhawk上の設定とMAVLink-router実行時のシリアルポートのボーレートが揃っている必要がある。

設定

1)Mac上のLAN設定

Macに接続されている有線LANポートを以下のように設定
IPアドレス:192.168.100.5
サブネットマスク:255.255.255.0

2)QGC設定(通信リンク)

Ethという名前のTCPのポート5760への接続を作る。サーバーアドレスはラズパイのIPアドレス[192.168.100.2]を入れる。
スクリーンショット 2023-01-11 16.36.38.png

3)Pixhawkの設定

PixhawkをUSBでMacと接続して、QGCの設定画面からTelemetry2(SERIAL2)のシリアルボーレートを設定する。
スクリーンショット 2023-01-13 8.38.52.png

4)ラズパイ上のIPアドレス設定

/etc/dhcpcd.conf
interface eth0
static ip_address=192.168.100.2/24
static routers=192.168.100.1
noipv6

5)ラズパイ上のシリアルポート設定

/boot/config.txt
[all]
enable_uart=1
dtoverlay=disable-bt
  • シリアルポート有効
  • PL011をプライマリに変更(/dev/ttyAMA0、GPIO14/15)
  • Bluetooth無効

参照:ラズパイのシリアルポート設定

6)ラズパイ上でMAVLink-routerインストール

  • MAVLink-rounterのリポジトリをgit cloneする
  • リポジトリ READMEの「Debian/Ubuntu」のインストール方法を実行
    注)ラズパイにgitをインストールしたあとに以下「Fetch dependencies」のコマンドを実行する必要があるので注意が必要
git submodule update --init --recursive

7)ラズパイ-Pixhawk間のケーブル接続

  • MAVLink通信(UART)用ケーブルを作成しPixhawkのTELEM2に接続
  • 機体が無い場合はPixhawkの電源をUSBポートから入れる。パソコンから給電するとPixhawkが通信してしまうので、モバイルバッテリーなどで電源のみ供給したほうがよい
  • TELEM2のTxをラズパイのRxに、TELEM2のRxをラズパイのTxに接続する
    スクリーンショット 2023-01-13 8.31.50.png
    スクリーンショット 2023-01-13 8.31.38.png
    スクリーンショット 2023-01-13 8.54.28.png

参照1:Pixhawkピン配置
参照2:ラズパイピン配置

8)Mac-ラズパイ LAN接続

LANケーブルで両者を接続

そしてとうとう通信開始!

1)ラズパイ上でMAVLink-routerを起動

以下コマンド実行してLANとMAVLinkをルーティングする。

mavlink-routerd -e 192.168.100.2:14550 /dev/ttyAMA0:115200

2)QGCでMAVLink-routerに接続

通信リンクで先程設定したEthという項目があるので、それをクリックして下側の「接続」を押す
スクリーンショット 2023-01-13 8.45.12.png

QGCがしゃべりはじめて通信が開始されたら成功!

備考

今回のやり方だとUDPのポート14550ではなくTCPのポート5760にMacから接続している(上記MAVLink-routerのコマンドを実行すると、自動的にTCPポート5760のサーバーが起動する)。UDPではなぜかうまくいかなかった。

思い返すと結構いろんな手順を踏む必要がありました。成功してよかった。。。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0