Hi Guys!!!
I am experiencing an issue when trying to move 6DOF using SMC_GroupJog2 and MC_MoveLinearAbsolute, but I don't understand why, when I jog only X or Y, the coordinate I monitor just changes the X or Y value. It's true, but in reality, Joint6 is still running like the video. Am I wrong somewhere?
Many thanks for considering my request.!
Video: https://drive.google.com/drive/folders/1vRHQ3AtTO3mijptqZgn5OcP9pyi527Jm?usp=sharing
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
my first guess is that the axis scaling of the last axis (joint 6) is not correct.
It should be confiugured so that one technical unit equals one angular degree. From the video, it rather looks like 1 technical unit is a full revolution of the joint.
(This holds for all rotary axes used with SoftMotion Robotics: they must be scaled so that one technical unit equals one angular degree.)
Best regards,
Georg
π
1
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Thank you for your explanation about the axis scaling.
I checked the scaling of Joint6 and corrected it so that one technical unit equals one angular degree.
However, I am now facing another issue.
When I move all axes to zero position and then try to use SMC_GroupJog2 and MC_MoveLinearAbsolute, I receive the error SMC_CP_CONFIGS_DIFFER
I already tried moving each joint manually to different positions before executing the motion command, but the error still appears.
Could you please explain:
What exactly causes SMC_CP_CONFIGS_DIFFER
Thank you very much for your support.
Best regards,
darwin03
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
when all joints are 0Β°, then the 6-axis robot is in a so called singularity. This means that it is in a special position where it cannot move freely in all directions but is restricted by its own construction. For a simple example, imagine a scara robot where the arm is fully stretched. In this position it cannot move freely.
1) CP movements (linear moves, circular moves, cartesian jogging) cannot change the configuration during the movement. Both start- and endpoint must be in the same configuration. This excludes also the edge case that one or both of them are in a singularity.
2) PTP movements can move through singularities and cross configurations without problems.
3) SMC_SetKinConfiguration can be used to set the configuration of the axis group.
Regards,
Georg
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Thanks for your previous suggestion. I was able to resolve the issue!
I'm now trying to build the 6DOF robot again, but I'm not sure why this is happening. Even when I simulate it in RoboDK using the joint angles from my code, the robot's motion still seems abnormal.
Do you have any ideas what might be causing this?
Thank you for taking the time to look into my question!
In the CODESYS kinematics, A1 and A2, when moved in positive direction, rotate into the opposite direction to what the RoboDK model does. This could explain the strange movements.
For real axes, you could change the direction using the "Invert direction" flag of the scaling/mapping page. For your simulation, you could manually invert the position of the axes A1 and A2 before sending them to RoboDK. (A0 seems correct, please also check A3, A4, and A5. The figure I mentioned gives the order of positive rotation with arrows through the joints. You can use the right-hand-rule to see what the positive rotation is.)
Best regards,
Georg
π
1
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Thank you very much for your help and for taking the time to look into my issue!
After reversing the directions of A2 and A3, the robot now moves correctly according to the coordinate system. That solved the main issue with the joint rotation directions.
However, I still have two issues:
When I command the robot to move along the X, Y, and Z axes, the movement seems slightly off, and the trajectory appears somewhat diagonal instead of following a straight line along the commanded axis.
The A6 axis also rotates during the movement, whereas I would expect it to maintain its orientation and remain unchanged.
Do you have any suggestions on how I could correct the Cartesian linear movement and keep A6 fixed during the motion?
as can bee seen at the end of your video, the direction of rotation now seems correct for all axes.
I can only guess, but the most likely reason are different denavit hartenberg parameters in the SoftMotion axis group editors and the robot used in the simulation tool. Maybe some arm lengths differ, maybe some offsets are given with opposite sign.
Hi Guys!!!
I am experiencing an issue when trying to move 6DOF using SMC_GroupJog2 and MC_MoveLinearAbsolute, but I don't understand why, when I jog only X or Y, the coordinate I monitor just changes the X or Y value. It's true, but in reality, Joint6 is still running like the video. Am I wrong somewhere?
Many thanks for considering my request.!
Video: https://drive.google.com/drive/folders/1vRHQ3AtTO3mijptqZgn5OcP9pyi527Jm?usp=sharing
Dear darwin03,
my first guess is that the axis scaling of the last axis (joint 6) is not correct.
It should be confiugured so that one technical unit equals one angular degree. From the video, it rather looks like 1 technical unit is a full revolution of the joint.
(This holds for all rotary axes used with SoftMotion Robotics: they must be scaled so that one technical unit equals one angular degree.)
Best regards,
Georg
Dear Georg,
Thank you for your explanation about the axis scaling.
I checked the scaling of Joint6 and corrected it so that one technical unit equals one angular degree.
However, I am now facing another issue.
When I move all axes to zero position and then try to use
SMC_GroupJog2andMC_MoveLinearAbsolute, I receive the errorSMC_CP_CONFIGS_DIFFERI already tried moving each joint manually to different positions before executing the motion command, but the error still appears.
Could you please explain:
SMC_CP_CONFIGS_DIFFERThank you very much for your support.
Best regards,
darwin03
Hi darwin03,
when all joints are 0Β°, then the 6-axis robot is in a so called singularity. This means that it is in a special position where it cannot move freely in all directions but is restricted by its own construction. For a simple example, imagine a scara robot where the arm is fully stretched. In this position it cannot move freely.
You can find a lot of information about robot configurations in the www. As far as CODESYS SoftMotion Robotics is concerned, this page holds the most important links, look for the error SMC_CP_CONFIGS_DIFFER: https://content.helpme-codesys.com/en/CODESYS%20SoftMotion/_sm_robotics_errors.html
The most important rules:
1) CP movements (linear moves, circular moves, cartesian jogging) cannot change the configuration during the movement. Both start- and endpoint must be in the same configuration. This excludes also the edge case that one or both of them are in a singularity.
2) PTP movements can move through singularities and cross configurations without problems.
3) SMC_SetKinConfiguration can be used to set the configuration of the axis group.
Regards,
Georg
Hi Georg,
Thanks for your previous suggestion. I was able to resolve the issue!
I'm now trying to build the 6DOF robot again, but I'm not sure why this is happening. Even when I simulate it in RoboDK using the joint angles from my code, the robot's motion still seems abnormal.
Do you have any ideas what might be causing this?
Thank you for taking the time to look into my question!
Best regards,
darwin03
Video link: https://drive.google.com/file/d/1PBqS4yIY2R_CZ3celSKz-BXVRk8pCHKz/view?usp=sharing
Hi darwin01,
looking at the video and comparing the movement with the first figure in https://content.helpme-codesys.com/en/libs/SM3_Transformation/Current/SM3_Transformation/Function-Blocks/Standalone-Kinematics/Articulated-Robots/6AxisArticulated/Kin_ArticulatedRobot_6DOF.html, I think that the direction of rotation does not match between the RoboDK model and the CODESYS 6DOF kinematics.
In the CODESYS kinematics, A1 and A2, when moved in positive direction, rotate into the opposite direction to what the RoboDK model does. This could explain the strange movements.
For real axes, you could change the direction using the "Invert direction" flag of the scaling/mapping page. For your simulation, you could manually invert the position of the axes A1 and A2 before sending them to RoboDK. (A0 seems correct, please also check A3, A4, and A5. The figure I mentioned gives the order of positive rotation with arrows through the joints. You can use the right-hand-rule to see what the positive rotation is.)
Best regards,
Georg
Hi Georg,
Thank you very much for your help and for taking the time to look into my issue!
After reversing the directions of A2 and A3, the robot now moves correctly according to the coordinate system. That solved the main issue with the joint rotation directions.
However, I still have two issues:
When I command the robot to move along the X, Y, and Z axes, the movement seems slightly off, and the trajectory appears somewhat diagonal instead of following a straight line along the commanded axis.
The A6 axis also rotates during the movement, whereas I would expect it to maintain its orientation and remain unchanged.
Do you have any suggestions on how I could correct the Cartesian linear movement and keep A6 fixed during the motion?
Thank you again for your support!
Best regards,
Darwin
Video link: https://drive.google.com/file/d/1tnokDYoNUEDy--eQtX_JZavMVSn-a9Le/view?usp=sharing
Hi darwin03,
as can bee seen at the end of your video, the direction of rotation now seems correct for all axes.
I can only guess, but the most likely reason are different denavit hartenberg parameters in the SoftMotion axis group editors and the robot used in the simulation tool. Maybe some arm lengths differ, maybe some offsets are given with opposite sign.
I would again refer you to https://content.helpme-codesys.com/en/libs/SM3_Transformation/Current/SM3_Transformation/Function-Blocks/Standalone-Kinematics/Articulated-Robots/6AxisArticulated/Kin_ArticulatedRobot_6DOF.html. Please double check all parameters and the table of the DH parameters given there and compare that against the robot in the simulation tool.
Also: did you configure any tool in CODESYS? I would suggest to simplify and remove any tools for finding the source of the wrong movements.
Best regards,
Georg