calcMinvTimesTau gives wrong result if qdot != 0

Issue #56 resolved
Arturo Laurenzi
created an issue

Hi! As you know from #55, I am experimenting a bit with the calcMinvTimesTau method from RBDL.

From my tests, it seems that a non-null joint velocity which is set to the model via an UpdateKinematics is affecting the output of calcMinvTimesTau. This to me is an unexpected behaviour!

More in detail, if I:

  • call UpdateKinematics() with qdot != 0
  • call calcMinvTimesTau

then the output does not match inv(B) times the vector that I want to multiply. If I:

  • call UpdateKinematics() with qdot = 0
  • call calcMinvTimesTau

then everything works ok! I am attaching a small self-contained example of this behaviour, which is built via the standard cmake steps

mkdir build && cd build
cmake ..
make

Comments (6)

  1. Arturo Laurenzi reporter

    Hi Martin, thank you very much for your time. I updated rbdl to the latest commit, yet the simple test that I was attaching gives wrong results. Possibly this is due to the fact that I also set a random qddot. Could you check my test example and confirm that it reports a wrong result?

    Arturo

  2. Martin Felis

    Hi Arturo, I am very sorry for the inconvenience. I am not able to run your example as it crashes when trying to load the urdf reader (currently looking into this). Are there maybe any changes you have made to RBDL or the urdfreader?

    Best regards, Martin

  3. Arturo Laurenzi reporter

    No worries! For what concerns the urdf reader, I am using the one provided with ROS (kinetic), with no modifications at all. However, feel free to replace the urdf that I provide in the example with anything else, it should not matter!

  4. Martin Felis

    Hi Arturo, I have finally managed to resolve the urdfreader issue that prevented me from loading your model. The fix for it is in 9230762f4cc8.

    However, even with this I cannot reproduce the issue. I get consistent results for calcMInvTimesTau no matter whether qdot is zero or not.

    Can you send me the output of your code?

  5. Arturo Laurenzi reporter

    Hi Martin, I realized that actually I was not on the correct commit! Ouch! Sorry for that, but at least you could improve the urdfreader as a side effect :D Everything works now, thanks again for the effort

    Arturo

  6. Log in to comment