FRC1076 / FRC1076/2019-Competition

Implement VisionSensor

Open
#49 3 comments 0 reactions 0 assignees View on GitHub
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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.