Go to Post wonder if the April peak for 'frisbee launcher' was from the GDC... - cbudrecki [more]
Home
Go Back   Chief Delphi > FIRST > General Forum
CD-Media   CD-Spy  
portal register members calendar search Today's Posts Mark Forums Read FAQ rules

 
 
 
Thread Tools Rate Thread Display Modes
Prev Previous Post   Next Post Next
  #5   Spotlight this post!  
Unread 22-02-2009, 15:38
Bongle's Avatar
Bongle Bongle is offline
Registered User
FRC #2702 (REBotics)
Team Role: Mentor
 
Join Date: Feb 2004
Rookie Year: 2002
Location: Waterloo
Posts: 1,069
Bongle has a reputation beyond reputeBongle has a reputation beyond reputeBongle has a reputation beyond reputeBongle has a reputation beyond reputeBongle has a reputation beyond reputeBongle has a reputation beyond reputeBongle has a reputation beyond reputeBongle has a reputation beyond reputeBongle has a reputation beyond reputeBongle has a reputation beyond reputeBongle has a reputation beyond repute
Send a message via MSN to Bongle
Re: Driving and "Traction controls"

Quote:
Originally Posted by nathanww View Post
I would be extremely cautious about doing this, because
  1. Similar to this, making an effective descision to disable a TC system requires understanding at a low level of what is going wrong with the system. If you think that you can do that with the robot 50ft away from you, on a competition floor, while driving, in about 10 seconds, that's great, but otherwise it's likely that mucking about with the robot's programmatic internals on the field will do more harm than good(our original plan was to have a system to essentially fix common problems that might come up with the robot from our OI, but we scrapped this after we discovered that our drivers thought process was something like "robot acting odd->mash buttons"
Making an effective decision is easy: "the robot isn't doing what I tell it to in a timely fashion, switching to manual override". They don't need to understand WHAT is going wrong, simply that something is.

I'd be extremely cautious about NOT having a manual override, because by not having a manual override, you're essentially saying: "my control software is perfect and can deal with all situations". I've had many situations where the robot or the program got into a state either through malfunction, damage, or human error (driver, mechanical, or programmatic) that the control software was not able to deal with. At that point, you want the ability to directly drive individual motors and solenoids. You may be less effective than the cRio in an ideal situation, but if the code on the cRio has a bug or a sensor is malfunctioning, being worse than ideal is better than not moving at all.

Quote:
With something that requires as much prescision as traction control, the robot needs to be able to override the human operator, not vice-versa
Sure, which is why you'd have the traction control button pressed when you want it, and not pressed when you don't. Or you'd have it on all the time and allow the driver to press a button if they need to execute a maneuver that it wouldn't permit. Full-time traction control and stability systems do actually remove the ability to do certain maneuvers, and there are times when it is legitimate to want them off.

The main point I was trying to make was this: if you're not capable of making a useful full-time traction control system, then be honest with yourself, and make a simpler one that works in a subset of situations. We spent two weeks trying to get a full-time closed-loop system working, and failed. So we moved to a much simpler system that works in nearly all of the situations the more complicated one worked in. It is less buggy, less susceptible to sensor failure, and easier to debug and maintain. Of course a fully-tested, well-implemented full-time system would be preferable to what we have, but a buggy full-time system that we forced the driver to use at all times would be far worse than no traction control at all.
------------------------------------
Back on topic:
Another potential source of delay is simply too much strain on the cRio. Several times during our development we wrote code that simply did too much in a single cycle, resulting in 0.5-1.0 second delays. Doing large printfs or running camera code every loop are examples of things that can put a large delay in the robot. If you're using windriver, use the GetFPGATime function to get an idea of how long each loop is taking. It should take very small (< 0.01 sec) amounts of time per loop. Note that GetFPGATime returns microseconds.

Last edited by Bongle : 22-02-2009 at 15:49.
Reply With Quote
 


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

Similar Threads
Thread Thread Starter Forum Replies Last Post
Team 1293 "D5 Robotics" First Night of Driving! R.Brown Robot Showcase 1 08-02-2008 06:47
Congratulations is spelled with a "T" and not a "D"!! Elgin Clock Thanks and/or Congrats 55 09-03-2007 13:24
New NEMO White Papers! "Creating a Killer Packet" and "25 Ways to Sponsor" Jessica Boucher Team Organization 0 10-08-2005 10:55
Conflict between "Initialize_Tracker()" and "pwm13 & pwm15"? Kevin? gnormhurst Programming 3 22-02-2004 02:55
how tall is the ramp when in "up" and "balanced" position??? archiver 2001 1 24-06-2002 00:54


All times are GMT -5. The time now is 07:18.

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