About the acceleration and deceleration of the end motion of SCARA robot

More
21 Apr 2023 10:16 #269542 by SummerLotus
When I used the reference scara robot configuration to do a simulation demonstration, I found that when my robot returned to zero, the robot was in an extended state. At this time, I control the system to move in world mode, and the planned position given to the robot by the system is problematic (I think so). It feels like there is no acceleration section and it starts running directly at maximum speed.
I use halscope to grab the waveform as follows.
Does anyone know why? Or how should I solve this problem?
Is there a problem with tp or scarakins?
 
Attachments:

Please Log in or Create an account to join the conversation.

More
20 May 2023 13:44 #271744 by bkt
quite simple ... linuxcnc is not built for robotics ... so not have velocity and acceleration control over critical points and vanishing points .... so it become unstable near that point with robot .... you need to control velocity and acceleration over that critical point (like full extension arm ... aka standard linuxcnc zero position kinematics of scara) .... for example you can not use homing and use only absolute encoder instead ... i remember someone have perform a no homing routine for absolute encoder .... after these near kinematics critical point (atan near zero point give very little result and feedback become inconsistent for robust pid control) need to add some limitation .... in the past AndyPug suggest to me to update kinematics with limit3 .... but simply you can add a pin that return radius measure of end point and use that measure like a switch to limit acceleration and velocity to a reasonable value for stability of control ..... so limit3 can be external to kinematics ...

regards

Please Log in or Create an account to join the conversation.

More
22 May 2023 06:09 - 22 May 2023 06:09 #271901 by SummerLotus
Yes, I think that's the problem too.
In actual usage scenarios, few scara will move to that position. I discussed this problem with my classmates. He thinks that the tp in linuxcnc should be modified, but I think there should be a problem with scarakins...or you can give me some Any suggestions?
I am using the multi-turn absolute value method, and currently my scata robot can start running without performing a zero return operation, and I have modified the source code of linuxcnc so that its kinematics model is valid even if it does not return to zero.
In my opinion, scarakins should be rewritten using the characteristics of multi-turn absolute value, and a set of processing logic should be added to the specific position of the joints...you can use the PID you mentioned...it should be similar to the following

if ((joint[0] > ZERO_J1) && (joint[1] > ZERO_J2)) {
/* Some special processing, such as special PID and the like... */
}
else {
/* Original scarakins processing logic */
}

I'm not sure if I should do this, can you give me some advice, thank you very much~
Last edit: 22 May 2023 06:09 by SummerLotus.

Please Log in or Create an account to join the conversation.

More
03 Jan 2024 21:16 #289698 by bkt
simply need to check angle differences from joint1 and joint0 .... if reach 0-4° for example, you can limit velocity pin ....

Please Log in or Create an account to join the conversation.

Time to create page: 0.065 seconds
Powered by Kunena Forum