View Single Post
Old 11-10-2013, 03:56 PM
EnvisMJ EnvisMJ is offline
Join Date: May 2009
Location: Purdue University, West Lafayette, Indiana
Posts: 44
Introducing a rotation offset into a link

I am working in a immersive VR simulator, and I am picking up and moving objects around.

Grabbing an object is pretty easy:
grabLink =,object,1)
This allows it to follow translation and orientation exactly

I can also modify the link to act in a couple different ways by modifying the link like so:

Creating a 'locked rotations' link (the grabbed object follows the translations of the hand, but it's orientation is locked at [0,0,0] exactly)
grabLink.setEuler([0,0,0])	#set the yaw, pitch and roll to zero
Create a 'z-pinned' link (the grabbed object follows rotations exactly, but the block is only able to translate in the z-axis)
yPos = object.getPosition()[1]	#y position of object
xPos = object.getPosition()[0]	#x position of object
grabLink.clampPosY([yPos,yPos],1,viz.LINK_FULL_OP)	#clamp item's vertical motion
grabLink.clampPosX([xPos,xPos],1,viz.LINK_FULL_OP)	#clamp item's lateral motion
Create a 'movement bounded' link (object can't move past the zBound point on the z-axis)
grabLink.clampPosZ([None,zBound],1,viz.LINK_FULL_OP) #clamp item's forward motion

Ok, so all that is working well and good. But now I need to 'offset' the position of the object vs. the hand with a set of offsets
rotationOffsets = [x,y,z]
Anyone know how to get this done?
Reply With Quote