Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Robotics Program

  1. Jul 27, 2005 #1
    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?
  2. jcsd
  3. Aug 3, 2005 #2
    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.
  4. Aug 4, 2005 #3


    User Avatar
    Gold Member

    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.
  5. Aug 4, 2005 #4
    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: Apr 21, 2017
  6. Aug 4, 2005 #5


    User Avatar

    Staff: Mentor

    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: Aug 4, 2005
  7. Aug 6, 2005 #6


    User Avatar
    Gold Member

    That could very well be the one that I was thinking of, but several generations removed. When I ran across the thing was about 20 years ago (around the same time that the Mobot lawnmower came out). The ones in your link are considerably more sophisticated. Thanks for jogging my memory.
    Last edited by a moderator: Apr 21, 2017
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook