Unreal Engine 5 で四脚ロボットの関節物理制御に成功しました。

Unreal Engine 5 エディター上でジタバタと動く Ant ロボット。

2025年の4月頃までは私は Genesis 物理シミュレーターロボットの物理シミュレーションを繰り返していました。
Genesis は比較的新しいオープン ソースかつ Python スクリプトで利用出来る素晴らしい物理シミュレーターですので、ありがたく使わせて頂いておりました。

自作の FlexNeuroAI という進化的アルゴリズムに基づき独自の工夫を加えた人工ニューラル ネットワークを仮想的なロボットの関節制御に接続して実験を行っていたのです。

ですが、そもそも Python スクリプトの実行の負荷が高い事に加え、マルチプロセッシングと疎行列計算の Numba JIT コンパイルによる並列化をしていたにも関わらず、CPU のコア数よりも遥かに多いスレッドとプロセスが生成される結果、コンテキスト スウィッチングなどで律速され、しかも Genesis のマルチスレッディングとの競合でパフォーマンスが振るわなかったのです

そこで、ゲーミングで優れた視覚と物理シミュレーションのパフォーマンスを発揮しているとされる Unreal Engine 5 に目を付け、これで AI の進化シミュレーションの為のロボット物理シミュレーションを行う事にしました。

まずは 3DCG ツールの Blender で、昔の MuJoCo でよく使われていた四脚ロボットの Ant の .xml ファイルからその見た目を再現し、ボーンを仕込み、 .fbx 形式でエクスポートしました。

書き出したモデルのファイルを Unreal Engine 5 (version 5.5)にインポートし、スケルタル メッシュ物理アセットスケルトンが正しく再現されるまでは何度も試行錯誤を重ねました。

そして、物理アセットにボディーを設定し、ボディー オブジェクト間にコンストレイントを設定し、ChatGPT をこれでもかというくらい使い倒して、どうにか物理シミュレーション ベースで C++ のコードにより四脚を自在に制御出来るようになりました。

冒頭の動画では単に乱数で関節を制御しています。

より詳細に述べると、 UE5 で “角度モーター制御” というのを行っております。

今後は自作の FlexNeuroAI のニューロンと UE5 上の Ant Robot の接続に挑みたいと思います。

コメント

タイトルとURLをコピーしました