Chief Delphi

Chief Delphi (http://www.chiefdelphi.com/forums/index.php)
-   Robot Showcase (http://www.chiefdelphi.com/forums/forumdisplay.php?f=58)
-   -   2809 - Traction Control Demo (http://www.chiefdelphi.com/forums/showthread.php?t=74289)

Smoores 14-02-2009 00:19

Re: 2809 - Traction Control Demo
 
that robot looks a whole lot better than my team's rookie bot

nathanww 14-02-2009 00:28

Re: 2809 - Traction Control Demo
 
Does your ystem work for acceleration as well, or just shoving? It would be nice to see a comparison of acceleration with and without TC. The pushing thing--it looks nice, but have you collected more empirical data than "he stumbles back more with traction control on"?

crake 14-02-2009 00:53

Re: 2809 - Traction Control Demo
 
Really impressive - I'm really looking forward to watching these bots in action! In what language did you implement the traction code?

dtengineering 14-02-2009 02:04

Re: 2809 - Traction Control Demo
 
Quote:

Originally Posted by Mentor_Mike (Post 819871)
Well, I'd love to tell you all exactly how this was pulled off, but I'm honestly not sure how much detail I"m allowed to reveal. (We haven't had a discussion with the team about this yet, so I don't want to jump the gun.)

Here's what I can tell you though:
- We use two encoders, one per side, in addition to another type of sensor.
- We found the accelerometers WAY too noisey, especially with the bumpy playing surface.
- All four (well, 3 and a bit wheels) are driven, we have no idlers.
- Haven't worked out (unfortunately) how to implement any type of optical sensor to figure out linear velocity. [I'm convinced those new-fangled "gamer mouses" would work, but we don't have the $$$ to test this theory.]

BUT, I'll probably have a white paper drawn out by our first regional (Toronto) and it'll be posted for all to see.

M_M

Well, if I had to hazard a guess at what that other sensor might be, I'd be willing to guess that it is a current sensor. Since torque is proportional to motor current, you could monitor the current draw of your motor to determine at what torque your wheels started to spin, then put in some fairly simple code to limit current to that maximum amount.

Not sure why you'd need encoders with that setup... hmmm.... perhaps rather than measuring current, you are measuring voltage across the motors and comparing it to motor speed.

It looks like Ontario has spawned another great team. Good luck at Hershey Centre, GTR is a great tournament.

Jason

Vikesrock 14-02-2009 03:24

Re: 2809 - Traction Control Demo
 
Quote:

Originally Posted by nathanww (Post 820397)
Does your ystem work for acceleration as well, or just shoving? It would be nice to see a comparison of acceleration with and without TC. The pushing thing--it looks nice, but have you collected more empirical data than "he stumbles back more with traction control on"?

If you listen to the audio on the video you can hear the traction control at work. With the TC off you can hear the motors whirring away and the wheels spinning even when the robot is held stationary. With the TC on you can hear that the sound is very different, the wheels are not spinning even though the robot is being told to go forward, but held from doing so.

Mentor_Mike 14-02-2009 21:14

Re: 2809 - Traction Control Demo
 
Yep, the robot is just pushing, and will even compensate when you push back on it. The issue we found is that once you start slipping, it's really easy to move you around.

Hopefully we can get another video up when we test on the playing surface tomorrow.

360skier 14-02-2009 21:48

Re: 2809 - Traction Control Demo
 
Quote:

Originally Posted by Mentor_Mike (Post 819871)
Well, I'd love to tell you all exactly how this was pulled off, but I'm honestly not sure how much detail I"m allowed to reveal. (We haven't had a discussion with the team about this yet, so I don't want to jump the gun.)

Here's what I can tell you though:
- We use two encoders, one per side, in addition to another type of sensor.
- We found the accelerometers WAY too noisey, especially with the bumpy playing surface.
- All four (well, 3 and a bit wheels) are driven, we have no idlers.
- Haven't worked out (unfortunately) how to implement any type of optical sensor to figure out linear velocity. [I'm convinced those new-fangled "gamer mouses" would work, but we don't have the $$$ to test this theory.]

That video is no where near the final product btw. We have to calibrate and optimize for the playing surface and the weight of the trainer.

Anyway, I'll tell you what I can. Please feel free to ask quesitons. If anyone can guess what we did I'd be happy to PM you with our solution. It can be a game of sorts.
BUT, I'll probably have a white paper drawn out by our first regional (Toronto) and it'll be posted for all to see.

M_M

The method you're using appears to be the TLS method, in which the speed of the driven wheels is compared with the speed of the undriven wheels. However, since no wheels are idle than there must be another way of sensing your speed. You aren't using an optical sensor or an accelerometer, and ultrasonic sensors would get too much interference from other robots.

My only other idea would be attaching a free-swinging pendulum to the robot. An encoder or Gyro attached to the axel of this device could then be used exactly the same as an accelerometer but without the noise. This does seem like a lot of work though. Does anyone else have a simpler solution to detecting speed?

FRC4ME 14-02-2009 21:52

Re: 2809 - Traction Control Demo
 
Quote:

Originally Posted by 360skier (Post 820890)
The method you're using appears to be the TLS method, in which the speed of the driven wheels is compared with the speed of the undriven wheels. However, since no wheels are idle than there must be another way of sensing your speed. You aren't using an optical sensor or an accelerometer, and ultrasonic sensors would get too much interference from other robots.

My only other idea would be attaching a free-swinging pendulum to the robot. An encoder or Gyro attached to the axel of this device could then be used exactly the same as an accelerometer but without the noise. This does seem like a lot of work though. Does anyone else have a simpler solution to detecting speed?

Here's a hint; you don't need any bearing at all on the robot's position, speed, or acceleration to prevent slipping. You don't need current sensors, either; just an encoder on each drive wheel.

I assume 2809 is probably doing what we're doing this year. More details to come on Monday (if it works).

Mr.G 14-02-2009 22:09

Re: 2809 - Traction Control Demo
 
Quote:

Originally Posted by FRC4ME (Post 820891)
Here's a hint; you don't need any bearing at all on the robot's position, speed, or acceleration to prevent slipping. You don't need current sensors, either; just an encoder on each drive wheel.

I assume 2809 is probably doing what we're doing this year. More details to come on Monday (if it works).

We are using a torque sensor on each wheel. You can only apply so much torque to a wheel before it slips. Since everything is constant (robot weight, playing surface, wheel, ...) then all you have to do is apply power to the wheel till you reach a predetermined torque target and the wheel will not slip and you will approach max acceleration and pushing power.

I don't know if this is how you are doing it, I am guessing, but that is what we are doing.

Mentor_Mike 14-02-2009 23:53

Re: 2809 - Traction Control Demo
 
Quote:

Originally Posted by Mr.G (Post 820907)
We are using a torque sensor on each wheel. You can only apply so much torque to a wheel before it slips. Since everything is constant (robot weight, playing surface, wheel, ...) then all you have to do is apply power to the wheel till you reach a predetermined torque target and the wheel will not slip and you will approach max acceleration and pushing power.

I don't know if this is how you are doing it, I am guessing, but that is what we are doing.

Torque sensor eh? For curiousity sake, how do those work in your system?

Mentor_Mike 14-02-2009 23:55

Re: 2809 - Traction Control Demo
 
Quote:

Originally Posted by 360skier (Post 820890)
The method you're using appears to be the TLS method, in which the speed of the driven wheels is compared with the speed of the undriven wheels. However, since no wheels are idle than there must be another way of sensing your speed. You aren't using an optical sensor or an accelerometer, and ultrasonic sensors would get too much interference from other robots.

My only other idea would be attaching a free-swinging pendulum to the robot. An encoder or Gyro attached to the axel of this device could then be used exactly the same as an accelerometer but without the noise. This does seem like a lot of work though. Does anyone else have a simpler solution to detecting speed?

Dude, that sounds WAY complicated. The trouble we're finding is that with the bumpiness (is that even a word?) of the surface, anytype of sensor like that creates (or created in our case as we stayed FAR away from it) a lot of noise. Never thought of a pendulum though, that would be kinda neat. But again, with the vibration I feel like the dampening system would need to be quite intense.

FRC4ME 15-02-2009 00:22

Re: 2809 - Traction Control Demo
 
Quote:

Originally Posted by Mr.G (Post 820907)
We are using a torque sensor on each wheel. You can only apply so much torque to a wheel before it slips. Since everything is constant (robot weight, playing surface, wheel, ...) then all you have to do is apply power to the wheel till you reach a predetermined torque target and the wheel will not slip and you will approach max acceleration and pushing power.

I don't know if this is how you are doing it, I am guessing, but that is what we are doing.

A torque sensor? I never thought of that. May I see which particular sensor you are using?

Anyway, it turns out the torque a DC motor produces is related only to the voltage (effective) you are sending it and the rpm of the motor. We measure the rpm of the motor with the encoder, plug that into the equation, and get back the maximum voltage we can send without causing enough torque to slip.

The beauty of the system is that it involves no PID loops, no tuning, no trial-and-error. We have about 15 measureable constants and 2 measureable variables (battery voltage and motor rpm), but nothing needs to be manually tuned. Yay for physics.

FRC4ME 15-02-2009 00:25

Re: 2809 - Traction Control Demo
 
Quote:

Originally Posted by Mentor_Mike (Post 820984)
Dude, that sounds WAY complicated. The trouble we're finding is that with the bumpiness (is that even a word?) of the surface, anytype of sensor like that creates (or created in our case as we stayed FAR away from it) a lot of noise. Never thought of a pendulum though, that would be kinda neat. But again, with the vibration I feel like the dampening system would need to be quite intense.

Yeah; my team also gave up on the accelerometer after one day of testing. The noise is too high for any integration to be useful at all. If you tilt the thing one tenth of a degree, it will within seconds think the robot is driving across the floor at 12 ft/s.

Mentor_Mike 15-02-2009 00:26

Re: 2809 - Traction Control Demo
 
Quote:

Originally Posted by FRC4ME (Post 821014)
A torque sensor? I never thought of that. May I see which particular sensor you are using?

Anyway, it turns out the torque a DC motor produces is related only to the voltage (effective) you are sending it and the rpm of the motor. We measure the rpm of the motor with the encoder, plug that into the equation, and get back the maximum voltage we can send without causing enough torque to slip.

The beauty of the system is that it involves no PID loops, no tuning, no trial-and-error. We have about 15 measureable constants and 2 measureable variables (battery voltage and motor rpm), but nothing needs to be manually tuned. Yay for physics.

I feel like you'll also need current.... see the power equation.

And no PID? Are you just doing direct drive with a variable cap? (To hold the torque.)

Tom Bottiglieri 15-02-2009 10:10

Re: 2809 - Traction Control Demo
 
Quote:

Originally Posted by FRC4ME (Post 821014)

The beauty of the system is that it involves no PID loops, no tuning, no trial-and-error. We have about 15 measureable constants and 2 measureable variables (battery voltage and motor rpm), but nothing needs to be manually tuned. Yay for physics.

I've always found model based control systems to be kind of a crapshoot. Maybe its just me though.

We found follower wheels to be the optimal solution. It may not have the best results, but its a simple system thats easy to integrate and works good enough.


All times are GMT -5. The time now is 16:41.

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