rmod (ver2) help please

mfallavol
Posts: 2
Joined: Mon Apr 18, 2016 7:50 pm

rmod (ver2) help please

Post by mfallavol »

I'm still really struggling with software issues with the standard release so trying rmod to see if it works any better for us. The problem is that the learning curve is really, really steep to the point that we're getting vrey frustrated. It doesn't appear that anyone has documented this version at all which makes things even more difficult. If I'm wrong about that, someone point me in the right direction.

Could someone please take a few minutes and give me a brief summary of any / all of the following:
1. The order for basic calibration of the system. We have a stock kit from Juha so no extra cameras, no vacuum sensor, no feeders etc. I have no idea what the "calib" buttons under the up and down camera are attempting to do. I calibrated pretty much using Juha's manual techniques and the system seems to be able to move correctly. I tried using the automatic paper calibration but "Calibrate XY mm/rev" doesn't seem to do anything and "Calibrate skew" fails in an endless loop of retries.
2. How to properly setup a tape. We tried setting up a single paper tape of caps and it almost worked except that all rotations were off by 90-degrees. We tried changing the part orientation in the tape setup but that didn't seem to have any effect. There seem to be many options for defining tapes and its hard to know what does what. For instance, what are the meanings of the various "Tape orientation" settings and if you set a first and last part location, doesn't the system determine tape orientation from that information? And, what does "Calibrate tape via holes" do and how is it different from setting first and last? Do you have to do things in a certain order in order for it to work right?

While on the subject of tapes, I couldn't seem to get the software to reset the next component location. I tried placing a cap and it didn't pickup so I wanted to reset the next location back to the prior but couldn't find anyway of doing so. I reset the first hole but when I told it to go to the component position it was on the 2nd component. There must be a way to reset next somewhere.

Hopefully with some help we can get through these issues and on to new ones.

Thanks.

-- Mike
Pixopax
Posts: 122
Joined: Tue Feb 02, 2016 4:16 pm

Re: rmod (ver2) help please

Post by Pixopax »

To be honest, the rmod2-version from git does not work stable, you will not be able to place boards reliably with that. I changed a whole lot of code to make it usable for me, but that is a tailored version, I cannot even make it run on an other pc, it just runs out of visual studio, standalone it does not run, several errors with opencv-dlls etc.
So I start my Visual studo and start the software from there, that works for me, but it is crap.

The calibration is pretty easy, just follow the steps in the Box "Needle"
Then setup the camery mmperpixel and the positions on the right side of the window.
The automatic calibrations do not work, at least not for me.

The "Calibrate tape via holes" has a serious bug, it calculates s wrong part angle.
You can use first hole / last hole, that works, but it counts the parts between first and last hole, if you are out of parts you need to recalibrate that tape.
Also, it does not know 12 or 16mm tapes.

I use my altered version until openpnp uses a pressure sensor for detecting suction on the needle, then I will switch to openpnp. Without pressure sensor my placements where not good enough, missing parts etc.
What is really bad in all these versions is the hole detection, it is just not reliable, and only works good for paper tapes. I always have issues with black tapes, transparent tapes are no good either, I paint them with a black marker to make it better.
Openpnp does that really good.
mawa
Posts: 139
Joined: Wed Jun 10, 2015 1:23 pm
Location: Near Hamburg, Germany

Re: rmod (ver2) help please

Post by mawa »

Pixopax wrote: Openpnp does that really good.
Getting the right visual handling on tapes and components is not easy.

So please tell us, what and how Openpnp does it better so that I and other liteplacer software developers can do it better too!
best regards
Manfred
vonnieda
Posts: 30
Joined: Sun Jan 03, 2016 7:05 pm

Re: rmod (ver2) help please

Post by vonnieda »

mawa wrote:
Pixopax wrote: Openpnp does that really good.
Getting the right visual handling on tapes and components is not easy.

So please tell us, what and how Openpnp does it better so that I and other liteplacer software developers can do it better too!
Here is how OpenPnP does it:
https://github.com/openpnp/openpnp/blob ... .java#L240

It's nothing more than a gaussian blur with hough circle detection. I use the size of the holes +- 10% as inputs to hough min and max radius.

If pixopax is referring to the feeder setup routine, that is a bit more complex. It uses RANSAC line fitting to find the line created by the holes in the tape. That is here:
https://github.com/openpnp/openpnp/blob ... .java#L479

Jason
mawa
Posts: 139
Joined: Wed Jun 10, 2015 1:23 pm
Location: Near Hamburg, Germany

Re: rmod (ver2) help please

Post by mawa »

Thank you Jason,

for the information.

Let's see how we can bring both development activities together.

Jason, do you have any suggestions how .net c# developers can tap the vision libraries you are using?

openCV and aForge are just the first libraries Juha has chosen.

