Let's Make Robots!

Walter Update 2.11.11 Navigation Done

Woo Hoo! Navigation, headmoves and audio all about 90% there. There is still a lot of adding-to and cleaning up but it is very nice to be back to a solid base in which to work from. Much more personallity needs to be added, i.e. he should have something to say when getting stuck in a corner etc. The wiimote code I have been working on also needs to be added. The wiimote is being used solely for it's IR camera, using it to find an IR beacon. Basically, the beacon consists of 2 IR leds (constantly on) set 4" apart. Walter can see both leds and with a simple calculation of distance between them, know how far away he is from the beacon. Pretty simple actually with no triangle calculations! I also plan on adding a couple LEDs to Walter himself, allowing me to use the Wiimote as an "invisible leash". I have also had some thoughts of outfitting my smaller robot with the same IR beacon on top. This way, Walter could play follow the leader and hide and seek with him.

Like I said, everything is working great, but still in the KISS format. From here, it is just simple grunt-work to start putting together all of his audio and personallity and adding it to the main code. Nice thing about the Prop, I gotta say, is the fact that all the "personallity" is contained in it's own cog. There is never a fear of screwing up the code you have already written by trying to add to it. Cogs are great!! Woo-Hoo!

I think the video is pretty self-explainatory.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
Pretty awesome, Chris!! Great to see. Love the fluid movement of the head. John

I think its great that you have given Walter so much love...  It definitely shows, he's grown into a fine young lad.  He has really progressed as far as capability and your detailed work with materials I if phenomenal .

Now, some questions:

1. What's the Wii for?  Are you going to do WiiDAR?
2. I agree with the KISS philosophy completely, but it seems you have a bajillion different micro-controllers doing a bajillion different tasks.. Some have the ability to communicate to others, and some not?  Do you have BlueTooth and IR still?   Couldn't all of Walter and all of his functionality (and more) be done with a single scrapper laptop and a Prop plugged into it, I guess the Dagu controller plugged in as well.  Then you get tcp/ip over wifi and all the components can talk to one another... Controlling remote over tcp/ip can have the benefit of being very remote...  I'm wondering your Philosophy of the progression of Walter will be in a couple years.  The history seems like picaxe, arduino(s), propeller -> what's next?

Great stuff Chris, I wish our workshops were closer.

GroG

 

The Wiimote... Nope, I am not doing any wiidar (the laser on the other side is for fun). Instead, I am returning to one of my old tried-and-true's but now upgraded. I have used IR beacons in the past, with great results using a 38khz sensor, at the end of a tube, on top of a servo. The tube shielded the sensor so it could only see IR directly ahead of it and the direction was gotten from the servo position. The "beacon" was a few LED's on a little stand in the corner. The wiimote will do the exact same thing but with obvious upgrades. First, we can tell the direction the led is coming from, by the simple IR X,Y coming from the wiimote. Next, with the addition of a second LED at a given distance from the first, we can get a good sense of distance by simply measuring the distance from IRpoint1 and IRpoint2. This may be accurate enough to dock directly off of the beam, or at a minimum, will get me to my line follow "cross line" to be used for "final" docking. The same system should work in reverse with 2 led's on Walter himself and the wiimote in my hand. "Invisible Leash". My final thought is putting those 2 LED's on the smaller robot for hide-and-seek or follow-the-leader. I guess it is "figuring out where you are" based on 2 points but I would hesitate to call it "triangulation". In terms of communication, the computer is just going to have to be the "relay" here. Check the wiimote and send the data back to the robot. I am going to have to give up a cog for this but I will have it completly in the background, with variables constantly updated, with the main loop able to use those variables any time it needs. This same cog could also be able to keep an eye on everything and keep a constant stream of data going back to the computer. This could be used for mapping etc.

