How accurate real to virtual positioning / overlapping can we do?

Hi,

We are planning to develop a real-time surgery system and we need accurate positioning of objects on the real patient. Assuming that we do exact position tracking and know exact location of object with respect to the glasses origin, how accurate can we put/position an object onto a real object? Are eye trackers of glasses do exact calibration of optics to make wearer to fell the virtual object in its correct position in real life so that I can overlap virtual medical data exactly on real patient (assuming we know exact coordinate of patient with respect to glasses coordinate)?

1 Like

Hi @cagatay thank you for your question. Magic Leap 2 can be as exact as the developer can make the software. Please note: Magic Leap 2 has earned an IEC 60601 certification. IEC 60601 is a series of technical standards for the safety and effectiveness of medical electrical equipment. This certification allows Magic Leap 2 to be used both in an operating room as well as in other clinical settings.

1 Like

Hi,

Thanks for immediate reply. In surgery we are planning to use a position tracker with 1mm accuracy. Glasses will not be perfect and will also have an optical projection accuracy even it may be too low but it will have some. The user may feel an incorrect location more than 1mm summing optical calibration errors. The eye pupil distance and the location glasses is put on nose will change the location virtually sensed. Your eye tracker will possibly correct this. But is there any measurement of average positional error because of optical projection errors, so that I sum it to 1mm tracker error to find final error. Thanks.

1 Like

Hi @cagatay, Yes the eye calibration optimizes the world alignment for the wearer. Your app is also able to start the calibration from within your application to accommodate multiple users.

1 Like

How is calibration able to be started from within an application? Can that calibration done without starting another app?

There isn't a way to do eye calibration from within your app; however, you can use can start calibration from within the app.

Here is a method that will open eye calibration and take the user back to their original application when finished:


     private void OpenEyeCalibration()
        {

            AndroidJavaClass unityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
            AndroidJavaObject currentActivity = unityPlayer.GetStatic<AndroidJavaObject>("currentActivity");
            AndroidJavaObject packageManager = currentActivity.Call<AndroidJavaObject>("getPackageManager");
            AndroidJavaObject launchIntent = packageManager.Call<AndroidJavaObject>("getLaunchIntentForPackage", "com.magicleap.customfitunity");
            launchIntent.Call<AndroidJavaObject>("setAction", "com.magicleap.intent.action.EYE_CALIBRATION");
            currentActivity.Call("startActivity", launchIntent);
            unityPlayer.Dispose();
            packageManager.Dispose();
            launchIntent.Dispose();
        }
1 Like