Jump to content
Sign in to follow this  
Larry

SOT: An interesting machine intelligence problem.

Recommended Posts

I recently purchased a floor cleaning robot, which I love. It does a terrific job of "mopping" our vinyl tile floors, and is especially useful with our dog, "Muddy Paws." But in watching it work and thinking about how it cleans a floor that it cannot "see," around obstacles, walls, etc. , it occurs to me that this is a fascinating programming problem. (A very similar logic would hold for the vacuuming robots, too, I'd think.) The closest things that I can recall in our Atari world are routines that fill/paint random shaped areas in games like QIX or paint programs. Admittedly, somewhat different, but perhaps similar. In the case of the robot, it covers a given width, and then circles, spins, turns, "bumps", etc, and yet after a given time, it "knows" that the room is completed. Has anyone ever delved into this area of programming? Has anyone ever seen an Atari program that does this sort of thing with specific maneuvers?

-Larry

Share this post


Link to post
Share on other sites

I suppose you could have some sort of fill algorithm that uses vectors and makes turn angle decisions based on optimal coverage.

 

Those robots are pretty useless at cleaning floors, but I've heard they have a big following with firmware hackers.

Share this post


Link to post
Share on other sites

Yes, this is interesting. I have a Roomba. It finds large object and walls and moves along them for a time, then starts to circle. It has three "clean" settings, and I think the only difference is the length of time it bumps and circles.. :)

 

Now, a cool project would be to replace the brains of one of these with an Atari 8-bit, and a good battery. Have it output to an LCD screen or wirelessly to the TV showing what it thinks the room looks like and covered area. Heck, throw in a wireless joystick and control the thing from an armchair... or even turn it into a video game... ;)

 

Well, okay... but it would be fun to do...

Share this post


Link to post
Share on other sites

I haven't actually seen one of these work, does it always turn at right angles?

 

Steve

Share this post


Link to post
Share on other sites
I haven't actually seen one of these work, does it always turn at right angles?

 

Steve

 

I saw this last night after reading this thread!

 

http://www.robotshop.ca/video/scooba.wmv

 

Nice video. There are several different videos at the iRobot site and they show quite well how the products clean. I don't have a Roomba (yet!) but based on the cleaning ability of the Scooba, I will! And let me be specific, this Scooba cleans a floor better than I do, by a bunch! Since it always uses fresh cleaning solution, it doesn't spread around dirty water as does mopping. I have read that the earlier Roomba models were underpowered and had fairly short cleaning times. I suspect that those models were powered by NiCd batteries. Present models (all?) are NiMH and have much more suction and longer run times. (Can Li-Ion be far down the road?) When you think about battery-powered tools of all types, all of them have had tremendous product improvement curves.

 

But back to my original programming question -- I'm going to tackle this one, also with PLOT and DRAWTO. Have no idea how far I'll get, but this is too good of a programming challenge to pass up.

 

-Larry

Share this post


Link to post
Share on other sites

I suppose you could have some sort of fill algorithm that uses vectors and makes turn angle decisions based on optimal coverage.

 

Those robots are pretty useless at cleaning floors, but I've heard they have a big following with firmware hackers.

 

Actually speaking of firmware hackers, the company iRobot that makes the Roomba and Scooba ALSO makes one just for hackers. check this out

 

http://www.irobot.com/sp.cfm?pageid=305

 

Looks pretty cool... You can program it direct from your computer or buy this 8 bit control module

 

iRobot Command Module

 

The Command Module contains an 8-bit, 20 MHz (Atmel ATMega 168) microcontroller enabling full programmability of iRobot Create’s motors, lights, sounds, and sensor readings. The Command Module plugs into the Create robot’s cargo bay connector and provides on-board control with programs you write in C or C++. It has four DB-9 expansion ports for adding your own hardware. Includes Command Module CD (containing 3 example programs and the compiler), USB cable, and Quick Start Guide. Full documentation available online.

 

And it's fairly low cost, starts at $129 for just the Bot, or up to $299 for a kit with everything

Share this post


Link to post
Share on other sites

It would be a fairly simple programming exercise.

 

Have a simple edit mode which allows you to draw up the room.

 

Then have the "robot" move, laying down a colour representing covered ground.

 

LOCATE the colour under the robot each move, and keep tally of ground already covered.

 

To do "proper" movement, you'd need more complex calculations, but I think that you could just use X and Y increment factors of .25, .5, .75 and 1, which would give you 16 angles of movement.

 

Maybe we could make it a programming contest - it has to be in Atari BASIC, no ML. Movement is restricted to those set angles - the tricky bit is the decision process when obstacles are encountered.

Share this post


Link to post
Share on other sites

