DPRG List  

[DPRG] Balancing robot difficulties

Subject: [DPRG] Balancing robot difficulties
From: Luke Steele lukejs3 at hotmail.com
Date: Wed Jul 11 08:38:42 CDT 2007


for all the feedback and suggestions last week regarding my balancing

just taken delivery of some very nice Pittman gearhead motors, which
I believe have the same gearbox as some other balancing bots I've
seen on the net. Certainly they ooze quality in a way that my
previous motors did not.

also in process of building new h-bridges with LMD18200's with the
intention of configuring them for locked
anti-phase PWM as Triffid Hunter suggested.

Dpa, would it be possible for you to give me a rough estimate of how much backlash there is in your balancing bots if you grab one of the wheels and twist it each way to take up any slack?
Watching the new video suggests the frame might be bending.

for pointing this out – I've now stiffened the chassis to eliminate

post back when I have some results with the new motors &


Luke> From: dpa at io.isem.smu.edu> To: dprglist at dprg.org> Date: Wed, 4 Jul 2007 00:19:44 -0500> Subject: [DPRG] Balancing robot difficulties> > Howdy,> > Kenneth wrote:> > Noted the comment on Harmonic drives. > <...>> > Great link, thanks.  I'd not understood that the outer> gear is *flexible*.  Very interesting.  Where to get> such a motor?  > > Luke wrote:> <snip>> > I dug back through some code for the nBot balancing> robot and found the following comment:> > ; 28 Jun 03 dpa         Added code to remove backlash> > Hmmm, what do you know?  > > This was in the header of the assembly code that> handles the two quad encoders on the motors.> > Looks like it tries to ignore the encoder ticks in a> sort of dead zone around zero that depends on which> direction the motor is going.  It's been awhile since> I worked with this code... ;)> > The encoder is mounted on the motor itself so the> interrupt is ignoring counts that happen when the> motor changes directions and goes through 0, for 9> counts in either direction.> > The file is HC11 assembly code so I tried to rewrite it> in C, as a fragment of the interrupt routine that> maintains the counts for the quad encoders mounted on> the drive motors.  There are actually two of these,> left and right, but only one is shown here:> > //  measured backlash at the wheels == 9 ticks> > #define BACKLASH 9> > // backlash counter> > int backlash;> > // quad encoder interrupt, maintains encoder count> > void quadencoder_interrupt()> >     // ...>     // standard quad encoder interrupt stuff>     // ...> >     if (encoder tick direction is forward) {> >         if (backlash >= BACKLASH) encoder_count++;>         else backlash++;> >     else { // encoder tick direction is backward> >         if (backlash <= 0) encoder_count--;>         else backlash--;>     }> >     // ...> }> > > So the wheel encoder count is not incremented/decremented during> the time in which the motor is taking up the backlash, as it passes> through zero.  This in turn prevents the balance algorithm from> reacting to the quick burst of counts as the motor, now unloaded,> winds the backlash in the opposite direction.  That looks to the> balance algorithm as it the robot has suddenly jerked when it has> not.> > I still think this is a second order tweak that requires getting> as much mechanical backlash out of the system as possible first.> > best regards,> dpa> > _______________________________________________> DPRGlist mailing list> DPRGlist at dprg.org> http://list.dprg.org/mailman/listinfo/dprglist
The next generation of MSN Hotmail has arrived - Windows Live Hotmail
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://list.dprg.org/pipermail/dprglist/attachments/20070711/81b751dd/attachment-0001.html

More information about the DPRG mailing list