ADVRHumanoids/OpenSoT

getReference return a zero twist

Closed this issue · 3 comments

as the title suggest, there is a problem when getReference is called. The Vector6d is empty.

Hi @graiola, good catch! This is a bug indeed due to a safety mechanism in OpenSoT: basically at every loop, all the quantities different from a pose are set to 0 inside the task.
This is true for the following tasks:

Velocity Tasks:

  • Cartesian
  • CoM
  • Postural

Acceleration Tasks:

  • Cartesian
  • CoM
  • Postural

The same issue is present as well in some more testing tasks (QPPVM or Centroidal Dynamics) which for now I will not consider in this issue.

To solve this issue I will copy the last value (before setting to 0) into a buffer which will be returned instead of the actual value. I will start with the acceleration task.

For the moment, you can get the velocity twist reference BEFORE calling the update().

Fixed in issue151 branch. Needs to be tested.
I have updated the documentation accordingly.

@graiola