Confused with fiducial checking

682 views
Skip to first unread message

Marek T.

unread,
Sep 8, 2017, 12:56:56 PM9/8/17
to OpenPnP
Hi Jason,

I'm confused with my fiducial checking. Pls let me understand how it works, what is normal or what is bug or my pipeline (or machine calibration) error.

The situation:
machine calibrated perfect with caliper and some standarized-size tools. No squerness (ore less than pixel).
single not panelized board
fiducial checking performed manual (gui switch ~"check fiducials and perform position/rotation update") and after that manual sending camera to the fiducial position
tested standard fiducial pipeline (with some modification) or houghCircle detection instructed by Cri
board alligned idealy along X with camera, updated rotation 0-0.02

I observe 3 fiducials corrections while "scanning" and see their coordinates on the bottom bar. Also see that one of the corrected positions is perfectly drawn. Then I'm sending camera to the fiducial position and see some drama (or maybe I think so only). It means camera is set in wrong position and totaly other than one of visible corrections a moment before. Usually LD (left-down) fiducial is better positioned than RU but it is not always.
And otherwise situation: while scanning I see three fatal corrections but when later send there camera it's placed almost ideal.

My question is:
- if fidu is "scanned" then what the position is "registered" for later use? One of the position visible while scanning or some averaged value recalculated from these three scans? Otherwords: manual sending camera to fidu position should put it exact in one of these 3 positions (which one?) or not at all? I'm expecting it should (if fidu was drawn perfect) and fighting to get this effect. Maybe I'm loosing the time??


And btw: when openpnp is realizing job function and checking fuducials in the process, uses the same mechanism like for manual switch or some other one?

Marek

Jason von Nieda

unread,
Sep 8, 2017, 1:36:00 PM9/8/17
to ope...@googlegroups.com
Hi Marek,

Can you capture a short video to show what is going on? This will probably be the easiest way for me to help.

Answers to your questions:
* The fid is scanned three times and the final capture is used. The intention is to "zero in" or get closer to the fid each time. If it's jumping all around, you may need to improve your pipeline.
* Once a fiducial check is complete, OpenPnP calculates the board's position based on the positions of the fids and sets the board location to that position.
* Yes, manual checking and job checking are the same.

Jason


--
You received this message because you are subscribed to the Google Groups "OpenPnP" group.
To unsubscribe from this group and stop receiving emails from it, send an email to openpnp+u...@googlegroups.com.
To post to this group, send email to ope...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/openpnp/f09b143b-900f-4764-8a22-76f06735d822%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Message has been deleted

Marek T.

unread,
Sep 8, 2017, 5:30:34 PM9/8/17
to OpenPnP
Telling "the final capture is used" do you mean that if I press icon to position camera to the fid location, the camera should go to this final (the closest to ideal) location visible while scanning?

If an answer is yes, so as I said, in my case I see really good scanned and drawn fid but when send there a camera it goes to some other point. I will capture it to show on Monda

Jason von Nieda

unread,
Sep 8, 2017, 5:32:41 PM9/8/17
to OpenPnP
Yes, it should, as long as you have that fid selected in the placements table.

Jason


Marek T.

unread,
Sep 8, 2017, 5:40:00 PM9/8/17
to OpenPnP
Of course. So it should work as I expected and as is intuitive! But not for me as you'll see after weekend. Thx for explanation cause I was already sure of nothing making different experimenst and callibrations :-).

Bernd Walter

unread,
Sep 8, 2017, 6:33:18 PM9/8/17
to OpenPnP
You might want to check for backlash and friction.
Friction is a nasty problem for small moves, which the camera relocation will do.
It can be that a small move will not be executed because the motor and belt stretch have
to overcome the stationary friction, but still accounted in the logical position.
You can test this by doing small steps via jog control in alternating directions and see if the
camera moves the expected distance.
For backlash move long distances to the same point from both directions.

Marek T.

unread,
Sep 8, 2017, 7:03:08 PM9/8/17
to OpenPnP
Hi Bernd,
I know this and tested. Backlash is not my problem at long moves, jumps +/-10 or 100 always come back exact to the start point. Small movings I can also perform without problems. While inaccuracy have usually around 0.04-0.05mm.

Marek T.

unread,
Sep 11, 2017, 2:10:52 PM9/11/17
to OpenPnP
Hi Jason,

