Publications

Main article

Marco Frigerio, Jonas Buchli, Darwin G. Caldwell and Claudio Semini, "RobCoGen: a code generator for efficient kinematics and dynamics of articulated robots, based on Domain Specific Languages", in the Journal of Software Engineering for Robotics (JOSER), Vol 7, No 1, July 2016, pp. 36-54.

PDF
BibTeX
@Article{frigerio:2016:robcogen,
  author       = {Marco Frigerio and Jonas Buchli and Darwin G. Caldwell and Claudio Semini},
  title        = {{R}ob{C}o{G}en: a code generator for efficient kinematics and dynamics of articulated robots, based on {D}omain {S}pecific {L}anguages},
  journaltitle = {Journal of Software Engineering for Robotics (JOSER)},
  year         = {2016},
  date         = {July},
  volume       = {7},
  number       = {1},
  issue        = {Special Issue on Domain-Specific Languages and Models for Robotic Systems},
  pages        = {36--54}
}

Related publications

Automatic differentiation

Markus Giftthaler, Michael Neunert, Markus Stäuble, Marco Frigerio, Claudio Semini and Jonas Buchli, "Automatic differentiation of rigid body dynamics for optimal control and estimation", Advanced Robotics, Taylor & Francis, 2017, pp 1-13

Web
BibTeX
@Article{giftthaler:2017:ad,
  author    = {Markus Giftthaler and Michael Neunert and Markus Stäuble and Marco Frigerio and Claudio Semini and Jonas Buchli},
  title     = {Automatic differentiation of rigid body dynamics for optimal control and estimation},
  journal   = {Advanced Robotics},
  year      = {2017},
  date      = {2017-11-08},
  volume    = {0},
  number    = {0},
  pages     = {1-13},
  doi       = {10.1080/01691864.2017.1395361},
  publisher = {Taylor \& Francis}
}

Michael Neunert, Markus Giftthaler, Marco Frigerio, Claudio Semini and Jonas Buchli, "Fast Derivatives of Rigid Body Dynamics for Control, Optimization and Estimation", IEEE international conference on Simulation, Modeling, and Programming for Autonomous Robots (SIMPAR), 2016

Web
BibTeX
@InProceedings{neunert:2016:derivatives,
  author    = {Michael Neunert and Markus Giftthaler and Marco Frigerio and Claudio Semini and Jonas Buchli},
  title     = {Fast Derivatives of Rigid Body Dynamics for Control, Optimization and Estimation},
  booktitle = {IEEE international conference on Simulation, Modeling, and Programming for Autonomous Robots (SIMPAR)},
  year      = {2016}
}

Benchmarking

In November 2019, a paper (by Sabrina Neuman and colleagues) benchmarking four robot dynamics libraries was presented at IROS.

RobCoGen compares very well with the other libraries!

Here is a link to the paper.

Why I think RobCoGen was the slowest for inverse dynamics I could not resist from writing a note about it :)

The only case in which RobCoGen does not perform better/equally than/to the other libraries studied in the paper is inverse dynamics for floating base robots. The authors were quite fair and explain this fact, but I still feel like a clarification is needed.

Essentially, different algorithms were compared: for a floating base robot, robcogen inverse dynamics is really a hybrid dynamics solver, which also computes the acceleration of the base; I think that it does not make much sense to do otherwise.1

Such a hybrid dynamics solver has a higher computational cost then the regular inverse dynamics, which was used to benchmark the other libraries (do they then always assume a fixed base??). The two algorithms are not very comparable because the hybrid dynamics computes more things.

An additional factor affecting performance is a poor implementation of the coordinate transformation for composite inertia, which is used in the hybrid dynamics code. This is a bit silly, as I am already using a better implementation of the same operation in the code for the inertia matrix; I just forgot to update the hybrid dynamics... Note that this detail is also mentioned in the paper.

Older and less thorough performance comparisons involving RobCoGen are included in the main paper (see the top of this page).

Older publications

M. Frigerio, J. Buchli and D. G. Caldwell, "Code Generation of Algebraic Quantities for Robot Controllers", IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS), 2012.

PDF
BibTeX
@InProceedings{frigerio:2012:iros,
  Title     = {Code Generation of Algebraic Quantities for Robot Controllers},
  Author    = {Marco Frigerio and Jonas Buchli and Darwin G. Caldwell},
  Booktitle = {IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS)},
  Year      = {2012}
}

M. Frigerio, J. Buchli and D. G. Caldwell, "Model based code generation for kinematics and dynamics computations in robot controllers", extended abstract at the 7th workshop on Software Development and Integration in Robotics (ICRA SDIR VII), St Paul, Minnesota, USA, May 2012.

PDF
BibTeX
@InProceedings{frigerio:2012:sdirVII,
  Title      = {Model based code generation for kinematics and dynamics computations in robot controllers},
  Author     = {Marco Frigerio and Jonas Buchli and Darwin G. Caldwell},
  Booktitle  = {Seventh workshop on Software Development and Integration in Robotics (ICRA SDIR VII)},
  Year       = {2012},
  Month      = {May}
}

M. Frigerio, J. Buchli and D. G. Caldwell, "A Domain Specific Language for kinematic models and fast implementations of robot dynamics algorithms", 2nd International Workshop on Domain-Specific Languages and models for ROBotic systems (DSLRob), San Francisco, September 2011.

PDF
BibTeX
@InProceedings{frigerio:2011:kindsl,
   Title      = {A Domain Specific Language for kinematic models and fast implementations of robot dynamics algorithms},
   Author     = {Marco Frigerio and Jonas Buchli and Darwin G. Caldwell},
   Booktitle  = {2nd International Workshop on Domain-Specific Languages and models for ROBotic systems (DSLRob)},
   Year       = {2011},
   Month      = {September}
}

Publications

  1. In fact, RobCoGen-erated C++ code also gives the option to calculate floating base inverse dynamics under the assumption of a "fully-actuated" base, i.e., as if any arbitrary wrench could be exerted on the floating base. In this case, the base acceleration is a desired value, the same as for the joints.