I am currently looking at making a smart cricket ball to track the ball in 3D space whilst also providing key metrics like velocity, spin rate, trajectory, release point, delivery tracking and pitch map.
I was looking at 9 DoF board however I have absolutely no idea where to start or what IMU board would work best.
Hoping to make this as easy as possible. Once I have the correct board for the task, then I will just need the correct battery/charging option.
Any advice you guys can offer or direction to point me would be greatly appreciated.
Hi Greg, Welcome to the forum
We had someone submit a project recently that was tracking a ping pong paddle with an IMU and training a neural network to analyse their play. That project should be published soon so keep an eye out for it, it’s super impressive!
The challenge to tracking a ball is going to be having it behave like a ball (same weight, density, etc.) but still having it robust enough to hit with a cricket bat without breaking.
I assume the current ball analysis that is done on the TV is using camera tracking and image recognition techniques, it may be worth looking into how this is already done as it might be far easier and still allow you to use a standard ball.
If you are keen to build this all into a ball we are happy to offer advice, but this will be the ultimate test of circuit durability if there ever was one!
I will keep my eye out for the finished project.
TBH for the moment I am aiming to use this ball just as a training aid. So it won’t be hit with a cricket bat. It will just need to withstand the forces of bouncing and being caught by a wicket keeper.
In regards to the ball weight and density I figure that is something I can have a play around with in the future. Currently the biggest issue I have is regarding the technical side of the IMU, processing the raw data and actually being able to create a 3D tracking of the ball.
Lots and Lots of cameras and I imagine some pretty sophisticated (read expensive) software and hardware I would think
Golf pros these days use a device to analyse spin, trajectory etc too
I’d agree a lot of that software would be cutting edge and pretty pricey, however, I am seeing more and more open-source image recognition libraries becoming available that can be run effectively on consumer-grade hardware. One of our staff members @Tim has recently posted tutorials on using the Raspberry Pi 4 for facial and object recognition.
A cricket ball is going to be moving pretty fast so hardware like a Jetson Nano may be more suitable for high FPS image recognition.
If you wanted to analyse flight and spin etc without being in a cricket match situation this would be an interesting exercise. Maybe helped along with some markings on the ball to help identify spin. In a match situation I think for the hobbyist would be very difficult but I won’t say impossible. After all, the position we are in to-day came about through great ideas, research and experimentation. Not to mention the inquisitive nature of the human mind.
Interesting project. I will follow closely.
Pete from Sparkfun made a similar project (Behold: The SparkBowl - News - SparkFun Electronics).
If you used a combination of his project and the cameras you might be able to make it work well.
I noticed Mark Rober made an awesome project that tracked a dart and then moved the dart board to ensure that the dart landed in the bullseye every time. I think he used infared cameras to track the dart. (Automatic Bullseye, MOVING DARTBOARD - YouTube). There is a link in the description to the software.
Welcome to the forum!
This sounds immense, I’m keen to see where you go with this project!
In the signal portion of the project using an IMU might have some issues with aliasing and saturation of the sensor itself.
This is an interesting modelling problem as well. Tracking any object in space with a limited input (say only velocity or acceleration) and deriving the position from that can be interesting. And any rotation even more so!
Here’s a link to a simple 1-D ball’s simulation on MatLab: Simulation of a Bouncing Ball - MATLAB & Simulink
Don’t let this discourage you though!
Taking the plots from the IMU and doing some conversion to try and track the velocity and acceleration of the ball would be a great first step. Then deriving the release point and trying to deduce the
A combination of the MPU6050 and LIS331 might be a good start (stock up though since the boards will be subject to some pretty high forces when they hit the ground or net and might break from repeated use).
Using one of the camera tracking mentioned below would be perfect for trajectory tracking and speed. With Mark Rober’s board, they were in a very controlled environment with little light pollution and other disturbances.
If it was to be hit with a bat...
A sensor such as the I2C H3LIS200DL is capable of measuring up to 100g of acceleration.
From this page, they mention that it’s in the realm of 800+ g’s. Let’s say the PCB held up in that instant there will be a massive spike in acceleration and unless the sensor is polled on that peak the data will be lost in the form of the signal being saturated - it will max out at the sensors maximum rating and if the poll isn’t aligned with the peak of the acceleration it will be lost to aliasing