Dr. Morteza Azad

Office: Room 223 Computer Science (Y9)
Phone: +44 (0) 121 414 8002
Email: m.azad{AT}bham.ac.uk
Office hours: Wednesdays 15:00 to 16:00
          Fridays 16:00 to 17:00


I started my lectureship post in January 2017. Previously, I was a research fellow at the robotics group of the University of Birmingham. I studied my Ph.D. at the Australian National University where I was working under supervision of Dr. Roy Featherstone on designing control algorithms for balancing and hopping motions of under-actuated robots.
My main research interests are dynamics and control of robots particularly legged and under-actuated robots.


Student Projects

I am mainly interested in robotics related projects. This includes Kinematics and Dynamics, Modeling and Simulation, Manipulation, Control Algorithms, Optimal Control, Optimization and Learning.

Following is a list of potential projects that I would be happy to supervise. All projects can be supervised at mixed levels of difficulty.

  1. Implementing Optimal Control Algorithms in Simulation:
    This project is about implementing existing optimal control algorithms using MATLAB and/or C++. Optimal control includes a wide range of different algorithms including Dynamic Programming (DP), Quadratic Programming (QP), Linear Quadratic Regulator (LQR), iterative LQR (iLQR), Linear Quadratic Gaussian (LQG), etc. Optimal control algorithms can be implemented in a Model Predictive Control (MPC) framework in which the optimal trajectory is permanently-updated during the motion. The goal is to compare different algorithms in terms of performance and computational efficiency.
  2. Designing and Implementing Neural Networks to Control Robot's Motion (Walking or Hopping) in Simulation:
    This project is about implementing deep reinforcement learning algorithms which are proposed in different research papers. To do this, dataset for training needs to be generated via a dynamics simulator. Different types of dynamics simulators are available and the choice will be based on the student's expertise in programming.
  3. Creating a physics engine:
    This project can be defined in different levels of difficulty based on the features which are included in the physics engine. Features could be gravity, impact, contact, magnetic fields, spring, damper, inertia, 3D motion, etc.
  4. Implementing Impedance Control for a Planar Dual-Arm Robot:
    Impedance control is a method to control the physical interaction between a robot and its environment. This project involves implementing the existing impedance control algorithms on a planar dual-arm robot in simulation. Depending on the difficulty of the implementation, the project may or may not include optimization of the contact forces or the robot's configuration. This can be done either in MATLAB or C++ or even using other existing dynamic simulators.
  5. Parameter Identification of Objects for Manipulation:
    The aim is to manipualte objects with unknown properties. Properties include mass, inertia, center of mass and friction coefficient. The idea is to estimate or learn these properties for an obejct (or a set of objects) through physical interactions with robotics arms. This can be done in simualtions first and then implemented on real robots.
  6. Implementing Robot Control Algorithms using Parallel Computation Methods:
    This project is about using parallel computing methods to implement robot control algorithms (preferably optimal control algorithms which are usually very time consuming) to decrease the computation time. Ideally, I would like to run these algorithms on GPU but running on CPU is also sufficient for the purposes of this project.
  7. Computer Graphics:
    This is a general topic and open for discussion with interested students. It has to include using OpenGL. One possibility is to implement a ray tracing algorithm from scratch.