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

Added(optional) option-flags to the moveTo command. #998

Merged
merged 4 commits into from
May 3, 2020

Conversation

doppelgrau
Copy link
Contributor

@doppelgrau doppelgrau commented May 1, 2020

Description

The moveTo() command in the Movable-interface (and all classes implementing it) now accepts optional flags, that are described in the enum "MoveToOption".

In the GcodeDriver these options are evaluated.

Justification

This allows other functions selectively to disable certain features, that usually improves the movement quality, but might not suitable in this situation.
Examples:

  • backslash compensation can create mechanical stress during nozzle change (pressing into the nozzle tip holder)
  • small movements without the need for precision are way slower with backslash compensation. (e.g. "stirring in a heap feeder)

Instructions for Use

only used by developers.

Implementation Details

  1. How did you test the change? Be descriptive. Untested code will not be accepted.

Tested it in the simulator. Larger tests following with the HeapFeeder implementation.

  1. Did you follow the coding style?

yes

  1. If you made changes in the org.openpnp.spi or org.openpnp.model packages you will need to add additional justification for these changes. Changes to these packages require extensive review and testing.

yes

  1. Be sure to run mvn test before submitting the Pull Request. If the tests do not pass the Pull Request will not be accepted.

passes.

Recommend to wait a bit until the heap feeder exist as a first "User" so there have been more testing.

Easy to extend (more elements in the enum), easy to ignore in drivers
that do not support the given option.
@markmaker
Copy link
Collaborator

Hi @doppelgrau

I had the same reservations about Backlash Compensation until I realized this:

  1. If the nozzle tip changer is a) aligned with the axes and b) open towards the backlash compensation offset, then there is no such stress. You can reverse the sign of your backlash compensation offset if needed.
  2. If you have Squareness Compensation, then align the tip changer openings with the X axis, so it never needs to move in Y, i.e. so Squareness Compensation is never used (I'm just guessing that's the reason for your other flag).
  3. I believe that if backlash compensation is properly tuned, then there is virtually no physical movement and no stress. Backlash compensation should ideally only take up the slack in the mechanics (belt, pulleys etc.). It would be nice to calibrate this using vision (and I think its quite easy to implement).

Having said that, I agree, that the system needs to become smarter, see here:
https://groups.google.com/forum/#!topic/openpnp/bEVZvYoXO98
So I'm open for new ideas, hopefully integrating with these new plans.

One goal of these plans is to take universal application logic out of the GCodeDriver and make it available to all the drivers (including future ones). So new PRs should whenever possible not add new features exclusively to GCodeDriver.

The new plans (see the link for details) will change the moveTo() on the driver significantly. For instance the axes will already have been transformed (including squareness compensation) and the mapped axes "package" will be passed to the driver moveTo(). The driver moveTo() should only be concerned with the raw motion.

The PR does not show, how this will be used from the caller. So it's not possible to assess the dependencies and how easily it could be adapted in the future, e.g. to be compatible with the new plans. So I hope you understand, I'm a bit concerned.

Do you see a path?

_Mark

@doppelgrau
Copy link
Contributor Author

hi @markmaker

I had s short discussion with Jason about this PR.
Will move the enum to the Movable interface and make the entries more generic (NO_ADDITIONAL_MOVE and RAW - suggestions for better names happily accepted. Guess RAW is ok, but the first one could also something like SPEED_OVER_PRECISION or or).
Then test it with the HeapFeeder implementation. But I guess moving the options to Movable and passing it along the "chain" might make changing the logic easier.

@markmaker
Copy link
Collaborator

Hi @doppelgrau

Yes, that's much better.

But now I start to wonder...

Could this be made into a real object instead of the enum? So we can create new subclasses and add new parameters, without each time breaking the interface? (Note, I'm not quite familiar with Java enums, perhaps they are more powerful and already allow subclassing?)

I also wonder if the waitForMoveToComplete() could be made into just another flag (property) of that parameter object. So if you wanted to move the camera to take a vision capture, you'd just add the "wait" flag and the "precision" flag and perhaps the "antivibration" flag (hope you read my post and understand what I'm talking about ;-).

https://makr.zone/wp-content/uploads/2020/04/SimulatedJerkControl.mp4

_Mark

@doppelgrau
Copy link
Contributor Author

Yes, a real objects would also be possible. but since you can pass as many enum as you want, you can just make the enum longer without breaking anything.
See it as a a way to pass an arbitrary number of boolean flags around. (is passed or not)

So yes, something like "WAIT_FOR_COMPLETION", "LOW_VIBRATION" would be possible, passed around and every method along the "path" can react if it is set. (e.g. GCodeDriver and ReferenceNozzle. In the nozzle only on the RAW enum something is done. And you can see the loop, since the number can be arbitrary)

@vonnieda
Copy link
Member

vonnieda commented May 3, 2020

This looks good to me, and I think it's a good first step that will not really get in the way of @markmaker's larger changes.

I have two concerns:

  1. OpenPnP uses CamelCase for enums throughout the system, so I'd like the names changed from e.g. NO_ADDITIONAL_MOVE to NoAdditionalMoves.

  2. At first, I thought Mark was incorrect about backlash compensation (BC) but I just worked though an example and now I agree with him. BC should not actually cause an additional move if set correctly.

So, for the two use cases you described in the PR, I think maybe the first is only an issue if BC is not tuned. The second makes sense, but maybe should be renamed, as you said, to something like SpeedOverPrecision.

Either way, since these are strongly typed, it's a single click to rename them later on, so I'm also fine with just merging this (after changing to CamelCase, at least).

Thanks,
Jason

@doppelgrau
Copy link
Contributor Author

Changed to CamelCase and also made the second enum entry name more generic. (SpeedOverPrecision)

@vonnieda vonnieda merged commit 609131e into openpnp:develop May 3, 2020
@doppelgrau doppelgrau deleted the feature/moveTo-Options branch May 3, 2020 19:06
@markmaker
Copy link
Collaborator

Hi @vonnieda / @doppelgrau

Looking closer, I'm not so happy with the RawMove part of it.

It begins with the term "raw" that is already taken and means raw controller coordinates. That's not the same! There can be a NegatingTransform between those two "raw".

When suppressing the nozzle tip calibration in moveTo() we need to keep in mind that the reverse runout compensation happens in getLocation(). But it is not suppressed there. Calling Code including any Nozzle sub-class would need to be careful not to get an "inverted runout compensation effect". That could be triggered through NaN substitution or any Location.derive() both in the actual as well as in subsequent moves. Yes it will probably often work as intended but there is a booby trap in there.

In short: A moveTo() should always do what its told and be consistent with any subsequent getLocation().

Just to be clear, SpeedOverPrecision is fine, because it does not affect the semantics of the move, just the physical implementation (e.g. no backlash compensation). If you call getLocation() after that, the result is still the best guess of that location.

But why not turn the tables? One solution would be to add another set of options to getLocation().

org.openpnp.spi.Locatable.getLocation(LocationOption...)

So you yould get an answer to the following question:

"To what location do I need to send the nozzle, if I don't want compensation moves in X/Y to happen, even if I want this new rotation?" Only the calling code would then need to know what they are doing, the rigged location stays outside the stack. Consistency guaranteed.

The same could be done for Non-Squareness Compensation:

"To what location do I need to send the nozzle, if I don't want Non-Squareness Compensation moves (in X) to happen, even if I want this new Y coordinate?".

If you're OK with that, I'll add this to my upcoming PR. As it happens, I already had to lay the foundation of that.

_Mark

@doppelgrau
Copy link
Contributor Author

Hi Mark,

I'm fine with every solution. I'm not (yet) deep enough in the architecture to decide where is the best place to put these options.
Guess @vonnieda is the best to decide.

greetings
Johannes

@vonnieda
Copy link
Member

@markmaker Before you spend time coding this, tap the brakes. I don't want to add more API for a feature that is extremely fringe.

@doppelgrau: Do you agree that your point #1 is not actually an issue if backlash compensation is tuned properly? If so, we can just drop RawMove, right?

And for point #2, the problem is that you need to make frequent small moves in your feeder implementation and backlash compensation makes these slow. How slow are we talking about, and is it possibly because backlash compensation is not tuned enough?

My thinking here is that we're adding an awful lot of API and complexity for a feature that is only used by one unreleased feeder implementation, and I wonder if it might make sense to think harder about how to solve the problems in the feeder, rather than changing all of OpenPnP to support the feeder.

@doppelgrau
Copy link
Contributor Author

doppelgrau commented May 10, 2020

#1: yes, raw move can be dropped.

#2:
Don't know if my backslash compensation is already "probably tuned" (distance and speed), but since currently the speed is relatively low for backshlash compensation my guess would be, that nearly doubles the duration of a feeder motion. On the other hand running the first experiments now: after the "initial part level" has been reached (that can be painful slow, so there the longer duration would hurt a bit, on the other hand the user can reduce that by making a guess for the initial feed depth), the time spend in the heap is lower than expected from the "old" code and videos. Most of the time is vision and travel.

So if that creates a headache in the API to support it cleanly, throw it away. The HeapFeeder will never be a really fast feeder and the speed increase with these options is lower than expected.

@markmaker
Copy link
Collaborator

Hi @vonnieda
#1 is not for backlash compensation but for runout compensation. That's the problem.

#2 suppressing backlash compensation is not a problem.

If have this now in Moveable:

    /**
     * Contains all possible options for getting approximative locations.
     * KeepX, KeepY, KeepZ, KeepRotation: keep these raw coordinates the same. 
     * SuppressCompensation: calculate a location that will result in no extra moves for compensation.
     */
    public enum LocationOption { KeepX, KeepY, KeepZ, KeepRotation, SuppressCompensation }

    /**
     * Get an approximative Location in order to avoid extra compensation moves. 
     * 
     * @param currentLocation The current location, usually obtained using Headmountable.getLocation()
     * @param desiredLocation The desired location to approximate. 
     * @param options Options for the approximation.
     * @return
     */
    Location getApproximativeLocation(Location currentLocation, Location desiredLocation, LocationOption... options);

