Robotics Program

  • Thread starter Shawnzyoo
  • Start date
is there any programs out there where you can enter a layout of a room for a small robot?
like the room dimensions, basic furniture placement ect...
or can you do this with C or Pbasic or some similiar program?
thanks
 
Hardware Dependancies

It would be easy enough to write a program that would take a graphic image. (ie an aerial room layout drawn in M.S. Paint) and convert it to a set of commands that would be understood my your chosen hardware. But then you'd have the problem of updating the software every time you changed your room layout, or left your shoes in the middle of the room.

What you would have to do for the problem of leaving shoes, or a backpack in the middle of the room would to have a second set of programming that would handle those cases. Moreover, if your software is good enough to handle shoes or a backpack, it should be able to handle a couch. To have the first level of programming in place would be redundant, and the User would have to go through the added trouble of programming it for each different room.

I did look around online for a while to see if anyone had attempted to write the program that you described. I had not found any, but I did come across a cute game; GNU Robots. You may want to check it out. http://www.mirror5.com/software/robots/faq.html
It requires the GNU Guile, but you can download it from www.gnu.org if you don't have it.
Good Luck in your Adventures.
 

Danger

Gold Member
9,564
244
I have no idea who makes it or where you can get it, but there's a robot vacuum cleaner that does pretty much what you want. If you can find the manufacturer, maybe you can adapt their programming to fit your needs. Sorry I don't have any more info about it.
 
Danger said:
I have no idea who makes it or where you can get it, but there's a robot vacuum cleaner that does pretty much what you want. If you can find the manufacturer, maybe you can adapt their programming to fit your needs. Sorry I don't have any more info about it.
I think you might be referring to the http://roombareview.com/buy/?OVRAW=roomba vacuums&OVKEY=roomba vacuum&OVMTC=standard" robotic vacuum. I don't think that program would be of much use though. That program simply starts in the middle of any room and attempts to cover all possible area by making larger and larger circular paths.

Writing a program to model the dimensions of a room and even the placement of furniture is actually quite simple and be programmed using just about any type of programming language. The hard part is getting the robot to know precisely where it is physically withing that floor plan.

Writting a simulation is a piece of cake because you always know where the robot is simply by reading it's pixel coordinates. With a real-world robot there are not pixel coordinates. The robot's actual location must be determined by reading some type of sensors (often distance sensors).

Many industrial robots that need to know precisely where they are use "beacons". A "beacon" is usually some type of radio transmitter system or other type of markers that the robot can read (sometimes lasers). The location of those markers within a building or outdoor space tell the robot it's coordinates relative to the floor plan (kind of like generating pixel coordinates for the robot). Those types of systems are quite dependable and accurate, but they require having beacons or markers external to the robot around the space that the robot is attempting to navigate. This means that the robot can only be used in environments where these beacons are installed. Of course if you are already using a floorplan program you're kind of stuck with a specific floorplan anyhow so adding beacons doesn't reduce your existing flexibility anyway.

Beacons can also easily be made portable and used with other floorplans as well, they just need to be set up prior to using the robot. Using this method allows the robot to be picked up and moved and still be able to easily figure out where it is relative to the floorplan based on the position of the sensor beacons. It also allows the robot to distingish between permanent furnishings and random objects since the permanent furnishing are part of the floor plan whilst the random objects are not.
 
Last edited by a moderator:

russ_watters

Mentor
18,583
4,819
NeutronStar said:
Writting a simulation is a piece of cake because you always know where the robot is simply by reading it's pixel coordinates. With a real-world robot there are not pixel coordinates. The robot's actual location must be determined by reading some type of sensors (often distance sensors).
Actually, the reality of that situation is a piece of cake as well. The Roomba uses servomotors and very simplistic obstacle detection systems that make it stop and turn in a pre-programmed way. Using the two, it steps-out distances and creates a very accurate map of the room - very, very similar to a pixel-by-pixel map in a simulation.

So if I were programming it, I'd use Roomba-sized pixels and record a pixel every time the Roomba moves by it's length. Every time you hit an obstacle, you turn 90 degrees to the right and continue (though there may need to be some randomization to avoid unintentional patters, like going back and forth between the legs of a couch)
 
Last edited:

Danger

Gold Member
9,564
244
Last edited by a moderator:

Physics Forums Values

We Value Quality
• Topics based on mainstream science
• Proper English grammar and spelling
We Value Civility
• Positive and compassionate attitudes
• Patience while debating
We Value Productivity
• Disciplined to remain on-topic
• Recognition of own weaknesses
• Solo and co-op problem solving
Top