hello
I want to control a 2DOF manipulator in x-z plane,which means that the two revolute joints only rotate around y axis. But there some problems to do that:
1 when the second joint is set to be a child of the first arm link ,I can't fix its initial orientation to 90,0,0(if it is not a child,the initial orientation can be fixed to 90,0,0) ,that means the orientation will have litte values for dBeta, dGamma , and the dAlpha is always 90.
2 Also,when I set torque to control the two joints in torque/force mode, the second joint have velocities at dAlpha, dBeta, dGamma, and the manipulator didn't move whin x-z plane
the arm links are not crooked, I don‘t know how to set the manipulator.
fix the orientation of some joints
Re: fix the orientation of some joints
Hello,
can you post the scene?
Point 1) that you meantion is normal: when an object has a parent, then its absolute position/orientation is always calculated, and is the result of the multiplication between its local transformation matrix and its parent absolute transformation matrix. The rounding errors give you the small non-zero values.
Cheers
can you post the scene?
Point 1) that you meantion is normal: when an object has a parent, then its absolute position/orientation is always calculated, and is the result of the multiplication between its local transformation matrix and its parent absolute transformation matrix. The rounding errors give you the small non-zero values.
Cheers
-
- Posts: 6
- Joined: 24 Oct 2016, 10:09
Re: fix the orientation of some joints
Thanks for your reply
After some check,I found that the unreasonable orientation at Beta and Gamma are caused by the link1, which is the child of Rob_joint1 and the parent of Rob-joint 2(I have removed Rob-joint 2 from the scene).this is the scene:https://drive.google.com/open?id=0B2MkK ... 1paa2p2cU0
At the beginning, the orientation of link1, relative to parent frame(Rob_joint1), is 90 0 0, once I started the simulation, this orientation changed to 9.0000e+01 8.6329e-06 -2.1340e-05, or other similar values, which caused another unreasonable orientations and angular velocities at latter links and joints. I think the relative orientation of link1 to joint1 should be fixed.
whether this problem is caused by rounding eeror and normal?
After some check,I found that the unreasonable orientation at Beta and Gamma are caused by the link1, which is the child of Rob_joint1 and the parent of Rob-joint 2(I have removed Rob-joint 2 from the scene).this is the scene:https://drive.google.com/open?id=0B2MkK ... 1paa2p2cU0
At the beginning, the orientation of link1, relative to parent frame(Rob_joint1), is 90 0 0, once I started the simulation, this orientation changed to 9.0000e+01 8.6329e-06 -2.1340e-05, or other similar values, which caused another unreasonable orientations and angular velocities at latter links and joints. I think the relative orientation of link1 to joint1 should be fixed.
whether this problem is caused by rounding eeror and normal?
Re: fix the orientation of some joints
The problem is linked to the physics engine directly: a joint is also just a constraint that needs to be minimized. So a joint can come apart when the constraints cannot be satisfied (e.g. over-constrained mechanism, or mechanism that moves too fast, that exerts too large forces, etc. This is somewhat specific to each physics engine.
We have following transformation matrices:
baseM * jointM * jointIntrinsicM * linkM
jointIntrinsicM only depends on the joint angle, and is a simple rotation around one axis (the Z-axis):
jointIntrinsicM = rotZ
But during simulation, when the joint is handled by the physics engine, then we have:
jointIntrinsicM = rotZ * errorM
ErrorM comes from the physics engine. What the orientation dialog displays is actually: errorM * linkM
Cheers
We have following transformation matrices:
baseM * jointM * jointIntrinsicM * linkM
jointIntrinsicM only depends on the joint angle, and is a simple rotation around one axis (the Z-axis):
jointIntrinsicM = rotZ
But during simulation, when the joint is handled by the physics engine, then we have:
jointIntrinsicM = rotZ * errorM
ErrorM comes from the physics engine. What the orientation dialog displays is actually: errorM * linkM
Cheers
-
- Posts: 6
- Joined: 24 Oct 2016, 10:09
Re: fix the orientation of some joints
So you mean that errorM is related to the physics engine and is always here during simulation, but can I eliminate these unreasonable no-zero values at some orientation and make errorM to be 1, through changing the force to joint or inertia/mass of link,or other methods.
thanks all the time
thanks all the time
Re: fix the orientation of some joints
Yes, but errorM only exists for a dynamic construction. If you simulate something kinematically, you won't have that disturbance.
You can try to adjust various parameters in order to reduce the errorM, such as masses, inertias, forces/torques, etc. Make sure you also carefully read this section.
Cheers
You can try to adjust various parameters in order to reduce the errorM, such as masses, inertias, forces/torques, etc. Make sure you also carefully read this section.
Cheers
-
- Posts: 6
- Joined: 24 Oct 2016, 10:09
Re: fix the orientation of some joints
OK,thanks a lot,I will try