Few captures. Shows that in some cases the best scanned position is not the last one but i.e the second, then next is worse.
Or that found both fidu quite good but when camera sent there it lands in other position (and moved from centre) than shown while scanning - movie 2 and 3 shows it well.
(Sorry for shity capture quality, must find some better software than have.)

https://drive.google.com/open?id=0B0fpYE7uPVHwZENRQ1R5NXZVSE0

brgds
Marek




W dniu piątek, 8 września 2017 19:36:00 UTC+2 użytkownik Jason von Nieda napisał:

SMdude

unread,
Sep 11, 2017, 11:00:16 PM9/11/17
to OpenPnP
Go to your parts tab and select your fiducial part.
Then select the referencefiducialloactor tab and you can edit your pipeline there.
Have a close look through each stage and see if you can adjust a few things to get the result more reliable.

Jason von Nieda

unread,
Sep 12, 2017, 12:53:39 AM9/12/17
to OpenPnP
I am out of town returning Wednesday, will have a look then
--
You received this message because you are subscribed to the Google Groups "OpenPnP" group.
To unsubscribe from this group and stop receiving emails from it, send an email to openpnp+u...@googlegroups.com.
To post to this group, send email to ope...@googlegroups.com.

Marek T.

unread,
Sep 12, 2017, 3:11:19 AM9/12/17
to OpenPnP
Hi Michael
It was (and still is) optimalised with Cri's help. Understand you want to tell me that not best pipeline is cause that not each next scan is better than prior but sometimes worse. But the question is not only why fidu is not perfectly recognized at every time but why the camera is sent to other position than one of the visible while scan.

Hi Jason,
Understood, no problem, will wait.

SMdude

unread,
Sep 12, 2017, 4:15:50 AM9/12/17
to OpenPnP
Ahhh, If Cri has helped you with the pipeline, then you have had better help than I can give!
One thing to try, what if you decrease your fiducial pad size(package tab) just a little bit?

The only reason I suggest looking through the pipeline carefully is that sometimes things might stand out as to why it is inconsistent.
And the more you look and play with it, the better you understand it(sometimes!!)

Cheers

Cri S

unread,
Sep 12, 2017, 4:55:41 AM9/12/17
to ope...@googlegroups.com
Seeing good fiducial on Video it's clear why this happen.
It is a setup mistake.

Cri S

unread,
Sep 12, 2017, 4:56:25 AM9/12/17
to ope...@googlegroups.com
previously i have seen only "bad" fiducials.

SMdude

unread,
Sep 12, 2017, 5:52:30 AM9/12/17
to OpenPnP
A setup mistake, or the result of board shrinkage at the fab house?

Cri S

unread,
Sep 12, 2017, 5:59:00 AM9/12/17
to ope...@googlegroups.com
The video i have seen indicate setup mistake, but i wait the requested image to
comment it further in order to base on facts and not impression and
because it's easy
to verify.
> --
> You received this message because you are subscribed to the Google Groups
> "OpenPnP" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to openpnp+u...@googlegroups.com.
> To post to this group, send email to ope...@googlegroups.com.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/openpnp/7b8ace59-4b27-4c27-a89d-e934df3bef9f%40googlegroups.com.

Marek T.

unread,
Sep 12, 2017, 6:36:13 AM9/12/17
to OpenPnP
What the setup mistake you mean Cri? And what image I should to deliver that you wait? Note that on captures above I've shown two different fiducials to illustrate what I meant on my mind that it goes to other location than scanned. Two captures (named 2 and 3)shows not typical for me golden fidus 1.5mm from some client. Typical for me are boards showing silver fidu 1mm. On some mail I've sent you a set with 12 different quality 1mm fiducials, there were both bad and quite good looking (as answer you gave me pipeline scanning 3mm soldermask edges which i plan test today, will give feedback later for this).

Marek T.

unread,
Sep 12, 2017, 6:39:02 AM9/12/17
to OpenPnP
Tried increase,decrease. Getting blind of nonstop looking onto the pipelines already :-)

SMdude

unread,
Sep 12, 2017, 7:39:12 AM9/12/17
to OpenPnP
Marek, would you say that for that board that the second fiducial is always out the same amount, even though in the video during fiducial detection the fiducial appears to identify, when you then move the camera to the fid locations, the first one is correct and the second one incorrect?

SMdude

unread,
Sep 12, 2017, 7:46:19 AM9/12/17
to OpenPnP
Also, what happens if you do the manually align board using 2 placements and use the 2 fiducials for the placements?

