The Nimbus lab spent some time this fall getting a drone to catch a ball. The three main components we focused on to solve this problem were as follows:
- Tracking and predicting where the ball will go.
- This was done by calculating the velocity of the ball in the x,y and z-direction. These velocities and a drag modelled from previous throws were put into the equations of motion, to get an accurate final location for the ball.
- Getting the drone to move in that direction aggressively.
- This was done by changing Nimbus AscTecs’ PID controller parameters.
- Making sure the drone recovers from its aggressive movement safely.
- This was done by monitoring the drones’ current location and target location. A ROS node would then reset the PID parameters when the distance between the two was within a certain range.
The initial version of our drone used a lightweight wood, known as balsa wood (which you find in your local hobby shops) to protect the drone from the ball. The next version of this drone will be made out of carbon fiber and custom 3D printed lightweight joints.
The first throw the drone is able to catch the ball and hold onto it.
The second throw the drone is slightly off. The drone notices the ball is slipping and tries to recover, however, is not able to.