cvl-robot's diary

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

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

主にTwitterで見かけた面白い記事まとめです。


ハンド


永守賞で見た。


組み立て作業解析


アランココーニは今何やってるんだろう


自由度多い


鉄イオン電池は重くないのかな


FPV商売?


とても結果がきれい


蚊でごまかしてるけど、兵器ですね


Jinsの面白眼鏡はいろいろ欲しい


モーターが変わるかも。


ありがたい



血圧計を使っても誤診断が多いから実用化急いでほしい。


bvhの話


Waymoの自動運転データセット


小さい会社でも罹患する危険性


ZMP


ハンドの認識


講義で使いたい


depthのカラー化


Githubの用語解説。ありがたや


みんな分かってるはずなのに忘れがち。


レンズアレイを見ると反応してしまう。


安い


データセット


ハンドのシミュレーション


量子


位置エネルギー電池


直感的に操作できるインターフェース大事


ちょっと気になる


いつものフエス


人体動作の予測


すごくよくできてる


視覚から音楽変換


早くネットワークは人が考えなくてもいいようになってほしい。


勝てない理由


ドローン


テキスト読み上げ。すごい綺麗


GR-Rose、ちょっとしたROS2開発に便利そう


Raspi 660fps


Andrew Ng先生


フーリエ


現時点で、結論、とか言われると、、、


ハンドの制御


謎の新技術。アヤシ


葡萄の認識と武道の認識


最近傍探索


地球規模の移動をGPS


便利そうではあるが、怪しげな。

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

Twitterで面白かった7月の記事まとめです。


カメラの高解像度化が進むから、もっと重要になるかも。

https://www.st.com/content/ccc/resource/technical/document/application_note/group1/13/fd/27/76/de/e8/46/4d/DM00566701/files/DM00566701.pdf/jcr:content/translations/en.DM00566701.pdf
1ポイントTOFセンサ100Hz


球面調和関数を用いた3次元音場再現


気になるギア内蔵モータ。


触覚大事。


新原理MEMSマイク使ってみたい。


Jetson TX2関係。でも、センサーが優秀になりつつある今、デプス復元にリソース喰われるのはどうなんだろうとは思う。


リアルタイム化凄い。


博士号持ちの凄さが分かるぐらいの教養が、政治家全員に求められる。


触覚大事。


インターフェースの多様性は欲しいので柔軟に対応してほしいけど、面白いカメラ。


Theta欲しいな。耐久モデルが特別扱いになってしまったのが悲しい。


こんなに小さいモーターが。


なんかシステムがデカくて、ロボットに使うのに便利なのかどうかよくわからん。


指さし動作の起源


CVPR2019速報


panasonicがやっている研究なのが良い。


この変速機、だれか正しく解説してくれないかな


気配の知覚のヒントになるか


振動触覚は一見退化のように見えるけど、今は主流なのかな



プリメイドAiいじりたい・・・

github.com
Virtual Gimbal凄い。


フーリエ


見た目と音楽の一致。80年代に流行?


式の実装してみた人いないかな?


光音響センサでCO2


ヒビ割れの検出

ROS2版が待たれる


このセンサの情報全然聞かないな


プロジェクションマッピング




jetson nano関係


Saliencyは今後もっと重要になると思う。


Webviz


陰除去


良い政治


応援したい日本製サーボモータ。でもトルクが足らない。。。


あらゆる事故、災害に備えておかなければならない。


意識、好奇心、気配


近い将来

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

しばらく論文読んでる暇がなかったので、面白かったTwitterの記事を中心に。(いつも、ほぼそうですが。。。)



研究者注目の的、タコ。


進化が明示的にコントロールされるようになったら、ますますやばい。


基本ツール


[メモ]Blue Noiseとリアルタイムレイトレーシングshikihuiku.wordpress.com


カメラキャリブレーションはとても大事。


農業ロボット関係


Choreonid関係


戦車型なのが日本での教育に向いてない。実銃やレーザーに置き換えるも簡単だろうから怖いし。


よくわかんないけど。

myenigma.hatenablog.com


低価格ってどのくらいなんですかね?



新しい情報がなかなか出てこない新型LeapMotion

NVIDIA Jetson Nanoで OpenPoseをビルドする方法、動画から人体の骨格検出 (NVIDIA Jetson Nanoの CUDAパワーで OpenPoseを使って動画から人体の骨格検出)
でべ on Twitter: "レビュー記事書きました!Jetson Nanoですが、ラズパイも少しフォローしてます。 Jetson Nano でカルマンフィルタ不要の9軸フュージョンセンサ BOSCH BNO055を使う https://t.co/6J658G3E1p"


JetsonNano関係


翻訳を期待!


BNO055では何も考えずQuaternion出力を使え、という話。


大事だと思うんです。Unityでオブジェクト置いたら終わり、じゃ意味ないもん。

todaitotexas.com
欲しい情報が何一つ手に入らない素敵なWEBページ。


展示内容は素晴らしい。

Jetson Nanoをロボットに搭載するために、リチウムポリマー6S22.2Vから5V80Wを安全に取り出せる電源を作る

