Let's Make Robots!

Walter 1.4


After many, many tests and trial runs, I have started cleaning up Walter's electronics and mechanics to a state that is a little bit closer to what it will be when done. I decided to start a new post about Walter as the last thread is quite long anddocuments most of the "getting it working" tests. This thread should be about building the final project.

 

***Update 4.2.09***

Head moves, remotes and autodrive... All found in top video **TING!**

Walter_Autodrive_Update_002.jpg

I have finished my new remote in adding 4 "soft keys" below the LCD. This allows me to  select any of the options displayed on the LDC above. I am able to toggle between RC and Auto drive as well as many other options. During RC mode, I have installed a "reverse lockout" which prevents the wheels from being inadvertantly clicked into reverse at high speeds --this could either be driver error but more, just a small bit of bad data being sent or received. I have overcome my problem of noise coming from my Sharp sensors by simply turning them off for RC drive and on for auto drive. When they are on, an IR signal, instead of a RF signal is used to return to "menu mode". 

I have built a new teaching pendant for encoding head moves using a playstation joystick, which requires less travel than a std. pot to get from 0 to 255. Also, the "rotate" is geared to modify a 3/4 turn pot into a 1/2 turn. I included nice big start and stop buttons used during recording and I wired a 9-pin d-sub connector to allow me to quickly plug it into walter.

I have cleaned up some sensor limits during auto drive and again, improved the "stuck in a corner" code. I have a good start on syncing the head moves (slave) with the drive code (master)

Coming Up:

Adding my Wheel Encoders

Adding a PIR motion sensor

Adding some "curb-feelers" --Some actual bump-switches to deal with chair legs and the like that the distance sensors miss.

Doing some recoding for some more personality (head moves, etc.) during different driving actions.

Starting work on Walter's arm! --Thank you so much pravoka !!! --He has been good enough to send me the very first (and most important part for walter's arm...

Foto_225_.jpg

 

 

***Update 3.14.09***

As you may have seen in the blog post "Walter... Fail", I had run into some pretty big issues with Walter's initial set-up. We have gone through a full tear-down and now, are back in the ball game and steering toward much better results. The major problems I had was the fact I had no designated master and slave, and many serial and I2C lines were shared by both the head/display picaxe and the drive chip. Now, I have a much better Master/master/slave system. First, instead of menu options (auto drive, RC drive etc) being on-board on the display chip, they have been moved to a 28x1 inside of my new remote. This constitutes the first "master" which has first priority over all other chips via an inturrupt then a serin "everyone stop and listen to the remote" command. Second, the drive chip is the on board master. In terms of the automous drive (which is really what this update is about) the head/display chip simply sits there and waits for commands from the drive chip in terms of when and where to move the head. There are no "handshakes" anymore and each chip has it's own servo driver now --no more sharing I2c lines, no more "I'm talking -you wait" crap. 

I discovered quickly the top-of-the-head mounted sonar was no good... Simply too far up and was just not effective for auto drive. I have moved it to the underside of the chassis and also added 4 sharps. 2 sharps catch the corners of the chassis where the sonar is blind, while 2 more shoot straight forward. Because the sonar is "sweeping" there is a chance it could be looking right as something suprises it on the left -The 2 fwd sharps are simply a low-accuracy back-up for the sonar. I am still working on cleaner "stuck in a corner" code as well as adding more head (personallity) moves to be sync'ed with the drive moves. Eventually, I would like to mount all the sensors sunken into the edge of the chassis for a snazzier look. Word.

The Remote:

Walter_Autodrive_006.jpg

The remote is simple eonugh. Radio shack box, play station joystick and Picaxe LCD. For now, being as broke as I am, I can't afford any RF units so on one side there is a 1/4" mono earphone jack used for a patch cable down to walter. Yes, it is a "wired remote". --Does anyone remember when VCR's had them? At any rate, I am using simple serin/serout commands. Walter has a 14m onboard (also connected to the remote) who's only job is to sit on a serin command waiting for any data to come. When the 14m is triggered, it sets an output high triggering inturrupts on the 2 main 40x1 chips. The drive chip and head/ display chip then simply goto to a "I'm waiting for info from the remote" chunk of code and respond accordingly. Having the extra 14m keeps me from having to waste time on either of the main chips constantly looping back to check a serin pin --Inturrups are wicked faster.

Overview:

I am much happier with this rebuild. I have been working much slower and getting each chunk solid before continuing. This is advice I have given many people, I just now seem to be listening to my own advice.

Chris begs for free parts:

Just to throw this out there... I have no money, and it can't hurt to ask, so if anyone wants to make donations...

You will be rewarded in Heaven or in Karma or in the next life you won't be a slug...

Needed:

RF TX/RX units -Even the cheap ones (begger can't be choosers)  just data-in, data-out

SLA batteries --I need 6v and 12V as well as a charger. (the charger is less important) The 6v can be anything, the 12v must be at least 18ah or higher.

IRFZ44NPBF-ND MOSFETS N-CH 55V 49A TO-220AB (I am down to my last pair... one more smoke and walter looses his drive)

Chocolate Cake (Homemade with cream cheese icing)

--See I don't ask for much!!

 

 

 

***Update 2.24.09***

The head is done! Each of the Sharp IR sensors are independantly controlled with individual servos, as well as the IR beacon sensor on top and the pop-up sonar. The "IR Beacon" is simply a standard IR sensor (the kind that works with Sony codes) stuck at the back of a long tube. In this configuration, the sensor will only see an IR beam from directly ahead. Tie this with the posistion of the servo and Walter will be able to drive to a "beacon" be it a recharge station etc. The sharp sensors are posistioned in an object follow set-up. I have also ditched the large wooden board I had everything mocked-up on and have started hard-mounting parts to the chassis. Two more sharp sensors are mounted below the frame and can rotate from directly fwd to 90 degrees out to the sides. 

Included in the video is a simple demo program to show off my coolie pop-up sonar!!

Walter_1_3_003.jpg

***Update 1.17.09***

I can officially program all of Walter's head moves in real time into my EEPROMS. I could type for hours here, but it would be best to simply watch the video. I am starting to feel that each of these "sub-systems" are becoming more solid so I might be getting close to a "semi-perminate" mounting of all these parts on to the frame. I still hesitate a bit, as all these head and eye movements seem to be taking a lot of processing so I might have to add a second 40x1 which would change my main "brain board" a little. At any rate, go watch the video!!

Head_Prog_Still_and_Ipod_hat_003.jpg

 

 

***Update 1.10.09***

 

I have the finished the basic idea of Walter's head and got my LCD working. At this point, I am trying to figure out the most efficent way of controlling 3 axis of movement with the most use of EEPROM space and the least amount of variables. I also need to play with the geometry of servo arms and push rods I am using, I think I can get a lot of the herky-jerky out of it. It will look pretty good though, when it is all sanded down, filled and painted.

Walter_Head_002.jpg

 

Walter_Head_004.jpg

 

Walter_Head_005.jpg

 

The next thing you should see it all of this actually on Walter and in good, smooth opperation.

 

 

 

Walter's First Thread 

First off is the main board...

Walter_1_0_003.jpg

I custom made PCB's for the Main 40x1 (with 14m helper), the 20-Servo Driver, Motor Driver and (8) 256 EEPROM's. The wires need to be cleaned up a little, but this will be the basic set-up.

I also finished welding Walter's trailer hitch:

Walter_1_0_008.jpg

The welds still need to be ground-down, but there it is. Now, you are probably asking "why is the trailer-hitch in the middle?" Well, if it was in the back, and the robot turns on it's center, the trailer would just get wrapped around. With the hitch on the center line, and a long tounge on the trailer, the robot can still spin a 360 with no problems.

Also, I am working on a mock-up of the head design (I think I called it a brain in the video):

Walter_1_0_004.jpg

Basically, the head rests on a 2-axis pivot allowing for up, down and tilt as well as a combination of all three. This is just a test, I hope to clean the final one up quite a bit.

 


 

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
I was watching the video and thinking to myself, this robot is really really awesome. And then the ping sensor popped out and I was utterly amazed. Incredible job ctc

The mini-head is inspiring. I think I'll do that to program my acrylic arm.

The world's best motto: When all else fails, use a bigger hammer.

When you mentioned earlier (might have been shout box) about recording head moves I was wondering what you were talking about as I never considered "pre-programmed" movement. Now I understand. Your robot will have a lot of your personality as a result.

 

I've thought about that. I simply have not tried to run the head at the same time as I am "recording". It is some super simple code to stick in there, I just haven't done it yet! I'll give it a go.

Wow man, that's awesome. This is a robot that will really have potential for some personality. I love the idea of using a display as his "eyes", very clever. And that little mini-head for input is damn smooth. Is it not feasible/practical to update the servo positions in realtime as you're recording, so that the real head mimics the mini-head? It seems like the feedback might be helpful. Or maybe it'd just be distracting since the mini head already provides a sort of direct visual feedback, but it'd look damn cool to see them mimicing each other, at least :)

Dan

As well as recording head moves on min-Walter and eye moves you should also record your commentry and sync that in.

Mike

Latest video: Brilliant!!! :D
I guess you got tired of remming those numbers through the keyboard huh! Great improvement! (And cool tripod)
Why do you need a static tripod when there is this awesome 3-axis camerarobot in the house!? Motion capturer and everything!

Hey folks,

One of the best things I have ran into is a VEX robotics kit I got in trade for doing a little handyman work. Really, I got this $300+ kit for just an hour or two of work. Since then, and to this day, I am still stealing parts from it. The VEX robot system is really a bunch of crap in that you can really just make a remote control car out of it but if you just use the parts and add your own brain, it is a godsend. All of the neck parts are from this VEX kit and have allowed for the solid joint you see. Everything else is custom made.

In terms of the programming, I started trying to program moves manually (sorta using some math to do it). It was a real pain, but more to the point, it used 7 byte variables and 3 word variables which was just not acceptable. With this "real time" system, I am down to just 4 --3 bytes (one for each servo) and one word for the main "counter". Simple is the best! --Not to mention, I figure that if you want a robot to act like a human, it seems having a human to program the moves is a good way to go.