Project Description
*Note-our robot is wearing bandages because he fell off of the table. But he was so supremely well built that he survived with only minor injuries.
Game Approach
Our strategy for the game was to drive as fast as possible and get jousting points as we cross the field. We wanted to create a fast robot to prevent the other team from getting points and to get the 2 points rewarded for getting into home first. To be small enough to avoid lance blows, but large enough to fit all of the components, w designed a robot that is 11" in diameter and 12" tall.
Our strategy for the game was to drive as fast as possible and get jousting points as we cross the field. We wanted to create a fast robot to prevent the other team from getting points and to get the 2 points rewarded for getting into home first. To be small enough to avoid lance blows, but large enough to fit all of the components, w designed a robot that is 11" in diameter and 12" tall.
Drive
Because we were only concerned with driving forward and backward, we decided to drive our robot straight using PD control. We used inductive sensors under our robot to sense the wire that runs the length of the board. To drive as fast as possible, we used this signal to decrease the duty cycle on one motor and keep the other one running as fast as possible. The battery voltage greatly affected the gains necessary to drive stably, so we developed voltage-dependent gains that adjusted depending on the initial battery levels at the start of the match. To prevent knocking our head over as we approached home, we reduced our speed when the ultrasonic sensors sensed that the robot was getting close to the wall. To stop completely in home we used limit switches to sense when the front or back walls were hit.
Because we were only concerned with driving forward and backward, we decided to drive our robot straight using PD control. We used inductive sensors under our robot to sense the wire that runs the length of the board. To drive as fast as possible, we used this signal to decrease the duty cycle on one motor and keep the other one running as fast as possible. The battery voltage greatly affected the gains necessary to drive stably, so we developed voltage-dependent gains that adjusted depending on the initial battery levels at the start of the match. To prevent knocking our head over as we approached home, we reduced our speed when the ultrasonic sensors sensed that the robot was getting close to the wall. To stop completely in home we used limit switches to sense when the front or back walls were hit.
Jousting
The lance is mounted on a two-axis servo mechanism to allow the lance to both sweep and retract. The lance sweeps forward and backward to try to catch the opponent and to prevent the servos from stalling. Many robots will hit their opponent and get stuck against the wall because their deployed lance prevents them from moving forward. The sweeping motion allows the robot to move through an opponent because it will hit the opponent and then move the lance away from the opponent. To retract for one second after deployment for 3 seconds, the lance swings all the way forward and the second axis servo tilts the lance upwards.
The lance is mounted on a two-axis servo mechanism to allow the lance to both sweep and retract. The lance sweeps forward and backward to try to catch the opponent and to prevent the servos from stalling. Many robots will hit their opponent and get stuck against the wall because their deployed lance prevents them from moving forward. The sweeping motion allows the robot to move through an opponent because it will hit the opponent and then move the lance away from the opponent. To retract for one second after deployment for 3 seconds, the lance swings all the way forward and the second axis servo tilts the lance upwards.
Shooting
The robot has a ramp that holds five balls and is closed with a servo-actuated gate. In order to shoot, the gate opens and a launcher motor propels the balls out of a PVC tube. We shoot into the goal by either shooting when we are completely at home or driving close to home and turning to bank the balls off the walls. Since banking the balls in is simple and has a lot of room for error, the robot stops at a distance from home using the ultrasonic sensors and turns using open-loop control. A reload circuit is mounted underneath the entrance to the ramp and is controlled by PWM to request a ball during recess.
The robot has a ramp that holds five balls and is closed with a servo-actuated gate. In order to shoot, the gate opens and a launcher motor propels the balls out of a PVC tube. We shoot into the goal by either shooting when we are completely at home or driving close to home and turning to bank the balls off the walls. Since banking the balls in is simple and has a lot of room for error, the robot stops at a distance from home using the ultrasonic sensors and turns using open-loop control. A reload circuit is mounted underneath the entrance to the ramp and is controlled by PWM to request a ball during recess.
SPI Communciation
The robot communicates with the Joust Status Reporter via SPI communication. The robot transfers and receives 8 bytes to receive information regarding the state of the game and the current score. When new communication information is received, the JSR state machine will post events to the Master State machine, which will adjust which round it is running.
The robot communicates with the Joust Status Reporter via SPI communication. The robot transfers and receives 8 bytes to receive information regarding the state of the game and the current score. When new communication information is received, the JSR state machine will post events to the Master State machine, which will adjust which round it is running.