cvl-robot's diary

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

c++版Open3DのVisualizationは、openFrameworks0.10.0で自前で作ると便利。

Open3Dは、3次元点群処理が簡単に出来て便利です。ですが、いくつか弱点があって ・Visualizationが便利なようで自由が利かず不便 ・フォーマットが良く分からなくなることがある。ex. PointCloudとTriangleMeshの違いは? ・他のライブラリとのリンクが不便…

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

Optimal and Autonomous Control Using Reinforcement Learning: A Survey - IEEE Journals & Magazine 機械学習は、制御の自動化の方向へ進んでいくのは間違いない。 Dex-Net by BerkeleyAutomation 自動ビンピッキング Kinematic and Dynamic Solvers | Th…

動力学シミュレータofxBulletを静的な衝突判定ライブラリとしてだけ使う方法 (その2)任意のメッシュ形状でも衝突判定したい

三角ポリゴンの集合で表現された任意形状をofxBulletで扱うためには, ofxBulletCustomShape()クラスを使います。 普通に動力学シミュレーションで使うだけなら、Exampleに倣って実行すれば問題ないかと思います。 github.com ofxBullletCustomShapeクラスの…

動力学シミュレータofxBulletを静的な衝突判定ライブラリとしてだけ使う方法

OMPLが自由に使えるようになって経路計画がお手軽で楽しいのですが、衝突判定を自分で書くのが億劫です。プリミティブな形状同士の衝突判定は一つ一つであればたいして難しくもありませんが、効率的に、さまざまな形状の、複数物体同士を、衝突するものとし…

openFrameworksでOMPLを動かしたい(その5)

また[1]を参考に、修正を加えてみます。 1.障害物を追加 2.cboundsの値を調整 3.アニメーションを追加 #pragma once #include "ofxOMPL.h" #include "ofMain.h" class Scheduler : public ofThread { public: unsigned long counter = 0; std::vector<double> </double>…

openFrameworksでOMPLを動かしたい(その4)

omplのdemo_RigidBodyPlanningWithControlsをopenFrameworksに移植していきます。 ofxOMPL.hの更新 必要なヘッダーファイルを足していきます。 ofxOMPL.h #pragma once // Plaease add these settings manually // #include path example: D:\workspace\ompl…

openFrameworksでOMPLを動かしたい(その3)

障害物を追加してみましょう。参考文献1を参考に、障害物を置きます。変更点を抜粋して説明していきます。 1.障害物オブジェクトobstacleをofApp.hで定義します。 ofAppクラスに物体を定義します。 ofBoxPrimitive obstacle; 2.isStateValid関数に判別…

openFrameworksでOMPLを動かしたい(その2)

ビルドの準備が整いましたので、ompl.slnを開いてビルドをしていきます。 ハマリポイント4 omplのEigenのパスが一部おかしい。 そのままビルドにかけると、Eigenのインクルードパスがおかしいとエラーが出ます。Linuxとかだと多分大丈夫なんでしょうけど、 …

openFrameworksでOMPLを動かしたい(その1)

ロボットの経路計画や動作計画用ライブラリとして有名なOMPL(OpenMotionPlanningLibrary)をWindows10MSVC環境のopenFrameworksで動かせるようにしたいと思います。 The Open Motion Planning Library 当初は、C++できれいに書かれているし単に.libをリン…

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

