Noisy orientation data

Post Reply
carpetfluff
Posts: 10
Joined: Mon Sep 17, 2012 3:21 am

Noisy orientation data

Post by carpetfluff » Wed Jan 16, 2013 7:23 am

I'm experiencing some issues with Tracking Tools (2.5.1) regarding noisy orientation data. I'm trying to track the position and orientation of a small wheeled robot, to which I've attached three reflective 3/4" markers, forming a triangle on top of it (not using a Rigid Body Base or Track Clip - just affixed directly to the robot). I'm using a single Flex 13 camera mounted at the end of a microphone stand boom, facing down, parallel to the floor, since I only want to do simple 2D tracking.

In Tracking Tools, I set the camera up to use Projection Tracking with a marker size of 19.05mm, and create a trackable from the three markers on top of the robot. I then instruct the robot to follow a simple pre-programmed path, and record tracking data using the Tracking Tools GUI. This data is then compared to results from a simulation of the robot following the same path. The position data is recorded by Tracking Tools as I would expect, but the orientation data is very noisy, as can be seen in the following graphs:

http://i.imgur.com/WdKEw.jpg

Top left: Simulated position history (x, y) coordinates
Top right: Tracking Tools position history (x, y) coordinates
Bottom left: Simulated orientation history (degrees over time)
Bottom right: Tracking Tools orientation history (degrees over time)

As can be seen from the bottom right graph, the noise occurs when the robot is moving in a straight line, and is quite significant at around +/-5 degrees. Also, the top of the first peak is angled downward, as though the robot is turning, when in fact it is moving in a straight line. The robot moves very slowly, and turns smoothly - it is not the source of the noise. The reflective markers don�t appear to jitter in the Camera Preview, so this seems to be a problem with the tracking algorithm. If I set Orientation to True under the trackable Display Options, then I can see that the orientation is constantly jittering, even when the robot is stationary.

Does anyone know what might be causing this? I can think of three things that might be wrong:

1. The 3/4" markers are quite large relative to the size of the trackable, which might cause problems when trying to resolve the orientation of the triangle of three markers. The camera is 1.5m from the ground, the robot is 70mm in diameter, and the markers are each spaced 45-65mm apart. I don�t have room on the robot to spread the markers out further (which I assume would help), but would using smaller markers help?

2. I'm using Projection Tracking. Would I see an improvement with Vector Tracking?

3. I haven't performed any kind of calibration, as I don't have a Calibration Square or OptiWand. However, am I right in assuming that wanding is only necessary if you're using multiple cameras? I can see why ground plane calibration might be necessary though, perhaps doing this would solve these problems?

beckdo
NaturalPoint Employee
NaturalPoint Employee
Posts: 520
Joined: Tue Jan 02, 2007 2:02 pm

Re: Noisy orientation data

Post by beckdo » Thu Jan 17, 2013 5:42 pm

The projection tracking is very noisy because it just uses a single camera and the diameter of the object to determine how far away from the camera it is. The diameter measurement is really sensitive verse distance so Projection tracking isn't likely to yield you very good results. You could always smooth it really aggressively but that just adds latency...another unwanted effect...

This probably isn't appropriate for what you're trying to do. If you want much better results you simply need to add a second camera into the mix. This will allow the software to triangulate the points and will give you accurate results.

Do you have a second camera?

Alternative if you only have one camera, you might want to roll your own approach using the 2D data from the camera. This would involve using the Camera SDK and your own code.

D

carpetfluff
Posts: 10
Joined: Mon Sep 17, 2012 3:21 am

Re: Noisy orientation data

Post by carpetfluff » Tue Jan 22, 2013 9:28 am

Thanks for the information. I don't currently have two cameras, but I can afford to buy another one. Will two Flex 13 cameras be sufficient for this application, or would there be any benefit in using three cameras instead? What kind of camera layout would you recommend for such an application with two or three cameras?

I assume I'll also need to use an OptiWand and Calibration Square to calibrate the system, but I'm on a tight budget - would it be possible to make equivalent equipment myself? If so, are the specifications for these available?

Will I then be able to stream the position/orientation of multiple robots to another application using the Tracking Tools API in real time? I just want to check that this will in fact be possible before purchasing more equipment.

beckdo
NaturalPoint Employee
NaturalPoint Employee
Posts: 520
Joined: Tue Jan 02, 2007 2:02 pm

Re: Noisy orientation data

Post by beckdo » Tue Jan 22, 2013 11:57 am

If you want to have solid tracking with built in lens distortion removal, you're going to want to have a second camera in the mix. If you add a third, that will just boost the quality of the output data. To be honest, 2 cameras is going to provide you with very clean data if you volume is reasonably sized. Where the 3rd camera is going to buy you additional improvement in output quality is two fold. You will have robustness against marker occlusion. Secondly when you only have two cameras there are potentially singularity constellations where there is not enough perspective between just two cameras to get the correct solution for a given cluster of markers.

Honestly, I think it'll work great with two cameras and will be rock solid with three.

For arrangement, put them in a healthy arc. Triangulation works best if there is a significant angle of attack between the cameras. If you have 3 cameras make sure to put the center camera up off the same plane so that it's not exactly between the two end cameras. Feel free to send photos and I'll review for you but it's not too particular so if you think it's going to be good you'll probably be right!

Seth Steiling
Posts: 1366
Joined: Fri Jun 27, 2008 11:29 am
Location: Corvallis, Oregon

Re: Noisy orientation data

Post by Seth Steiling » Tue Jan 22, 2013 12:47 pm

[quote=carpetfluff]I assume I'll also need to use an OptiWand and Calibration Square to calibrate the system, but I'm on a tight budget - would it be possible to make equivalent equipment myself? If so, are the specifications for these available?[/quote]
You can create your own calibration wand and square, though with the wand, very precise measurements of the distances between markers is critical. You don't have to create a wand that matches the dimensions of one of our OptiWands, because you can input wand dimensions into the calibration parameters, but you need to ensure that the actual and reported dimensions of the wand match precisely. You'll also want to make sure the markers stand off of the wand with posts, so the body of the wand occludes as little of the markers as possible.

For the calibration square, the dimensions aren't particularly important. You just want the markers to be co-planar and in an L arrangement. In a pinch, when calibrating a small volume, I often use one our hand rigid body mounts with three markers:

Image

[quote=carpetfluff]Will I then be able to stream the position/orientation of multiple robots to another application using the Tracking Tools API in real time? I just want to check that this will in fact be possible before purchasing more equipment.[/quote]
Yes, you can stream 6 DOF for multiple rigid bodies via the Tracking Tools API or the NatNet SDK. If you're OK with running the Tracking Tools interface alongside your client application, NatNet would probably be the simpler method.
Marketing Manager
TrackIR | OptiTrack

carpetfluff
Posts: 10
Joined: Mon Sep 17, 2012 3:21 am

Re: Noisy orientation data

Post by carpetfluff » Wed Jan 23, 2013 5:07 pm

Many thanks for the advice! I'll go ahead and order another two cameras, so that I have three in total.

Could you possibly explain why it would be best to arrange the three cameras in an arc? Wouldn't placing them such that they form an equilateral triangle (each facing towards the centre of the capture volume) provide the most robustness against marker occlusion?

Post Reply