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:
- The Paper
- Source Code
- Videos
- TRI Server Installiation
- AIBO Demonstration Installation
- Additional Instructions
- AIBO Programming
TRI Paper
- Undergraduate Honors Thesis (PDF)
- Appendix A: TRI Server Commands and Responses (PDF) (Pages 10 to 13)
- Appendix B: triManager's Server Response to Map Translation (PDF) (Page 14)
- Undergraduate Honors Thesis Poster
Source Code
-
TRI Server Source Code
-
AIBO Demonstration 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.
- Install the Open-R SDK and Tekkotsu Development Toolkit by following the instructions at http://www.cs.cmu.edu/~tekkotsu/downloads.html.
-
Download the Tekkotsu Project Including AIBO Demonstration Code.
- Place it in %dirpath%/cygwin/home/%username%/project.
- Update the IP and port information for the TRI Server in the file %dirpath%/cygwin/home/%username%/project/ms/tri.cfg.
- Make sure Cygwin has rsync installed.
- Compile the program to a memory stick by following the directions at http://www.cs.cmu.edu/~tekkotsu/downloads.html#compiletekkotsu.
- Connect to the AIBO and run programs as detailed at http://www.cs.cmu.edu/~tekkotsu/downloads.html#usetekkotsu.
-
Tekkotsu's monitoring program requires Java 1.5. It does not work with Java 1.4.
Download JDK 1.5 at http://java.sun.com/javase/downloads/index_jdk5.jsp
- Place JDK 1.5 in %dirpath%/cygwin/jdk1.5. We will need to use this later when using Tekkotsu and TRI on the same computer.
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.

