ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

The calibration needs to compute the inverse Jacobians from your joint chain as described in the paper [1]. If there is only one or no joint in the chain (or joints with parallel axes), the Jabobian will be singular. That would explain why you get a singular matrix error.

I've run into the same problem and added a 'translation' parameter to the 'cov' section in the estimation parameters at some point, which lets you specify a diagonal matrix to add on top of the Jacobian to get an invertible covariance Matrix. This is undocumented unfortunately, like the rest of the calibration pipeline.. :/

my_chain:
  root: base_link
  tip: head_link
    cov:
       joint_angles: [0.01]
       translation: [0.002, 0.002, 0.002]

[1] http://www.willowgarage.com/sites/default/files/calibration.pdf‎

The calibration needs to compute the inverse Jacobians from your joint chain as described in the paper [1]. If there is only one or no joint in the chain (or joints with parallel axes), the Jabobian will be singular. That would explain why you get a singular matrix error.

I've run into the same problem and added a 'translation' parameter to the 'cov' section in the estimation parameters at some point, which lets you specify a diagonal matrix to add on top of the Jacobian to get an invertible covariance Matrix. This is undocumented unfortunately, like the rest of the calibration pipeline.. :/

my_chain:
  root: base_link
  tip: head_link
    cov:
       joint_angles: [0.01]
       translation: [0.002, 0.002, 0.002]

The calibration pipeline should also publish Markers under the topic "pose_guesses" that give you some introspection into how the calibration converges, and there's a tool called error_visualization.py that you should take a look at.

Good luck!

[1] http://www.willowgarage.com/sites/default/files/calibration.pdf‎