Hello , I am using soft motion for a tripod project and i am facing problem with the z axis. The z axis doesn't move straight but it makes a diagonal move. I use the Axis group with GUI for the kinematics. Can anyone tell me what i miss or send some example ?
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hello first of all i need to tell you that the robot is Tripod with rotary axes. Secondly all these informations from the GUI kinematics is correct and triple checked . It seems like the start point of the Z axis for the kinematics it's not from the TCP Zero point but from the top , from the motors plane. I think that the problem is there but i am not sure, i tried to insert a tool offset but it doesn't work.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hi,
did you start with this example here?
"c:\Program Files\CODESYS 3.5.15.30\CODESYS\Projects\SoftMotion\4.6.0.0\Examples\Tutorial\Robotics_PickAndPlace_without_Depictor.project"
Hello i am using this setup because my motors it's not with absolut encoder but they have resolver.
So first i enable the group axis ,next i am homing the drives and insert there the Position of each drive in Degrees then i am setting the Coordinate transform. Which is x=0 y=0 z=500 .But i don't see any difference with this FB or without.And last but not least i am using this setup for jog
the first thing I would check is this: do you home your axes in such a way that their zero-position corresponds to all arms being horizontal?
Second, did you first test without the coordinate transform? The zero point of the MCS (machine coordinate system) for Kin_Tripod_Rotary is not in the plane of the motors but on the tool plate when all arms are at zero (horizontal).
If all parameters are correct and the zero position is correct, then the only thing I can imagine is that maybe the direction of rotation of one or more drives may be inverted. I think starting from zero (horizontal position), the axes should move in positive direction if the arms move down.
Hello gseidel i had check all of this. The z axis is going fine at the start position of x=0 y=0 but if i move one of these axis it's going diagonial. If you need any video please let me know.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
if the axes are turning in the right direction and the zero position of the axes is correct, then I think you need to double check the parameter values of the transformation. You said you double checked the values, but maybe the values you have are measured differently (from different positions) then the value the transformation expects?
You could also check what happens if you move all axes to zero and then jog each axis independently. I would expect the following from the output of MC_GroupReadActualPosition:
1) Move all axes to zero -> position = (X=0, Y=0, Z=0)
2) Move first axis -> position grows in X and Z, Y stays 0
3) Move second and third axis -> position grows in Z, X and Y both change
If you want you can send a picture of the robot and a screen shot of the parameter values of the transformation.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
You can check the attachment . I already made this check and it seems that is everything ok ( only at number ) but in real life it's not if you want i can send a video here maybe it will be helpful
did all checks I suggested succeed? (Jogging of single axes, direction of axes, ...)
One more thing to check would be the scaling/mapping of all drives: are they configured so that one user unit in SoftMotion corresponds to exactly 1 angular degree?
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hello again ,
I believe that i need to use this FB SMC_InvCoordinateTransformation3D but i don't want to use the cnc interpolator i just want to use Groupjog and MC_MoveDirectAbsolute FB right now is there any way to try it with them ?
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
SMC_InvCoordinateTransformation3D is a function block of our CNC solution. GroupJog and MoveDirectAbsolute, on the other hand are part of our Robotics solution. If you use Robotics, you can use MC_SetCoordinateTransform to define an offset and relative rotation between the world coordinate system (WCS) and the machine coordinate system of the robot (MCS).
If all checks I proposed succeed, and all parameter values of the transformation are correct, then I cannot explain why the robot does not move as expected. I can only recommend to use a minimal project (comment out any functionality not needed) and only jog in z-direction.
If you want you can send me a video of the following steps:
1) Home all axes to zero
2) From zero position of the axes, jog in z-direction
Georg
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
OK i made some videos . You can see how i am zeroing, you can see the z axis problem when i am moving z axis and i am not at x=0 y=0 also you can see that the x or y movement it hasn't got fix z but it's like curve
OK. Anything else going on in your application, apart from the jogging function block? Did you rotate the MCS relative to the WCS? Are you jogging in MCS or WCS?
I know you already did this, but let's once more check the parameter values of the transformation. In the attached screen shots from your videos and photos, I drew some lines to indicate how I think the values should be measured.
dArm1Radius: measured from the center point of the three motors (axis of rotation of the C-axis motor intersected with the plane in which the axis of rotation of the three arm motors are in) to the fix-point of each first arm (that is not moving when the motor turns)
dArm1Length: measured from the fix-point of each first arm (same as above) to the midpoint of the upper bearings of the two rods of arm2.
dArm2Length: length of the rods, measured from the midpoint of the upper bearings to the midpoint of the lower bearings
dDistance: distance between the centers of the lower bearings of arm 2
dStewartRadius: measured from each midpoint of two lower bearings to the center of the tool plate
Hello Georg i check them again now everything it's correct from the dimensions.
Check the attachment for the jog. I am using virtual axis for x y z you can check my setup at previous photos.
downwards, did you calculate the movements with the new values ? As i told you i send old photo before. My dimensions are correct ,i made the design so i can measure them from solidworks but also i measure them and they are correct . I can send you photo if you want to check by yourself.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
yes, could you please send me photos where I can (approximately) check the distances?
In particular, I'm interested in how the motors are mounted at the top of the robot (dArm1Radius) and the direction of the first arms (are they radial around the z-axis?).
Thanks,
Georg
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hello , I am using soft motion for a tripod project and i am facing problem with the z axis. The z axis doesn't move straight but it makes a diagonal move. I use the Axis group with GUI for the kinematics. Can anyone tell me what i miss or send some example ?
Is this a real tripod or a virtual tripod?
it is real yes
Hi,
usually if this happens, the parameters for the length etc are not correct.
https://help.codesys.com/webapp/_sm_trafo_pou_parallel_kinematics;product=codesys_softmotion;version=4.6.0.0#tripod-with-rotary-axes
BR
Edwin
Hello first of all i need to tell you that the robot is Tripod with rotary axes. Secondly all these informations from the GUI kinematics is correct and triple checked . It seems like the start point of the Z axis for the kinematics it's not from the TCP Zero point but from the top , from the motors plane. I think that the problem is there but i am not sure, i tried to insert a tool offset but it doesn't work.
Hi,
did you start with this example here?
"c:\Program Files\CODESYS 3.5.15.30\CODESYS\Projects\SoftMotion\4.6.0.0\Examples\Tutorial\Robotics_PickAndPlace_without_Depictor.project"
Last edit: eschwellinger 2020-03-07
Hello i am using this setup because my motors it's not with absolut encoder but they have resolver.
So first i enable the group axis ,next i am homing the drives and insert there the Position of each drive in Degrees then i am setting the Coordinate transform. Which is x=0 y=0 z=500 .But i don't see any difference with this FB or without.And last but not least i am using this setup for jog
Dear tonis2,
the first thing I would check is this: do you home your axes in such a way that their zero-position corresponds to all arms being horizontal?
Second, did you first test without the coordinate transform? The zero point of the MCS (machine coordinate system) for Kin_Tripod_Rotary is not in the plane of the motors but on the tool plate when all arms are at zero (horizontal).
If all parameters are correct and the zero position is correct, then the only thing I can imagine is that maybe the direction of rotation of one or more drives may be inverted. I think starting from zero (horizontal position), the axes should move in positive direction if the arms move down.
See here for reference:
https://help.codesys.com/webapp/ndH8G84DEWgckw5Pu78vcq_cie8%2FKin_Tripod_Rotary;product=SM3_Transformation;version=4.6.0.0
Hello gseidel i had check all of this. The z axis is going fine at the start position of x=0 y=0 but if i move one of these axis it's going diagonial. If you need any video please let me know.
Hi tonis2,
if the axes are turning in the right direction and the zero position of the axes is correct, then I think you need to double check the parameter values of the transformation. You said you double checked the values, but maybe the values you have are measured differently (from different positions) then the value the transformation expects?
You could also check what happens if you move all axes to zero and then jog each axis independently. I would expect the following from the output of MC_GroupReadActualPosition:
1) Move all axes to zero -> position = (X=0, Y=0, Z=0)
2) Move first axis -> position grows in X and Z, Y stays 0
3) Move second and third axis -> position grows in Z, X and Y both change
If you want you can send a picture of the robot and a screen shot of the parameter values of the transformation.
You can check the attachment . I already made this check and it seems that is everything ok ( only at number ) but in real life it's not if you want i can send a video here maybe it will be helpful
A picture of the robot might be helpful.
Here you are
Hi tonis2,
did all checks I suggested succeed? (Jogging of single axes, direction of axes, ...)
One more thing to check would be the scaling/mapping of all drives: are they configured so that one user unit in SoftMotion corresponds to exactly 1 angular degree?
Yes
Hello again ,
I believe that i need to use this FB SMC_InvCoordinateTransformation3D but i don't want to use the cnc interpolator i just want to use Groupjog and MC_MoveDirectAbsolute FB right now is there any way to try it with them ?
Hi tonis2,
SMC_InvCoordinateTransformation3D is a function block of our CNC solution. GroupJog and MoveDirectAbsolute, on the other hand are part of our Robotics solution. If you use Robotics, you can use MC_SetCoordinateTransform to define an offset and relative rotation between the world coordinate system (WCS) and the machine coordinate system of the robot (MCS).
If all checks I proposed succeed, and all parameter values of the transformation are correct, then I cannot explain why the robot does not move as expected. I can only recommend to use a minimal project (comment out any functionality not needed) and only jog in z-direction.
If you want you can send me a video of the following steps:
1) Home all axes to zero
2) From zero position of the axes, jog in z-direction
Georg
OK i made some videos . You can see how i am zeroing, you can see the z axis problem when i am moving z axis and i am not at x=0 y=0 also you can see that the x or y movement it hasn't got fix z but it's like curve
Hi tonis2,
OK. Anything else going on in your application, apart from the jogging function block? Did you rotate the MCS relative to the WCS? Are you jogging in MCS or WCS?
I know you already did this, but let's once more check the parameter values of the transformation. In the attached screen shots from your videos and photos, I drew some lines to indicate how I think the values should be measured.
dArm1Radius: measured from the center point of the three motors (axis of rotation of the C-axis motor intersected with the plane in which the axis of rotation of the three arm motors are in) to the fix-point of each first arm (that is not moving when the motor turns)
dArm1Length: measured from the fix-point of each first arm (same as above) to the midpoint of the upper bearings of the two rods of arm2.
dArm2Length: length of the rods, measured from the midpoint of the upper bearings to the midpoint of the lower bearings
dDistance: distance between the centers of the lower bearings of arm 2
dStewartRadius: measured from each midpoint of two lower bearings to the center of the tool plate
Regards,
Georg
Hello Georg i check them again now everything it's correct from the dimensions.
Check the attachment for the jog. I am using virtual axis for x y z you can check my setup at previous photos.
OK, to narrow the problem down, could you please start all axes at 0Β° and then move the first axis to +20Β°.
Is it possible for you to measure the following distances between the initial position and the end position?
Last edit: gseidel 2020-03-17
sorry for the inconvenience but the previous photo was old this is the right dimensions .
1) is -5 mm
2) is -70mm
3) is no change
4) is 44.5cm
I can't measure with high accuracy but the numbers is close to real.
Only number (1) is off from the expected values. It should have moved by 19.7 mm. What exactly does "-5 mm" mean? In which direction did it move?
downwards, did you calculate the movements with the new values ? As i told you i send old photo before. My dimensions are correct ,i made the design so i can measure them from solidworks but also i measure them and they are correct . I can send you photo if you want to check by yourself.
Hi tonis2.
yes, could you please send me photos where I can (approximately) check the distances?
In particular, I'm interested in how the motors are mounted at the top of the robot (dArm1Radius) and the direction of the first arms (are they radial around the z-axis?).
Thanks,
Georg