The goal for this project was to make something that was fun, but also challenging, and hits all the areas of my competencies. In addition, I want it to be a platform for exploring some of my interests, like machine learning and reinforcement learning.
What are the goals?
- Goal 1, top priority. I want this turret to be able to shoot water at certain categories of objects, like dogs, cats, or people.
- Goal 2. I want this to be able to optimize and learning how to target an object faster. How should that be characterized? Most time with target centered? Fastest time to target centered? Fastest time and longest duration on target? I need to have a reward system in place.
- Goal 3. My best guess at how to get this right is to use reinforcement learning to tune the PID loop values. I’m not sure however what the best test environment would be for this. Training on real data would be time intensive. Using a digital twin is the best alternative I’m currently exploring. I think using a URDF(Universal Robot Description File) with ROS(Robot Operating System) to simulate the kinematics would work for planning, and I could use a simulated camera with simulated dogs and cats in an environment like Nvidia Omniverse.
What are the constraints? What are the tradeoffs?
- Maximum speed of the steppers at a given weight, which constrains the angular speed of the gimbal
- Minimum resolution of the steppers. This can be adjusted, and I can safely say with microstepping this will not be an issue. What could be an issue is skipped steps at high velocities. Testing will be needed.
- Angular motion deadspots because I don’t have a cable pass-through. I will have limits to how much I can rotate because of this. The camera ribbon cable connector has to go to the jetson. I also need a way to feed the water without tangling as well. This first design for a turret has no closed loop feedback for the control, so no optical encoders. I’m not sure how easily I could retrofit those as an option unless I add them to the back of the motor on the shaft – maybe a hall effect rotation sensor.
Additional fun goals
- Good aesthetic design. Design inspiration from Oblivion, Portal 2. White clean surfaces with complexity underneath you can just see. Flowing designs cut with high symmetry and cartesian geometric shapes
- Modular design to replace components and functions. Separate the motion system from the controls from the power supply in a stackable way. Also add a module for whatever payload I plan on adding to make the turret swappable.
- Make the turret pop out of the top. A PIR sensor detects heat motion to conserve power, and the gimbal pops up when movement is detected.