View Full Version : Tracking with Marker ID plugin

07-06-2009, 04:33 PM
Hello. I apologize if this is covered in the docs - I simply could not find an answer when I looked.

We are trying to track multiple lights with IDs using the new PPT-X system. We have 8 lights with IDs. If we are tracking 3 of them we increment the number of markers to 3. However, I'm not sure how to get the code in Vizard to be sure it is the marker of the correct number. Does the number just correspond the the number you add? In our old code we would do this:

ppt_1 = viz.add('ppt.dls')
ppt_2 = viz.add('ppt.dls')
ppt_3 = viz.add('ppt.dls')

If we do the same will we be guaranteed that ppt_1 is the marker corresponding to 1 and ppt_2 is the one corresponding to two? What if we were tracking 3 lights but their ids were 4,7,8. Then would ppt_1 correspond to light 4? I'm just not sure how the new system works.


07-07-2009, 04:57 PM
We recommend using VRPN and then you can specify the sensor number when adding a tracker in Vizard. So, to connect to markers 4,7,8 you would do the following (sensor numbers begin at 0)
vrpn = viz.add('vrpn7.dle')
tracker4 = vrpn.addTracker('PPT0@hostname',3)
tracker7 = vrpn.addTracker('PPT0@hostname',6)
tracker8 = vrpn.addTracker('PPT0@hostname',7)

07-07-2009, 11:49 PM
Is there any way to do it with serial?

07-08-2009, 11:44 AM
For example, if you only had one marker with ID 4 being tracked you would need to add ppt.dls four times to get marker 4. Trackers 1-3 would not have any data.
tracker1 = viz.add('vizppt.dls')
tracker2 = viz.add('vizppt.dls')
tracker3 = viz.add('vizppt.dls')
tracker4 = viz.add('vizppt.dls')
Is it difficult for you to switch over to using VRPN?

07-09-2009, 01:29 PM
We cannot easily switch to VPRN as we have an entire library of files that all use serial and we would prefer to leave the code.

We have tried the following code:

viz.tracker() # start tracking

lowarmleft_ppt_1 = viz.add('vizppt.dls')
lowarmright_ppt_3 = viz.add('vizppt.dls')
uparmleft_ppt_2 = viz.add('vizppt.dls')
uparmright_ppt_4 = viz.add('vizppt.dls')


newline = ''
newline += str(lowarmleft_ppt_1.get()[:]) + ' ' + str(lowarmright_ppt_3.get()[:]) + ' ' + str(uparmleft_ppt_2.get()[:]) + ' ' + str(uparmright_ppt_4.get()[:]) + '\n'
print newline

We get all zeros.

Any suggestions?

07-09-2009, 07:38 PM
It looks like the resets cause the values to be zero. What are the ID's of the markers used?

07-09-2009, 10:57 PM
We were using IDs 1-4.

If we do not reset the ppts how will they know when they are in the center of the room? Normally we have our subject stand at a certain line and hit reset. That should only make 1 line be zeros, not all of them, right?

07-09-2009, 10:58 PM
I should also note that on the PPT screen we do see numbers in the side panel. However, we do not see traces being traced. Instead we see a bunch of dots. Is this correct?

07-11-2009, 11:02 AM
Also, is there any way to run serial and vprn simlutaneously and just switch which plugin is active when runnign different scripts?

07-13-2009, 11:36 AM
You can run PPT with both Serial and VRPN7 plugins active at the same time. So you can write new code that uses VRPN, and your old legacy code will still work. I would recommend that you switch over to VRPN when possible, because it is designed to support more markers and faster updates such as that available in our PPT-H product. Also, I would recommend that in the future, you write your scripts to use the viztracker interface, so that way if your tracking system changes, you can easily just change the one viztracker file and all of your demos will then be changed at once instead of having to rewrite each one.

You should see traces in the PPT interface as you move around your lights. If you are seeing dots, then this is the trace. If you move too fast then the trace will probably appear disconnected.

The serial protocol is able to handle multiple markers, and it will deal with the order correctly. You do multiple viz.add('vizppt.dls') calls, and each call will return marker 1, 2, 3, 4, etc in that order. The nice part about the VRPN interface is you can request any marker you like in any order. But if the PPT GUI shows a marker 1, that is what you will get from your first call to viz.add('vizppt.dls').