Go to Post The question is like asking "Is it better to drive by looking at a map the whole time or by remembering where you want to go and watching the road instead?" - lukevanoort [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
  #16   Spotlight this post!  
Unread 22-03-2009, 21:41
windell747 windell747 is offline
Registered User
FRC #2477
Team Role: Mentor
 
Join Date: Jan 2008
Rookie Year: 2001
Location: Hawaii
Posts: 158
windell747 will become famous soon enoughwindell747 will become famous soon enough
Re: EASY traction control?

Another simple form of traction control as it is kind of hinted at in the WPI joystick filter paper is to use the PID rate limiter to go between the joystick command and the motor command. We tried this quickly and realized a dramatic improvement, however is the EGU/min value was too small, the ramp up and ramp down would take a while especially as the motor command was working its way (at the slow rate) through the deadband for the jaguars. I guess you could disable the deadband, but I'm not sure how this will perform on your bot.
Reply With Quote
  #17   Spotlight this post!  
Unread 22-03-2009, 21:44
web_master_dpep's Avatar
web_master_dpep web_master_dpep is offline
"What you do, is who you are"
AKA: Dustin Pepper
FRC #0066 (Flyers)
Team Role: Webmaster
 
Join Date: Nov 2007
Rookie Year: 2008
Location: Ypsilanti, Michigan
Posts: 46
web_master_dpep is an unknown quantity at this point
Send a message via AIM to web_master_dpep Send a message via Yahoo to web_master_dpep
Re: EASY traction control?

Umm, I personally have never programmed but we just just start out slow and begin to accelerate quicker and quicker so we dont lose grip of the floor and our wheels dont begin to spin. If your wheels to just spin then you have lost all traction, so just start slow then speed up I guess.
__________________
ŴΣß ΜăşťΣΓ đÞΣÞÞ
Reply With Quote
  #18   Spotlight this post!  
Unread 25-03-2009, 13:37
Brdn666's Avatar
Brdn666 Brdn666 is offline
Registered User
AKA: Brandon
FRC #2604 (Metal & Soul)
Team Role: Programmer
 
Join Date: Jan 2008
Rookie Year: 2008
Location: Capac, MI
Posts: 24
Brdn666 is an unknown quantity at this point
Send a message via Yahoo to Brdn666
Re: EASY traction control?

You could program so "electric gears". Just have 2 or 3 settings that subtract from your joystick output. To get the buttons to switch without holding the button down, get three selects (programming/comparison). Wire the bottom's select into the false of the one above. Repeat, wiring the very top to the bottom (A feedback node should appear). Put the buttons select into the select, and then put whatever values you want in the true. The output of the top goes into your add/subtract and the joystick goes in the top. Put in a catch for when you add/subtract too much and go backwards when you aren't moving at all.
__________________
Reply With Quote
  #19   Spotlight this post!  
Unread 30-03-2009, 20:30
RoboMaster's Avatar
RoboMaster RoboMaster is offline
Alum, former programmer&co-captain
FRC #2472 (The Centurions)
Team Role: Mentor
 
Join Date: Apr 2008
Rookie Year: 2008
Location: Minnesota, Twin Cities
Posts: 268
RoboMaster has a brilliant futureRoboMaster has a brilliant futureRoboMaster has a brilliant futureRoboMaster has a brilliant futureRoboMaster has a brilliant futureRoboMaster has a brilliant futureRoboMaster has a brilliant futureRoboMaster has a brilliant futureRoboMaster has a brilliant futureRoboMaster has a brilliant futureRoboMaster has a brilliant future
Re: EASY traction control?

One of our programmers is a wicked smart calculus and programming guy and he rigged up this monster program (at least to me) that would decreace the speed of a wheel if it was slipping, therefore giving it more traction (we have four wheel drive). I don't know the details, but he took the PMW signal that we were sending to the motor and figured out how fast the wheel should be going. Then, using the encoders that we installed on our gearboxes (which are basicaly rotation sensors), we figured out the actual speed of the wheel. We compared those two values and if the wheel was going faster than it should, it must be slipping, so we reduced the power to that wheel. (the code is a lot more complicating than that, though (it's LabVIEW, by the way))

