Does anybody know if I can add an overlay to the view from the camera (Microsoft LifeCam) in driver station so that we can easily line up our robot with the alignment lines on the field? Something like 2 red lines that we should try to make parallel to both sides of the alignment lines or maybe a crosshair.
Do you mean a physical overlay or a virtual one? I’ve seen others use a simple clear plexiglass cover with alignment marks on it. It’s quick, simple, and shouldn’t break down on you.
Ideally virtual. Worst case we can put some tape on the screen but virtual is preferable.
We’ve done a few variations from drawing simple lines to some data values in a GRIP pipeline if you’re using OpenCV. (I think we had to code it manually, I don’t think there’s a GRIP stage in the UI tho.) It works, takes a few ms extra in the pipeline (more for text, less for just lines) and works just fine.
If you’re just using CameraServer, I think you’d have to extend it quite a bit to do that, might not be worth it.
Our drivers put a piece of tape on the laptop monitor in 2017 to line up with the peg when placing gears. It worked magnificently.
So the camera view depends on the Dashboard that you are using not the Driver station. If you are using the LabVIEW dashboard you can overlay a line onto it pretty simply. If that is what you really want let us know and we can give you more specifics on it
In SmartDashboard, you could take a transparent image and put it anywhere on the dashboard, even over the camera. I don’t know if it works in ShuffleBoard though.
We found today that the Axis cameras can have an image overlaid on the camera itself, so the streamed video will have it.
Wouldn’t work in Shuffleboard, but you might be able to create your own custom widget that adds an overlay image/lines.
The shuffleboard camera widget already places a crosshair over the image. It can be configured from the dashboard or from robot code using the shuffleboard API.
Okay so you will want to make a custom dashboard.
Go to Loop 2 and there is a note that says “Here is where you would annotate, possibly process, and display the image.” Add a IMAQ Overlay Line.vi in that case. You will then need to fill in a start and an endpoint on where you want the line. Feel free to PM me if you need a more detailed explanation
I can’t speak to USB cameras like yours (though I do know there’s a way to do it in Labview by editing the custom dashboard), but if you use an IP camera, you can take the video feed and run it through a program like OBS and put any kind of overlay you want (even overlapping other video feeds or windows).
@SamTax I think there are multiple ways of doing this.
Let us know your results.
I’ve always thought the simplest solution was a clear page protector over the screen, some masking take on the edges, and a sharpie.
For some reason the screen capture did not catch those , so I had to bypass that first suggestion
Out team uses an OpenCV pipline in order to do our vision processing so we just implment the overlay within the pipeline.
Here is a link to easy to use python pipline one of our members created. https://github.com/ChemicalDevelopment/vpl