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
rmod (ver2) help please
Re: rmod (ver2) help please
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.
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.
Re: rmod (ver2) help please
Getting the right visual handling on tapes and components is not easy.Pixopax wrote: Openpnp does that really good.
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
Manfred
Re: rmod (ver2) help please
Here is how OpenPnP does it:mawa wrote:Getting the right visual handling on tapes and components is not easy.Pixopax wrote: Openpnp does that really good.
So please tell us, what and how Openpnp does it better so that I and other liteplacer software developers can do it better too!
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
Re: rmod (ver2) help please
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
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
Manfred
Re: rmod (ver2) help please
Hi Mawa,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
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
Re: rmod (ver2) help please
Thank you Jason,
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.
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
Manfred
Re: rmod (ver2) help please
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 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:
// setup view
MainForm.cameraView.SetDownCameraFunctionSet("Components");
Global.DoBackgroundWork(100);
Then you can change a tape in type "QFN" and set the filter "Components" so that the rectangle detection works.
@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 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;
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();
}
- Attachments
-
- partangle.jpg (33.19 KiB) Viewed 6693 times
Re: rmod (ver2) help please
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.
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.
Re: rmod (ver2) help please
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.