pinocchio icon indicating copy to clipboard operation
pinocchio copied to clipboard

Extracting subtree for independent computation

Open olivier-stasse opened this issue 6 years ago • 8 comments

Dear all, I need to test and port old fashion control algorithm. They need to perform computation on subtree of a humanoid robot. Typically it would consist in making inverse kinematic computations of the left and right legs seperately. I found subtrees in the structure of pinocchio but not a proper way to extract path of joints as it is done in other libraries. Thanks for your help.

olivier-stasse avatar Jun 06 '18 11:06 olivier-stasse

I'm working in similar topic, i.e. computation of kinematic quantities (FK and IK) at the subtree level and other functions. Those functions are implemented in a library on top of Pinocchio, with the possibility of having Python bindings too. However, I'm currently testing the code (i.e. creating unittest).

The reason to implement them in an another library is due to the fact that these functions need another level of semantic description needed in motion control or planning. Just to give you a quick taste of this, imagine that you want to compute the FK of only feet branches.

This might interested topic of discussion for other people. @olivier-stasse doesn't hesitate to contact me if you're interested.

cmastalli avatar Jun 06 '18 11:06 cmastalli

@olivier-stasse There is now the notion of subtrees in Pinocchio, allowing to extract all the joints ids of this subtree. I plan to add the forwardKinematics of subtree in the very next future. Are you still interested by this feature?

jcarpent avatar Nov 19 '19 15:11 jcarpent

Just wanted to chime in to say that I would definitely love this feature. Pretty similar to what @cmastalli was referring to, having a subtree of the feet would be a really nice feature.

Neotriple avatar Feb 18 '20 10:02 Neotriple

Hi @jcarpent ,

I have a mobile manipulator model (robot base + robot arm). I'm trying to extract the Lagrangian dynamics for only the robot arm. Is there a way of extracting just the robot arm as a subtree and using function like crba() and computeCoriolisMatrix()?

thanks, Roberto

rshum19 avatar Feb 03 '21 07:02 rshum19

If you want to isolate the robot arm as a model, you have the function: buildReducedModel which does the work and then allows to reuse all the algorithms as usual. Currently, the features are not yet available, as we are mostly lacking manpower.

jcarpent avatar Feb 03 '21 08:02 jcarpent

buildReducedModel seem to be what I'm looking for. However, I didn't quite understand :

Currently, the features are not yet available, as we are mostly lacking manpower.

Does this mean that the buildReducedModel function has been defined but not yet implemented or that the feature described to perform forwardKinematics in subtrees is not yet available?

rshum19 avatar Feb 03 '21 15:02 rshum19

buildReducedModel works perfectly well. What I meant is that working with subtrees is not yet possible

jcarpent avatar Feb 03 '21 15:02 jcarpent

I see great thank you for the clarification!

rshum19 avatar Feb 03 '21 17:02 rshum19