The goal of this project is to use reinforcement learning in simulation to teach a behavior capable of hitting moving targets. More complex ideas could be learned by the robot as well. As long as the simulation is representative of real-world conditions and the reward policy is appropriate for the goal, then the robot should be able to execute the task.
Using the OpenAI gym toolkit, I have been able to build a simple simulation for the robot. In it’s current form, the simulation assumes a straight shot from the nerf gun against a wall at 10 meters distance. It currently trains for red circular targets. The code is found here.
Using both the ros_control and rosserial packages, I have set this robot up to be ros compatible. The ROS code is found here.