Creating a new optical tracker sensor

Typically: "How do I... ", "How can I... " questions
Post Reply
ahundt
Posts: 112
Joined: 29 Jan 2015, 04:21

Creating a new optical tracker sensor

Post by ahundt »

Is it possible to create a new sensor, such as an optical tracker?

The sensor I need to simulate is an optical tracker with passive or active markers. Here is an example, which is not necessarily the one I'll be using http://atracsys.com/_products/infiniTrack.php.

An optical tracker is essentially a black and white stereo camera which identifies a fiducial with known orientation offsets for attached reflective passive tracking balls (or active lights). This information is used by the tracker hardware to measure the fiducial position and orientation. Trackers themselves implement all of the necessary software and vision algorithms, and simply supply the fiducial positions, so implementing and computing all of that manually may be redundant.

Perhaps it will simply be best at the moment to fake such a sensor using a set of dummy targets, one for the tracker position (or perhaps a camera), with additional dummy targets in the frame of the tracker. Then the "simulation" of the sensor would simply utilize the position of the target plus some the addition of some random noise.

I am interested in hearing about alternative approaches to simulating an optical tracker, and perhaps if a legitimate optical tracker sensor simulation implementation would be relatively simple I may consider writing it.

coppelia
Site Admin
Posts: 10375
Joined: 14 Dec 2012, 00:25

Re: Creating a new optical tracker sensor

Post by coppelia »

Hello,

yes, you have several possibilities to implement such a sensor. The simplest, as you mention it, would be to fake it, and add some noise on top of the output data.

The other way would be to use two vision sensors and to operate in a similar way as the real sensor would do. The easy way would be to add a selective color filter and a blob detection filter to your vision sensors. Then you can, from a child script for instance, extract the x/y position of the blobs, and compute (i.e. triangulate) the coordinates of the fiducial.

If you need some specific functionality or filtering on the original vision sensor images, then you can write a plugin that will handle that (or you can add some code to the existing plugin programming/v_repExtVision: that plugin handles the velodyne sensor and the spherical vision sensor, located in Models/components/sensors).

Cheers

Post Reply