SOFTWARE DESIGN INNOVATION: TO CATCH A BALL JOSEPH MARTIN IT TAKES A TEAM • Building a robot requires skills across many disciplines • 6 weeks isn’t very much time • Creating a robot requires lots of experience; more experienced members must share their experience with newer members THE VISION CO-PROCESSORS 2x BeagleBone Black, each with a 1GHz ARM Cortex A8 CPU USB ports for USB cameras Ethernet ports for communication with cRIO Convenient 5v Power Connections Custom case to easily mount both BeagleBones LOCATING THE BALL WITH DUAL HISTOGRAM BACKPROJECTION Original image, straight from the camera. For the purpose of finding the ball, it is converted to the HSV colorspace. Binary image that is a combination of figures b and c. Highlighted in green is the contour that is determined to most likely be the ball. a b d c 𝑏𝑖𝑛𝑎𝑟𝑦𝑖,𝑗 255, = 0, 𝑡𝑎𝑟𝑔𝑒𝑡𝑖,𝑗 > 𝑘1 ∗ 𝑏𝑎𝑐𝑘𝑔𝑟𝑜𝑢𝑛𝑑𝑖,𝑗 + 𝑘2 𝑡𝑎𝑟𝑔𝑒𝑡𝑖,𝑗 ≤ 𝑘1 ∗ 𝑏𝑎𝑐𝑘𝑔𝑟𝑜𝑢𝑛𝑑𝑖,𝑗 + 𝑘2 Histogram backprojection, based on a histogram of the ball. Bright where colors closely match those of the ball from calibration images. Histogram backprojection, based on a histogram of the background. Bright where colors closely match those in the background in calibration images. CATCHING THE BALL USING CHAPMAN’S OBSERVATION Fig 2 tan 𝜃 Fig 1 Adapted from Chapman’s 1968 paper, Catching a Baseball 𝜃′ 𝑡𝑖𝑚𝑒 B 𝜑 A tan 𝜃 = 𝐶 ∗ 𝑡 𝑑 tan 𝜃 = 𝐶 𝑑𝑡 𝑑2 tan 𝜃 = 0 𝑑𝑡 2 tan 𝜃′ = 𝑥/𝑓 𝜃 = 𝜑 + 𝜃′ tan 𝜃 = tan(𝜑 + 𝜃′) tan 𝜑 + tan 𝜃′ = 1 − tan 𝜑 tan 𝜃′ tan 𝜑 + 𝑥/𝑓 tan 𝜃 = 1 − (𝑥/𝑓) tan 𝜑