How do I specify a rotation axis and centre of rotation position when simulationg a robot motion. Currently have this code:
var LINK01_Rotate := IRB6700._3D.getObject("LINK01")
var LINK02_Rotate := LINK01_Rotate.getObject("LINK02")
But the rotation is around the Z axis.
Solved! Go to Solution.
I assume that the axis and the centre will not change during your simulation, so the easiest way is to just set them in the 3D properties dialog of the respective animatable object(s), i.e. LINK01 and LINK02. There, go to the self animation page and change the values at the right side of the page.
In case you might actually want to modify them during your simulation, you can do that by assigning the attributes LINK01_Rotate.AniRotationAxis, LINK02_Rotate.AniRotationAxis, LINK01_Rotate.AniRotationCenter or LINK02_Rotate.AniRotationCenter (using the variable names of your code snipplet).
There are a couple of other existing threads having discussed that topic.
The basic outcome mostly was that you need to learn some kinematics basics in order to informedly do so.
It is unclear to me why setting the animation rotation axis/center do not work for that particular isolated issue because they are designed to do exactly that. Or do you mean that this defines your axes but you need to do more?
Here's an example with Comau's latest eDo 6 axis robot, which has the similiar/ same axis constellation as the ABB IRB6700.
Run the simulation and have a look.
Please structure your robot axis accordingly !
Thank you. The Comau model was a big help. Have now fixed the graphic structure and rotation centres. Just need to specify what axis the joints move around when my method is called. Using the earlier idea I get this error:
I don't seem to be able to access the specific joint within the graphics hierarchy, is there a different command to use?
This should work, but I found out that there is a bug in version 14 that prevents you from setting the rotation axis and center via SimTalk which will be fixed in the next maintenance pack (those two attributes are accidentally considered read-only in SimTalk).
But it should not be necessary as the axis in reality typically is fixed in its rotation direction (the joints themselves move around and thus produce "arbitrary" rotations from a global point of view but in the coordinate system of the joint itself, the rotation axis typically remains fixed).
Setting the values in the dialog is still possible, even in the buggy version.
I have set the axis to the X Axis in the dialogue, which I think is what you mean. However when my method runs the axis rotates around the Z axis:
If I just jog the LINK02 axis it works correctly. What is wrong?