Pioneer 2 PeopleBot - iri.upc.edu

27
Pioneer 2 & PeopleBot MOBILE ROBOTS with Pioneer 2 Operating System Servers COMPUTER & SYSTEMS MANUAL

Transcript of Pioneer 2 PeopleBot - iri.upc.edu

Pioneer 2

& PeopleBot M O B I L E R O B O T S with Pioneer 2 Operating System Servers

COMPUTER &

SYSTEMS MANUAL

ii

Copyright © 2001, ActivMedia Robotics, LLC

All rights reserved.

Under international copyright laws, this manual or any portion of it may not be copied—or in any way duplicated—without the expressed written consent of ActivMEDIA ROBOTICS.

The software on disk and on the Pioneer 2 controller ROM, which accompany the robot and/or are available for network download by ActivMEDIA ROBOTICS’ customers, are solely owned and copyrighted or are products of SRI International as licensed for distribution by ActivMEDIA ROBOTICS.

Pioneer developers and users are authorized by revocable license to develop and operate custom software for personal research and educational use only. Duplication, distribution, reverse-engineering, or commercial application of the Pioneer software and hardware without the expressed written consent of ActivMEDIA ROBOTICS is explicitly forbidden.

The various names and logos for products used in this manual are often registered trademarks or trademarks of their respective companies. Mention of any third-party hardware or software constitutes neither an endorsement nor a recommendation.

ActivMEDIA ROBOTICS, LLC

44 Concord Street, Peterborough, NH 03458, USA •

http://www.ActivRobots.com

603-924-9100 • Fax 603-924-2184

Pioneer 2 Mobile Robots�Computer and Software Manual, v4 June, 2001

iii

Table of Contents

CHAPTER 1 INTRODUCTION.......................................................................................1 ADDITIONAL RESOURCES .......................................................................................................................1 ONBOARD PC OPERATION...................................................................................................................1 LINUX ...................................................................................................................................................2

User Login............................................................................................................................... 2 Network and User Configuration Tools............................................................................... 2 GUI Desktop........................................................................................................................... 2 Network Access .................................................................................................................... 3

WINDOWS95-2000/NT ........................................................................................................................3 Network Configuration......................................................................................................... 3

SERIAL PORTS........................................................................................................................................3

CHAPTER 2 SOFTWARE - LINUX .................................................................................4 ACTIVMEDIA COLOR TRACKING SYSTEM (ACTS)...................................................................................4 AYLLU...................................................................................................................................................5 BOTSPEAK.............................................................................................................................................6 SAPHIRA ...............................................................................................................................................7 STEREO VISION SOFTWARE (SVS) ...........................................................................................................8

CHAPTER 3 HARDWARE –––– LINUX...............................................................................9

ACTIVMEDIA PAN TILT UNIT (AMPTU) ...................................................................................................9 BREEZECOM WIRELESS ETHERNET............................................................................................................9 WAVELAN/IEEE (ORINOCO) PCMCIA RADIO ETHERNET ....................................................................9 BT848 FRAME GRABBER DRIVERS..........................................................................................................10 P2 GRIPPER........................................................................................................................................11 SONY PTZ CAMERA............................................................................................................................11 SOUNDBLASTER COMPATIBLE PC104 SOUND CARD..............................................................................11 DUAL SOUNDBLASTER COMPATIBLE PC104 SOUND CARDS ...................................................................11 SICK LASER RANGE FINDER ..................................................................................................................12 WIRELESS RADIO MODEM ...................................................................................................................12

CHAPTER 4 SOFTWARE –––– WIN32 .............................................................................13 ACTIVMEDIA COLOR TRACKING SYSTEM (ACTS).................................................................................13 AYLLU.................................................................................................................................................14 BOTSPEAK...........................................................................................................................................15 REMOTE ACCESS PROGRAMS..............................................................................................................15 SAPHIRA .............................................................................................................................................16

CHAPTER 5 HARDWARE –––– WIN32............................................................................18

ACTIVMEDIA PAN TILT UNIT (AMPTU) .................................................................................................18 BREEZECOM WIRELESS ETHERNET..........................................................................................................18 BT848 FRAME GRABBER DRIVERS..........................................................................................................18 P2 GRIPPER........................................................................................................................................18 SONY PTZ CAMERA............................................................................................................................18 SOUNDBLASTER COMPATIBLE PC104 SOUND CARD..............................................................................19 SICK LASER RANGE FINDER ..................................................................................................................19 WIRELESS RADIO MODEM ...................................................................................................................19

iv

CHAPTER 6 PERFORMANCE PEOPLEBOT.................................................................20 HARDWARE ........................................................................................................................................20 SOFTWARE ..........................................................................................................................................20 SONARS..............................................................................................................................................20 I/O EXPANSION BOARD AND JOYSTICK PORT.......................................................................................20 TABLETOP IR SENSORS..........................................................................................................................20 COLUMN IR BREAKBEAMS ...................................................................................................................21 IR SENSOR PROGRAMMING.................................................................................................................21 EMERGENCY STOP BUTTON AND E-STALL...............................................................................................21 GRIPPER .............................................................................................................................................22

1

Chapter 1 Introduction Congratulations on your purchase of a Pioneer 2 or PeopleBot Mobile Robot from ActivMEDIA ROBOTICS. This document describes the standard ways ActivMEDIA ROBOTICS configures your robot’s onboard PC systems and software for use under Redhat Linux or Microsoft Windows. This document also is a modest User’s Guide for operation of the onboard computing systems.

Additional Resources If you encounter any troubles with your new robot, please consult these sources before contacting ActivMedia Robotics with support questions. These resources are available for all ActivMedia Robotics customers, and help reduce questions about the robots.

http://robots.activmedia.com Pioneer Software and documentation

website http://robots.activmedia.com/FAQ.html

Pioneer 2 Frequently Asked Questions

http://www.mobilerobots.com

General Robotic information, as well as the WebPioneer

http://www.mobilerobots.com

General Robotic information

http://www.activrobots.com

General Robotic information

http://robots.activmedia.com/archives/pioneer-users/index.html

Pioneer-users mailing list archives

http://robots.activmedia.com/archives/saphira-users/index.html

Saphira-Users mailing list archives

http://www.amigobot.com

AmigoBot software and documentation website

[email protected]

