Robotic kinematics
-
good morning ! I took the two files with the latest changes FiveAxisRobotKinematics.h and FiveAxisRobotKinematics.cpp I put them in rrf 3.1.0 as I always did, I tried to in eclipse to recompile the .bin gives me this error,
could you help me ? I don't know where I'm wrong!
-
@tony73 you're right, I missed checking it in into github. I'll do this in a minute. The variables are a prepration to support P3 (hotend in the direction of the movement) and a new P4.
Sorry that I overlooked it.
-
OK! eclipse firmware reloaded works! I would like to start building a robot that looks like this
with example link 1 /150mm, link 2/ 200mm, link 3/ 200mm, link 4/ 100mm, link 5/ 80mm
the (link 4 could be 100mm? considering that I don't know if link 2 can go to less than 0 degrees (type arm 2 max 75 degrees min -45 degrees? and could you say reduction ratio would serve on the basis of these arms, for the 5 engines?maybe I made a wrong speech!
if link 1 is 150mm, I can make link 4 of 100mm that is 50mm less than link 1, can there be a problem or can it be done? can create problems at link 2 for min angle 0? -
@tony73 I think you confuse some of the distances, What you mark as link 1 distance has no meaning. Only how much it can rotate is important.
=> to answer your question, different axis lengths are no problem. Longer will probebly be more stable. I will use between 100 and 200 also.Link 2 min angle 0 is no problem. You must calibrate the angle at a different angle (eg 90 degree).
Your question according reduction ratio: which ratio do you plan?
At the 5 you must assemble something horizontal to hold a hotend if you want to use it for 3d printing.
The robot as such looks very stiff and will be precise (if the ratio is ok) imho. In axis 5 could be a harmonic drive. A planetoid gear could have backlash, but you could run it in P0 mode.Axis 1 is very important to be precise (exactly horizontal rotation eg), you should consider making the rotating plate as big/good/stiff as possible.
-
This post is deleted! -
@JoergS5
ok! I take note of all the advice! and thank you for your help! if these were the lengths of the robot arms ((X0.0: 0.0 Y0.0: 0.0 Z100.0 L200.0: 200.0: 100.0: 80.0)) what reduction ratio would you use so that the 5 motors have excellent precision?about the second robot you are building how long do you need to finish it?
-
@tony73 I don't exactly know the best ratio, the commercial robots often have 1:30 for every axis. My approach will be to calculate mathematically which is the best ratio:
high ratio means higher precision and more torque, but slower. So there will be an optimal ratio for the desired speed. Regarding the maximal extruder speed, the robot has a maximum speed. More speed (= low ratio) is not necessary and would result in lower precision. High ratio would be slow. The arm lengths are also important.To calculate is on my long todo list...
-
@tony73 said in Robotic kinematics:
about the second robot you are building how long do you need to finish it?
My recent firmware changes are the result of this building. The axis5offset (Xo, Yo) is to ease construction of axis 4 and 5. The main problem is axis 1. A few days left.
-
ok! could you write me what are the mandatory parameters from the last update, in M669?
Is the 5 axis offset a help for robot construction problems (I think accuracy) or is it about something else?
-
@tony73 The documentation is current, just use the sample at the end. The parameters which are not mentioned in the example are all optional or have a default value. P3 /P4 implementation is not finished.
The axis 4 must be exactly above axis 5. The axis5offset allows axis 5 to be outside this. This allows me to place axis 5 in front of arm 4. You'll see what I mean when I explain my construction. This is not documented yet (only the parameter, and it's already in the source and tested). Axis5offset has defaults 0.0/0.0.
-
I continue to follow your updates, thanks for the clarification and wait to see your robot!
-
@tony73 the robot you have shown could use a toolchanger at point 5 easily and should be a solid connection (like for CNC). But think about how to guide the wires and filament. I route it inside of the arms.
-
@tony73 I think I have understood M208 now after analyzing the firmware. The values are the axis values, not coordinates.
So M208 will have X, Y, Z, U, V values for the 5 axes and an optinal W value for a rail. Parameter A is not necessary any more then, I changed the source and documentation.I've made a little try with Openscad to illustrate axis5offset in the documentation.
-
good morning! I reloaded the changes but as usual I don't understand how and where to put M208! I did some tests with M208 but I can no longer move the motors of the duet 3 only homing! have you tried with your robot to move it with these new parameters? my config.g was like this before
now I tried like this
but that's not good! maybe it goes in M669 but how? but most importantly, are you trying the changes with the robot connected and moving? I ask you this to understand what I need to change!
-
@tony73 I'll check it tomorrow and tell you the result.
There is probably a bug in the code, your config is how it is meant.=> I found the bug, I'll correct and test it tomorrow.
-
I found that the motors move but it seems that the G1 commands are no longer Cartesian X Y movements but in degrees! if you send G1 X100 it does nothing but with G1 X30 it moves, like G1 Y55 moves. it moves on X Y Z U V but using the limits of degrees of M208 which are these
M208 X-45.0:45.0 Y0.0:140.0 Z-140.0:-0.0 U-170.0:170.0 V-225.0:225.0
-
@tony73 thanks a lot for the test, I've found the reason. I'll correct it and tell you when checked in.
The movements are not degrees, but for calculating the m208 restriction the original code is used (cartesian printer), this is wrong. -
@tony73 I've corrected the M208 problem and checked in the code.
-
I tried to reload the code in eclipse it gives me errors, but it could be me that I am doing something wrong!
-
@tony73 grrr always this .h file....
I'll write me a postit to the display: "checkin both"!
Please try again.