Log in

View Full Version : Simple Crosshair


Luiz12
14-02-2012, 02:26
Hi I am a rookie programmer who barely started using labview. I basically finished all my controls including the kinect so I was wondering if it was possible to add a simple + crosshair to the video camera feed. I have the camera directly to the router not cRio. So is there a way I can do this without to much complication.

its da PAT!!!
14-02-2012, 02:59
The simple way is to place tape on on the screen. When you open the driver user, the drive station will default to the same place every time.

Luiz12
14-02-2012, 03:07
Is there a way I can program something..

Greg McKaskle
14-02-2012, 07:54
The first step is to open the Getting Started Window of LabVIEW. It is up when you first launch and it is available from the View menu. Create a project based on the Dashboard template.

When built, that code will create the same thing as the initial installation.

There are a couple ways to add crosshairs. One, go to the panel, right click in open space and choose lines from the decoration palette.Place and size the lines, color them if you need to. You could use rectangles if you wanted thicker lines.

The second approach is to add the lines into the image programmatically. Go to the diagram and find the loop near the top that Reads the MJPG and the next step it does is clear the overlays. Instead, you want to right click on the Clear and choose Replace Overlay and choose the Line function. Copy it and hook up another. Hook up the parameter values to describe the line endpoints and color.

To test it, stop the other dashboard EXE and run your VI using the run arrow. To build it into an EXE, you go to the bottom of the project window, open the Build Specifications, and right click and Build. The resulting dialog will tell you where the EXE was saved. Copy it to the Program Files/FRC Driver Station folder and you are good to go. The DS will launch yours next time it starts up.

Greg McKaskle

ratdude747
14-02-2012, 08:49
The second approach is to add the lines into the image programmatically. Go to the diagram and find the loop near the top that Reads the MJPG and the next step it does is clear the overlays. Instead, you want to right click on the Clear and choose Replace Overlay and choose the Line function. Copy it and hook up another. Hook up the parameter values to describe the line endpoints and color.

To test it, stop the other dashboard EXE and run your VI using the run arrow. To build it into an EXE, you go to the bottom of the project window, open the Build Specifications, and right click and Build. The resulting dialog will tell you where the EXE was saved. Copy it to the Program Files/FRC Driver Station folder and you are good to go. The DS will launch yours next time it starts up.

Greg McKaskle


I did A similar technique last year.

what I did was I used the "draw rectangle" overlay block twice, one for each crosshair. I did it this way so I could adjust the thickness...

It also was linked to the tilt servo position so it would automatically rotate the image when the camera passed 90 degrees... it also changed the crosshairs to a set of parallel lines that could be used to line up with the minibot pole.

wireties
14-02-2012, 08:56
You know the Kinect is only used during the first 15 seconds of the match, correct? I apologize if that seems a silly question.

HTH

Alan Anderson
14-02-2012, 13:06
You know the Kinect is only used during the first 15 seconds of the match, correct? I apologize if that seems a silly question.

It does seem very silly. I think you posted in the wrong thread.

hsekhon27
14-02-2012, 19:08
The first step is to open the Getting Started Window of LabVIEW. It is up when you first launch and it is available from the View menu. Create a project based on the Dashboard template.

When built, that code will create the same thing as the initial installation.

There are a couple ways to add crosshairs. One, go to the panel, right click in open space and choose lines from the decoration palette.Place and size the lines, color them if you need to. You could use rectangles if you wanted thicker lines.

Greg McKaskle

After I create a dashboard project, how do I deploy it?

Rogue Leader
14-02-2012, 19:34
After I create a dashboard project, how do I deploy it?

If I'm correct, you would open a program called the "FRC Driver's Station" once your computer is connected to the robot, Once that's open you would also launch a separate program called "FRC Dashboard," although I think the Driver's Station would open up both.Then launch the cRIO Robot Project, then deploy it (from RobotMain). You need to launch these in order to run the robot, so I hope I helped you in some way.

Mark McLeod
14-02-2012, 21:01
After I create a dashboard project, how do I deploy it?

From the Project Explorer windowBuild Specifications -> FRC PC Dashboard right-click and choose Build

It's going to put the new Dashboard in the project folder under builds. Something like:My Documents\LabVIEW Data\builds\FRC Dashboard Project\FRC PC Dashboard
You can test it by running it from there, but for competition it'll need to get copied to the folder C:\Program File\FRC Dashboard

There are several common variations:

You can change the Destination Directory under Properties for the build specification. That will automatically put your Dashboard in the FRC Dashboard folder.
You can change where the Driver Station looks for the Dashboard program. That's defined in an ASCII file located at: C:\Users\Public\Documents\FRC\FRC DS Data Storage.ini (shouldn't be edited while the Driver Station app is running).

MAldridge
14-02-2012, 21:28
assuming you do dev on a separate computer, you just need to copy the three files that the build will spit out into the dashboard folder on your driver station.

If memory servers, its just in the x86 programs folder.

hsekhon27
14-02-2012, 22:58
Thank you!!

Gary Bonner
22-02-2012, 23:07
Is there a way to disable the snap-to-grid when drawing lines on the panel?

Greg McKaskle
23-02-2012, 08:34
Hit the <g> key to toggle it

Greg McKaskle

CodeMonkey
23-02-2012, 11:04
I did A similar technique last year.

what I did was I used the "draw rectangle" overlay block twice, one for each crosshair. I did it this way so I could adjust the thickness...

It also was linked to the tilt servo position so it would automatically rotate the image when the camera passed 90 degrees... it also changed the crosshairs to a set of parallel lines that could be used to line up with the minibot pole.

I was wondering, how did you get the lines to change from crosshairs to parallel.

techkid86
08-03-2012, 23:14
i would like to use the drawrect function, but i am unsure where it is. i found a drawrect int value under constants for squawk, but i am not sure how it helps.

dvanvoorst
09-03-2012, 22:55
I'm feeling really stupid, but where do I find the option to draw the rectangles. I have the Dashboard Main.vi Front Panel open, and I right-click in an open area and i get a Controls pop-up, but I don't see any drawing tools there or anywhere else.
I haven't used Labview at all - but we'd really like crosshairs!
Thanks for any help you may be able to give me.
Dale

Greg McKaskle
10-03-2012, 07:34
If you are on the panel, you will find the rectangle and lines in the decoration palette. If you are running on a pretty fast computer, this will be fine, but a more efficient method is available if programmed on the diagram. Give the decoration a try and post again if this isn't fast enough.

Greg Mckaskle

dvanvoorst
10-03-2012, 07:52
Hi Greg,
The problem is that I don't see anything called a decoration pallette. The closest thing I found was under Vision, Machine Controls, IMAQ Rectangle. But when I added that it just gave me a box where I could enter a start and end coordinates. I didn't see how I could just draw a box, or show the box that I specified by coordinates.
Remember that this is literally the first time I opened Labview. :-)
You mentioned a speed issue too. Is the "decoration" applied to each frame of the video feed? We'll be running this on the standard Classmate, so that could be an issue.
If I can't get this to work, there is always the rubber bands around the screen option.
Thanks for the time you give to all of us!
Dale

Greg McKaskle
10-03-2012, 14:33
In the upper right of the palette is a search button. Try searching for decoration or rectangle.

Greg Mckaskle

dvanvoorst
10-03-2012, 19:05
Ok, I got it now by searching for decoration - thanks!
My only remaining issue is that I'm having trouble keeping the lines in front of the image. In the designed I chose the option to move the line to the front - and it stays for a second and goes behind the image. I have it sticking out above the image area, so I can still see it there - so it's actually workable this way.
Thanks for the help.
Dale