nVidiaのJetson nanoで、ホログラムディスプレイのLookingGlassをHoloPlay.jsのSDKで使えるようにする。
Looking Glassは超面白いですね。今まで、さんざん色々な3Dディスプレイの表示クオリティの低さにがっかりさせられてきましたが、Looking Glassの画質はかなりいい線まで来ているように思えます。(欲を出せばいろいろありますが。)
Looking Glassにリアルタイムで描画しようと思ったら、3Dモデルを40枚同時に描画できなければいけないので、PCの要求仕様がかなり高いことが難点です。とくにそれらの値段が高く大きく重いことが悩みになります。
ところが、折しもちょうどいいタイミングでnVidiaのJetson Nanoという高度な描画能力を持ったマイコンボードが1万3千円ぐらいで買えるようになっていますので、この2つを組み合わせれば理想的じゃないか、と誰もが思いつくと思います。今日は、これをやってみたいと思います。
1.Jetson Nanoの準備
Jetson Nanoのイメージの焼きこみなどは、こちらを参考にしてください。
developer.nvidia.com
ぐぐれば一杯情報が出てきます。まっさらにインストールした状態から始めることにします。
2.準備
まず、作業用のディレクトリを作ります。
> mkdir workspace
> cd workspace
> mkdir ThreeJSTutorial
> cd ThreeJSTutorial
> mkdir js
次に、three.jsライブラリとHoloPlay.jsライブラリをダウンロードして展開します。
GettingStartGuideを見ながら進めるといいでしょう。
docs.lookingglassfactory.com
読むのが面倒くさい人は、次のリンクから。
https://github.com/mrdoob/three.js/archive/master.zip
https://s3.amazonaws.com/static-files.lookingglassfactory.com/ThreeJSLibrary/v0.2.1/HoloPlay.zip
これらのZIPを展開して、中身を~/workspace/ThreeJSTutorial/jsの下にコピーします。必要なのは.jsファイルが二つだけですが面倒くさいので全部コピーでも動きます。(WEBを公開する予定があって、セキュリティ等が気になる人は必要なファイルだけの方が無難。)
テスト用のindex.htmlを作ります。
まっさらの状態のJetson Nanoですとまだ使いやすいエディタも入っていないので適当なものを入れます。
sudo apt-get update
sudo apt-get -y install nano
Getting StartのWEBページの一番最後にあるexampleのソースコードをコピーして、index.htmlファイルを作ります。
> nano index.html
コピペ
medium.com
こちらのページにも同様のexampleが載っていますが、こちらの方は時間ごとに更新されて動くのでアニメーションさせたいときの参考になります。
3.WEBサーバのインストール
WindowsやLinux向けのWEBサーバーインストーラアプリXAMPPは、x86/x64をターゲットにしたバイナリで配布されているので、ARMコアのJetsonNanoでは動きません。要はLAMPのアプリが入っていればいいので、手動でインストールしていきます。Lampのインストール方法は、Jetson向けの物はほとんど見つかりませんが、RaspberryPi用の記事はたくさん書かれていますのでこれを参考にします。
www.neko.ne.jp
インストールコマンドだけを抜き出すと、こんな感じになります。sudoで始まる行だけ辿れば大丈夫のはず、です。
> uname -a
> perl -V
> sudo apt-get udpate
> sudo apt-get -y install apache2
> apache -V
> sudo apt-get -y install php php-dev php-fpm php-gd
> sudo apt-get -y install php-mysql
> sudo a2enmod proxy_fcgi setenvif
> sudo a2enconf php7.2-fpm
> sudo systemctl reload apache2
php7.2-fpmの7.2はphpのバージョンに対応します。適切なバージョンを入れてください。
> sudo apt-get -y install mysql-server
> mysqld -V
> mysql -V
> sudo apt-get -y install phpmyadmin
[yes]
[password] x2
[apache2]
4.WEBコンテンツのパスを通す
apache2のdefaultのWEBコンテンツの置き場所は、/var/www/html/の下です。状況が変わって見つからないときは、
> sudo find / -name index.html -print
などで探すとよいでしょう。ここに、workspaceディレクトリの下に作ったThreeJSTutorialディレクトリのシンボリックリンクを張ります。
> cd /var/www/html
> sudo ln -s ~/workspace/ThreeJSTutorial ThreeJSTutorial
> cd
5.Holoplay.js for Linuxを起動する
何の制限があってかわかりませんが、LookingGlassのThree.jsライブラリであるHoloPlay.jsはWindowsとMacにしか正式に対応していません。これを何とかするライブラリを先人が開発してくれているので、これを使いわせてもらいます。一応、アンオフィシャルだと思うので何があっても自己責任でお願いします。
github.com
初出はこちら。
Holoplay.js for Linux - Made with Looking Glass - Looking Glass Factory Forum
Githubからソースコードをダウンロードしてきて解凍します。適当な場所においてもかまわないはずなのですが、なぜかapt-getでgolang goをインストールしようとすると~/goにGOPATHを通そうとする(そして.bashrcに別の場所を書いても無視される)などのよくわからない挙動をしめす「ことがある」ので、~/goに展開してしまいます。
golangをインストール
> sudo apt-get -y install golang-go
> nano ~/.bashrc
一番最後の行に、
export GOPATH=~/go
export GOBIN=$GOPATH/bin
export PATH=$GOPATH/bin:$PATH
を足す。
> bash
golangのパスの機嫌がよくわからないときがあるので、何か困ったらWEBでもっと詳しいページを調べてください。
次にgoの実行環境を整えます。
> cd ~/go
> go get
何も言われず終了すればうまくいっているようです。何か文句を言われたら、PATHの設定などが間違えているのかもしれません。
これで準備ができましたので、goスクリプトを実行します。
> sudo go run main.go
この時点では何の応答もありません。
LookingGlassのUSBを接続して、WEBブラウザで用意したThreeJSTutorialを開きます。
すると、上手くいっていればキャリブレーションデータがターミナルに表示されて、ブラウザ内に次のような画面が表示されます。
うろ覚えで書いているので、上手く動いた動かない、のフィードバックをお待ちしています。
今日の工具
一流工具が欲しい病気にかかっています。
京都機械工具(KTC) ツールセット チェスト 67点組 SK36719X (SK SALE 2019) レッド 67個入
- 出版社/メーカー: 京都機械工具(KTC)
- メディア: Tools & Hardware
- この商品を含むブログを見る
マキタ(Makita) DF484DZ 充電式ドライバドリル 青 本体のみ 18V
- 出版社/メーカー: マキタ(Makita)
- メディア: Tools & Hardware
- この商品を含むブログを見る