Code for our paper "Autonomous Navigation in Ice-Covered Waters with Learned Predictions on Ship-Ice Interactions", currently under review for ICRA 2025. [Project Page]
Modifier: Ninghan Zhong, University of Waterloo, Canada
Planning and prediction example
This project requires ROS Humble and has been testbed on Ubuntu 22.04. with Python 3.10. While not required, CUDA (Nvidia GPU) is highly recommended for our predictive planner.
- Clone the project
git clone https://github.com/IvanIZ/predictive-asv-planner.git
- install dependencies. Note, may need to install the dubins package manually (see here for instructions).
pip install -r requirements.txt
You may download the ice environments from here (350MB). By defult the file should be under home/user/Downloads. Unzip the file
cd ~/Downloads
unzip ~/Downloads/ice_environments.zip
Then move the extracted environments to the repository
mv ~/Downloads/ice_environments ~/predictive-asv-planner/
The simulation runs with two ROS nodes - a navigation node and planner node.
Run the following command to start the navigation node, which loads the environments and runs the physics simulations
python asv_navigation.py
In a new terminal, run one of the following commands to start a specific planner. To run our predictive planner:
python planners/predictive.py
To run the lattice planner
python planners/lattice.py
To run the skeleton planner
python planners/skeleton.py
To run the straight-line planner
python planners/straight.py
All parameters are set in the config.yaml file in the config
directory.
After each trial, the navigation visualization and collision statistics can be found in the logs
directory.
- Network training data
- Code for training data generation
- Training and testing scripts for the network
A part of this implementation is built upon the AUTO-IceNav project by Rodrigue de Schaetzen .