https://docs.duet3d.com/
Help

Revision to Configuring RepRapFirmware for a FiveAxisRobot

JoergS5

Discussion, proposals and status information is published here: https://forum.duet3d.com/topic/17421/robotic-kinematics
-The kinematics will be pull requested into RRF3, but while developing and testing it is created in https://github.com/JoergS5/RepRapFirmware/tree/v3.02-dev/src/Movement/Kinematics as fork of RRF3 v3.02 dev branch. Filenames are FiveAxisRobotKinematics.cpp and .h
+The kinematics will be pull requested into RRF3, but while developing and testing it is https://github.com/JoergS5/RepRapFirmware/tree/3.4-dev/src/Movement/Kinematics as fork of RRF3 v3.4-dev branch. Filenames are FiveAxisRobotKinematics.cpp and .h
For compilation, a few additional source changes must be made according to
== M669 settings ==
-'''K13''' is the printer type mode. Mandatory parameter without default.
+***K13*** is the printer type mode. Mandatory parameter without default.
-'''Xm:n[:o] Ym:n[:o] Zn''' are positions of Axis 1 (m) and Axis 2 (n), both in absolute cartesian coordinates. The values are measured when axis 1 is rotated into a position when arms 2 and 3 are parallel to the X axis and from left to right (as in the second introduction image). Mandatory parameter without default. If second Y is 0, arm 2 will go through axis 1.
+***Xm:n[:o] Ym:n[:o] Zn*** are positions of Axis 1 (m) and Axis 2 (n), both in absolute cartesian coordinates. The values are measured when axis 1 is rotated into a position when arms 2 and 3 are parallel to the X axis and from left to right (as in the second introduction image). Mandatory parameter without default. If second Y is 0, arm 2 will go through axis 1.
* Xm, Ym are the cartesian coordinates of axis 1. Z is not relevant
* Xo, Yo optional offset between end of arm 4 and axis 5, default is 0 each. See section Axis5offset section below for details.
-'''Aa1min:a1es:a1max:a2min:a2es:a2max:a3min:a3es:a3max:a4min:a4es:a4max:a5min:a5es:a5max''' define the allowed angles in degrees.
+***Aa1min:a1es:a1max:a2min:a2es:a2max:a3min:a3es:a3max:a4min:a4es:a4max:a5min:a5es:a5max*** define the allowed angles in degrees.
a1 are the angles of axis 1 etc.
Default is A-45:0:45:0:0:70:-70:0:0:-170:-90:0:-225:0:225
-'''Rn''' is the actuator construction type.
+***Rn*** is the actuator construction type.
* R0 are 5 rotation actuators for axis 1 to 5. Driver letters are XYZUV. If rail is used, it is drive W. Default.
* R2 are 3 rotating actuators for axis 1 to 3, driver letters XYZ. Axis 4 behaves like in R1. Axis 5 has no actuator and is fixed in 0 degree position. I rail is used, it is drive W. In this mode, G31 is only possible with probe at nozzle XY position.
-'''Lnnn:mmm:ppp:qqq''' are the arm lengths for arms 2 to 5. Mandatory parameter without default. The arm length is measured from middle of hinge to middle of other hinge (arm 5: middle of nozzle).
+***Lnnn:mmm:ppp:qqq*** are the arm lengths for arms 2 to 5. Mandatory parameter without default. The arm length is measured from middle of hinge to middle of other hinge (arm 5: middle of nozzle).
-'''Pn''' defines the behaviour of axis 5:
+***Pn*** defines the behaviour of axis 5:
* P0 arm 5 is fixed to 0 degree (arm 2, 3 and 5 straight line when viewed from above). Default.
* P4 arm 5 is directed into the movement direction like P3, but for moves from right to left the direction is rotated by 180 degree, so axis 5 degree is between -90 and 90 degree most of the time. This can make sense if the extruder has boundaries which can be used bidirectional (e.g. concrete printer which has boundaries left and right of the movement direction).
-'''Snnn''' Segments per second (because smooth XYZ motion is approximated by means of segmentation)
+***Snnn*** Segments per second (because smooth XYZ motion is approximated by means of segmentation)
-'''Tnnn''' Minimum segment length (mm) (because smooth XYZ motion is approximated by means of segmentation)
+***Tnnn*** Minimum segment length (mm) (because smooth XYZ motion is approximated by means of segmentation)
== Other config parameters ==
Axis 1 to 5 are using the drive letters X, Y, Z, U and V.
-'''M92''' is calculated as usual, but instead of mm the degrees of the angles are used. Microsteps and Gear ratios must be accounted for in the values.
+***M92*** is calculated as usual, but instead of mm the degrees of the angles are used. Microsteps and Gear ratios must be accounted for in the values.
Example: Stepper with 200 Steps, 16 microsteps, Gear Ration 1:27: 200*16/360*27 = 240
-'''M208''' is ignored. The reachable world coordinates differ, depending on the print height, so it is better and exact to define the angles as limits (parameter A).
+***M208*** is ignored. The reachable world coordinates differ, depending on the print height, so it is better and exact to define the angles as limits (parameter A).
-'''G31 X Y Z''' probe as offset relative to hotend position for mesh compensation.
+***G31 X Y Z*** probe as offset relative to hotend position for mesh compensation.
-'''G92, M114''' the XYZ values are cartesian coordinates, the UV are angles. Axis 1 to 3 angles cannot be set with G92 directly.
+***G92, M114*** the XYZ values are cartesian coordinates, the UV are angles. Axis 1 to 3 angles cannot be set with G92 directly.
== Homing ==

To undo the changes made by this version, click 'Revert Changes.' This will automatically restore the previous version of this guide.

Revert Changes