Jetson Nanoは、安くて早くて便利ですが、フルスピードで動かそうとすると20Wの5V電源が必要になります。一般に、これをUSB電源からとるのは無理なので、DCDCコンバータを用意する必要があります。
一方、ロボットではモータを駆動するために、+12Vや+24Vの電源が使われることが多いです。そこで、24Vから5Vを作る電源を検討したいと思います。

この記事を参考にして事故等が起きても一切の責任を取れません。よくご検討の上自己責任でお願いいたします。

DCDCコンバータの選定

ロボットに搭載するために、できるだけ回路は物理的に小さくしたいと思います。自作でDCDCコンバータを作るとどうしても大きくなってしまいますから、素直にメーカー品を選定することにします。
www.cosel.co.jp
www.cosel.co.jp
有名メーカーのモジュールを探したところ、COSEL MGFS40/80シリーズが出力/サイズ比がもっともよさそうです。値段もそれぞれ、4000円、7000円とリーズナブルです。それぞれ、2台、4台のフルスペックJetson Nanoを動かすことができます。
難点は、現時点でどちらも在庫薄であることですが、そのうち入荷するでしょう。

低電圧検出回路の設計

大本の電源をリチウムポリマー電池から取り出すことに注意しなければなりません。リチウムポリマー電池は、過放電すると単に使えなくなるばかりか、膨らんで爆発するなどの危険性があります。そこで、終止電圧が来たらDCDCコンバータを自動的に止めるようにしなければなりません。リチウムポリマーの1セルの基準電圧は3.7V、終止電圧は3.0Vぐらいが一般的です。厳密にやるならば、各セルの電圧を監視するべきなのですが、回路規模的に大変になってしまうので、6S18Vを終止電圧としてDCDCコンバータを止めるようにしたいと思います。

ツェナーダイオードを使って基準電圧を作ります。18Vを直接比較しようとすると、もっと大きな電圧が比較回路のために必要になってしまいますので、5V程度の電源で駆動できるように適当に電圧を調整します。また、電圧を比較するのに最も手軽な方法は、OPアンプをコンパレータとして使うことだと思います。OPアンプの+入力にツェナーダイオード、-入力に抵抗で分圧したバッテリー電源電圧を入れます。

f:id:cvl-robot:20190904090105p:plain
電圧比較回路
www.falstad.com
回路の原理確認には、このWEBアプレットの回路シミュレータを使いました。電源電圧が18Vを超えるとコンパレータの出力はLowになり、18Vを切るとHighの+5Vを出力します。

部品は、手元にあった3.6Vのツェナーダイオードを使うことにします。またコンパレータには、手元に転がっていた単電源OPアンプのJRC 3414ADを使うことにしました。これは、バイポーラ型ですが消費電力の少ないFET入力の方が良いと思います。
抵抗の分圧比は、電源電圧が18Vの時に3.6Vの電圧が下の抵抗にかかるように調整します。系列の抵抗値に当てはめて、下を3.6kΩ、上を14.4k(12k+2.4k)にしました。ノイズを恐れて多めに電流を流すようにしましたが、もうちょっと少なくてもいいかもしれません。

単電源OPアンプの電源を用意するのが億劫ですが、強い味方のスーパー三端子レギュレータ+5Vが手元にあったのでこれを使うことにします。超便利なので、手元にいくつか在庫を用意しておくと良いです。
ただし、こいつは低電圧検出後も停止されず微弱ながら電流を引き続けますので、停止してしまったら速やかにバッテリーを取り外す必要があります。基準電圧用のツェナーダイオードの電源とOPアンプの電源は同じものを用いてください。
akizukidenshi.com

あとは、このコンパレータの出力電圧をCOSELのDCDCコンバータのRC端子につないでやれば良いです。
注意点として、本来は出力にヒステリシスを入れて、一度基準電圧を切ったらラッチさせてチャタリングが起きないようにするべきだと思います。クリティカルな用途に使う際はよく注意してください。

出力状態の監視出力

この5V用DCDCコンバータで低電圧検出回路が働いたら、(もし使っていれば)他の系統の電源も連携して停止するようにするべきです。出力側の5Vの電圧でフォトカプラを駆動して、入力側の電圧基準で信号を取り出せるようにしたいと思います。
フォトカプラには、京都のマルツで入手できた東芝TLP550を使うことにします。これは、何の変哲もないオープンコレクタ出力1回路の物です。
toshiba.semicon-storage.com

f:id:cvl-robot:20190904094852p:plain
フォトカプラ
わざわざ回路図にするまでもないですが、左側の電源をCOSELのDCDCコンバータの5V出力、右側の電源をスーパー三端子レギュレータの5V電源とします。負論理で動きますので、そのまま別のコーセルのDCDCコンバータのRCに入力することができます。

メインのDCDCコンバータ電源回路

COSELのデータシートに従って素直に作ります。コンデンサのESRが無いので、シミュレータはこのままでは動きません。

f:id:cvl-robot:20190904103127p:plain
全体回路図

実装

出来ました。

f:id:cvl-robot:20190904103302p:plain
5V80WのDCDCコンバータの実装
が、やらかしています。DCDCコンバータモジュールは熱を持つので、電解コンデンサーを接しさせてはイケマセン!また、ラインフィルタを入れてはいますが、多分無意味なので不要です。

今日の本文

ダイエットのために、病院でおすすめされました。

ソニーの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