GET /api/v2/video/1235
HTTP 200 OK Vary: Accept Content-Type: text/html; charset=utf-8 Allow: GET, PUT, PATCH, HEAD, OPTIONS
{ "category": "SciPy 2012", "language": "English", "slug": "tulip-a-toolbox-for-hybrid-and-reactive-systems", "speakers": [ "Richard M. Murray", "Scott C. Livingston" ], "tags": [ "General" ], "id": 1235, "state": 1, "title": "TuLiP: a toolbox for hybrid and reactive systems research", "summary": "", "description": "We present a toolbox for the creation and study of controllers for hybrid\nsystems. It contains modules for\n\n> * working with n-dimensional polytopes,\n\n> * refining continuous state space partitions to satisfy reachability\nproperties,\n\n> * synthesizing, manipulating, and visualizing finite automata as winning\nstrategies for a class of temporal logic-based games,\n\n> * simulating hybrid executions, and\n\n> * reading and writing problem solutions to an XML format.\n\nThe toolbox is named TuLiP (for \"Temporal Logic Planning\") and written almost\nentirely in Python, making critical use of NumPy, SciPy, CVXOPT, and\nmatplotlib. While software for hybrid systems research is commonly written in\nMatlab scripts or otherwise requires the end-user to build from source for her\nparticular platform, TuLiP requires neither. For a standard scientific Python\nenvironment, the only additional library may be CVXOPT. Code (re)use and\nexperimentation are easy, and because of this, TuLiP has provided a natural\nbasis for further research and development.\n\nSource code and documentation are currently available at [http://tulip-\](\n\nIn this talk we will describe the problem domain addressed by TuLiP, various\nuse cases, and lessons learning in the Python implementation. We shall include\na full example making use of all components and show ways that individual\nmodules are useful more broadly. Major items of the talk will be\n\n> 1. related work, and the paucity of Python use in hybrid control research,\nwhich we argue is a matter of inheritance rather than best practices;\n\n> 2. overview of the type of hybrid systems represented in TuLiP and\nrelevance to other fields;\n\n> 3. summary of the major steps going from problem statement to solution;\n\n> 4. using only the \"polytope computations\" module;\n\n> 5. using only \"discrete reactive synthesis\" related modules, with a brief\ndescription about temporal logic synthesis to provide background for those not\nworking on computer aided verification;\n\n> 6. snippets about recent research using and building on TuLiP; and\n\n> 7. discussion about the Python-based implementation and lessons learned.\n\nFor the last item, we will describe challenges faced while developing TuLiP,\ngiven its role of \"stitching together\" several external tools, e.g., Gephi\n<[](> for large graph visualization and\ngr1c <[](> for game\nsolving. We will also touch on liberation from a Matlab-only tool (Mult-\nParametric Toolbox; see\n[](, achieved\nby creating our own Python module for working with polytopes, using NumPy and\nCVXOPT for computations and matplotlib for visualization.\n\nA tool paper describing an earlier version of TuLiP was presented at the\nconference Hybrid Systems: Computation and Control (HSCC) in April 2011. There\nhave since been substantial additions and improvements. Furthermore, a broader\naudience can be reached at SciPy 2012, with new opportunity to address designs\nissues likely shared by other scientific Python developers.\n\nDevelopment of TuLiP has been supported in part by the AFOSR through the MURI\nprogram, the Multiscale Systems Center (MuSyC) and the Boeing Company.\n\n", "quality_notes": "", "copyright_text": "CC BY-SA", "embed": "<object width=\"640\" height=\"390\"><param name=\"movie\" value=\";hl=en_US\"></param><param name=\"allowFullScreen\" value=\"true\"></param><param name=\"allowscriptaccess\" value=\"always\"></param><embed src=\";hl=en_US\" type=\"application/x-shockwave-flash\" width=\"640\" height=\"390\" allowscriptaccess=\"always\" allowfullscreen=\"true\"></embed></object>", "thumbnail_url": "", "duration": null, "video_ogv_length": null, "video_ogv_url": null, "video_ogv_download_only": false, "video_mp4_length": null, "video_mp4_url": "", "video_mp4_download_only": false, "video_webm_length": null, "video_webm_url": "", "video_webm_download_only": false, "video_flv_length": null, "video_flv_url": "", "video_flv_download_only": false, "source_url": "", "whiteboard": "", "recorded": "2012-07-19", "added": "2012-08-31T16:35:57", "updated": "2014-04-08T20:28:27.128" }