If you run the attached program HasBarrelTest.py and give the robot a barrel, you'll see that robot.has_any_barrel() is very sensitive to lighting conditions. If the robot is facing a window, the barrel may be too bright to detect; holding your hand over the barrel to shade it will cause it to be detected. On the other hand, if the robot is in a shady area, the barrel may be too dim to detect; turning on your phone's flashlight and illuminating the barrel may cause it to be detected. In other conditions the barrel detection flickers on and off repeatedly due to the lighting.
The problem applies not just to has_any_barrel() but to the aivision system in general. Barrel detection is not robust. Unless the lighting conditions are exactly right, barrel detection is intermittent. This is causing problems for programs built on vex-aim-tools, which maintains a world map based on what the vision system is reporting. It's also a big problem for Calypso.
HasBarrelTest.py
If you run the attached program
HasBarrelTest.pyand give the robot a barrel, you'll see thatrobot.has_any_barrel()is very sensitive to lighting conditions. If the robot is facing a window, the barrel may be too bright to detect; holding your hand over the barrel to shade it will cause it to be detected. On the other hand, if the robot is in a shady area, the barrel may be too dim to detect; turning on your phone's flashlight and illuminating the barrel may cause it to be detected. In other conditions the barrel detection flickers on and off repeatedly due to the lighting.The problem applies not just to has_any_barrel() but to the aivision system in general. Barrel detection is not robust. Unless the lighting conditions are exactly right, barrel detection is intermittent. This is causing problems for programs built on vex-aim-tools, which maintains a world map based on what the vision system is reporting. It's also a big problem for Calypso.
HasBarrelTest.py