Seems to me that this would be the perfect use for a 600XL, a small NTSC LCD, and a LOGO cartridge.

 

Did Atari Logo allow for control of external hardware turtles? It was supposed to have been the best implementation available for micros.

 

Even if it didn't have explicit commands, I would imagine that there were ways to "POKE" memory... in which case you could use the joystick ports for interfacing hardware.

 

Has anyone messed around with hardware interfacing in Atari LOGO?

 

Does anyone have an Atari LOGO manual in PDF form?

 

Does anyone have a Roomba that they can take accurate measurements of?

 

It would, of course, need a nice clear acrylic dome top, like Irving the Turtle* had, for the proper hacker aesthetic.

 

= )

 

 

Sounds like a fun project!

 

 

 

* 1. Page 17

Edited by UNIXcoffee928

Share this post


Link to post
Share on other sites

Heres what you do.....

 

You know those PC motherboards that are the size of a CD case? I forgot what form factor it is... But anywayze... Get one of those.. Then build yourself a simple dual stepper motor control circuit (for the 2 independant drive wheels)and an infrared (or sonar whichever you like better) proximity detector for the front of it.. (believe it or not you can get all this crap in kit-form, pretty damn cheap at the hobby shop) and wire the crap into the paralell port on the little PC motherboard.. Also, put a wireless network card in it.. Put a small flash-IDE drive in it and install your favorite flavor of linux/BSD/whatever on it... Write a small program that listens for telnet sessions and once connected, listens for commands and drives the stepper motor controllers, and reads the input from the proximity sensor and sends feedback via the telnet session...

 

Now.. Use your atari (via SIO2PC or lantronix) to open a telnet session to the robot (via your wireless router)and you can control it to your heart's content....

Share this post


Link to post
Share on other sites
Heres what you do.....

 

You know those PC motherboards that are the size of a CD case? I forgot what form factor it is... But anywayze... Get one of those.. Then build yourself a simple dual stepper motor control circuit (for the 2 independant drive wheels)and an infrared (or sonar whichever you like better) proximity detector for the front of it.. (believe it or not you can get all this crap in kit-form, pretty damn cheap at the hobby shop) and wire the crap into the paralell port on the little PC motherboard.. Also, put a wireless network card in it.. Put a small flash-IDE drive in it and install your favorite flavor of linux/BSD/whatever on it... Write a small program that listens for telnet sessions and once connected, listens for commands and drives the stepper motor controllers, and reads the input from the proximity sensor and sends feedback via the telnet session...

 

Now.. Use your atari (via SIO2PC or lantronix) to open a telnet session to the robot (via your wireless router)and you can control it to your heart's content....

 

 

For power on the robot, put some sort of 12v rechargable battery.. You can get these out of old UPS units.. You'll also need a charging circuit and a 5v regulator...

Share this post


Link to post
Share on other sites
Seems to me that this would be the perfect use for a 600XL, a small NTSC LCD, and a LOGO cartridge.

 

Did Atari Logo allow for control of external hardware turtles? It was supposed to have been the best implementation available for micros.

 

Even if it didn't have explicit commands, I would imagine that there were ways to "POKE" memory... in which case you could use the joystick ports for interfacing hardware.

 

Has anyone messed around with hardware interfacing in Atari LOGO?

 

Does anyone have an Atari LOGO manual in PDF form?

 

Does anyone have a Roomba that they can take accurate measurements of?

 

It would, of course, need a nice clear acrylic dome top, like Irving the Turtle* had, for the proper hacker aesthetic.

 

= )

 

 

Sounds like a fun project!

 

 

 

* 1. Page 17

 

 

I have often thought about designing a LOGO turtle for the eight bit. I have actually done some preliminary design work (including a clear plastic dome) ;)

 

I don't remember if Atari Logo can handle an external turtle. I have the cart and manual and I will check to see what it says. I do remember someone writing a LOGO-like Interpreter in BASIC and that can be easily modified to control a robot. It's fairly easy to control motors from the joystick ports on the Atari. I have hooked up Stepper, DC, and Servo motors to the joystick port and controlled them from basic. Servo motors required a ML routine due to the timing needed.

Share this post


Link to post
Share on other sites

I looked at the Atari LOGO Reference manual and introduction to programming guide and they say nothing about controlling an external robotic turtle. I don't see any way to poke the joystick ports for output. You can direct screen output to a disk or printer so that may be an option. That is to make the turtle appear to be a printer to the LOGO cart. I am not sure it would be of any real use but it would be cool.

 

Looking through the mauals reminded me what a great math and computer programming teaching tool LOGO is!

Share this post


Link to post
Share on other sites

May be XEP80 is real example of configuring Joystick port for output.

And many cheap printer interfaces has the same behavior.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...