Open lucarossini-iit opened 6 months ago
Update: the yaw rotation on the drill camera was injecting error in the blob detection. We should investigate which of the two point clouds is the right one and adjust the other one. From a first investigation, it seems that the right position is given by the drill camera, while the right orientation comes from the lidar.
The ones that need calibration seem to be the LIDARs, not the drill camera. Each lidar is attached to the concert frame by a single screw, no pins at the moment, this can by the cause of some misalignments.
<link name="VLP16_lidar_front_base_link"/>
<joint name="VLP16_lidar_back_base_mount_joint" type="fixed">
<origin rpy="0.0 0.0 3.161593" xyz="-0.5305 -0.315 -0.1"/>
<parent link="mobile_base"/>
<child link="VLP16_lidar_back_base_link"/>
</joint>
<link name="VLP16_lidar_back_base_link"/>
<joint name="ultrasound_fl_sag_base_mount_joint" type="fixed">
<origin rpy="0.0 1.963496 0.0" xyz="0.5105 0.315 -0.129"/>
<parent link="mobile_base"/>
<child link="ultrasound_fl_sag_base_link"/>
</joint>
Orange: camera Green: front lidar Red: back lidar
FYI: @lucarossini-iit @alaurenzi @EdoardoRomiti @MarcoRuzzon
With @EdoardoRomiti, we mounted the 6 dof robot with 2 long passive links
We confirmed that the drill camera point cloud is the most accurate of the three by comparing the alignment of the drillbit with the wooden structure in the real world with the corresponding rviz representation.
We rotated the front lidar frame in the urdf even more to increase its point cloud alignment with the one of the the drill camera. We also rotated the back lidar frame to align its point cloud to the one of the front lidar. The orientation is correct, but there is a significant translation offset.
<joint name="VLP16_lidar_front_base_mount_joint" type="fixed">
<origin rpy="0.0 0.0 0.05" xyz="0.5305 0.315 -0.1"/>
<parent link="mobile_base"/>
<child link="VLP16_lidar_front_base_link"/>
</joint>
<link name="VLP16_lidar_front_base_link"/>
<joint name="VLP16_lidar_back_base_mount_joint" type="fixed">
<origin rpy="0.0 0.0 3.201593" xyz="-0.5305 -0.315 -0.1"/>
<parent link="mobile_base"/>
<child link="VLP16_lidar_back_base_link"/>
</joint>
With the help of @MarcoRuzzon we found out that the drill camera publishes a completely different pointcloud w.r.t the front lidar. current tranform is
<origin rpy="0.05 0.22 0.05" xyz="0.12 0.0 0.26"/>
removing 0.15 rad to the yaw rotation we obtain a pointcloud better aligned with the front lidar one. new transform is
<origin rpy="0.05 0.22 -0.10" xyz="0.12 0.0 0.26"/>
Of course, for this calibration we assume the front lidar to be in a more precise position compared to the drill camera. We should pay attention every time we mount and dismount the drill camera