Changing simscape contact conditions during simulation conditionally

2 views (last 30 days)
I'm trying to figure out how to make body contacts conditional in simscape multibody?
As an example, I'm trying to model a 2D robot climbing on a ladder. I'd like to make the ladder rung contact available only after the grasping body has passed the ladder rung. In 3D this would be done by an out-of-plane motion, however for simplicities sake I'd like to avoid the extraneous detail for this work and assume a grasping point is available only after the grasping body has moved passed the ladder rung. Currently I'm using the Circle to Finite Line contact from the Multibody Contact Forces Library, and I'm looking to find a way to only activate it when the circle has passed a certain height (position of the ladder rung).
  1 Comment
Clyde Webster
Clyde Webster on 22 Sep 2020
I've found a block in the contact library called Circle to Finite Line Force Enabled. That appears to have an adiditonal input for potentially enabling/disabling the contact. However, I can't find any documentation that states how to use it. I'll update here if I figure it out.

Sign in to comment.

Accepted Answer

Steve Miller
Steve Miller on 5 Jun 2021
You are on the right track, Clyde! The "Enabled" blocks in the Simscape Multibody Contact Forces Library allow you to enable/disable the contact force using an input signal. Create a bus signal that has a signal labled "Enable" that is 0 for disable, 1 for enable.
See example model Gripper_2Belts.slx in the Simscape Multibody Contact Forces Library for an example of how to use it.
--Steve
  1 Comment
Clyde Webster
Clyde Webster on 26 Jan 2022
Thanks for your repsonse, Steve. I finally got it working.
It's not "neat", but for the 2D case I'm just sinking a sphere very slightly into a plane and using the "Sphere to Plane Force Enabled" block to switch on and off contact. As gravity is against me, all (well the bulk of) the reaction forces are generated through friction, and to facilitate this I simply bumped up the friction coefficient to about 10000 to emulate a grasping contact that would be stiff in this direction.

Sign in to comment.

More Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!