Roomba Program 1

From GICLWiki
(Difference between revisions)
Jump to: navigation, search
Line 1: Line 1:
 +
This program is a basic autonomous behavior for Roomba and can be used as a starting place. Where you should be looking in this sample code is the "ROOMBA PORT"
 +
 
     ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 
     ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 
     // Program: ROOMBA_TEMPLATE
 
     // Program: ROOMBA_TEMPLATE
Line 44: Line 46:
 
             // ::::::::::::: START CODE (Code goes between this thing and.... *look down*) :::::::::::::
 
             // ::::::::::::: START CODE (Code goes between this thing and.... *look down*) :::::::::::::
 
                 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 
                 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
           
+
       
            // **WALL FINDING**
+
            // - Simple loop that reiterates until it sees a wall
+
            // - Roomba "waggles" forward
+
            // - When it hits left bump sensor, it turn 45 degrees right, and vice versa
+
            // - When it finds a wall, it exits loop, and code can be implemented afterwards for another behavior 
+
   
+
 
             while( ! roombacomm.wall())       
 
             while( ! roombacomm.wall())       
 
                 {           
 
                 {           

Revision as of 12:08, 3 February 2007

This program is a basic autonomous behavior for Roomba and can be used as a starting place. Where you should be looking in this sample code is the "ROOMBA PORT"

   ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
   // Program: ROOMBA_TEMPLATE
   // Description: - This a template for any Roomba program. In order to use this, simple place code in the 'while' loop in place of "// ((>>>>]]}- PLACE CODE HERE -{[[<<<<))"
   //              - As a Disclaimer, this loops much more complicated than it is...
   //
   // Drexelized By: Peter Thai - [pwt23@drexel.edu]
   ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
   
   // This imports the libraries necessary for communicating with Roomba (namely RoomabComm)
   import roombacomm.*;
   import roombacomm.net.*;
   
   
   //This stops Roomba and disconnects it from your computer.
       String roombacommPort = "COM3"; // <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<::::::::::::: ENTER YOUR ROOMBA PORT :::::::::::::
   //String roombacommPort = "/dev/cu.RooTooth-COM0-1";
   boolean hwhandshake = false; 
   RoombaCommSerial roombacomm = new RoombaCommSerial();
   roombacomm.waitForDSR = hwhandshake;
   
       
   // If Roomba fails to connect, it will print out an error and terminate the program 
   if ( ! roombacomm.connect(roombacommPort) )
       {
           println("Couldn't connect to "+roombacommPort);
           System.exit(1);  
       }
   
   
   // Once Roomba is connected, it will perform the following actions to indicate it has connected
   println("Roomba startup on port"+roombacommPort); // Prints out the Port on which Roomba is connected
   roombacomm.startup();
   roombacomm.control(); // Puts Roomba in "Safe Mode"
   roombacomm.playNote(72,50); // Plays a note
   roombacomm.pause(100); // Pauses Roomba while note is being played
   roombacomm.updateSensors(); // Updates the state of all sensors 
   
   
   // This is the main loop. It is executed continuously until the variable 'done' is set to true
   boolean done = false; // This instantiates the variable 'done' and sets it to false
   while (!done) 
       {
               ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
           // ::::::::::::: START CODE (Code goes between this thing and.... *look down*) :::::::::::::
               ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
       
           while( ! roombacomm.wall())       
               {          
                  
                   roombacomm.goForward();
   
                   if (roombacomm.bumpLeft())            
                       {                
                           roombacomm.spinRight(45);            
                       }         
                   else if (roombacomm.bumpRight())             
                       {                
                           roombacomm.spinLeft(45);             
                       }        
                   roombacomm.updateSensors();     
               }   
   
               ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
               // ::::::::::::: END CODE (Code goes between this thing and... *look up*) :::::::::::::
               ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
       }
   
        
   //This stops Roomba and disconnects it from your computer.
   roombacomm.stop(); 
   roombacomm.disconnect();
Personal tools