Download Print this page

Pioneer 2 / PeopleBot Operation Manual

Pioneer 2 / peoplebot operations manual
Hide thumbs

Advertisement

Quick Links

Pioneer 2 / PeopleBot
TM
Operations Manual
for
P2OS-based
ActivMedia Robots
TM
P
2-DX
P
2-AT
P
B
IONEER
E
IONEER
EOPLE
OT

Advertisement

loading

  Related Manuals for Pioneer 2 / PeopleBot

  Summary of Contents for Pioneer 2 / PeopleBot

  • Page 1 Pioneer 2 / PeopleBot Operations Manual P2OS-based ActivMedia Robots 2-DX 2-AT IONEER IONEER EOPLE...
  • Page 2 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 Pioneer 2/PeopleBot Operations Manual v10, July 2002...
  • Page 3 Important Safety Instructions ! Read the installation and operations instructions before using the equipment. ! Avoid using power extension cords. ! To prevent fire or shock hazard, do not expose the equipment to rain or moisture. ! Refrain from opening the unit or any of its accessories. Keep wheels away from long hair or fur.
  • Page 4: Table Of Contents

    RESET and MOTORS ... 16 SERIAL ... 17 RADIO ... 17 FLASH ... 17 EOPLE ENSORS AND MERGENCY Pioneer 2 Arm-related SIPs and Commands ... Error! Bookmark not defined. AFETY ATCHDOGS AND ONFIGURATION CHAPTER 4 QUICK START... 19 ... 19 REPARATIVE SSEMBLY Saphira Client Installation ...
  • Page 5 ONAR ...27 UMPERS ...27 RIPPER ...27 OMPASS DIGIN DIGOUT T ...28 ANALOG T ...28 ESTS ...28 CHAPTER 6 PIONEER 2 OPERATING SYSTEM...29 OMMUNICATION ACKET ROTOCOL Packet Data Types...30 Packet Checksum...30 Packet Errors ...30 ...32 ERVER NFORMATION ACKETS ...32 LIENT OMMANDS Client Command Argument Types...34...
  • Page 6 Step 2: Enable FLASH... 47 Step 3: Put Microcontroller into Download Mode ... 47 Step 4: Run p2osdl... 47 Download Troubleshooting ... 47 P2OS O ONFIGURING PERATING Steps 1–3: Preparing for Configuration ... 48 Step 4: Run p2oscf ... 48 Step 5: Changing Configuration Parameters ...
  • Page 7: Chapter 1 Introduction

    This Pioneer 2 Operations Manual provides both the general and technical details you need to operate your Pioneer 2-DX, -CE, -DXe, -AT, or PeopleBot Mobile Robot and to begin developing your own Robotics hardware and software. Please consult the Pioneer 2 H8 or the Performance PeopleBot manuals if you own a newer, Hitachi H8S-based robot.
  • Page 8: User-Supplied Components / System Requirements

    From: <your return e-mail address goes here> Subject: <something of interest to pioneer users> Access to the pioneer-users newslist is limited to subscribers, so your address is safe from spam. However, the list currently is unmoderated, so please confine your comments and inquiries to issues concerning the operation and programming of Pioneer or PeopleBot robots.
  • Page 9: Support

    Because this is a support option, not a general-interest newsgroup like pioneer-users, we reserve the option to reply only to questions about problems with your robot or software.
  • Page 10: Chapter 2 What Is Pioneer

    With the onboard computer option, your ActivMedia robot becomes an autonomous agent. With Ethernet-ready onboard autonomy, your robot even becomes an agent for multi-intelligence work. Figure 3. Components and some accessories of the Pioneer 2-DX, many of which are identical for the Pioneer 2-DXE and CE. Client Software Your ActivMedia robot is the server in a client-server environment: It handles the low- level details of mobile robotics, including maintaining the platform’s drive speed and...
  • Page 11: Activmedia Robotics Basic Suite

    ActivMedia Robotics Basic Suite To better support our customers, ActivMedia Robotics software designers have blended and refined the best of advanced mobile robotics software found in the many development environments into a suite of state-of-the-art software tools and applications.
  • Page 12: Aria

    Linux-based PC, to run client software for intelligent robotics command © Saphira Saphira, including the Colbert language, is a full-featured robotics control environment developed at SRI International’s Artificial Intelligence Center. foundation form the robotics-control and applications-development foundation for and control operations.
  • Page 13: The Pioneer Legacy

    Pioneer 1 Intended mostly for indoor use on hard, flat surfaces, the Pioneer 1 has solid rubber tires and a two-wheel differential, reversible drive system with a rear caster for balance. The Pioneer 1 came standard with seven sonar range finders (two side-facing and five forward-facing) and integrated wheel encoders.
  • Page 14 This means that even programs that interface at the lowest communication levels will work with both Pioneer 1 and with Pioneer 2 platforms. This also means that the higher level clients, such as Saphira, ARIA, and others including your own software, will work with...
  • Page 15: Modes Of Operation

    To the relief of those who have invested years in developing software for Pioneer 1, Pioneer 2 truly does combine the best of the new mobile robot technologies with the tried-and-true Pioneer architecture. Modes of Operation You may operate your Pioneer 2 or PeopleBot robot in one of four modes:...
  • Page 16: Chapter 3 Specifications & Controls

    These characteristics also permit it to carry extraordinary payloads: The DXe can carry up to 23 Kg (50 lbs.) additional weight; the Pioneer 2-AT can carry over 30 Kg (66 lbs.) more! Yet the Pioneer 2 is lightweight enough that it is also as easy to transport as a suitcasea task made even easier by the DXe's built-in handle.
  • Page 17: Deck(S) And Console

    ActivMedia Robotics Deck(s) and Console The original Pioneer 2-DX, -CE, and -AT Decks are one piecethe top plate of the robot. The new DXe and AT models now have hinged top-plates which let you much more easily access the internal components of the robot.
  • Page 18: Body, Nose, And Accessory Panels

    AT panel is accessible through a hinged door. With older Pioneer 2 models, you also need to remove the Gripper before removing the Nose. With the DXE and newer AT, the Nose and Gripper come off together, so you only need to remove the Nose’s mounting screws.
  • Page 19: Sonar Arrays With Gain Adjustment

    ActivMedia Robotics All models come with an access port near the center of the Deck through which to run cables to the internal components. Sonar Arrays with Gain Adjustment Natively, ActivMedia robots support both front and rear sonar arrays, each with eight transducers that provide object detection and range information for features recognition, as well as navigation around obstacles.
  • Page 20: Motors And Position Encoders

    Pioneer 2-AT and PeopleBot charge life typically ranges from two to three hours. The Pioneer 2-DX and -DXe run continuously for six hours or more; up to four hours with onboard computer. If you don’t use the motors, your robot’s microcontroller will run for several days on a single battery charge.
  • Page 21: Motor-Power Board

    Controls, Ports, and Indicators Main Power, Fuse, and Indicator A single slide-switch on the rear left panel of Pioneer 2 and PeopleBot robots controls power to the entire robot and all its integrated accessories. Up is ON; down is OFF.
  • Page 22: Liquid-Crystal Display & Contrast Adjustment

    Specifications and Controls will automatically shut down the onboard PC. Discharging the batteries below 10 VDC may permanently damage them. You may continue to operate the robot while charging batteries, lengthen the recharge time. onboard PC draws much current, even the high-speed 4A charger will not be able to fully recharge the batteries unless you power down the PC.
  • Page 23: Serial

    Press and hold the MOTORS button in combination with the RESET button to put the microcontroller into a special system-download mode for reprogramming the onboard FLASH ROM. See Pioneer 2 Operating System and Updating & Reconfiguring P2OS, Chapter 6 and Chapter 7. SERIAL Your ActivMedia robot's microcontroller has two serial ports and three connectors.
  • Page 24: Peoplebot Sensors And Emergency Stop

    Saphira, in the standard Server Information Packet. See the . IOpac packet contents Pioneer 2 Arm-related SIPs and Commands Please consult the Pioneer 2 Arm Manual for details. Performance PeopleBot IRs sections in Chapter 6 and in Appendix A for details.
  • Page 25: Chapter 4 Quick Start

    Windows© 9x/ME as well as for RedHat If you have an onboard PC installed with software from the factory, the Saphira demonstration program already is installed. ActivMedia Robotics customers also may obtain Saphira and related software and updates for other platforms from our support website (see Chapter 1, Introduction, for details.) You will need the ID and password...
  • Page 26: Saphira Client Start-Up

    Quick Start For instance, the Windows© 9x/ME version is a self-extracting WinZip double-click its .EXE icon and follow the extraction program’s instructions. The distribution archive decompresses into a Saphira\verxx directory of files. Windows© 9x/ME users also need to set an environment variable in the C: (boot drive) autoexec.bat file.
  • Page 27: Radio On

    The same P2OS initialization sequence occurs whenever you press the red RESET button. Unlike the original Pioneer 1, you cannot engage the drive motors until after you have connected with a client, except during self-tests. RADIO ON If you own radio modems for client-server serial communications, switch RADIO power Starting Client-Server Communications After it starts up, resets, or completes its self-tests, your robot’s onboard servers (P2OS)
  • Page 28: Operating The Saphira Demonstration Client

    When communications between the Saphira client and your robot’s servers are established, the robot becomes responsive and intelligent. may drive toward an obstacle, your Pioneer 2-DXe will not crash (unless its obstacle- avoidance behaviors have been disabled) because it can detect and actively avoid collisions.
  • Page 29: Disconnecting Serial Communications (Intentionally Or Unintentionally)

    When you finish playing with your robot, pull down the Saphira client’s Connect menu and choose the Disconnect option. Your Pioneer 2 or PeopleBot will disengage its drive motors and stop moving automatically, and its sonar should stop firing. The LCD also should return to the waiting-state message.
  • Page 30 Quick Start RESET button, you must restart the connection. Turning the Main Power switch off and then back ON or pressing the RESET button puts the robot servers back to their wait state, ready to accept client connections again. If the Saphira client application is still active, simply pull down the Connect menu and choose the Disconnect option.
  • Page 31: Chapter 5 Joydrive And Self-Tests

    But it also means that you may drive your Pioneer 2 around without the niceties of a client’s protective behaviors like obstacle avoidance—so be careful. Pioneer 2-ATs and the Performance PeopleBot come standard with a joystick connector and internal wiring.
  • Page 32: Engaging Self-Tests

    Joydrive and Self Tests handle find its default centered position before starting to drive. Try exiting (reset) and restarting joydrive mode if the joystick doesn’t seem to function well. The joystick’s “fire” button (button 1) acts as the joydrive “deadman”—press it to start driving;...
  • Page 33: Sonar Test

    The next self-test displays the states of the inputs from the front and rear bumpers available for Pioneer 2 and PeopleBot robots. The state of each bump switch is mapped into a series of eight LCD display digits. The five switches in each bumper—front and rear—are related to the digits one through five, left to right, on the LCD.
  • Page 34: Digin And Digout Test

    Joydrive and Self Tests DIGIN and DIGOUT Test A subsequent self-test lets you examine the values of the eight digital input (ID0 output (OD0-7) ports associated with User I/O on your ActivMedia robot’s microcontroller. The state of each port is mapped into a series of eight digits displayed on the LCD. Each digit, 0 or 1, representing the ON or OFF state of a port, numbered right-to-left from 0 to 7.
  • Page 35: Chapter 6 Pioneer 2 Operating System

    Experienced Pioneer users can be assured that P2OS is upwardly compatible with PSOS, implementing all the same commands and information packets. extends the servers to add new functionality, improve performance, and provide additional information about the robot's state and sensing.
  • Page 36: Packet Data Types

    P2OS does not acknowledge receipt of a command packet nor does it have any facility to handle client acknowledgment of a server information packet. Consequently, Pioneer client/server communications are as reliable as the physical communication link. cable tether between the robot and client computer, such as a piggyback laptop,...
  • Page 37 Selected analog port number 1-5 User Analog input (0-255=0-5 VDC) reading on selected port User I/O digital input User I/O digital output Checksum (see previous section) Re-transmitting server ActivMedia Robotics ‡ ‡ for degrees. ‡ —currently 1.0 for ‡ for degrees ‡...
  • Page 38: Server Information Packets

    Server Information Packets Like its Pioneer 1 PSOS predecessor, P2OS automatically sends a packet of information over the Host serial communication port to a connected client every 100 milliseconds. The standard P2OS Server Information Packet (SIP) informs the client about a number of operating states and readings, using the order and data types described in Table 4.
  • Page 39 Independent wheel velocities; lsb=right wheel; msb=left wheel; PSOS is in ±4mm/sec; P2OS in ±2cm/sec increments Pioneer 1 and Pioneer 2 Gripper server command. See the Pioneer Gripper manuals for details. Select the A/D port number for analog value in SIP.
  • Page 40: Client Command Argument Types

    Emergency stop, overrides deceleration Emergency stop button causes stall on PeopleBot only none Single-step mode (simulator only) Please consult the Pioneer 2 Arm Manual – for details. Change rotation’s proportional drive factor Change rotation’s differential drive factor Change rotation’s integral drive factor...
  • Page 41: Saphira Client Command Support

    FLASH, but are constants normally set at the factory and not changed thereafter. (See next chapter for details.) The Pioneer class string is simply Pioneer; the subclass depends on your robot model; P2DX or P2AT, for example.
  • Page 42: Keeping The Beat-Pulse

    (among other things), listen for client commands, and begin transmitting server information to the client. Note that once connected, Pioneer 2's and PeopleBot’s motors are disabled, regardless of their state when last connected. After starting a connection, you must either enable the motors manually (white MOTORS button) or send the P2OS motors ENABLE command with the argument 1;...
  • Page 43: Pioneer In Motion

    (See E_STOP and E_STALL later in this chapter.) PID Controls The Pioneer drive servers use a common Proportional-Integral-Derivative (PID) control system to adjust the PWM pulse width at the drivers and subsequent power to the motors. The motor-duty cycle is 200 µsec; pulse-width is proportional 0-500.
  • Page 44: Position Integration

    Pioneer 2 Operating System Position Integration Pioneer keeps track of its position and orientation based on dead-reckoning from wheel motion, which is an internal coordinate position. Front +180 Figure 21. Internal coordinate system for P2OS The orientation commands HEAD and DHEAD turn the robot with respect to its internal dead-reckoned angle.
  • Page 45: Bump_Stall

    (The current analog port# is encoded in the timer entry.) With P2OS version 1.5, we With the robot equipped with forward and/or rear NOTICE /* Enable E_STALL */ /* Disable E_STALL */ ActivMedia Robotics...
  • Page 46: Extended Packets

    Extended Packets Several different, additional types of server information packets come with P2OS to better support the ActivMedia Robotics community. On request from the client by a related P2OS command, the P2OS server packages and sends one or a continuous stream (one per cycle) of information packets back to the client over the Host serial communication line.
  • Page 47: Serauxpac And Getaux

    Send the CONFIG command #18 with or without an argument to have P2OS send back a special server information packet containing the robot's operational parameters. The CONFIGpac SIP packet type is 32 (0x20). configuration packet data. Send commands and retrieve responses via the P2OS AUX serial port */ #define SERAUXpac 0xB0 int serbytes, inbufptr;...
  • Page 48: Encoderpac And Encoder Command

    0 to stop continuous packets. PLAYLISTpac and PLAYLIST Command Unlike its Pioneer and PeopleBot cousins, the AmigoBot mobile robot has onboard sound reproduction hardware and software that includes a playlist of contents. To support the ActivMedia Robotics Basic Suite that includes all ActivMedia’s robots, we’ve added the PLAYLISTpac (type = 208;...
  • Page 49: Tcm2Pac And Tcm2 Command

    Input / Output (I/O) Your Pioneer 2 or PeopleBot comes with a number of I/O ports that you may use for sensor and other accessories and custom attachments. locations on the microcontroller.
  • Page 50: Digout And Psupos

    Pioneer 2 Operating System sfSMessage("Port# % Port# 5 reads 33 sfRobotComInt(35,2); sfSMessage("Port# % Port# 2 reads 224 DIGOUT and PSUPOS The eight digital output ports on the P2OS controller’s User I/O connector are both reported in the standard SIP (digout) and controllable with the P2OS commands DIGOUT and PTUPOS.
  • Page 51: Pioneer 2 Arm-Related Sips And Commands

    Checksum integer Pioneer 2 Arm-related SIPs and Commands Please consult the Pioneer 2 Arm Manual for details. Performance PeopleBot IRs Two breakbeam IR sensors sense objects which intrude into the Performance PeopleBot’s profile, but which may not be otherwise detected by its sonar or tabletop IR sensors. The left and right IR breakbeams are connected to the User I/O digital input ports ID2 and ID3, respectively.
  • Page 52: Chapter 7 Updating & Reconfiguring P2Os

    Where to Get P2OS Software Your ActivMedia robot comes preinstalled with the latest version of P2OS. Thereafter, stay tuned to the pioneer-users newsgroup or periodically visit our support website to obtain the latest P2OS and related documentation: http://robots.activmedia.com Installing the P2OS Utilities Software utilities for downloading a new P2OS (p2osdl) and for changing your robot’s...
  • Page 53: Step 2: Enable Flash

    Repeat downloads until successfully completed. After it has finished initializing, place it in Since FLASH gets erased at the beginning of a ActivMedia Robotics...
  • Page 54: Configuring P2Os Operating Parameters

    Updating and Reconfiguring P2OS Configuring P2OS Operating Parameters The program p2oscf(.exe) is the way you view and change your Pioneer 2’s identity and operating parameters. FLASH ROM in the controller is guaranteed for only 100 erase cycles. Steps 1–3: Preparing for Configuration Prepare for changing your robot’s configuration parameters identically to Steps 1, 2 and...
  • Page 55: Step 6: Save Your Work

    FLASH. And, too, you may over-ride many of these parameters with respective P2OS commands from the client. Similarly, type '?' or 'help' to see a list of p2oscf current, edited P2OS-based edited (p2oscf) variables stored FLASH ActivMedia Robotics Arm-related values from file,...
  • Page 56: Saving And Restoring

    ActivMedia robot models, including p2de for the Pioneer 2-DXe, p2at for the Pioneer 2-AT, and so on. You may edit the file-restored parameters just as you edit those retrieved from the robot.
  • Page 57 Table 15. Configuration parameters (currently P2OS 1_J) with values for Pioneer 2-DX Type Default KEYWORD CONSTANTS Pioneer Type Subtype P2DX Serial factory FourMotors byte RotVelTop 2200 TransVelTop RotAccTop TransAccTop 4000 PwmMax Encoder VARIABLES not_set Name SInfoCycle byte HostBaud byte byte...
  • Page 58: Pid Parameters

    PID values. Consequently, we recommend the listed values for all Pioneer 2 and PeopleBot robots, whereas earlier P2OS versions required much more tuning of the parameters depending on robot type and configuration/payload.
  • Page 59: Calibration Tools - Revcountcal And Compasscal

    See Chapter 3, "Quick Start", for additional detail. Briefly, the programs operate in two stages. First, they connect with your Pioneer 2 or PeopleBot robot via a Saphira-based client and retrieve the robot’s current operating parameters via the ENCODERpac or CONFIGpac extended SIPs (see previous chapter).
  • Page 60 Updating and Reconfiguring P2OS after each startup. You may choose not to change the FLASH ROM values. Rather, you record the new configuration values and set/reset them using the p2oscf tool described earlier in this chapter. Install either compasscal(.exe) or revcountcal(.exe) into the bin directory of your Saphira distribution.
  • Page 61: Chapter 8 Maintenance & Repair

    11 VDC. Changing Batteries Except the Pioneer 2 CE and AmigoBot, ActivMedia robots have a special battery harness and latched doors for easy access to the onboard batteries. Simply unlatch the rear door, swing it open and locate the one to three onboard batteries inside.
  • Page 62: Alternative Battery Chargers

    We describe here how to remove your robot’s Nose to get at the onboard computer. And we describe how to access the contents of the Body of your Pioneer 2-DX/DXe or - AT robot.
  • Page 63: Opening The Deck

    ActivMedia Robotics Opening the Deck The new Pioneer 2-AT and -DXe models have a center hinge in the Deck which let you easily open and access internal components without completely removing the top plate. With earlier Pioneer 2 models and with the PeopleBots, you need to remove the respective Deck and other covers to access the robot’s components.
  • Page 64: Factory Repairs

    Figure 25. Remove indicated screws to flip open the hinged Pioneer 2-AT rear Deck. Factory Repairs If, after reading this manual, you’re having hardware problems with your Pioneer or PeopleBot robot and you’re satisfied that it needs repair, contact us: support@activmedia.com (603) 924-2184 (fax)
  • Page 65: Appendix A

    C166 Controller Ports & Connections This Appendix contains pinout and electrical specifications for the external and internal ports and connectors on the Pioneer 2/PeopleBot microcontroller board. These include an external (Host) serial port for P2OS-to-client connections; two internal serial ports for Host and auxiliary (AUX) communications, each with switched five and 12 VDC power;...
  • Page 66: Internal Serial Connectors

    TxD1 RxD1 P3_15 The AUX RS232-compatible serial port (connector JP7) on the Pioneer 2/PeopleBot microcontroller operates independently from the host serial port and is for accessory attachments, such as the PTZ Robotic Camera. Note the additional power connections. Table 19. Auxiliary Internal Serial Port Connections ("AUX" JP7)
  • Page 67: Performance Peoplebot I/O

    For example, the analog lines P5_4-7, are used by the Joystick port, which now comes standard with the Pioneer 2-AT and Performance PeopleBot. In addition, four of the A/D ports and the PWM ports are shared with digital input and output lines, respectively.
  • Page 68: The General I/O Bus

    Appendix A: Microcontroller Ports and Connections Table 21. Performance PeopleBot I/O User Label Pin # ― = Not used; available for other User applications The General I/O Bus The 34-pin IDC socket on the P2OS microcontroller provides a general-purpose I/O bus containing: ! 8 read/write data lines (D0-7) ! 4 chip select lines (CS_2-5)
  • Page 69: Appendix B

    Appendix B Motor-Power Board The Pioneer 2 and PeopleBot robots have a separate Motor-Power board which, in conjunction with the microcontroller, provides power for motors as well as conditioned power for the standard and accessory onboard electronics. It also contains buffered Figure 29.
  • Page 70: Power-State Logic

    Appendix B: Motor-Power Board Connectors which output controls the computer's DC:DC voltage converter. for crash-less shutdown of the computer in the event of a power brownout or for unattended shutdowns, if Vpp drops below 10 VDC, the comparator automatically initiates a two-minute delay before computer power (not system-wide) shutdown. Similarly, when the computer power is manually switched OFF, the comparator is grounded (below 10 VDC, of course) and the same two minute-delayed shutdown occurs.
  • Page 71: Appendix C

    User I/O port on the P2OS microcontroller. Both require P2OS version 1.c or later. Figure 30. Standard joyport for manual drive of a Pioneer 2 or PeopleBot Mobile Robot Figure 31. Joyport with signal switch for sharing User I/O ports with other accessories,...
  • Page 72: Appendix D

    Appendix D: Specifications Appendix D Specifications Physical Characteristics Length (cm) 44.5 Width (cm) Height (cm) 24.5 Clearance (cm) Weight (kg) Payload (kg) Power Batteries 12VDC lead-acid Charge (watt- hrs) Run time (hrs) 8–10 with PC (hrs) Recharge time hr/battery std charger High-Speed (3 batteries) Mobility...
  • Page 73 RESET and MOTORS pushbuttons Indicator LEDs Main power; RADIO power; Host SERIAL RxD and TxD Perf PB 39,400 34,000 76,600 20,000 22,500 33,500 Optional Standard Standard 5 VDC @ 3A switched ActivMedia Robotics PB V1 76,600 39,400 39,000 18,400 Optional Optional...
  • Page 74: Index

    Index A/D, 43 Accessory Panels, 12 ActivMedia Robotics Basic Suite, 5 ADSEL, 43 AmigoBot, 43 Sounds, 43 AmigoSounds, 6 ARIA, 6 Assembly, 19 Autoconfiguration, 35 AUX, 41 Batteries, 14, 55 Changing, 55 Charging, 55 Hot-swap, 55 Recharge port, 15 Battery charger, 14...
  • Page 75 I/O, 61 PeopleBot sensors, 18, 45 Physical characteristics, 10 PID parameters, 52 Pioneer 1, 7 Pioneer 2, 8 Pioneer 2 Operating System, Pioneer 2-AT, 8 Pioneer 2-CE, 7 Pioneer 2-DX, 7 Pioneer 2-DXE, 8 Pioneer AT, 7 Pioneer Server Operating...
  • Page 76: Warranty & Liabilities

    ActivMedia Robotics products in any way. They shall bear no responsibilities or liabilities for any operation or application of the robot, or for support of any of those activities.
  • Page 78 44 Concord Street Peterborough, NH 03458 (603) 924-9100 (603) 924-2184 fax http://www.activrobots.com...