We also have a system that has been previously mentioned, where instead of powering the wheels at the exact speed that the joystick is telling them to run, the code just increaces the speed of the wheel incrementally if the joystick-user wants to go faster/slower. We call this our acceleration control system.

But actually, I personally find the acceleration control stated above bad. Because the robot speeds up and slows down slowly, the turning and stopping is delayed and effectivly the robot's reaction time is slow. This was very cumbersome and most of the time people on our team were just constanly holding down a button that we had programmed which would turn off this feature and we would just drive carefully.

I have thought about keeping our traction control system, but re-doing our acceleration control system. Since mostly we were just driving carefully and slowly, we could simply divide the joystick value by 2 (or something) and then our robot would drive slower and we would have more control. In many games, and especially in 2009, drivers are manuvering precisely and this control is a giant benifit. If you did need to go fast (like you were trying to sprint down to the end of the field), then one could hold down/push a joystick button and the motors would use the actual joystick values and would not divide them by 2.

So that's my input, see what you think. To restate, I think the incremental acceleration control has merit, but after trying it out on a robot, I found it to be cumbersome because of the slow response time of the robot and would have rather liked to have had a slower robot that therefore had more control.

Whew, what an essay!
__________________
My engineering blog: noeticbrainwaves.blogspot.com

I'm not slacking, my code's compiling
...and I'm using LabVIEW
Reply With Quote
  #20   Spotlight this post!  
Unread 01-04-2009, 20:23
biojae's Avatar
biojae biojae is offline
Likes Omni drives :)
AKA: Justin Stocking
FTC #5011 (BOT SQUAD) && FTC#72(Garage bots)&& FRC#0399 (Eagle Robotics)
Team Role: College Student
 
Join Date: Oct 2008
Rookie Year: 2008
Location: Lancaster
Posts: 276
biojae is a jewel in the roughbiojae is a jewel in the roughbiojae is a jewel in the rough
Re: EASY traction control?

What 399 did was a simple open loop system. We took the joystick value and cubed it. this makes the values non-linear and has some deadband in the motors. The drivers have more control over the speed in the low traction environment.
Attached Thumbnails
Click image for larger version

Name:	Stick Shaping.jpg
Views:	66
Size:	32.5 KB
ID:	7771  
__________________
FTC Team 72 - No site
FRC Team 399 - http://www.team399.org
2010 Rockwell Collins Innovation in Control Award - (Use of the CAN bus, among other reasons) Phoenix, Arizona!
Reply With Quote
  #21   Spotlight this post!  
Unread 01-04-2009, 20:39
ComradeNikolai ComradeNikolai is offline
Registered User
AKA: Nicholas
FRC #2603 (Team Hornet)
Team Role: Mentor
 
Join Date: Feb 2008
Rookie Year: 2008
Location: Medina, Ohio
Posts: 203
ComradeNikolai is a splendid one to beholdComradeNikolai is a splendid one to beholdComradeNikolai is a splendid one to beholdComradeNikolai is a splendid one to beholdComradeNikolai is a splendid one to beholdComradeNikolai is a splendid one to beholdComradeNikolai is a splendid one to behold
Re: EASY traction control?

Quote:
Originally Posted by RoboMaster View Post
But actually, I personally find the acceleration control stated above bad. Because the robot speeds up and slows down slowly, the turning and stopping is delayed and effectivly the robot's reaction time is slow. This was very cumbersome and most of the time people on our team were just constanly holding down a button that we had programmed which would turn off this feature and we would just drive carefully.
During our driver tryout period, most of them experienced the same problem, so I switched the traction control from automatically enabled to automatically disabled. It works well for accelerating and smooth curves when you're not colliding into other robots but, once you hit something, the system gets thrown off. Personally, I found it splendid to use until it was thrown off (and when I drove, I used it often, for what it was designed for), but our other drivers had other preferences.

