Skip to content

Implements parameterizable modules

Jonathan Külz requested to merge dev/parametrizeable_modules into main

In the development of robot morphologies, one may want to experiment not only with discrete modules, but also with some that can be changed continuously in shape and extension. This MR will introduce parameterizable bodies that can be plugged in the according modules s.t. they can be optimized continuously.

This MR:

  • Introduces volumes for geometries
  • Introduces parameterizable bodies (can be boxes, cylinders, spheres) with on-the-fly calculation of geometry, mass, inertia
  • Introduces 4 modules (l and i shaped, with and without joint) that are made from parameterizable bodies and are therefore subject to change
  • Makes these modules serializable and conforming to the existing pipeline
  • Therefore allows optimization for robot morphologies with continuous modules

TODO:

  • Implement bodies with an arbitrary number of parameters, each one according to a specific dimension of the underlying geometry
  • Implement and enforce parameter limits
  • Implement modules that can contain more than one parametrized or fixed body with specific anchor points and resulting geometries
  • Implement "freeze" methods to fix the parameters/transfer to standard class
  • Make sure serializing a parameterized body/module works and "freezes" it, so deserializing yields a standard instance of the class
  • Check all places where AtomicModule is used as a type hint and check whether it can be generalized to ModuleBase
  • Check all places where Body is used as a type hint and check whether it can be generalized to BodyBase
  • Test the fresh implementation of volumes in geometries
Edited by Jonathan Külz

Merge request reports