XML-RPCは古いインターフェースですが、Pythonの標準ライブラリでサーバーが簡単に作れるので、C++からPythonを呼び出したい時など、時と場合によっては便利に使えます。以前libxmlrpc++を紹介したことがありますが、今回のはxmlrpc for c and c++(xmlrpc-c)…
nuitrack. RealSenseD400シリーズと組み合わせてKinect2の人体認識の代替に使えそうな有料ライブラリ。30$/センサーなので十分安い。 qiita.com 画像処理を高速化できる(2~10倍ぐらい見込める)Halide言語について。 [1807.05520] Deep Clustering for Uns…
OpenGLの描画結果のデプス値を単位を直して画像データとして取得するサンプル。詳細は[1]を参照のこと。 1. glReadPixelsでデプスバッファのデータを読み込み 2. nearClipとfarClipでデプス値を正規化 3. 上下反転されているので入れ替え ofPixels pix; pix…
integrate_scene.h #pragma once // Open3D: www.open3d.org // The MIT License (MIT) // See license file or visit www.open3d.org for details #include <Core/Core.h> #include <IO/IO.h> #include <Visualization/Visualization.h> void integrate_scene_main(std::string path_dataset, std::string path_in</visualization/visualization.h></io/io.h></core/core.h>…
register_fragments.h #pragma once // Open3D: www.open3d.org // The MIT License (MIT) // See license file or visit www.open3d.org for details #include <Core/Core.h> #include <IO/IO.h> #include <Visualization/Visualization.h> void register_fragments_main(std::string path_dataset_); register_fr</visualization/visualization.h></io/io.h></core/core.h>…
openFrameworksの呼び出し部分の例と実行結果。 ofApp.cpp // Open3D: www.open3d.org // The MIT License (MIT) // See license file or visit www.open3d.org for details #include "ofApp.h" #include "make_fragments.h" #pragma comment(lib, "Open3D.l…
make_fragmentのc++移植の続き opencv_pose_estimation.h #pragma once // Open3D: www.open3d.org // The MIT License (MIT) // See license file or visit www.open3d.org for details #include <Core/Core.h> #include <IO/IO.h> #include <Visualization/Visualization.h> #include <opencv/cv.h> std::tuple</opencv/cv.h></visualization/visualization.h></io/io.h></core/core.h>
Open3DのReconstruction Systetmは,距離画像とカラー画像の動画シーケンスから立体モデルを復元するためのPythonチュートリアルです。 詳細はこちらにあります。 Reconstruction system — Open3D 0.1 dev documentation テストデータは、上記で紹介されてい…
Open3Dは、3次元点群処理が簡単に出来て便利です。ですが、いくつか弱点があって ・Visualizationが便利なようで自由が利かず不便 ・フォーマットが良く分からなくなることがある。ex. PointCloudとTriangleMeshの違いは? ・他のライブラリとのリンクが不便…
Optimal and Autonomous Control Using Reinforcement Learning: A Survey - IEEE Journals & Magazine 機械学習は、制御の自動化の方向へ進んでいくのは間違いない。 Dex-Net by BerkeleyAutomation 自動ビンピッキング Kinematic and Dynamic Solvers | Th…
三角ポリゴンの集合で表現された任意形状をofxBulletで扱うためには, ofxBulletCustomShape()クラスを使います。 普通に動力学シミュレーションで使うだけなら、Exampleに倣って実行すれば問題ないかと思います。 github.com ofxBullletCustomShapeクラスの…
OMPLが自由に使えるようになって経路計画がお手軽で楽しいのですが、衝突判定を自分で書くのが億劫です。プリミティブな形状同士の衝突判定は一つ一つであればたいして難しくもありませんが、効率的に、さまざまな形状の、複数物体同士を、衝突するものとし…
また[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>…
omplのdemo_RigidBodyPlanningWithControlsをopenFrameworksに移植していきます。 ofxOMPL.hの更新 必要なヘッダーファイルを足していきます。 ofxOMPL.h #pragma once // Plaease add these settings manually // #include path example: D:\workspace\ompl…
障害物を追加してみましょう。参考文献1を参考に、障害物を置きます。変更点を抜粋して説明していきます。 1.障害物オブジェクトobstacleをofApp.hで定義します。 ofAppクラスに物体を定義します。 ofBoxPrimitive obstacle; 2.isStateValid関数に判別…
ビルドの準備が整いましたので、ompl.slnを開いてビルドをしていきます。 ハマリポイント4 omplのEigenのパスが一部おかしい。 そのままビルドにかけると、Eigenのインクルードパスがおかしいとエラーが出ます。Linuxとかだと多分大丈夫なんでしょうけど、 …
ロボットの経路計画や動作計画用ライブラリとして有名なOMPL(OpenMotionPlanningLibrary)をWindows10MSVC環境のopenFrameworksで動かせるようにしたいと思います。 The Open Motion Planning Library 当初は、C++できれいに書かれているし単に.libをリン…
github.com MotionCaptureデータのビューアやアノテーションなどに使えるopenFrameworksアドオン。VRM対応誰かやってくれないかな。 nico-opendata.jp openpose.pyの出力を元に3次元位置推定. ロボット-カメラキャリブレーション (robot camera calibratio…
忘れそうだったのでメモ。 端点を2点指定してその間にシリンダーを描画するサンプル。 ofCylinderPrimitiveは、デフォルトで(0,1,0)の方向に長軸が表示されるので、そのベクトルを2点を結ぶベクトルに沿うように回転させるだけ。 原理は簡単。忘れそうなのは…
RealSense D435で取得したRGBColor画像とDepthをDepth解像度でlibrealsense側でalignして、Open3DのRGBD画像を作り、RGBD画像をさらにPointCloudに変換するサンプルです。 目視で確認したい場合は、DrawGeometriesのコメントアウトを外してください。ただし…
(編集中) Open3Dのソースコードは、githubで管理されています。普段、仕事ではほとんど必要ないので、githubはgit cloneして便利に人のソースコードを使わせてもらうか、メモ代わりにGistにコードを張り付けるだけで、あまりちゃんと使ったことがありませ…
Intel RealSense D435のデプスキャリブレーションの方法を調べていきます。 資料 まず目を通すべき重要な資料はこれです。 https://www.intel.com/content/dam/support/us/en/documents/emerging-technologies/intel-realsense-technology/RealSense_D400_Dy…
Open3Dは、2018年3月現在v0.1です。頻繁にアップデートがあると思われますので、この記事はすぐ風化する予定です。Intel RealSense D435は、廃版になってしまったKinect1/2の代替として期待されている低価格のデプスセンサーです。同時に発売されたD415に対…
Open3Dは、2018年3月現在v0.1です。頻繁にアップデートがあると思われますので、この記事はすぐ風化する予定です。interactive_visualizationは、マウス操作によるクロップ(領域きりだし)と、ポイント選択による初期位置指定をつかった位置合わせを提供し…
Open3Dは、2018年3月現在v0.1です。頻繁にアップデートがあると思われますので、この記事はすぐ風化する予定です。customized_visualizerは、キー入力、アニメーション、画面キャプチャなどのサンプルを提供しています。 これと類似のテストがすでにc++で用…
Open3Dは、2018年3月現在v0.1です。頻繁にアップデートがあると思われますので、この記事はすぐ風化する予定です。rgbd_integrationは、マージングなどの名前で知られる手法と同じで、位置合わせされた複数組の3次元点群から、無駄な点や面のない綺麗な1つ…
Open3Dは、2018年3月現在v0.1です。頻繁にアップデートがあると思われますので、この記事はすぐ風化する予定です。multiway_registrationは、複数の3次元点群のシーケンスから、総当たりでPoseGraphを作って全体最適化を行って、3次元形状復元をします。pyth…
Open3Dは、2018年3月現在v0.1です。頻繁にアップデートがあると思われますので、この記事はすぐ風化する予定です。global_registrationは、初期位置合わせの要らない位置合わせ手法を提供します。pythonチュートリアルはこちら。 Open3D/global_registration…
Open3Dは、2018年3月現在v0.1です。頻繁にアップデートがあると思われますので、この記事はすぐ風化する予定です。Open3Dは、とてもシンプルで使いやすそうな、Intel製3次元点群ライブラリです[1][2]。 Pythonチュートリアルはとても充実していてすぐに使え…
E3000-T25の開封の儀(自慢したいだけ)です。 箱は、化粧箱が無くとても小さい。他のモデルもこの箱で出してくれたら、かさばらなくてよいのに。 本体は、袋の中。 イヤーピースは、透明が5サイズ、イヤーフック付き。 音は、基本的にE3000そのままです。早…