A BlueOS extension that enables fully autonomous and adaptive bathymetric surveys on the BlueBoat and any ArduPilot-based ASV using SGP-Tools. Powered by the latest research in Informative Path Planning (IPP).
-
Automatic Waypoint Generation: Generates efficient survey routes from your QGroundControl geofence polygon.
-
Autonomous & Adaptive Missions: Arms, runs, and disarms the ASV automatically, adapting routes in real time based on sensor data.
-
Supported Sensors: Works with Ping1D, GPS, and more (fully configurable in config.yaml).
-
Persistent Data Logging: Stores mission logs and collected data as HDF5 files for post-mission analysis and map reconstruction.
-
Onboard Visualization: Easily publish mission results for real-time or offline viewing in Foxglove or Jupyter Notebook.
-
Easy Plan Upload: Drag and drop QGroundControl plan files with geofence directly into
/usr/blueos/extensions/sgptools. -
Web Terminal Access: Launch, debug, and analyze missions through the BlueOS browser UI.
-
Configurable & Extensible: Quickly modify sensors, mission types, and planner options via YAML config—add new models with ease.
-
Integrated Simulator: Test, develop, and validate survey missions in a realistic Gazebo & SITL environment using our dedicated simulator docker container.
-
Minimal Setup: Installs in seconds from the BlueOS App Store; no complex setup required.
-
Multi-Arch & Platform Support: Runs on ARM64 (Raspberry Pi), AMD64, and any ArduPilot-compatible ASV with sufficient memory (4GB+). |
- 64-bit BlueOS running on Raspberry Pi 4 or similar (ARM64) or AMD64 platform
- At least 4GB RAM + swap (see Swap Setup below)
- Compatible sensors (e.g., Ping1D sonar)
- Open BlueOS in your browser (e.g.,
http://blueos.local/) - Go to Extensions tab
- Find SGP-Tools in the App Store and click Install
- The extension will auto-launch on boot
-
Use QGroundControl to draw your geofence and home position
-
Save as
mission.plan -
Upload to
/usr/blueos/extensions/sgptools/in BlueOS (usingFile BrowserinPirate Mode)
-
Advanced users can edit
/root/config.yamlin the SGP-Tools web terminal to:- Select/modify sensor config
- Change mission type (
AdaptiveIPP,IPP,Waypoint) - Adjust optimization parameters
See the ros_sgp_tools README for configuration details.
-
Open the SGP-Tools web terminal from the BlueOS UI (left menu)
-
Start the planner:
ros2 launch ros_sgp_tools asv.launch.py- The vehicle will arm, start the survey, and collect data automatically
-
After the mission, you can visualize collected data via:
ros2 launch ros_sgp_tools visualize_data.launch.py -
Then open Foxglove in your browser, and connect to your ASV’s IP to view the bathymetry data
-
⚠️ Do not run this during the mission, as it will disrupt the path planner
The extension maps:
- Host:
/usr/blueos/extensions/sgptools/ - Container:
/root/ros2_ws/src/ros_sgp_tools/launch/data/
This directory is persistent and stores:
mission.planconfig.yaml- All mission logs:
IPP-mission-<timestamp>/ - Swap configuration script:
config_swap.sh
-
At least 4GB of RAM or swap is required.
-
The extension includes a swap configuration script:
/usr/blueos/extensions/sgptools/config_swap.sh -
Increase swap (if needed):
- In BlueOS, open a terminal (Pirate Mode), then run:
red-pill
sudo bash /usr/blueos/extensions/sgptools/config_swap.sh
Want to experiment, develop, or validate missions before deploying to the water?
The docker-sgp-tools repository includes a fully integrated Gazebo simulator container with all the tools you need for realistic software-in-the-loop (SITL) testing.
-
Gazebo Simulation: Realistic 3D environment with the BlueBoat ASV model and waves.
-
ArduPilot SITL: Software-in-the-loop autopilot runs your real survey missions.
-
SGP-Tools & ROS 2: The full path planning stack, exactly as on your robot.
-
Extension won’t launch / out of memory:
Run the swap setup, and ensure enough memory is available.
-
No mission data or logs:
Make sure the
Ping 1Dport is correctly listed in theconfig.yaml -
Cannot connect via Foxglove:
Verify network settings, and that Foxglove bridge is running.
- SGP-Tools project site
- ros_sgp_tools package
- SGP-Tools Docker images
- QGroundControl plan files
- BlueOS Docs
This extension, when executed properly, will take control of the ASV and could potentially collide the vehicle with obstacles in the environment. Please use it with caution.



