Reputation: 146
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 ?
I want modeling something like that, for example:
Parameter optimization with modeling the nonlinearities all-together I'm performing in the flexible multibody dynamics software SPACAR.
I came to several possible ways to solve this problem: the question is which way is a best ?
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.
How to connect together deformable
and rigid body
? I tried, e.g. WeldFrames
along with AddFrame,FixedOffsetFrame
, but I can't get appropriate bodyB: drake::multibody::Body<double>
argument of the deformable model.
In the RegisterDeformableBody
method written "The body is represented in the world frame". As I understand there is no way to connect deformable body to the another robot cause deformable body cannot have it's own frame.
1.2. Deformable body can be modeled using C++ ForceElement
as mentioned jwnimmer-tri here.
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.
Make a bridge between PyChrono
and Drake
and use PyChrono
for modeling deformable bodies.
the latest from master branch of drake's repository
Ubuntu 20.04
compiled from source code using CMake
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.
Upvotes: 1
Views: 173
Reputation: 191
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.
Upvotes: 1
Reputation: 2449
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.
Upvotes: 2