Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature/Automatic Machine Calibration using Issues & Solutions - Round 2 #1253

Conversation

markmaker
Copy link
Collaborator

@markmaker markmaker commented Aug 18, 2021

Description

Based on #1248, this is an enhancement and bug-fix round based on test version feed-back,

  • Copy static texts to clipboard in I&S IssuePanel using right mouse click. This is signalled by quickly flashing the text.
  • I&S conservative solutions proposed when going back to more basic milestones (such as reverting a GcodeAsyncDriver to a GcodeDriver) are now only severity Suggestion (and not Fundamental) and they do no longer (reverse-) block dependent solutions.
  • When replacing an ImageCamera or SimulatedUpLookingCamera with a real OpenPnpCaptureCamera, the old/new camera is now properly (un)registered in the CameraView. No OpenPnP restart required. Furthermore, should a USB device have been assigned in the meantime, the camera device is properly closed when the solution is undone.
  • Fixed typo AbstractCoordinateAxis.convertFromSystem() (missing "s"), also in ReferenceControllerAxis.
  • Added missing toHeadLocation() transformation to the axis coordinate to camera transformation in backlash calibration.
  • Added proper inter-solution dependencies for many calibration solutions. These are always tested both before proposing the solution and before setting it to solved, i.e. before doing the calibration. This ensures, nothing bad happens, should the preconditions have changed in the meantime, such as when a prerequisite solution is reopened/undone.
  • HeadSolutions will now discover the initial Nozzle configuration of a migrated machine. If the machine has a Milestone other than Welcome (which is only assumed for machines, that still have a NullDriver etc.), the solution is marked as already solved, i.e. it will be hidden by default.
  • Test objects can now be larger relative to the camera dimension.
  • When capturing preliminary nozzle head offsets, they are not updated when very close to the offsets already set. This ensures, calibrated offsets will survive if this rather crude solution is revisited. Only the Z of the nozzle is then used to set the fiducial Z and 3D Units per Pixel information.
  • Added a Length.isInitialized() method.
  • Removed Units per Pixel calibration reminder solutions (obsolete).

Thanks to all testers.

Justification

See the discussion in the testing round:
https://groups.google.com/g/openpnp/c/dBg7txMB0R0/m/5UpXsvJMBwAJ

Instructions for Use

See #1248

Implementation Details

  1. Tested in simulation, partly with user machine.xml.
  2. Did follow the coding style.
  3. Added org.openpnp.model.Length.isInitialized().
  4. Successful mvn test before submitting the Pull Request.

* Copy static texts to clipboard in I&S IssuePanel using right mouse click.
* I&S conservative solutions proposed when going back to more basic Milestones are now only severity Suggestion (and not Fundamental) and they do no longer block dependent solutions.
* When replacing an ImageCamera or SimulatedUpLookingCamera with a real OpenPnpCaptureCamera, the old/new camera is now properly (un)registered in the CameraView. No OpenPnP restart required. Furthermore, should a USB device have been assigned in the mean-time, the camera device is properly closed when the solution is undone.
* Fixed typo AbstractCoordinateAxis.convertFromSystem() (missing "s"), also in ReferenceControllerAxis.
* Added missing toHeadLocation() transformation to the axis coordinate to HeadMountable transformation.
* Added proper inter-solution dependencies for many calibration solutions. These are always tested both before proposing the solution and before setting it to solved, i.e. before doing the calibration. This way nothing bad happens, should the preconditions have changed in the mean-time, such as when a prerequisite solution is reopened/undone.
* HeadSolutions will now discover the initial Nozzle configuration of a migrated machine. If the machine has a Milestone other than "Welcome" (which is only assumed for machines, that still have a NullDriver etc.), the solution is marked as already solved, i.e. it will be hidden by default.
* Test objects can now be larger relative to the camera dimension.
* When capturing preliminary nozzle head offsets, they are not updated when very close to the offsets already set. This way calibrated offsets will survive revisiting this rather crude solution. Only the Z of the nozzle is then used to set the fiducial Z and 3D Units per Pixel information.
* Added a Length.isInitialized() method.
* Removed Units per Pixel calibration reminder solutions (obsolete).
@markmaker markmaker merged commit e766182 into openpnp:test Aug 18, 2021
@markmaker markmaker deleted the feature/issues-and-solutions-machine-calibration-round-2 branch January 3, 2022 11:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant