Shop OBEX P1 Docs P2 Docs Learn Events
Ugly Buster Update — Parallax Forums

Ugly Buster Update

Bill ChennaultBill Chennault Posts: 1,198
edited 2008-03-31 22:20 in BASIC Stamp
All--

I am spending a lot of time in the shop . . . but the wrong one! I bought a fairly good sized knee mill and am learning to use it. You may have seen my powered knee (or elbow) joint that I built with it. However, one thing leads to another and I decided to build a few little things for the mill itself before going back to work on the walker I have planned of which the joint I mentioned will be a part.

So, spending time in the robot shop has suffered!

But, I have managed to progress with my five-Stamp, tracked robot: Ugly Buster. First, here is a picture of UG . . .




SS-10-29-07.jpg

EDIT: Removed movie for space reasons.

My SOLE GOAL with the current Ugly Buster experiment was to make him go straight. Sounds easy, doesn't it? Well, no matter how precisely you build the components of a tracked vehicle, there are going to be differences in the two drive trains. Basically, one moves a little faster than the other. Not much, but enough to induce a curve.

That is why God gave us optical encoders and Parallax gave us low-cost microcontrollers!

Ugly Buster has five Parallax microcontrollers: A BS2p40 serves as the Master. The Master gives instructions and accepts feedback from four BS2-OEM Slaves. One slave is dedicated to each function. Specifically, the Left Encoder Slave simply detects gearmotor encoder events. When it has detected an event, it raises a pin high. Through a 1 megaohm resistor, this pin is connected to a Master input pin. The Master sits in a loop counting encoder pulses from both the left and right encoder Slaves. When they are, say, 40 counts off, the master commands the BS2-OEM controlling the gearmotor that drives the track that is behind to speed up until the encoder read by its BS2-OEM sends sufficient encoder events to the Master for the Master to then signal the Slave that controls the HB-25 that controls the gearmotor to slow back down to cruise speed, which is about half speed.

In other words, each track has two BS2-OEM Slaves that affect its actions. One of them simply receives commands from the Master that tells it to move forward (in this experiment), speed up, or stop. The other Slave associated with the same track informs the Master of gearmotor encoder counts. Since there are identical sets of tracks and Slaves, the Master has all the information it needs to make "decisions."

The code for each Stamp, including the Master, is very short. The Master's code is the longest, though. All communication takes place through bit-signaling. There is no use of SERIN/SEROUT. This method overcomes the weak point of using a non-interrupt capable microcontroller in an asynchronous environment.

Some points . . .

The BS2-OEMs are more than fast enough to count encoder events. The use of the OEM version saves a tremendous amount of HORIZONTAL real estate, plus eliminates the need for me to build power regulator circuits and serial interfaces, although I have done both and abandoned that approach except in the case of the Master's serial interface (which can be seen in the picture, above).

Ugly Buster is powered by two battery sets. The gearmotors and eventually other high current stuff, are powered by two 12 amp hour 12 volt batteries in parallel. Thus, there is 24 amp hours available should Ugly Buster decide to climb the cliff in back of my house. All logic is powered by two 4200 mah battery packs connected in parallel for a total of 8400 mah. The logic WOULD run for months if I could figure out how to eliminate the drain caused by the HB-25s logic ground to 12 volt ground. (!!%^#)

The reason I chose the idea of increasing the speed of one track to match encoder counts with the other instead of simply stopping the "fast track" and allowing the slower one to proceed until it catches up--in about 3/4"--is that the slow track will spin a little bit on carpet due to the drag of the stopped track. Finally, speeding one up instead of stopping the other is far more elegant! (You should see the movie!)

The Master is "personality" driven. Currently, the Master's personality is totally formed by the gearmotor's optical encoders. Eventually, I will add sensors that will allow an obstacle avoidance personility to be developed.

There is a lot more and I am having a lot of fun.

--Bill
ps When I finish these low-level experiments, I will replace that BS2p40 with an SX and take advantage of its interrupt structure!

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
You are what you write.

Post Edited (Bill Chennault) : 4/3/2008 1:23:48 PM GMT

Comments

  • Bill ChennaultBill Chennault Posts: 1,198
    edited 2008-03-31 20:13
    All--

    Somehow, magically, my web site accepted my video. Take a look at the link in the preceeding post.

    --Bill

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    You are what you write.
  • CactiiCactii Posts: 14
    edited 2008-03-31 21:57
    Could have went equalized micro-fluid drive... Think D9 Dozer or Excavator but on a smaller scale... What about track slippage, not on the gear drive but on the ground???
  • Bill ChennaultBill Chennault Posts: 1,198
    edited 2008-03-31 22:20
    Cactii--
    Could have went equalized micro-fluid drive
    I have been thinking of hydraulics lately. Do you have a source?

    Ugly Buster is my first robot in almost thirty years. I am struggling with microcontroller technology, but am learning quite handily with help from people on this forum and Parallax folks. I spent my working career in education . . . computers, of course.

    I've modified the code so that it now returns to its point of origin. Next is a pivot n degrees both left and right. Then a square or rectangle path. All of this will allow me to continue to develop basic techniques with my rather unique control concept. In the beginning, although all five processors were on board, I had Ugly Buster running across my flagstone patio crunching rocks and then out in the grass chewing it up on a single processor. Of course, it was easy to do, but it could not handle simultaneous events such as it can now.

    HOWEVER, when I finish developing this method, I will stick an SX on it running at 50MHz. Then, one has to wonder if those other processors are necessary if the SX's interrupt system is put to use.

    We'll see.

    In the meantime, the Walker is coming. I have plans to use many, many SX MCUs on it. In fact, in one mind-model, perhaps one SX per joint.·The real brains will be a desktop or laptop or maybe a stack of 1u devices talking to the SXs wirelessly. If 802.xx, then I will stick a tablet PC on board to handle the comm conversion and some brains, as well. If RF, then the stationary brains will send and receive directly to an SX dedicated to the purpose.

    EDIT: I forgot to answer your question about track slippage.

    There can be slippage on carpet if you are trying to re-align tracks by stopping one and advancing the other. After experimenting with that, I cast it aside for a different method that works quite well: when one track is behind the other by X encoder counts, I simply speed that gearmotor up until my existing code tells me the tracks are back in sync. It works like a charm.

    However, there needs to be some kind of absolute position indicating system. There are many approaches. I developed one when I was young that the GPS constellation uses (or at least did at one time). A mathematician friend of mine and I were going to patent it but figured there would never be any use for it other than my silly little robots. (Think three decades ago.)

    --Bill

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    You are what you write.

    Post Edited (Bill Chennault) : 3/31/2008 10:30:05 PM GMT
Sign In or Register to comment.