Go to Post The MAINTENANCE of teams is just as important as the growth. Starting a new team is not always the answer. - Amanda Morrison [more]
Home
Go Back   Chief Delphi > Technical > Programming > NI LabVIEW
CD-Media   CD-Spy  
portal register members calendar search Today's Posts Mark Forums Read FAQ rules

 
Reply
Thread Tools Rate Thread Display Modes
  #1   Spotlight this post!  
Unread 09-03-2009, 18:04
grosh grosh is offline
Registered User
FRC #2147
 
Join Date: Feb 2008
Location: Spokane, WA
Posts: 100
grosh is an unknown quantity at this point
EASY traction control?

At the Oregon Regional we realized that traction control is really important. I have read a number of forums that talk about traction control...come on now ! Most of the discussion is like listening to the advanced chem teacher talking about thermodynamics to a third grader. We are new to LabView and programming for that matter. Is their anything we can do to EASILY get traction control. After looking through other discussion we like the idea of limiting the joystick values to slow the acceleration but don't quite know how that would work. Is there any easy way to slow the joystick response to slow the acceleration? Any other suggestion?
Reply With Quote
  #2   Spotlight this post!  
Unread 09-03-2009, 18:45
Uberbots's Avatar
Uberbots Uberbots is offline
Mad Programmer
AKA: Billy Sisson
FRC #1124 (ÜberBots)
Team Role: College Student
 
Join Date: Jan 2006
Rookie Year: 2005
Location: Avon
Posts: 739
Uberbots has a reputation beyond reputeUberbots has a reputation beyond reputeUberbots has a reputation beyond reputeUberbots has a reputation beyond reputeUberbots has a reputation beyond reputeUberbots has a reputation beyond reputeUberbots has a reputation beyond reputeUberbots has a reputation beyond reputeUberbots has a reputation beyond reputeUberbots has a reputation beyond reputeUberbots has a reputation beyond repute
Re: EASY traction control?

well if you dont want to try doing all the control loop stuff, you can get a fairly satisfactory slip control by simply ramping up/down the motor signal.

basically to make this work you would make your motor output "correct for" the joystick input. for example, if your joystick is at position .7 and your motor output is at .3, you would want it to increase at a constant rate towards .7.

in pseudocode:

if (motor_out > joystick) //ramp down
motor_out -= .05;
if (motor_out < joystick) //ramp up
motor_out += .05

if ( |motor_out - joystick| < .05) //fix the jumping error
motor_out = joystick

i figure thats pretty easy to turn into labview code
__________________
A few of my favorite numbers:
175 176 177 195 230 558 716 1024 1071 1592 1784 1816
RPI 2012
BREAKAWAY
Reply With Quote
  #3   Spotlight this post!  
Unread 09-03-2009, 18:46
Cuse's Avatar
Cuse Cuse is offline
Registered User
AKA: Matt Mancuso
FRC #0175 (Buzz Robotics)
Team Role: Alumni
 
Join Date: Mar 2007
Rookie Year: 2005
Location: Enfield, CT
Posts: 22
Cuse is an unknown quantity at this point
Re: EASY traction control?

Well, a very simple system to implement that is purely software involves just limiting the joystick values by an Acceleration Limit of sorts.

Essentially it's using the In Range and Coerce function in LabView (I take it from your post that is what you are using), and the idea is to use the Joystick Axis input as your X test value, and to have your upper limit = (the previous Axis Value + your acceleration limit) and the lower limit = (the previous Axis Value - your acceleration limit). With this very simple functionality, if the input, X, is out of range of either of those values, i.e. it is too much , it will output the coerced x value as (your X value + your limit) until it is within range and reaches the value you requested as X.

Unfortunately, as I'm unbelievably tired at the moment, I don't think that post was very coherent, so I'm just including a screenshot and hoping that makes this much easier to understand.

For the purposes of the example I just picked a number, 0.05, as your limit, but you'll have to experiment to see what will work best for your robot.

Frankly I don't know of any simpler way to implement a limit on the joystick values.

The example provided I believe was originally in a WPI paper somewhere...
Attached Thumbnails
Click image for larger version

Name:	Simple Traction.jpg
Views:	324
Size:	9.3 KB
ID:	7648  
__________________


Last edited by Cuse : 09-03-2009 at 19:13.
Reply With Quote
  #4   Spotlight this post!  
Unread 09-03-2009, 21:16
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: EASY traction control?

