Replies: 3 comments 6 replies
-
I've had the idea of free floating Cosserat beams for a while but never gotten the time to implement it. I do think most of the ingredients are there, except some minor computations here and there. I recently stumbled upon the paper from Caradonna et al. (2024) (see Section 3B), maybe this can help? The paper can be found here Model_and_Control_of_R-Soft_Inverted_Pendulum.pdf I'll have to look into it to make a working implementation... |
Beta Was this translation helpful? Give feedback.
-
@Beta-y There are still some things that I need to polish out, and I also need to make sure it is compatible with the other examples of the toolkit. I noticed there is still a bug for when Nevertheless, here is an pre-release version. Make sure to compile the new mex files The model now has joint coordinates Please let me know if it works for you. |
Beta Was this translation helpful? Give feedback.
-
@Beta-y Below you'll find the code and result for making an unactuated soft pendulum, you may change M = 12;
mat = NeoHookean(0.1,0.4);
mat.params.Zeta = 0.2;
shp = Shapes(chebyspace(50,M), [0,M,0,0,0,0], [0,1,0,0,0,0]);
shp = shp.setRadius([8,8,0.85]);
shp = shp.setMaterial(mat);
shp = shp.setBase('-z');
shp = shp.rebuild();
shp.solver.TimeStep = 1/160;
shp.solver.TimeHorizon = 5;
shp.options.Display = @plotcurve;
shp = shp.addGravity([0;0;-9800]);
shp = shp.addControl(@Control);
ii = 1;
while shp.solver.Time < shp.solver.TimeHorizon
shp = shp.update();
plotcurve(shp);
if ii == 1
gif('soft_pendulum_active.gif','nodither',...
'DelayTime', 1/60,...
'frame',gca);
else
gif;
end
ii = ii + 1;
end
function tau = Control(shp)
t = shp.solver.Time;
tau = zeros(shp.NJoint,1);
tau(end) = .75 * sin(6*pi*t);
end
function shp = plotcurve(shp)
cla;
p = backbone(shp.system.Backbone);
plot(p(:,1), p(:,3),'k-','LineW',3);
axis equal;
axis([-100, 100, -100, 100]*1.2);
drawnow;
end |
Beta Was this translation helpful? Give feedback.
-
Hi, Dr. Caasenbrood. I have been working hard on study this kit for several days via investigating the codes and your corresponding papers and thesis. It is really an excellent tool for simulating soft stuffs.
Actually, I am wondering if there is a way to add degree of freedom(s) for the basis of$x$ -angle of basis according to time $t$ using
Shape
object so that it can be directly drived according to some controller or being under-actuated while no control input provided, of course. I did notice that there is a function namedsetBase
which can change the basis location by setting an exact pose. But it seems like it can not be drived by using a hdle function likeaddControl
. The following is an example using PCC model with only one segment, in which I increase thesetBase
function:Could you please give me some advices? Thank your pretty much! 😃
Beta Was this translation helpful? Give feedback.
All reactions