add joints offsets
Opened this issue · 0 comments
sbarthelemy commented
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