Cri S

unread,
Sep 12, 2017, 9:04:20 AM9/12/17
to ope...@googlegroups.com
Place a not printed graph paper with 3-5mm , similar to this
https://cdn.printablepaper.net/samples/grid-portrait-letter-5mm.png
and take two images, one with graph paper crossing lines at center and the other
with the image center on the center of quadrat. The lines should be
horizontal and vertical
aligned.
> --
> You received this message because you are subscribed to the Google Groups
> "OpenPnP" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to openpnp+u...@googlegroups.com.
> To post to this group, send email to ope...@googlegroups.com.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/openpnp/53cf5b99-70d2-4368-a988-02b8429a8819%40googlegroups.com.

Marek T.

unread,
Sep 12, 2017, 9:12:41 AM9/12/17
to OpenPnP
Yes I can say that! Usually fid1 is much better than fid2.
And later effect that parts closer to fid1 are centered while closer to fid2 are moved mostly the same as fid2 is de-centered.

So do you think that boards dimensions (csv coordinates) are not in agree with real board? If you think so - I found today you are right ;). Also talked today with my pcb supplier and got info that tollerance of boards production is +/-0.1mm per panel. He said it's common standard. Don't know it's true or not.
So tried to change fid2 coordinates onto taken from board and it works better for fid2 - almost good I can say. However the rest of parts are still moved of course.
Note the calibration of machine is performed with caliper and other standard tools, and tuned to get perfect. No backlash, no squerness, and 0.01mm moves performed without problems - all checked as suggested by Cri that machine tuning may be a problem

Have never tried "using 2 placements and use the 2 fiducials" yet!!!

Marek T.

unread,
Sep 12, 2017, 9:23:35 AM9/12/17
to OpenPnP
So squerness checking again?
Paper like this alligned perfect along X-axis and confirmation that when moving Y the Y is also alligned perfect (it means ideal 90deg to X).
Plus "writing" some quadrats to check if when made four moves come back idealy to the start point.
Correct?

I did it a bit other way, frankly speaking using the pcb and trusting it's 90deg corners. Looking on today experiments and found above described pcb production tollerances - I will repeat it tomorrow with papers yet.

SMdude

unread,
Sep 12, 2017, 9:26:09 AM9/12/17
to OpenPnP
Yes, you will need to rescale your coordinates.

I found it was easier to just jog the machine to the centre of the part placement and press "set to camera location" but take note of rotation as you will need to re-enter it.

It would be nice if some clever cookie could integrate automatic coordinate rescaling based on fiducial placement error. Of coarse there would need to be limits on how far out it can correct(in case it identified something other than a fiducial)

Cheers

Marek T.

unread,
Sep 12, 2017, 10:34:42 AM9/12/17
to OpenPnP
In my case rotations are like 0.1 or less, so no problem with this even if remain at 0.
When it's 10-20 parts on board then ok, but if it's the board containing some ~200 parts like have it now on the board - then it's smells weak to do it manualy.
The tool to resize csv automaticaly basing on fiducials could be really usuful. Remains the question who is here powerful to do it...? ;) :-)

Cri S

unread,
Sep 12, 2017, 11:29:16 AM9/12/17
to ope...@googlegroups.com
The code was implemented and given to @vonnieda when fiducial implementation was
coded. It still exists ? i have lost it.
It turned out, that if machine was not setup correctly, incorrect
fiducial correction works
better as correct one, and especially the 3 and 4 fiducials correction.
The code inside Utils2D is the problem, i have discussed several times
with @vonnieda
times ago, however it is true that on inaccurate machine the actual
solution is better.

// Now we rotate the first placement by the angle, which gives us
the location
// that the placement would be had the board been rotated by that angle.
Location idealARotated = idealA.rotateXy(angle);

// And now we subtract that rotated location from the observed
location to get
// the real offset of the board.
Location location = actualA.subtract(idealARotated);

The problem / situation
-------------F2
---------C Center of Rotation and Offset, -- precise Machines need use this.
----F1 Actual used OFFSET
X is board OFFSET

Angle is calc using Fid1 and Fid2, and the difference of real and
ideal (rotated) Fid1 is used as offset.
As distance from X and F1 is small, that cannot be accurate.and if
distance between
In case F1 and F2 is different as calculated, the placement error
increase if distance from F1 increase. Using C averages the Error and
gives better tollerances, on precise machines. If machine have
backlash problems or axis misalignment, actual code/solution
works better.

