Unity Marker Tracking Delayed

Unity Editor version: 6000.3.0f1
ML2 OS version: 1.12.1
Unity SDK version: 2.6.0
Host OS: Windows

Hello! This is somewhat of a feature request and an issue. My team is using an Aruco tag to track a moving object. The issue is that the estimated position of the Aruco tag by the Magic Leap’s computer vision is delayed by maybe 1/4 to 1/2 of a second. This may not seem like much of an issue, but our tracking must be very precise.

Now, I understand that it takes some computational time to process tags, and the Magic Leap has limited resources. I assume the process looks something like this:

  1. Take a photo.
  2. Process it for tags.
  3. Estimate the position (some frames later).

I would like to suggest that a feature be added to the first step. That is, when the photo is taken, a timestamp is generated and added to the MarkerData struct. The thing is, we don’t need incredibly realtime data, we just need to know at what point in time does the Aruco position estimation belong to.

I would also appreciate any suggestions for speeding up our tracking in the meantime! This is what our current settings look like:

// Set tracker settings
MarkerDetectorSettings settings = new()
{
	// General settings
	MarkerType = MarkerType.Aruco,
	MarkerDetectorProfile = MarkerDetectorProfile.Speed,

	// Aruco settings
	ArucoSettings = new()
	{
		EstimateArucoLength = false,
		ArucoLength = 0.0635f,
		ArucoType = ArucoType.Dictionary_4x4_100
	}
};

Thank you for your time!

Unfortunately this is a limitation of the hardware especially when Estimate Size is enabled. This requires the headset to move around the space so that it can triangulate the positions to estimate the size.

Have you tried to adjust the MarkerDetector Profile settings? For example using the World Cameras rather than the RGB sensor?

Since marker tracking use cases vary, you may want to look into using the MLCamera or Pixel Sensor API to implement your own marker tracker using 3rd party libraries such as OpenCV.

When I explicitly set ArucoLength the positional prediction is less accurate than length estimation. Any idea why that might be? ArucoLength is measured in meters right? And it is measured from its left-most black edge to its right-most black edge?