CS395T: Autonomous Robots -- Assignment 1
Assignment 1: How to Use an AIBO
Note: you will not be able to start on this assignment until after the first day of class when we create your accounts and give you access to the lab.
The purpose of this assignment is to become familiar with the process
of loading up memory sticks, running programs on the Aibos, and
editing your Aibo programs. The three parts of the assignment are
logging into Vieri, the computer that we use to compile Aibo
code and load memory sticks, running a Sample Program, and
finally editing some actual C++ code and observing the result.
Log into Vieri
Vieri is the Dell laptop in the lab between the bookcases, but you
should log into it remotely.
- Log onto a CS Machine. You should be able to log
directly onto the machines in the lab with your CS account.
- You should already have an account on Vieri. Telnet into Vieri as follows:
Run a Sample Program
- Go to the directory with all the sample programs in it:
The sample programs do relatively straightforward things:
- LMasterRSlave: You move its left legs; the robot mirrors the actions with its right legs.
- BlinkingLED7: Blinks all the LEDs in a pattern, and clicks the ears.
- HelloWorld: Outputs to the telnet window.
- SensorObserver: Outputs sensor values to the telnet window.
- Etc.: You are encouraged to experiment with the other sample programs to see what they do.
- In this directory, each subdirectory is one sample program. Copy one of them into your home directory so you can experiment on it:
cp -r <SampleProgramName> ~/
- You are now in the main directory of the program. Run the command make. This compiles the code into binary .BIN files (in the appropriate subdirectories). Note that some of the sample programs (esp. MovingLegs7 and MovingHead7) will not compile without certain other programs present in the parent directory.
- Then run make install. This moves the .BIN files into the MS/ directory (specifically, into the directory MS/OPEN-R/MW/OBJS).
- Put a memory stick in the memory stick reader attached to Vieri. (If there is no free memory stick sitting next to Vieri, get one from inside an Aibo.)
Be careful when using the memstick reader:
- Always umount the memstick reader and take your memstick out when you are not using it (see step 6).
- Never mount the memstick reader when someone else is using it (if there's a memstick in the reader, you can use /home/robosoccer/memstick/whosestick.pl to see if it is mounted and by whom).
- Only use the memstick reader when you are physically in the lab.
- Breaking these rules may make the memstick reader temporarily unusable, so be careful!
- Execute the following series of commands to get your program onto the memory stick, where <IP-number> is a multiple of 10 from 10 to 80 of your choice.
cp -r MS/* /memstick
- Once the red light on the memstick reader goes off, take the memstick out of the reader, and put it in an Aibo. Make sure the Aibo also has a fully charged battery in it, and turn the Aibo on (the button on the back of the Aibo's neck).
- Interact with the Aibo in a manner suggested by <SampleProgramName>. Some programs interact via a telnet window. To telnet into the robot and see what it is saying, type (from a shell on Vieri):
telnet 10.0.1.<IP-number> 59000
Note that if another Aibo with the same IP as yours is also on, you may encounter problems telnetting into your Aibo.
Edit a Sample Program
- To edit the sample program, you will need to set the appropriate permissions. In your <SampleProgramName> directory, do:
chmod -R a+rwx *
- In your <SampleProgramName> directory, there will be some number of OPEN-R Object directories. These directories are most easily recognized by the fact that inside directory <ObjectName> is a file <ObjectName>.cc. Note that an OPEN-R Object has no relation to a C++ Object.
- Edit one of these <ObjectName>.cc files. For now, don't worry too much about figuring out exactly what everything is doing. Your goal is to decide on a change and verify that you can make it happen.
- Here are some examples of changes you could make:
Feel free to do one of those, or invent any other change.
- Change BlinkingLED7 so that the LEDs flash in a different pattern.
- Change LMasterRSlave so that different pairs of joints have the master/slave relationship.
- Compile with make, and if that works, install with make install.
- Transfer the program to a memory stick and observe, as in steps 5-8 above.
- Some useful constants and information are given in the following files:
(Now linked here)
(Now linked here)
(Now linked here)
What to Turn In
- Send us (stronger and pstone) an email with a description of the change made. It can be as simple as:
- Sample program modified: xxx
- Old Behavior: xxx
- New Behavior: xxx
- Be prepared to demo your program in class on Thursday the 8th.
[Back to Class Homepage]
Page maintained by
Peter Stone and Dan Stronger
Questions? Send me