2013-01-01から1年間の記事一覧
(2014.05.02補足。現在はこちらのsadmbさんのaddonが使いやすくて良いですよ。 http://forum.openframeworks.cc/t/ofxkinect2-addon-of-kinect-for-windows-v2-device-with-microsoft-sdk/15013) ドラッグアンドドロップとQuickTimeによる動画操作ができま…
全天球画像をSONY HMZ-TシリーズなどのHMDで楽しみたい場合、前回紹介した汎用IMUを取り付けると上手く動かすことができます。前回紹介したSerialThread.cppとSerialThread.hおよび(その6)で紹介したricohThetaExampleを使って、HMDで見られるように改造…
一般にRS232Cシリアル通信は遅いので、マルチスレッド化してメインスレッドの処理の邪魔をしないようにします。SerialThreadというクラスにまとめています。マルチスレッドの書き方は、 of_v0.8.0_vs_release\examples\utils\threadExampleの下のサンプルコ…
全天球画像をヘッドマウントディスプレイやタブレットPCなどで任意の方向に臨場感たっぷり見たい場合、ユーザが見ている方向を知る必要があります。そのためにIMUが搭載されているデバイスもありますが、搭載されていないものも多いので、汎用に使えるデバイ…
(編集中) 昔作ったHRTFヘッドホンにバグが発見されたようなので、デバッグがてら公開予定。久しぶりにPCオーディオの世界を調べてみると、進歩していないようで意外と進んでいる。32bit-floatオーディオフォーマットが標準で使われるようになるといい…
RICOH THETA for openFrameworksのテクスチャマッピング版 簡単になりすぎて、勉強にならないから困ります、、、。こちらはGPUの無いレッツノートでも動きます。 githubに上げました。 https://github.com/dotchang/ricohThetaExample testApp.cpp #include …
RICOH THETA for openFrameworksのソースコード (要:高速なGPU) openFrameworksのexampleのpointCloudExampleに、ファイルを置き換えて使ってください。 exeにjpgをドラッグアンドドロップで起動するか、コマンドプロンプトから一つ目の引数にファイルパス…
zenithの補正と、ofEasyCamだとRollの回転が入ってしまいちょっと見づらい状況が出来てしまうのを直します。 ・zenith角から天頂方向を計算して、その分逆に回転します。カメラの向きを直すのは面倒そうなので、モデルの方を回します。 ・カメラの上方向ベク…
準備するもの jpeg-turboのスタティックライブラリ OpenCVをCMakeする BUILD_JPEGのチェックを外す WITH_JPEGのチェックが入っていることを確認する +Add Entryで2つの項目を足す JPEG_LIBRARY Type: FILEPATH Value: C:/workspace/libjpeg-turbo-1.3.0/rele…
(編集中) このページで紹介されている加速度情報の取得のC++翻訳版、とりあえずWindowsで動けば良いや編。あとで整理するかも。*1 http://d.hatena.ne.jp/xanxys/20131110/1384094832 #include <fstream> ifstream fin; unsigned char head[10*1000]; union { int </fstream>…
(編集中) 場当たり的に開発していたら、データ型がなんだか一杯あって混乱してきてしまったので確認しておきます。 m_pVolume The Kinect Fusion Reconstruction Volume, kinectFusionの復元データと大半のメソッド m_pDepthFloatImage the depth input, デ…
liblo本家のホームページはこちら。 http://liblo.sourceforge.net/ Downloadでは無く、下のViewGitからDownload Snapshotでソースコードを持ってきます。POSIX環境なら、./configure,sudo make installで簡単にインストールできます。WindowsのMSVC環境では…
(編集中) ネットワークの設計方針 ロボットの遠隔操作の通信系をどのように設計するべきかを考えた場合、トラブルに頑健であることが最優先事項に挙げられます。ネットワークの頑健性は、 接続が切れにくい 接続が切れても復帰できる データが一部欠損しても…
ズームを引いていくと裏面が見えてしまう問題の解消は、面を張って、視線と対抗しない法線を持つ面を描画しなければ良い、と適当に説明しっぱなしになっていたのが気がかりだったので、ソースコードを乗っけておきます。 メッシュを三角ポリゴンで表示するよ…
マルチスレッド用ライブラリは、沢山ありますがposix環境ならpthreadが一般的です。Windows用にビルドされたpthreadライブラリも配布されていますので、一般的にはそれを使うのが良いと思います。 ただ今は、KinectFusionColorBasicsをマルチスレッド対応に…
3次元点群データは、データサイズが大きくなります。現在のPCであればローカルで扱う分には特に問題ないのですが、ネットワークはギガビットイーサ以降進歩が滞っているので遠隔地に送りたい場合には大きすぎます。また、多少ネットワークが速くなったと…
KinectFusionColorBasisで得られるPointCloudは、キネクトのローカル座標系で表現されています。これをロボットのカメラの座標系に一致させて表示させていきます。 カメラの座標系の求め方は以前やっていますので、あとはキネクトデータの座標系をロボットの…
ロボットをマウスで直感的に操作するために、補助平面の導入をしました。その実行サンプルです。遅くなりましたが、ソースコードをGitHubにアップロードしました。 HIRONXGUIControler.hに3行足します。新しく定義したPlanePickerクラスのインスタンスと、マ…
RICOHのTHETAが来たので、全方位画像をOpenGLで表示出来るようにしてみます。いつものように、openFrameworksのpointCloudExampleを改造して作ります。おそらく単純な極座標変換で大丈夫なので*1、画像座標を極座標(球面座標)値と見立てて、半径Rの球状の…
D3DとかMicrosoft方言は使ったことが無いとチンプンカンプンです困りますね。LockRectとか何の必要性があって存在するのかピンと来ません*1。それはさておき、KinectFusionで得られた結果の中から3次元位置を取得しましょう。 参考になるのは、本家のForum…
初出:2013/10/25, 最終更新:2013/10/28 21.KinectFusionColorBasicsのOpenCV対応 次の中期開発目標を、ロボットの視覚を用いたフィードバック制御にします。というのは、HIROのアームは位置決め精度が悪くmoveRelativeなどのコマンドを繰り返し使用する…
20.マウスで3次元空間の操作 今考える空間には、スクリーン座標系、ロボット座標系、世界座標系が存在します。補助平面は、ロボットを動かすためにロボットの周辺に配置したいものですから、ロボット座標系で管理することにします。したがって、出力とし…
19.カメラターゲットの変更 F1,F2、F3キーで複数のロボットを導入した際に、カメラのターゲットを変更できるようにしました。targetというポインタ変数を導入して、操作対象のロボットを選択できるようにしただけです。GitHubのtestApp.cppのソー…
手探りでGitHubを使い始めてみました。 プログラムに名前をつける必要ができたので、ofxRobotCoordinatorExampleと名付けました。ロボットの座標系と調整役のコーディネータを掛けて気取っているつもり。 https://github.com/dotchang/ofxRobotCoordinatorEx…
(編集中) OpenRaveのikfastを使って、pa10でもIKを使えるようにしてみます。 ここで使っているOpenHRP用PA10モデルはOpenRaveのモデルとルートの座標系のとり方が違っているようなので、IKターゲットを座標変換してからikfastに入力します。HIRONXと同じよ…
ライブラリのリンク #pragma comment(lib, "C:\\Users\\yoshi\\Downloads\\of_v0.8.0_vs_release\\examples\\addons\\assimpExample\\bin\\ClapackWin.lib") ikfastの利用方法 引数の渡し方 [入力] 姿勢:3x3, [入力] 位置:3、 [出力] 解:可変長二次元配列…
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コントローラをつないでいく方…
PA10モデルのカラー化 for(int i=0; i
複数のロボットど同時に扱うことも簡単にできるようになりました。