How can I get rid of redundant constraints

Mohamed Hussein
Mohamed Hussein New Altair Community Member
edited July 2022 in Community Q&A

Hello everyone,
I'm struggeling with the redundance im my system (Delta Robot) while bulding the motion in Inspire Motion.

I've tried so many adjustment for the joints and the actuators without any success. I've also read all the articles in the Inspire Motion community including that on the friction and avoiding the redundant constraints. I also tried to follow the solution in that article and ended up with nothing too.

I created a very simple system to test that on it, which i've attached to this ticket. my goal is actually read the moment in specific joints as i'm performing a reverse kinematics on my robot. so if there any other suggestions (altair products) to solve the problem other than using inspire motion, they are offcoures wellcome.
nevertheless i sill need to get ride of redundant constrains.

kind regards

 

image

image

Answers

  • Scott_Z_2
    Scott_Z_2
    Altair Employee
    edited June 2022

    Hi Mohamed,

    What makes you think you have redundant constraints in the model? You do not. Are you expecting a different movement and so think you have redundancies? You have the problem setup as a single pivoting bar with a constraint on one end (Hinge) and a force (Actuator w/controller) on the other end. If you Rigid Group the pin to the link instead of using a locked joint, the system has +1 DOF - a pendulum.

    Perhaps you made some of these changes intentionally while debugging, but I'll point some things out that I observed:

    1. There are two Rigid Groups, but each group contains only one part- It is not necessary to group 1 part.
    2. Part 3 and Part 1 are grounded, yet there is a pin defined between them - The pin is not necessary.
    3. You are using a locked joint between the pin and the link. These could be rigid grouped instead.
    4. Your Max Step Size and Integrator Tolerance are 0.1. This is quite large. For a simple system, like this 1 DOF model, this may be ok. But I would not recommend getting into the habit of loosening the defaults, unless the model involves dynamic introductions such as contact and friction, in which case you would typically tighten the tolerances, not loosen.

    Some tips:
    - use the Force Explorer to visualize force vectors (click arrow next to "Run" on the ribbon)
    - By default, all joints are treated as stiff bushings (these are referred to as "Flexible" joints). Using "Rigid" joints can help introduce redundancies if not careful, but you may need some for friction, for example. You might also want to visit the blog for more information on that topic: What it means to have flexible joints in Inspire Motion

    Regards,

    Scott Z.

  • Mohamed Hussein
    Mohamed Hussein New Altair Community Member
    edited July 2022

    Hello scott,


    thank you for your answer, i was able to infer a plenty out of it.
    I actually want to get to the torque course at the joint, so that i can reproduce any movement using it.
    the idea was the move part 2 and read the torque at the joint. Using that torque i can determine what motor I need at the joint and so on.

    Answering your question what made me think I have redundant constraints. That was because of how the loads desplayed specially the torque at the joint. it was 90° rotated as i expected.
    please refer to the pictures attached (refrence: your article on Avoiding Redundant Constraints in the joints).

    So generally the question is, can one get the torque course at a joint out of some movement in order to reproduce that movement using a motor at this joint ?

    Kind regards

  • Scott_Z_2
    Scott_Z_2
    Altair Employee
    edited July 2022

    Hello Mohamed,

    To drive the joint using a torque - Since you do not know the required torque, the joint will have to be first driven in a different way such that it will produce the required torque.  Then, that torque can be used to drive the joint as you expect.  So, what you might do is first apply a displacement (or velocity) motor, for example, and drive the joint through the desired displacement.  Then, plot and export the torque vs. time data as a .csv file.  Then, switch the motor over to a torque motor and import the .csv file.  Now the joint is using he torque required to move through the prescribe displacement.

    Please note that numerical imbalances can result when driving a model with pure forces and no damping resistance, such as friction.  You may need dampers or joint friction included so the model does not behave erratically when driving with the torque.

    Also, be careful that your motor does not "slip" with too much load.  By that I mean, each motor, by default, uses a controller,  which is a force-based compensator.  If the load is too large, the default controller may be too weak.  To see this (if it is happening), you can plot the desired vS. actual for the motor speed, and any differences in the two will be displayed.  For more detailed info on this topic, you can visit:  https://community.altair.com/community?id=community_blog&sys_id=e3d800b8dbbd2cd0e8863978f49619e5

    Finally, with regard to the redundant constraints topic - the reason you were seeing the bending moment on the joint is due to the offset arrangement of the joint attachments.  The actuator load is applied at an offset distance from the joints, creating this torque.  That torque is not the torque you want to drive the joint.  Instead this torque is the force reaction on a constrained DOF of the joint.  To demonstrate, I moved all links and the actuator to be co-planar.  You can see the torque diminishes once there are no offsets.

    image

     

    Hope this helps,

    Scott Z