Difference between revisions of "ME/CS 132a, Winter 2011, Lab 1"

From Murray Wiki
Jump to navigationJump to search
Line 4: Line 4:
* '''Server address: tokyo.cds.caltech.edu'''
* '''Server address: tokyo.cds.caltech.edu'''
* '''Connection type: SSH'''
* '''Connection type: SSH'''
* We will use the dollar sign "$" as the command line prompt. You shouldn't include this as part of the commands below.


=== Logging into the Player/Stage remote server (Linux/Mac OS X) ===
=== Logging into the Player/Stage remote server (Linux/Mac OS X) ===
Line 25: Line 26:
#* <TT>your_RPIN</TT> is your robot port ID number which you were already assigned.
#* <TT>your_RPIN</TT> is your robot port ID number which you were already assigned.
#* You should see the Stage simulator and a simulated robot wandering around.
#* You should see the Stage simulator and a simulated robot wandering around.
== Exercise #2: Running Player/Stage with Your Own Client Code (Controller) ==
In Exercise #1, we see the simulated robot wander around, but now let's make it move in a controlled fashion by inserting our own controller (referred to as the ''client code'').
# Follow the instructions as in Exercise #1, but this time use another world config file. This simulates the floor plan of the lab.:<BR> <TT>$ player lab0014.cfg -p <your_RPIN></TT>
# Open another terminal window. Connect to the server, and change to the directory containing the tutorial code:<BR><TT>$ cd tutorials </TT>
# Compile the C++ code to generate the binaries (i.e. executables). You only need to do this once unless you change the source C++ code (<TT>.cc</TT> files): <BR><TT>$ make</TT> <BR>
# Run the following to start the client program. You should see the robot moving in a circle in the Stage simulator:<BR><TT>$ ./me132_tutorial_0 -p <your_RPIN></TT>
#* The reason that "./" (meaning "the current directory") is put before the executable is that Linux does not automatically look for the file in the current directory (unlike in Windows), so we need to explicitly tell its location.

Revision as of 18:43, 3 February 2011

Exercise #1: Running Player/Stage Remotely

In order to run Player/Stage remotely, you'll need to access the robotics server using the login information provided in class. You'll need to have X-forwarding enabled. This is pretty straight-forward if you're running UNIX-like systems. See below for special notes on how to run using Windows.

  • Server address: tokyo.cds.caltech.edu
  • Connection type: SSH
  • We will use the dollar sign "$" as the command line prompt. You shouldn't include this as part of the commands below.

Logging into the Player/Stage remote server (Linux/Mac OS X)

  1. Open a terminal window (that is X-friendly).
  2. Connect to robotics via SSH:
    $ ssh -X username@tokyo.cds.caltech.edu
    and enter the password (where username needs to be replaced with the one given out in class).
    • The "-X" enables X11 forwarding, which is how you'll get the Stage windows and such to appear on your local machine.
  3. If this is your first login, be sure to change your password by running passwd in the command line.

Logging into the Player/Stage remote server (Windows)

In order to use Windows, you'll need to install X-Win32, which is freely available through Caltech's software service, as well as an SSH client, such as Putty.

  1. Once X-Win32 is installed on your machine, start up the X-Win server.
    • This should put a little "X" icon in your system tray.
  2. Open up your SSH client program, and change the appropriate settings to enable X11 forwarding.
    • For Putty, this is under "Connection-->SSH-->X11 forwarding"
  3. If this is your first login, be sure to change your password by running passwd in the command line.

Running Player/Stage

  1. Change directory to the appropriate path that contains the Robotics lab stage world file:
    $ cd worlds
  2. Start up Player, using the Robotics lab world config file:
    $ player simple.cfg -p <your_RPIN>
    • your_RPIN is your robot port ID number which you were already assigned.
    • You should see the Stage simulator and a simulated robot wandering around.

Exercise #2: Running Player/Stage with Your Own Client Code (Controller)

In Exercise #1, we see the simulated robot wander around, but now let's make it move in a controlled fashion by inserting our own controller (referred to as the client code).

  1. Follow the instructions as in Exercise #1, but this time use another world config file. This simulates the floor plan of the lab.:
    $ player lab0014.cfg -p <your_RPIN>
  2. Open another terminal window. Connect to the server, and change to the directory containing the tutorial code:
    $ cd tutorials
  3. Compile the C++ code to generate the binaries (i.e. executables). You only need to do this once unless you change the source C++ code (.cc files):
    $ make
  4. Run the following to start the client program. You should see the robot moving in a circle in the Stage simulator:
    $ ./me132_tutorial_0 -p <your_RPIN>
    • The reason that "./" (meaning "the current directory") is put before the executable is that Linux does not automatically look for the file in the current directory (unlike in Windows), so we need to explicitly tell its location.