Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Missing features related to singularity and zero endeffector wrench #76

Open
ndehio opened this issue Jul 10, 2020 · 2 comments
Open

Missing features related to singularity and zero endeffector wrench #76

ndehio opened this issue Jul 10, 2020 · 2 comments

Comments

@ndehio
Copy link

ndehio commented Jul 10, 2020

I am controlling my panda (version 4.0.2) via the libfranka interface.
Evaluating the robot's state, I noticed that the (estimated) endeffector wrench (see methods K_F_ext_hat_K and O_F_ext_hat_K) sometimes contains only zeros: [0,0,0,0,0,0]. This effect appears for both our two pandas and both for applying velocity-control and torque-control.

I understand that the problematic wrench estimation relates to singularities: it is not possible to infer the full wrench from joint torque measurements if the jacobian becomes rank-deficient, due to the required pseudoinverse. According to my experience, libfranka uses a threshold of 0.08 for the smallest singular value when outputting the zero wrench.

Please add the following features:

  • mention/explain this impossible wrench-estimation problem in the documentation (in the first moment, I was kind of irritated)
  • add the six singular values to the robot state (apparently they are computed anyway)
  • add a boolean to the robot state that indicates if the robot is close to singularity or not
  • add a function that allows specifying the singularity threshold (i.e. 0.08 as default)

However, even in singularities it is possible to compute/estimate a "reduced" end-effector wrench (the wrench estimation is of course missing one Cartesian direction, related to the small singular value). Why don't you provide this one in the robot state? I don't see a need to zero the entire wrench...

For those who are curios, here are two exemplary joint configurations that result in zero end-effector wrench:
[1.03634,0.715631,0.222965,-0.620327,0.112605,2.93128,2.06283]
and
[0.0300161,0.483728,-0.195585,-0.612593,-0.0135165,1.30887,2.04615]

@kdesorme
Copy link

kdesorme commented Apr 2, 2021

Hi @ndehio ,

i think i ran in the same problem when i get close to a certain configuration:

traj_test_without_admittance

I can reproduce this problem every time i execute a certain trajectory.
If you have any news/found any solution for this problem i would appreciate your inputs!

Cordially,

Kevin Desormeaux.

@ndehio
Copy link
Author

ndehio commented Apr 2, 2021

You can easily compute the jacobian pseudoinverse via SVD or QRD yourself and derive the end-effector wrench given the joint torques. So, you don't need to rely on this strange libfranka behavior.
Maybe you want to have a look at my PhD dissertation, see equations 2.8, 4.7, 4.11 and appendix B
https://core.ac.uk/reader/196653490
Feel free to cite it if it helps ;-)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants