Iris.3 Windows Group

Progress:

April 19, 2001

I fixed up the Windows Interface and action.exe to use with Protothinker. The source code is in CVS and you can download the programs here:

  • action.exe

    This is the program that ProtoThinker calls. It opens up a socket to the WindowsInterface.exe. This program must be in the ProtoThinker directory. (usually C:\ptdir) Hopefully in the future this program will no longer be needed and ProtoThinker itself will be able to open a socket directly to where it needs to.

  • Iris.3 Windows Interface EXE.exe

    This program needs to be run first. It runs in the background as a socket server. When you ask (or tell) PT to do something, the action.exe program connects to this server. This program then evaluates the command string and executes commands based on it.

Goals:

Basically what we are trying to do is get a collection of Windows programs working together to run a robot. We want to get these programs working together:

  • ProtoThinker
  • Text To Speech
  • Robotic Arm controller
  • Tic Tac Toe
  • (Speech Recognition)
  • (Other game programs)

Right now we are planning on having a 'Windows Interface' or 'Central Control' program that PT would contact with what it wants to do. This interface program will handle running the other programs as well as handling certain options for the robot.

Information:

We currently have the software that was used for a previous robot. However, both the software and the system that was used to connect the programs have problems that we would like to fix.

Known problems:

  1. The existing central control program uses massive amounts of processor time.

    We will have to rewrite the existing central control program. The current one monitors two files and I believe that causes a large load on the processor. I have written a prototype shell of a program that uses sockets to receive the program from PT. The program doesn't seem to have the same problem as the original. However, it is not what we need and we need to write it better and add more functionality.

  2. ProtoThinker uses massive amounts of processor time.

    We can't do much about this now. One of the problems was that since both PT and the central control program used so much processor time, the whole system started running slow. Hopefully if we eliminate the inefficiency in the central control program, then the computer will be ok. Hopefully, we will be able to modify PT to fix this since we are getting the source code, but it will be a while.

  3. The robix arm controller program took up the entire computer and nothing else could run.

    This is a problem with the DOS operating system I believe. We have windows software and C/C++ code that we can use with the robotic arm controllers, so this shouldn't be a problem.

  4. The robot would only accept specific strings as commands

    The robot would only do an action if the user typed exactly the right command. For example, the robot would only show a movie of its 'library' if the user typed 'would you please show me your library'. It would not do that if the user typed 'show me your library' or 'please show me your library' Perhaps we could write a program that would take the input string and look for certain tokens or flags and then determine if it was supposed to do something.

Things to Do:

Code to be written:

  • Central Control Program:

    • socket server
    • options window (controls, etc)
    • general program/setup stuff
    • functions to spawn external programs
  • action.exe

    Opens up a socket to the CCP and sends the string it got as a command line input.

  • Input string parser

    program/function to find keywords in the input string

  • robotic arm control program

    We have C/C++ code that we can use to help do this.

  • Text to speech

    We have code that we can use for this as well

  • quicktime movie player

    (do we want other movie formats as well?) Possibly we could just call Windows Media Player with the arguments?

Software:

Here you can download some of the software we are using.