Having a disable/enable feature is a good idea.
__________________
I cut myself shaving with Occam's razor.

Reply With Quote
  #22   Spotlight this post!  
Unread 02-04-2009, 09:33
LieningOver's Avatar
LieningOver LieningOver is offline
Registered User
AKA: Shane L
FRC #1918 (NC Gears)
Team Role: Human Player
 
Join Date: Apr 2009
Rookie Year: 2008
Location: Fremont
Posts: 1
LieningOver is an unknown quantity at this point
Re: EASY traction control?

On our team we realized that traction control wasn't very important, our drivers just need good self control. Especially if you have a low center of gravity like our robot Otis
Reply With Quote
  #23   Spotlight this post!  
Unread 03-04-2009, 04:25
kapolavery's Avatar
kapolavery kapolavery is offline
All Your Base Are Belong to FIRST
AKA: Avery-John Domingo
FRC #2445 (RoboKAP)
Team Role: Alumni
 
Join Date: Feb 2009
Rookie Year: 2008
Location: Kapolei, Hawaii
Posts: 110
kapolavery is a splendid one to beholdkapolavery is a splendid one to beholdkapolavery is a splendid one to beholdkapolavery is a splendid one to beholdkapolavery is a splendid one to beholdkapolavery is a splendid one to beholdkapolavery is a splendid one to beholdkapolavery is a splendid one to behold
Re: EASY traction control?

yea i read all that stuff on traction control and its some heavy stuff to grasp..
so yea like most teams..

we just set the values on the controller putting different speed options, so like on the logitech kit controller, button 3 would be a set slower value to avoid slippage and trigger would be max value speed.. so its up to the driver to figure out what speeds to use and when..
__________________
"There's always next year..."

Reply With Quote
  #24   Spotlight this post!  
Unread 04-04-2009, 16:26
vamfun vamfun is offline
Mentor :Contol System Engineer
AKA: Chris
FRC #0599 (Robodox)
Team Role: Engineer
 
Join Date: Jan 2009
Rookie Year: 2003
Location: Van Nuys, California
Posts: 182
vamfun is a glorious beacon of lightvamfun is a glorious beacon of lightvamfun is a glorious beacon of lightvamfun is a glorious beacon of lightvamfun is a glorious beacon of lightvamfun is a glorious beacon of light
Send a message via AIM to vamfun
Re: EASY traction control?

Well, we decided traction control was not necessary by default... i.e. the encoders were inop so the driver learned fast to take advantage of our maneuverability to do a kind of self induced pit maneuver to spin the trailer around and avoid a pursuer. So a short wheel base and a "squared" stick transfer function seemed to work well.

We actually had the software/encoders for a three level traction control.

The first level was a backup and just the rate limited stick which others have mentioned. It does limit accel but drivers complain of sluggishness. This is caused by the rate limit being upstream of the motor lag. The motor follows the rate limited stick but its response is delayed about .4 sec. This delayed acceleration response is noticeable by the drivers. Also even though the wheels are not slipping, the delay reduces the benefits over a slipping robot.

The second level was a motor torque limiter. This was achieved by limiting difference between motor speed and commanded speed (effectively a current limiter). Only motor encoders are necessary for this and several teams were very successful with this approach.

The third level was real time adjustment of the motor torque limit value based upon wheel slip speed. The wheel slip speed requires reference wheels with encoders. V_slip = V_wheel-V_ref. If V_slip>0 then the limit was reduced by some factor.


I wrote a small ppt paper to introduce the subject of traction control for the software group early on in the project. I offer it as an addition source of confusion for you
Attached Files
File Type: zip Traction Control 2.zip (74.5 KB, 44 views)
Reply With Quote
  #25   Spotlight this post!  
