Go to Post Ohh the [strike]humanity[/strike] robotity! - artdutra04 [more]
Home
Go Back   Chief Delphi > Technical > Technical Discussion
CD-Media   CD-Spy  
portal register members calendar search Today's Posts Mark Forums Read FAQ rules

 
Closed Thread
Thread Tools Rating: Thread Rating: 2 votes, 5.00 average. Display Modes
  #1   Spotlight this post!  
Unread 31-08-2014, 22:47
Ian Curtis Ian Curtis is offline
Best Available Data
FRC #1778 (Chill Out!)
Team Role: Engineer
 
Join Date: Feb 2005
Rookie Year: 2004
Location: Puget Sound
Posts: 2,521
Ian Curtis has a reputation beyond reputeIan Curtis has a reputation beyond reputeIan Curtis has a reputation beyond reputeIan Curtis has a reputation beyond reputeIan Curtis has a reputation beyond reputeIan Curtis has a reputation beyond reputeIan Curtis has a reputation beyond reputeIan Curtis has a reputation beyond reputeIan Curtis has a reputation beyond reputeIan Curtis has a reputation beyond reputeIan Curtis has a reputation beyond repute
Fault Tolerant Robot Design

SpaceX's recent interesting test result of the F9R got me wondering about fault tolerant design. SpaceX said the loss of the rocket was a single point failure of a sensor, where on a Falcon 9 enroute to orbit, that sensor would have been voted out.

I deal with similar architectures in my day job quite a bit. Some parameters (airspeed, for example) are very important to how things fly. If you are actually at 400 knots, and the airplane thinks it is at 150 knots, you will get an unexpected response!

The idea of a voting scheme is pretty straightforward. A simple FRC example would be having a very low geared arm with 3 potentiometers. If potentiometer A says it is at 120 degrees, potentiometer B says it is at 120 degrees, and potentiometer C says it is at 360 degrees, potentiometer C is most likely wrong, and the robot will vote it out and act as if the arm is at 120 degrees. If you had a single bad potentiometer, your low geared arm might rip the robot apart!

Another common FRC example is to have a potentiometer & limit switches. That way if your closed loop feedback can't keep up, the limit switch will protect your structure.

We've done the potentiometer and limit switch before. What have others done? I bet there's some pretty fancy fault tolerant magic out there...
__________________
CHILL OUT! | Aero Stability & Control Engineer
Adam Savage's Obsessions (TED Talk) (Part 2)
It is much easier to call someone else a genius than admit to yourself that you are lazy. - Dave Gingery
  #2   Spotlight this post!  
Unread 01-09-2014, 00:26
Aren Siekmeier's Avatar
Aren Siekmeier Aren Siekmeier is offline
on walkabout
FRC #2175 (The Fighting Calculators)
Team Role: Mentor
 
Join Date: Apr 2008
Rookie Year: 2008
Location: 대한민국
Posts: 735
Aren Siekmeier has a reputation beyond reputeAren Siekmeier has a reputation beyond reputeAren Siekmeier has a reputation beyond reputeAren Siekmeier has a reputation beyond reputeAren Siekmeier has a reputation beyond reputeAren Siekmeier has a reputation beyond reputeAren Siekmeier has a reputation beyond reputeAren Siekmeier has a reputation beyond reputeAren Siekmeier has a reputation beyond reputeAren Siekmeier has a reputation beyond reputeAren Siekmeier has a reputation beyond repute
Re: Fault Tolerant Robot Design

If you take a look at how the Poofs determine which goal is hot, in both their CheesyVision and their on-robot sensor implementation they count votes from each of the sides. A goal is only hot if the vote difference favors that sensor or that hand by some minimum threshold (something like 10).

Whereas just asking once "Which side is hot?" returns a result with considerable noise, they are effectively asking many many times and aggregating these results to extract the signal from the noise.
  #3   Spotlight this post!  
Unread 01-09-2014, 01:03
wireties's Avatar
wireties wireties is offline
Principal Engineer
AKA: Keith Buchanan
FRC #1296 (Full Metal Jackets)
Team Role: Mentor
 
Join Date: Jan 2006
Rookie Year: 2004
Location: Rockwall, TX
Posts: 1,170
wireties has a reputation beyond reputewireties has a reputation beyond reputewireties has a reputation beyond reputewireties has a reputation beyond reputewireties has a reputation beyond reputewireties has a reputation beyond reputewireties has a reputation beyond reputewireties has a reputation beyond reputewireties has a reputation beyond reputewireties has a reputation beyond reputewireties has a reputation beyond repute
Send a message via AIM to wireties
Re: Fault Tolerant Robot Design

It is common, in industrial applications, to have soft and hard limits. The soft limits are software/firmware inputs but the hard limits turn power off and implement safety protocols. Duplicate analog sensors, encoders etc are also common. In FIRST the rules kinda prohibit "hard" limits. And duplicating other sensors is kinda expensive.

This year we doubled up the limit sensors on our cam-based catapult. Not knowing when the cam was in the launch position was bad news!
__________________
Fast, cheap or working - pick any two!
  #4   Spotlight this post!  
Unread 01-09-2014, 11:24
Alan Anderson's Avatar
Alan Anderson Alan Anderson is offline
Software Architect
FRC #0045 (TechnoKats)
Team Role: Mentor
 
Join Date: Feb 2004
Rookie Year: 2004
Location: Kokomo, Indiana
Posts: 9,113
Alan Anderson has a reputation beyond reputeAlan Anderson has a reputation beyond reputeAlan Anderson has a reputation beyond reputeAlan Anderson has a reputation beyond reputeAlan Anderson has a reputation beyond reputeAlan Anderson has a reputation beyond reputeAlan Anderson has a reputation beyond reputeAlan Anderson has a reputation beyond reputeAlan Anderson has a reputation beyond reputeAlan Anderson has a reputation beyond reputeAlan Anderson has a reputation beyond repute
Re: Fault Tolerant Robot Design

The TechnoKats' 2014 robot has three completely independent sensors on its giant flingapult to detect "end of travel", plus a software-enforced time limit on how long it can be powered forward. There's an optical sensor that gets a reflection from the carriage as it goes by, a physical limit switch adjacent to the padded hard stop, and a gear tooth sensor to count distance from the home position. Any two of them can fail, and the flinger arm will still stop before trying to break something.

On previous years' robots, there have sometimes been single sensors that can cause either loss of control or self-destructive behavior if they get disconnected. We typically tried to detect such malfunctions and disable the function in software, but without redundant sensors that's not easy.
  #5   Spotlight this post!  
Unread 01-09-2014, 11:42
Ether's Avatar
Ether Ether is offline
systems engineer (retired)
no team
 
Join Date: Nov 2009
Rookie Year: 1969
Location: US
Posts: 8,100
Ether has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond repute
Re: Fault Tolerant Robot Design


You can get some fault detection even with a single sensor by doing range and rate sanity checking.

Examples:

1) You know a pot should be reading between 90 and 120 degrees, but it returns a reading of 10 or 200 degrees.

2) You are supplying power to a motorized subsytem and it should be moving but the position (or speed) sensor says that it is not.


Increasingly, "smart actuators" are being used on automobiles. These actuators have a tiny microcontroller to control and monitor the actuator's performance and report trouble codes via the CAN bus.


  #6   Spotlight this post!  
Unread 02-09-2014, 07:45
jwfoss jwfoss is offline
Chasing Elegant Simplicity
AKA: Justin Foss
FRC #0558 (Elm City Robo Squad)
Team Role: Mentor
 
Join Date: Aug 2006
Rookie Year: 2003
Location: New Haven, CT
Posts: 592
jwfoss has a reputation beyond reputejwfoss has a reputation beyond reputejwfoss has a reputation beyond reputejwfoss has a reputation beyond reputejwfoss has a reputation beyond reputejwfoss has a reputation beyond reputejwfoss has a reputation beyond reputejwfoss has a reputation beyond reputejwfoss has a reputation beyond reputejwfoss has a reputation beyond reputejwfoss has a reputation beyond repute
Re: Fault Tolerant Robot Design

