skip to Main Content

Background

I am using this library and lower_leg_2_parts branch for modeling my robot solo12.

My robot model is loading in Drake from URDF file using AddModelFromFile and after that is connecting the controller to the simulated plant.

What is a deformable body ?

  • Material: PETG RELAX with the appropriate characteristics.
  • Dimensions of the bounding box: x:y:z 10:10:14 mm
  • Shape: I’ll provide you with appropriate links:
  1. Flexure Joints for Large Range of Motion video from University of Twente (UT).
  2. The book: Design and optimization of large stroke flexure mechanisms by Mark Naves.
  3. LARGE-STROKE FLEXURE HINGES.

I want modeling something like that, for example:
enter image description here
enter image description here
enter image description here

Parameter optimization with modeling the nonlinearities all-together I’m performing in the flexible multibody dynamics software SPACAR.

Question

I came to several possible ways to solve this problem: the question is which way is a best ?

  1. I can create rigid part of the robot and 4 flexible leg’s parts and then connect their together. We can add rigid bodies via AddModelFromFile and deformable body with RegisterDeformableBody separately and put them in a single plant. The deformable body can be prepared in two ways:

1.1. Deformable body can be simulated with FEM by DeformableModel PyDrake class.

1.2. Deformable body can be modeled using C++ ForceElement as mentioned jwnimmer-tri here.

  1. I can model leg as amount of joints, connected like snake’s spine with small angle constraints. The problem here is that when I modeled lower leg consisted of 3 links and 2 joints (they are fixed), my leg fell into resonant undamped oscillations.
    enter image description here

Drake Version

the latest from master branch of drake’s repository

What operating system are you using?

Ubuntu 20.04

What installation option are you using?

compiled from source code using CMake

P.S.

I am already studied the example deformable_torus.ipynb and learned how to simulate deformable bodies, but there wasn’t answer on my question. I went through all the documentation, code, drake’s issues, questions here related to Drake and did not find an answer. I say this so that you don’t give me cons,then I was banned anyway.

If you required I will provide you instructions for reproducing my program.

2

Answers


  1. As of today in Drake, the support for deformable models is still incomplete and under development. So, the process will not be easy (yet).

    It does not seem possible currently to specify a deformable geometry via a URDF file. As in the deformable_torus.cc example, you will need to call RegisterDeformableBody manually, after making a GeometryInstance with your tetrahedral mesh *.vtk file.

    To remove the non-deformable model, easiest would be to edit (a copy of) your URDF file to remove the proximity geometries you are about to replace.

    Login or Signup to reply.
  2. You may want to investigate using Drake with a linear bushing to model extensional, bending, and torsional stiffness and damping. You may be able to estimate stiffness constants from an existing FEA model. The documentation provides details on how to estimate damping.

    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search