windowsの中のlinuxでardupilotビルド環境
こんにちは。
授業の成績が悪いので研究を頑張ろうと意気込んでいる今日この頃です。
今日は一年前くらいに開発者用にwindowsに搭載されていたwindows subsystem for linuxについて。
急になんでこんな話なのかと言いますと、最近私はardupilotというドローンのオープンソースソフトを使って研究をしていまして、そのソフトのビルド環境を作るのにlinuxの方が都合が良いということで。
デュアルブートとかにしても良かったのですが、面白みがなかったのでこのシステムを使ってみようと。
実際使ってみたらめちゃめちゃ進化しててすごい使えるじゃん!!っていうお話。
具体的に何したのかといいますと。
windows subsystem for linux (WSL)を使用してubuntu16.04 LTSをwindowsにインストール。
ubuntu内にardupilotのビルド環境の構築。
ubuntuでSITLシミュレーターを起動してGUIを表示まで。
研究で使うのに面白みを求めるのは良くないとは思いますが、こういう新しい発見があるから止められないゼ。
一応手順をまとめておきます。自分のためにも。
STEP1 まずはwindows に ubuntuを迎える。
windowsのコントロールパネルから「プログラムと機能」へ
「windowsの機能の有効化または無効化」から「windows subsystem for linux」を有効化。
ストアで「ubuntu」と検索 16.04LTSが居るのでこれをインストール。
スタートに居るubuntuを起動。
初回起動時はユーザー名とパスワード登録がある。
登録が終わったら
- $ sudo apt update
- $ sudo apt upgrade
といつもの呪文を唱えてインストール完了。
STEP2 GUIを表示できるようにする。
VcXsrv Windows X Server を利用します。
上のやつをwindowsにインストールしておく。特にオプションは弄らない。
ubuntuのディスプレイ設定を変更する。
$ echo export DISPLAY=:0.0 >> ~/.profile
$ source ~/.profile
詳しくはこちらのページにて。
参考にさせていただきました。
STEP3 ardupilotビルド環境の構築。
公式ドキュメントに書いてあることをなぞって行きます。
$ git clone https://github.com/ArduPilot/ardupilot
$cd ardupilot
$git submodule update --init --recursive
この最後のコマンドの時にtimed outとかエラーを吐く場合は少しテコ入れが必要。学内LANなどで起きる。
$ git config --global url."https://".insteadOf git://
と打ったあとにもう一度上の git submodule~~~を打つ。
必要なソフトをたくさん入れるスクリプトを実行
$ Tools/environment_install/install-prereqs-ubuntu.sh -y
結構時間かかります。あと途中でrootパスワードを聞かれます。
これでビルドに必要なものは揃いました。あとは
$./waf list_boards
で目的のボードの名前を探して
$./waf configure --board [ボードの名前]
で準備。
$./waf copter
でビルド開始。完成品は~/ardupilot/build の中にいます。
なおnavio2を使用する場合はビルド準備の前に
$ pip install future
が必要。その他各種ボードで必要なものがあったりなかったりするので注意。
これでビルド環境とビルドが完了しました。
ビルドに関しては公式を参考に。
STEP4 SITLシミュレーターを起動する
今回はコプターの例。
$cd ArduCopter
$sim_vehicle.py --map --console
これで起動するはず。しなかったら今までの手順のどこかでミスがあるかも。
シミュレーター内の操作などは公式のこちらを参考に。
以上!!長々とお疲れさまでした。
意外とサクッとシミュレーターが動いたりして感動しました。
ビルドも普通に通るし。
今後はこれを使って研究用のドローンにプログラムを組み込んでいくわけです。
なにかあればコメントやツイッターまでお気軽にどうぞ。答えられることならお答えします。
ではではノシ