Skip to content
This is my final year MEng in EEE project where I investigate Path Planning and Control for Autonomous Vehicles.
C++ Python CSS MATLAB Processing Shell Other
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
Matlab Simulation Files Cleaned Up Project Jun 24, 2014
Motor Test Files
Physical Implementation Added Missing Files Oct 18, 2014

Unmanned Navigation System

This is my final year MEng in EEE project where I investigate Path Planning and Control for Autonomous Vehicles.


This project involves the research and design of an integrated planning and execution navigation system where at every stage the system is guided by a global path. An integrated approach reduces execution time which is the time is takes to generate and implement a motion control law. The system consists of an optimal predictive control regime and an optimal path planning algorithm for dynamic motion of generic unmanned vehicles in partially unknown environments. In this implementation, portability of solution and rapid re-design for changing specifications are taken into account. The main emphasis of this project is to implement a holistic architecture for an autonomous navigation system. The design started from utilising optimisation theory to develop a custom active-set algorithm to investigate the viability of linear model predictive control (MPC) scheme. MPC calculated optimal control law taking into account future requirements. It then applied the first part of the solution and repeated this procedure at the next time step. The robot’s kinematics was derived taking into account non-holonomic constraint which are the wheels’ sliding and rolling constraint. MPC was used to minimise both the energy used and error between a reference trajectory and the robot’s motion. Also important to navigation is the localisation module. This report highlighted a sensor fusion of odometry information from the precise locomotion of stepper motors and a laser scanner. An Adaptive Monte Carlo Localisation (AMCL) approach was taken to fuse the sensor readings in order to produce accurate pose information. This localisation module is used by the path-planner. The path planner is based on the complete version of the D-star algorithm which generates a path that optimises a heuristic. In this case, it handled both edge avoidance and global path generation while keeping computational requirements to a minimum. The planner decomposed the map into square occupancy grids represented as a graph. These grids became possible robot locations and were the nodes of the graph. D-star expanded upon neighbouring nodes selecting a sequence that would result in minimum distance. A sudden discovery of obstacles can change path cost. In conclusion, D-star was shown to re-compute optimal path in real-time making it suitable for dynamic environments. This report also demonstrated the feasibility of an integrated planning and execution navigation system design for dynamic environment that reduces execution time complexity of optimal motion control to O(1) thus applying MPC to fast processes.


  1. Simulations: contains files for Optimal Control Simulation and Results.
  2. Physical System: contains program code for navigation system.
  3. Motor Testing: contains codes used to test and verify motor performance.
  4. Presentation: Powerpoint presentation showing project overview and demo.

Simulation Instruction

  • To run simulation results, first enter the directory containing install.m and run it from there.
  • To see mpc results for a random feasible trajectory, run mpc.m
  • To see MPC results for a sine function path, run SampleMPC.m
  • To see MPC performance with noise (i.e demonstrating concept of explicit MPC), run SampleMPC_noise.m
  • To generate nicely looking random feasible trajectories, run dispRandomPath.m
You can’t perform that action at this time.