If instead using C with similar code in substitution with the above:

// And now we compute offset of the board.
Location location =
actualA.add(actualB).subtract(idealA).subtract(idealB);

For more advanced correction, 3 or 4 position fiducials are needed,
because shrinking
is different on different axis and not equal.
> --
> You received this message because you are subscribed to the Google Groups
> "OpenPnP" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to openpnp+u...@googlegroups.com.
> To post to this group, send email to ope...@googlegroups.com.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/openpnp/b3dd428e-8021-42e7-8e39-846afabbcc07%40googlegroups.com.

Cri S

unread,
Sep 12, 2017, 12:13:22 PM9/12/17
to ope...@googlegroups.com
Probably this works, as previously i have only considered 0 rotated boards.
// And now we compute offset of the board.
Location location =
actualA.add(actualB).subtract(idealA.add(idealB).rotateXy(angle));

For precision reason, offset/rotation of board components should be
calculated from
C and not from machine zero, as if angle is wrong (fiducial is
recognized wrong 0.2mm apart, shit happens) greater distances gives
more errors,

Marek T.

unread,
Sep 12, 2017, 12:34:01 PM9/12/17
to OpenPnP
Coming to conclusion that I only need a hammer to "create" some misalignment or find worse belts and it will work better than on good machine ;)
It's like story with my car which lost an gearbox oil when left in garrage and explained by service that when Mercedes is normally used then everything ok, but when left unused sometimes destroys due to some not clicking valves (which click while driving). Before that I was sure that cars destroys while driving only and that well calibrated machines works better :-) :-).

Seriousli, don't understand to much from your code analyze of course - probably Michael or Jason will know. On shortcuts: to improve it, is there something to change in code by me (if you tell mewhat-where) or by soft gurus here? Or it is best universal as it is now?
btw: I found that when set board rotation to 0 in the table then fidus finding works better. When rotation is updated and I press check-fidu gui icon again - it works visible worse.

SMdude

unread,
Sep 12, 2017, 8:13:54 PM9/12/17
to OpenPnP
Your best bet is to first figure or how much you are out in X and Y individually(see how far you have to jog the machine to get is centred on the fiducial) and then scale your component xy coordinates in excel.

Or depending on the size of the passives you can probably live with most of the placements and just reposition any ic's that need it.
The other thing that can throw things out a bit is the alignment of the solder mask, especially of you have pads that are part of a copper pour.

Once you have the origin board set right, then rest the placement on the top right board, you will Probably have to trim your board size a little bit to get the last board In the panel in the right position. Then everything else in between should be good.

And I wonder, when you have a shrunk board, does the board house shrink the stencil accordingly?

Cri S

unread,
Sep 12, 2017, 10:14:26 PM9/12/17
to ope...@googlegroups.com
can you place a graph paper with 3-5mm size or similar and make a picture
of it. Seeing the video i have a suspect, having that picture i can
say if the suspect
could be true or it was wrong.

Cheers
Cri.s
>>> email to openpnp+u...@googlegroups.com <javascript:>.
>>> To post to this group, send email to ope...@googlegroups.com
>>> <javascript:>.
>>> <https://groups.google.com/d/msgid/openpnp/f09b143b-900f-4764-8a22-76f06735d822%40googlegroups.com?utm_medium=email&utm_source=footer>
>>> .
>>> For more options, visit https://groups.google.com/d/optout.
>>>
>>
>
> --
> You received this message because you are subscribed to the Google Groups
> "OpenPnP" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to openpnp+u...@googlegroups.com.
> To post to this group, send email to ope...@googlegroups.com.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/openpnp/069132a9-9b46-47ea-8e0b-5e1afae6d767%40googlegroups.com.

Marek T.

unread,
Sep 13, 2017, 10:23:05 AM9/13/17
to OpenPnP
Michael what do you mean as "And I wonder, when you have a shrunk board, does the board house shrink the stencil accordingly?" ??

Cri - I will provide tomorrow.

SMdude

unread,
Sep 13, 2017, 11:00:52 AM9/13/17
to OpenPnP
If the board is actually smaller than what it should be, when the stencil is made, is it made as per the original gerber, or do they compensate for the actual board if it is slightly smaller than the gerbers?

Technically, this board should be slightly smaller than the stencil.

Marek T.

