NAVIO2が来たので組み立て、初期設定を終わらせるまでの手順をまとめる(6月くらいの話であるが。)
ほぼ公式ドキュメントのままだが、ROSを動かす手前の段階までを一括してまとめておく
大まかな手順は以下の通り
- ハードウェアの組み立て
- SDカードの作成(OSインストール)
- 初期設定
- ROSでデータを確認
ハードウェアの組み立て
大まかに、以下の二段階に分ける
- NAVI2本体をRaspberry Pi基盤に取り付ける
- NAVIO2基盤に各種センサ・コードを接続する
NAVIO2本体の取り付け
以下に、Raspberry Pi 3 Model B上にNAVIO2を固定した状態の画像を示す
手順は以下の通り
- NAVIO2付属のGPIO延長ピンをRaspberry Pi基盤に取り付ける
- NAVIO2付属の金属製の柱をRaspberry Pi基盤にネジ止めする
- Raspberry Pi基板から延長したGPIOピンをNAVIO2の無地の面を下にして接続する
- 柱の位置を合わせ、NAVIO2をネジで固定する
この手順を図示したものは公式サイトにある
注意事項としてはGPIO延長ピンの取り付けが非常に硬いことくらい
センサ・コードの取り付け
次いで、NAVIO2基板上に(オプションの)各種センサ・コードを取り付ける
これらは公式サイトで明示的にカートに追加するか、国内の代理店でセットとして購入するなどの方法で入手できる
また、これらのパーツは、あくまで公式がサポートしているというだけで、規格さえ合えばほかの部品を流用することも可能だろう
(あくまで自己責任でとなるが)
取り付けるパーツは以下の通り
- GPSアンテナ
- 電源コード
他、「セット」の場合、UART端子用のコードなどが含まれているが必要に応じて接続する(本記事では触れない)
GPSアンテナは、"NAVIO2"という文字の近くの円形の端子に接続する
電源コードは基盤側面の"POWER"という表示のあるプラグに接続する
ほかの端子は自分の環境に合わせて、適宜接続してください
以上でハードウェアとして利用する準備は完了した
次いで、Raspberry Piを動かす準備を行う
SDカードの作成(OSのインストール)
NAVIO2と情報をやり取りするRaspberry Piはlinux系OSで動作する
通常はラズベリーパイ財団が提供するRaspbianが用いられるれが多いが、NAVIO2を利用する場合、開発元のEMLIDの提供する、NAVIO向けのパッケージがあらかじめインストールされたイメージを利用可能である
OSはSDカードに書き込み、Raspberry PiのSDカードスロットに差し込むことで起動できる
大まかな手順は以下の通り
- OSのダウンロード
- OSイメージの書き込み
- 事前設定
- Raspberry Piに差し込み、起動
今回、SDカードはTOSHIBA製EXCERIA 32GBを使用する
また、SDカードへの書き込みはWindowsから行う(Linux等であれば、ddコマンドから書き込む例が多い)
OSのダウンロード
以下のアドレスから、公式のイメージを入手することができる
ページ上部の"Download emlid-raspbian-20170323 SD card image"をクリックし、イメージファイルをダウンロードする
ファイルの拡張子".xz"は、少なくともwindows環境ではあまり見ない拡張子だと思うので、対応している解凍ソフトを入手し、解凍する必要がある
(私の環境では"explzh"を使用した)
解凍してできた、"emlid-raspbian-20170323.img"をSDカードに書き込む
OSイメージの書き込み
OSイメージ(emlid-raspbian-20170323.img)をSDカードに書き込む
Linux系ならばddコマンドから書き込むのがベターのようだが、今回はwindowsの"dd for windows"を使用して書き込みを行う
dd for windowsを使用してイメージを書き込む手順は以下のようになる
- 書き込み先ドライブの選択
- 書き込むイメージファイルの選択
- 書き込む
以下にdd for windowsのメイン画面を示す
書き込み先ドライブを選択するには、「ディスクの選択(左四角)」をクリックする
クリックすると、以下のようなドライブ選択画面が表示されるので、左側の一覧から書き込みたいSDカードのドライブを指定し、「OK」をクリックする(今回はGドライブを選択している)
次に、書き込むイメージファイルを指定する
「ファイル選択(右四角)」をクリックし、開かれるウィンドウ上で書き込みたいイメージファイルを選択する
ただし、初期状態だと、".ddi"という拡張子しか表示されないため、ウィンドウ下部のファイルの種類から「すべてのファイル」を指定し、イメージファイルを選択できるようにする必要がある
書き込み先ドライブの選択と書き込むイメージファイルの選択が終わったら、実際にイメージを書き込む
書き込みを実行してしまうと、書き込み先ドライブが初期化されてしまうので、特に書き込み先ドライブの選択に間違いがないか確認したうえで、「書込(中央四角)」をクリックする
書き込み終了後、エクスプローラー上のSDカードの名前が「boot」になっていれば成功である
事前設定
SDカードにOSイメージを書き込んだ後は、そのSDカードを刺したRaspberry Piにssh接続することができるよう準備しておく必要がある
droneなどに搭載することを考えると無線でネットワークに接続し、ssh接続できる状態となっているのが好ましい
HDMIとキーボードを接続して、直接中に入って設定する方法もあるが、SDカード内のファイルに少し手を加えることで無線LANに接続可能であるので、こちらの方法を使用する
まず、"boot"という名前になったSDカードの中を開く
".dat"など様々なファイルがあると思われるが、今回は"wpa_supplicant.conf"というファイルを確認できれば良い
この"wpa_supplicant.conf"は無線ネットワークへの接続を設定するファイルである
テキストエディタなどで開くことができるので、開き、編集する
以下に編集例を示す
country=GB
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
ssid="your_network_ssid"
psk="your_ssid_pass_key"
}
編集するべき内容は、"network"内の"ssid"と"psk"である
それぞれに、接続したいネットワークのssidと、そのssidに対応するパスキーを記述し、保存する
その他の部分に編集を加える必要はないが、ssidやpskといった項目が複数ある場合には、先頭に"#"を入れ無効化しておく
以上で、SDカードの準備は終了である
次に、Raspberry Piの初期設定を行う
初期設定
EMLIDがNAVIO2向けに提供しているイメージをRaspberry Piに導入した場合、以下のコマンドからssh接続することができる
$ ssh pi@navio.local
- 初期ユーザー名:pi
- 初期パスワード:raspberry
初期ユーザー名や初期パスワードは通常のRaspberry Piと同様であるが、IPアドレスの代わりに"navio.local"を指定することでもssh接続することが可能である
NAVIO2を搭載するロボットの形式に基づき、ArduPilotの初期設定を行う
手順はRaspberry Piに接続した際に表示されるStepの通りである
これらの詳細は、ロボットの形式ごとに異なるため詳しくは説明しないが、各Stepでは大まかに以下の内容の設定を行う
- Step1:ロボットの形式の設定
sudo update-alternatives --config arducopter
sudo update-alternatives --config arduplane
sudo update-alternatives --config ardurover
- Step2:GCS(Ground Control Stations)のアドレス設定、好みのエディタで編集する
sudo nano /etc/default/arducopter
sudo nano /etc/default/arduplane
sudo nano /etc/default/ardurover
- Step3:deamonを再読み込みし、サービスを開始する
sudo systemctl daemon-reload
sudo systemctl start arducopter
sudo systemctl start arduplane
sudo systemctl start ardurover
- Step4:サービスを有効化(または無効化)する、以下は有効化コマンド
sudo systemctl enable arducopter
sudo systemctl enable arduplane
sudo systemctl enable ardurover
Step1はdroneの形式を、コプター型か、プレーン(プロペラ飛行機)型か、ローバー(自動車)型か選択する
Step2では、"GCSの動いているPC(本記事では触れません)"のIPアドレスと、オプションを指定する
オプションはシリアルポートのマッピング設定である
以下に対応(公式より抜粋)を示す
-A - serial 0 (always console; default baud rate 115200)
-C - serial 1 (normally telemetry 1; default baud rate 57600) 3DR Radios are configured for 57600 by default, so the simplest way to connect over them is to run with -C option.
-D - serial 2 (normally telemetry 2; default baud rate 57600)
-B - serial 3 (normally 1st GPS; default baud rate 38400)
-E - serial 4 (normally 2st GPS; default baud rate 38400)
-F - serial 5
詳細は公式サイトを確認のこと
Step3ではdaemonに登録し、Step4ではサービスを有効する
以上でRaspberry PiでNAVIO2を使用する初期設定は終了である
ROSでデータを確認
公式のドキュメント通りで基本的には問題ない
tmuxなどでコンソールを分割し、roscore
を立ち上げ、rosrunからmavros_node
を立ち上げればよい
注意点として、fcuの設定は必要であるが、gcsの設定は必須ではない
gcsを立ち上げていない場合には指定する必要はない
rosrunに成功したならば、rostopic list
から必要な情報を発見し、echo
で確認することができる