Fault tolerance can be applied to purely mechanical systems as well, take for example spring-biased pneumatic cylinders. These are double acting cylinders that have an internal spring that forces them into the design extended/retracted configuration.

As a team that uses a large number of pneumatic components we are constantly concerned with question of what happens if we loose pressure mid match.
__________________
2003-2006 | FRC 0176 | Aces High - Student
2007-2010 | FRC 0229 | Division by Zero - Mentor in Training
2011-2013 | FRC 2168 | Aluminum Falcons - Mechanical Mentor
2013-20xx | FRC 0558 | Elm City Robo Squad - Mechanical Mentor
  #7   Spotlight this post!  
Unread 02-09-2014, 12:34
Chris Hibner's Avatar Unsung FIRST Hero
Chris Hibner Chris Hibner is offline
Eschewing Obfuscation Since 1990
AKA: Lars Kamen's Roadie
FRC #0051 (Wings of Fire)
Team Role: Engineer
 
Join Date: May 2001
Rookie Year: 1997
Location: Canton, MI
Posts: 1,488
Chris Hibner has a reputation beyond reputeChris Hibner has a reputation beyond reputeChris Hibner has a reputation beyond reputeChris Hibner has a reputation beyond reputeChris Hibner has a reputation beyond reputeChris Hibner has a reputation beyond reputeChris Hibner has a reputation beyond reputeChris Hibner has a reputation beyond reputeChris Hibner has a reputation beyond reputeChris Hibner has a reputation beyond reputeChris Hibner has a reputation beyond repute
Re: Fault Tolerant Robot Design

We always run pot/encoder diagnostics ever since we ripped our arm apart during the divisional semi-finals in 2005.

Our diagnostic goes something like this (from memory, so it might not be 100% accurate):

Code:
fault_debounce_timer = debounce_fault_state((abs(PID_error) > error_threshold) && (abs(pot_speed) < speed_threshold), fault_debounce_timer);

if (fault_debounce_timer > fault_time_thresh)
{
    pot_fault = TRUE;
}

if (TRUE == reset_pot_fault)
{
    pot_fault = FALSE;
    fault_debounce_timer = 0;
}

if (TRUE == pot_fault)
{
    motor_cmd = 0;
}
Here is the basic philosophy of the above diagnostic.

If:
1) The PID has a reasonably large error input (error = setpoint - process_variable) (i.e. the appendage should be moving since the PID is commanding the motor)
AND
2) The speed of a appendage as measured by the sensor is very low (i.e. the appendage is NOT moving)
AND
3) The above 2 things occur continuously for a certain period of time.
Then:
The sensor is broken or disconnected either electrically or mechanically, so shut off the motor (or just shut off PID control and revert to manual control).


We also do simple out-of-range checks that will also shut down the motor.
__________________
-
An ounce of perception is worth a pound of obscure.

Last edited by Chris Hibner : 02-09-2014 at 16:05.
  #8   Spotlight this post!  
Unread 02-09-2014, 13:13
JamesCH95's Avatar
JamesCH95 JamesCH95 is offline
Hardcore Dork
AKA: JCH
FRC #0095 (The Grasshoppers)
Team Role: Engineer
 
Join Date: Dec 2004
Rookie Year: 2001
Location: Enfield, NH
Posts: 1,859
JamesCH95 has a reputation beyond reputeJamesCH95 has a reputation beyond reputeJamesCH95 has a reputation beyond reputeJamesCH95 has a reputation beyond reputeJamesCH95 has a reputation beyond reputeJamesCH95 has a reputation beyond reputeJamesCH95 has a reputation beyond reputeJamesCH95 has a reputation beyond reputeJamesCH95 has a reputation beyond reputeJamesCH95 has a reputation beyond reputeJamesCH95 has a reputation beyond repute
Re: Fault Tolerant Robot Design