Quote:
Originally Posted by Cuse View Post
For the purposes of the example I just picked a number, 0.05, as your limit, but you'll have to experiment to see what will work best for your robot.
We derive the limit from the throttle input axis on one of the joysticks. That way it can be tweaked on the fly to account for slightly different slickness on the field as conditions change.

(Actually, we don't have that feature enabled anymore. Our driver doesn't want anything to get between him and the drive motors. We humor him, and he in turn has piloted the robot to victory every time so far.)
Reply With Quote
  #5   Spotlight this post!  
Unread 10-03-2009, 09:52
grosh grosh is offline
Registered User
FRC #2147
 
Join Date: Feb 2008
Location: Spokane, WA
Posts: 100
grosh is an unknown quantity at this point
Re: EASY traction control?

Alan, I recognize you as the originator of another thread on traction control. That thread really got our programmers thinking, but with our the lack of experience we just could not get traction control implemented before our first FIRST competition.

Could you post your joystick limit code you were using?

PS- CUSE, what is the limit number (you chose 0.05) referring to?

Thank you for hanging in there with us. We hope to become more knowledgeable some day and be able to give back too.
Reply With Quote
  #6   Spotlight this post!  
Unread 10-03-2009, 10:32
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: EASY traction control?

Quote:
Originally Posted by grosh View Post
Alan,...Could you post your joystick limit code you were using?
It was essentially what Cuse posted. I hadn't discovered feedback nodes yet, so I used a shift register instead. Our maximum delta (constant 0.05 in his diagram) was taken from the joystick throttle (axis 3), increased by 1 and divided by -2 in order to make full "down" produce zero and full "up" produce 1.

At one point we tried modifying the delta based on the tick count, but the 50 cycles per second of the DS-to-cRIO communication was reliable enough to make it unnecessary.
Reply With Quote
  #7   Spotlight this post!  
Unread 10-03-2009, 10:40
grosh grosh is offline
Registered User
FRC #2147
 
Join Date: Feb 2008
Location: Spokane, WA
Posts: 100
grosh is an unknown quantity at this point
Re: EASY traction control?

Great idea! We will try this tonight. Thanks for the being patient with us.
Reply With Quote
  #8   Spotlight this post!  
Unread 10-03-2009, 12:16
s0crates s0crates is offline
Registered User
no team
Team Role: Programmer
 
Join Date: Dec 2008
Rookie Year: 2009
Location: Australia
Posts: 52
s0crates is on a distinguished road
Re: EASY traction control?

I can tell you that traction control helps a lot. We just used a much less elegant version of Cuse's code - about as simple as its possible to get. I think (our driver would probably agree) that it was one of the main reasons the max ever scored on us in a match was 4 moon rocks .

One slight twist to the standard traction control that we added was basically an override so if the driver switched speeds from -1 to 1 or 1 to -1, traction control was ignored. This allowed him to turn quickly, jackknife, etc. Without something like that, you always maintain control, not necessarily what you want when there's a 'bot on your tail and you want to perform some fast maneuvers.

-jonathan
PIGMICE!
Reply With Quote
  #9   Spotlight this post!  
Unread 10-03-2009, 13:07
Chaos in a Can Chaos in a Can is offline
Joel Spadin
FRC #1736 (Robot Casserole)
Team Role: Programmer
 
Join Date: Mar 2007
Rookie Year: 2007
Location: Peoria, IL
Posts: 58
Chaos in a Can is an unknown quantity at this point
Send a message via MSN to Chaos in a Can
Re: EASY traction control?

We're going to try something of a manual traction control.
When we tried the simple rate limiting method described here, our driver didn't like the feel of the robot.

Instead, pressing down one trigger (we use a 2-joystick tank style control) will scale down the motor power slightly and pressing both scales it down further. The change in the scaler is rate limited while increasing, so our driver can start from a standstill in the lowest "gear" by holding both triggers and release the triggers as he speeds up to smoothly accelerate.

At higher speeds, it doesn't do much, but it should make low-speed maneuvers more controllable.
__________________
2006 Xerox Creativity Award
2007 General Motors Industrial Design Award
2008 Judges' Award
2009 Chrysler Team Spirit Award

Reply With Quote
  #10   Spotlight this post!  
Unread 10-03-2009, 13:40
Cuse's Avatar
Cuse Cuse is offline
Registered User
AKA: Matt Mancuso
FRC #0175 (Buzz Robotics)
Team Role: Alumni
 
Join Date: Mar 2007
Rookie Year: 2005
Location: Enfield, CT
Posts: 22
Cuse is an unknown quantity at this point
Re: EASY traction control?

Quote:
Originally Posted by grosh View Post
PS- CUSE, what is the limit number (you chose 0.05) referring to?

