TRI: Bridging the Gap between Wireless Sensor Networks and Autonomous Agents

Todd Sullivan and Dr. Yi Shang
Undergraduate Honors Thesis
University of Missouri-Columbia Department of Computer Science

TRI stands for the TinyOS Robot Integration server. TRI was my undergraduate honors research project. The project involved connecting a Sony AIBO with a Wireless Sensor Network (WSN). The AIBO used the extra sensory data from the WSN to perform various basic tasks. Feel free to view the following:


TRI Paper


Source Code


AIBO Demonstration Videos

  • Head Movement

    • Original+Replay Overlay
    • Original+Replay Split-Screen
  • Sleep-Sit-Stand

    • Original+Replay Overlay
    • Original+Replay Split-Screen
  • Walk to Light

    • Longer Original Recording
    • Original+Replay Overlay
    • Original+Replay Split-Screen

Installing the TRI Server

These instructions assume that you are on a Windows machine using Cygwin.

  • Install TinyOS 1.1.0 by downloading and following the instructions at http://www.tinyos.net/download.html. Installing TinyOS should install Cygwin. If you want to install Cygwin separately, feel free to do so.
  • Download the JDBC driver for MySQL at http://dev.mysql.com/downloads/connector/j/3.0.html
    • Place the driver (.jar file) in %dirpath%/tinyos-1.x/tools/java/jars.
  • Download the TRI Server source code.
    • Place the files in %dirpath%/tinyos-1.x/tools/java/tri.
    • Run the tri_tables.sql file (located in %dirpath%/tinyos-1.x/tools/java/tri) on your MySQL database.
    • Update triserver.java (located in %dirpath%/tinyos-1.x/tools/java/tri/server/triserv). The end of the file contains the main function. Update the variables dbURL, dbName, and dbPass with your database's information.
    • Compile the TRI Server by running javac on %dirpath%/tinyos-1.x/tools/java/tri/server/triserv/triserver.java.
  • TinyDB, which TRI uses, requires Java 1.4. It does not work with Java 1.5. Download JDK 1.4 at http://java.sun.com/j2se/1.4.2/download.html
    • Place JDK 1.4 in %dirpath%/cygwin/jdk1.4. We will need to use this later when using Tekkotsu and TRI on the same computer.

Installing the AIBO Demonstrations

These instructions assume that you are on a Windows machine using Cygwin. Note for Cygwin: You will run into problems if your username has a space in it. Your username should not include any spaces.


Making TRI/TinyDB and AIBO/Tekkotsu Work on the Same Computer

Compiling and running the TRI Server requires JDK 1.4 since TinyDB requires JDK 14. Compiling and running the AIBO demonstrations requires JDK 1.5 since Tekkotsu's monitoring program requries JDK 1.5. If you know how to setup paths, etc. so that each program uses the correct java version, go ahead and do that. Here is a quick fix if you are not familiar with Cygwin/non-Windows systems:

  • Download the bash profile and place it as %dirpath%/cygwin/home/%username%/.bash_profile
  • Change the paths /opt/tinyos-1.x/tools/java/net/tinyos/sim/, /usr/local/Tekkotsu/tools/mon, and /opt/tinyos-1.x/tools/java in the file so that they point to the correct folders in your configuration.
  • Now, when starting Cygwin it will ask you to choose "0 for AIBO Project, 1 for AIBO Monitor, 2 for TinyOS Java, or 3 for Home." If you choose one of the AIBO selections, JDK 1.5 will be placed in front of the path variable. If you choose TinyOS, then JDK 1.4 will be placed in front of the path variable.

Programming the AIBO

Tekkotsu has great documentation at http://www.cs.cmu.edu/~tekkotsu/documentation.html. Reviewing the TRI AIBO demonstrations will also provide insight into performing basic actions with the AIBO. Additional developer resources are at http://www.cs.cmu.edu/~tekkotsu/development.html. This includes the Beginner's Tutorial, which is incomplete but very good for explaining the basics of AIBO/Tekkotsu programming.