cvl-robot's diary

研究ノート メモメモ https://github.com/dotchang/

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サーバのインストール

WindowsLinux向けの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はWindowsMacにしか正式に対応していません。これを何とかするライブラリを先人が開発してくれているので、これを使いわせてもらいます。一応、アンオフィシャルだと思うので何があっても自己責任でお願いします。
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を開きます。
すると、上手くいっていればキャリブレーションデータがターミナルに表示されて、ブラウザ内に次のような画面が表示されます。

Chromiumhttp://localhost/ThreeJSTutorial/index.htmlを開く。

f:id:cvl-robot:20190513190436j:plain
LookingGlass+JetsonNanoの動作テスト

うろ覚えで書いているので、上手く動いた動かない、のフィードバックをお待ちしています。

今日の工具

一流工具が欲しい病気にかかっています。

自分用読むべき論文メモ 2019年4月版

http://openaccess.thecvf.com/content_ECCV_2018/papers/Martin_Sundermeyer_Implicit_3D_Orientation_ECCV_2018_paper.pdf
www.youtube.com
github.com

qiita.com
toaruharunohi.hatenablog.com

学習ベースの3次元6自由度の物体トラッキング. Best Paper Award, ECCV 2018.

www.youtube.com

arxiv.org

developers-jp.googleblog.com


export.arxiv.org

speakerdeck.com

www.seeedstudio.com


https://www.jstage.jst.go.jp/article/ieejias/133/10/133_NL10_3/_pdf/-char/ja
dbnst.nii.ac.jp
地球環境のために、ダイキンだけじゃもったいない。

www.youtube.com


http://rpg.ifi.uzh.ch/docs/CVPR19_Rebecq.pdf
www.youtube.com
イベントカメラ


www.slideshare.net


arxiv.org

mirapro.miraino-manabi.jp

arxiv.org

arkouji.cocolog-nifty.com


https://www.jstage.jst.go.jp/article/jrsj/36/2/36_36_140/_pdf/-char/ja

shiropen.com

arxiv.org

www.slideshare.net

www.slideshare.net

trev16.hatenablog.com

arxiv.org

techable.jp

wired.jp
自分も苦手


ryuz.txt-nifty.com
大事なのかもしれない


かっこいい

arxiv.org


www.tohoku.ac.jp


よくわかんないけどすごい


www.u-tokyo.ac.jp

qiita.com


sdk.aboundlabs.com

shiropen.com

www.natureasia.com

arxiv.org

自分用読むべき論文メモ 2019年3月版

arxiv.org
真似学習におけるモデルベースとビルドアップの融合

gigazine.net
音響メタマテリアルによる消音。音響に限らず、メタマテリアルは不思議な挙動で面白い。
モータの構造などに取り込まれるようになるかな?HiFiオーディオ向けにはどうだろう?VRの人はもう何かやってるかな。

arxiv.org
www.youtube.com
DeepVoxels

shiropen.com
論文がまだ読めない。

arxiv.org
色をクオータニオンで表して、ネットワークで扱いやすくしようというアイデア

arxiv.org
qiita.com
http://www.shitsukan.jp/tsudoi/mt_files/43-07-kaisetsu1.pdf
arxiv.org

その他、気になるけど追えてない

petewarden.com
農業用

immersivemath.com
線形代数の教科書

www.slideshare.net
qiita.com

自己位置推定の教科書的な

news.mynavi.jp
定期購読


点群深層学習

自分用読むべき論文メモ 2019年2月版


arxiv.org

何か大事な変革が起きているっぽいのでRiemannian Motion Policiesというのを、まじめに勉強しなければならない。
arxiv.org

測地線 - Wikipedia
微分幾何学4(リーマン幾何学)

有本先生凄いなー
https://www.jstage.jst.go.jp/article/essfr/2/4/2_4_4_37/_pdf
http://rtc.nagoya.riken.jp/control/pdf/2009/2009_107471.pdf
https://www.jstage.jst.go.jp/article/jrsj/29/1/29_1_39/_pdf
https://www.jstage.jst.go.jp/article/essfr/2/4/2_4_4_4/_pdf

ロボットと解析力学 (ロボティクスシリーズ 10)

