自由課題

学んだり、考えたり、試したりしたこと。

Jetson NanoでFPVラジコンを作る(1)

いきさつ

Jetson Nanoを購入した1年以上前からJetRacerを作ってみたいと思っていた。

NVIDIA Jetson Nano 開発者キット B01

NVIDIA Jetson Nano 開発者キット B01

  • 発売日: 2019/10/01
  • メディア: エレクトロニクス

ただ、なんとなくボディなしの基板剥き出しで走行するよりも、例えばここでやっているように可能な限りラジコンとしての原型を留めた形で作りたいと自分で勝手にハードルを上げてしまい、長い間二の足を踏んでしまっていた。

3月になってふとAmazonでラジコンを検索してみたところ、

というのが2万円を切る値段で在庫があったので、思い切って購入してみた。

最終的にはJetRacerのように自動運転を目指してはいるが、細切れにしか時間が取れないというのと、盲目的に手順に従うのも面白くないので何回かに分けてステップを踏みながら作っていきたいと思う。

この記事の内容

いきなり最初から脱線している気もするが、自動運転に行く前にまずはJetson Nano経由で制御するカメラ付きラジコンを作ろうと思う。

というのは、少しラジコンを触ったところ操作がかなり難しく、特に車が自分自身と同じ方向を向いていないときにプロポのステアリングをどちらに切って良いのかパッとわからなかったのである。

そのため、ラジコン内にカメラを接続したJetson Nanoを設置して無線で映像を取得し、これを見ることでもう少し普通の車を運転するように簡単に運転できるのではないかというのが仮説である。一般には、このように一人称視点での遠隔操縦をFPV(First Person View)というらしい。

Jetson Nanoのセットアップ

記事執筆時点ではJetpackは4.5.1。 イメージをmicroSDEtcher経由で焼いてJetsonのSDカードスロットに挿入する。

今回は特にGUIを使用したいわけではないので、CLIを使用することにする。JetsonのMicro USBポートとMacを接続してJetsonに電源を投入する*1

Macの場合、以下のようにcu経由でシリアルポートにアクセスできる(ファイル名のusbmodem以降の数字は可変なので要確認)。

cu -l /dev/tty.usbmodem14219190686243 -s 115200

初回接続がシリアルポートだった場合、EULAの確認や各種環境(タイムゾーンやネットワーク)を設定するためのウィザードが実行される。

なお、Micro USBケーブルを接続すると上記のシリアル接続とは別にSSHでも接続できる。

ssh ユーザ名@192.168.55.1

自分の環境だとシリアルポートで接続するとどうも調子が悪いので、SSHを使用することにしている*2

momoのセットアップ

Jetson Nanoに接続したカメラの映像をリアルタイムに確認する方法はいくつか考えられるが、今回は低遅延で有名な時雨堂のmomoというWebRTCクライアントを使用することにした。

github.com

Jetson Nanoは公式にサポートされているので、githubからバイナリをダウンロードすることができる。

テスト用にmomoを起動するには、Jetson NanoにUSB Webカメラを接続して以下のコマンドを実行する。

./momo --no-audio-device test

Webカメラとして、今回は手持ちのロジクール C920nを使用した*3

この状態で、Jetson Nanoとネットワーク接続されている別の端末のブラウザから http://Jetson NanoのIPアドレス:8080/html/test.html にアクセスすると、カメラの映像を見ることができる。

実際にやってみたところ、Wi-Fiアクセスポイント経由で接続しているのにかなり小さい遅延(おそらく500ms以下)で映像を確認することができた。

本記事ではここまで。次回はJetson Nanoをラジコン に取り付けようと思う。

追記 : 次回記事

*1:Jetson NanoのMicro USBポートは初期状態では電源供給に使用されるが、所定の位置にジャンパピンをセットすることでシリアルポートとして使用することができる。

*2:詳細は記載しないが、これに加えUSB接続のWi-FiアダプターをセットアップしたのでMicro USBケーブルを接続せずにSSH接続している

*3:もともとMIPIでラズパイカメラを接続していたのだが、こちらは少し試した限りではうまく認識しなかった。ソースは公開されているので、認識するように改造出来そうな気はする