unread,
Sep 13, 2017, 11:15:54 AM9/13/17
to OpenPnP
Hmm, you are right, never thought about this:-). Frankly speaking that the board may have other size than gerbers I have also discovered few days ago only (while making electronics almost 30 years)... But if difference board-to-gerber is ~0.05-0.1mm it's really hard to observe it looking on the printed paste. However I will pay attention for this tomorrow.

Jason von Nieda

unread,
Sep 13, 2017, 11:17:50 AM9/13/17
to OpenPnP
Hi Marek,

I am back from my trip and will be looking at this issue tonight to hopefully give you some tips.

Jason


--
You received this message because you are subscribed to the Google Groups "OpenPnP" group.
To unsubscribe from this group and stop receiving emails from it, send an email to openpnp+u...@googlegroups.com.
To post to this group, send email to ope...@googlegroups.com.
Message has been deleted

Marek T.

unread,
Sep 13, 2017, 1:29:29 PM9/13/17
to OpenPnP
Hi Jason,
Take your time, get rest.
Read what Cri and Michael said above about boards coordinates re-scaling and recognition the fiducials on wrong-sized boards. I'm not sure if my problems are because of this - but maybe. You will assess on yourself when see my captures and later discussion.

Jason von Nieda

unread,
Sep 13, 2017, 9:34:38 PM9/13/17
to ope...@googlegroups.com
Hi Marek,

Took a look the videos. In general it looks like your vision operations are pretty good. I don't think there is anything wrong with your pipeline. 

In general, when I see an issue like this, the cause is improprr steps/mm setup at large distances. For instance, your accuracy at 10mm moves might be good, but moving 100mm you might be off a bit. This is the single most common error that I see. I've documented how you can test it here: https://github.com/openpnp/openpnp/wiki/Setup-and-Calibration%3A-Steps-Per-Mm#testing-steps-per-mm

I know you've already run through setup, but I so suggest taking 2 minutes to run that test in both X and Y just to be sure. 

The next thing to check is the actual results of the fiducial finding. You can see the results in the images saved by the pipeline. See https://github.com/openpnp/openpnp/wiki/Fiducials#troubleshooting for how to find those images.

Take a look at the images with results in the name and see if they are well centered with a high score. A score of 1.0 is perfect. Lower than 0.8 is a problem. I suggest posting some of these images to us so we can see how they look.

Finally, if you've found that your boards do not match your CAD data, then that is a problem that OpenPnP cannot currently fix. In the future, I do want to be able to do automatic scaling based on the fiducial data but I've not started on that and it will require some pretty big updates to OpenPnP to support it. I do think it's important, though, and it will solve many problems. I've filed an issue for this: https://github.com/openpnp/openpnp/issues/648

The scaling issue has come up before, but I couldn't see a clean way to implement it. I do see a way to do that now and I think it would be relatively straightforward to add. And, as I noted in the ticket, it would help people who have less than perfect machines, as well.

So, for the time being, as others have said, it would be best to manually program the placements or to apply some scaling to your data outside of OpenPnP. Unfortunately that is the best solution for now. 

Jason




To unsubscribe from this group and stop receiving emails from it, send an email to openpnp+unsubscribe@googlegroups.com.

To post to this group, send email to ope...@googlegroups.com.

Marek T.

unread,
Sep 14, 2017, 11:03:24 AM9/14/17
to OpenPnP
Hi All

All clear about calibration. Was clear already before, I know it's base, and we spent really long time for hardware tuning.
Disappointing problems are source tools, I mean measuring tools for calibration. I have 3 calipers and each of them is other. When tuned till 0.01 with the one, then second one shows that 0.02-0.03mm is too much or too less. Also have few 3 graph-paper with 1x1mm squares. None of them is not real 1x1. When placed horizontaly have perfect x-scaling but y is incorrect 0.1 at 100mm, the paper rotated verticaly shows perfect Y but inaccuracy in X. One paper have wrong squerness left-to-right, the second right-to-left - it probably means I have squerness perfect so. Generaly, all that papers are good to make some drawings but not for callibration. The same as calipers if we say about 0.01 accuracy.

Finaly decided to use some known quality caliper and have effect as in files. Perfect in my oppinion.
https://drive.google.com/open?id=0B0fpYE7uPVHwZDNtcG1LUHpDRDg
https://drive.google.com/open?id=0B0fpYE7uPVHwX3N1NEhfY1BYMms

