cvl-robot's diary

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

ソニーのMDR-M1STが届いたので開封の儀

長年愛用してきたMDR-CD900STの後継機とも言われているMDR-M1STが発売されたので買ってみました。
早速届いたので、開封の儀。

f:id:cvl-robot:20190829133336j:plain
うわさの外箱。飾り気がない。
f:id:cvl-robot:20190829133407j:plain
梱包もシンプル
f:id:cvl-robot:20190829133648j:plain
説明書。保証書は無し。
f:id:cvl-robot:20190829133719j:plain
ケーブルと本体。ケーブルの根本がねじになっている特殊形状。
f:id:cvl-robot:20190829133802j:plain
持った感じは、CD900STとよく似てる。
f:id:cvl-robot:20190829134104j:plain
少し重い

感想

第一インプレッションは、CD900STとの細かい違いが気に入らなすぎて不満。
ヘッドバンドのクッションは薄い方が良いし、押しつけ圧が強くて長く使えないのも不満。
音質もCD900STと違うことが不満。
Final D8000と比べてしまうのが悪いのは分かっているけれど、今時のいい音とはかけ離れているし。これが標準の音になってしまったら悲しい。

今日の本文

ヘッドホンアンプどうしよう。

LookingGlassでの表示を綺麗にするために、three.jsのdisplacement mapの階調を8ビット256から24ビット16777216に拡張する

displacement mapは、画像データを元にお手軽に3次元(2.5次元)形状を表現する手法として知られています。これを使ってLookingGlassの表示アプリを作っている方がいたりして、なるほど簡単で良いなと感心しました。
stereo.jpn.org
ただグレーは通常256階調しか持ちませんので、Looking Glassの奥行表現の性能を表現しきれません。そこで、256階調を3色分の情報を使ってもっと細かに奥行を表現できるようにしたいと思います。

var displacementmap_vertexを改造する

three.jsではdisplacement mapをvar displacementmap_vertexという変数の中に定義した式で計算しています。そこで、この式の記述を探して中を書き換えてしまいます。

デフォルトのグレー256階調をコメントアウトします。

//var displacementmap_vertex = "#ifdef USE_DISPLACEMENTMAP\n\ttransformed += normalize( objectNormal ) * ( texture2D( displacementMap, uv ).x * displacementScale + displacementBias );\n#endif";

その下に、3色1677階調版を記述します。チャンネル毎に256倍のオフセットを与えているだけです。

var displacementmap_vertex = "#ifdef USE_DISPLACEMENTMAP\n\ttransformed += normalize( objectNormal ) * ( (texture2D( displacementMap, uv ).x + 256. * texture2D( displacementMap, uv ).y + 256. * 256. * texture2D( displacementMap, uv ).z ) * displacementScale + displacementBias );\n#endif";

データは、手前から奥へRGBの並びになります。

f:id:cvl-robot:20190828143444p:plain
デプス画像をグレーからRGBに

今日の本文

ソニーのモニターヘッドホンのMDR-M1STが出たので買ってみましたが、圧がCD900STより強くて長時間使えません。なんでこんな変更をしたんだ?

SONY 密閉型スタジオモニターヘッドホン MDR-CD900ST

SONY 密閉型スタジオモニターヘッドホン MDR-CD900ST

今一番良いモニターヘッドホンは間違いなくFinal D8000ですね。余計なのをいろいろ買うより、頑張ってこれを買うべきかもしれない。
final D8000 FI-D8PAL 平面磁界型ヘッドホン

final D8000 FI-D8PAL 平面磁界型ヘッドホン

Jetson NanoでRealSense D435iとT265を使ったプログラムを自動起動させる方法

Jetson Nanoは値段が安くてそこそこ性能が良いので、ロボットの頭として便利に使えます。画像処理も得意なのでいろいろなセンサーを搭載して、ロボットの起動と同時に、それらセンサーを使ったプログラムが自動で起動するようにしたいことが結構あります。
Ubuntu」「自動起動」などで検索してやり方を調べてみると、rc.localを使った方法やsystemdを使った方法などが見つかります。しかし、これらはX-Windowが立ち上がる前に呼ばれてしまうので、X-Windowを使用するプログラムを正しく起動することが難しいです。
またteratermなどからログインしてプログラムを起動しようとしても、xwindowを使うプログラムは画面のポートフォワーディングを設定しておかないとすんなり立ち上がってくれません。
そこで、xwindowが立ち上がってからプログラムを起動するように設定したいと思います。

~/.config/autostartを使う

Gnomeデスクトップの準備ができてからプログラムを起動するためには、ユーザのホームディレクトリに隠されている.configディレクトリの下に、autostartというディレクトリを用意して、その中に.desktop拡張子をもったファイルを置くことで行います[1]。

準備

autostartディレクトリが無い場合は自分で作ります。

> cd ~/.config
> mkdir autostart
> cd autostart
> nano realsense.desktop // なんでもいい適当なファイル名.desktop

