This repository contains a global path planner for BlueRobotics' BlueBoat, designed to be used with QGroundControl via the MAVLink communication protocol.
- Path Planning Algorithms: Implements A* and RRT* algorithms for efficient global path planning.
- MAVLink Communication: Facilitates communication with BlueBoat using the MAVLink protocol.
-
Clone the Repository:
git clone https://github.com/ImStian/blueboat_globalpathplanner.git cd blueboat_globalpathplanner -
Install Dependencies:
- Ensure Python is installed. Install the required packages using:
pip install -r requirements.txt
- In case of any issues related to missing libraries: Follow installation guide for SeaCharts and install any remaining dependencies manually.
-
Prepare the Environment:
- Download Depth data from GeoNorge using the file geodatabase fileformat.
- Place your
.gdbfile in the root directory of the project.
-
Communication:
- Make sure that BlueBoat is configured with an additional client endpoint. A guide can be found here.
- Alternatively, use the SITL simulator from ArduPilot, configured with an additional endpoint. This can be done using the
--out=<IP-address>:<Port>commandline-argument when starting SITL. SITL must run in the background at all times!python3 sim_vehicle.py -v Rover --out=127.0.0.1:14541
- The connection-object for this project is hardcoded in
main.py, and is defined by thethe_connectionvariable. Make sure that the IP-address and port matches the one configured in BlueOS or SITL. If not, modify the code.
-
Run the Path Planner:
python main.py
-
Customizing Settings:
- Use additional arguments when running the script:
Option Type Description Default -sizeint Size of map extraction 2500 -algostr Path planning algorithm. Valid entries: astar,rrtstarastar -notestr Add a note for mission logs -disable_logDisable logging of mission
- Use additional arguments when running the script:
data/: Contains data files required for the path planning.mission_logs/: Stores logs of missions for review and analysis.src/: Core source code for path planning.custom_plotter.py: Custom plotting utility for visualizing paths.main.py: Main script to run the path planner.map_settings.yaml: Configuration file for map settings.seacharts_plotter.py: Plotter for SeaCharts.standalone_pathplanner.py: Standalone version of the path planner.
Contributions are welcome! Please open an issue or submit a pull request for any improvements or bug fixes.
This project is licensed under the MIT License - see the LICENSE file for details.
For any questions or support, please open an issue on the repository.
readme.md was partially generated by ChatGPT-4o
