how to set kinematics_model transforms


#1

we would like to start creating a scene file that holds many different kinematics models. If each model references its geometry/kinematics from a separate collada file, how can we move the model to a different place in the world?

basically we’re looking for something analogous to <instance_kinematics_scene>/<bind_joint_axis>/<value>, but for the transformation of the base link of the model.

thank you,


#2

any ideas would be greatly appreciated.

thank you


#3

Hi there,

sorry for the delay.

If I understand you correctly, you have COLLADA documents that have there own scene with geometry and kinematics. So, you have may be a file with a robot and a file with a linear axis.

If you want to build a COLLADA document that references those two single documents, you have to create a visual scene that instances the two root nodes.
Then you have to create a scene that instances that visual scene. Then you instantiate each of the kinematic scene. Through the binding the kinematic is applied to the correct position defined in the visual scene.

Kindly regards
Steffen


#4

hi Steffen,

thanks for the response. as far as i understand, the kinematics scene can be specified standalone. It has its own link definitions/transforms and joint definitions/transforms. The binding to the visual scene duplicates this information, and the only binding between the two is

  1. the joint values
  2. the root visual node and kinematics model

Are you saying that we make an exception to the rule and use visual scene data when computing the positions of the kinematics model instances in the kinematics world?


#5

Hi,

yes the kinematics scene can be specified standalone, but it doesn’t define how two models are positioned two each other, or where one model is placed.

For that issue you need a visual scene. But for your purpose, in your instance_kinematics_scene element you just have to bind the model, and not not the axis.
The model binding sets each model or articulated system with its root to the desired position.
The joint axis binding defines the value flow from the model to the geometry.
If you don’t have a geometry, your visual scene has only to define the positions for the base links.

I hope I have understand you problem correctly.

Kindly regards
Steffen


#6

hi steffen,

thanks, it’s beginning to make more sense. one final question:

is the relative transformation between the first kinematics link and the bound root visual node the identity?

thanks,


#7

Hi Rosen,

hmm, I think so. I usually bind the model to the geometric representation of the first link; so my kinematic is positioned.

The creator should be careful, that his geometric sub-tree matches with the kinematics tree. The tree doesn’t need to have the same structure, but the position of the links should match with the position of the nodes in visual scene regarding the coordinate system of the component (e.g. my robot).

That makes the whole thing very flexible, because your geometric tree is often not hierarchical (like in DELMIA V5).

In fact there is no redundant information.

Regards
Steffen