Thank you for hanging in there with us. We hope to become more knowledgeable some day and be able to give back too.
The 0.05 is essentially just the maximum "step" you want to have the joystick value take in any given cycle of the code--it's your limit.

For example if you have the joystick full forward and you're requesting a value of 1, with the limit at 0.05 the successive steps up to 1 will go: 0, 0.05, 0.1, 0.15, etc until it reaches 1. You can speed up the steps or slow it down by changing that value.

Make sense?

If you have any other questions feel free to ask.
__________________

Reply With Quote
  #11   Spotlight this post!  
Unread 10-03-2009, 19:44
grosh grosh is offline
Registered User
FRC #2147
 
Join Date: Feb 2008
Location: Spokane, WA
Posts: 100
grosh is an unknown quantity at this point
Re: EASY traction control?

CUSE- what is the orange arrow at the top of the code?
Reply With Quote
  #12   Spotlight this post!  
Unread 10-03-2009, 19:47
Vikesrock's Avatar
Vikesrock Vikesrock is offline
Team 2175 Founder
AKA: Kevin O'Connor
no team
Team Role: Engineer
 
Join Date: Mar 2006
Rookie Year: 2007
Location: Manchester, NH
Posts: 3,305
Vikesrock has a reputation beyond reputeVikesrock has a reputation beyond reputeVikesrock has a reputation beyond reputeVikesrock has a reputation beyond reputeVikesrock has a reputation beyond reputeVikesrock has a reputation beyond reputeVikesrock has a reputation beyond reputeVikesrock has a reputation beyond reputeVikesrock has a reputation beyond reputeVikesrock has a reputation beyond reputeVikesrock has a reputation beyond repute
Send a message via AIM to Vikesrock Send a message via MSN to Vikesrock Send a message via Yahoo to Vikesrock
Re: EASY traction control?

Quote:
Originally Posted by grosh View Post
CUSE- what is the orange arrow at the top of the code?
That's a feedback node. Basically data takes one cycle to get from the input (tail of the arrow) to the output (head of the arrow).
__________________


2007 Wisconsin Regional Highest Rookie Seed & Regional Finalists (Thanks 930 & 2039)
2008 MN Regional Semifinalists (Thanks 2472 & 1756)
2009 Northstar Regional Semifinalists (Thanks 171 & 525)
Reply With Quote
  #13   Spotlight this post!  
Unread 10-03-2009, 19:56
grosh grosh is offline
Registered User
FRC #2147
 
Join Date: Feb 2008
Location: Spokane, WA
Posts: 100
grosh is an unknown quantity at this point
Re: EASY traction control?

Where can I find the feedback node?
Reply With Quote
  #14   Spotlight this post!  
Unread 10-03-2009, 19:58
s0crates s0crates is offline
Registered User
no team
Team Role: Programmer
 
Join Date: Dec 2008
Rookie Year: 2009
Location: Australia
Posts: 52
s0crates is on a distinguished road
Re: EASY traction control?

programming > structures, right before shared/local/global vars.
Reply With Quote
  #15   Spotlight this post!  
Unread 10-03-2009, 20:34
EricVanWyk EricVanWyk is offline
Registered User
no team
 
Join Date: Jan 2007
Rookie Year: 2000
Location: Boston
Posts: 1,597
EricVanWyk has a reputation beyond reputeEricVanWyk has a reputation beyond reputeEricVanWyk has a reputation beyond reputeEricVanWyk has a reputation beyond reputeEricVanWyk has a reputation beyond reputeEricVanWyk has a reputation beyond reputeEricVanWyk has a reputation beyond reputeEricVanWyk has a reputation beyond reputeEricVanWyk has a reputation beyond reputeEricVanWyk has a reputation beyond reputeEricVanWyk has a reputation beyond repute
Send a message via AIM to EricVanWyk
Re: EASY traction control?

I'll throw my bit in for the doc I wrote on this. It is located at http://thinktank.wpi.edu/ArticleRevision/262

Ain't great, but it might help a little.
Reply With Quote
Reply


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
Traction Control- Help!!!! naruto137 NI LabVIEW 0 21-02-2009 13:21
Traction Control Poll Zorkinian Programming 5 13-02-2009 11:06
Implementation of Traction Control keehun Programming 5 10-02-2009 10:02
PID traction Control dpeterson3 C/C++ 5 26-01-2009 21:11
Traction Control Algorithm Mr. Lim Programming 3 20-01-2004 14:26


All times are GMT -5. The time now is 13:06.

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