How to deactivate / change a joint during motion
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
Answers
-
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
0 -
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
0 -
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.
0 -
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
0 -
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.
<?xml version="1.0" encoding="UTF-8"?>
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
0 -
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
0 -
Thanks a lot for your help Chris! Now it's working after I changed the Integrator Settings as adviced.
I've got another question, hopefully somebody can help because I couldn't find any tutorials to this theme:
I used a Flexbody to see stresses on the robot arm. Is it possible to create a plot (maybe in HyperGraph) which shows the maximum stress over the time? Further, is it possible to export the data to Excel or another table format?
Regards
Flo
0 -
There may be others that have better answers than myself. You might try posting this on the Hypermesh, or Hypergraph forum. One 'trick' is that you can load the .h3d file into Hypergraph, and plot element stresses on an element by element basis. If you load the .h3d into HyperView, you can look at the contour plots during the animation, and I believe you can also visualize the max element stress. That's the typical way it's done, based on my experience.
The .plt file is an ascii based file format. You can use that file to plot with other tools.
0