Hi, I am currently working on designing and building a robot that can detect a baseball traveling at it between 40 and 60 mph, and then swing a baseball bat to hit the baseball. I am having some trouble finding a good range finder sensor to use though, and I am hoping someone has some ideas for me. I need the sensor to start track from at least 20 feet away, and I want to get at least 3 readings from the sensor, so I will need one that takes readings quickly. Thanks in advance!
Hi,
Are you looking to just detect the ball, measure its speed, or measure its speed and position? If you’re looking to measure the speed and position, to be able to adjust the swing of the bat to properly hit the ball, this will be a pretty big task.
By our calculations, your ball will take about a quarter second to travel the 20 feet and to have at least 3 samples, you will need a sensor that’s able to make at least 16 readings per second. There are not many distance sensors that allow those speeds.
If you are looking to track speed and position, we would recommend a setup two cameras: one in the catcher’s position looking toward the pitcher, giving you X-Y position coordinates, and another viewing the ball from the side, giving you Y-Z position and speed (where Z is the dimension that the ball is traveling).
Regular cameras operate at 30 fps which would actually give you 6 samples, so that should be sufficient. The more difficult part would be to do the machine vision processing that finds the ball in the image, calculates its coordinates and speed, and sends that information to the robotic batter. This would require a powerful cluster of computers: a high-end retail desktop computer might be able to do 2-5 fps of processing, depending on the algorithms.
If your ball is traveling at a slower speed, perhaps 20-30 mph, the problem would become easier.
Hope this helps and let us know if you have any other questions,