Robot Programming Code
Robotics Institute
Carnegie Mellon University

I am starting to release all of our useful robot programming code for the consumption of the courageous among you.

RoboCode

Here, finally, is a zipped example for using a USB camera directly from Java. The trick is to make use of the JMF, or Java Media Framework, which is available here. You will want to download, for instance, the JMF 2.1.1 release and use it as instructed in our instructions. This USB solution supercedes the C-based SDK that we all used to use from Logitech and that is archived a few paragraphs down on this page.

Here is a zipped set of examples of our 16x62 code for controlling Nomad Scouts in Mobile Robot Programming Laboratory.

Here is a zipped example of communication between the Cerebellum 16f877 pic board and the CMUcam. There are plenty of comments in the code, so just click here for a zip file. Note that the cmucam example is up to date, but you should really use cerebv2.c and .h rather than cereb.c and .h.

Here is a zipped example of communication between the Handyboards used in BotBall (running Interactive C) and the CMUcam. Plenty of comments in the code, so just click here for a zip file.

Here is a software module for making programming the Cerebellum easy. This code is all designed to compile under the C2C programming environment. WARNING: Use only C2C version 4.1.7e, especially if you're at CMU! In general, this is an up-to-date version of the Cereb distribution, this is version 4.1. I support this for CMU users but for others in the wide open world you are welcome to download this and use it at will. Click here for a zip file. Please note-- if you're at CMU, you also have a right to the install files and the C2C key. For this information contact me directly.

NOTE: The following USB driver and example is accessible for archival reasons only. Don't use this. It is too old. Instead use the Java solution further up this page! Here is an easy way to use a USB Camera to do computer vision on a notebook computer - for a mobile robot, of course! Click here for a zipped Visual C++ 6.0 project that includes all the source code as well as a README pdf document that describes things. Click here for just the documentation.

This is a zipped Microsoft Visual C++ 5.0 project and a Symantec Visual Cafe Java project that you might like. It implements a simple serial port interface, via the C dll, in Java. So now your Java programs can do things like talk through all of your machine's serial ports. Just click here.

Here is a zipped executable (for Windows 95 and NT) that communicates with a scout, allows you to turn on and off the sonars, displays the sonar pings graphically, and allows you to use the keyboard to joystick the robot around. Just click here.

The following is a WinZipped Visual C++ 5.0 project that implements a windows-based communication interface for the Nomad Scout robot. This is a windows interface-- there is no main(), but the part you need to look at is called RobotMain() and is located in robot.c. Simply unzip this code on your Windows 95 or Windows NT machine, connect up your Nomad Scout to serial port 1, and run the code. Examples meant for pattern matching are provided in robot.c.
WinZipped Nomad Scout PC-based windows interface

The following is a WinZipped Visual C++ 5.0 project that implements a communication interface for the Nomad Scout robot that does NOT use windows-- it just uses a console. So, this program has a main(), like any ordinary C project.
WinZipped Nomad Scout PC-based console interface

The following is a WinZipped Symantec Java 1.1 project that implements a communication interface for the Nomad Scout. This zipped archive contains two important directories. CSIDE contains the source code for the DLL that I made in Visual C++ 5.0 that communicates with the robot. JAVASIDE contains the source code for an example Java program that controls the robot using my DLL. This is great fun; enjoy!
WinZipped Nomad Scout Java interface with C DLL

The following is a WinZipped Symantec Java 1.1 project that implements a *graphical* communication interface for the Nomad Scout. Use this instead of the one above. Included in this zip is a robot manual written by us for the Scout, including a step-by-step introduction to Symantec Visual Cafe and a quick reference guide that we've put together. Enjoy!
WinZipped Graphical Nomad Scout Java Interface with Microsoft Word 6.0 reference manual and quickref

THIS is a Winzipped Symantec Visual Cafe project for having your robot/computer speak with a speech synthesizer made by microsoft research! You need this and you also need to download and install Microsoft's speech SAPI 3.0 SDK (or is it 4.0?), available at here. Enjoy!!! And note that in the project directory there is a Word 6.0 file that describes how it all works...
If you need the development environment where we made the C DLL (using Microsoft Visual C++ 5.0), then you should download this.

The following is a text file containing code for computing Hue, Saturation and Intensity from RGB data. Color cameras are *very* useful, and Hue is a great identifier to use when Saturation is high. Be warned, there are many alternative equations for computing HSI-- this is just one of these many!
Code for computing HSI from RGB

[ The Robotics Institute | Carnegie Mellon University ]

Last modified September 29, 1997
Illah R. Nourbakhsh ( illah@cs.cmu.edu)