LoginSignup
4
6

More than 5 years have passed since last update.

raspberry pi3 + navio2でssh接続するまでの手順

Posted at

NAVIO2が来たので組み立て、初期設定を終わらせるまでの手順をまとめる(6月くらいの話であるが。)
ほぼ公式ドキュメントのままだが、ROSを動かす手前の段階までを一括してまとめておく
大まかな手順は以下の通り

  • ハードウェアの組み立て
  • SDカードの作成(OSインストール)
  • 初期設定
  • ROSでデータを確認

ハードウェアの組み立て

大まかに、以下の二段階に分ける

  1. NAVI2本体をRaspberry Pi基盤に取り付ける
  2. NAVIO2基盤に各種センサ・コードを接続する

NAVIO2本体の取り付け

以下に、Raspberry Pi 3 Model B上にNAVIO2を固定した状態の画像を示す

手順は以下の通り

  1. NAVIO2付属のGPIO延長ピンをRaspberry Pi基盤に取り付ける
  2. NAVIO2付属の金属製の柱をRaspberry Pi基盤にネジ止めする
  3. Raspberry Pi基板から延長したGPIOピンをNAVIO2の無地の面を下にして接続する
  4. 柱の位置を合わせ、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カードスロットに差し込むことで起動できる

大まかな手順は以下の通り

  1. OSのダウンロード
  2. OSイメージの書き込み
  3. 事前設定
  4. 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のメイン画面を示す

dd_01.png

書き込み先ドライブを選択するには、「ディスクの選択(左四角)」をクリックする
クリックすると、以下のようなドライブ選択画面が表示されるので、左側の一覧から書き込みたい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で確認することができる

4
6
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
4
6