PDA

View Full Version : Link MainView to instable platform


sleiN13
01-04-2011, 06:49 AM
I've got a moving platform that can raise, roll, pitch, turn and move forward. To this platform I want to link the MainView. Besides being linked to the platform the MainView also has to be linked to a joystick/keyboard controls and in the future a HMD 6-dov tracker.

I solved this problem by creating a function that is called every frame and that combines a fixed point on the platform (VizGroup) with a user (VizGroup) object. The user object is moved by the joystick/keyboard while the platform is moved by VizActions.

def setView(event):

matLoc = plane.getMatrix(viz.ABS_GLOBAL)
matUser = user.getMatrix()

matFinal = vizmat.Transform()
matFinal.preMult(matLoc)
matFinal.preMult(matUser)

viz.MainView.setMatrix(matFinal)

viz.callback(viz.UPDATE_EVENT, setView)

This all seems to work fine until you do a roll with the platform while it is moving forward. After +/- 30 seconds the image starts to shake, this continues while in a roll but disappears when the roll is set back to 0 again.

I've included a example script with a distilled version of my code. As soon as you initiate a roll (using the slider) the image will get shake very slightly but as soon as you move a small amount forward (w key) the shaking gets extreme. The shaking is always the most noticeable if you move close to objects on the platform.

My question is: How to link a controllable MainView to a instable platform that does not create a shaking image.

Jeff
01-08-2011, 05:26 PM
Does it make any difference if you use the postMultLinkable operator instead of a group node?
link = viz.link(tracker,viz.MainView)
link.postMultLinkable(platform)
This should link the view to whatever tracker you use but keep it in the reference frame of the platform.

sleiN13
01-10-2011, 12:33 AM
The result of using

link = viz.link(tracker,viz.MainView)
link.postMultLinkable(platform)
are the same. Still the image is shaking and getting worse over time.