github.com MotionCaptureデータのビューアやアノテーションなどに使えるopenFrameworksアドオン。VRM対応誰かやってくれないかな。 nico-opendata.jp openpose.pyの出力を元に3次元位置推定. ロボット-カメラキャリブレーション (robot camera calibratio…

メモ: openFrameworksで2点を指定してofCylinderPrimitiveを描画する方法

忘れそうだったのでメモ。 端点を2点指定してその間にシリンダーを描画するサンプル。 ofCylinderPrimitiveは、デフォルトで(0,1,0)の方向に長軸が表示されるので、そのベクトルを2点を結ぶベクトルに沿うように回転させるだけ。 原理は簡単。忘れそうなのは…

Open3DをIntel RealSense D435で動かすためにTestRealSense.cppをlibrealsense2に対応するよう改造する(その2)色付きPointCloudに変換

RealSense D435で取得したRGBColor画像とDepthをDepth解像度でlibrealsense側でalignして、Open3DのRGBD画像を作り、RGBD画像をさらにPointCloudに変換するサンプルです。 目視で確認したい場合は、DrawGeometriesのコメントアウトを外してください。ただし…

Open3Dに寄稿する方法とマナーを調べる

(編集中) Open3Dのソースコードは、githubで管理されています。普段、仕事ではほとんど必要ないので、githubはgit cloneして便利に人のソースコードを使わせてもらうか、メモ代わりにGistにコードを張り付けるだけで、あまりちゃんと使ったことがありませ…

Intel RealSense D435のキャリブレーション

Intel RealSense D435のデプスキャリブレーションの方法を調べていきます。 資料 まず目を通すべき重要な資料はこれです。 https://www.intel.com/content/dam/support/us/en/documents/emerging-technologies/intel-realsense-technology/RealSense_D400_Dy…

Open3DをIntel RealSense D435で動かすためにTestRealSense.cppをlibrealsense2に対応するよう改造する

Open3Dは、2018年3月現在v0.1です。頻繁にアップデートがあると思われますので、この記事はすぐ風化する予定です。Intel RealSense D435は、廃版になってしまったKinect1/2の代替として期待されている低価格のデプスセンサーです。同時に発売されたD415に対…

Open3DのPythonチュートリアルをC++に移植(その6) intaractive_visualization.py

Open3Dは、2018年3月現在v0.1です。頻繁にアップデートがあると思われますので、この記事はすぐ風化する予定です。interactive_visualizationは、マウス操作によるクロップ(領域きりだし)と、ポイント選択による初期位置指定をつかった位置合わせを提供し…

Open3DのPythonチュートリアルをC++に移植(その5) customized_visualizer.py

Open3Dは、2018年3月現在v0.1です。頻繁にアップデートがあると思われますので、この記事はすぐ風化する予定です。customized_visualizerは、キー入力、アニメーション、画面キャプチャなどのサンプルを提供しています。 これと類似のテストがすでにc++で用…

Open3DのPythonチュートリアルをC++に移植(その4) rgbd_integration.py

Open3Dは、2018年3月現在v0.1です。頻繁にアップデートがあると思われますので、この記事はすぐ風化する予定です。rgbd_integrationは、マージングなどの名前で知られる手法と同じで、位置合わせされた複数組の3次元点群から、無駄な点や面のない綺麗な1つ…

Open3DのPythonチュートリアルをC++に移植(その3) multiway_registration.py

Open3Dは、2018年3月現在v0.1です。頻繁にアップデートがあると思われますので、この記事はすぐ風化する予定です。multiway_registrationは、複数の3次元点群のシーケンスから、総当たりでPoseGraphを作って全体最適化を行って、3次元形状復元をします。pyth…

Open3DのPythonチュートリアルをC++に移植(その2) global_registration.py

Open3Dは、2018年3月現在v0.1です。頻繁にアップデートがあると思われますので、この記事はすぐ風化する予定です。global_registrationは、初期位置合わせの要らない位置合わせ手法を提供します。pythonチュートリアルはこちら。 Open3D/global_registration…

Open3DのPythonチュートリアルをC++に移植(その1) colored_point_registration.py

Open3Dは、2018年3月現在v0.1です。頻繁にアップデートがあると思われますので、この記事はすぐ風化する予定です。Open3Dは、とてもシンプルで使いやすそうな、Intel製3次元点群ライブラリです[1][2]。 Pythonチュートリアルはとても充実していてすぐに使え…

Finalイヤホンの研究(その4) E3000いぶし銀が届いたので、開封の儀

E3000-T25の開封の儀(自慢したいだけ)です。 箱は、化粧箱が無くとても小さい。他のモデルもこの箱で出してくれたら、かさばらなくてよいのに。 本体は、袋の中。 イヤーピースは、透明が5サイズ、イヤーフック付き。 音は、基本的にE3000そのままです。早…

MugichokoさんのRGB-D SLAM実装、Intel Euclidで動くかな?(その2)Jetson TX2で実行

残念ながら力及ばすで、Intel Euclidでは上手く動かす方法が見つかりませんでした。環境を変えて、Jetson TX2を使って同じ手順で実行してみます。ジオメトリシェーダSurfaceSplatting.geomのファイル名の指定が、小文字になってしまっていますのでLinuxでは…

Finalイヤホンの研究(その3) E4000/E5000の発売日

2017年11月時点のちょっと古い情報ですが、Finalの新しいEタイプのイヤホン E4000/E5000の発売が(台湾では)2018年4~5月ごろに予定されているそうです。ソースは中国語の雑誌(台湾かな?)、潮人物2017年12月號vol.86、です。 books.google.co.jpFinalの…

MugichokoさんのRGB-D SLAM実装、Intel Euclidで動くかな?(その1)コンパイル

面白そうなSLAMの実装が公開されています。ぱっと見、openFrameworksに移植してみたくなる感じです。 mugichoko.hatenablog.com Windowsを開発環境にされているようですが、OpenGLさえ動けばどの環境でも大丈夫そうです。MakefileやCMakeはまだ用意されてい…

Ubuntu16.04LTSのopenFrameworksでPS3EyeCameraを入力にして、ArUco3.0.4を動かす。(その1)カメラキャリブレーション編

ArUcoがVer.3でかなり高速に動くようになったらしい、ということはちょっと前に調べました。ところが、実験環境に使ったIntelEuclidのRGBカメラではフレームレートが上がらず、その実力はよくわかりませんでした。そこで、今回は部屋の隅に転がっていたPS3Ey…

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

[DL輪読会]Deep Reinforcement Learning that Matters from Deep Learning JP www.slideshare.net mugichoko.hatenablog.com Inverse Reinforcement On POMDP from Masato Nakai www.slideshare.net http://lab.cntl.kyutech.ac.jp/~nishida/lecture/psc/no1…

Finalイヤホンの研究(その2)Adagio Vのメンテナンス

Final Adagio Vは、ダイナミック型でステンレス筐体のイヤホンです。 特徴は、 BA型と言われたら信じてしまいそうなぐらいの、E3000を超える、鮮烈な音 (一癖、感じるものの) Finalにしては低音まで伸びていて、ややどんしゃりよりか比較的フラットな周波数…

逆強化学習の勉強を始めるためのリンク集

[0] https://people.eecs.berkeley.edu/~pabbeel/cs287-fa12/slides/inverseRL.pdf [1] 逆強化学習を理解する - Qiita[2] 逆強化学習のC言語による実装 逆強化学習をC言語で実装してみた - mabonki0725の日記 GitHub - mabonki0725/IRL_16cell [3] DNNによる…

Finalイヤホンの研究(その1)E2000/E3000の勧め

Final E2000/E3000は、安くてとても音の良いイヤホンです。気に入りすぎて、耳は2つしかないのに、無駄にFinal[1]のイヤホンを買い集めてしまっています。この中で一番良いと思うE2000を推していきます。 (左上から、F3100, E3000, E2000CS, Adagio 5, Heave…