皆さん、こんにちは。私はUnityエンジニアのMinh(ミン)です。現在、OneTech社に開発者(Unityチーム)として努めています。 今回は、VRデバイス(Oculus Quest)を介して産業用ロボットを制御するためのアプリケーションの作成を紹介します。
アプリ開発の背景
最近FacebookがMetaと名前を変更してメタバースというキーワードが話題になっています。メタバースはビジネスの世界でも注目を集める存在なっています。また昨年よりテレイグジステンスというキーワードも浮上してきました。VR技術で遠隔操作をするという概念です。まずは今回、VRで産業用ロボットの操作トレーニングをするという目的ですが、将来はテレイグジステンスのような使い方を想定しています。
VR(仮想現実)は、現実には存在しない空間を体験するための技術として進歩してきましたが、今日ではこの方向性とは少し異なる運用方法も注目されています。 VR技術を使ったテレイグジスタンスは、仮想空間ではなく実在する場所を遠隔から体験し、まるでそこへ本当に足を踏み入れたような感覚を提供してくれる技術です。 今回はテレイグジスタンスの概要について、ご紹介します。
VRコントロールアプリの紹介
VRコントロールアプリとは下記の2つの主な機能を備えたVR(Oculus Quest)デバイスで実行されるソフトウェアアプリケーションです。
- Control(制御): ユーザーがロボットを自由に制御して、部屋のオブジェクトと対話できます。
- Guide(ガイド): ロボットのシャットダウンプロセスの一連の手順です。

プロジェクトの目標
- シミュレーション環境でRobot Armsモデルを利用してスタッフのトレーニングします
- スタッフが最小限のリスクでロボットと対話できるようにします
- スタッフ向けのプロセスをガイドします
対象の産業ロボット
利用技術
- Unity Engine
- Oculus SDK
- CCD IK
-
VRモード内のリモートでArmsを制御する -
VRモードでの制御ガイド
実装ガイド
Unityで新3Dプロジェクトを作成する
UnityHub内で、Newを選択して、3Dをクリックし、projectの名前とパスを任意に設定します

Integrate Oculus Unity SDK
Oculus Questで実行できるアプリケーションを作成できるようにするには、パッケージマネージャーで使用できるOculus XR Pluginと呼ばれるプラグインを使用する必要があります。
Projectにプラグインをインポートするには: Windows Menu -> Package Manager -> Install

Oculus SDKを利用するVRタイプに、カメラとコントローラーを設定する
Oculus SDKをインストールした後、VRデバイスに使用できるようになります。
Playerを作成し、OVRCameraRigからprefabを付けます。このprefabはVRでのカメラを処理します。

VRで移動処理するため、SimpleCapsuleWithStickMovementというscriptを付けます

環境構築
- Robot Armsモデルをprefabsにインポートして、sceneに付けます
- Lightingを編集します
- チュートリアルボードのモデルを追加します

Robot armsの回転軸を制御するためのコードを設定します
チュートリアルボードのモデル、UI、コントローラーメニューのモデルをインポートします
各回転軸にAxisRotateControllerというscript を付けます。このscriptは、関節の回転を制御します。

パネルモードでは、ボタンのイベントを設定します。ユーザーがボタンを操作すると、該当関節が回転されます。

Guide(ガイド)のプロセスを制御するコードを設定する
各ステップで自動的に関節を制御するscriptを設定します

関節を開いて元の位置に回転させるサンプルscriptです。

各guide(ガイド)ステップでインタラクティブオブジェクトのコードを設定します

ロボットの最終クローズステップでの関節ロックするため、CCD IKを取り付けます。
CCD IKとは、ゲーム内の逆方向モーションの最も単純で一般的な方法の1つです。

CCDIKが稼働するとロボットが閉じます

アプリのビルド
ビルドガイドは次の記事をご参考ください: https://onetech.vn/blog/huong-dan-lap-trinh-oculus-go-oculus-quest-tren-unity-7126
Video Demo:
UnityでRobot Arms(ロボットの腕)を制御するシミュレーションプログラムのDemo動画です。
おわりに
上記は、UnityでRobot Arms(ロボットの腕)を制御するVRアプリケーションを作成するための基本的なガイドです。 これらは、UnityでVRアプリを作成するための最も基本的な手順です。 モデルまたは制御機能をアップグレードして、より完全なアプリケーションを作成できます。

これは会社のプロジェクトに参加した後の私の結果です。 このアプリケーションは、工場で実際の操作を実行する前に仮想Robot Armsデバイスを使用して練習するようにスタッフをトレーニングするのに役立ちます。VRゴーグルのトレーニングを通じて技術的な把握を深め、実際の機器で作業する際のリスクを軽減します。
ビジネスの目標も全てクリアできました。今回はシミュレーションが目的ですが将来はこのようなアプリケーションで危険な場所や人間がいけない場所にロボットによる作業ということも実現可能です。難しいキーワードですが”テレイグジステンス”という未来が近づいてきています。