Bipedal-locomotion-framework: Restructure TSID and IK

Created on 9 Jul 2021  路  6Comments  路  Source: dic-iit/bipedal-locomotion-framework

I started to implement QPTSID class and I realized that the implementation is really similar to QPIntegrationBaseIK already implemented in the framework. Not only for the interface but also for the actual code.

So I was thinking to merge TSID and IK together.

Here it's what I've in mind (please help me to find better names 馃槃 )

  1. IFloatingBaseSolver is a virtual class it contains only the common interface. An example of the interface can be found here
  2. QPFloatingBase implements the floating base algorithm. The implementation is exactly the same for IK and TSID. The real job is done by the task definitions
  3. QPIntegrationBaseIK and QPTSID are the template specialization of the QPFloatingBase
  4. QPFixedBaseTSID is just a specialization QPTSID.

image

@dic-iit/blf-developers, do you have any suggestions?

Most helpful comment

@traversaro suggested me ILinearTaskSolver.

Furthermore while implementing I realised that keeping the same implementation for TSID and IK may not be a wise choice (at least at che current stage).

In this morning I will open a PR where I merged the two interfaces and we can discuss better there. (Also for the names)

All 6 comments

Why the floating base in IFloatingBaseSolver and QPFloatingBase ? What they have of floating base specific?

actually nothing. the task itself is floating base specific. But I think that ISolver is not a good choice.

@GiulioRomualdi I like the idea!

I guess that instead of FloatingBase, a more adequate keyword could be StackOfTasks. The overall structure looks good to me :+1:

@traversaro suggested me ILinearTaskSolver.

Furthermore while implementing I realised that keeping the same implementation for TSID and IK may not be a wise choice (at least at che current stage).

In this morning I will open a PR where I merged the two interfaces and we can discuss better there. (Also for the names)

For the time being we can consider this task achieved

Was this page helpful?
0 / 5 - 0 ratings