Culverts, essential components of drainage systems, require regular inspection to ensure their optimal functionality. However, culvert inspections pose numerous challenges, including accessibility, defect localization, and reliance on superficial visual assessments. To address these challenges, we propose a novel Culvert Autonomous Inspection Robotic System (CAIS) equipped with advanced sensing and evaluation capabilities. Our solution integrates deep learning methodologies, lighting systems, and non-destructive evaluation (NDE) techniques to enable accurate defect localization and comprehensive condition assessment. We present a pioneering Partially Observable Markov Decision Process (POMDP) framework to resolve uncertainty in autonomous inspection, especially in confined and unstructured environments like culverts or tunnels. The framework outputs detailed 3D maps highlighting visual defects and NDE condition assessments, demonstrating consistent and reliable performance in various indoor and outdoor scenarios. [Paper]
The framework has been tested with ROS Noetic and Ubuntu 20.04. The following configuration, along with the required dependencies, has been verified for compatibility:
- Ubuntu 20.04
- ROS Noetic
- ZED SDK >= 3.5
- CUDA (Recommend to use CUDA toolkit >= 11 for Ubuntu 20.04)
- ultralytics
- zed_ros-wrapper
- zed-ros-example
- roverrobotics_ros1
- ros_numpy
- cv_bridge
- velodyne
- culvert_explore (searching based on explore_lite)
- detection (autonomous inspection node)
- gmapping
- rosserial
- rosserial_arduino
Use the following commands to download and build the package: (The code is implemented in ROS1)
# caktin_ws or your workspace dir
mkdir -p ~/catkin_ws/src
cd ~/caktin_ws/src
git clone https://github.com/aralab-unr/CAIS.git
cd ..
catkin build
source devel/setup.bash
roslaunch detection auto_pro.launch
| Indoor | Outdoor |
|---|---|
![]() |
![]() |
3D maps of the indoor & outdoor culvert generated by RTAB-Map with crack and spall labels and ER condition map (bottom 2) outputted by manual and and our proposed method. The condition metric ER unit is Ωm, where 120 < ER means good, 80 < ER < 120 means fair, and ER < 80 means poor. While manual inspection does have more information about the condition of the culvert, the extra info is not relevant since inspectors are only concern with the poor regions.



