© 2015 Drone Japan All Rights Reserved.

ArduPilot開発のための実機を作る(MAVProxy活用編)

December 3, 2017

フライトコントローラー(以降、FC)としてNavio2を活用した実機組み立て記事の待望の続編です。お待たせしました。

(まだまだ不定期更新で続編はありますよ?)

 

■まえふり

 機体制作の記事をみてNavio2で実機を作った方から様々なフィードバックをいただきました。嬉しい限りです。そんな中で、GCSの接続に関してやや複雑で聞かれることが多かったのでもっと簡単にする、という点にフォーカスをおいて記事にまとめていきたいと思います。簡単になればもっとNavio2ユーザが増えるはずだ。。

 ご存知のようにNavio2はRaspberry Pi 2/3(以降、RPi)をベースにしています。それが一番Navio2の強みでもあると考えています。以前の記事でNavio2をAP化して、RPiをネットワークに接続しなくてもいいようにしました。その際、スクリプトでGCSが動いているPC(以降、PC)のIPアドレスを指定していました。ですが、AP化したRPiに接続したPCのIPアドレスはDHCPで設定されるため接続できなくなることが発生していました。固定IPにしたり、PCを変えないようにして同じIPアドレスがもらえるようにするなど工夫はできますが不便には変わりはないです。接続できなくなるとSSHでRPiにログインしてスクリプトを書き換えてFCを再起動して、、、っていう面倒な作業をなくしたい。まえふりが長くなりました、これが今回の課題です。

 

■目指したいこと

 【構成】AP化Navio2 <---(Wi-Fiで直接接続)---> PC/タブレット

 ★新しい点★

  接続したPC/タブレットのIPアドレスを気にすることなく接続できること。

  MAVProxyを利用してこれを実現したいと思います。

 

 

■MAVProxyについて

 MAVProxyはコマンドライン、コンソールベースのGCSです。お馴染みのMission PlannerやQGroundControl(以降、QGC)などと同じ部類です。最低限のGUIしか提供されていませんが、様々なOSで動作します。もちろんRPi上でも動作します。

 ドキュメントはDOCをご覧ください。

 

■手順

【事前確認】

 ・筆者はapsyncというユーザを作成して作業しています。

 ・手順0はRPi標準のユーザ名piとしています。

 

【必要なもの】

 ・Navio2を使った実機(AP化済み)

 ・MicroUSBケーブル(RPi給電用)

 ・LANケーブル(RPiをネットワークに接続する用)※任意だけどおすすめ

 ・SSHリモート接続可能なPC(RPi設定用)

 ・タブレット(動作確認用)※任意

 

【手順0:事前準備】

 [ルータ]  <--LANケーブル-->  [RPi]  <--MicroUSB-->  [PC]

 設定中はパッケージのインストールが必要なのでRPiをLANケーブルでネットに接続しておいた方が便利です。Avahiデーモンが動いているならリモートアクセスも便利です。次のようなコマンドで接続できると思います。

 $ ssh pi@navio.local ※アットマーク以降はIPアドレスでも問題ないです。

 

 LANケーブル接続したあとのRPiのIPアドレスが分からないと思います。中編の記事を参考にされている方であれば、AP化したNavio2にいったん無線で接続してIPアドレスを調べてみてください。

 $ ssh pi@192.168.100.1

 $ ifconfig

  ※eth0のIPアドレス表示をご確認ください。

 IPアドレスが分かれば以降は、ssh pi@192.168.xx.xxのような形式で接続できます。

 

【手順1:arducopter-quad起動スクリプトの修正】

 ※ご自分の環境に読み替えてください。
 コプターの起動スクリプト(この記事では/home/pi/fc/start.shにある前提)を以下のようにします。

 -Aオプション:Serial0を127.0.0.1:14550にボーレート115200でローカルに向けます。

 

 

【手順2:APSyncのスクリプトを使ってMAVProxyの起動環境設定】

 手動でMAVProxyだけインストールしてもいいですが、今後のためにAPSyncの設定スクリプトを活用します。APSyncについてはこちらをご覧ください。

 次のコマンドで設定していきます。環境によってすんなりインストールできないかもしれません。フィードバックいただければ幸いです。

 

 $ cd && mkdir GitHub && cd GitHub

 $ git clone https://github.com/ArduPilot/companion.git

 $ cd companion/RPI2/Raspbian

 $ sudo ./2_install_packages.sh

 $ sudo ./5_setup_mavproxy.sh

 $ less /etc/rc.local

  ※確認するコマンドは何でも大丈夫です。catでもmoreでもOKです。赤枠線内のようにrc.localファイルに起動スクリプトが呼び出されていることを確認してください。「~apsync」の部分はご自分のユーザ名になっているはずです。

 

次にMAVProxyの起動スクリプトを修正します。次の画像のように修正します。

 $ cd

 $ vi start_mavproxy/start_mavproxy.sh

  ※お好きなエディタで編集してください。nanoでもemacsでもOKです。

  ※--out udpbcast:10.0.1.255:14550という部分でブロードキャストすることによってクライアントのIPアドレスを気にしなくてもよくなります。

 

起動してMAVProxyが起動しているか確認します。

 $ sudo reboot

  ※再起動した後再度ログインします。

 $ ps -A | grep mav

  ※次の画像のようにプロセスが起動していることを確認します。

 

 

【手順3:タブレットで動作確認】

 次の図のようにタブレットでAP化したNavio2に接続します。本記事ではアクセスポイント名をardupilotとしています。

 

 接続した後は、QGCアプリを起動すれば自動的に接続されます。接続されない場合は、次のことを試してみてください。

 ・FCを再起動してみる

 ・設定を一通り確認してみる。

 ・Wi-Fiの接続確認し取得したIPアドレスが10.0.1.xになっているか。

 

 

 これでパラメータの設定などいろいろ楽になりました。次はカメラをつけてFPVをやってみたいと思います!

 

ご意見・ご指摘など遠慮なくどうぞ。一緒にクオリティを上げていきましょう!

多くのメールをいただいており対応できないこともございますことをご理解ください。

■ 筆者紹介

 

川村剛(かわむらつよし)

ドローンソフトウェアエンジニア養成塾 第2期卒業生。

記事の誤りを見つけた方は下記のメールアドレスまでご連絡ください。techblog@drone-j.com
(週末にメールを確認していますので、対応が遅くなること、休みの日にメールを返信させていただくこと、ご了承ください。)

Tags:

Share on Facebook
Share on Twitter
Please reload

カテゴリー
Please reload

最新記事
Please reload

アーカイブ
Please reload

ソーシャルメディア
  • Facebook Basic Square
  • Twitter Basic Square
  • Google+ Basic Square