If something malfunctions on your mobile robot, contact pioneer-support for questions. This is ONLY for robot breakdowns. Include your robot’s SERIAL NUMBER and as detailed a description of the problem as possible.

Onboard PC Operation We mount your Pioneer 2’s onboard PC inside the robot’s front nose. The system comes complete with a high-capacity hard-disk drive for storage, onboard 10/100Base-T Ethernet (radio Ethernet optional) for network access, an accessory sidepanel (right side on the DX, in the AT’s center well, or on the left strut of the PeopleBot) for attachment of a monitor, keyboard, mouse, and 10-BaseT Ethernet cable to a 10/100Mbps hub, and a power switch and reset button. The PC is wired for control of your robot and accessories you may have purchased, such as a laser range finder.

If you plan to work locally with your onboard computer, attach the necessary peripherals before starting the robot. You must work from a local keyboard, mouse, and monitor at least once to configure the onboard network.

2

Switch ON your robot’s Main Power and then switch ON computer power from the sidepanel. A green LED indicates power state. The Ethernet radio accessory shares the sidepanel’s 10-BaseT connector. Accordingly, switch the RADIO off on the robot’s console if you attach a cable, or remove the Ethernet cable and switch the RADIO on if you plan to communicate wirelessly.

We recommend that you attach a high-speed (4A standard) charger when working locally. And we recommend that you put the robot up on blocks, should someone inadvertantly engage the robot’s drive wheels.

Linux We prefer RedHat Linux as Pioneer’s onboard OS for many reasons. Foremost among these reasons are that Linux is very robust, comes complete with software development tools, and includes networking features that make offboard monitoring and control of your robot’s onboard systems much easier to accomplish.

When we installed Redhat Linux on your ActivMEDIA Mobile Robot, we configure it with the following:

Table 1. Common networking settings

Hostname p2.activmedia.com IP 192.168.100.32 Netmask 255.255.255.0 Default Gateway 192.168.100.1 Primary DNS 192.168.100.1 Workgroup ID (Win32) ACTIVMEDIA

User Login

We establish two users: guest and root. Neither are password protected.1

When working locally, use either root or guest to log in and access the system. Careful, of course: root has special access priviledges that affect system-wide functions and features of your Linux PC.

For security, when accessing the onboard PC from elsewhere on the network, you must first login as guest or other equivalent user and then gain superuser privileges with the su command.

Network and User Configuration Tools

Most system-wide configuration tools require that you are a superuser (root, usually) to make any changes.

Reconfigure your Linux PC’s network with X-based /usr/bin/netcfg, or manually edit the /etc/sysconfig/network and /etc/sysconfig/network-scripts/ifcfg-eth0 files with emacs or pico. Table 1 contains the default networking values we use to install and test an onboard Linux PC. Modify the hostname, domainname, network mask, IP address, and so on, to match your own network specifications.

Add/edit users with /usr/bin/usercfg or /sbin/adduser.

Both utilities and others also are available through the GUI-based /usr/bin/control-panel.

GUI Desktop

RedHat Linux comes with several X-Window System-based GUI desktops for point-and-click operation of the computing environment. When connected locally with keyboard,

1 Use the passwd program to change user passwords. Type passwd alone and follow the prompts to change

your login password, or as root, type passwd <username> to change another user’s password.

3

mouse, and monitor, type the command “startx” to enable the GUI control desktop after logging into the system.2

Network Access

To enable your robot PC’s Linux GUI (X-Windows) over the network, first allow your computer to host the robot’s X- displays with xhost. For example, working remotely from “bill2”, the first set of commands establish the X-host at the local console; the next commands establish a network telnet connection with the robot; and the final command starts up the Saphira robot control client which display should appear on your local display.

[bill@bill2 bill]$ xhost +p2.activmedia.com p2.activmedia.com being added to the control list [bill@bill2 bill]$ telnet p2 ... login: guest ...(guest login).... [guest@p2 guest]$ export DISPLAY=bill2.activmedia.com:0.0 [guest@p2 guest] saphira

