WorldViz User Forum (https://forum.worldviz.com/index.php)
-   Vizard (https://forum.worldviz.com/forumdisplay.php?f=17)

 EnvisMJ 11-10-2013 03:56 PM

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:
Code:

`grabLink = viz.link(hand,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)
Code:

`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)
Code:

```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)

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
Code:

`rotationOffsets = [x,y,z]`
Anyone know how to get this done?

 Frank Verberne 11-13-2013 05:51 AM

I think you're looking for something like this:
Code:

```positionOffsets = [x,y,z] rotationOffsets = [yaw,pitch,roll] grabLink = viz.link(hand,object,1) grabLink.preTrans(positionOffsets) grabLink.preEuler(rotationOffsets)```
You mentioned in your question that you want to offset the position, but in the piece of code below, there is a variable called rotationOffsets. You can offset the rotation of a link with link.preEuler() and the position of a link with link.preTrans(). Both are described in the code above. Hope that solves your problem!

 All times are GMT -7. The time now is 02:45 PM.