Robot Tracking

I want to build a robot that can come to certian points in my house by sending out some sort of signal.  For example I am standing across a room and hit a button on a base.  I would like the robot to come to that station.  Once the button is pressed again the signal goes off and it returns to its origin.  I have no idea what to use to do this gps, xbee, etc.  Any ideas/

This is a lot harder than one may think

First off, I should ask if this is your first bot. If it is, you may want to think about less ambitious goals to begin with. That said, here are some things to start googling:

Wheel encoders so you know how far you have gone.

Occupancy Grids for mapping

Line follow --Probably the easiest way to do this

IR beacon – I have done this by adding a long tube to a 38khz sensor thus making it "directional"

Here is something you may want to look at:

http://www.societyofrobots.com/programming_wavefront.shtml

 

I’m (trying to)building an

I’m (trying to)building an autonomous “lawn mower” robot that returns to base for recharge when batery goes low.
It has a “sonar” to avoid big obstacles and a “click” bumper to turn if, even with the sonar, it crash in something.

For the problem of “return to base”, I try wheel encoders, but simetimes the wheels runs with some “slip”, so it’s not very acurate.
The Chris idea of a IR beacon seems good.

In my particular case I use a eletronic compass and RFID system…
I buried 20 RFID keychains symmetrically in my backyard, and put an RFID reader in the bottom of the chassis.
As I know every single code of keychains, when my code “see” the batery is low, the robot moves til reach one RFID card/keychain, and using the compass(and the particular RFID code) calculate the route to recharge base.

Still unacurate, cause it can turn a little in the way to base, so I’m trying to make the robot reach closer and closer “rfid checkpoints” til reach the goal(the recharge base). Plus I need to totally off the motors before do the calculations, cause they cause some interference in the compass :P.

As you duing this inside the house, bury things is not an option, I think :D…

In the link Chris posted has a video… about 4:55 we can see the “slip/drift” I said. The robot lose the perfect goal point.
there are several ways to do this, also combine methods to reach more acuracy, but you may start with a method and so increment till solve your problem ;).



If you are experienced

If you are experienced enough then listen to this idea:

You need a RF modul to “call” the robot or a chain of IR beacons. The origin of the “call” have to be coded in the transmission. Lets do this for three rooms now:

Room A

Room B

Room C

Once the robot get the call he need to check where the call came from. Lets assume the call comes from Room B. Within your house you need to place IR beacons on the corners to “build” a path to each room. Lets assume you need three additional beacons to the rooms. Those would be Beacon 1, 2 and 3. 

Now comes the part what I am thinking of. Beacon 1 has line of sight to Beacon in Room A, Beacon 2 to Room B and Beacom 3 to Room C.

The program should contain those waypoints. So, if you are in Room B and you hit the call button there the robot knows where you are and set the waypoints to Beacon 1 then Beacon 2 and then Room B.

For Room C would be -> Beacon 1 to Beacon 2 to Beacon 3 then Room C. For the way back just reverse the order of the waypoints

Doubt in line follower cum counter

Hi, this is the program i have written for linefollower while counting horizontal black line in its path without deviating and shows the output through LED’s… But the program i have written below does not working properly… The Bot stops if it both sensors comes black. I duno y. I think its becoz of having infinite loop inside another infinite loop.
Read this program and reply me as soon as possible friends … If any mistakes in this program, it shud be under this line  i.e., if(PINA==0b11111111) loop…
I have to use atmega 16 And progrramming through winavr…

 

#include<avr/io.h>

main()
{
    DDRA=0x00;                  //  declaring port A as input
    PORTA=0xFF;                //  pulling up pins of A so that it will be high(for unconnected pins)
    DDRB=0xFF;                     //  declaring port B as output  for motors
    DDRD=0xFF;                     //  declaring port D as output  for LED’s
    while(1)                            // infinite loop
    {                              
         if(PINA==0b11111100)                   // sensors inputs low(Both sens is in white)            
               PORTB=0b00001010;             // move forward
        if(PINA==0b11111101)                 
                PORTB=0b00001001;           // move ri8
           if(PINA==0b11111110)
                PORTB=0b00000110;           //move left
            if(PINA==0b11111111)                // both sens on black
               {
                   if(i<10)                             
                        i++;              
                   else     
                        goto sb;
                  while(m)                                  // again infinite loop 
                 {  
                        if(PINA==0b11111111)             //again checking whether in black or not
                        {  
                               PORTB=0b00001010;
                               PORTD=i;                  // represent numbers in binmary thro LED’s since port D is for LED’s
                        }
                        else                                         //if not in black come out of this infinite loop
                             m=0;                            // m=0 so dat infinite loop ends… 
                 }
               }
      }
sb: PORTB=0b00000000;   //for stopping while showing 10 in binary…
      PORTD=i;                    
}

I’m just think another

I’m just think another techinique, mush easier.

If you “call” station is near a wall, as you push the call button your robot may travem in straight line until reach a wall, so with some help of a sonar or other distance sensor, follow the wall until reach the point. In the point you can send a “hey, you reach your goal” for stop the robot.

compass plus wheel encoders

If you use an electronic compass, and wheel encoders, it should be pretty easy.

Direction + distance, will get you where you need to go.

I use this method on my beer-fetching robot, and it works well.