Chief Delphi

Chief Delphi (http://www.chiefdelphi.com/forums/index.php)
-   2001 (http://www.chiefdelphi.com/forums/forumdisplay.php?f=40)
-   -   Forward/Reverse difference in drill motors. (http://www.chiefdelphi.com/forums/showthread.php?t=13342)

archiver 24-06-2002 02:37

Forward/Reverse difference in drill motors.
 
Posted by Joe at 03/20/2001 7:22 PM EST


Student on team #506 from St. Anthony's HS.



Our team has noticed (as was said on here months ago) that 1 drill motor in forward and 1 in reverse causes a difference in speed which makes the robot turn. We were wondering if anyone knew how to edit the programming to counteract this or if there was an easier way of setting up the motors so that they could both go forward and still have the robot drive straight.
Thanks in advance.

archiver 24-06-2002 02:37

Re: Forward/Reverse difference in drill motors.
 
Posted by Stephen at 03/20/2001 7:50 PM EST


Student on team #122, NASA Knights, from Grafton High School (Robotics team is at NHGS) and NASA.


In Reply to: Forward/Reverse difference in drill motors.
Posted by Joe on 03/20/2001 7:22 PM EST:



I'm a little confused, do you mean that, by the way your motors are positioned, to drive the robot foward one motor has to go forward while the other one goes in reverse?


: Our team has noticed (as was said on here months ago) that 1 drill motor in forward and 1 in reverse causes a difference in speed which makes the robot turn. We were wondering if anyone knew how to edit the programming to counteract this or if there was an easier way of setting up the motors so that they could both go forward and still have the robot drive straight.
: Thanks in advance.



archiver 24-06-2002 02:37

Re: Forward/Reverse answer
 
Posted by nick237 at 03/20/2001 8:22 PM EST


Engineer on team #237, sie h2o bots, from Watertown high school ct and sieman co.


In Reply to: Re: Forward/Reverse difference in drill motors.
Posted by Stephen on 03/20/2001 7:50 PM EST:



Stephen. The problem with drill motors is this. when you place two motors on your robot one points left and one right.
If both drills are running forward the wheels on one side will be going in the opposit direction as the other side.
So to counter this you have to reverse the direction of the drill on one side so they both are driving wheels in the same direction together.
A problem with this is that the drill thats going in reverse runs slower than the other side so the robot tends to steer poorly.
Does that help you understand whats going on?
nick237



: I'm a little confused, do you mean that, by the way your motors are positioned, to drive the robot foward one motor has to go forward while the other one goes in reverse?

:
: : Our team has noticed (as was said on here months ago) that 1 drill motor in forward and 1 in reverse causes a difference in speed which makes the robot turn. We were wondering if anyone knew how to edit the programming to counteract this or if there was an easier way of setting up the motors so that they could both go forward and still have the robot drive straight.
: : Thanks in advance.



archiver 24-06-2002 02:37

this question appears over and over again
 
Posted by Ken Leung at 03/20/2001 10:02 PM EST


Student on team #192, Gunn Robotics Team, from Henry M. Gunn Senior High School.


In Reply to: Forward/Reverse difference in drill motors.
Posted by Joe on 03/20/2001 7:22 PM EST:



A lot of people recommend solving this problem by driver's compensation...

Usually, people use two joysticks and each control one drill motor. So, by slowing down one side of the drive train, the robot will go straight.

This method is more preferable because if you are fixing it through software, you will always end up reducing the power output to the drill motor(s). Therefore you won't be able to give full power to both motors when needed.

Of course you can always program a button so that whenever that button is pressed, you will be able to output full power to the motors. But if you are doing that way, you might as well have the drivers control the drive train themselves and let them do whatever they want without any restrictions from the software.

All it take is a bit more practice to perfect it...


But if you really want to edit the software, then all you have to do is reduce power output to the forward-spinning motor so that the two motor¡¦s speed will match up. Reduce the range of power output compare to the normal range of your joystick. Just edit the number until you feel it is as straight as you want. Also, make sure you remember that when the robot is driving backward, the forward-spinning motor is the different side.

As for a mechanical way of solving this problem, you can always rotate the motors so that the output shaft of both motor are facing the same way... However, there are few mechanical disadvantages to this solution:

Your two side of the drive train are forced to be closer together, making the robot easier to tip on its side comparing to a drive train that's as wide as possible.

You risk exposing the wire coming out of the drill motor to the side of the robot, risking unnecessary damage to the motor/wires.

Your center of mass of the base will be shifted closer to the side instead of the center.


You might be able to rotate the motors vertically so that one is pointing upward and the other downward. However, that will also risk unnecessary damage to the wiring on the pointing upward motor. You have to remember that the drill motor assembly is pretty long, so you need to leave enough room vertically to fit it in the drive train, meaning a higher center of mass for the robot. And of course, you will need some sort of Bevel gear to transfer the vertical rotational motion into horizontal motion. However, you want to use as little gears as possible because no gears have an efficiency of 100%, meaning when ever you use more gears, there will be more power lost.



archiver 24-06-2002 02:38

As long as you're using bevel gears...
 
Posted by Gregory Ross at 03/20/2001 10:22 PM EST


Engineer on team #330, Beach Bots, from Hope Chapel Academy and NASA/JPL.


In Reply to: this question appears over and over again
Posted by Ken Leung on 03/20/2001 10:02 PM EST:



How about keeping them laying flat, but with one pointing towards the front of the robot, and the other pointing towards the rear?


: You might be able to rotate the motors vertically so that one is pointing upward and the other downward. However, that will also risk unnecessary damage to the wiring on the pointing upward motor. You have to remember that the drill motor assembly is pretty long, so you need to leave enough room vertically to fit it in the drive train, meaning a higher center of mass for the robot. And of course, you will need some sort of Bevel gear to transfer the vertical rotational motion into horizontal motion. However, you want to use as little gears as possible because no gears have an efficiency of 100%, meaning when ever you use more gears, there will be more power lost.



archiver 24-06-2002 02:38

great suggestion
 
Posted by Ken Leung at 03/20/2001 11:43 PM EST


Student on team #192, Gunn Robotics Team, from Henry M. Gunn Senior High School.


In Reply to: As long as you're using bevel gears...
Posted by Gregory Ross on 03/20/2001 10:22 PM EST:



wow, I never thought of that...

I learn a new thing every day in this forum.

The only thing about using bevel gear is that we never quite have the machine capability to manufacture a gearbox with great efficiency... Usually the load on the drive train is too great for the gearbox we made that we always ended up bending the shaft.

Or the gears never quite fit with each other and the load made the gears slip too much and made too loud of a grinding noise...

making gear boxes are just hard for lots of people...



archiver 24-06-2002 02:38

Re: great suggestion
 
Posted by Matt Leese at 03/21/2001 12:43 AM EST


Other on team #73, Tigerbolt, from Edison Technical HS and Alstom & Fiber Technologies & RIT.


In Reply to: great suggestion
Posted by Ken Leung on 03/20/2001 11:43 PM EST:



One of the inate problems with bevel gears is that they always have side loads applied to the shaft. It's also hard to support the shaft on both sides of both gears. We used bevel gears (when I was on 7) in 2000 and they gave us nothing but problems. Part of it was there was no gearing ratio but the bevel gears just exasperated that problem. We destroyed several motors this way.

Matt who refused to use bevel gears in drive trains now....

archiver 24-06-2002 02:38

Does SPI sell worm gears?
 
Posted by Kevin Sevcik at 03/21/2001 8:04 AM EST


Other on team #57, Leopards, from BT Washington and the High School for Engineering Professions and Exxon, Kellog Brown & Root, Powell Electrical.


In Reply to: Re: great suggestion
Posted by Matt Leese on 03/21/2001 12:43 AM EST:



Don't really have my SPI catalog by me at the moment, but that would seem like one possible solution, instead of using bevel gears. Plus, unless my thinking is totally off this morning, if you could get reverse threaded ones, you woudn't have to worry about flipping the motors on each side of the robot. The only downside would be the extra friction inherent in a worm drive. You'd need lots of lube. Hmm, plus, worm drives aren't very back drivable, so you'd have to traing the drivers not to stop too suddenly. Still, it's a thought. Any problems that I've missed?

archiver 24-06-2002 02:38

worm gears are extremely inefficient (EOM)
 
Posted by Ken Leung at 03/21/2001 1:53 PM EST


Student on team #192, Gunn Robotics Team, from Henry M. Gunn Senior High School.


In Reply to: Does SPI sell worm gears?
Posted by Kevin Sevcik on 03/21/2001 8:04 AM EST:



: Don't really have my SPI catalog by me at the moment, but that would seem like one possible solution, instead of using bevel gears. Plus, unless my thinking is totally off this morning, if you could get reverse threaded ones, you woudn't have to worry about flipping the motors on each side of the robot. The only downside would be the extra friction inherent in a worm drive. You'd need lots of lube. Hmm, plus, worm drives aren't very back drivable, so you'd have to traing the drivers not to stop too suddenly. Still, it's a thought. Any problems that I've missed?



archiver 24-06-2002 02:38

you'll be sorry if you use bevel gears (imho) + free code
 
Posted by Joe Johnson at 03/21/2001 10:44 AM EST


Engineer on team #47, Chief Delphi, from Pontiac Central High School and Delphi Automotive Systems.


In Reply to: this question appears over and over again
Posted by Ken Leung on 03/20/2001 10:02 PM EST:



I really recommend that you think hard before implementing a cure that is likely worse than the illness.

Unless you are very careful, bevel gears will be a constant source of problems for you.

It is not that hard to fix it in software if you like.

With advanced planning, it is not that hard to make your motors rotate in the same direction.

Finally, it is also not that hard (imho) to train your drivers to drive through it.

All of these solutions beat bevel gears and (horrors!) worm gears by a long shot.

Joe J.

P.S. Code below will give more gas to the wheel running in reverse.


PWMLeft is left wheel output
(assume fwd robot motion runs motor in reverse)
PWMRight is right wheel output
(assume fwd robot motion runs motor is forward)


BOOST_NUM CON 140
LOG2_BOOST_DEN CON 7
'Effective boost = BOOST_NUM / 2^LOG2_BOOST_DEN

'in the above case boost= 140 / 128 = 1.09

'use whatever means you normally use to generate the

'PWM outputs for the left and right wheels then use the

'following code to modify these values


if PWMLeft > LOG2_BOOST_DEN + $80 MAX $FE
NoBoostLeft:
if PWMRight > $80 then NoBoostRight
PWMLeft = $8080 - ($80 - PWMLeft * BOOST_NUM >> LOG2_BOOST_DEN) MIN $8000 - $8000
NoBoostRight:

The above code assumes 128 is "off" (128 = $80) for both wheels, this is the standard Victor calibration.

Good Luck.

P.P.S. I have seen the charts from the motor mfg (they are too bad of a fax to post) in both directions. According the these charts, the performance difference is only a few percentage points. Yet, Folks I know and love swear by the fact they see real control problems due to motor rotation directions. So... I differ to their knowledge born of experience. I offer the (untested) code above off the top of my head in the spirit of gracious professionalism. Let me know if it does not work. I am pretty confident that it is right but I am human so it may not be 100% correct.




archiver 24-06-2002 02:38

Joe is 100% correct!!
 
Posted by Rob Zeuge at 03/21/2001 12:19 PM EST


Coach on team #121, Rhode Warrior, from University of Rhode Island and Naval Undersea Warfare Center.


In Reply to: you'll be sorry if you use bevel gears (imho) + free code
Posted by Joe Johnson on 03/21/2001 10:44 AM EST:



Joe is right, simple planning, coding, or practice (or any compbination thereof) are the best solutions to this problem.

You lose the same amount of motor power through programming a scale as through human compensation, because either will match the speed of the motors to the slower one. Programming is just a bit more consistent.

Also finding a way to mount the motors in the same direction is not that hard, it just may take a bit of planning and space. This should not be a problem, since many teams prefer to construct a drive base early on in the six weeks of construction.

Best of luck

Robert Zeuge
rzeu0470@postoffice.uri.edu



archiver 24-06-2002 02:38

Is this really necessary??
 
Posted by Tom S. at 03/21/2001 12:36 PM EST


Student on team #177, The Bobcats, from South Windsor High School and International Fuel Cells.


In Reply to: Joe is 100% correct!!
Posted by Rob Zeuge on 03/21/2001 12:19 PM EST:



The difference in speed is almost unoticable unless you have really geared up the drive on your bot.... we have a slgiht curve when we go full throttle forward, but it is easily correctable by very minute turns by the driver.

This all comes down to whether it really makes a difference. Re-designing the base of your bot to accomidate this small imporvement may be more work than it is worth. On the other hand, if it is a real problem to the function of your robot, re-doing the base may be a viable option.

Key thing to remember, if you keep it simple, things *usually* work smoother. Doing something through code is a better option (to me at least) than redesigning hte base to make the motors go at teh same speed.

Just my thoughts

Tom Schindler
Team #177


archiver 24-06-2002 02:38

Yes, it can be necessary
 
Posted by Matt Leese at 03/21/2001 12:53 PM EST


Other on team #73, Tigerbolt, from Edison Technical HS and Alstom & Fiber Technologies & RIT.


In Reply to: Is this really necessary??
Posted by Tom S. on 03/21/2001 12:36 PM EST:



It can actually be a significant drift affect. It all depends on the design of your robot. Generally, with a two-wheel chair wheel and two-caster wheel robot with casters in the front, the drift can be large. This is especially true when operating at very high speeds (take a look at 7's robot last year -- it had no gearing and the drift was horendous). When dealing with 4 non-swivel caster wheels (as 177 is, I believe), the drift is much less noticable. This is because the robot is not as manuverable because there is additional friction from all the wheels being dragged in a turn as opposed to casters where there is much less dragging. It is also much more of an issue when using one-joystick drive because that makes it much harder to compensate.

Matt who fixed it in code last year on 7 but found there was no need to this year on 73's robot

archiver 24-06-2002 02:38

It is really rather easy to fix...
 
Posted by Thomas A. Frank at 03/21/2001 2:27 PM EST


Engineer on team #121, The Islanders/Rhode Warrior, from Middletown (RI) High School and Naval Undersea Warfare Center.


In Reply to: Yes, it can be necessary
Posted by Matt Leese on 03/21/2001 12:53 PM EST:



Hello All;

This is one of those problems that can be fixed fairly easily. Let's assume you are directly driving the wheels on your machine. Take the side where the motor is going CCW for forward and disconnect it. Attach to the wheel a shaft that is slightly longer than the motor/gearbox assembly. Put a small sprocket on the end of this shaft. Put a small sprocket (same number of teeth as the previous step) on the output shaft of the drill assembly. Flip the drill assembly around so the sprockets line up, attach chain between them, mount drill assembly.

The motors are now going the same way for motion in the same direction. Your motor is off from where it was before by the diameter of the sprockets, which shouldn't be too far.

The reason you need to do this in some machines is because the drill motors work better (by roughly 10-15%) in the direction that is what is used to drill or drive IN screws (CW shaft output). Which makes sense, since it is usually harder to put screws in than take them out, so the drill maker has "retimed" the motor to work better in forward. Since FIRST won't let us modify the motors (so we can't readjust the timing), we have to resort to other approaches.

Makes a big difference in 2wd w/caster machines. In 4wd drive machines, it is less of a problem. And this year we have the drill motors geared down so far (to match the F-P assemblies), it is essentially invisible to us.

Tom Frank



archiver 24-06-2002 02:38

PBASIC TYPO -- patch found here
 
Posted by Joe Johnson at 03/21/2001 3:52 PM EST


Engineer on team #47, Chief Delphi, from Pontiac Central High School and Delphi Automotive Systems.


In Reply to: you'll be sorry if you use bevel gears (imho) + free code
Posted by Joe Johnson on 03/21/2001 10:44 AM EST:



I had a typo in my code above -- fixed below.

Joe J.

PWMLeft is left wheel output
(assume fwd robot motion runs motor in reverse)
PWMRight is right wheel output
(assume fwd robot motion runs motor is forward)


BOOST_NUM CON 140
LOG2_BOOST_DEN CON 7
'Effective boost = BOOST_NUM / 2^LOG2_BOOST_DEN

'in the above case boost= 140 / 128 = 1.09

'use whatever means you normally use to generate the

'PWM outputs for the left and right wheels then use the

'following code to modify these values


if PWMLeft > LOG2_BOOST_DEN + $80 MAX $FE
NoBoostLeft:
if PWMRight > $80 then NoBoostRight
PWMRight = $8080 - ($80 - PWMRight * BOOST_NUM >> LOG2_BOOST_DEN) MIN $8000 - $8000
NoBoostRight:

The above code assumes 128 is "off" (128 = $80) for both wheels, this is the standard Victor calibration.



All times are GMT -5. The time now is 20:45.

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