Getting Started

Tekkotsu at a Glance

Tekkotsu means 'iron bones' in Japanese, often used in the context of buildings' structural framework. Similarly, this software package aims to give you a structure on which to build, handling routine tasks so that you can focus on higher level programming.

Tekkotsu is an application development framework for intelligent robots, it uses an object-oriented and event-passing architecture, making full use of the template and inheritance features of C++. It was originally written for the Sony AIBO, but has since grown to run on a variety of different robots.

Because Tekkotsu is written in industry-standard C++, there are no new languages to learn, and there is no sharp distinction between "high-level" and "low-level", you can get started quickly and smoothly dip deeper into the API as needed to customize functionality. Further, Tekkotsu aims to complement, not supplant, access to the lowest level features of the host hardware. For instance, although you will probably never need to make a direct OPEN-R call when programming with Tekkotsu on the AIBO, the capability is there should you discover the need to. This means you are limited only by the hardware itself, and not the API. We have developed this software as a means to handle tough research problems -- performance and low overhead are important design considerations.

Some of the services Tekkotsu provides include basic visual processing, forward and inverse kinematics solvers, remote monitoring and teleoperation tools, and wireless networking support. A large library of tutorials and demo behaviors are included to help you get started, with extensive reference documentation when you have specific questions. Tekkotsu is an open source, free software project that builds on several third party libraries, such as ROBOOP (general kinematics), NEWMAT (matrix operations), libjpeg, libpng, libxml2, and zlib.

The Controller GUI panel shown below is the main interface for controlling a robot from the PC.  Similar capabilities are available from the console (telnet to port 10001 on the robot) if you do not wish to use a Java-based GUI interface.

ControllerThumb
Sample Controller GUI Menu

You can stream video from the robot in real time with RawCam and monitor the performance of the color segmentation with SegCam, both of which are launched from the ControllerGUI.  You can also record these streams to image sequences on the desktop for later processing.  The RawCam window also lets you select what color space to view. Compression, resolution, and channel options may be modified. The low-level network protocol code for all services are separated from the GUI implementation into independent classes to enable easy reuse for other applications, such as GUI mashups or off-board processing.

rawGUIsegGUI
RawCam and SegCam images

Using the Walk Remote Control interface, the AIBO may be driven around. Combined with the vision monitors, this is everything you need for basic telepresence.

walkGUIThumb
Walk Remote Control GUI

Check out our demo videos and screenshots to see Tekkotsu in action.

To learn more about the Tekkotsu framework, read the Architectural Overview.
To learn more about the user interface, read the TekkotsuMon Tutorial.
If you want to see some sample code, check Dr. Touretzky's tutorial.

Setting Up a Tekkotsu Robotics Education Lab

First, you will need some robots. Although Sony has stopped production of the Aibo, it remains an extremely capable platform, with robust hardware and no assembly required. Finding a second-hand Aibo through E-Bay is a viable option alongside other commercially available platforms supported by Tekkotsu. Note that only the following AIBO models are compatible with Tekkotsu (or any OPEN-R SDK development): ERS-210(A), -220(A), and ERS-7. The 200-series also require the wireless networking upgrade.

To learn more about AIBO specifications, please visit our AIBO Information page.

Second, you will need some laboratory space. We recommend constructing a playpen for the robots to run around in, which protects them from being stepped on, falling off ledges, or other environmental damage. A well designed environment can also simply perception problems when necessary.

You will also need a computer (Windows, Mac, or Linux) with 802.11b wireless ethernet capability.  We recommend getting a dedicated wireless access point (WAP) to communicate with the robots, and then using wired connection between the computer and the WAP. This is to avoid having the WAP retransmit data between the robot and the computer, which causes data collisions and poor network performance. You will also want to assign the robots static IP addresses (or better yet, reserved addresses via the DHCP server) so they will have consistent accessiblity.

Peer to peer mode, where the computer uses it's own built-in wireless to directly communicates with the robot, is another choice, but this can be troublesome when multiple Aibos are in use, and usually has lower bandwidth than using a dedicated WAP with a wired connection to the computer.

Learning to use Tekkotsu

Beginner's tutorial (html)
    Author: David S. Touretzky, Carnegie Mellon University

More tutorials are available in the Developer's Resources section.