AUV obstacle avoiding and mapping the environment with Ping360

Hi @toosat,

NVidia Jetson is a full family of products. Are you using one of the developer kits, or a custom board designed around one of the Jetson modules?

Detecting the position within the pool should be possible, although unless the pool has other objects in it at known locations then the initial location may need to be set manually, since olympic pools are generally rectangular, and the symmetry makes the position at any single point in time ambiguous. To actually do that kind of detection would likely require something like

  • correct for vehicle rotation (using telemetry data) in sonar pings
  • detect straight lines of intensity peaks in the scan profile data to determine the pool wall locations
  • send the position to the autopilot
  • repeat, but potentially make use of the known position to track expected wall locations

Detecting floating objects may be possible, but that depends on how far they protrude into the water, how far they are from the sonar, and what depth the vehicle is at.

It’s worth noting that robot vacuums likely have higher resolution LiDaR data than a scanning sonar provides, along with a shorter minimum range, faster scanning/refresh rate, less rotation/vibration issues (since the vehicle is on a flat surface, with wheels), and generally use contact-based push sensors for obstacle ‘avoidance’. Those differences aren’t insurmountable, but they exist and help to make the robot vacuum perception easier to solve and more robust. Vision may be able to help, although that also takes processing power, and adds its own complexities.

You’ll also need to be aware of sonar reflections (particularly when the sonar is close to a wall, in its ‘blind’ region).

With regards to “setting a route around the pool”, this post is likely worth a read.

While it’s likely quite a bit simpler and easier to work from a pre-made map that’s encoded into the control program, if necessary it’s possible to use a full SLAM algorithm to do both localisation and mapping, which may then detect and keep track of arbitrary objects within the pool water, and dynamically determine a path around them. What you decide to do will depend on your project requirements.

2 Likes