Carl Gets Close (to finding his way home)
Recently, Carl, my RaspberryPi 3B / GoPiGo3 robot, was able to spot his recharge dock and navigate to a "second base" staging point using his PiCamera, OpenCV, a priori Reasoning, his sector scan Laser Time of Flight distance sensor, some "haven't used it in 50 years" geometry and trigonometry, in Python3, with math from the numpy package.
Here is the masked image on the left, and the source image at the bottom
This is the log he is spitting out as he searches, spots, and then navigates to the staging point:
This latest achievement occured when I got tired after reaching chapter eight of "Practical Python and OpenCV" by Adrian Rosebrock. ( https://www.pyimagesearch.com/practical-python-opencv/ )
I felt like I wanted to try some of it out, so I set out to recognize the green LEDs of the recharge dock. This should be easy, no?
No! Carl was just as likely to take a liking to my wife's Crocs as he was to his dock. That is the front my wife's green shoe on the left of the image below.
With the addition of a few heuristics (LEDs are small, if there are two they will be close together roughly horizontal, there are at max two, and they are low to the floor) Carl seems to be able to resist his sudden infatuation with my wife's shoes.
Next up is to accurately drive to "third base" using the "CARL and Arrow" sign behind the dock.
He already knows how to "drive home" from "third base". Right now he cycles between "third base" and "home" quite reliably:
BTW, the code for findDock.py is at https://github.com/slowrunner/Carl/blob/master/Projects/FindDock/findDock.py