Simplicity... It might not look it, but Walter in his current state, is MUCH simpler than he has ever been. There are a few more components on the top deck, but that pales in comparison to how many have been removed from the underside!. Total number of processors (not including dedicated "slave" devices) has gone from 6 to 2. I went from a total of 64 I/O pins (almost 50 used) on the 2 "main" picaxe brains to just the 32 on the Prop. This is after 4 pins have been taken for the SD card, 3 for the TV, 2 for RX/TX and 1 for audio! I do admit, I am using 2 I/O expanders, but one simply does the input buttons on the top shield and the other clicks the side sonar on and off. That's really it.

In total, I think I reduced total total hardware by 25-35%. Code is not such a pain so more either. With the 2 "main" picaxe brains (navigation and "personality") if I changed anything in one code, I would have to make a corresponding change in the other "main" code. It was constant plugging and unplugging of the sync cable. Uff-Da.

Tell ya what, I'm rambling... Here's the list:

Prop Board from GG

Rocket Brand Custom Top Module (top shield)

RBC boards for PS2 connectors and NES

Serial MP3/ Amplifier

Video out/ TV

Dagu Motor Driver (with an Arduino on-board --is an I2c Slave)

One I2c Servo driver (Acroname SD-20)

(2) I/O Expand (I2c) for buttons and sonar on/off

Encoders

Bluesmirf

X-bee

(2) SRF05's --forward

(2) EZ-1's   --side

 

That's it!

 

El Jugador, sucka!

Oh Nick, many a late night, that should be filled with programming, is instead filled with epic sessions of Dr. Mario. Wait, Dr. Spinario, maybe? Oh, Dr. Hydra, I think...

Thanks, rik. It really is crazy how far he has come. Not to mention with all the times I have done a "total rebuild" and have to start back at zero. I will say that this most recient switch to Propeller has been the easiest. Now that I have all the basic routines running, I am so stoked to get some personallity into him. Basically, right now, he is doing everything he used to do as a Picaxe. This of course, seemed to be the absolute maximum I could get out of the Picaxe(s) in terms of thinkin' power. Now, it seems that I am right back to where I left off, but now with a super-charged V8 under the hood.

My next batch of work is to see if I can keep the motor speed a bit more consistant. Currently, I have a routine where Walter spins in a constant circle, checking and varying the speed of each motor until it arrives at a requested speed. I.e. 3/4 FPS (foot per sec) is  pretty good. I input that, walter spins around for a while, tuning in the speed, and when the right number is determined for each wheel, fwd and rev, the values are written to the SD card. On each start-up, the values are read back and used to seed all the variables it needs to drive around. Problem is that this calibration, which works beautifully, is only done once. As the battery dies, motors run slower. And now here is where I have fallen deeply in love with the prop...

I sure wish I had a separate dedicated brain that could simply keep a constant eye on my wheel speed and vary it as need be to keep it constant. Oh wait, I got extra cogs left over! Done.

This "extra brains on hand" thing is to die for. When I added the head moves, no reason to try to stuff it into the navigation, just start another cog. It is happy to keep an eye on the variables dealing with drive and thus knows which way we are turning and where he should look. No conflicts, nothing slows down. Simple.

@flokos

Yup, it is the uLCD 144. The most awesome screen I have ever had the pleasure of using. Crystal clear, full color, video and picture ready. Has it own "full service" brain, with I/O, ADC, serials, audio, "joystick in" and can be programmed just like a regular PIC. It can also run in serial mode and be a regular serial slave. Not to mention, there are no less than 6 support programs, all free, to convert your pictures and video, format and partition the SD card, edit code, edit fonts, etc. etc. All this for 32 bucks. Fantastic.

 

I love all the anthropomorphic stuff - the head swinging to check everything out, the background beeps, stuff like that.  What are the NES controllers jacks for?

Finally!

As a Walter watcher of the first hour, "I gotta say man" that was the first video showing a truly free ranging robot! Mark another red number day on the calendar please!

Hey Chris is that screen you proposed me to buy on free day?