personalrobotics / ada_ros2

ROS2 Hardware Interface and Description for the ADA Robot
BSD 3-Clause "New" or "Revised" License
2 stars 1 forks source link

Update Camera Calibration with `frontStabilizer` #26

Closed amalnanavati closed 11 months ago

amalnanavati commented 11 months ago

I ran ROS1 camera calibration with the new camera position (after the frontStabilizer). Although that resulted in similar reconstruction error as before, the results seemed to be pretty bad (when I aligned the depth cloud with the robot model). In fact, one of the previous camera calibrations seemed to look better, so I instead performed manual tweaks to that to visually bring the depth cloud into alignment with the robot model.

It still isn't perfect, but it looks better than the previous default. We can use this as long as it's not an issue :)

amalnanavati commented 11 months ago

Images from the camera extrinsics on ROS2: Screenshot from 2023-10-18 19-58-27 Screenshot from 2023-10-18 19-58-43 Screenshot from 2023-10-18 19-58-59 IMG_5610

amalnanavati commented 11 months ago

Note, however, that the above is solely the result of manually tuning previously computed camera extrinsics. The newly calibrated extrinsics are below, but they didn't work particularly well.

<launch>
  <!-- The rpy in the comment uses the extrinsic XYZ convention, which is the same as is used in a URDF. See
       http://wiki.ros.org/geometry2/RotationMethods and https://en.wikipedia.org/wiki/Euler_angles for more info. -->
  <!-- xyz="0.0334509 0.132228 -0.175815" rpy="0.240373 0.00285632 3.13412" -->
  <node pkg="tf2_ros" type="static_transform_publisher" name="camera_link_broadcaster"
      args="0.0334509 0.132228 -0.175815   0.00186591 -0.119891 0.992779 0.00353893 j2n6s200_end_effector camera_color_optical_frame" />
</launch>
amalnanavati commented 11 months ago

I actually think part of it might have to do with the Aruco tags I printed. Although in theory they should be square (and the PDF I sent to the printer had them be square), I think the printer might have done some asymmetric scaling, because the printed out tags have one dimension slightly smaller than the other (by ~0.5cm).

If/when we try this again, I'd suggest we first make sure our tags are fully square before running calibration.