realsense.desktopの中身は書式[2]に従って

[Desktop Entry]
Exec=何か実行したいプログラム
Type=Application

と書きます。
実行失敗したときにエラーメッセージが読めないと困るので、gnome-terminalを立ち上げてから、起動用のシェルプログラムを呼びます。

[Desktop Entry]
Exec=gnome-terminal -- bash -c "bash /home/cvl/workspace/openFrameworks/apps/myApps/myRealsenseMulti/autostart.sh; bash"
Type=Application

プログラムが終了したときに窓が消えてしまわないように、;bashを最後におまじない的に入れておきます。
autostart.shの中身は好きに書いてもらえばいいのですが、こんな感じで使っています。

sleep 5;
cd ~/workspace/openFrameworks/apps/myApps/myRealsenseMulti
make RunRelease

スーパーユーザー権限が必要な時の対処法

Dynamixelのモータとか、ルート権限が必要なデバイスを起動したいときはsudoを付けて起動しますが、通常パスワードをインタラクティブに入力しなければなりません。sudoに-Sオプションを付けると、標準入力からパスワードを読んでくれるようになりますのでこれを利用します。
autostart.shをこんな感じに変えます。

PASSWORD=password
echo PASSWORD | sudo -S ./bulk_read_write

参考文献
[1] Ubuntu起動と同時に自動でターミナルを開く - Qiita
[2] Autostart - LXDE.org

今日の本文

Jetson Nanoは本体は安いけれど、オプションに結構お金がかかるのが難点です。自分が使っているものを備忘録として、記載しておきます。

安いが見た目はそこそこ良い。落とすと割れる。
Noctua NF-A4x20 5V PWM 40mm 静音 ファン 5000rpm

Noctua NF-A4x20 5V PWM 40mm 静音 ファン 5000rpm

\2660- 在庫切れになるとトンデモナク高い金額がつけられていることがあるので、ご注意を。 5V PWM対応なら大丈夫なので10mm厚の物も使える。 最高速で動かしたいなら、5V20Wの電源が必要。 普通のご家庭に普通に転がっているジャンパーが一つ電源設定のために必要です。 実行速度を速く保ちたいなら良いマイクロSDカードが必要です。ただUHS-I U3は多分意味がないので、U1で十分だと思います。 Intel 8265NGWしかJetson NanoNanoはM2. Wifiカードを受け付けないそうですが、ほんとかな。 WiFiBluetooth用アンテナが必要です。コネクタの形状に注意が必要です。

ファンの取り付けのために、3mmのタップが立てられると便利です。

ライト精機 ライトBPタップダイスセットTDS-12B

ライト精機 ライトBPタップダイスセットTDS-12B

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

5月は情報多すぎて、上手く咀嚼ができてない.


眼球運動


いつも悩むGPSアンテナの選択


洗える電池


欲しい。


視線推定。Jetson Nanoでは重かった。


モータノウハウ


240Hzは要らない。欲しいのはHDMI入力なのでMB16AMTで良い。早く出ろ。


高音質な3D音響レンダリング。気になる。


Jetson NanoでRealsense D435i


Git


ICRA2019


高解像度化


CVPR2019


数式エンジンのAPI


www.chukyo-u.ac.jp
アノテーション付き3Dモデル


木材ベースの新素材


全てのドローンにあのボールの装着を義務付けてほしい。怖いから。

professor.kanagawa-u.ac.jp
モーターの先生


ICRA2019のベストペーパー

news.developer.nvidia.com
強化学習


SiCが活躍し始めた


気になるおもちゃ


はて。


Lidarデータセット

www.itmedia.co.jp
4脚ロボット

qiita.com
便利そう


JetsonNanoでも動くOpenVSLAM


Unity向けだけど勉強になりそう


教師無し文脈行動理解


音の解析と合成技術の資料

http://www.dwdrums.com/images/moonmic/olson_direct-radiator-loudspeaker-enclosures.pdf
スピーカーエンクロージャーの特性

shiropen.com
単眼ハンドモーキャプ


点群関係


グローブ型のハンドモーキャプ


阪野さん

www.livoxtech.com
store.dji.com
安いからうっかり買ってしまいそうになる。欲しいけど。画角に注意。


勉強しすぎに気を付けよう


内容以上に動画がうまい


TensorFlow用微分可能なレンダラー


買う本


arxiv.org
触覚


ずっと見てたい


ai-scholar.tech


モデルベース強化学習まとめ。ありがたい。


github.com
綺麗に立体復元


arxiv.org
光源推定

www.digikey.jp
150A10VでRds_onが0.75mΩとかいつの間にかすごい時代になったなぁ

material.io


CADモデルデータセット

arxiv.org


モーターを作ろう


リンク先の資料が勉強になる。

synapse.kyoto
知っとく価値がある。

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://ibisml.org/ibis2018/files/2018/11/kanade.pdf


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
定期購読


点群深層学習