Nov11’s diary(自宅での開発環境作り )

3Dプリンタと切削加工機で工作した事をアップして行きます

自作したロボットアームを制御する(仮想と現実)(その5)仮想現実(VR)完成!!

VisualStudio C++/CLIで、物理エンジンのOpen Dynamics EngineとOpenGLを使って、仮想現実(VR)上に物理法則を組み込む事が出来る様になったので、この空間にエド(ロボットアームの呼称)の情報を読込んで動作させてみました
が!、エドのオブジェクト情報をそのまま展開すると、ジオメトリパーツが多すぎて演算時間が大変な事になってしまった
んで、どうしようかと考えていたら、アニメの「ID-0」で、よく使われていたフレーズ「空間にメッシュを展開する」を思い出しましたので、エドの各パーツの周囲にざっくりメッシュを展開し、この情報を元にジオメトリを作成したら、おぉ~動いてくれましたぁ~!

早速、空間上にドミノを配置してエドにドミノ倒しをさせたところ、上手く行かない...
何故だか、ドミノがとんでもない速さで、どこかへ消し飛んでしまう...
調べた結果、エドのパーツがドミノに食い込むと、とんでもない反発を起こし、その反動で飛んで行ってしまうみたいなので、方針を変えて、エドを動作させた際に、どのジオメトリにどのように衝突するのかを予め求めて、衝突する直前に対象とする対象ジオメトリに外力をかける様に変更し、何とか(衝撃力の計算が微妙)期待通りの動きをしてくれたけど、若干の不自然さは否めないってところですね
この不自然さの原因は、エドを物理法則の外に置いているせいなので、やっぱりエドも物理空間に実体として存在させた上で、適切な力を加える事で動作させないと解決しないみたいですね
ふぅ~、しばらくトライアル&エラーが続きそうです...

少し不自然ですが、動作結果は、こんな感じです

f:id:Nov11:20170827182728j:plain

動画はこんな感じです

後は、ここに現実空間で認識した物体を反映させ、仮想空間と現実空間の同期がとれる様になれば、アニメの「アルドノア・ゼロ」に登場する「タルシス」みたいな予測行動ができるようになるかもですね
&簡単な物理計算もできるので、ウェアラブルディスプレイを使えば、「界塚 伊奈帆」の左目とか「電脳コイル」のメガネとかも出来る様になるかもですね

その為にも、2Dカメラ映像の3D変換プログラムを作成しなければ...
アルゴリズムは考えたけど、なかなかの作業量になりそうです...

なお、ブログの内容を参照して実行した結果に責任は負いかねますので、ご了承下さい