Holey Triangular Calibration

I want to provide an update on my progress from this last weekend. This is going to be a partial update, and I will have to edit this post in the near future, because I don’t have all the files and information available right now.

This is a summary of what has been done so-far.

  • The kinematics are updated to include chain tension, the catenary equations, and chain-stretch
  • The updated kinematics equations were updated in the firmware to mirror the updates in Ground Control
  • The calculations were validated between GC and the firmware
  • A calibration routine was developed which leverages curve-fitting routines from scipy.
  • The holey calibration test-cut pattern was updated to include a sixth point at the top-center of the workpiece
  • Several simulated calibrations were done to ensure the curve-fitting routine worked correctly.
  • The GC 1.25 updates were merged in
  • The updated calibration was run on the physical machine
  • The physical machine calibration resulted in the maximum error of the 12 measurements of around 1.3 mm.

At some point, I would like this to become a pull-request. I cannot think of any reason these updates shouldn’t be part of the standard installation. Maybe everyone isn’t aligned on that, so at least we will have to have a discussion. I think that is the purpose of the pull-request.

There are still a few things that need to be done before this could be merged into the main branch.

  • There are a few parameters that are hard-coded into firmware, kinematics.cpp: the chain-stretch coefficient and the chain-weight. These should be moved into a System Settings location.
    • I am still not familiar with the architecture of the firmware, so I could use some guidance and help on where to put them.
  • This calibration module would need to be integrated into GC as part of the GUI.
    • I have no prior knowledge of GC or Kivy, so I could use some guidance and help regarding how to implement that.

Here is the output of the calibration. The leading whitespace did not work out, so it is difficult to read.

Each Index corresponds with one measurement in the map.

3 Likes