This discussion might have happened before (and it seems familiar to me but I suffer from CRS), but it’s real hard to find something specific when the keyword is error… So sorry for restarting this conversation…
It appears to me that the positional error reported by the controller are the encoder value errors… meaning the motors were told to operate to get the encoders to a certain number of steps, but in the end it didn’t get there and so there’s an error value. This value is reported to Ground Control and this is what’s used to move the error indicator on the screen. I never incorporated this into WebControl and am looking at doing so.
The “problem” I have is that the error reported are in essence chain lengths and they aren’t used to calculate position based upon the kinematics, but rather a simple equation that assumes the chains are at 45 degrees:
self.frontpage.gcodecanvas.targetIndicator.setPos(self.xval - .5 * rightErrorValueAsFloat + .5 * leftErrorValueAsFloat, self.yval - .5 * rightErrorValueAsFloat - .5 * leftErrorValueAsFloat, self.data.units)
This might be a reasonable approach and Good Enough™.
However, I could implement it in different ways and instead of a indicator, I could do something like a gauge, which I personally think might be a better indicator. I could put two bar gauges on the screen and show percentage of error to the error tolerance (the one that defaults to 2mm)… the image below is just to clarify what I am describing. By doing this, you can watch how the machine behaves and know more readily if error is getting close to the limits. Thoughts?