Safe Trajectory Tracking in Uncertain Environments

This repository contains all Matlab code that generates the simulation results presented in Safe Trajectory Tracking in Uncertain Environments

Repository structure:

safe_trajectory_tracking     # root
├── code                     # simulation code
│   ├──run_all_experiments.m
│   ├──utils                 # utility functions
│   ├──vehicle               # simulation in Section IV-A
│   ├──double_integrator     # simulation in Section IV-B
│   └──robotic_manipulator   # simulation in Section IV-C
└── writing                  # paper preprint

Matlab (2020b/2021a)

Dependencies

The simulations are entirely written in Matlab and require the following packages/toolboxes to be included in your Matlab path:

Signal Processing Toolbox
CasADi v.3.5.5
YALMIP (latest)
Multi-Parametric Toolbox 3
tight_subplot.m (optional)
tightfig.m (optional)

Simulation

To generate the simulation data and to plot the results, set the current folder in Matlab to be code, and then run the following Matlab scripts for each simulation. The results will be stored in the data folder that will be generated

Vehicle Example

# Generate simulation data
run_vehicle_experiments.m

# Generate Figs. 1 and 2 in the paper
plot_vehicle_results.m

Double Integrator Example

# Generate simulation data
run_double_integrator_experiments.m

# Generate Fig. 3 in the paper
plot_double_integrator_results.m

# Generate Fig. 4 in the paper
plot_terminal_safe_set.m

Robotic Manipulator Example

# Generate simulation data
run_robotic_manipulator_examples.m

# Generate Figs. 5 and 6 in the paper
plot_robotic_manipulator_results.m

All examples

# Generate data for all simulations
run_all_examples.m

Paper

Safe Trajectory Tracking in Uncertain Environments
Ivo Batkovic - ivo.batkovic@zenseact.com
Mohammad Ali - mohammad.ali@zenseact.com
Paolo Falcone - paolo.falcone@unimore.it
Mario Zanon - mario.zanon@imtlucca.it
Submitted to Transactions on Automatic Control (2020).