cvl-robot's diary

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

2013-01-01から1年間の記事一覧

openFrameworks v0.8(Visual Studio2012版x64)の64ビット化できるかな?

(2014.05.02補足。現在はこちらのsadmbさんのaddonが使いやすくて良いですよ。 http://forum.openframeworks.cc/t/ofxkinect2-addon-of-kinect-for-windows-v2-device-with-microsoft-sdk/15013) ドラッグアンドドロップとQuickTimeによる動画操作ができま…

おまけ:RICOH THETAのJPG画像を平面-球変換してOpenGLで表示する(その7)

全天球画像をSONY HMZ-TシリーズなどのHMDで楽しみたい場合、前回紹介した汎用IMUを取り付けると上手く動かすことができます。前回紹介したSerialThread.cppとSerialThread.hおよび(その6)で紹介したricohThetaExampleを使って、HMDで見られるように改造…

IMU(9DOF Razor)のシリアル出力を読み込む(その2)

一般にRS232Cシリアル通信は遅いので、マルチスレッド化してメインスレッドの処理の邪魔をしないようにします。SerialThreadというクラスにまとめています。マルチスレッドの書き方は、 of_v0.8.0_vs_release\examples\utils\threadExampleの下のサンプルコ…

IMU(9DOF Razor)のシリアル出力を読み込む

全天球画像をヘッドマウントディスプレイやタブレットPCなどで任意の方向に臨場感たっぷり見たい場合、ユーザが見ている方向を知る必要があります。そのためにIMUが搭載されているデバイスもありますが、搭載されていないものも多いので、汎用に使えるデバイ…

portaudio, fftw, libsndfile

(編集中) 昔作ったHRTFヘッドホンにバグが発見されたようなので、デバッグがてら公開予定。久しぶりにPCオーディオの世界を調べてみると、進歩していないようで意外と進んでいる。32bit-floatオーディオフォーマットが標準で使われるようになるといい…

おまけ:RICOH THETAのJPG画像を平面-球変換してOpenGLで表示する(その6)

RICOH THETA for openFrameworksのテクスチャマッピング版 簡単になりすぎて、勉強にならないから困ります、、、。こちらはGPUの無いレッツノートでも動きます。 githubに上げました。 https://github.com/dotchang/ricohThetaExample testApp.cpp #include …

おまけ:RICOH THETAのJPG画像を平面-球変換してOpenGLで表示する(その5)

RICOH THETA for openFrameworksのソースコード (要:高速なGPU) openFrameworksのexampleのpointCloudExampleに、ファイルを置き換えて使ってください。 exeにjpgをドラッグアンドドロップで起動するか、コマンドプロンプトから一つ目の引数にファイルパス…

おまけ:RICOH THETAのJPG画像を平面-球変換してOpenGLで表示する(その4)

zenithの補正と、ofEasyCamだとRollの回転が入ってしまいちょっと見づらい状況が出来てしまうのを直します。 ・zenith角から天頂方向を計算して、その分逆に回転します。カメラの向きを直すのは面倒そうなので、モデルの方を回します。 ・カメラの上方向ベク…

メモ:OpenCVにjpeg-turboを組み込む

準備するもの jpeg-turboのスタティックライブラリ OpenCVをCMakeする BUILD_JPEGのチェックを外す WITH_JPEGのチェックが入っていることを確認する +Add Entryで2つの項目を足す JPEG_LIBRARY Type: FILEPATH Value: C:/workspace/libjpeg-turbo-1.3.0/rele…

おまけ:RICOH THETAのJPG画像を平面-球変換してOpenGLで表示する(その3)

(編集中) このページで紹介されている加速度情報の取得のC++翻訳版、とりあえずWindowsで動けば良いや編。あとで整理するかも。*1 http://d.hatena.ne.jp/xanxys/20131110/1384094832 #include <fstream> ifstream fin; unsigned char head[10*1000]; union { int </fstream>…

KinectFusionColorBasicsで扱われているデータ型

(編集中) 場当たり的に開発していたら、データ型がなんだか一杯あって混乱してきてしまったので確認しておきます。 m_pVolume The Kinect Fusion Reconstruction Volume, kinectFusionの復元データと大半のメソッド m_pDepthFloatImage the depth input, デ…

liblo: Lightweight OSC implementationのインストール

liblo本家のホームページはこちら。 http://liblo.sourceforge.net/ Downloadでは無く、下のViewGitからDownload Snapshotでソースコードを持ってきます。POSIX環境なら、./configure,sudo make installで簡単にインストールできます。WindowsのMSVC環境では…

OpenSoundControlライブラリのlibloを便利に使えるように、クラスのメンバー関数をコールバック関数に登録できるようにする

(編集中) ネットワークの設計方針 ロボットの遠隔操作の通信系をどのように設計するべきかを考えた場合、トラブルに頑健であることが最優先事項に挙げられます。ネットワークの頑健性は、 接続が切れにくい 接続が切れても復帰できる データが一部欠損しても…

おまけ:RICOH THETAのJPG画像を平面-球変換してOpenGLで表示する(その2)

ズームを引いていくと裏面が見えてしまう問題の解消は、面を張って、視線と対抗しない法線を持つ面を描画しなければ良い、と適当に説明しっぱなしになっていたのが気がかりだったので、ソースコードを乗っけておきます。 メッシュを三角ポリゴンで表示するよ…

大きなデータをネットワーク送信する間、他の処理が停止しないように、Windows用マルチスレッドを使えるようにする準備

マルチスレッド用ライブラリは、沢山ありますがposix環境ならpthreadが一般的です。Windows用にビルドされたpthreadライブラリも配布されていますので、一般的にはそれを使うのが良いと思います。 ただ今は、KinectFusionColorBasicsをマルチスレッド対応に…

Kinectの点群データ圧縮のためにc++で使える圧縮解凍ライブラリgoogle snappyをMSVCでビルドする

3次元点群データは、データサイズが大きくなります。現在のPCであればローカルで扱う分には特に問題ないのですが、ネットワークはギガビットイーサ以降進歩が滞っているので遠隔地に送りたい場合には大きすぎます。また、多少ネットワークが速くなったと…

KinectFusionの出力結果を読み込んで座標系を合わせて表示(オフライン)

KinectFusionColorBasisで得られるPointCloudは、キネクトのローカル座標系で表現されています。これをロボットのカメラの座標系に一致させて表示させていきます。 カメラの座標系の求め方は以前やっていますので、あとはキネクトデータの座標系をロボットの…

補助平面で逆運動学のターゲットを操作

ロボットをマウスで直感的に操作するために、補助平面の導入をしました。その実行サンプルです。遅くなりましたが、ソースコードをGitHubにアップロードしました。 HIRONXGUIControler.hに3行足します。新しく定義したPlanePickerクラスのインスタンスと、マ…

おまけ:RICOH THETAのJPG画像を平面-球変換してOpenGLで表示する

RICOHのTHETAが来たので、全方位画像をOpenGLで表示出来るようにしてみます。いつものように、openFrameworksのpointCloudExampleを改造して作ります。おそらく単純な極座標変換で大丈夫なので*1、画像座標を極座標(球面座標)値と見立てて、半径Rの球状の…

KinectFusionのFrameTextureからPointCloudを取り出す

D3DとかMicrosoft方言は使ったことが無いとチンプンカンプンです困りますね。LockRectとか何の必要性があって存在するのかピンと来ません*1。それはさておき、KinectFusionで得られた結果の中から3次元位置を取得しましょう。 参考になるのは、本家のForum…

視覚フィードバック制御のためのカメラ導入 その1

初出:2013/10/25, 最終更新:2013/10/28 21.KinectFusionColorBasicsのOpenCV対応 次の中期開発目標を、ロボットの視覚を用いたフィードバック制御にします。というのは、HIROのアームは位置決め精度が悪くmoveRelativeなどのコマンドを繰り返し使用する…

補助平面の導入

20.マウスで3次元空間の操作 今考える空間には、スクリーン座標系、ロボット座標系、世界座標系が存在します。補助平面は、ロボットを動かすためにロボットの周辺に配置したいものですから、ロボット座標系で管理することにします。したがって、出力とし…

カメラターゲットの変更

19.カメラターゲットの変更 F1,F2、F3キーで複数のロボットを導入した際に、カメラのターゲットを変更できるようにしました。targetというポインタ変数を導入して、操作対象のロボットを選択できるようにしただけです。GitHubのtestApp.cppのソー…

ソースコード公開ofxRobotCoordinatorExample

手探りでGitHubを使い始めてみました。 プログラムに名前をつける必要ができたので、ofxRobotCoordinatorExampleと名付けました。ロボットの座標系と調整役のコーディネータを掛けて気取っているつもり。 https://github.com/dotchang/ofxRobotCoordinatorEx…

ikfastによる逆運動学(その3)

(編集中) OpenRaveのikfastを使って、pa10でもIKを使えるようにしてみます。 ここで使っているOpenHRP用PA10モデルはOpenRaveのモデルとルートの座標系のとり方が違っているようなので、IKターゲットを座標変換してからikfastに入力します。HIRONXと同じよ…

ikfastによる逆運動学(その2)

ライブラリのリンク #pragma comment(lib, "C:\\Users\\yoshi\\Downloads\\of_v0.8.0_vs_release\\examples\\addons\\assimpExample\\bin\\ClapackWin.lib") ikfastの利用方法 引数の渡し方 [入力] 姿勢:3x3, [入力] 位置:3、 [出力] 解:可変長二次元配列…

ikfastによる逆運動学(その1)

http://openrave.org/docs/latest_stable/ikfast/kawada-hironx/ ikfast60.Lookat3D.1_2.cpp ikfast60.Lookat3D.1_2_f0.cpp ikfast60.Transform6D.3_4_5_6_7_8.cpp ikfast60.Transform6D.3_4_5_6_7_8_f0.cpp ikfast60.Transform6D.13_14_15_16_17_18.cpp ikf…

ロボットの視界シミュレーション

初稿: 2013/10/13, 最終更新: 文責: Yoshihiro Sato 15.ロボットの視線で画面を表示する しばらくプログラミング優先でロボットっぽい話題から離れていましたので、ロボットに戻りましょう。次は、ロボットのカメラとGUIコントローラをつないでいく方…

付録2.モデルの表示のカラー化

PA10モデルのカラー化 for(int i=0; i

ロボットGUIコントローラのクラス化

複数のロボットど同時に扱うことも簡単にできるようになりました。