-
Notifications
You must be signed in to change notification settings - Fork 13
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
CSP, MoveAbsolute and Jerk softmotion discuss #4
Comments
Hi But g2 is a big project that i think, obviously i need more time to read source code. |
Hi |
Hi |
Hi I'm try write some code same as g2 6th order planning, i found it base the trapezoid curve and pre-calc head_time, body_time and tail_time, But when we use it in cycle task, it will take a deadzone in two cycle, maybe 0.1mm or 1mm its defined by acceleration, max velocity and cycle time. But it not happen in oscat.sramp( use sqrt) or sin2, they use last length to calc actual position. It is more difficulty than i think. |
Hi In this example we got body_length = 1.1111 and body_time = 0.022222, it small than one cycle. force put it in any length it will take a unexpected jerk. And finally, i have use another bessel curve to superposition into tailmove, the unexpected jerk is gone. That i use bessel curve add into position, not control velocity, so we can got a very accurate length. marlin dont have this problem because they use variable timer periods, it take a lot of work but without deadzone. userful links: |
Hi And leijian001/plcopen_motion_control Show some code that according Trajectory_Planning_for_Automatic_Machines_and_Robots.pdf, it explains trajectory planning very well, but a bit difficult for me to read. |
Hi
I'm coding with codesys a long time, i had use it to make some industrial controller, fieldbus adapter, cnc machine etc. I think i already known some principle about logical and softmotion function block.
But when i know more, i think the motion planning calc is very difficutily for me. For example, the real machine need s-curve acceleration or jerk planning, Normally just use function block like MC_MoveAbsolute and select velocity ramp mode in codesys, But i dont known how it calc position and speed in jerk motion. For now i can only realize trapezpid velocity ramp.
Then i had digger some information about motion planning... And i cannot found any plc core code about softmotion, they have a consensus that hide sourcecode. The closest is a paper about 4th order real-time trajectory generation function but no lucky to get sourcecode. Also no lucky in plcopen-motion public document.
Another way is fake a axis, due to define AXIS_REF_SM3 and make some patch like following, it bypass softmotion license and can be use MC_MoveAbsolute with full jerk funcion. Maybe i can do more work for it?
Please post any idea about this, Thanks.
Some helped link:
1, codesys velocity ramp
2, Programming S-curve motion profiles
3, S-Curve acceleration?
4, ISG-MC_MoveAbsolute
5, TML-LIB_S7
The text was updated successfully, but these errors were encountered: