TURTLMap is designed to be a flexible and modular framework for underwater localization and mapping. We understand the process to integrate a new robot with TURTLMap can be challenging, and is not as easy as running the provided logs. Therefore, we provide a guide on how to bring your own robot to TURTLMap. We will detail the process we build our system as an example.
Since TURTLMap is a sensor fusion-based localization and mapping system, the calibration of the sensors is crucial. We detail the calibration process of the sensors we use in our system.
It is critical to ensure accurate extrinsics between the sensors. The four main sensors we use in our system are the DVL, the pressure sensor, the IMU, and the ZED camera. Since we only use the relative depth, we do not need to calibrate the pressure sensor. We obtain the extrinsics between the DVL and the IMU according to the CAD model of the robot. To properly calibrate the extrinsics between the ZED camera and the IMU, we use Kalibr. For the extrinsic calibration, we firstly mount the IMU and the ZED onto the sensor enclosure and conduct in-air calibration since it is much easier to excite the IMU in air. The calibrated extrinsics are stored in the config file. Please feel free to edit the attributes in the file to match your robot.
As mentioned in our paper (Section III.C), underwater camera recalibration is necessary to ensure accurate mapping. There are various tools available to use for doing this. After several trials and attemps, we find using the stereo calibration tool provided by Kalibr gives the best results. We use a customized Aprilgrid following this guide. We provide an example of the Aprilgrid we use for the calibration.
- After generating the Apriltag PDF following this guide, please print the PDF in the correct size. It is always recommended to measure the size of the printed Apriltag to ensure the correct size.
- Please double check the recommended depth rating of the camera you used, and determine the best desired depth you will use the camera underwater, and conduct the calibration within the desired operating depth.
We follow the official guide to input the recalibration parameter in ZED SDK. We provide our example config file for your reference. To apply the config file, please edit optional_opencv_calibration_file
to point to your own config file. You can follow this commit to see how we apply the recalibration parameter in the ZED SDK.
We also deactivate the self_calib
parameter in the ZED SDK to ensure the calibration parameters are not updated during the operation.
We provide more views of the customized sensor enclosure. There is no need to make an exact copy of the enclosure. The key design factor of the enclosure is to ensure sensors are rigidly mounted, and the ZED camera is not occuluded by the enclosure.
We hope to provide some important design factors to help people bring their own robot to TURTLMap. We understand that each robot is unique, and the process to integrate the robot with TURTLMap can be challenging. It is necessary to consider the bandwidth of the tether. One key benefit of the proposed solution is to leverage the onboard computing to reduce the bandwidth requirement of the tether. There is no need to send the raw data of the sensors to the surface computer. Since we use ROS as the communication middleware, we start the roscore
on the Jetson Orin Nano.