組み込み備忘録

元組み込みエンジニアで現在某大学のM1在籍中です.研究の備忘録的なブログにしようと思います

NetbeansでArdupilotの開発環境を構築する.

はじめまして.

元々組み込み兼Windowsアプリケーション開発エンジニアとして働いていましたが,退職して今年から某大学の博士前期課程に所属しています.

このブログでは知識のアウトプットをしていきたいと思います.

1. NetbeansでArdupilotの開発環境を構築する.

Ardupilotの代表的な開発環境としてEclipseが挙げられますが,

Eclipseにあまり馴染めなかったので,Netbeansを使った開発環境をご紹介したいとおもいます.

環境は以下を想定しております

  • OS:Ubuntu 16.04 LTS(Virtual Box上に環境を構築)
  • IDENetbeans IDE 8.2
  • Board:PixHawk

PCの詳細スペックは省略

2. Netbeansとは

Netbeansとはオラクルが開発したIDEで主にWeb開発でよく使われています.Netbeansの細かい紹介やインストール方法はよそのサイトで大量に書かれているため,本記事では省略します.

f:id:simoneFX:20170427184430j:plain

 

3. Netbeansの利点

Netbeansは軽量でデザインがシンプルかつ扱いやすい点が特徴です.1年近く愛用しており、前職では組み込みLinuxの開発をNetbeansで行っていました。

欠点はEclipseと比べると情報量やプラグインの数で劣る点です。

 

4. Ardupilotのソースファイルを取得する。

今回はNetbeansのインストール方法は省略し、Netbeansはインストール済みで起動ができる状態であることを前提条件とします。

まず、ArdupilotのGitからソースファイルを取得します。gitがなければgitを先にインストールしてください。

sudo apt-get install git
cd ~/
git clone --recursive git://github.com/ArduPilot/ardupilot.git

cd ~/ardupilot

git pull
git submodule update --init --recursive

5. Netbeansを起動しArdupilotのプロジェクトを作成する。

Netbeansを起動し,「ファイル」→「新規プロジェクトを作成」を選択します.

f:id:simoneFX:20170427191007j:plain

「新規プロジェクト」内のカテゴリ「C/C++」を選択し,「既存のソースを使用するC/C++プロジェクト」を選択します.

最後に「次へ」を選択します.

f:id:simoneFX:20170427191116j:plain

 

ここで先程取得したardupilotのソースを指定します.「参照」を選択し,ardupilotのフォルダを選択してください.

問題なければ「次へ」を選択します.

f:id:simoneFX:20170427191249j:plain

 

するとプロジェクトフォルダが作成され,Netbeansの左側にardupilotのプロジェクトフォルダが表示されます.

f:id:simoneFX:20170427191433j:plain

 

以上で,プロジェクトフォルダの作成は終了です.

6. ビルド設定を行う

現状のままだとビルドを行ってもビルドの設定が正しくされていないため,ビルドできません.そこで,ビルドの設定を行います.

ardupilotフォルダを右クリックし,プロパティを選択します.

そしてカテゴリ内の「make」を選択してください.

ここでビルド時の設定を行います.

まず,作業ディレクトリ(ビルドが実行されるフォルダ)を指定します.これはビルドしたいターゲットに応じて異なります.

例えばPlaneをビルドしたいのであれば「ardupilot/Plane」を指定し,Roverでビルドしたければ「ardupilot/APMRover2」を指定します.

f:id:simoneFX:20170427191813j:plain

 

次にビルドコマンドを「make px4-v2」に変更し,「OK」を選択します.

f:id:simoneFX:20170427192151j:plain

以上で設定は終了です.これでNetbeansでビルドを実行する.elfファイルが吐き出され,MissionPlannerでファームウェアを書き込めば新しいカスタムファームウェアで動かすことができます.

余談ですが,ビルドコマンドをwafにすることで「waf build system」を使うこともできます.この辺の解説はまた今度

 

ご指摘ご質問等ありましたら,コメントください.