UNITYで産業用ロボットをVRアプリでコントロール

皆さん、こんにちは。私はUnityエンジニアのMinh(ミン)です。現在、OneTech社に開発者(Unityチーム)として努めています。 今回は、VRデバイス(Oculus Quest)を介して産業用ロボットを制御するためのアプリケーションの作成を紹介します。

アプリ開発の背景

最近FacebookがMetaと名前を変更してメタバースというキーワードが話題になっています。メタバースはビジネスの世界でも注目を集める存在なっています。また昨年よりテレイグジステンスというキーワードも浮上してきました。VR技術で遠隔操作をするという概念です。まずは今回、VRで産業用ロボットの操作トレーニングをするという目的ですが、将来はテレイグジステンスのような使い方を想定しています。

VRで遠隔存在?テレイグジスタンスの機能とは

VR(仮想現実)は、現実には存在しない空間を体験するための技術として進歩してきましたが、今日ではこの方向性とは少し異なる運用方法も注目されています。 VR技術を使ったテレイグジスタンスは、仮想空間ではなく実在する場所を遠隔から体験し、まるでそこへ本当に足を踏み入れたような感覚を提供してくれる技術です。 今回はテレイグジスタンスの概要について、ご紹介します。

VRコントロールアプリの紹介

VRコントロールアプリとは下記の2つの主な機能を備えたVR(Oculus Quest)デバイスで実行されるソフトウェアアプリケーションです。

  1. Control(制御): ユーザーがロボットを自由に制御して、部屋のオブジェクトと対話できます。
  2. Guide(ガイド): ロボットのシャットダウンプロセスの一連の手順です。
UNITYでRobot arms(ロボットの腕)制御のプログラミングのガイド
UNITYでRobot arms(産業用ロボット)制御

プロジェクトの目標

  • シミュレーション環境でRobot Armsモデルを利用してスタッフのトレーニングします
  • スタッフが最小限のリスクでロボットと対話できるようにします
  • スタッフ向けのプロセスをガイドします

対象の産業ロボット

小型・超速ロボット MZ04/MZ04E

利用技術

  • Unity Engine
  • Oculus SDK
  • CCD IK

実装ガイド

Unityで新3Dプロジェクトを作成する

UnityHub内で、Newを選択して、3Dをクリックし、projectの名前とパスを任意に設定します

Unityで新3Dプロジェクトを作成する
Unityで新3Dプロジェクトを作成する

Integrate Oculus Unity SDK

Oculus Questで実行できるアプリケーションを作成できるようにするには、パッケージマネージャーで使用できるOculus XR Pluginと呼ばれるプラグインを使用する必要があります。

Projectにプラグインをインポートするには: Windows Menu -> Package Manager -> Install

Integrate Oculus Unity SDK

Oculus SDKを利用するVRタイプに、カメラとコントローラーを設定する

Oculus SDKをインストールした後、VRデバイスに使用できるようになります。

Playerを作成し、OVRCameraRigからprefabを付けます。このprefabはVRでのカメラを処理します。

Oculus SDKを利用するVRタイプに、カメラとコントローラーを設定する
Oculus SDKを利用するVRタイプに、カメラとコントローラーを設定する

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

SimpleCapsuleWithStickMovementというscriptを付ける
SimpleCapsuleWithStickMovementというscriptを付ける

環境構築

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

Robot armsの回転軸を制御するためのコードを設定します

チュートリアルボードのモデル、UI、コントローラーメニューのモデルをインポートします

各回転軸にAxisRotateControllerというscript を付けます。このscriptは、関節の回転を制御します。

AxisRotateControllerというscript を付ける
AxisRotateControllerというscript を付ける

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

ボタンのイベントを設定する
ボタンのイベントを設定する

Guide(ガイド)のプロセスを制御するコードを設定する

各ステップで自動的に関節を制御するscriptを設定します

各ステップで自動的に関節を制御するscriptを設定する
各ステップで自動的に関節を制御するscriptを設定する

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

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

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

 インタラクティブオブジェクトのコードを設定する
インタラクティブオブジェクトのコードを設定する

ロボットの最終クローズステップでの関節ロックするため、CCD IKを取り付けます。

CCD IKとは、ゲーム内の逆方向モーションの最も単純で一般的な方法の1つです。

各関節をロックするため、CCDIKを取り付ける
各関節をロックするため、CCDIKを取り付ける

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

CCDIKが稼働するとロボットが閉じる
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アプリを作成するための最も基本的な手順です。 モデルまたは制御機能をアップグレードして、より完全なアプリケーションを作成できます。

 

Le Quang MinhとRobot Arms demo
Le Quang MinhとRobot Arms demo

これは会社のプロジェクトに参加した後の私の結果です。 このアプリケーションは、工場で実際の操作を実行する前に仮想Robot Armsデバイスを使用して練習するようにスタッフをトレーニングするのに役立ちます。VRゴーグルのトレーニングを通じて技術的な把握を深め、実際の機器で作業する際のリスクを軽減します。

ビジネスの目標も全てクリアできました。今回はシミュレーションが目的ですが将来はこのようなアプリケーションで危険な場所や人間がいけない場所にロボットによる作業ということも実現可能です。難しいキーワードですが”テレイグジステンス”という未来が近づいてきています。

無料相談・お問い合わせ
ご相談やお見積もりは全て 無料 で対応いたします。

    「個人情報保護方針」をお読みいただき同意いただける場合は「送信」ボタンを押して下さい。
    入力していただいたメールアドレス宛に自動返信メールを送信していますので、お手数ですがそちらをご確認ください。
    無料相談・お問い合わせ
    ご相談やお見積もりは全て 無料 で対応いたします。

      「個人情報保護方針」をお読みいただき同意いただける場合は「送信」ボタンを押して下さい。
      入力していただいたメールアドレス宛に自動返信メールを送信していますので、お手数ですがそちらをご確認ください。
      無料相談
      お問い合わせ