We are using Java for our main software but interested in incorporating the detection of the reflective tape. This is something that I am sure that most teams don’t do.
Can you give us any Ideas ?
Thanks
Joe
We are using Java for our main software but interested in incorporating the detection of the reflective tape. This is something that I am sure that most teams don’t do.
Can you give us any Ideas ?
Thanks
Joe
You can use vision: https://wpilib.screenstepslive.com/s/currentCS/m/vision
You can also use limelight.
It is very much an iterative process. The screensteps are great information and do lead you through the process. Understanding the retroreflective tape and how your light source (and color) fit in and get processed is super key to taking it from being a near impossible task to being something that can definitely be accomplished. Once you get to a point of reliably detecting it, you’ll need to feed back some of that information into the other systems of the robot to automate its travel, turns, and actions.
We have used a variety of methods over the years and are currently using a jeVois camera. But in all cases when working with retro-reflective tape, the big trick is to lower your camera exposure way down, and use a nice bright led ring. The resulting image into the camera will pretty much just be the targets, with a bit of color filtering (make sure you are not over saturating the image with your ring in which case it will read “white” rather than the color of your leds (normally green)).
Now you can do a bit of analysis, based on the size of the targets you can estimate distance, and their position left to right get a pretty good idea of your relative angle. With a known height and bit of geometry everything you want to know is not too hard to calculate. Feel free to ask if any of this is confusing.
Of course that is often the easiest part – the last step is to do something amazing with your new found information. If you try to drive the robot based on this information, be sure to pay close attention to camera latency (the amount of time from when the image was captured, until you calculate the result).