To LUGNET HomepageTo LUGNET News HomepageTo LUGNET Guide Homepage
 Help on Searching
 
Post new message to lugnet.roboticsOpen lugnet.robotics in your NNTP NewsreaderTo LUGNET News Traffic PageSign In (Members)
 Robotics / 16975
16974  |  16976
Subject: 
Using the Differential to drive straight.
Newsgroups: 
lugnet.robotics
Date: 
Fri, 11 Jan 2002 00:20:44 GMT
Viewed: 
593 times
  
I've been playing with the following design to try to overcome the
problems with getting the robot to drive straight while using an A B
Differential drive train (ie left side wheels driven by motor A, right
side by motor B) and to get consistent turning.

Due to the variability in the torque each motor produces, a robot
using this drive train usually pulls to one side or another.  I was
using one rotation sensor per motor to equalize things, but found that
I needed to free up one sensor while still retaining the ability to
monitor the distance travelled.  Here's what I came up with:

MotorA MotorB
  |   |
Left Wheel+------Differential-----+Right Wheel
   |     |
MotorC  Rotation Sensor

So when going forward (assuming proper relative rotations, ie. forward
means the direction that drives the wheels in the forward direction)
I have:  MotorA and MotorB both set to forwards, MotorC also is set
to the forward direction adding some addition torque to both left
and right drivetrains that seems to help equalize any torque imbalance
between the A+B sides.  It's almost like a selectable lock that joins
the A+B drive trains.  When going in reverse, you set MotorC to also
be in reverse doing the same thing.  Distance traveled readings can
be taken off the rotation Sensor reading off the differential.

When turning, let's say I have MotorA forward and MotorB reverse, I
set MotorC to OFF which locks the differential so that MotorA and
MotorB are in effect "Sharing" their torque between themselves and
both sides A+B turn the same amount giving me a consistent turn.

The Rotation Sensor is reading zero of course so you have to use some
other method to determine how much you've turned.  I have been using
the excellent compass sensor made by John Barnes.  You could also
easily using timing (ie. turn right for 410msec) after determining
how long it takes to turn to a particular angle.

Using the timing method to turn, this drive train has given me the
best reproducibility in traveling in a square pattern that I've seen
in a drive train yet (I haven't had much success with an Adder
differential train and haven't the parts for a Synchro Drive robot).

It's pretty simple and clean, let me know what you guys think,

Dave

--

dcchen@pacbell.net



Message has 2 Replies:
  Re: Using the Differential to drive straight.
 
David Chen writes: > I've been playing with the following design to try to overcome the > problems with getting the robot to drive straight while using an A B > Differential drive train (ie left side wheels driven by motor A, right > side by motor (...) (23 years ago, 11-Jan-02, to lugnet.robotics)
  Re: Using the Differential to drive straight.
 
(...) I suspect there are two different issues being discussed here. One is to be able to go straight in some known direction. The other is be able to go straight. If you have a direction to go in, because you have a light beacon or a compass or a (...) (23 years ago, 11-Jan-02, to lugnet.robotics)

10 Messages in This Thread:




Entire Thread on One Page:
Nested:  All | Brief | Compact | Dots
Linear:  All | Brief | Compact
    

Custom Search

©2005 LUGNET. All rights reserved. - hosted by steinbruch.info GbR