Table of Contents

Lab10 - Data Collection Planning ((D)TSPN)

Motivations and Goals
Become familiar with approaches for for TSPN and (D)TSP
Be able to implement Noon-Bean transformation
Tasks (teacher)
Familiarize with the provided codes and implement any version of a decoupled approach.
Resources
Lab10-Maze TSPN in an environment with obstacles
Lab10-Dubins Dubins TSP

Neighborhoods in maze scenario

  1. Decoupled approach
    1. First, find the goal sequence by the ETSP. Then, find the final trajectory.
    2. First, find the goal sequence by the TSP utilizing the found shortest paths between centres of the given regions. Then, find the final trajectory.
  2. Sampling-based approach
    1. Create samples in the goal neighborhoods and all shortest paths. Then, transform the problem to the ATSP by the Noon-Bean transformation

Noon-Bean transformation

Data Collection Planning with Curvature-Constrained Vehicles

https://github.com/AndrewWalker/pydubins

Here, you can find how to install a specific package into python.

Installation on school computers (without root):

# download script for pip installation
wget https://bootstrap.pypa.io/get-pip.py
 
# install pip into your home directory
python2 get-pip.py --user
rm get-pip.py
# set PATH in system
echo "PATH=\$PATH:~/.local/bin" >> ~/.bashrc
# use modified .bashrc file
source ~/.bashrc 
 
# install dubins library into your home directory
pip install dubins --user

Installation on your own computers (using root):

# install pip for installing Python packages
sudo apt-get install python-pip python-dev build-essential 
sudo pip install --upgrade pip 
sudo pip install --upgrade virtualenv
 
# install the dubins library
sudo pip install dubins

The following methods are available. For more information, see https://github.com/AndrewWalker/pydubins/blob/master/dubins/dubins.pyx

LSL = 0
LSR = 1
RSL = 2
RSR = 3
RLR = 4
LRL = 5
 
def path_type(q0, q1, rho):
    '''Identify which type of path is produced between configurations ... '''
 
def path_length(q0, q1, rho):
    '''Return the total length of a Dubins path ... '''
 
def path_sample(q0, q1, rho, step_size):
    '''Sample a Dubins' path at a fixed step interval .... '''