How can we use vision.FluentCv in a VS .Net c# IDE? Because when I google fluentCV I get a lot of nice advice to polish my CV and resume ;-)
best regards
Manfred
vonnieda
Posts: 30
Joined: Sun Jan 03, 2016 7:05 pm

Re: rmod (ver2) help please

Post by vonnieda »

mawa wrote:Thank you Jason,

for the information.

Let's see how we can bring both development activities together.

Jason, do you have any suggestions how .net c# developers can tap the vision libraries you are using?

openCV and aForge are just the first libraries Juha has chosen.

How can we use vision.FluentCv in a VS .Net c# IDE? Because when I google fluentCV I get a lot of nice advice to polish my CV and resume ;-)
Hi Mawa,

FluentCv is just the name of some simple OpenCV wrappers I wrote for OpenPnP. Under the covers it's all just pretty basic OpenCV. The code for FluentCv is here:

https://github.com/openpnp/openpnp/blob ... entCv.java

As you can see, it's all just very simple functions that primarily wrap the OpenCV library in a more fluent interface.

I don't know much about the LitePlacer software, but if it has access to OpenCV it should be very easy to port the few functions I use in FluentCv over to C#.

Jason
mawa
Posts: 139
Joined: Wed Jun 10, 2015 1:23 pm
Location: Near Hamburg, Germany

Re: rmod (ver2) help please

Post by mawa »

Thank you Jason, :D

That will be a great help. I was not sure where fluentCV originated from.

Yes, Liteplacer uses oPenCV and I think it will be possible to implement your functions.
best regards
Manfred
Pixopax
Posts: 122
Joined: Tue Feb 02, 2016 4:16 pm

Re: rmod (ver2) help please

Post by Pixopax »

Jason, your Idea with blurring the image was great, I just added a blur-filter to my processing pipeline, and now most problems with hole detection are gone!
@Juku, you should add a blur filter to the standard version too, it really make detection of black tapes better.

The rmod-release also has a part angle detection, but it does not use a filter for that, leading to no results, so its useless.
I managed to change the code of my version so it detects the part via rectangle detection, now QFNs and SOT223 are detected, measured, and placed 100% exact :D It uses the "components" image filter which can be changed so it detects the part, but it does not work for all parts, shiny metal parts are not detected clearly. But normal black parts in black tapes are detected.

You need to change Tapeclass.cs, there is a function "GetNextComponentPartLocation"

further down you will find this, put the 2 lines there as visible here:

Code: Select all

            //------------------- PART SPECIFIC LOGIC GOES HERE --------------------//
            if (tapeObj.PartType == "QFN") {
                MainForm.DisplayText("USING ENHANCE PART PICKUP", Color.HotPink);
                if (!MainForm.Cnc.CNC_XY(targetLocation)) return null;
// setup view
MainForm.cameraView.SetDownCameraFunctionSet("Components");
Global.DoBackgroundWork(100);

Code: Select all

                //SetCurrentTapeMeasurement(tapeObj.TapeType);
                MainForm.cameraView.downSettings.FindRectangles = true;

                // MainForm.cameraView.downVideoProcessing.FindRectangles = true;
                // move closer and get exact coordinates plus rotation
                var rect = (Shapes.Rectangle) MainForm.GoToClosestThing(Shapes.ShapeTypes.Rectangle, 1.5, .025);

                if (rect == null) {
                    MainForm.cameraView.DownCameraReset();
                    return null;
                }
                Global.DoBackgroundWork(500);
                var rectAngle = rect.AngleOffsetFrom90();
                MainForm.DisplayText("Angle:"+rectAngle, Color.HotPink);

                targetLocation = rect.ToPartLocation();
                targetLocation.A = tapeObj.OriginalPartOrientationVector.ToDegrees() + rectAngle;

                MainForm.cameraView.DownCameraReset();
            }
Then you can change a tape in type "QFN" and set the filter "Components" so that the rectangle detection works.
Attachments
partangle.jpg
partangle.jpg (33.19 KiB) Viewed 6693 times
Pixopax
Posts: 122
Joined: Tue Feb 02, 2016 4:16 pm

Re: rmod (ver2) help please

Post by Pixopax »

Jason, I saw that the opencv gaussian blur function makes my framerate go down very strong, do you know if that is opencv-related?
I have a very fast computer, but as soon as I use gaussian blur I only have a fps of 1-2 frames / second left.
JuKu
Site Admin
Posts: 1114
Joined: Thu Feb 14, 2013 3:06 pm
Location: Tampere, Finland
Contact:

Re: rmod (ver2) help please

Post by JuKu »

It never occurred to me that blurring the image might make the measurement more accurate. But as noted, heavy algorithms make the vision system very slow. For black tapes, I use white strip under the holes and for white, black background.
Post Reply