How to perform ectrinsic camera calibration with ethzasl_extrinsic_calibration

asked 2013-10-17 06:04:47 -0500

rasmusan gravatar image


I am trying to calibrate the extrinsic parameters of a Carmine 1.09 openni compliant camera to a robot manipulator using the package ethzasl_icp_mapping as described in Automatic Calibration of Extrinsic Parameters.

For estimating the odometry of the camera, the documentation describes that modular_cloud_matcher is used (this is now renamed to ethzasl_icp_mapper). According to the documentation of this, the mapper subscribes to either "/scan" (from a laser scanner) or "/cloud_in" (from a depth camera as used here), and nothing else.

When I try to execute it with "roslaunch ethzasl_icp_mapper tracker.launch", I get the following error:

terminate called after throwing an instance of 'tf2::ConnectivityException' what(): Could not find a connection between 'camera_depth_optical_frame' and 'kinect' because they are not part of the same tree.Tf has two or more unconnected trees. In the launch file, "kinect" is specified as the input parameter for "odom_frame", and a static_transform_publisher published a transform to tf between the two.

Now to my question: What is the point in the odom_frame, and what is it supposed to be set to? It would make sense to me if it was relative to the first frame..?

Hope anyone has an advice!

I've tried on two systems:

1) Kubuntu 12.04 x64 with hydro

2) Ubuntu 12.04 x86 with groovy

Best Regards, Rasmus

edit retag flag offensive close merge delete