This does make sense in order to bypass squareness compensation, runout compensation, etc.

Keeping the axes still also means there will be no backlash compensation. So if done cleverly this can be used to calculate moves and paths that have full precision and still avoid extra moves.

_Mark

@vonnieda
Copy link
Member

Hi @markmaker - I feel a little bit lost as to how this will all work together, but again, I trust that you will do it right. I'm not close enough to this code right now to really grok it. It sounds like this solves the issue you identified and keeps @doppelgrau's ability to have fast moves, so sounds like win win to me.

vonnieda added a commit that referenced this pull request Jun 6, 2020
* develop: (24 commits)
  Feature/new vision stages (#1008)
  Feature/add two component alignment (#1011)
  - More Russian translations from Igor Sharov.
  - This change restores the old camera jogging behavior of being able to click anywhere, drag, and release to jog. It was removed because it seemed necessary with the new jog handles, but it turns out not to be and the "new" method was far less convenient.
  Snap the camera jogging angle to multiples of 45° when holding down the `alt` button (#1010)
  - Add the samples to the installation directory, too, otherwise Unix doesn't get them.
  - Test deploying backup copies of the binaries to a subdirectory for later reference.
  - Add the OpenPnP 2 doc to the install list so that it can be shown during startup. This has been broken from the start, I guess? - Add a note about sponsoring to the SPONSORS.md doc.
  Update CHANGES and SPONSORS.
  - Updated install4j to 8.0.6 to match local version used for setting configuration. - Added a SPONSORS.md file to thank sponsors. - Added Credits tab to the About dialog which shows the SPONSORS.md. - Fixed an issue where failure to modify MacOS menus did not result in an error, causing the About box to be hidden.
  Update TRANSLATIONS.md
  Fix/release all mat (#1007)
  Feature/fix bug nozzle tip calibration (#1006)
  Part-Off Detection: Re-establishes possibility to read the vacuum level before valve closes. Set probing off-time=0.
  Update PULL_REQUEST_TEMPLATE.md
  Bugfix: Used the wrong event handler to get ComboBox and Checkbox selectedItem/selected changes. (#1002)
  Flush response buffer before sending a command and fix backlash comp (#1001)
  Feature/improve nozzle tip calibration (#992)
  When a new object is created, the @Commit method is not called. So we need to initialize the method, when it is first accessed. (#1000)
  Added(optional) option-flags to the moveTo command. (#998)
  ...
markmaker added a commit to markmaker/openpnp that referenced this pull request Aug 9, 2020
vonnieda pushed a commit that referenced this pull request Aug 13, 2020
* First implementation round. GCodeDriver Axis management is still redundantly in there.

* Reworked Drivers to flat list.

* Machine Setup Panel Tabs per class restoring and out of bounds bugfix.

* Work in progress, backup commit.

* Add

* Axes and Transformations' Wizards implemented. Reorganized into own axis package. Wrestle with WindowBuilder.

* First time tests run successful. GcodeDriver still partially running on its own (redundant) Axis mapping.

* Testing and refining migration with examples.

* Resolved #998 merging issues.

* Cosmetics.

* Created new AxesLocation for Controller side. Reworked all Transformations.

* Made tests run with AxesLocation.

* Testing: First steps towards "simulated imperfection".

* Tested using NullDriver.
* Added simulated Homing Error corrected by Visual Homing
* Added simulated non-squareness corrected by Linear Axis Non-Squareness Transformation
* Added simulated vibration to test Camera Settle
* Added simulated camera noise to test Camera Settle
* Added simulated nozzle runout to test Runout Compensation
No Unit yet.

* Restrict image transfer to the area of the source image, to fix some wrapping-around when going beyond the image margin.

* Backup commit.

* Factored OpenCvUtils.createFootprintTemplate() out for use outside of stages.

* SimulationModeMachine can now check pick and place Locations by inspecting the ImageCamera view at the location.

* Sub-pixel rendering etc.

* Refined the NullMotionPlanner and various stuff.

* Fix the camera view rotation jog to work with and respect mapped axes.

* MotionPlanner first implementation. Before MappedAxes refactoring.

* Reworked: no MappedAxes. Axis limits. Rotation wrap-around.

* Added solver.

* Better description and simpler formula. Getting the hang of this.

* More cosmetics

* Backup commit.

* Backup commit.

* Added motion solver test. Does not work (yet).

* Backup commit

* Backup commit before solver remove.

* Removed tnc solver. Almost completed profile solver cases.

* Backup commit

* Changed profile solver to rudimentary secant method.

* Solver seems to work now.

* Backup commit

* New region solver.

* Tests augmented.

* Before reworking path solver.

* Backup before reworking path solving/half sided profiles.

* Finish without trying to implement advanced motion planning. Cleanup and better comments.

* Better comments.

* Removed unnecessary (whitespace) changes etc. Better comments.

* Self code review bugfixes.

* Constant acceleration profiles.
Optionally test an imperfect machine in the SampleJobTest.

* Simplify Motion and MotionOption.
Implement analytical constant acceleration profile solving for symmetric cases.
Lots of cosmetics.

* Testing on the machine with GcodeDriver: refinements and bugfixes.

* Test bugfix.
markmaker added a commit to markmaker/openpnp that referenced this pull request Aug 16, 2020
commit a252f08
Author: markmaker <mark@makr.zone>
Date:   Sun Aug 16 16:41:53 2020 +0200

    Own Machine testing bug-fixes. Proper X, Y filtering of Visual Homing axes by the Camera that is used (mapped axes only). Also found logic inversion error in ReferenceHead.isInsideSoftLimits(HeadMountable, Location).
    Testing this with multiple Heads and no camera on second head required changing Park Location interpretation to any HeadMountable.

commit c765eaf
Author: markmaker <mark@makr.zone>
Date:   Sun Aug 16 13:01:40 2020 +0200

    Initial user group machine testing bugfixes. Thank you Duncan, Bill, Marmalade, Mike!
    Removed obsolete openpnp\src\main\java\org\openpnp\machine\reference\driver\wizards\AbstractTcpDriverConfigurationWizard.java

commit 190b34b
Author: markmaker <mark@makr.zone>
Date:   Sun Aug 9 21:26:57 2020 +0200

    Test bugfix.

commit 3a94e82
Author: markmaker <mark@makr.zone>
Date:   Sun Aug 9 20:59:20 2020 +0200

    Testing on the machine with GcodeDriver: refinements and bugfixes.

commit 1f52b1c
Author: markmaker <mark@makr.zone>
Date:   Sun Aug 9 15:28:53 2020 +0200

    Simplify Motion and MotionOption.
    Implement analytical constant acceleration profile solving for symmetric cases.
    Lots of cosmetics.

commit 38aae5d
Author: markmaker <mark@makr.zone>
Date:   Sat Aug 8 23:27:44 2020 +0200

    Constant acceleration profiles.
    Optionally test an imperfect machine in the SampleJobTest.

commit e38384a
Author: markmaker <mark@makr.zone>
Date:   Sat Aug 8 16:13:22 2020 +0200

    Self code review bugfixes.

commit c4f87b7
Merge: cd6b55f edbca39
Author: markmaker <mark@makr.zone>
Date:   Fri Aug 7 18:59:30 2020 +0200

    Merge branch 'develop' into feature/global-axes

    Conflicts resolved:
    *	src/test/java/VisionUtilsTest.java

commit cd6b55f
Author: markmaker <mark@makr.zone>
Date:   Thu Aug 6 14:28:45 2020 +0200

    Removed unnecessary (whitespace) changes etc. Better comments.

commit ee29ca7
Author: markmaker <mark@makr.zone>
Date:   Thu Aug 6 13:28:07 2020 +0200

    Better comments.

commit c8c0e7e
Merge: ef152b6 10b0095
Author: markmaker <mark@makr.zone>
Date:   Wed Aug 5 23:15:39 2020 +0200

    Merge branch 'develop' into feature/global-axes

    Resolved Conflicts:
    *	src/main/java/org/openpnp/machine/reference/ReferenceMachine.java

commit ef152b6
Author: markmaker <mark@makr.zone>
Date:   Wed Aug 5 23:11:55 2020 +0200

    Finish without trying to implement advanced motion planning. Cleanup and better comments.

commit 2e1a0ee
Author: markmaker <mark@makr.zone>
Date:   Mon Jul 27 17:35:08 2020 +0200

    Backup before reworking path solving/half sided profiles.

commit fb92b4d
Author: markmaker <mark@makr.zone>
Date:   Wed Jul 8 09:17:09 2020 +0200

    Before reworking path solver.

commit 9443afb
Merge: 9aed71f 5280aa8
Author: markmaker <mark@makr.zone>
Date:   Mon Jul 6 11:30:41 2020 +0200

    Merge branch 'develop' into feature/global-axes

    Conflicts resolved:
    *	src/main/java/org/openpnp/machine/reference/ReferenceMachine.java
    *	src/main/java/org/openpnp/machine/reference/ReferenceNozzleTipCalibration.java
    *	src/main/java/org/openpnp/machine/reference/driver/GcodeDriver.java

commit 9aed71f
Author: markmaker <mark@makr.zone>
Date:   Mon Jul 6 11:17:56 2020 +0200

    Tests augmented.

commit 777ed4a
Author: markmaker <mark@makr.zone>
Date:   Mon Jul 6 00:36:28 2020 +0200

    New region solver.

commit 2511dcf
Author: markmaker <mark@makr.zone>
Date:   Sat Jul 4 15:12:29 2020 +0200

    Backup commit

commit 273474c
Author: markmaker <mark@makr.zone>
Date:   Sat Jun 27 16:55:36 2020 +0200

    Solver seems to work now.

commit 4cd7f6d
Author: markmaker <mark@makr.zone>
Date:   Sat Jun 27 09:46:03 2020 +0200

    Changed profile solver to rudimentary secant method.

commit aaa832f
Author: markmaker <mark@makr.zone>
Date:   Fri Jun 26 22:14:19 2020 +0200

    Backup commit

commit 512ce63
Author: markmaker <mark@makr.zone>
Date:   Mon Jun 15 22:32:58 2020 +0200

    Removed tnc solver. Almost completed profile solver cases.

commit 15996c6
Author: markmaker <mark@makr.zone>
Date:   Sat Jun 13 15:13:10 2020 +0200

    Backup commit before solver remove.

commit 019436b
Author: markmaker <mark@makr.zone>
Date:   Thu Jun 11 18:24:27 2020 +0200

    Backup commit

commit 46a3be1
Author: markmaker <mark@makr.zone>
Date:   Fri Jun 5 13:13:40 2020 +0200

    Added motion solver test. Does not work (yet).

commit b8a5780
Author: markmaker <mark@makr.zone>
Date:   Sun May 31 22:27:21 2020 +0200

    Backup commit.

commit 4a5f01f
Author: markmaker <mark@makr.zone>
Date:   Sat May 30 20:50:45 2020 +0200

    Backup commit.

commit 5de4b1c
Author: markmaker <mark@makr.zone>
Date:   Tue May 26 19:52:22 2020 +0200

    More cosmetics

commit 557c005
Author: markmaker <mark@makr.zone>
Date:   Tue May 26 16:57:03 2020 +0200

    Better description and simpler formula. Getting the hang of this.

commit 4b8f935
Author: markmaker <mark@makr.zone>
Date:   Mon May 25 23:35:00 2020 +0200

    Added solver.

commit e3a14a2
Author: markmaker <mark@makr.zone>
Date:   Thu May 21 22:41:27 2020 +0200

    Reworked: no MappedAxes. Axis limits. Rotation wrap-around.

commit f8301ba
Author: markmaker <mark@makr.zone>
Date:   Wed May 20 13:38:14 2020 +0200

    MotionPlanner first implementation. Before MappedAxes refactoring.

commit 71c672d
Author: markmaker <mark@makr.zone>
Date:   Mon May 18 21:44:59 2020 +0200

    Fix the camera view rotation jog to work with and respect mapped axes.

commit 0dbdf0b
Author: markmaker <mark@makr.zone>
Date:   Mon May 18 20:18:18 2020 +0200

    Refined the NullMotionPlanner and various stuff.

commit 2234e45
Author: markmaker <mark@makr.zone>
Date:   Fri May 15 21:51:43 2020 +0200

    Sub-pixel rendering etc.

commit 7e98c23
Author: markmaker <mark@makr.zone>
Date:   Fri May 15 17:11:23 2020 +0200

    SimulationModeMachine can now check pick and place Locations by inspecting the ImageCamera view at the location.

commit ba10f8c
Author: markmaker <mark@makr.zone>
Date:   Fri May 15 17:10:11 2020 +0200

    Factored OpenCvUtils.createFootprintTemplate() out for use outside of stages.

commit 02bcfa5
Author: markmaker <mark@makr.zone>
Date:   Thu May 14 16:13:45 2020 +0200

    Backup commit.

commit 3d2409a
Author: markmaker <mark@makr.zone>
Date:   Wed May 13 13:45:12 2020 +0200

    Restrict image transfer to the area of the source image, to fix some wrapping-around when going beyond the image margin.

commit 0be6a0e
Merge: 4b389c7 b4310b6
Author: markmaker <mark@makr.zone>
Date:   Wed May 13 11:28:36 2020 +0200

    Merge branch 'develop' into feature/global-axes

commit 4b389c7
Author: markmaker <mark@makr.zone>
Date:   Wed May 13 00:18:01 2020 +0200

    Tested using NullDriver.
    * Added simulated Homing Error corrected by Visual Homing
    * Added simulated non-squareness corrected by Linear Axis Non-Squareness Transformation
    * Added simulated vibration to test Camera Settle
    * Added simulated camera noise to test Camera Settle
    * Added simulated nozzle runout to test Runout Compensation
    No Unit yet.

commit c08725c
Author: markmaker <mark@makr.zone>
Date:   Tue May 12 18:53:16 2020 +0200

    Testing: First steps towards "simulated imperfection".

commit 3e72d57
Author: markmaker <mark@makr.zone>
Date:   Tue May 12 16:26:02 2020 +0200

    Made tests run with AxesLocation.

commit 4dd295d
Merge: 19f2505 b8548f9
Author: markmaker <mark@makr.zone>
Date:   Tue May 12 15:13:00 2020 +0200

    Merge branch 'develop' into feature/global-axes

commit 19f2505
Author: markmaker <mark@makr.zone>
Date:   Tue May 12 14:02:57 2020 +0200

    Created new AxesLocation for Controller side. Reworked all Transformations.

commit 80117eb
Author: markmaker <mark@makr.zone>
Date:   Sun May 10 21:40:50 2020 +0200

    Cosmetics.

commit b36f6e9
Author: markmaker <mark@makr.zone>
Date:   Sun May 10 20:02:00 2020 +0200

    Resolved openpnp#998 merging issues.

commit 0139331
Merge: 8b266b2 19e2925
Author: markmaker <mark@makr.zone>
Date:   Sun May 10 16:21:13 2020 +0200

    Merge branch 'develop' into feature/global-axes

    # Conflicts resolved:
    *	src/main/java/org/openpnp/machine/marek/MarekNozzle.java
    *	src/main/java/org/openpnp/machine/neoden4/NeoDen4Driver.java
    *	src/main/java/org/openpnp/machine/reference/ReferenceActuator.java
    *	src/main/java/org/openpnp/machine/reference/ReferenceCamera.java
    *	src/main/java/org/openpnp/machine/reference/ReferenceDriver.java
    *	src/main/java/org/openpnp/machine/reference/ReferenceHead.java
    *	src/main/java/org/openpnp/machine/reference/ReferenceNozzle.java
    *	src/main/java/org/openpnp/machine/reference/driver/GcodeDriver.java
    *	src/main/java/org/openpnp/machine/reference/driver/NullDriver.java
    *	src/main/java/org/openpnp/spi/Movable.java
    *	src/main/java/org/openpnp/spi/base/AbstractActuator.java
    *	src/main/java/org/openpnp/spi/base/AbstractCamera.java
    *	src/test/java/BasicJobTest.java
    *	src/test/java/VisionUtilsTest.java
    *	src/test/java/org/openpnp/machine/reference/driver/test/TestDriver.java

commit 8b266b2
Author: markmaker <mark@makr.zone>
Date:   Sun May 10 14:26:27 2020 +0200

    Testing and refining migration with examples.

commit 1dc16ec
Author: markmaker <mark@makr.zone>
Date:   Sat May 9 15:38:03 2020 +0200

    First time tests run successful. GcodeDriver still partially running on its own (redundant) Axis mapping.

commit b12c661
Author: markmaker <mark@makr.zone>
Date:   Mon May 4 23:13:06 2020 +0200

    Axes and Transformations' Wizards implemented. Reorganized into own axis package. Wrestle with WindowBuilder.

commit daa9eee
Author: markmaker <mark@makr.zone>
Date:   Sun May 3 21:47:52 2020 +0200

    Add

commit ce3f543
Author: markmaker <mark@makr.zone>
Date:   Sun May 3 21:43:57 2020 +0200

    Work in progress, backup commit.

commit 53e7875
Author: markmaker <mark@makr.zone>
Date:   Sun May 3 14:20:59 2020 +0200

    Machine Setup Panel Tabs per class restoring and out of bounds bugfix.

commit e61af78
Author: markmaker <mark@makr.zone>
Date:   Sun May 3 00:18:01 2020 +0200

    Reworked Drivers to flat list.

commit 51ea613
Author: markmaker <mark@makr.zone>
Date:   Sat May 2 17:34:49 2020 +0200

    First implementation round. GCodeDriver Axis management is still redundantly in there.

Conflicts resolved:
*	src/main/java/org/openpnp/machine/reference/ReferenceHead.java
*	src/main/java/org/openpnp/machine/reference/axis/ReferenceControllerAxis.java
*	src/main/java/org/openpnp/machine/reference/axis/ReferenceMappedAxis.java
*	src/main/java/org/openpnp/machine/reference/axis/wizards/ReferenceControllerAxisConfigurationWizard.java
*	src/main/java/org/openpnp/machine/reference/driver/AbstractMotionPlanner.java
*	src/main/java/org/openpnp/machine/reference/driver/GcodeDriver.java
*	src/main/java/org/openpnp/model/AxesLocation.java
*	src/main/java/org/openpnp/model/Motion.java
*	src/main/java/org/openpnp/spi/ControllerAxis.java
*	src/main/java/org/openpnp/spi/base/AbstractControllerAxis.java
vonnieda pushed a commit that referenced this pull request Aug 17, 2020
* Squashed commit of the following:

commit a252f08
Author: markmaker <mark@makr.zone>
Date:   Sun Aug 16 16:41:53 2020 +0200

    Own Machine testing bug-fixes. Proper X, Y filtering of Visual Homing axes by the Camera that is used (mapped axes only). Also found logic inversion error in ReferenceHead.isInsideSoftLimits(HeadMountable, Location).
    Testing this with multiple Heads and no camera on second head required changing Park Location interpretation to any HeadMountable.

commit c765eaf
Author: markmaker <mark@makr.zone>
Date:   Sun Aug 16 13:01:40 2020 +0200

    Initial user group machine testing bugfixes. Thank you Duncan, Bill, Marmalade, Mike!
    Removed obsolete openpnp\src\main\java\org\openpnp\machine\reference\driver\wizards\AbstractTcpDriverConfigurationWizard.java

commit 190b34b
Author: markmaker <mark@makr.zone>
Date:   Sun Aug 9 21:26:57 2020 +0200

    Test bugfix.

commit 3a94e82
Author: markmaker <mark@makr.zone>
Date:   Sun Aug 9 20:59:20 2020 +0200

    Testing on the machine with GcodeDriver: refinements and bugfixes.

commit 1f52b1c
Author: markmaker <mark@makr.zone>
Date:   Sun Aug 9 15:28:53 2020 +0200

    Simplify Motion and MotionOption.
    Implement analytical constant acceleration profile solving for symmetric cases.
    Lots of cosmetics.

commit 38aae5d
Author: markmaker <mark@makr.zone>
Date:   Sat Aug 8 23:27:44 2020 +0200

    Constant acceleration profiles.
    Optionally test an imperfect machine in the SampleJobTest.

commit e38384a
Author: markmaker <mark@makr.zone>
Date:   Sat Aug 8 16:13:22 2020 +0200

    Self code review bugfixes.

commit c4f87b7
Merge: cd6b55f edbca39
Author: markmaker <mark@makr.zone>
Date:   Fri Aug 7 18:59:30 2020 +0200

    Merge branch 'develop' into feature/global-axes

    Conflicts resolved:
    *	src/test/java/VisionUtilsTest.java

commit cd6b55f
Author: markmaker <mark@makr.zone>
Date:   Thu Aug 6 14:28:45 2020 +0200

    Removed unnecessary (whitespace) changes etc. Better comments.

commit ee29ca7
Author: markmaker <mark@makr.zone>
Date:   Thu Aug 6 13:28:07 2020 +0200

    Better comments.

commit c8c0e7e
Merge: ef152b6 10b0095
Author: markmaker <mark@makr.zone>
Date:   Wed Aug 5 23:15:39 2020 +0200

    Merge branch 'develop' into feature/global-axes

    Resolved Conflicts:
    *	src/main/java/org/openpnp/machine/reference/ReferenceMachine.java

commit ef152b6
Author: markmaker <mark@makr.zone>
Date:   Wed Aug 5 23:11:55 2020 +0200

    Finish without trying to implement advanced motion planning. Cleanup and better comments.

commit 2e1a0ee
Author: markmaker <mark@makr.zone>
Date:   Mon Jul 27 17:35:08 2020 +0200

    Backup before reworking path solving/half sided profiles.

commit fb92b4d
Author: markmaker <mark@makr.zone>
Date:   Wed Jul 8 09:17:09 2020 +0200

    Before reworking path solver.

commit 9443afb
Merge: 9aed71f 5280aa8
Author: markmaker <mark@makr.zone>
Date:   Mon Jul 6 11:30:41 2020 +0200

    Merge branch 'develop' into feature/global-axes

    Conflicts resolved:
    *	src/main/java/org/openpnp/machine/reference/ReferenceMachine.java
    *	src/main/java/org/openpnp/machine/reference/ReferenceNozzleTipCalibration.java
    *	src/main/java/org/openpnp/machine/reference/driver/GcodeDriver.java

commit 9aed71f
Author: markmaker <mark@makr.zone>
Date:   Mon Jul 6 11:17:56 2020 +0200

    Tests augmented.

commit 777ed4a
Author: markmaker <mark@makr.zone>
Date:   Mon Jul 6 00:36:28 2020 +0200

    New region solver.

commit 2511dcf
Author: markmaker <mark@makr.zone>
Date:   Sat Jul 4 15:12:29 2020 +0200

    Backup commit

commit 273474c
Author: markmaker <mark@makr.zone>
Date:   Sat Jun 27 16:55:36 2020 +0200

    Solver seems to work now.

commit 4cd7f6d
Author: markmaker <mark@makr.zone>
Date:   Sat Jun 27 09:46:03 2020 +0200

    Changed profile solver to rudimentary secant method.

commit aaa832f
Author: markmaker <mark@makr.zone>
Date:   Fri Jun 26 22:14:19 2020 +0200

    Backup commit

commit 512ce63
Author: markmaker <mark@makr.zone>
Date:   Mon Jun 15 22:32:58 2020 +0200

    Removed tnc solver. Almost completed profile solver cases.

commit 15996c6
Author: markmaker <mark@makr.zone>
Date:   Sat Jun 13 15:13:10 2020 +0200

    Backup commit before solver remove.

commit 019436b
Author: markmaker <mark@makr.zone>
Date:   Thu Jun 11 18:24:27 2020 +0200

    Backup commit

commit 46a3be1
Author: markmaker <mark@makr.zone>
Date:   Fri Jun 5 13:13:40 2020 +0200

    Added motion solver test. Does not work (yet).

commit b8a5780
Author: markmaker <mark@makr.zone>
Date:   Sun May 31 22:27:21 2020 +0200

    Backup commit.

commit 4a5f01f
Author: markmaker <mark@makr.zone>
Date:   Sat May 30 20:50:45 2020 +0200

    Backup commit.

commit 5de4b1c
Author: markmaker <mark@makr.zone>
Date:   Tue May 26 19:52:22 2020 +0200

    More cosmetics

commit 557c005
Author: markmaker <mark@makr.zone>
Date:   Tue May 26 16:57:03 2020 +0200

    Better description and simpler formula. Getting the hang of this.

commit 4b8f935
Author: markmaker <mark@makr.zone>
Date:   Mon May 25 23:35:00 2020 +0200

    Added solver.

commit e3a14a2
Author: markmaker <mark@makr.zone>
Date:   Thu May 21 22:41:27 2020 +0200

    Reworked: no MappedAxes. Axis limits. Rotation wrap-around.

commit f8301ba
Author: markmaker <mark@makr.zone>
Date:   Wed May 20 13:38:14 2020 +0200

    MotionPlanner first implementation. Before MappedAxes refactoring.

commit 71c672d
Author: markmaker <mark@makr.zone>
Date:   Mon May 18 21:44:59 2020 +0200

    Fix the camera view rotation jog to work with and respect mapped axes.

commit 0dbdf0b
Author: markmaker <mark@makr.zone>
Date:   Mon May 18 20:18:18 2020 +0200

    Refined the NullMotionPlanner and various stuff.

commit 2234e45
Author: markmaker <mark@makr.zone>
Date:   Fri May 15 21:51:43 2020 +0200

    Sub-pixel rendering etc.

commit 7e98c23
Author: markmaker <mark@makr.zone>
Date:   Fri May 15 17:11:23 2020 +0200

    SimulationModeMachine can now check pick and place Locations by inspecting the ImageCamera view at the location.

commit ba10f8c
Author: markmaker <mark@makr.zone>
Date:   Fri May 15 17:10:11 2020 +0200

    Factored OpenCvUtils.createFootprintTemplate() out for use outside of stages.

commit 02bcfa5
Author: markmaker <mark@makr.zone>
Date:   Thu May 14 16:13:45 2020 +0200

    Backup commit.

commit 3d2409a
Author: markmaker <mark@makr.zone>
Date:   Wed May 13 13:45:12 2020 +0200

    Restrict image transfer to the area of the source image, to fix some wrapping-around when going beyond the image margin.

commit 0be6a0e
Merge: 4b389c7 b4310b6
Author: markmaker <mark@makr.zone>
Date:   Wed May 13 11:28:36 2020 +0200

    Merge branch 'develop' into feature/global-axes

commit 4b389c7
Author: markmaker <mark@makr.zone>
Date:   Wed May 13 00:18:01 2020 +0200

    Tested using NullDriver.
    * Added simulated Homing Error corrected by Visual Homing
    * Added simulated non-squareness corrected by Linear Axis Non-Squareness Transformation
    * Added simulated vibration to test Camera Settle
    * Added simulated camera noise to test Camera Settle
    * Added simulated nozzle runout to test Runout Compensation
    No Unit yet.

commit c08725c
Author: markmaker <mark@makr.zone>
Date:   Tue May 12 18:53:16 2020 +0200

    Testing: First steps towards "simulated imperfection".

commit 3e72d57
Author: markmaker <mark@makr.zone>
Date:   Tue May 12 16:26:02 2020 +0200

    Made tests run with AxesLocation.

commit 4dd295d
Merge: 19f2505 b8548f9
Author: markmaker <mark@makr.zone>
Date:   Tue May 12 15:13:00 2020 +0200

    Merge branch 'develop' into feature/global-axes

commit 19f2505
Author: markmaker <mark@makr.zone>
Date:   Tue May 12 14:02:57 2020 +0200

    Created new AxesLocation for Controller side. Reworked all Transformations.

commit 80117eb
Author: markmaker <mark@makr.zone>
Date:   Sun May 10 21:40:50 2020 +0200

    Cosmetics.

commit b36f6e9
Author: markmaker <mark@makr.zone>
Date:   Sun May 10 20:02:00 2020 +0200

    Resolved #998 merging issues.

commit 0139331
Merge: 8b266b2 19e2925
Author: markmaker <mark@makr.zone>
Date:   Sun May 10 16:21:13 2020 +0200

    Merge branch 'develop' into feature/global-axes

    # Conflicts resolved:
    *	src/main/java/org/openpnp/machine/marek/MarekNozzle.java
    *	src/main/java/org/openpnp/machine/neoden4/NeoDen4Driver.java
    *	src/main/java/org/openpnp/machine/reference/ReferenceActuator.java
    *	src/main/java/org/openpnp/machine/reference/ReferenceCamera.java
    *	src/main/java/org/openpnp/machine/reference/ReferenceDriver.java
    *	src/main/java/org/openpnp/machine/reference/ReferenceHead.java
    *	src/main/java/org/openpnp/machine/reference/ReferenceNozzle.java
    *	src/main/java/org/openpnp/machine/reference/driver/GcodeDriver.java
    *	src/main/java/org/openpnp/machine/reference/driver/NullDriver.java
    *	src/main/java/org/openpnp/spi/Movable.java
    *	src/main/java/org/openpnp/spi/base/AbstractActuator.java
    *	src/main/java/org/openpnp/spi/base/AbstractCamera.java
    *	src/test/java/BasicJobTest.java
    *	src/test/java/VisionUtilsTest.java
    *	src/test/java/org/openpnp/machine/reference/driver/test/TestDriver.java

commit 8b266b2
Author: markmaker <mark@makr.zone>
Date:   Sun May 10 14:26:27 2020 +0200

    Testing and refining migration with examples.

commit 1dc16ec
Author: markmaker <mark@makr.zone>
Date:   Sat May 9 15:38:03 2020 +0200

    First time tests run successful. GcodeDriver still partially running on its own (redundant) Axis mapping.

commit b12c661
Author: markmaker <mark@makr.zone>
Date:   Mon May 4 23:13:06 2020 +0200

    Axes and Transformations' Wizards implemented. Reorganized into own axis package. Wrestle with WindowBuilder.

commit daa9eee
Author: markmaker <mark@makr.zone>
Date:   Sun May 3 21:47:52 2020 +0200

    Add

commit ce3f543
Author: markmaker <mark@makr.zone>
Date:   Sun May 3 21:43:57 2020 +0200

    Work in progress, backup commit.

commit 53e7875
Author: markmaker <mark@makr.zone>
Date:   Sun May 3 14:20:59 2020 +0200

    Machine Setup Panel Tabs per class restoring and out of bounds bugfix.

commit e61af78
Author: markmaker <mark@makr.zone>
Date:   Sun May 3 00:18:01 2020 +0200

    Reworked Drivers to flat list.

commit 51ea613
Author: markmaker <mark@makr.zone>
Date:   Sat May 2 17:34:49 2020 +0200

    First implementation round. GCodeDriver Axis management is still redundantly in there.

Conflicts resolved:
*	src/main/java/org/openpnp/machine/reference/ReferenceHead.java
*	src/main/java/org/openpnp/machine/reference/axis/ReferenceControllerAxis.java
*	src/main/java/org/openpnp/machine/reference/axis/ReferenceMappedAxis.java
*	src/main/java/org/openpnp/machine/reference/axis/wizards/ReferenceControllerAxisConfigurationWizard.java
*	src/main/java/org/openpnp/machine/reference/driver/AbstractMotionPlanner.java
*	src/main/java/org/openpnp/machine/reference/driver/GcodeDriver.java
*	src/main/java/org/openpnp/model/AxesLocation.java
*	src/main/java/org/openpnp/model/Motion.java
*	src/main/java/org/openpnp/spi/ControllerAxis.java
*	src/main/java/org/openpnp/spi/base/AbstractControllerAxis.java

* Initial user group machine testing bugfixes. Thank you Duncan, Bill, Marmalade, Mike!
Removed obsolete openpnp\src\main\java\org\openpnp\machine\reference\driver\wizards\AbstractTcpDriverConfigurationWizard.java

* Cosmetics.
markmaker added a commit to markmaker/openpnp that referenced this pull request Dec 12, 2020
…pnp#1035)

* First implementation round. GCodeDriver Axis management is still redundantly in there.

* Reworked Drivers to flat list.

* Machine Setup Panel Tabs per class restoring and out of bounds bugfix.

* Work in progress, backup commit.

* Add

* Axes and Transformations' Wizards implemented. Reorganized into own axis package. Wrestle with WindowBuilder.

* First time tests run successful. GcodeDriver still partially running on its own (redundant) Axis mapping.

* Testing and refining migration with examples.

* Resolved openpnp#998 merging issues.

* Cosmetics.

* Created new AxesLocation for Controller side. Reworked all Transformations.

* Made tests run with AxesLocation.

* Testing: First steps towards "simulated imperfection".

* Tested using NullDriver.
* Added simulated Homing Error corrected by Visual Homing
* Added simulated non-squareness corrected by Linear Axis Non-Squareness Transformation
* Added simulated vibration to test Camera Settle
* Added simulated camera noise to test Camera Settle
* Added simulated nozzle runout to test Runout Compensation
No Unit yet.

* Restrict image transfer to the area of the source image, to fix some wrapping-around when going beyond the image margin.

* Backup commit.

* Factored OpenCvUtils.createFootprintTemplate() out for use outside of stages.

* SimulationModeMachine can now check pick and place Locations by inspecting the ImageCamera view at the location.

* Sub-pixel rendering etc.

* Refined the NullMotionPlanner and various stuff.

* Fix the camera view rotation jog to work with and respect mapped axes.

* MotionPlanner first implementation. Before MappedAxes refactoring.

* Reworked: no MappedAxes. Axis limits. Rotation wrap-around.

* Added solver.

* Better description and simpler formula. Getting the hang of this.

* More cosmetics

* Backup commit.

* Backup commit.

* Added motion solver test. Does not work (yet).

* Backup commit

* Backup commit before solver remove.

* Removed tnc solver. Almost completed profile solver cases.

* Backup commit

* Changed profile solver to rudimentary secant method.

* Solver seems to work now.

* Backup commit

* New region solver.

* Tests augmented.

* Before reworking path solver.

* Backup before reworking path solving/half sided profiles.

* Finish without trying to implement advanced motion planning. Cleanup and better comments.

* Better comments.

* Removed unnecessary (whitespace) changes etc. Better comments.

* Self code review bugfixes.

* Constant acceleration profiles.
Optionally test an imperfect machine in the SampleJobTest.

* Simplify Motion and MotionOption.
Implement analytical constant acceleration profile solving for symmetric cases.
Lots of cosmetics.

* Testing on the machine with GcodeDriver: refinements and bugfixes.

* Test bugfix.

(cherry picked from commit f6713b6)

Fix/global axes bugfixes 1 (openpnp#1038)

* Squashed commit of the following:

commit a252f08
Author: markmaker <mark@makr.zone>

    Own Machine testing bug-fixes. Proper X, Y filtering of Visual Homing axes by the Camera that is used (mapped axes only). Also found logic inversion error in ReferenceHead.isInsideSoftLimits(HeadMountable, Location).
    Testing this with multiple Heads and no camera on second head required changing Park Location interpretation to any HeadMountable.

commit c765eaf
Author: markmaker <mark@makr.zone>

    Initial user group machine testing bugfixes. Thank you Duncan, Bill, Marmalade, Mike!
    Removed obsolete openpnp\src\main\java\org\openpnp\machine\reference\driver\wizards\AbstractTcpDriverConfigurationWizard.java

commit 190b34b
Author: markmaker <mark@makr.zone>

    Test bugfix.

commit 3a94e82
Author: markmaker <mark@makr.zone>

    Testing on the machine with GcodeDriver: refinements and bugfixes.

commit 1f52b1c
Author: markmaker <mark@makr.zone>

    Simplify Motion and MotionOption.
    Implement analytical constant acceleration profile solving for symmetric cases.
    Lots of cosmetics.

commit 38aae5d
Author: markmaker <mark@makr.zone>

    Constant acceleration profiles.
    Optionally test an imperfect machine in the SampleJobTest.

commit e38384a
Author: markmaker <mark@makr.zone>

    Self code review bugfixes.

commit c4f87b7
Merge: cd6b55f edbca39
Author: markmaker <mark@makr.zone>

    Merge branch 'develop' into feature/global-axes

    Conflicts resolved:
    *	src/test/java/VisionUtilsTest.java

commit cd6b55f
Author: markmaker <mark@makr.zone>

    Removed unnecessary (whitespace) changes etc. Better comments.

commit ee29ca7
Author: markmaker <mark@makr.zone>

    Better comments.

commit c8c0e7e
Merge: ef152b6 10b0095
Author: markmaker <mark@makr.zone>

    Merge branch 'develop' into feature/global-axes

    Resolved Conflicts:
    *	src/main/java/org/openpnp/machine/reference/ReferenceMachine.java

commit ef152b6
Author: markmaker <mark@makr.zone>

    Finish without trying to implement advanced motion planning. Cleanup and better comments.

commit 2e1a0ee
Author: markmaker <mark@makr.zone>

    Backup before reworking path solving/half sided profiles.

commit fb92b4d
Author: markmaker <mark@makr.zone>

    Before reworking path solver.

commit 9443afb
Merge: 9aed71f 5280aa8
Author: markmaker <mark@makr.zone>

    Merge branch 'develop' into feature/global-axes

    Conflicts resolved:
    *	src/main/java/org/openpnp/machine/reference/ReferenceMachine.java
    *	src/main/java/org/openpnp/machine/reference/ReferenceNozzleTipCalibration.java
    *	src/main/java/org/openpnp/machine/reference/driver/GcodeDriver.java

commit 9aed71f
Author: markmaker <mark@makr.zone>

    Tests augmented.

commit 777ed4a
Author: markmaker <mark@makr.zone>

    New region solver.

commit 2511dcf
Author: markmaker <mark@makr.zone>

    Backup commit

commit 273474c
Author: markmaker <mark@makr.zone>

    Solver seems to work now.

commit 4cd7f6d
Author: markmaker <mark@makr.zone>

    Changed profile solver to rudimentary secant method.

commit aaa832f
Author: markmaker <mark@makr.zone>

    Backup commit

commit 512ce63
Author: markmaker <mark@makr.zone>

    Removed tnc solver. Almost completed profile solver cases.

commit 15996c6
Author: markmaker <mark@makr.zone>

    Backup commit before solver remove.

commit 019436b
Author: markmaker <mark@makr.zone>

    Backup commit

commit 46a3be1
Author: markmaker <mark@makr.zone>

    Added motion solver test. Does not work (yet).

commit b8a5780
Author: markmaker <mark@makr.zone>

    Backup commit.

commit 4a5f01f
Author: markmaker <mark@makr.zone>

    Backup commit.

commit 5de4b1c
Author: markmaker <mark@makr.zone>

    More cosmetics

commit 557c005
Author: markmaker <mark@makr.zone>

    Better description and simpler formula. Getting the hang of this.

commit 4b8f935
Author: markmaker <mark@makr.zone>

    Added solver.

commit e3a14a2
Author: markmaker <mark@makr.zone>

    Reworked: no MappedAxes. Axis limits. Rotation wrap-around.

commit f8301ba
Author: markmaker <mark@makr.zone>

    MotionPlanner first implementation. Before MappedAxes refactoring.

commit 71c672d
Author: markmaker <mark@makr.zone>

    Fix the camera view rotation jog to work with and respect mapped axes.

commit 0dbdf0b
Author: markmaker <mark@makr.zone>

    Refined the NullMotionPlanner and various stuff.

commit 2234e45
Author: markmaker <mark@makr.zone>

    Sub-pixel rendering etc.

commit 7e98c23
Author: markmaker <mark@makr.zone>

    SimulationModeMachine can now check pick and place Locations by inspecting the ImageCamera view at the location.

commit ba10f8c
Author: markmaker <mark@makr.zone>

    Factored OpenCvUtils.createFootprintTemplate() out for use outside of stages.

commit 02bcfa5
Author: markmaker <mark@makr.zone>

    Backup commit.

commit 3d2409a
Author: markmaker <mark@makr.zone>

    Restrict image transfer to the area of the source image, to fix some wrapping-around when going beyond the image margin.

commit 0be6a0e
Merge: 4b389c7 b4310b6
Author: markmaker <mark@makr.zone>

    Merge branch 'develop' into feature/global-axes

commit 4b389c7
Author: markmaker <mark@makr.zone>

    Tested using NullDriver.
    * Added simulated Homing Error corrected by Visual Homing
    * Added simulated non-squareness corrected by Linear Axis Non-Squareness Transformation
    * Added simulated vibration to test Camera Settle
    * Added simulated camera noise to test Camera Settle
    * Added simulated nozzle runout to test Runout Compensation
    No Unit yet.

commit c08725c
Author: markmaker <mark@makr.zone>

    Testing: First steps towards "simulated imperfection".

commit 3e72d57
Author: markmaker <mark@makr.zone>

    Made tests run with AxesLocation.

commit 4dd295d
Merge: 19f2505 b8548f9
Author: markmaker <mark@makr.zone>

    Merge branch 'develop' into feature/global-axes

commit 19f2505
Author: markmaker <mark@makr.zone>

    Created new AxesLocation for Controller side. Reworked all Transformations.

commit 80117eb
Author: markmaker <mark@makr.zone>

    Cosmetics.

commit b36f6e9
Author: markmaker <mark@makr.zone>

    Resolved openpnp#998 merging issues.

commit 0139331
Merge: 8b266b2 19e2925
Author: markmaker <mark@makr.zone>

    Merge branch 'develop' into feature/global-axes

    # Conflicts resolved:
    *	src/main/java/org/openpnp/machine/marek/MarekNozzle.java
    *	src/main/java/org/openpnp/machine/neoden4/NeoDen4Driver.java
    *	src/main/java/org/openpnp/machine/reference/ReferenceActuator.java
    *	src/main/java/org/openpnp/machine/reference/ReferenceCamera.java
    *	src/main/java/org/openpnp/machine/reference/ReferenceDriver.java
    *	src/main/java/org/openpnp/machine/reference/ReferenceHead.java
    *	src/main/java/org/openpnp/machine/reference/ReferenceNozzle.java
    *	src/main/java/org/openpnp/machine/reference/driver/GcodeDriver.java
    *	src/main/java/org/openpnp/machine/reference/driver/NullDriver.java
    *	src/main/java/org/openpnp/spi/Movable.java
    *	src/main/java/org/openpnp/spi/base/AbstractActuator.java
    *	src/main/java/org/openpnp/spi/base/AbstractCamera.java
    *	src/test/java/BasicJobTest.java
    *	src/test/java/VisionUtilsTest.java
    *	src/test/java/org/openpnp/machine/reference/driver/test/TestDriver.java

commit 8b266b2
Author: markmaker <mark@makr.zone>

    Testing and refining migration with examples.

commit 1dc16ec
Author: markmaker <mark@makr.zone>

    First time tests run successful. GcodeDriver still partially running on its own (redundant) Axis mapping.

commit b12c661
Author: markmaker <mark@makr.zone>

    Axes and Transformations' Wizards implemented. Reorganized into own axis package. Wrestle with WindowBuilder.

commit daa9eee
Author: markmaker <mark@makr.zone>

    Add

commit ce3f543
Author: markmaker <mark@makr.zone>

    Work in progress, backup commit.

commit 53e7875
Author: markmaker <mark@makr.zone>

    Machine Setup Panel Tabs per class restoring and out of bounds bugfix.

commit e61af78
Author: markmaker <mark@makr.zone>

    Reworked Drivers to flat list.

commit 51ea613
Author: markmaker <mark@makr.zone>

    First implementation round. GCodeDriver Axis management is still redundantly in there.

Conflicts resolved:
*	src/main/java/org/openpnp/machine/reference/ReferenceHead.java
*	src/main/java/org/openpnp/machine/reference/axis/ReferenceControllerAxis.java
*	src/main/java/org/openpnp/machine/reference/axis/ReferenceMappedAxis.java
*	src/main/java/org/openpnp/machine/reference/axis/wizards/ReferenceControllerAxisConfigurationWizard.java
*	src/main/java/org/openpnp/machine/reference/driver/AbstractMotionPlanner.java
*	src/main/java/org/openpnp/machine/reference/driver/GcodeDriver.java
*	src/main/java/org/openpnp/model/AxesLocation.java
*	src/main/java/org/openpnp/model/Motion.java
*	src/main/java/org/openpnp/spi/ControllerAxis.java
*	src/main/java/org/openpnp/spi/base/AbstractControllerAxis.java

* Initial user group machine testing bugfixes. Thank you Duncan, Bill, Marmalade, Mike!
Removed obsolete openpnp\src\main\java\org\openpnp\machine\reference\driver\wizards\AbstractTcpDriverConfigurationWizard.java

* Cosmetics.

(cherry picked from commit d46cfb3)

Fix/Global Axes Enhancements and Bug-Fixes 2 (openpnp#1042)

* Integrated GcodeServer into SimulationMode.

* Added MotionControlType to Driver. Implemented simplified S-Curves as in TinyG and Marlin. Bugfixes.

* Tests with Null Machine. New reset button for default GcodeDriver commands. Bug-fixes.

(cherry picked from commit c144c75)

Feature/Better Backlash Compensation (openpnp#1047)

* Removed backlash compensation from GcodeDriver and added it to the Motion Planner.
* A new BacklashCompensationMethod can now be selected on the axis.
* Added optimized one-sided backlash compensation that only adds an extra move, if on the wrong side.
* Added directional backlash compensation that works without extra moves.

(cherry picked from commit 58a54a7)

Feature/Advanced Motion Control (openpnp#1061)

* Make Directional Backlash Compensation one sided too for better compatibility.

* Asynchronous GcodeDriver first steps.

* * Implemented GcodeAsyncDriver.
* Fixed some Backlash Compensation bugs for the new Directional method.
* Hide deprecated Gcode commands in the Combobox, if they are not set to a value already.

* * Adding the GcodeAsyncDriver class to the Machine so it can be instantiated.
* Some bug-fixes.

* Bugfixes, testing with controller.

* First trials with interpolation.

* Fixed Logger thread safety.

* * New GcodeAsyncDriverSettings Wizard.
* Interpolation settings moved to the GcodeAsyncDriver where they belong, getters return defaults in GcodeDriver.
* timeoutMilliseconds is stretched to the inverse of the Machine Speed where it matters. So tests with very small speed factors won't timeout.
* Added ModeratedConstantAcceleration motion control type.
* Bug-fixes from testing with controller/stepper attached.

* * MotionPlanner class can now be selected in the Machine Wizard.
* ReferenceAdvancedMotionPlannerConfigurationWizard added, exposing the MotionPlanner as a Wizard page of the machine.
* Refactored actuator sub-class Wizards to use base class AbstractActuatorConfigurationWizard for common stuff (in preparation to add more common stuff).
* extracted public method to allow (re-) selection of current object in the Machine Setup Tree, therefore allow loading Wizards with changing set of tabs.
* moved getMotionPlanner() to Machine interface.

* * Actuator, machine & motion coordination

* * CameraView Zoom increment clipped to >= 1.0 if best scale quality is selected

* * Remodeled ReferenceDriver interface into spi Driver interface and class hierarchy similar to other machine objects.
* Made interpolation a task of the MotionPlanner, drivers now only execute single moveTo commands.

* * Backlash compensation more robust when settings change during session
* First steps towards advanced motion planner
* Support profiles with fused reversing ramps i.e. acceleration != 0 in mid segment
* Test case reworked

* * Path solver progress.

* * Refactored overshoot control

* * Good working order.

* * Refactored AbstractMotionPath out of MotionProfile to separate path solving from profile solving.
* Simplified "PnP class" path solver heuristics completed.

* * Controller axes get Safe Zone

* * Implemented Axis centric Safe (Z) Zone
* Migrate Safe Z.
* BasicJobTest with proper working Z below Safe Z
* ReferenceAdvancedMotionPlanner performs uncoordinated moves in Safe Zone

* * Machine testing.

* * First steps towards better interpolation.

* * Reverted Momentaries.
* New interpolation method.

* * More testing.

* * Diagnostic Graphics
* Bugfixing

* * Finished graphical diagnostics.
* Better uncoordinated motion synchronization, tries to approximate coordinated.
* Bugfixing.

* * Interpolation intervals snap to the special points in time (extremes in the profile).
* Testing on machine.

* * Proper diagnostics for all MotionControlType variants.
* Added Test Motion.
* Time measurements in diagnostics.
* Interpolation failure status.

* * C axis in Test motionGraph
* Retiming optionFlags
* Fine tuning.
* More tests on Smoothie.

* * extensive testing on machine

* * Extensive code review, last fixes and final touches.
* Redesigned ugly axis limit icons.

* * Solved position reporting dilemma.
* Made "infinite" timeouts into 5 minutes to (eventually) resolve hard-to-diagnose hangs.
* Added after actuate machine coordination back, needed for contact probing.
* Added Safe Z handling for virtual axes (takes home coordinate).

(cherry picked from commit 52f2756)

* Conflicts resolved:
   * src/main/java/org/openpnp/machine/reference/driver/GcodeDriver.java

Merge pull request openpnp#1065 from markmaker/feature/advanced-motion-control--update

Feature/Advanced Motion Control - Various Improvments

Merging this myself, in the testing branch regime.

(cherry picked from commit b5a53eb)

Merge pull request openpnp#1066 from markmaker/feature/advanced-motion-control--update-2

Feature/Advanced Motion Control  - Update 2

(cherry picked from commit 75bda17)

Merge pull request openpnp#1071 from markmaker/feature/advanced-motion-control--3

Feature / Advanced Motion Control - Update 3

(cherry picked from commit 4a96553)

Merge pull request openpnp#1072 from markmaker/feature/advanced-motion-control--4

Feature/Advanced Motion Control - Update 4

(cherry picked from commit dfba626)

Merge pull request openpnp#1073 from markmaker/feature/advanced-motion-control--5

Feature / Advanced Motion Control - Update 5

(cherry picked from commit 56eae4d)

Merge pull request openpnp#1074 from markmaker/feature/advanced-motion-control--6

Feature / Advanced Motion Control - Update 6

(cherry picked from commit e5b521c)

Merge pull request openpnp#1082 from markmaker/feature/advanced-motion-control--7

Feature / Advanced Motion Control - Update 7

(cherry picked from commit e12b91a)

* Better TinyG SET_GLOBAL_OFFSETS_COMMAND suggestion.

(cherry picked from commit 2bcaff3151ba7d8516c16551d5a74202d57c9c74)

* Cherry Pick artifact?
markmaker added a commit to markmaker/openpnp that referenced this pull request Dec 12, 2020
…pnp#1035)

* First implementation round. GCodeDriver Axis management is still redundantly in there.

* Reworked Drivers to flat list.

* Machine Setup Panel Tabs per class restoring and out of bounds bugfix.

* Work in progress, backup commit.

* Add

* Axes and Transformations' Wizards implemented. Reorganized into own axis package. Wrestle with WindowBuilder.

* First time tests run successful. GcodeDriver still partially running on its own (redundant) Axis mapping.

* Testing and refining migration with examples.

* Resolved openpnp#998 merging issues.

* Cosmetics.

* Created new AxesLocation for Controller side. Reworked all Transformations.

* Made tests run with AxesLocation.

* Testing: First steps towards "simulated imperfection".

* Tested using NullDriver.
* Added simulated Homing Error corrected by Visual Homing
* Added simulated non-squareness corrected by Linear Axis Non-Squareness Transformation
* Added simulated vibration to test Camera Settle
* Added simulated camera noise to test Camera Settle
* Added simulated nozzle runout to test Runout Compensation
No Unit yet.

* Restrict image transfer to the area of the source image, to fix some wrapping-around when going beyond the image margin.

* Backup commit.

* Factored OpenCvUtils.createFootprintTemplate() out for use outside of stages.

* SimulationModeMachine can now check pick and place Locations by inspecting the ImageCamera view at the location.

* Sub-pixel rendering etc.

* Refined the NullMotionPlanner and various stuff.

* Fix the camera view rotation jog to work with and respect mapped axes.

* MotionPlanner first implementation. Before MappedAxes refactoring.

* Reworked: no MappedAxes. Axis limits. Rotation wrap-around.

* Added solver.

* Better description and simpler formula. Getting the hang of this.

* More cosmetics

* Backup commit.

* Backup commit.

* Added motion solver test. Does not work (yet).

* Backup commit

* Backup commit before solver remove.

* Removed tnc solver. Almost completed profile solver cases.

* Backup commit

* Changed profile solver to rudimentary secant method.

* Solver seems to work now.

* Backup commit

* New region solver.

* Tests augmented.

* Before reworking path solver.

* Backup before reworking path solving/half sided profiles.

* Finish without trying to implement advanced motion planning. Cleanup and better comments.

* Better comments.

* Removed unnecessary (whitespace) changes etc. Better comments.

* Self code review bugfixes.

* Constant acceleration profiles.
Optionally test an imperfect machine in the SampleJobTest.

* Simplify Motion and MotionOption.
Implement analytical constant acceleration profile solving for symmetric cases.
Lots of cosmetics.

* Testing on the machine with GcodeDriver: refinements and bugfixes.

* Test bugfix.

(cherry picked from commit f6713b6)
markmaker added a commit to markmaker/openpnp that referenced this pull request Dec 12, 2020
* Squashed commit of the following:

commit a252f08
Author: markmaker <mark@makr.zone>
Date:   Sun Aug 16 16:41:53 2020 +0200

    Own Machine testing bug-fixes. Proper X, Y filtering of Visual Homing axes by the Camera that is used (mapped axes only). Also found logic inversion error in ReferenceHead.isInsideSoftLimits(HeadMountable, Location).
    Testing this with multiple Heads and no camera on second head required changing Park Location interpretation to any HeadMountable.

commit c765eaf
Author: markmaker <mark@makr.zone>
Date:   Sun Aug 16 13:01:40 2020 +0200

    Initial user group machine testing bugfixes. Thank you Duncan, Bill, Marmalade, Mike!
    Removed obsolete openpnp\src\main\java\org\openpnp\machine\reference\driver\wizards\AbstractTcpDriverConfigurationWizard.java

commit 190b34b
Author: markmaker <mark@makr.zone>
Date:   Sun Aug 9 21:26:57 2020 +0200

    Test bugfix.

commit 3a94e82
Author: markmaker <mark@makr.zone>
Date:   Sun Aug 9 20:59:20 2020 +0200

    Testing on the machine with GcodeDriver: refinements and bugfixes.

commit 1f52b1c
Author: markmaker <mark@makr.zone>
Date:   Sun Aug 9 15:28:53 2020 +0200

    Simplify Motion and MotionOption.
    Implement analytical constant acceleration profile solving for symmetric cases.
    Lots of cosmetics.

commit 38aae5d
Author: markmaker <mark@makr.zone>
Date:   Sat Aug 8 23:27:44 2020 +0200

    Constant acceleration profiles.
    Optionally test an imperfect machine in the SampleJobTest.

commit e38384a
Author: markmaker <mark@makr.zone>
Date:   Sat Aug 8 16:13:22 2020 +0200

    Self code review bugfixes.

commit c4f87b7
Merge: cd6b55f edbca39
Author: markmaker <mark@makr.zone>
Date:   Fri Aug 7 18:59:30 2020 +0200

    Merge branch 'develop' into feature/global-axes

    Conflicts resolved:
    *	src/test/java/VisionUtilsTest.java

commit cd6b55f
Author: markmaker <mark@makr.zone>
Date:   Thu Aug 6 14:28:45 2020 +0200

    Removed unnecessary (whitespace) changes etc. Better comments.

commit ee29ca7
Author: markmaker <mark@makr.zone>
Date:   Thu Aug 6 13:28:07 2020 +0200

    Better comments.

commit c8c0e7e
Merge: ef152b6 10b0095
Author: markmaker <mark@makr.zone>
Date:   Wed Aug 5 23:15:39 2020 +0200

    Merge branch 'develop' into feature/global-axes

    Resolved Conflicts:
    *	src/main/java/org/openpnp/machine/reference/ReferenceMachine.java

commit ef152b6
Author: markmaker <mark@makr.zone>
Date:   Wed Aug 5 23:11:55 2020 +0200

    Finish without trying to implement advanced motion planning. Cleanup and better comments.

commit 2e1a0ee
Author: markmaker <mark@makr.zone>
Date:   Mon Jul 27 17:35:08 2020 +0200

    Backup before reworking path solving/half sided profiles.

commit fb92b4d
Author: markmaker <mark@makr.zone>
Date:   Wed Jul 8 09:17:09 2020 +0200

    Before reworking path solver.

commit 9443afb
Merge: 9aed71f 5280aa8
Author: markmaker <mark@makr.zone>
Date:   Mon Jul 6 11:30:41 2020 +0200

    Merge branch 'develop' into feature/global-axes

    Conflicts resolved:
    *	src/main/java/org/openpnp/machine/reference/ReferenceMachine.java
    *	src/main/java/org/openpnp/machine/reference/ReferenceNozzleTipCalibration.java
    *	src/main/java/org/openpnp/machine/reference/driver/GcodeDriver.java

commit 9aed71f
Author: markmaker <mark@makr.zone>
Date:   Mon Jul 6 11:17:56 2020 +0200

    Tests augmented.

commit 777ed4a
Author: markmaker <mark@makr.zone>
Date:   Mon Jul 6 00:36:28 2020 +0200

    New region solver.

commit 2511dcf
Author: markmaker <mark@makr.zone>
Date:   Sat Jul 4 15:12:29 2020 +0200

    Backup commit

commit 273474c
Author: markmaker <mark@makr.zone>
Date:   Sat Jun 27 16:55:36 2020 +0200

    Solver seems to work now.

commit 4cd7f6d
Author: markmaker <mark@makr.zone>
Date:   Sat Jun 27 09:46:03 2020 +0200

    Changed profile solver to rudimentary secant method.

commit aaa832f
Author: markmaker <mark@makr.zone>
Date:   Fri Jun 26 22:14:19 2020 +0200

    Backup commit

commit 512ce63
Author: markmaker <mark@makr.zone>
Date:   Mon Jun 15 22:32:58 2020 +0200

    Removed tnc solver. Almost completed profile solver cases.

commit 15996c6
Author: markmaker <mark@makr.zone>
Date:   Sat Jun 13 15:13:10 2020 +0200

    Backup commit before solver remove.

commit 019436b
Author: markmaker <mark@makr.zone>
Date:   Thu Jun 11 18:24:27 2020 +0200

    Backup commit

commit 46a3be1
Author: markmaker <mark@makr.zone>
Date:   Fri Jun 5 13:13:40 2020 +0200

    Added motion solver test. Does not work (yet).

commit b8a5780
Author: markmaker <mark@makr.zone>
Date:   Sun May 31 22:27:21 2020 +0200

    Backup commit.

commit 4a5f01f
Author: markmaker <mark@makr.zone>
Date:   Sat May 30 20:50:45 2020 +0200

    Backup commit.

commit 5de4b1c
Author: markmaker <mark@makr.zone>
Date:   Tue May 26 19:52:22 2020 +0200

    More cosmetics

commit 557c005
Author: markmaker <mark@makr.zone>
Date:   Tue May 26 16:57:03 2020 +0200

    Better description and simpler formula. Getting the hang of this.

commit 4b8f935
Author: markmaker <mark@makr.zone>
Date:   Mon May 25 23:35:00 2020 +0200

    Added solver.

commit e3a14a2
Author: markmaker <mark@makr.zone>
Date:   Thu May 21 22:41:27 2020 +0200

    Reworked: no MappedAxes. Axis limits. Rotation wrap-around.

commit f8301ba
Author: markmaker <mark@makr.zone>
Date:   Wed May 20 13:38:14 2020 +0200

    MotionPlanner first implementation. Before MappedAxes refactoring.

commit 71c672d
Author: markmaker <mark@makr.zone>
Date:   Mon May 18 21:44:59 2020 +0200

    Fix the camera view rotation jog to work with and respect mapped axes.

commit 0dbdf0b
Author: markmaker <mark@makr.zone>
Date:   Mon May 18 20:18:18 2020 +0200

    Refined the NullMotionPlanner and various stuff.

commit 2234e45
Author: markmaker <mark@makr.zone>
Date:   Fri May 15 21:51:43 2020 +0200

    Sub-pixel rendering etc.

commit 7e98c23
Author: markmaker <mark@makr.zone>
Date:   Fri May 15 17:11:23 2020 +0200

    SimulationModeMachine can now check pick and place Locations by inspecting the ImageCamera view at the location.

commit ba10f8c
Author: markmaker <mark@makr.zone>
Date:   Fri May 15 17:10:11 2020 +0200

    Factored OpenCvUtils.createFootprintTemplate() out for use outside of stages.

commit 02bcfa5
Author: markmaker <mark@makr.zone>
Date:   Thu May 14 16:13:45 2020 +0200

    Backup commit.

commit 3d2409a
Author: markmaker <mark@makr.zone>
Date:   Wed May 13 13:45:12 2020 +0200

    Restrict image transfer to the area of the source image, to fix some wrapping-around when going beyond the image margin.

commit 0be6a0e
Merge: 4b389c7 b4310b6
Author: markmaker <mark@makr.zone>
Date:   Wed May 13 11:28:36 2020 +0200

    Merge branch 'develop' into feature/global-axes

commit 4b389c7
Author: markmaker <mark@makr.zone>
Date:   Wed May 13 00:18:01 2020 +0200

    Tested using NullDriver.
    * Added simulated Homing Error corrected by Visual Homing
    * Added simulated non-squareness corrected by Linear Axis Non-Squareness Transformation
    * Added simulated vibration to test Camera Settle
    * Added simulated camera noise to test Camera Settle
    * Added simulated nozzle runout to test Runout Compensation
    No Unit yet.

commit c08725c
Author: markmaker <mark@makr.zone>
Date:   Tue May 12 18:53:16 2020 +0200

    Testing: First steps towards "simulated imperfection".

commit 3e72d57
Author: markmaker <mark@makr.zone>
Date:   Tue May 12 16:26:02 2020 +0200

    Made tests run with AxesLocation.

commit 4dd295d
Merge: 19f2505 b8548f9
Author: markmaker <mark@makr.zone>
Date:   Tue May 12 15:13:00 2020 +0200

    Merge branch 'develop' into feature/global-axes

commit 19f2505
Author: markmaker <mark@makr.zone>
Date:   Tue May 12 14:02:57 2020 +0200

    Created new AxesLocation for Controller side. Reworked all Transformations.

commit 80117eb
Author: markmaker <mark@makr.zone>
Date:   Sun May 10 21:40:50 2020 +0200

    Cosmetics.

commit b36f6e9
Author: markmaker <mark@makr.zone>
Date:   Sun May 10 20:02:00 2020 +0200

    Resolved openpnp#998 merging issues.

commit 0139331
Merge: 8b266b2 19e2925
Author: markmaker <mark@makr.zone>
Date:   Sun May 10 16:21:13 2020 +0200

    Merge branch 'develop' into feature/global-axes

    # Conflicts resolved:
    *	src/main/java/org/openpnp/machine/marek/MarekNozzle.java
    *	src/main/java/org/openpnp/machine/neoden4/NeoDen4Driver.java
    *	src/main/java/org/openpnp/machine/reference/ReferenceActuator.java
    *	src/main/java/org/openpnp/machine/reference/ReferenceCamera.java
    *	src/main/java/org/openpnp/machine/reference/ReferenceDriver.java
    *	src/main/java/org/openpnp/machine/reference/ReferenceHead.java
    *	src/main/java/org/openpnp/machine/reference/ReferenceNozzle.java
    *	src/main/java/org/openpnp/machine/reference/driver/GcodeDriver.java
    *	src/main/java/org/openpnp/machine/reference/driver/NullDriver.java
    *	src/main/java/org/openpnp/spi/Movable.java
    *	src/main/java/org/openpnp/spi/base/AbstractActuator.java
    *	src/main/java/org/openpnp/spi/base/AbstractCamera.java
    *	src/test/java/BasicJobTest.java
    *	src/test/java/VisionUtilsTest.java
    *	src/test/java/org/openpnp/machine/reference/driver/test/TestDriver.java

commit 8b266b2
Author: markmaker <mark@makr.zone>
Date:   Sun May 10 14:26:27 2020 +0200

    Testing and refining migration with examples.

commit 1dc16ec
Author: markmaker <mark@makr.zone>
Date:   Sat May 9 15:38:03 2020 +0200

    First time tests run successful. GcodeDriver still partially running on its own (redundant) Axis mapping.

commit b12c661
Author: markmaker <mark@makr.zone>
Date:   Mon May 4 23:13:06 2020 +0200

    Axes and Transformations' Wizards implemented. Reorganized into own axis package. Wrestle with WindowBuilder.

commit daa9eee
Author: markmaker <mark@makr.zone>
Date:   Sun May 3 21:47:52 2020 +0200

    Add

commit ce3f543
Author: markmaker <mark@makr.zone>
Date:   Sun May 3 21:43:57 2020 +0200

    Work in progress, backup commit.

commit 53e7875
Author: markmaker <mark@makr.zone>
Date:   Sun May 3 14:20:59 2020 +0200

    Machine Setup Panel Tabs per class restoring and out of bounds bugfix.

commit e61af78
Author: markmaker <mark@makr.zone>
Date:   Sun May 3 00:18:01 2020 +0200

    Reworked Drivers to flat list.

commit 51ea613
Author: markmaker <mark@makr.zone>
Date:   Sat May 2 17:34:49 2020 +0200

    First implementation round. GCodeDriver Axis management is still redundantly in there.

Conflicts resolved:
*	src/main/java/org/openpnp/machine/reference/ReferenceHead.java
*	src/main/java/org/openpnp/machine/reference/axis/ReferenceControllerAxis.java
*	src/main/java/org/openpnp/machine/reference/axis/ReferenceMappedAxis.java
*	src/main/java/org/openpnp/machine/reference/axis/wizards/ReferenceControllerAxisConfigurationWizard.java
*	src/main/java/org/openpnp/machine/reference/driver/AbstractMotionPlanner.java
*	src/main/java/org/openpnp/machine/reference/driver/GcodeDriver.java
*	src/main/java/org/openpnp/model/AxesLocation.java
*	src/main/java/org/openpnp/model/Motion.java
*	src/main/java/org/openpnp/spi/ControllerAxis.java
*	src/main/java/org/openpnp/spi/base/AbstractControllerAxis.java

* Initial user group machine testing bugfixes. Thank you Duncan, Bill, Marmalade, Mike!
Removed obsolete openpnp\src\main\java\org\openpnp\machine\reference\driver\wizards\AbstractTcpDriverConfigurationWizard.java

* Cosmetics.

(cherry picked from commit d46cfb3)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants