Planning Project (RO47005)

Table of contents

Objective

Solve parking problem in an unstructured (i.e. no specific traffic rules for the vehicle) parking lot based on this simulation environment.

Labour distribution

The added functionalities by us are:

  • Simulation environment and graph building
  • Hybrid A* path planner
  • Nonlinear MPC formulation

For more details, please refer to our report.

Directories

  • hybrid_astar : where hybrid A* path planner is implemented
  • motion_planning_scenes : adapted (unmodified) from motion planning scenes repository
  • obstacled_environments : where the parking lot (obstacled) environments are defined in gym
  • mpc_controller : where linear mpc controller is implemented
  • nonlinear_mpc : where nonlinear mpc controller is implemented based on the acados
  • scenarios : where the final files stored to get all together
    • dummy_examples : where we use some simple example to test the previous functions
    • parking_tasks : where the final parking tests filed stored

Some achievements

With this project, we manage to solve the parking problem in an unstructured parking lot using the Hybrid A* algorithm as the path planner and the nonlinear model predictive control to further optimize the solution.

Hybrid A*

With Hybrid A* path planner, we manage to get a path from the initial place to the desired destination on our parking lot.

Nonlinear mpc

We use four different situations to test our code, separately without unexpected obstacle, static obstacle, encountering obstacle and following up obstacle. The plots for path and velocity of our self-driving car is shown below.

The encountering situation

The following up situation

To Run Our Code

To run our code, please refer to the guidance here.