Hello all,
Recently there has been some debate about whether or not a vision closed loop programming technique (where the position of an object in a frame directly drives a motor output) has benefits over a vision software that takes a single frame and calculates an error based on that frame and then drives some-other-sensor-based PID controller with a setpoint based on the frame's error.
Benefits of Vision Closed Loop:
- Little to no need for high level arithmetic
- Can be used to lineup while moving as the robot constantly updates to the target
Downsides of Vision Closed Loop:
- Needs to be run at low latency to be worth it as it is directly updating the motor controller
Benefits of Vision-fed Encoder/Gyro PID Closed Loop
- Can be run on a slow <5fps processor
- Less jitter as the loop can be run once to hit the target
Downsides of Vision-fed Encoder/Gyro PID Closed Loop
- Requires higher level arithmetic to calculate the error to the image
- If the target moves as a result of robot movement outside of the loop, the loop would target inaccurately.
This is a pure philosophical question rather than an implementation question, so, for a team with a coprocessor vs one that has to run all their vision on the RoboRIO, which is best? Discuss.