うっかり乗っかってしまった木戸さんの企画「GWアドベントカレンダー」。
10連休向けアドベントカレンダーシステムを作った【個人開発】 – Qiita
nVIDIAのJetson nanoという小型のGPUを積んだラズパイのようなデバイスが3月に発売され、AIと設備制御を組み合わせたアプリケーションで現場で使える端末にぴったりと取り組み始めたのもあり、これをネタにアドベントカレンダーを書くことにしました。
GW中Jetsonのことばかり語るカレンダー | GWアドベントカレンダー
とりあえず、あと1記事でコンプリートできるので、最後はこれからJetson nanoを使ってやりたいことをリストアップします。
Python開発環境の設定
現在Pythonの勉強をしていますが、トレーニングプログラムを走らせるにはGPU積んだマシンがあることが望まれます。
でも、Pythonは初心者にとって環境構築のハードルが高く、できればすべてインストールし直したいという事態が訪れますが、それができる環境をつくるのも一苦労だったりします。
で、Jetson nanoは、Micro SDカードを差し替えるだけで新しい環境をつくることができ、普通のOSをインストールするPCと比べると手軽です。
ということで、下記がこれからやりたいこと。
- Jupyter Notebookのインストール
- PIPのインストール
- Pythonの環境管理 pyenvとvenvの設定
Jetson nanoの環境設定
まだまでJetson nanoを使って開発をやりところまでたどり着いていないので、自分のMacでやるのと同じように、開発できる環境をつくりたいと思っています。
ということで、やりたいこと
- Visual Studio Codeのインストール
- Visual Studio Codeの拡張機能を使えるようにすること
- 固定IPを設定すること
- ホスト名の設定
AIと設備制御を絡めたアプリケーションの開発
僕の得意分野は設備制御なので、AIと設備制御を絡めた簡単なアプリケーションを自分自身でできるようにしたいです。
照明制御のDALIや設備制御全般のKNXとの組み合わせは、Node-REDにさえつなげればなんとかなるので、PythonとC++のプログラムを、WebSocketやMQTT経由で出力と受け取りができるところが目標。
なので、
- Image recognitionで推測した物体のテキストをWebSocket経由で外部に出力する
- PythonでWebSocketに出力する方法の実装
- C++のプログラムでWebSocket経由でテキストを出力させる方法
- PythonでMQTTを使ってテキストを出力する
- C++でMWTTを使ってテキストを出力する
といったところをこれから取り組んでいきます。
まとめ
Jetson nanoはGPUが使えるというところだけではなく、ラズパイやArudinoのようにGPIOやブレッドボードといった電子回路系のものともすごく相性がよさそうです。
さらに、自分には未知の領域の自動運転に関することも、JetBotやIsaacをやることで学ぶことができ、楽しみなことがありすぎます。
ということで、学ばなければならないことが山のようにありますが、できるところからひとつづつ、昨日の自分よりちょっと賢くなった自分になれるよう、これからもJetson nanoに取り組んでいこうとおもいます。
あと、いろんな人がJetson nanoの記事を書いてくれてるから、すごくいいとおもいますよ。
ということで、一緒にJetson nanoで楽しいことしましょう!