Skaterbots: Optimization-based design and motion synthesis for robotic creatures with legs and wheels

Moritz Geilinger, Roi Poranne, Ruta Desai, Bernhard Thomaszewski, Stelian Coros

Research output: Contribution to journalArticlepeer-review


We present a computation-driven approach to design optimization and motion synthesis for robotic creatures that locomote using arbitrary arrangements of legs and wheels. Through an intuitive interface, designers first create unique robots by combining different types of servomotors, 3D printable connectors, wheels and feet in a mix-and-match manner. With the resulting robot as input, a novel trajectory optimization formulation generates walking, rolling, gliding and skating motions. These motions emerge naturally based on the components used to design each individual robot. We exploit the particular structure of our formulation and make targeted simplifications to significantly accelerate the underlying numerical solver without compromising quality. This allows designers to interactively choreograph stable, physically-valid motions that are agile and compelling. We furthermore develop a suite of user-guided, semi-automatic, and fully-automatic optimization tools that enable motion-aware edits of the robot's physical structure. We demonstrate the efficacy of our design methodology by creating a diverse array of hybrid legged/wheeled mobile robots which we validate using physics simulation and through fabricated prototypes.

Original languageEnglish
Article number160
JournalACM Transactions on Graphics
Issue number4
StatePublished - 2018
Externally publishedYes

Bibliographical note

Publisher Copyright:
© 2018 Association for Computing Machinery.


  • Animation
  • Computational design
  • Mobile robots
  • Physical characters

ASJC Scopus subject areas

  • Computer Graphics and Computer-Aided Design


Dive into the research topics of 'Skaterbots: Optimization-based design and motion synthesis for robotic creatures with legs and wheels'. Together they form a unique fingerprint.

Cite this