1. Download the Java API (no, not a typo):
http://www.cs.cmu.edu/~cga/humanoids-ugrad/robosapien-java.zip
2. Inside said API, you will find a zip file called sdimage.zip. Unzip
this into some directory. One of the resulting subdirectories will be
called rsupdate. Inside this directory is a shell script called
rsupdateapp. This is a shell script run early in the boot
process. When you're using Java, it runs your Java app. You can put
whatever you like here.
Here
is a partial guide to commands you can run from your shell
script.
Here is a list of
software for this robot. Of particular interest is
the C cross-compiler, so you can write C code that runs on the robot,
and is, you know, fast. However, until and unless you disassemble and
reverse-engineer the command and state-query binaries on the robot,
you'll still be calling out to them, so the utility of C may be
limited.
It has been theorized by people who do this kind of thing that the
binaries in question actually pass messages over a bus of some kind
to
another processing unit that actually handles control, and the thing
you're programming is actually the media end, rather than the control
end. (Hence, for example, the binary name send_robot_cmd.)
3. Once you've modified rsupdateapp to do what you like, copy it and
any necessary files to the corresponding directory on the SD
card. Unmount the SD card, stick it in the robot, and feel
glorious.
Some notes:
- Some of the things you will find on the internet will suggest
cracking the robot open and doing unholy things to its innards. Don't
do that.
- If you want to get info back about, say, prints you make, you have
to keep the part in the shell script that mounts the SD card and
cd's
to it, and then redirects the output of your actual program to a file
on it.
- People have gotten a USB connection to talk to the robot, and I
think even a shell, but it involved complicated Windows driver
magic,
which I wasn't enormously enthusiastic about.