A small vehicle is trapped in a valley, because it does not have enough power to climb up the valley wall. In order to leave the valley, the car must first drive up one side as far as it is able, then roll to the other side building momentum until it finally is capable of exiting the valley. This problem is often used to test the efficacy of machine learning algorithms, see wikipedia.
The over-all goal will be to design a physical hill-car system with a corresponding simulation. The sub-goal will to solve the hill-car problem in the physical system as fast as possible. The shape of the hill and the size of the car will be agreed upon across all participants. All other design elements will be unique to the participants.
Template simulation code is attached (pycar.py) that gives a simulation for a hill-car with a particular hill-shape. This simulation will need to be revised to match the design constraints, solve for the desired control and include any additional physics desired.
The template mechanism is provided as solidwork files (hillcar_template.zip). All files in the template may be modified as desired. Required additional design elements will be:
The location of the car needs to be detected for feedback control. The actuator is servo driven and offers no feedback. Possible ideas for sensing are:
The control will incorporate data from the sensor and send a position command to the servo. The logic and control will be implemented on an Arduino. Considerations for the control will be that it is relatively simple and compact in order to function in the constraints of the limited processing power.