Unread 11-04-2009, 19:47
kamocat's Avatar
kamocat kamocat is offline
Test Engineer
AKA: Marshal Horn
FRC #3213 (Thunder Tech)
Team Role: Mentor
 
Join Date: May 2008
Rookie Year: 2008
Location: Tacoma
Posts: 894
kamocat is just really nicekamocat is just really nicekamocat is just really nicekamocat is just really nicekamocat is just really nice
Send a message via AIM to kamocat Send a message via MSN to kamocat
Re: EASY traction control?

Here's a time-based VI for you, so you don't have to worry about inconsistant execution rate.
(again, you wire the dbl value (orange wire) through it)
I found that the drivers complained of sluggishness mainly because of the slow ramp-down. Because the ramp-down didn't seem to be neccessary (you can turn out of the way, you can turn sideways, etc), I made it optional to disclude it.
It's a polymorphic VI, in this case meaning you can use it for an array of dbl or a scalar dbl.
The 'setpoint' is your input.

It's under "ramp" at
http://kamocat.com/programming.html#control

I'm still working on something that describes robot movement in turn radius, forward speed, and sideways slip.
__________________
-- Marshal Horn

Last edited by kamocat : 11-04-2009 at 19:50.
Reply With Quote
  #26   Spotlight this post!  
Unread 13-04-2009, 22:56
JasonF JasonF is offline
Registered User
FRC #2848 (The All Sparks)
Team Role: Programmer
 
Join Date: Apr 2009
Rookie Year: 2009
Location: Irving Texas
Posts: 24
JasonF is an unknown quantity at this point
Re: EASY traction control?

Quote:
Originally Posted by Brdn666 View Post
You could program so "electric gears". Just have 2 or 3 settings that subtract from your joystick output. To get the buttons to switch without holding the button down, get three selects (programming/comparison). Wire the bottom's select into the false of the one above. Repeat, wiring the very top to the bottom (A feedback node should appear). Put the buttons select into the select, and then put whatever values you want in the true. The output of the top goes into your add/subtract and the joystick goes in the top. Put in a catch for when you add/subtract too much and go backwards when you aren't moving at all.
This is going to be the easiest thing to program for the beginner.
We did a similar thing with 2 multipliers to the Axis Value depending on the button.

In our set up we used only the Y-Axis for the Value. We had a Trigger and a Pinkie Button, so the Trigger was a (y*.65) Value. The driver with the trigger depressed could use the slower speed in addition to the fact he would creep up to the full value on the axis. The Pinkie finger would be another value... depending on what you needed.

It isn't an elegant solution to the problem, but it worked for us. We didn't use a standard Tank drive system so Spinning Out was not as much of an issue for us.

And if your driver complains about using this method go tell him to program what he wants

I attached our code... and you get to witness my Worst photoshop job ever...
Attached Thumbnails
Click image for larger version

Name:	control.jpg
Views:	44
Size:	74.8 KB
ID:	7824  

Last edited by JasonF : 13-04-2009 at 23:01.
Reply With Quote
  #27   Spotlight this post!  
Unread 13-04-2009, 23:25
Burmeister #279's Avatar
Burmeister #279 Burmeister #279 is offline
What Time Is It?
AKA: Nick Burmeister
FRC #0279 (TechFusion)
Team Role: Programmer
 
Join Date: Nov 2008
Rookie Year: 2007
Location: Toledo
Posts: 207
Burmeister #279 is a glorious beacon of lightBurmeister #279 is a glorious beacon of lightBurmeister #279 is a glorious beacon of lightBurmeister #279 is a glorious beacon of lightBurmeister #279 is a glorious beacon of lightBurmeister #279 is a glorious beacon of light
Send a message via AIM to Burmeister #279
Re: EASY traction control?

