SoftwareX (May 2024)
A Robot Operating System (ROS) package for mapping flow fields in rivers via Particle Image Velocimetry (PIV)
Abstract
Non-contact, remote sensing approaches to measuring flow velocities in river channels are widely used, but typical workflows involve acquiring images in the field and then processing data later in the office. To reduce latency between acquisition and output, with the ultimate goal of enabling real-time image velocimetry, we developed a Robot Operating System (ROS) package for Particle Image Velocimetry (PIV) that can be deployed on an embedded computer aboard an uncrewed aircraft system (UAS). The ROSPIV package consists of a series of nodes that can be run in parallel and comprise an end-to-end PIV workflow. Software development involved converting MATLAB code to C++, organizing files within a catkin workspace, and building nodes using catkin_make. The codebase is available via a repository that includes a user’s guide and demo script. This paper describes the nodes in the ROSPIV package as well as functions for preparing inputs, facilitating code generation, and visualizing PIV output. To illustrate the application of the software, we present two examples, one based on a simulated image sequence and the other based on data acquired from a UAS. For the simulated data, the velocity field derived via the ROSPIV package closely matched the known flow field used to generate the image sequence. Using real data as input demonstrated the ability of the ROSPIV package to ingest and pre-process raw images. Our initial results suggest that the ROSPIV package could become a viable approach for mapping river surface velocities in real time.