As I have posted in the past, we have developed some Java programming tutorials to help our new students learn to program our robots. We have a simple MiniBot tutorial which allows the student to program some small 3d printed robots that we designed. This allows them to learn about a number aspects including the use of the wpilib Commands library as well as motor control including PID speed control.
This year we have added a new 3d printed NerfBot which extends the learning. This new robot has a nerf ball shooter mounted on a turret with camera targeting. In addition, the tutorial includes an introduction to path following using a Pure Pursuit algorithm.
We have included downloads for all of the source code for these projects as well as the source code for the image processing that runs on the Raspberry Pi which we use for camera targeting.
This can all be found at: http://programming.sdarobotics.org