Quote:
Originally Posted by JasonF View Post
This is going to be the easiest thing to program for the beginner.
....
And if your driver complains about using this method go tell him to program what he wants
...

This is a terrible way to run your programming. Being a driver and a programmer, i know that the programming group should do their best to build controls the way the drive team needs it, even if it's not the easiest to do. Even if you were kidding/being sarcastic its not very good teamwork...
__________________
WHAT TIME IS IT? TWO SEVEN NINE!!! [Team B =) ] Awards: 4 Safety, 2 Ind. Design, 2 Xerox, 1 Nat. Champs
2009 Buckeye Semi-Finalists (1014 & 695) || 2008 GLR Safety Award || 2006 GLR Safety Award
2005 Buckeye Regional Champs (67 & 274) & GM Industrial Design Award & Safety Award GLR Quarter Finalist & Xerox Creativity Award & Safety Award National Xerox Creativity Award & Curie Quarter Finalist (1126 & 180)
2004 Buckeye Delphi Driving Tomorrows Technology Award & Quarter Finalist GLR Champs Nationals Curie Division Finalist
2003 GLR GM Industrial Design Award || 2001 National Newton Division Winner & National Champions
2000 MI DaimlerChrysler Team Spirit Award
Reply With Quote
  #28   Spotlight this post!  
Unread 13-04-2009, 23:36
JasonF JasonF is offline
Registered User
FRC #2848 (The All Sparks)
Team Role: Programmer
 
Join Date: Apr 2009
Rookie Year: 2009
Location: Irving Texas
Posts: 24
JasonF is an unknown quantity at this point
Re: EASY traction control?

Quote:
Originally Posted by Burmeister #279 View Post

This is a terrible way to run your programming. Being a driver and a programmer, i know that the programming group should do their best to build controls the way the drive team needs it, even if it's not the easiest to do. Even if you were kidding/being sarcastic its not very good teamwork...
I didn't realize I would offend someone. Sorry I guess...

to clarify I am the only programmer and the assistant Driver. I am always asking the main driver with how he can best drive the robot, is the crab drive correcting too fast, what feels most responsive, etc...

Last edited by JasonF : 13-04-2009 at 23:38.
Reply With Quote
  #29   Spotlight this post!  
Unread 13-04-2009, 23:54
Burmeister #279's Avatar
Burmeister #279 Burmeister #279 is offline
What Time Is It?
AKA: Nick Burmeister
FRC #0279 (TechFusion)
Team Role: Programmer
 
Join Date: Nov 2008
Rookie Year: 2007
Location: Toledo
Posts: 207
Burmeister #279 is a glorious beacon of lightBurmeister #279 is a glorious beacon of lightBurmeister #279 is a glorious beacon of lightBurmeister #279 is a glorious beacon of lightBurmeister #279 is a glorious beacon of lightBurmeister #279 is a glorious beacon of light
Send a message via AIM to Burmeister #279
Re: EASY traction control?

thank you for clarifying. just putting my two cents in too fast i guess, sorry for snapping at you textually.
__________________
WHAT TIME IS IT? TWO SEVEN NINE!!! [Team B =) ] Awards: 4 Safety, 2 Ind. Design, 2 Xerox, 1 Nat. Champs
2009 Buckeye Semi-Finalists (1014 & 695) || 2008 GLR Safety Award || 2006 GLR Safety Award
2005 Buckeye Regional Champs (67 & 274) & GM Industrial Design Award & Safety Award GLR Quarter Finalist & Xerox Creativity Award & Safety Award National Xerox Creativity Award & Curie Quarter Finalist (1126 & 180)
2004 Buckeye Delphi Driving Tomorrows Technology Award & Quarter Finalist GLR Champs Nationals Curie Division Finalist
2003 GLR GM Industrial Design Award || 2001 National Newton Division Winner & National Champions
2000 MI DaimlerChrysler Team Spirit Award
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:05.

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