====== 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 ([[courses:b4m36uir:internal:instructions:lab10|teacher]]) ^ | Familiarize with the provided codes and implement any version of a decoupled approach. | ^ Resources ^ | {{:courses:b4m36uir:labs:lab10-tspn.zip|Lab10-Maze}} TSPN in an environment with obstacles | | {{:courses:b4m36uir:labs:lab10-dtsp-v2.zip|Lab10-Dubins}} Dubins TSP | ===== Neighborhoods in maze scenario ===== - **Decoupled approach** - First, find the goal sequence by the ETSP. Then, find the final trajectory. - First, find the goal sequence by the TSP utilizing the found shortest paths between centres of the given regions. Then, find the final trajectory. - **Sampling-based approach** - Create samples in the goal neighborhoods and all shortest paths. Then, transform the problem to the ATSP by the Noon-Bean transformation {{:courses:b4m36uir:labs:noon_bean2.png?300|}} === Noon-Bean transformation === {{:courses:b4m36uir:labs:noon-bean.png?500|}} ===== Data Collection Planning with Curvature-Constrained Vehicles ===== [[https://github.com/AndrewWalker/pydubins]] [[https://packaging.python.org/tutorials/installing-packages/| 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 .... '''