control-toolbox icon indicating copy to clipboard operation
control-toolbox copied to clipboard

TermTaskspaceGeometricJacobian

Open awa152 opened this issue 3 years ago • 1 comments

I have a few questions regarding the Taskspace costfunction term you provide in the rbd module: https://github.com/ethz-adrl/control-toolbox/blob/v3.0.2/ct_rbd/include/ct/rbd/robot/costfunction/TermTaskspaceGeometricJacobian.hpp especially concerning the analytical derivatives.

  1. In the stateDerivative method you use the geometric Jacobian to get the gradient. For the position part it seems clear, but is it valid for the orientation if the geometric Jacobian is used instead of an analytical one?
  2. You define the orientation error as
 Eigen::Matrix<double, 3, 1> qDiff = error_quaternion_angle_axis.axis() * error_quaternion_angle_axis.angle(); 

In the book Robotics: Modelling, planning and control (Siciliano et. al 2009) I found the orientation error in terms of angle and axis as e_O = r sin(\vartheta)
. Is this the same?

  1. In the stateSecondDerivative method the Jacobian is also used in the Hessian. Does that mean that a Newton step with this costfunction term would fail if the Jacobian is singular?

Sorry if my questions are somehow naive and thank you for your help!

awa152 avatar Mar 31 '21 15:03 awa152

Hi @awa152, yes, this term is going to fail if the Jacobian is singular, therefore it is not optimal to use it. You could consider adding some Tikhonov style regularization scheme to this term, if you wanted. In general I would recommend you building your own, proper task-space cost function term, since the one here is only experimental. You will need to parameterize poses appropriately, a good starting point would be to include manif for computing local errors. Hope this helps.

markusgft avatar Apr 05 '21 06:04 markusgft