Simscape begins simulation outside of joint limits

3 views (last 30 days)
I am trying to model a closed kinematic chain in simulink, and i get problems with having meaningful initialization. Matlab ignores the joint limits for some joints.
What i have done:
I imported a urdf (which it self doesn't close the chain) and added a bushing joint to close the chain at the required point). There are 5 links, but only three of them are independent (and actuated), thus i have set a position target to those with high priority (to set the desired initial conditions). In the bushing joint, in all the DOFs i want to constraint i have set a position target to zero with low priority.
Thus, the 2 unactuated joints do not have a specified position target and are passive joints.
Problem
When i launch the simulation at specified initial conditions, matlab ignores the limits of the unactuated joint to close the chain, even though there is a solution. See below: (1.22 rad ~= 70 deg)
This causes the closed chain to get in a weird configuration, instead of the sketched one:
Also, the next step in the simulation, puts the configuration in the acceptable limits:
So it is like the limits are not respected when simscape tries to close the chain

Accepted Answer

Michail Papadakis
Michail Papadakis on 22 Apr 2024
Simscape does not satisfy all joint limits by default in model assembly as it seems. However, i could bias simscape to select the desired configuration when i put a position target with low priority for (Ry) in the bushing joint. The acceptable angles were positive in my case, so i put 45degrees as the position target and it works.
Also in my case, it turned out i could simulate the system with a planar joint.

More Answers (0)

Products


Release

R2022b

Community Treasure Hunt

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

Start Hunting!