Hello everyone,
I have constructed my own 6 axis robot. It works quite well mechanically, except for a few small design flaws or inaccuracies due to 3d-printing tolerances / flex of the plastic.
But i have some issues with the implementation of the Software, which can hopefully be solved by someone smarter than me.
Question 1: Are the DH-Parameters correct? (see Chapter: Software Changes)
Question 2: Are the Coordinates shown in the Software correct? (see Chapter: Position Out Of Reach)
Question 3: Why does the robot only move in the X+ direction for carthesian jogging ? (see Chapter: XYZ Jogging)
General Information


I have designed the robot with the idea in mind for it to be operated with the AR software.
However, I use other motors and motor drivers.
Axis 1, 4, 5 use Nema 17 with 27:1 planetaqry gearboxes.
Axis 2 & 3 use Nema 23 with 50:1 planetary gearboxes.
Axis 6 uses a Nema 17 and a 3d printed planetary gear with a 38:1 ratio.
The drivers are BTT S42b (Axis 4&5), BTT S57b (Axis 2&3) and MKS Servo42c (Axis 1&6). I would have liked to use the same brand on all axis but availability was not quite good at the time.
The electronics currently only provide a semi Closed Loop.
Each Axis is Closed Loop controlled via the driver but does not provide feedback for the software.
Software Changes
I have adapted the Teensy_Sktech to suit my values.
I adjusted the DH-Parameters, set the Steps per Degree and adjusted the axis limits.
I also adjusted the latter in the HMI-Software and converted it to an .exe.
DH-Parameters
float DHparams[6][4] = {
{ 0, 0, 220.8, 62 },
{ -90, -90, 16, 0 },
{ 0, 0, 0, 350 },
{ 0, -90, 316, 100 },
{ 0, 90, 0, 0 },
{ 180, -90, 66.8, 0 }
Steps per Degree
Axis Limits
Then i set all axis into Open Loop and figured out my Calibration Offsets.
And low and behold after some trial and error it works.
I can move and calibrate all Axis
All motordirections are correct
It also moves accurately (10° in the software = 10° on the axis).
Question 1: Are the DH-Parameters correct? (Drawing provided in the next Chapter)
Position Out Of Reach
But now I am beginning to struggle, because my programming skills and my understandung of DH Parameters or the math behind it are not that great.
So while programming I was jogging the Robot to the desired position and pressed Teach New Position. The Move J mode was used during these tests.
I recorded some positions and let the robot loop the program and everything went fine. The positions were repeated accurately and with no problems.
But then while running the program with some new positions added the robot stopped due to the Position Out Of Reach Error.
But how can it be out of reach if I just jogged the robot there ?
So I started looking more into the Position Feedback but was dissapoitned because the shown position for the Axis and XYZ-Coordinates seem to be correct. At least for me.
Software Coordinates (Zero Position)

Drawing (Zero Position)
Question 2: Are the Coordinates shown in the Software correct?
XYZ Jogging
When I try to jog the robot using the carthesian jog it does some weird stuff.
For all inputs it moves in X+. But even this move isn´t correct because the faceplate also moves in the Z- Direction. Therefor the Move isn´t following a strict X+ path. (see Video)
X+ Command starting from Zero Position
Coordinates displayed after the Move. Thay are accurate to what i can meassure on the robot itself.

Y+ Command after X+
Question 3: Why does the robot only move in the X+ direction for carthesian jogging ?
Conclusions
My suggestion is that the problem is caused by either
wrong DH-Parameters which may result in a wrong tool orientation, which then leads to the Position Out Of Reach error
A software bug caused by the changes I made for my custom robot
Software Bugs were had been an issue before but they were solved with the help of Mister Annin and Version 3.0.
I hope someone can help me to get rid of these Problems. I have been trying to resolve them for quite a while now but didn´t really get far.
Lastly I want to say THANK YOU to @Chris Annin for providing us with such a nice Open Source Project.
Kind regards,
Max