/predictive-asv-planner

Codes for our paper "Autonomous Navigation in Ice-Covered Waters with Learned Predictions on Ship-Ice Interactions"

Primary LanguagePythonGNU General Public License v3.0GPL-3.0

Autonomous Navigation in Ice-Covered Waters with Learned Predictions on Ship-Ice Interactions

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

my image

Installation

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.

  1. Clone the project
git clone https://github.com/IvanIZ/predictive-asv-planner.git
  1. install dependencies. Note, may need to install the dubins package manually (see here for instructions).
pip install -r requirements.txt

Usage

Download the ice field environments

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/

Run ship navigations

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

Configuration File

All parameters are set in the config.yaml file in the config directory.

Experiment Logs

After each trial, the navigation visualization and collision statistics can be found in the logs directory.

What is NOT yet included in this Release

  1. Network training data
  2. Code for training data generation
  3. Training and testing scripts for the network

Acknowledgement

A part of this implementation is built upon the AUTO-IceNav project by Rodrigue de Schaetzen .