Jump to content
Sign in to follow this  
FloMa93

How to deactivate / change a joint during motion

Recommended Posts

Hi Community,

 

I am fairly new in using MotionView and I am currently trying to simulate a simple arm of a roboter, which picks a cube and rotates 90 degrees.

After rotation, the cube should be dropped and the arm should rotate back to starting position.

 

Now to my first try:

- fixed joint between arm and cube

- marker at the starting point and the end point of the rotation

 

I tried to solved the problem using the tutorial MV-1051 (sequential motion) but it's not exactly like I wanted to. I used a template like in MV-1051 and tried to adapt it, but it didn't work.

 

Could you please advise how to proceed in such a case?

 

Thanks in advance and if you need further information, just let me know.

 

Best regards,

Flo

Share this post


Link to post
Share on other sites

Hello Flo-

Sequential simulation (like what was in MV-1051) is the normal approach to setting up something like this.

Another approach (still using sequential simulation) would be to use forces, rather than joints.

 

Our MotionSolve examples library has some examples that may be of use to you.

Take a look at this link:

https://altairhyperworks.com/motionsolve-models/

Model MV-04 Robot Arm is probably more complicated that what you are looking for, but should work as a good source for a starting point.

 

Regards,

Chris

Share this post


Link to post
Share on other sites

Hi Chris,

thanks for your quick reply.

 

I've seen and inspected the MV-04 Robot Arm and I wonder that there's no template used?

 

I think the easier way to get to the result I am looking for ist the one with the template.

 

I try to explain my attempt:

- fixed joint between arm and cube

- marker at the starting point (center of the cube, linked with cube) and the end point of the rotation (90 degrees difference, linked with ground)

- Revolute joint between ground and arm, motion on this joint

- fixed joint between cube and arm

 

For better explanation I attached my data.

 

Could you please have a look at it and try to find my mistakes?

 

Thanks a lot!

 

Best Regards

Flo

 

 

Test_Arm.zip

Share this post


Link to post
Share on other sites

I took  a brief look at your model.  There appear to be multiple fixed joints defined constraining the two parts.  This creates and kinematically over-constrained model.

 

The demo models provided previously show show good methods.  I would recommend understanding those, and trying to replicate those.

 

Another  (simpler) approach would be to create a graphic that is attached to ground, and define 3D contact between the cube and ground.  Then the cube will rest of the ground due to the contact.  Then you avoid some of the complex things with the templates.

Share this post


Link to post
Share on other sites

Hi Chris,

 

thanks a lot for your help.

I think I got it now, I realised it with templates.

 

I've got some further questions regarding load/force extraction, and some other, but I will open a new topic because it's related to topology optimization.

 

Regards

Flo

Share this post


Link to post
Share on other sites

Hi all,

 

there's another problem now. I changed one part to a flexbody, now the Simulation stops when the joint is deactivated.

If I change the part back to rigid body, the simulation runs without failure.

Where could be the problem?

 

I guess the error comes from the template or the sensor or the combination of these two, see following my current setting:

 

Sensor:

`DM({the_model.m_0.idstring},{the_model.m_1.idstring})`

Signal is lass than VALUE + ERROR

Return to Command file

 

and in my template I've got the following:

<Deactivate
   element_type = "JOINT"
   element_id   = "5000"
/>

<Simulate
    analysis_type       = "Transient"
    end_time            = "12.00"
    print_interval      = "0.01"    
/>

<Deactivate
   element_type = "JOINT"
   element_id   = "{j_11.idstring}"
/>

<Deactivate
   element_type = "JOINT"
   element_id   = "{j_12.idstring}"
/>

<Deactivate
   element_type = "SENSOR"
   element_id   = "{the_model.sen_0.idstring}"
/>

<Activate
   element_type = "JOINT"
   element_id   = "5000"
/>

<Simulate
    analysis_type       = "Transient"
    end_time            = "20.00"
    print_interval      = "0.01"
/>

<Stop/>

 

Following a picture of the Model, the red robot arm is the flexbody.

image.thumb.png.a1956c97b4db5da1b5ff35e312b70c47.png

 

The Roboter lifts the box, rotates for 90 degrees, set the box down to the ground and rotates back. But with the flexbody it's not rotating back due to a failure message.

 

WARNING: Repeated abnormal return from integrator!

ERROR: At time=9.877E+00 the integrator failed to proceed.

 

Any ideas?

 

Thanks a lot in advance.

 

Best regards,

Flo

 

Share this post


Link to post
Share on other sites

Hi Flo-

have you tried modifying the integrator settings?  Usually when a solution values, you will find a lot of text that will point you in the direction of things to try.  For example tighten (or loosen) integrator tolerance.  Decrease the maximum step size.

 

Chris

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
You are posting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

×
×
  • Create New...