SURF 2015: Platform-based design for robotics applications

From Murray Wiki
Revision as of 23:57, 28 December 2014 by Vasu (talk | contribs)
Jump to navigationJump to search

2015 SURF project description

  • Mentor: Richard M. Murray
  • Co-mentors: Vasu Raman and Samira Farahani
Figure 1. Platform-based design (figure from
Figure 2. Kobuki-based Turtlebot such as the ones used in the Caltech Vehicles Lab.

This project will develop support for platform-based design for robotics applications using the Temporal Logic Planning Toolbox (TuLiP), a collection of Python-based programs for automatic synthesis of correct-by-construction embedded control software [1].

In platform-based design [2], design progresses in a structured fashion, over precisely defined abstraction levels, which separate functionality (the “what”) from implementation (the “how”). A platform is an abstraction layer that hides the details of several possible implementation refinements of the underlying layers. It consists of a library of elements with various functionalities, and rules that define legal composition of these elements. Platform-based design therefore allows specifications to be refined at each abstraction level based on models of different potential implementations.

Consider the example of a robot operating in a search-and-rescue setting. Specifications on this robot’s behavior apply at different levels of operation, e.g. decision-making about where to go and when, safety during motion planning, robot-specific specification on battery level and charging frequency, etc. This SURF project will model this scenario and others like it using platform-based design, separating the desired requirements into different levels of abstraction, determining the best tools for synthesizing control at each level and the rules for interfacing them. The control synthesis will use existing tools in TuLiP, as well as explore options currently external to TuLiP that may be more germane to specific levels of abstraction (see, e.g. [3,4]). If feasible, the project will include an experimental component with ground robots in the Vehicles Lab.

Required Skills: This project requires programming experience in Python or another object-oriented language. Experience in experimental robotics and the Robot Operating System (ROS) is preferred, and willingness to learn these things is necessary. Some familiarity with or willingness to learn about automata theory, formal languages, and model checking is also desired.


[1] T. Wongpiromsarn, U. Topcu, N. Ozay, H. Xu, and R. M. Murray, TuLiP: a software toolbox for receding horizon temporal logic planning, International Conference on Hybrid Systems: Computation and Control, 2011 (software available at

[2] A. Sangiovanni-Vincentelli, G. Martin, Platform-based design and software design methodology for embedded systems, Design & Test of Computers, IEEE , vol.18, no.6, pp.23,33, Nov/Dec 2001

[3] E. M. Wolff, U. Topcu, R. M. Murray, Optimization-based trajectory generation with linear temporal logic specifications. ICRA 2014: 5319-5325

[4] V. Raman, A. Donzé, M. Maasoumy, R. M. Murray, A. Sangiovanni-Vincentelli, S. A. Seshia, Model Predictive Control with Signal Temporal Logic Specifications, CDC 2014.