FRC1076 / FRC1076/2019-Competition
Implement VisionSensor
- Dominant language
- Python
- Stars
- 1
- Forks
- 1
- PR merge metrics
- No merged PRs in 30d
Description
Current stub implementation is in subsystems.remoteSensors.py
VisionSensor should create a communication channel to the vision processor and listen for angle updates about every 5 robot cycles. A receiveAngleUpdates() method should be called in the robot loop to receive the update, parse the payload, and save the angle value to be returned to the PIDController on demand.
The latest angle update value is cached in the VisionSensor object so it can be returned to the PID Controller using it via the getPid() method.
This should be initialized to 0 so the value is returned when the vision sensor is not in contact with the
vision processor.
This needs a crash free creation of the communication channel to the vision processor. It should be robust enough to not fail if that doesn't work right away. As long as the channel is not successfully initialized, it should keep trying it every time receiveAngleUpdates is called. e.g. if self.channel is None.
So, it should squirrel away all of the values necessary to retry creating the channel.
Contributor guide
No contributing guide indexed for this repository
Research direction
Start in subsystems.remoteSensors.py and trace the robot loop and getPid() usage. Determine how the vision-processor channel and angle payload are represented, then implement the retry behavior, cached zero default, and periodic angle updates described here. Done means channel creation failures do not crash the robot and getPid() returns the latest parsed angle or zero when unavailable.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- robotics
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100