Carefully choosing "NO" and "NC" switches can be an important decision. I.e. in 2013 we had NC switches to detect when we ran into the bridge that helped the robot self-align by slowing or disabling forward motion on one side of the drivetrain. Well... if one switch got damaged or disconnected the robot wouldn't drive forward! We implemented a manual override because we could do that quickly in code (i.e. the sensors exerted no authority until the operator said they could) but a more robust solution would have been NO switches.

We do like our manual override options. If we see the robot start to do something it's not supposed to do we usually have a switch or a button to turn off any automated processes and turn complete control over to the operator. This is, of course, a double-edged sword, how far to push a potentially vulnerable robot is up to the driver's judgement.
__________________
Theory is a nice place, I'd like to go there one day, I hear everything works there.

Maturity is knowing you were an idiot, common sense is trying to not be an idiot, wisdom is knowing that you will still be an idiot.
  #9   Spotlight this post!  
Unread 03-09-2014, 21:53
mathking's Avatar
mathking mathking is offline
Coach/Faculty Advisor
AKA: Greg King
FRC #1014 (Dublin Robotics aka "Bad Robots")
Team Role: Teacher
 
Join Date: Jan 2005
Rookie Year: 1999
Location: Columbus, OH
Posts: 638
mathking has a reputation beyond reputemathking has a reputation beyond reputemathking has a reputation beyond reputemathking has a reputation beyond reputemathking has a reputation beyond reputemathking has a reputation beyond reputemathking has a reputation beyond reputemathking has a reputation beyond reputemathking has a reputation beyond reputemathking has a reputation beyond reputemathking has a reputation beyond repute
Re: Fault Tolerant Robot Design

One simple, hard learned lesson is to use timers to backup any automated action that depends on a sensor. For example, drive forward until the range sensor says you are at a specified range. A timer backup that turns off the drive forward after a certain time can prevent field and robot damage.

In 2013 we used a speed sensor for our shooting wheels in autofire mode. One time in practice the retroreflective tape was on the wrong side of the wheel. So the optical sensors never registered it had enough speed. So in autonomous there was a timer of 1.5 seconds that would override the sensors.
__________________
Thank you Bad Robots for giving me the chance to coach this team.
Rookie All-Star Award: 2003 Buckeye
Engineering Inspiration Award: 2004 Pittsburgh, 2014 Crossroads
Chairman's Award: 2005 Pittsburgh, 2009 Buckeye, 2012 Queen City
Team Spirit Award: 2007 Buckeye, 2015 Queen City
Woodie Flowers Award: 2009 Buckeye
Dean's List Finalists: Phil Aufdencamp (2010), Lindsey Fox (2011), Kyle Torrico (2011), Alix Bernier (2013), Deepthi Thumuluri (2015)
Gracious Professionalism Award: 2013 Buckeye
Innovation in Controls Award: 2015 Pittsburgh
Event Finalists: 2012 CORI, 2016 Buckeye
  #10   Spotlight this post!  
Unread 04-09-2014, 00:49
JohnSchneider's Avatar
JohnSchneider JohnSchneider is offline
Registered User
FRC #3310 (Black Hawk Robotics)
Team Role: Mentor
 
Join Date: Mar 2010
Rookie Year: 2010
Location: Dallas
Posts: 777
JohnSchneider has a reputation beyond reputeJohnSchneider has a reputation beyond reputeJohnSchneider has a reputation beyond reputeJohnSchneider has a reputation beyond reputeJohnSchneider has a reputation beyond reputeJohnSchneider has a reputation beyond reputeJohnSchneider has a reputation beyond reputeJohnSchneider has a reputation beyond reputeJohnSchneider has a reputation beyond reputeJohnSchneider has a reputation beyond reputeJohnSchneider has a reputation beyond repute
Re: Fault Tolerant Robot Design

118 in 2012 doubled up sensors on their robot. I've never investigated whether or not they continued to do that through 2013 and 2014. Maybe someone on that team could shed some light on the cost/benefit.
Closed Thread


Thread Tools
Display Modes Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump


All times are GMT -5. The time now is 01:48.

The Chief Delphi Forums are sponsored by Innovation First International, Inc.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Copyright © Chief Delphi