sbarthelemy/arboris-python

add joints offsets

Opened this issue · 0 comments

Joints are used to

  • parametrise the world
  • restrict the relative motion between two bodies

For example, for RzJoint only allows rotations around z-axis. To specify the z-axis position relatively to the bodies, SubFrames are needed in most cases.

We could remove this need be replacing RzJoint with H0RzJoint or RzH0Joint, where H0 is a constant transform.

Doing so would have advantages:

  • fewer SubFrame objects in many cases,
  • many other formalisms/simulators work that way (DH parameters/HuMAnS/KDL...), it is good if arboris can accommodate their frame choices,
  • this would not break the way arboris currently works (it could be implemented by adding H0 to the current joints with a eye(3) default value)

and some disadvantages...

  • yet another way to do the same thing
  • it we add this to the current method, it will be slower (one more matrix product). We can avoid this additional product if we know that the Joint _frame attributes are Body and not SubFrame, but it would be less flexible then.
  • it will break the "link" display in visu_osg