Fiducials positions updated with positions taken from pcb are recognized much better.
https://drive.google.com/open?id=0B0fpYE7uPVHwMk1IRVFRUVplbEk
Mainly some automated re-scalling would be really helpful!

Jason von Nieda

unread,
Sep 14, 2017, 11:08:16 AM9/14/17
to OpenPnP
Hi Marek,

I agree, your XY calibration is right on. Nice job!

And yes, automated scaling will definitely help here. I'm hoping to work on it soon. It's a feature I'm very interested in adding.

Jason


Marek T.

unread,
Sep 14, 2017, 11:44:47 AM9/14/17
to OpenPnP
It's good to hear that you are "very interrested", giving some chance for quick development ;)

Some picture from our today assembling. Every 0402 and chips done with Openpnp, bigger parts on still non-modified Philips. There are some not perfect placements (but better than done by Philips!) but mainly I'm really glad of it, what important - even if some parts are not absolutely perfect placed there is not any one shortcut or parts landed in out of the pads :-).

https://drive.google.com/open?id=0B0fpYE7uPVHwWkdySEpTNVM2cFE

Jason von Nieda

unread,
Sep 14, 2017, 11:46:19 AM9/14/17
to OpenPnP
That's awesome! I love seeing finished boards built with OpenPnP! :)

Jason


Tianxiao Xu

unread,
Sep 25, 2017, 11:15:17 AM9/25/17
to OpenPnP
Hi Jason,

To scale-up and scale-down according to the coordinates of fiducials is a lot of work.

I coded a program to scale/offset/rotate/Sort Gcode coordinates using Math.Net dll, but later I create these easy functions by myself.
The program is working on X, Y, Z, A, B.

Sorry, I don't know java, so I cannot help directly. But I can share some of my processes, Consider this a prompt for an open thread.



In my program, I get coordinates(X, Y, Z, A, B) from Gcode, which is similar to what we have in the board parts list(X, Y, Rot), and we have in GroupBox "Boards” (X, Y, Z, Rot.)
We can get the scale and rotation parameters after fiducial check.

In my program, I have a Richtextbox to load the original Gcode, and another Richtextbox to load the Gcode after offset/rotation/scale up or down.

So, why not add a tab after the "Pick and Place Tab" to store the actual position after fiducial check and calculation, and the program can work on the new coordinates from this tab, it might be easier.

The process could be:

1. Import the board  (Manual Operate)
2. get the board location (Manual Operate)
3. start fiducial check to get the coordinates of 2 fiducials  (Manual Operate)
4. After fiducial check, we can get the offset/rotate/scale parameters (Automatic/Background)
5. Get data from "Pick and Place Tab" calculate it use the offset/rotate/scale function and put the data into the new "Actual Postion Tab".  (Automatic/Background)
6. Optional to check the third fiducial to make sure everything is correct.  (Automatic)
7. Run the Pick and Place on the "Actual Position Tab". (Manual Operate)


This Actual Position Tab is the exact coordinates of the parts in the PnP system coordination system after home.
Since the process is still running according to the Tab data, maybe it could reduce your code change.

Every time we change the board coordinates or check the fiducial,  "Actual Position Tab" will be recalculated and updated. 
If we change a resistor (for example) position by the camera position, it will change both in "Actual Position Tab" (firstly) and  "Pick and Place Tab" (after calculation).
I believe it is pretty fast, in my program, with 4000+ lines of Gcode, I can get the result with a blink.

If you don't like the Tab Name, we can use "Board Position" to load the imported board file and "Pick and Place Tab" to be the actual position for PnP system to work with.
or any other names you like.

I'm not sure if my idea will reduce your time to work on the program, but I hope so.

Thanks,
Terry

Jason von Nieda

unread,
Sep 25, 2017, 8:44:54 PM9/25/17
to OpenPnP
Hi Terry,

I've been doing some work on this feature in https://github.com/openpnp/openpnp/issues/648. The basic idea is that if you have three fiducials available on a board the code will do scaling and shearing for you. 

I don't think there's a need for a new UI here. The modified coordinates aren't really useful outside of the particular run of the job, so I think it's better to just store this data internally and apply it as we go.

Jason


Tianxiao Xu

unread,
Sep 27, 2017, 10:05:00 AM9/27/17
to OpenPnP
Yes, I think checking three fiducials should be much accurate, great!
Reply all
Reply to author
Forward
0 new messages