How can I constrain a body to another when there's a distance offset (Unknown or not exact distance)?

3 views (last 30 days)
So far I have been using rigid transforms to define where I want my joints to be. However now I'm facing the problem "Model not assembled: position violation" when I want to have a revolute joint at a certain position from one frame to another. I can only assume the distance might not be exact as how I've defined it using the rigid transform, so it would cause the model to violate the constrained DOF.
In the picture attached, the bottom is on a prismatic joint while the arm is on a revolute joint. I'd like to have another revolute joint between the frames circled in red. When I transform the frame it goes right on top of the other frame, but it still gives me an error when I put the revolute joint. How else can I do this?

Accepted Answer

Akshat Dalal
Akshat Dalal on 11 Oct 2023
Hi Bassem,
I understand you want to constrain two frames using a revolute joint but are getting "Model not assembled: position violation" error. The solution and the reason for this error have already been discussed in the following MATLAB Answer: https://www.mathworks.com/matlabcentral/answers/473428
You can follow the given steps to implement the solution:
  1. Locate the Joint causing the error and add a Transform Sensor block to it. This block will allow you to measure the relative displacement between the Base and Follower frames of the Joint.
  2. Based on the output of the Transform Sensor block, you can determine the necessary adjustments to the misaligned frames. Add a Rigid Transform block to the model and configure it to correct the misplacement. You can adjust the translation and rotation parameters of the Rigid Transform block to align the frames properly.

More Answers (0)

Categories

Find more on Applications in Help Center and File Exchange

Products


Release

R2022b

Community Treasure Hunt

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

Start Hunting!