Windows95-2000/NT Unless you have purchased and installed a remote access program like Timbuktu from Netopia (http://www.netopia.com) or the free VNC Viewer (http://www.uk.research.att.com/VNC), you will not be able to access and operate a Windows95-2000-based PC over the network. With caution, however, you may start up your robot’s Windows-based PC with monitor, keyboard, and mouse attached, start the robot application, and remove the attached peripherals to allow the robot to move autonomously. The default username is “msinstall” with no password. Network Configuration

Similar with the Linux version, we configure your robot’s onboard PC for our local network to test and exercise the systems (see Table 1). Use the Network Control Panel utililty to change those settings to match your own LAN.

Serial Ports /dev/ttyS0 (COM1) is for robot control (Saphira connection, for instance) and power management (“/dev/UPS” symlink) /dev/ttyS1 (COM2) is for a serial mouse or GPS, where applicable. /dev/ttyS2 (COM3) Laser Range Finder /dev/ttyS3 (COM4) Not used.

2 Change to run-level 5 in /etc/inittab to automatically boot into GUI mode.

4

Chapter 2 Software - LINUX ActivMEDIA ROBOTICS staff install a plethora of robotics-application and development software with documentation on your Pioneer 2 onboard PC. Under Linux, most software are located within their individual directories in /usr/local with rw (read/write) access by members of the users group. Similarly, documentation is in /usr/local/doc and source archives are in /usr/local/src.

ActivMedia Color Tracking System (ACTS) There are two versions of ACTS, a demonstration version and a licensed version. The demonstration version of ACTS has the full capabilities of the licensed version, minus its client-networking capability. This means you can train colors, load images – nearly everything pertaining to color tracking on the robot, which will give you a good picture of how ACTS works, but you will be unable to use ACTS to have your robot react to the color tracking system. The licensed version of ACTS, besides giving you full access to networked clients, gives you several development tools to build your own clients, as well as free access and updates to future versions and embellishments of ACTS. If you install Acts, on your own, make sure to make a symbolic link from /dev/bt848 to /dev/fg0

ln �s /dev/bt848 /dev/fg0

Acts has been installed in the /usr/local/acts (/usr/local/acts-demo if you received the demo version) on your robot’s hard drive. This directory has multiple sub-directories (less if you have the demo version), each containing pertinent information for that directory. The directory structure is as follows (all directories are preceded by /usr/local, but are left out of the description:

acts/Makefile: This file is the top level makefile. When you type “make” in this directory

it compiles the demo programs in the acts_robot and sfActs subdirectories.

These directories do not exist in the demo version of ACTS. acts/README: This file contains various information on running ACTS, such as system requirements and version information. acts/VERSION: This file contains information on what version of ACTS you are currently running. This is useful to see if you are running the latest version of ACTS. New versions will be released periodically, and are available at our software website: http://robots.activmedia.com. acts/acts_robot:

This subdirectory contains a demo application that connects the ACTS server to a Saphira client program. This example, as documented in the acts_robot.cxx file, has the Pioneer 2 Mobile Robot follow a previously trained color object, stopping when the object or an obstacle is within a certain range of the front of side of the robot. Type “make” in this subdirectory to create the executable program, acts_robot.

acts/bin:

5

This subdirectory contains the exectuable of the ACTS server. To run the ACTS server, cd to this directory (ie. cd /usr/local/acts/bin), then execute the following command: ./acts &. This will start ACTS up in the background, allowing you to run ACTS and train the system on various colored objects. This subdirectory also contains a file, test.ppm, which is used when you run the example training session, as described in the ACTS manual.

acts/docs:

This subdirectory contains the ACTS manual, actsman2.pdf. The manual is in the Acrobat reader format. To read this file under linux, you can issue the following command: xpdf actsman2.pdf. This manual is the definitive guide to ACTS, and should be read carefully to fully understand the concepts behind ACTS.

acts/sfActs: This subdirctory contains a program that is compiled into a loadable shared object file. This file can be loaded into Saphira (from the Programs->Load Program menu item.) It defines a Saphira process that communicates to ACTS and sets up a series of data structures for providing an interface to the blob information from within Colbert. Before loading the .so file into Sahira, make sure to copy the CenterOnBall.act file into the /usr/local/Saphira/ver62/colbert directory, to ease the loading of the activity file. The CenterOnBall activity does just what the name describes, it centers the robot on a colored ball.

For more information on the execution of ACTS, please consult the manual, actsman2.pdf located in the acts/doc directory.

Ayllu Ayllu is a tool for development of behavior-based control systems for intelligent mobile robots. It extends subsumption-style message passing to the multi-robot domain, provides for a wide variety of behavior-arbitration techniques, and allows a great deal of run-time system flexibility, including dynamic reconfiguration of behavior structure and redistribution of tasks across a group of robots as determined by either task constraints or changing availability of resources.

Written and maintained by Barry Werger ([email protected]), Ayllu has a standard set of basic motor-control and sensor-interpretation behaviors for the Pioneer mobile robot. These include a base controller that takes advantage of direct wheel-speed control to provide highly responsive, arc-based, velocity-based (rotational and translational), and distance-based motor commands; as well as support for all Pioneer accessories including control of vision system modes and training. Due to the nature of Ayllu as an extendable collection of behaviors, all new versions will reamin strictly backward compatible with earlier versions so upgrades will be painless.

Whence the name Ayllu? Ayllu is a Quechua-language term that refers to a close-knit community, usually, but not exclusively, of kin, which engages in many mutual and reciprocal activities. Quechua is a native language of the Andean region, spoken by approximately 13 million people in Bolivia, Peru, Ecuador, Chile, Colombia, and Argentina. For information on the Quechua language, check Ullanta Perfomance Robotics’ Quechua homepage at http://www.robotics.usc.edu/~barry/Quechua. Yes, Ullanta comes from Quechua too.

The Ayllu directory structure is as follows:

6

Ayllu/AylluDemos:

This directory contains many useful demo applications for Ayllu. To make one of the demo programs, simply type “make” followed by the name of the program you want to make (ie. make wanderer.)

Ayllu/README

This file contains information on how Ayllu was installed on your computer, and how to configure your system settings to recognize that Ayllu is installed.

Ayllu/include:

This directory contains the necessary Ayllu include files for compiling Ayllu programs.

Ayllu/lib:

This directory contains the necessary Ayllu library files, used for compiling Ayllu programs. The easiest way to ensure that these libraries are linked when you compile your program is to add the directory to your LD_LIBRARY_PATH system setting (located in /etc/profile if you are using the bash shell.)

Ayllu/makefile:

This is the top level makefile, which compiles all the programs in the AylluDemos directory.

Ayllu/version:

This file contains the version information of the Ayllu distribution you are using.

Botspeak

Botspeak speech synthesis/speech recognition software has been integrated with IBM’s ViaVoice software, for use with the Pioneer2 intelligent mobile robots. We do not directly support user-installation of this project, as it is very complicated, but we may help unofficially. In this case, our response time may be slow. If we have installed Botspeak on your computer, it has been fully configured and tested before you received your robot. Botspeak uses the Inter-language unification corba-like interface provided by Xerox. More information on ILU can be found at the Xerox ftp website: ftp://ftp.parc/xerox.com/pub/ilu/ilu.html. The directory structure for botspeak is as follows:

botspeak/bin:

This sub-directory contains the botspeak server. This must be run to accomplish speech recognition and synthesis with Saphira.

botspeak/binding: This is a required subdirectory for ILU. botspeak/botspeak.txt:

This file contains information on how to run botspeak, and how botspeak was installed on your system.

botspeak/example:

7

This subdirectory contains an example program for connecting Botspeak to a Saphira client program. Read the README.txt file in this subdirectory for information on how the example works. To run the example, type the following command at the prompt: ./example. If the Saphira client window disappears, re-run the program until it stays, then say “hello” into the microphone.

botspeak/lib: This subdirectory contains the libraries needed to compile and execute botspeak enabled programs. The easiest way to ensure that these libraries are linked during compile is to add the directory to your LD_LIBRARY_PATH system variable (ie in the /etc/profile file if you are using the Bash shell.)

Saphira

Saphira is a rich programming environment for developing robotics applications. Written and maintained by Kurt Konolige, PhD, and his colleagues at SRI International, Saphira uses fuzzy logic behaviors to control the popular Pioneer, PeopleBot and AmigoBot robots.

You must have a Saphira environment variable setup to compile and execute Saphira programs. If we install the software on you computer, we have pre-configured this variable. If you are installing Saphira on a different workstation, make sure you make this variable (ie, in /etc/profile for the bash shell: SAPHIRA=/usr/local/Saphira/ver62, if this is your install directory.)

We install Saphira in the /usr/local/Saphira/ver62 directory on your robot. The directory structure for Saphira is as follows:

ver62/apps:

This contains sample programs for learning how to program Saphira by example. The various programs in this directory contain information such as how to connect to the Pioneer 2 Mobile Robot and how to make a window-less client program. To compile these programs, simply type make in the directory.

ver62/bin:

This contains the binaries Saphira, a robotic client program, Pioneer, the Pioneer simulator, as well as other binaries. The Saphira manual gives more information on the binaries in this directory.

ver62/Colbert: Colbert is an interactive way to program your robots. Colbert has files,

Called activities, that do not need to be compiled to execute commands to the robot (thus, Colbert is in interpreted language). This directory is the default location for storing the Colbert activity files, for loading into the Colbert Evaluator. Place all activity files you create here.

ver62/devices:

This stores the modules and code for controlling devices through Saphira, such as the SICK laser range finder and the Sony Pan Tilt Zoom camera.

ver62/handler:

This has the necessary include and library files for compiling and running Saphira client programs. Set your LD_LIBRARY_PATH system variable to the

8

handler/obj directory to ease compiling programs (ie.LD_LIBRARY_PATH=/usr/local/Saphira/ver62/handler/obj)

ver62/license:

This file contains licensing information for your copy of Saphira. Please read for information on your rights to use the software.

ver62/maps:

This directory contains maps, which can be used by your Saphira client programs for information on the robots environment. Consult the Saphira Users Manual for more information on using maps.

ver62/params:

This directory contains information for different types of Pioneer robots. It has the proper hardware configurations settings (ie sonar), which allows Saphira to take full advantage of your robots hardware.

ver62/update:

This file contains information on the changes done to this version of Saphira from the last release version of Saphira.

ver62/version: This file contains the version information for the Saphira in use. ver62/worlds:

This directory contains worlds, which are simlar to maps. Please consult the users manual for more information on utilizing worlds in Saphira.

Stereo Vision Software (SVS)

Find the stereo vision software licensed from SRI International in the /usr/local/svs14 directory of your robot, if you purchased SVS. This system is typically used with the AMPTU with dual monochrome cameras. To test SVS, follow these steps:

1. cd to the svs bin directory: cd /usr/local/svs14/bin 2. export the following variables:

a. export SVS_DEV=1 b. export SVS_PXC_PC104=1

3. run the smallv program in the bin directory: ./smallv 3. A new window will appear, select the following option in the window:

a. Input: video b. Select the Contin button

After following these steps (verifying that your AMPTU is turned ON and the lens caps are removed from the cameras, you should see live images from both the cameras displayed in their corresponding boxes in the window. To verify that you are getting images from each individual camera, put your hand in front of each camera (close to the camera, so it blacks out the video window). The video window corresponding to the camera you have your hand in front of will go black, while the other video window will show a live image.

9

Chapter 3 Hardware – Linux This section of the documentation shows the user how to run the various hardware options (including software that drives the hardware) available on the Pioneer 2 Mobile Robot. It is not a definitive guide to the hardware packages, but is meant as an introduction to running the hardware. This will enable the user to quickly learn how to use the hardware, while gaining a considerable level of knowledge on their robotic system.

ActivMedia Pan Tilt Unit (AMPTU) The AMPTU by ActivMedia Robotics is a fully functional Pan-Tilt unit, capable of panning 90 degrees left and right, and tilting 90 degrees up and down. The software included with the AMPTU allows the user to operate the Pan-tilt unit in the Saphira environment. The software for the AMPTU is included in the /usr/local/Saphira/ver62/devices directory. To test your AMPTU, follow the steps below:

1. Start a Saphira client program (ie. /usr/local/Saphira/ver62/bin/saphira) 2. Connect to your robot with the Saphira client (File->Connect->/dev/ttyS0) 3. Turn on power to your AMPTU 4. load the amptu_demo.act file from the Program->Load Program menu.

The program automatically connects to the AMPTU and delivers a series of commands to the AMPTU. The amptu_demo.act file is located in the /usr/local/Saphira/ver62/colbert directory, and is a good example for how to control the AMPTU within Saphira.

BreezeCom Wireless Ethernet The Breezecom wireless Ethernet devices do not need to be configured in any way by the customer. Simply remember to remove—if installed—the Ethernet cable attached to the 10Base-T port and switch the RADIO ON. To install the BreezeCom Access Point, simply connect it to a HUB in your environment with a regular Ethernet cable, or connect directly to your workstation or laptop computer with a crossover Ethernet cable. Once connected and powered, the Access Point will be auto-detected by the Station Adapter (located inside the Pioneer 2), and will begin communication. The connection should be transparent to the user.

WaveLAN/IEEE (Orinoco) PCMCIA Radio Ethernet With Linux, you may use either the onboard Ethernet (device eth0) wired directly to a hub, or the WaveLAN/IEEE (Orinoco) PCMCIA radio Ethernet (device wvlan0) connected through an Access Point, but not both devices at once. The robot ships with eth0 enabled and wvlan0 disabled, although the PCMCIA card is inserted and activated. The devices have the same IP address and hostname. To alternately enable and disable the Ethernet devices, use the ifup and ifdown utilities. You must be root. For example, to switch from cable to wireless: #ifdown eth0; ifup wvlan0 Use the netcfg or linuxconfig utilities, or directly edit the /etc/sysconfig/network and /etc/sysconfig/network-scripts/ifcfg-eth0 and /etc/sysconfig/network-scripts/ifcfg-wvlan0 files to change the device specifications.

10

Bt848 frame grabber drivers We have installed the bt848 drivers in the /usr/local/bt848-1.x directory on your system. Your system has been pre-configured to run with the PC104+ PXC200 Imagenation frame grabber. The README in the toplevel of this directory includes information on how the frame grabber drivers were installed. An example program, that saves a file called rgb24.ppm, is located in the /usr/local/bt848-1.2/examples/PXC200 directory. The example, grabreadPXC200 grabs a single frame of image, and saves it to the file. You can view this image by using the xv program. (Ie. xv rgb24.ppm.)

11

P2 Gripper

The P2 Gripper software has been installed in the /usr/local/Saphira/ver62/devices directory on your system. To test your gripper, follow the steps below:

1. Start a Saphira client program (ie /usr/local/Saphira/ver62/bin/saphira) 2. Connect to your robot with the Saphira Client (File->Connect->/dev/ttyS0) 3. From the Programs->Load Program menu item, select the p2grip.so file. 4. In the Colbert Interactive window (located at the bottom of the Saphira client

window), issue the following command: help p2grip. This will list a series of commands you can issue to the gripper. An example is: p2grip close, which tells the gripper paddles to close (p2grip open opens the paddles.)

Sony PTZ Camera The Sony Pan-Tilt-Zoom camera has been fully integrated onto our Pioneer 2 Mobile Robot. To test your Sony PTZ camera, follow the steps below (to test frame grabbing from the camera, read the bt8xx information located in this manual.)

1. Start a Saphira client program 2. Connect to your robot with the Saphira client. 3. From the Programs->Load Program menu item, load the ptzdemo.act file.

This will start a demo program that tests the features of the Sony PTZ camera. The file that the test program runs, ptzdemo.act, is located in the /usr/local/Saphira/ver62/colbert/ directory, and is an good example of how to control the Sony PTZ camera in your own Saphira client program.

Soundblaster compatible PC104 sound card Redhat linux supports the PC104 sound card in your robot. To test your sound card for playing sounds, follow the steps below:

1. Connect a pair of speakers to the appropriately labeled wire on your robot. 2. type the following command:

cat /usr/share/sndconfig/sample.au > /dev/audio 3. You should hear Linus explaining how he pronounces linux.

To test your sound card for recording sounds, follow theses steps:

1. Connect a pair of speakers and a microphone to the appropriately labeled wires on your robot.

2. type the following command: dd bs=8k count=10 < /dev/audio > test.au

and speak into the microphone (the recording will last 10 seconds, the length of “count.” This will create a file in your current working directory, called test.au. 3. now type the following command:

cat test.au > /dev/audio Dual Soundblaster compatible PC104 sound cards

This option is a custom add-on, usually found on PeopleBots. ActivMedia Robotics does not support user-installation of this accessory, but has configured robots in the past for dual sound card support. If you have a dual sound card system installed on your robot, the following test will show you how to determine that both soundcards are functioning. (NOTE: All software written by ActivMedia Robotics uses the first sound card on the computer. Special software must be written by the user to take advantage of the second sound card.)

12

Sound card one is configured to be /dev/audio. To test sound input from a microphone, follow the steps for a single sound card, described above. Sound card two is configured to be /dev/audio1. To test this sound card for sound input from a microphone, follow the steps for a single sound card system (described above), except replace this line:

dd bs=8k count=10 < /dev/audio > test.au

with:

dd bs=8k count=10 < /dev/audio1 > test.au

We do not currently support output from both sound cards, so output must be passed to sound card 1.

Sick Laser Range Finder We install the software to control the SICK (pronounced seek) Laser Range Finder in the /usr/local/Saphira/ver62/devices/sicklrf directory on your robot. To test your laser range finder, follow the steps below:

1. Turn your robot and laser range finder on. 2. Start a Saphira client program (ie. /usr/local/Saphira/ver62/bin/saphira) 3. Connect to your robot (File->Connect->/dev/ttyS0) 4. Load the sicklrf.so file (Programs->Load Program) 5. In the Colbert Interactive window (at the bottom of the Saphira client

window) type the following command: SfStartLRF(0,��)

This will cause the Sick LRF to power cycle, and the LED’s located on the top front of the LRF will turn from GREEN to YELLOW/RED, back to GREEN, back to RED, then settle on GREEN. At this time, you will see many new points on your Saphira screen. These points (little blue squares) are returned from the laser, and indicate obstacles the laser range finder has detected.

Wireless Radio Modem

The wireless radio modems in your robot have been configured at the factory to work in pairs. Do NOT adjust the settings of the radio modems, as this will cause communication failure. Simply connect the radio modem labled “HOST” to your workstation or laptop computer, and connect through Saphire to the appropriate serial port.

13

Chapter 4 Software – Win32 The various robot control software are found in relevant directories on your C: boot drive. Manuals are located in C:\Manuals.

ActivMedia Color Tracking System (ACTS) There are two versions of ACTS, a demo version and the licensed version. The demonstration version of ACTS has the full capabilities of the licensed version, minus its client-networking capability. This means you can train colors, load images – nearly everything pertaining to color tracking on the robot, which will give you a good picture of how ACTS works, but you will be unable to use ACTS to have your robot react to the color tracking system. The licensed version of ACTS, besides giving you full access to networked clients, gives you several development tools to build your own clients, as well as free access and updates to future versions and embellishments of ACTS. Microsoft Visual C++ 6.0 is required to compile projects with ACTS. Acts has been installed in the C:\Acts (C:\Acts-demo if you received the demo version) folder on your robot’s hard drive. This directory has multiple sub-directories (less if you have the demo version) each containing pertinent information for that directory. The directory structure is as follows (all directories are preceded by /usr/local, but are left out of the description: Acts/README: This file contains various information on running ACTS, such as system requirements and version information. Acts/VERSION: This file contains information on what version of ACTS you are Currently running. This is useful to see if you are running the latest Version of ACTS. New versions will be released periodically, And are available at our software website: http://robots.activmedia.com. Acts/acts_robot:

This subdirectory contains a demo application that connects the ACTS server to a Saphira client program. This example, as documented in the acts_robot.cxx file, has the Pioneer 2 Mobile Robot follow a previously trained color object, stopping when the object or an obstacle is within a certain range of the front of side of the robot. Double-click on the acts_robot.dsw file to load the project into Microsoft Visual C++ 6.0

Acts/bin:

This subdirectory contains the exectuable of the ACTS server. To run the ACTS server, double-click on the acts.exe icon. This will start ACTS in the background, allowing you to run ACTS and train the system on various colored objects. This subdirectory also contains a file, test.ppm, which is used when you run the example training session, as described in the ACTS manual.

Acts/docs:

This subdirectory contains the ACTS manual, actsman2.pdf. The manual is in the Acrobat reader format. To read this file double-click on the actsman2.pdf file. This manual is the definitive guide to ACTS, and should be read carefully to fully understand the concepts behind ACTS.

14

Acts/sfActs: This subdirctory contains a program that is compiled into a loadable shared object file. This file can be loaded into Saphira (from the Programs->Load Program menu item.) It defines a Saphira process that communicates to ACTS and sets up a series of data structures for providing an interface to the blob information from within Colbert. Before loading the .so file into Sahira, make sure to copy the CenterOnBall.act file into the C:\Saphira\ver62\colbert (or the correct folder where you installed Saphira) directory, to ease the loading of the activity file. The CenterOnBall activity does just what the name describes, it centers the robot on a colored ball.

For more information on the execution of ACTS, please consult the manual, actsman2.pdf located in the C:\Acts\docs folder.

Ayllu Ayllu is a tool for development of behavior-based control systems for intelligent mobile robots. It extends subsumption-style message passing to the multi-robot domain, provides for a wide variety of behavior-arbitration techniques, and allows a great deal of run-time system flexibility, including dynamic reconfiguration of behavior structure and redistribution of tasks across a group of robots as determined by either task constraints or changing availability of resources. Written and maintained by Barry Werger ([email protected]), Ayllu has a standard set of basic motor-control and sensor-interpretation behaviors for the Pioneer mobile robot. These include a base controller that takes advantage of direct wheel-speed control to provide highly responsive, arc-based, velocity-based (rotational and translational), and distance-based motor commands; as well as support for all Pioneer accessories including control of vision system modes and training. Due to the nature of Ayllu as an extendable collection of behaviors, all new versions will reamin strictly backward compatible with earlier versions so upgrades will be painless. Whence the name Ayllu? Ayllu is a Quechua-language term that refers to a close-knit community, usually, but not exclusively, of kin, which engages in many mutual and reciprocal activities. Quechua is a native language of the Andean region, spoken by approximately 13 million people in Bolivia, Peru, Ecuador, Chile, Colombia, and Argentina. For information on the Quechua language, check Ullanta Perfomance Robotics’ Quechua homepage at http://www.robotics.usc.edu/~barry/Quechua. Yes, Ullanta comes from Quechua too. Ayllu/AylluDemos:

This directory contains many useful demo applications for Ayllu. To make one of the demo programs, simply double-click on the AylluDemos.dsw file, to load the projects into Microsoft Visual C++ 6.0

Ayllu/README

This file contains information on how Ayllu was installed on your computer, and how to configure your system settings to recognize that Ayllu is installed.

Ayllu/include:

This directory contains the necessary Ayllu include files for compiling Ayllu programs.

Ayllu/lib:

15

This directory contains the necessary Ayllu library files, used for compiling Ayllu programs.

Ayllu/VERSION:

This file contains the version information of the Ayllu distribution you are using.

Ayllu/Ayllu_man.pdf This is the Ayllu Users Manual, which contains information on Ayllu, And how to program robotic control programs using Ayllu.

Botspeak Botspeak speech synthesis/speech recognition software has been integrated with IBM’s ViaVoice software, for use with the Pioneer2 intelligent mobile robots. We do not directly support user-installation of this project, as it is very complicated, but we may help unofficially. In this case, our response time may be slow. If we have installed Botspeak on your computer, it has been fully configured and tested before you received your robot. Botspeak uses the Inter-language unification corba-like interface provided by Xerox. More information on ILU can be found at the Xerox ftp website: ftp://ftp.parc/xerox.com/pub/ilu/ilu.html. Botspeak/bin:

This sub-directory contains the botspeak server. This must be run to accomplish speech recognition and synthesis with Saphira.

Botspeak/binding: This is a required subdirectory for ILU. Botspeak/botspeak.txt:

This file contains information on how to run botspeak, and how botspeak was installed on your system.

Botspeak/example: This subdirectory contains an example program for connecting Botspeak to a Saphira client program. Read the README.txt file in this subdirectory for information on how the example works. To run the example, double-click on the example.exe icon. If the Saphira client window disappears, re-run the program until it stays, then say “hello” into the microphone.

Botspeak/lib: This subdirectory contains the libraries needed to compile and execute botspeak enabled programs.

Botspeak/include

This subdirectory contains the include files needed to compile botspeak enabled programs.

Remote Access Programs

Many robotic users wish to control their robots from a remote workstation through their wireless ethernet. Windows does not support this feature without special software, which can be purchased from a number of resources. A few of these resources are listed below, and have all been tested using the Pioneer 2 mobile robot. Please note that ActivMedia Robotics does not support nor prefer any of these products over another, but simply provides information on the products.

16

Timbuktu: http://www.netopia.com/software/ PcAnywhere: http://www.pcanywhere.com/

Saphira Saphira is a rich programming environment for developing robotics applications. Written and maintained by Kurt Konolige, PhD, and his colleagues at SRI International, Saphira uses fuzzy logic behaviors to control the popular Pioneer, PeopleBot and AmigoBot robots.

You must have a Saphira environment variable setup to compile and execute Saphira programs. If we install the software on you computer, we have pre-configured this variable. If you are installing Saphira on a different workstation, make sure you make this variable (ie, in AUTOEXEC.BAT: set SAPHIRA=C:\Saphira\ver62, if this is your install directory.)

ver62/apps: This contains sample programs for learning how to program Saphira by example. The various programs in this directory contain information such as how to connect to the Pioneer 2 Mobile Robot and how to make a window-less client program. To compile these programs, simply type make in the directory.

ver62/bin:

This contains the binaries Saphira, a robotic client program, Pioneer, the Pioneer simulator, as well as other binaries. The Saphira manual gives more information on the binaries in this directory.

ver62/Colbert: Colbert is an interactive way to program your robots. Colbert has files,

Called activities, that do not need to be compiled to execute commands to the robot (thus, Colbert is in interpreted language). This directory is the default location for storing the Colbert activity files, for loading into the Colbert Evaluator. Place all activity files you create here.

ver62/devices:

This stores the modules and code for controlling devices through Saphira, such as the SICK laser range finder and the Sony Pan Tilt Zoom camera.

ver62/handler:

This has the necessary include and library files for compiling and running Saphira client programs. Set your LD_LIBRARY_PATH system variable to the handler/obj directory to ease compiling programs (ie.LD_LIBRARY_PATH=/usr/local/Saphira/ver62/handler/obj)

ver62/license:

This file contains licensing information for your copy of Saphira. Please read for information on your rights to use the software.

ver62/maps:

This directory contains maps, which can be used by your Saphira client programs for information on the robots environment. Consult the Saphira Users Manual for more information on using maps.

ver62/params:

17

This directory contains information for different types of Pioneer robots. It has the proper hardware configurations settings (ie sonar), which allows Saphira to take full advantage of your robots hardware.

ver62/update:

This file contains information on the changes done to this version of Saphira from the last release version of Saphira.

ver62/version: This file contains the version information for the Saphira in use. ver62/worlds:

This directory contains worlds, which are similar to maps. Please consult the users manual for more information on utilizing worlds in Saphira.

18

Chapter 5 Hardware – Win32

ActivMedia Pan Tilt Unit (AMPTU) The AMPTU by ActivMedia Robotics is a fully functional Pan-Tilt unit, capable of panning 90 degrees left and right, and tilting 90 degrees up and down. The software included with the AMPTU allows the user to operate the Pan-tilt unit in the Saphira environment. The software for the AMPTU is included in the /usr/local/Saphira/ver62/devices directory. To test your AMPTU, follow the steps below:

1. Start a Saphira client program 2. Connect to your robot with the Saphira client (File->Connect->/dev/ttyS0) 3. Turn on power to your AMPTU 4. Load the amptu_demo.act file from the Program->Load Program menu.

The program automatically connects to the AMPTU and delivers a series of commands to the AMPTU. The amptu_demo.act file is located in the /usr/local/Saphira/ver62/colbert directory, and is a good example for how to control the AMPTU within Saphira.

BreezeCom Wireless Ethernet The Breezecom wireless Ethernet devices do not need to be configured in any way by the customer. To install the Access Point, simply connect it to a HUB in your environment with a regular Ethernet cable, or connect directly to your workstation or laptop computer with a crossover Ethernet cable. Once connected and powered, the Access Point will be auto-detected by the Station Adapter (located inside the Pioneer 2), and will begin communication. The connection should be transparent to the user.

Bt848 frame grabber drivers The Imagenation PXC200 PC104+ frame grabber drivers have been installed from the Imagenation drivers disk. To test the frame grabber, run one of the programs located in the Start->Programs->PXC200 menu.

P2 Gripper The P2 Gripper software has been installed in the /usr/local/Saphira/ver62/devices directory on your system. To test your gripper, follow the steps below:

1. Start a Saphira client program (ie /usr/local/Saphira/ver62/bin/saphira) 2. Connect to your robot with the Saphira Client

(Connect->Serial Port->COM1) 3. From the File->Load File menu item, select the p2grip.so file. 4. In the Colbert Interactive window (located at the bottom of the Saphira client

window), issue the following command: help p2grip. This will list a series of commands you can issue to the gripper. An example is: p2grip close, which tells the gripper paddles to close (p2grip open opens the paddles.)

5. Sony PTZ Camera

The Sony Pan-Tilt-Zoom camera has been fully integrated onto our Pioneer 2 Mobile Robot. To test your Sony PTZ camera, follow the steps below (to test frame grabbing from the camera, read the bt8xx information located in this manual.)

1. Start a Saphira client program 2. Connect to your robot with the Saphira client. 3. From the File->Load File menu item, load the ptzdemo.act file.

19

This will start a demo program that tests the features of the Sony PTZ camera. The file that the test program runs, ptzdemo.act, is located in the C:\Saphira\ver62\colbert\ directory, and is an good example of how to control the Sony PTZ camera in your own Saphira client program.

Soundblaster compatible PC104 sound card Microsoft Windows supports the PC104 sound card in your robot. To test your sound card for playing sounds, follow the steps below:

1. Connect a pair of speakers to the appropriately labeled wire on your robot. 2. Open your control panel (Start->Settings->Control Panel menu item) 3. Double-click on the Sounds icon. 4. In the window that appears, select one of the sounds, and hit the play button. 5. A sound should play from the speakers.

To test your sound card for recording sounds, follow theses steps: 1. Connect a microphone and a set of speakers to the appropriate connectors

on your robot. 2. Select Sound Recorder from the

Start->Programs->Accessories->Entertainment menu. 3. Click on the red record button on the sound recorder window 4. After recording some sound, play the file back. You should hear the sound

through the speakers.

Sick Laser Range Finder We install the software to control the SICK (pronounced seek) Laser Range Finder in the C:\Saphira\ver62\devices\sicklrf directory on your robot. To test your laser range finder, follow the steps below:

1. Turn your robot and laser range finder on. 2. Start a Saphira client program 3. Connect to your robot (Connect->Serial Port->COM1) 4. Load the sicklrf.so file (File->Load File)

5. In the Colbert Interactive window (at the bottom of the Saphira client

window) type the following command: SfStartLRF(0,��) This will cause the Sick LRF to power cycle, and the LED’s located on the top front of the LRF will turn from GREEN to YELLOW/RED, back to GREEN, back to RED, then settle on GREEN. At this time, you will see many new points on your Saphira screen. These points (little blue squares) are returned from the laser, and indicate obstacles the laser range finder has detected.

Wireless Radio Modem The wireless radio modems in your robot have been configured at the factory to work in pairs. Do NOT adjust the settings of the radio modems, as this will cause communication failure. Simply connect the radio modem labled “HOST” to your workstation or laptop computer, and connect through Saphira to the appropriate serial port.

20

Chapter 6 Performance PeopleBot The Performance PeopleBot Intelligent Mobile Robot has a system architecture that is identical with the Pioneer 2 Mobile Robots from ActivMEDIA ROBOTICS. Accordingly, please refer to the Pioneer 2 Operations Manual (version 7 or later) for most operation and programming details. This section describes the hardware and software that is special to the Performance PeopleBot.

Hardware Besides the common Pioneer 2 DX-like hardware and accessories, including the onboard PC and AMPTU for which there are separate documentation, the Performance PeopleBot contains these special accessories:

• Top-deck (#8-15) and rear (#16-23) sonar arrays with extended sonars board • Expansion I/O board and Joystick Port • Tabletop IR sensors • Column IR breakbeams • Emergency Stop Button and e_stall • Column Gripper

Note also, that the P2 microcontroller, onboard PC control panel, and other accessory hardware are mounted inside the left column strut of the Performance PeopleBot.

Software • P2PB.P Saphira parameters file • P2OS version 1_E or later.

Sonars The forward-facing array of eight sonars on the top deck of the Performance PeopleBot connect to the 10-position IDC (J2) sonar port on the P2 microcontroller. The J2 port normally connects with the rear sonars on the P2 DX or AT models. PeopleBot’s rear sonar array connects with the sonar expansion module found inside the left column strut.

Sonars are enabled in P2OS with the p2oscf utility through the front_sonars, rear_sonars, and added_sonars parameters. Sonar geometry, etc., are described in the special p2pb.p parameters file that must be installed in Saphira’s parameters directory for proper operation of the software.

I/O Expansion Board and Joystick Port A special I/O Expansion board found inside the left column strut of the Performance PeopleBot distributes P2 microcontroller User I/O for use by the Joystick, Tabletop and Column breakbeam IR sensors. Table PB-1 contains a description of User I/O ports and their use in the Performance PeopleBot.

Connect a common joystick into the 15-pin DSUB connector at the back of the top deck to manually drive the robot. Enable joydrive when not connected with a client (onboard PC may be on or off) by pressing the white MOTORS button once. The joystick’s “fire” buttons act as deadman switches: press one to take control; release to stop. Note, too, a second press of the while MOTORS button places the robot into self-test mode.

Tabletop IR sensors The Tabletop detectors are very reliable diffuse IR detectors mounted to the front of the Performance PeopleBot and which detect obstacles, particularly tabletops or rope barriers, that otherwise aren’t detected by the top or bottom sonars. The Tabletop IR detectors respond to any surface except glass or other mirrored surfaces, and can detect objects as thin as a human finger. They are oriented to trigger when an object is

21

11.5 inches or nearer to the front of the robot and 1.5 inches at the height of the lower deck.

The left and right Tabletop IR detectors are connected to the ID0 and ID1 digital input ports of the user I/O, respectively, which appear as bits 0 and 1 in the digin byte of the standard P2OS Server Information Packet. Normally high (1), the digital input port goes low (0) when its respective Tabletop sensor detects an object within its range of operation.

Table PB-1. User I/O in the Performance PeopleBot User I/O

Pin #

Label Use User I/O

Pin #

Label Use

1 OD0 ― 2 ID0 Lft Tabletop 3 OD1 ― 4 ID1 Rgt Tabletop 5 OD2 ― 6 ID2 Lft Breakbeam 7 OD3 ― 8 ID3 Rgt

Breakbeam 9 ID4 Joystick 10 OD4 ―

11 ID5 Joystick 12 OD5 ― 13 ID6 Joystick 14 OD6 ― 15 ID7 E-Stop 16 OD7 -― 17 AD1 ― 18 Vcc +5VDC 19 Vpp +12VD

C 20 Gnd Gnd

― = Not used; available for other User applications

Column IR Breakbeams

Two “breakbeam” IR sensors, one on each side 1.5 inches forward of the left and right column struts and between the bottom of the top deck and the lower deck, sense objects which intrude the robot’s profile, but which may not be otherwise detected by the sonars or Tabletop IR sensors.

The left and right IR breakbeams are connected the User I/O digital input ports ID2 and ID3, respectively. Normally high (1), the respective input port goes low (0) when an object breaks the IR transmitter’s beam to its companior receiver.

IR Sensor Programming Since the Tabletop and Breakbeam IR sensors are connected to User I/O digital ports, their states are communicated from the P2OS server to a connected client, such as Saphira, in the standard Server Information Packet. Accordingly, to react to the state of an IR breakbeam or tabletop sensor in a Saphira client, for example, test the state of its respective bit:

#define LFT_TTIR 0x01 #define RGT_TTIR 0x02 #define LFT_BREAKBEAM 0x04 #define RGT_BREAKBEAM 0x08 if (sfRobot.digin & LFT_BREAKBEAM = = 0) /* Something has triggered the left column breakbeam … */

Emergency Stop Button and e-stall A large round red button mounted to the inside of the left column strut, just beneath the top deck, is the Emergency Stop (E-Stop) button for the Performance PeopleBot. Press it

22

to immediately stop the robot by physically disconnecting its motors. (The white MOTORS button on the microcontroller disables the motors through software.) Twist and pull the

button out to resume normal activity.

Use the e_stall feature of P2OS (versiowhen someone presses the E-Stop butAD1 User I/O port on the microcontrollea potential stall condition.) AccordinglyP2OS and notify your Saphira or other savoiding the motor rush that may occur

Since it is normally disabled, you must ea reset or power cycle of the PeopleBcommand (#56) with argument = 1; 0 d

sfRobotComInt(56,1); /* Enable e_stall */ sfRobotComInt(56,0); /* Disable e_stall */

You may also monitor the state of the Evalue reported in the Pioneer 2 Server that the value be included in the stavalue. (The current analog port# incluexample,

sfRobotComInt (35,4); /* select AN4 for in… later… if (sfRobot.timer & 0xff = = 4 && sfRobot /* E-Stop button pressed and engaged */ else /* E-stop not engaged. */

Gripper The Performance PeopleBot’s Gripper isvia the General I/O bus except the gdetecting tabletops. Accordingly, thebefore reaching the lower deck when obstruction. The grip_state parameterPacket will register that the Lift has succ

The E-Stop button disconnects theAlso, re-activating E-Stop without

forwa

CAREFUL: motors, so the robot will roll down an incline.

enabling e_stall may cause the robot to rush rd or backwards.

n 1_E or later), like BumpStall, to simulate a stall ton. (Integrated switch in E_Stop causes an the r to go high (+5VDC) and thereby notify P2OS of , when enabled, e_stall will disable the motors in oftware client, that the robot has stalled, thereby when you re-activate the E-Stop button.

nable e_stall through software at least once after ot. To enable e_stall, send the COMe_stall P2OS isables e_stall. For example, with Saphira:

-Stop button with or without e-stall as an analog Information Packet. You must specifically request ndard packet since it is not the default analog ded in the SIP is encoded in sfRobot.timer.) For

clusion in the standard SIP */

.analog > 200)

identical to the common P2 Gripper connected ripper paddles are hinged on bump sensors for Gripper’s Lift servers will stop downward travel and if the mechanism encounters an intervening in the standard Pioneer 2 Server Information essfully reached its limit.

44 CONCORD STREET PETERBOROUGH, NH 03458

HTTP://WWW.ACTIVROBOTS.COM 603-924-9100 602-924-2184 FAX