EXOS Unity SDK Document

 

 

 

Last updated on Apr 23, 2019

 

対応バージョン

Managed Unity DLL / Unity 2018 or Later / .Net Framework 4.7.1

 

 

 

デバイスの設定

EXOS Wrist Setup Manualをお読みください。

 

 

インストール方法

1.Edit>Player Setting>Other Setting>Configuration>Scripting Runtime Versionで.NET 4.x Equivalentを選択してください。

2.EXOS_Unity_SDK_vXXXをインストールしてください。

 

 

 

サンプルコード

1.新規シーンを作成してください。

 

2.末尾に示すサンプルコードSampleTestを作成してください。

 

3.2で作成したコードを適当な新規オブジェクトにアタッチします。

 

4.EXOS_SDK/Standard/ExosAssets/DeviceのExosDevice.assetsをスクリプトに設定します。

※右Wristを使用する場合はEXOS_Wrist_DK2_Rを設定してください。

 

5.デバイスをPCに接続し、シーンを再生してみてください。手首関節の角度が取得され、Unityに表示されます。

 

※無線接続を行う場合にはプライベートネットワークとして接続されていることをご確認ください。

 

 

値取得のためのサンプルコード:

using exiii.Unity.Device;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class SampleTest : MonoBehaviour {

    [SerializeField]
    private ExosDevice m_Device;

    void Start () {

        if (m_Device == null)
        {
            return;
        }

        if(!m_Device.Enabled)
        {
            m_Device.InitializeAsync();
        }
    }

    void Update () {

        ExosJoint joint_abduction = m_Device.GetJoint(EAxisType.Abduction);
        ExosJoint joint_flextion = m_Device.GetJoint(EAxisType.Flexion);
        if (joint_abduction == null || joint_flextion == null)
        {
            return;
        }

        float force_abduction = joint_abduction.ForceRatio;
        float force_flextion = joint_flextion.ForceRatio;

        float angle_abduction = joint_abduction.AngleRatio;
        float angle_flextion = joint_flextion.AngleRatio;

        Debug.LogFormat("force: abduction:{0} flextion:{1}", force_abduction, force_flextion);
        Debug.LogFormat("angle: abduction:{0} flextion:{1}", angle_abduction, angle_flextion);            
    }

    public void OnDestroy()
    {
        if (m_Device.Enabled)
        {
            m_Device.Termination();
        }
    }
}

 

 

下記のサンプルはトルクをWristに与えることができます。力を与える際は怪我に注意して行ってください。

void Update () {

    ExosJoint joint_abduction = m_Device.GetJoint(exiii.Unity.EAxisType.Abduction);
    ExosJoint joint_flextion = m_Device.GetJoint(exiii.Unity.EAxisType.Flexion);
    if (joint_abduction == null || joint_flextion == null)
    {
        return;
    }

    joint_flextion.ForceRatio = 0.5f;
    joint_abduction.ForceRatio = 0.5f;
}