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
.gdb
file 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_connection
variable. 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 -size
int Size of map extraction 2500 -algo
str Path planning algorithm. Valid entries: astar
,rrtstar
astar -note
str Add a note for mission logs -disable_log
Disable 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