Advice for USV

Hi, I am new to ROS2 development and wanted to get some advice on a project. I am working on an Unmaned Surface Vessel (USV) for the purpose of collecting certain water quality parameters. The project necessitates that the USV follows a flowing body of water, i.e. a stream or river from one specified point to another downstream. To do this I plan on implementing nav2, with robot_localization’s navsat_transform to allow me to pass GPS waypoints (running on foxy for now). I was curious if anyone had experience/advice, on adapting nav2 such that the USV only powers it’s motor and steering system when there is some obstacle it must move around, in order to preserve as much battery as possible. Is this possible with a Behavior Tree?

Also, any advice on a reliable and easy to use IMU for this would be much appreciated.

1 Like

Cool project! If I understand it right, I think what you’re describing is already covered by navigation: if you haven’t specified a location to go to, the robot won’t go to a location. So, your robot will only be going to a location (and around the obstacle) if told to do so. But, yes, you could do this with a behavior tree if you wanted higher level autonomy to actually trigger those movement goals.

Regarding IMU’s, the MPU9250 is a frequently used IC with plenty of support, tutorials, and breakout boards allowing for interfacing over i2c (so you can talk to it via your Pi, Jetson, Arduino, etc.).

1 Like