TeamTalk consists of a set of software components that are used to interface via spoken and graphical modalities with teams of robots. This software is built using the Olympus framework. The software is currently alpha, and is not currently licensed for any kind of use.
The following is a list of system requirements for running a binary version of the system. All of the following must be installed for a fully functional system.
|Requirement||Required By Component|
|One or more Cepstral voices. We recommend: Callie, David, Diane, and William.||Kalliope uses Cepstral for its TTS output.|
|ActiveState's ActivePerl. Also get the Win32::API module.||TeamTalkNLG uses the Perl module Rosetta.|
|The Java Runtime Environment.||PenDecoder, the map GUI, is written in Java.|
|Microsoft 2005 C++ redistributable package||Probably necessary if one does not have Visual Studio .NET 2005 installed.|
The following table is a list of development tools that may be needed to develop the system. This list is in addition to the runtime requirements above.
|A Subversion client such as TortoiseSVN.||The source code is stored in a Subversion repository. You may also need Subversion if you need to run Subversion from the command line (such as for downloading from an external repository like Cepstral). Any version of the binary executable built against Apache, such as version 2.0 or 2.2, will suffice.|
|Microsoft Visual Studio .NET 2005. The AnkhSVN subversion plug-in is also recommended.||Most of the components, including Helios, Kalliope, Audio Server, Sphinx Engine, NLGServer, Phoenix, PrimitiveComm, Ravenclaw, TeamTalkBackend, and TeamTalkDM are all developed in this development environment. You may need to compile directly in Visual Studio.|
|Microsoft Speech SDK 5.1 or Better (Version 5.3 is Included with the Windows Vista Platform SDK)||Required to compile Kalliope Text to Speech.|
|Sun's Java SDK and Netbeans IDE 6.1.||These are required for editing and compiling the PenDecoder.|
- Install the run-time requirements as described in the Run-time Requirements as well as whatever developments tool may be required as described in Compile-time Requirements.
- Get the following TeamTalk sources from the Subversion repository. Ask User:Tkharris for access if needed. TortoiseSVN is recommended.
- If you want the main development trunk for TeamTalk, perform an SVN checkout for http://trac.speech.cs.cmu.edu/repos/teamtalk/trunk/TeamTalk, and for Olympus, http://trac.speech.cs.cmu.edu/repos/olympus/trunk, with a different folder given to each checkout.
- If you are using the Cepstral SDK for voices, copy the Cepstral SDK directory to Olympus\Libraries. A command-line based svn checkout is recommended to place the Cepstral SDK in Olympus\Libraries. You must copy the license (license.txt) into each voice's folder on your hard drive (e.g., C:\Program Files\Cepstral\voices\Callie).
- First run the Olympus build batch file Olympus\OlympusBuild.pl. It will take around 4-10 min, depending on the speed of your system, for all the files to build.
- Run the TeamTalk build batch file, TeamTalk\SystemBuild.pl. It will take around 4-10 min, depending on the speed of your system, for all the files to build. (The PenDecoder may not batch compile correctly; if so, try compiling from the NetBEans IDE.)
(The repository sizes reported here are the amounts of data transmitted for estimating download time. Subversion working directories will actually use a little more than twice that amount of disk space.)
TeamTalk has a consolidated configuration file that described the robots that it needs to interface with. The file must be created before running the system. To do this, copy the plain-text file TeamTalk\Configurations\DesktopConfiguration\peerfile-example.txt to TeamTalk\Configurations\DesktopConfiguration\peerfile.txt. Edit the latter file to match your robot configuration.
The file consists of lines of the form
robotname ipaddress[:portnumber] voicename safe/dangerous
optrader ipaddress optrading_robotname
The robot portnumber is optional and defaults to 32788. Lines that start with a # are comments.
Here's an example:
#current local test alphie 127.0.0.1:32788 callie safe bashful 127.0.0.1:32787 david dangerous optrader 127.0.0.1 alphie mapserver 127.0.0.1
This example states that there are two robots, but running on localhost at the specified ports. An optrader server is also running on the localhost, alphie is the optrading robot, and a mapserver is running on 192.168.99.105. The optrading robot is a holdover that no longer has any meaning. At one time the optrading robot was the robot whose coordinate frame was used as the global coordinate frame. Never-the-less an optrading robot must still be supplied to the configuration, and it must be set to one of the operational robots.
Real Robots in the Field
TeamTalk is an interface to robots. For times when robots are not handy, and for testing the interface itself, two simulators have been developed, a low fidelity simulator and a high fidelity simulator.
This simulator simulates a group of robots who operate without sensors and with no coherent world model. This simulator is mostly useful for simple and quick testing of the front-end.
In the low-fidelity simulation, a static map is served to TeamTalk, and the robots have coordinates on the map, but there's no interaction between the map and the robots. That is, the robots don't see any obstacles and will happily drive through walls if you instruct them to. You should see a map on the display that doesn't change. You should also see the robots, although they're a little hard to see at first because they start with the center of their body in the upper left corner (they are facing up as well). They also don't interact with each other (will pass through each other) and they don't pay attention to the map boundaries. They will happily march off of the map.
First, one must supply a configuration that specifies robots running on the local host. The configuration example in Configuration specifies two robots, an optrader, and a mapserver all running on localhost. From the TeamTalk\Configurations\DesktopConfiguration directory, run:
..\..\Agents\TeamTalkBackend\backendstub\Release\backendstub.exe --peerfile peerfile.txt --mapserver
Starting the System
- Bootstrap a language model using MakeLM. This only needs to be done once, before the first time that the system is launched. When you compile the system using SystemBuild.pl or SystemRebuild.pl, this will be done automatically for you.
- To run the full virtual TeamTalk system, in the TeamTalk directory run:
To run the non-virtual TeamTalk system, in the TeamTalk directory run:
TeamTalkRun.batIt may be useful to create a shortcut to this. The first time it runs you may need to unblock a number of programs.
- Once the GUI has been launched, press the Start Session button. The robots should introduce themselves.
TeamTalk is a graphical and spoken language interface for teams of heterogeneous robots. The target scenario is a treasure-hunt scenario in which people and robots work together in the field looking for some specified treasure. The people interact with each other as well as with the robots. It has been designed so that a person carrying a small tablet and wearing a headset attached to that tablet can view the status of the robots and their conception of the environment on the tablet, and may also direct the robots via speech and/or through tablet-pen gestures.
TeamTalk software should be considered to be in an alpha state. It is under development.