This is something that can wait until we have a baseline level of functionality in the robot.
Turret Wraparound
The turret currently wraps around in both directions at the same angle. This may result in oscillation if we are trying to aim along that heading, rendering the turret useless when it goes back and forth.
There are a few solutions I can think of (without going too deeply into the implications/feasibility of each), though I'd like to hear about others:
- We could limit the range to less than [-180,180), so that there is a dead range of angles where we simply can't aim.
- We could increase the range in both directions to give some more slack. This requires our energy chain to be able to move further.
- We could add a time deadband where we simply refuse to cross the boundary more than once within a given period.
- If we're actively shooting, we could prevent the robot from physically turning such that the turret would need to wrap (and signal this condition to the driver).
Wraparound Shooting
This may be something we decide is acceptable and we can live with. If we are in the process of shooting a ball, but then the turret logic hits a wraparound, we will likely miss that shot as the ball moves up and the turret wraps.
Operator Signaling
It'd be really useful for an operator/driver to know that the turret heading is near the wraparound point (regardless of whether we make changes for the other issues mentioned here). This would reduce any surprise. Maybe some LEDs on the robot to show the status, or rumble feedback on the controller. The rumble can be directional (left/right), so the driver would know whether e.g. if they kept turning in a particular direction, the turret will have to turn itself around.
This is something that can wait until we have a baseline level of functionality in the robot.
Turret Wraparound
The turret currently wraps around in both directions at the same angle. This may result in oscillation if we are trying to aim along that heading, rendering the turret useless when it goes back and forth.
There are a few solutions I can think of (without going too deeply into the implications/feasibility of each), though I'd like to hear about others:
Wraparound Shooting
This may be something we decide is acceptable and we can live with. If we are in the process of shooting a ball, but then the turret logic hits a wraparound, we will likely miss that shot as the ball moves up and the turret wraps.
Operator Signaling
It'd be really useful for an operator/driver to know that the turret heading is near the wraparound point (regardless of whether we make changes for the other issues mentioned here). This would reduce any surprise. Maybe some LEDs on the robot to show the status, or rumble feedback on the controller. The rumble can be directional (left/right), so the driver would know whether e.g. if they kept turning in a particular direction, the turret will have to turn itself around.