Need a Full "Watchdog for idiots" explanation

Hello I am Kyle Lenox, programmer for Amherst Robotics Team #2632.

Ok, here is the situation, I am currently tying to make a simple Autonomous mode and I have no idea whatsever what these watchdog components are:

Watchdog Status, Watchdog Kill, Watchdog Set Enable

What I do know is that the Watchdog Kill shuts down the motors. But what happens cosequencly if I use it? Will it harm the motors? After I ran Autonomous mode on the dashboard, I ran it again and the Motors were jerking the chain, and the robot was jerking violinlty forward in 1inch increments. Did using the WatchdogKill ruin the motors…(I really hope not):confused:

If someone can give me an “explination for idiots” it would be geatly appreciated!!!


Kyle Lenox

In LabVIEW, if you press control-H you will turn on Context help. Hover your mouse over something you don’t understand for a description of it.

Watchdog Kill just makes the watchdog expire immediately. When that happens, it is as if you pressed Disable on the Driver Station. It should have no worse effect on your motors than turning off the power.

Thanks for the advice

I did as you said to do. But the Expalination was to wordy to understand. I asked my dad and he is trained in 20 different programming languages and he thinks hew knows but is unsure. If someone could literally give an explanation of those three so an idot could understand, it would be greatly appriciated.

I just need to know so I can decide if I need to use them, or if I could ignore them. Thanks for the advice once again

Kyle Lenox

Watchdog Status
Returns: Boolean
Takes: Nothing
This VI returns the current status of the Watchdog.
1 - Watchdog is being Fed and robot is enabled.
0 - Watchdog is dead. Robot is disabled.

Watchdog Kill
Returns: Nothing
Takes: Boolean
This VI can be used to immediately Kill the Watchdog.
1 - Kill the Watchdog immediately and disable the Robot.
0 - Keeps the Watchdog running.

Watchdog Set Enable
Returns: Nothing
Takes: Boolean
This VI can be used to Enable and Disable the robot.
1 - Enable the Watchdog. Requires that Watchdog must be fed in order to keep the robot enabled.
0 - Disable the Watchdog. Once disabled, the robot will not stop for anything, even if it gets caught in an infinite loop. It’s recommended to have the robot on blocks when the Watchdog is disabled.

Hopes this helps.

The real issue may be with the code you aren’t asking about. Watchdog’s are used to ensure that machinery or equipment the computer is supposed to control is being paid attention to often enough. If the computer doesn’t do its job, the watchdog steps in and takes over the job, hopefully making things safer by turning off power. The FRC watchdog doesn’t latch once it is thrown, so I believe what you are seeing is feeding that is way too slow.

The computer sets up the motors, then delays for a bit too long so the watchdog turns everything off. Then the code comes back, feeds, and the motors jerk back to their current settings, and then we repeat.

I don’t recall seeing what mode the robot is in, but if it is teleop, this could likely be caused by putting vision or some other expensive task inside the robot Main or inside TeleOp. I think the best thing to do is post code you’ve modified, or pictures of the code.

Greg McKaskle

First thing, I would like to say thankyou for expaining those components.

Second, I am working in Autonomous mode, not Teleoperated mode. We know its not the gears, because they run smoothly in Teleop, its the programming. I have a program like this in LabVIEW

WattchdogFeed, TankDrive(left & right -1), ElaspedTime(Set to 4)(connected to Loop Condition) ] --Exiting the while loop {WatchdogKill}

Any more advice???

Kyle Lenox

I’m not certain what ElapsedTime(Set to 4) means. Try using Delay and Feed and see if that doesn’t work better.

Greg McKaskle

The elapsed time set to 4 means that when you select elapsed time and place it on the block diagram, a box appears, with the option to select a number. The number I chose is four

Kyle Lenox

Try inserting the Delay and Feed. Right now you have a loop with no delay that repeatedly sets the motor speed. I can’t debug why or if this is causing the jumpiness, but the delay and feed is likely what you want to use.

Greg McKaskle

Sure thing. I will try to see if it works @ the robotics meeting from 1630-1830. I will let you know sometime between 1900-1930.

Thanks for all the help you’ve given me, really appreciate it.

Kyle Lenox