Triple Helix has recorded videos for the Accuracy and Power Port challenges. Since these tasks are of fixed time, the driver’s station can be set to disable the robot after the exact number of allotted seconds. We’re about to begin recording the other challenges which must be timed. Like in the videos previously mentioned, we plan to overlay an onscreen timer, starting when the robot is enabled and ending when the bumper crosses the finish line. Are we correct in our belief that time = 0 when the solid light (disabled) goes dark for the first time when the driver’s station enables the robot?
You are most likely right. The RSL starts blinking when the robot is enabled, and it probably begins its blinking cycle in the off state.
After reviewing many videos, it’s clear that using the RSL isn’t fully reliable. In leu of anything better, we’re taking time zero to be the earliest of either “the light beginning to blink” or “the robot moving”. Sometimes one of these events occurs before the other. It’s a bit frustrating.
To me, it looks like the first cycle is ON. Movement should be a good enough indicator of whether or not the robot is enabled, and you can check the length of pulses to make sure the video isn’t sped up.
For the POWER PORT Challenge, this discussion is obsoleted by Q106:
There are no rules that require the ROBOT is disabled at the start of a POWER PORT Challenge attempt.
Could you simply add an Led and set it to on in auto and Tele init()? Then Disable it in DisabledInit()?
We added a NT variable “/SmartDashboard/Enabled”. We set it to TRUE in the appropriate init() methods and FALSE in the disabledInit(). I then wrote a little timer app which connects to NT and starts the timer when Enabled goes TRUE. We run the app on a laptop and put it in view of the recording camera. Seems to work quite well.
(Happy to share the code. It is a tiny bit of Python with OpenCV for drawing.)