Firstly, I can not find the correct optical center point from any documentation. I have understood that the pointcloud start point is in the front lens middle point when the extrinsic calibration parameters are all 0, but this is not the optical center point as the pointcloud start point can be moved with the Extinsic parameters. These Extrinsics do not affect the radial Distance images, apparently these Radial distance images are in the optical frame which origin location cant be found.
Secondly I have noticed that polling for the extrinsic parameters using rosrun ifm3d dump and listening to the ROS topic by rostopic echo /ifm3d/camera/extrinsics yields different results.
From the dump i get the following extrinsic calibration
When I change the extrinsic calibration with rosrun ifm3d dump | jq '.ifm3d.Device.ExtrinsicCalibTransX="1000"' | rosrun ifm3d config the extrinsics in the config changes as following:
The extrinsics appear to add up. The rotation is not changed by +90deg around Y in the ros message, but the end result is the same orientation.
But what I don't understand that why the Extrinsics is not all 0's in the ros message when it is all 0's in the config.
Thank you in advance for your reply.
Hi!
Firstly, I can not find the correct optical center point from any documentation. I have understood that the pointcloud start point is in the front lens middle point when the extrinsic calibration parameters are all 0, but this is not the optical center point as the pointcloud start point can be moved with the Extinsic parameters. These Extrinsics do not affect the radial Distance images, apparently these Radial distance images are in the optical frame which origin location cant be found.
Secondly I have noticed that polling for the extrinsic parameters using
rosrun ifm3d dump
and listening to the ROS topic byrostopic echo /ifm3d/camera/extrinsics
yields different results.From the dump i get the following extrinsic calibration
From the Extrinsics ros topic I get the following message
When I change the extrinsic calibration with
rosrun ifm3d dump | jq '.ifm3d.Device.ExtrinsicCalibTransX="1000"' | rosrun ifm3d config
the extrinsics in the config changes as following:And the ros message changes to
And with
rosrun ifm3d dump | jq '.ifm3d.Device.ExtrinsicCalibTransX="0"' | jq '.ifm3d.Device.ExtrinsicCalibRotY="90"' | rosrun ifm3d config
:The extrinsics appear to add up. The rotation is not changed by +90deg around Y in the ros message, but the end result is the same orientation.
But what I don't understand that why the Extrinsics is not all 0's in the ros message when it is all 0's in the config.
Thank you in advance for your reply.