MATLAB Answers

How do you represent contact with the ground in simscape?

63 views (last 30 days)
Josh
Josh on 13 Oct 2013
Answered: Steve Miller on 6 Aug 2017
Hi,
I am (eventually) attempting to create a model which I can use to simulate control algorithms on a humanoid robot.
However whilst starting with simple models - I can't work out how to represent the ground, so that when any part of the bodies come into contact with this - they stop/bounce etc.
Is there any way of doing this?
thanks

  1 Comment

prakhar jain
prakhar jain on 5 Feb 2017
check:sm_double_wishbone_suspension in simulink model. This should help you out. Check out the implementation of hard stop between the tyre and the road profile. That should help.

Sign in to comment.

Answers (3)

Steve Miller
Steve Miller on 6 Aug 2017
For 1D contact problems where only viscous friction is present, the hardstop block may be sufficient. However, for 2D and 3D problems or if the friction force depends on the normal force, I recommend looking at the File Exchange submission Simscape Multibody Contact Forces Library. It contains a library of blocks for use with Simscape Multibody that detect collision between various shapes, calculates the normal force and friction force on each part, and applies them to the colliding parts.
Below are a few animations that test models included in the submission. The Simscape Multibody Contact Forces Library contains the library for current and previous MATLAB releases.
Thanks,
--Steve
Here is another one:

  0 Comments

Sign in to comment.


Ryan G
Ryan G on 14 Oct 2013
You want the translational hard stop block.
With a bi-ped robot you'll probably want to make some design decisions with the model in terms of trading off fidelity for simulation speed and usability. Each point that is capable of hitting the ground would require a hardstop. So, if you don't need to model the robot falling over, you can skip modeling that ground-body interaction.

  0 Comments

Sign in to comment.


Zafb
Zafb on 4 Apr 2015
Hi, I am trying to do the same thing in 2015...Got some help from the following link which uses translational "hard stop" block http://www.mathworks.com/matlabcentral/answers/137140-contact-simulation-in-simmechanics
But the leg never bounces back, instead it goes through the ground. Even though I can see the contact force being produced when the leg hits the ground and is going through it.
Do you have any idea what might be wrong in my model?
Thanx in advance,
Zohaib

  3 Comments

N/A
N/A on 14 Apr 2015
Try increasing the spring coefficient in the Translational Hard Stop block. This is equivalent to modeling a harder surface, which should prevent the falling body from cutting through the ground. Beware, though, that a very large spring constant can slow down simulation. You want to increase the stiffness just enough to ensure the falling body does not penetrate the contact surface.
Zafb
Zafb on 3 Feb 2016
Hi, thanks for the answer.
10 months on, still no luck! the contact stiffness value is already set to 1e6 N/m. Even tried 1e15, but nothing seems to be working.

Sign in to comment.

Sign in to answer this question.