ロボットと解析力学 (ロボティクスシリーズ 10)


https://ipsj.ixsq.nii.ac.jp/ej/?action=repository_action_common_download&item_id=174177&item_no=1&attribute_id=1&file_no=1
ホーリズム - Wikipedia

自分用読むべき論文メモ 2019年1月版

https://www.trilumina.com/

rodneybrooks.com

web.media.mit.edu
稲見昌彦🌤️Masahiko Inami on Twitter: "うおっ、MIT MedialabのRamesh RaskarらによるComputational Photographyと空間ARの本のPDFファイルが無料で公開されている。これ、要輪読だな https://t.co/V74icMYkEh"

https://www.falstad.com/circuit/
電流のイメージがしやすい回路シミュレータ

qiita.com

arxiv.org

shiropen.com

github.com

qiita.com

https://www.jstage.jst.go.jp/article/sicejl1962/21/1/21_1_34/_pdf

tbutt.net
軽量VRインターフェースコア

Soft Robotics: A DIY Introduction to Squishy, Stretchy, and Flexible Robots (Make)

Soft Robotics: A DIY Introduction to Squishy, Stretchy, and Flexible Robots (Make)

https://www.jvss.jp/jsssj/rensaikikaku/Trad/Trad_index.htm
ロボット工学の新しいヒントがありそう

http://kaji-lab.jp/ja/index.php?plugin=attach&pcmd=open&file=TimeIsPriorToMethodForEnglishLearning.pdf&refer=InvitationForStudents

最重要文献

hori.k.u-tokyo.ac.jp

最重要文献2

mathpix.com

arxiv.org
piqcy on Twitter: "強化学習において、演算可能な表現を学習・活用した研究。「シーンA-物体X=シーンB」というように、物体の移動をベクトル(表現)の演算で表現できるよう学習する。学習した表現を使用し実行した行動を表現することができるため、表現演算による補助報酬を与えている。

https://t.co/nLeePSha48… https://t.co/f33iDAHAHD"

jp.picocela.com

arduinopid.web.fc2.com
わかりやすい

自分用読むべき論文メモ 2018年12月版

research-er.jp

research-er.jp
research-er.jp

https://www.cs.utah.edu/~ladislav/kavan08geometric/kavan08geometric.pdf
Dual Quaternion。姿勢を1つのクオータニオンで表すだけでなく、位置姿勢を2つのクオータニオンで表す方法。2つの位置姿勢の間の補間がとてもうまくいく。

www.youtube.com
d.hatena.ne.jp

直ぐに名前を忘れちゃう、3D点群データを綺麗にするポアソンフィルタ

www.msn.com
コマツは今どうなんだろう?

github.com
hand-eye calibration用

github.com
SLAM

staff.aist.go.jp
査読英語

3dnchu.com

www.dgp.toronto.edu

http://www.i.kyoto-u.ac.jp/archive/pdf/pub20.pdf
所感

arxiv.org

https://styly.cc/ja/tips/three-d-scans-styly/

Academic Writing for Graduate Students: Essential Tasks and Skills (Michigan Series in English for Academic & Professional Purposes)

Academic Writing for Graduate Students: Essential Tasks and Skills (Michigan Series in English for Academic & Professional Purposes)

メモ:Windowsで使うKerasのバックエンドのtensorflow-gpuを好きなCUDAとPythonのバージョンで使う方法

pip install tensorflow-gpuでは、古いバージョンのCUDAやcuDNNしか対応してくれないので使えません。pythonのバージョンも限定されます。

tensorflowとkerasのインストール

新しいバージョンのCUDAやPythonを使いたい場合は、下記のサイトを参考に、
qiita.com
おそらく非公式のここから、欲しいバージョンに対応したwhlをダウンロードしてきます。
github.com
インストールは、例えばtensorflow_gpu-1.10.0-cp36-cp36m-win_amd64.whlなら

pip install tensorflow_gpu-1.10.0-cp36-cp36m-win_amd64.whl

GPU対応の確認

このtensorflow_self_check.pyをGoogle Chromeで開いてテキストファイルにコピペして、拡張子を.pyに変更して実行します。
TensorFlow on Windows self-check · GitHub