Thursday, 19 December 2013


In 2014, the Bristol Robotics Lab (BRL) will be launching a new Centre for Doctoral Training in robotics and autonomous systems.  The Centre will offer a joint PhD degree run by BRL's two partner universities, the University of Bristol and the University of the West of England.  The Centre is funded by EPSRC following their CDT 2013 competition.
The new CDT is entitled "Future Autonomous Robotic Systems Centre of PhD Education" - FARSCOPE.  In time FARSCOPE will have its own website with full information on the programme and how to apply.  Until then, the latest information and news for prospective students will be found here.


FARSCOPE is all about making robots more adaptable.  Instead of doing the same jobs over and over in  large factories, they'll help us in our homes, work alongside us in small businesses, and deal with hazardous situations while we keep a safe distance.  To make all this happen, we face three challenges:
  •  robots being part of society, interacting with people, machines or other robots, and handling all their unpredictable behaviour
  •  robots operating in uncertain environments, sensing, mapping and moving where existing maps and plans are inaccurate or unusable.
  •  requiring different roles of robots with regular changes, for small batch jobs in small businesses where two days downtime to reprogram isn't an option.
Together, these challenges make up our theme of adaptability.  The technologies involved are diverse and the applications are many, but anything to do with the three challenges above is within the remit of FARSCOPE.


FARSCOPE enhances the "traditional" PhD content of individual research with taught content on a range of robotics topics and more general skills.  Not only does this better prepare you for PhD research, but it gives you a broad view of robotics and autonomous systems that we believe is essential. There's so much to be learnt by seeing what's been done in different fields and applications: manufacturing benefits from autonomous exploring ideas and spacecraft can exploit UAV breakthroughs, to name just too.  In short, we want you to be adaptable too, in your skills and what you can do with them.

Year 1

  • Research methods training
  • Seminars in modern robotics methods
  • Robotics, mechanics and programming
  • Robotics context and applications (industry delivered)
  • Robot intelligence and systems
  • Specialist robotics topics (chosen from list of options)
  • Group robot project (eg IMAV contest, robot soccer or Mars rover field test)
  • Initial research project
  • Communications training and research presentation

Year 2

  • PhD research
  • Industry study workshop
  • Innovation and entrepreneurship
  • Complementary skills training

Year 3

  • PhD research
  • Industry study workshop
  • Partner placement (optional: opportunities at partner universities in Europe, Asia, North America or partner companies in the UK and Japan)
  • Public engagement training and group activity

Year 4

  • PhD research
  • Complementary skills training (including thesis preparation)
  • FARSCOPE conference presentation

More Information

More details will appear here and on our website as it becomes available.  For questions or if you're interested in applying, please contact

Wednesday, 3 April 2013

Flying Robots

This video actually dates back to January and we've done more since, but I've been meaning to post it anyway.  The video shows three different runs of the same controller, flying a Parrot AR.Drone through a virtual array of obstacles (i.e. the computer thinks they're there, but they're not).  The controller uses Model Predictive Control (MPC), solving a constrained optimization every 20ms to decide what to do next.  The clever bits are converting the global problem into a convex local optimization that we can solve quickly and deploying the solver in Simulink so the whole thing can be controlled by a dSpace MicroAutobox.  THe control is a little wobbly here but we've fixed that now, with disturbance estimation, better terminal constraints, and some careful tuning.

This work was carried out in our indoor flying arena.  (Much of the purpose of this post is to provide an excuse to post the photo of this arena below.)  This is an empty space 15m x 12m x 4m high, enclosed by curtains and instrumented with a Vicon motion capture system, now up to ten cameras.  We don't currently build our own aircraft - we just buy them off the shelf, so we can concentrate on developing the controllers for them.  The end goal is to make micro air vehicles (MAVs) that are more autonomous, able to say fly into a damaged building, explore and then come back out, without needing a highly skilled pilot to fly it and keep track of where it is.

Flying Arena

One way you can get involved in research like this is our joint Robotics MSc, run by the University of Bristol and the University of the West of England.  The degree is based at the Bristol Robotics Lab and includes the opportunity to do research projects using our flying robots.  More details can be found at 

Thursday, 7 March 2013


Use the map below to help find me! Visitor parking at the University can be found at the yellow "P" markers. Spaces must be pre-booked. Zoom out for the airport.
View Visiting Arthur Richards in a larger map

Wednesday, 23 January 2013

AMPL Toolbox

Only ten years after writing the thing, I've finally got around to making the AMPL toolbox for Matlab available on the Mathworks File Exchange:

AMPL (see stands for "A Mathematical Programming Language" and allows optimization problems to be written in a language close to how you'd write in in equations.  It also takes care of a great deal of "housekeeping" tasks like enumerating variables and constraints over sets of indices.  To solve an optimization, the AMPL executable typically combines a model file, containing the structure of the problem in terms of symbolic variables and parameters, with a data file, containing parameter values, to create a binary "NL" file encoding the whole problem.  Then an external solver (e.g. CPLEX, Gurobi or IPOPT) is invoked to solve the problem in the NL file and report results back to AMPL.

The AMPL-Matlab toolbox contains a series of utilities for writing the AMPL data file from Matlab.  Since MATLAB can also read data back from AMPL easily (just redirect an AMPL "printf" command to a file and use "load" in Matlab), this means you can do the whole process of optimization and data analysis in Matlab scripts.  OK, all that file writing and reading isn't the fastest way of doing business, and if you know exactly what you want to deploy in anger, you'd do it differently.  But, if your business is in tinkering with the structure of the optimization and the algorithm, as ours is, this makes an excellent rapid prototyping tool.

We've used this approach in our work on robot navigation and flight routing, among many other things.