Research PatrolBot User's Guideplascencia/patrolbot/Research_PatrolBot_3rd_gen_… · MobileEyes...

96
Research PatrolBot 3 rd Generation User's Guide

Transcript of Research PatrolBot User's Guideplascencia/patrolbot/Research_PatrolBot_3rd_gen_… · MobileEyes...

Page 1: Research PatrolBot User's Guideplascencia/patrolbot/Research_PatrolBot_3rd_gen_… · MobileEyes MobileEyes is a graphical application for remote visualization, teleoperation, and

Research PatrolBot 3rd Generation

User's Guide

Page 2: Research PatrolBot User's Guideplascencia/patrolbot/Research_PatrolBot_3rd_gen_… · MobileEyes MobileEyes is a graphical application for remote visualization, teleoperation, and

Rev. A

(via 10247-000 Rev. B)

January 24, 2012

Copyright Notice:

The information contained herein is the property of Adept Technology, Inc., and shall not be reproduced in whole or in part without prior written

approval of Adept Technology, Inc. The information herein is subject to change without notice and should not be construed as a commitment by Adept

Technology, Inc. The documentation is periodically reviewed and revised.

Adept Technology, Inc., assumes no responsibility for any errors or omissions in the documentation. Critical evaluation of the documentation by the

user is welcomed. Your comments assist us in preparation of future documentation. Please submit your comments to: [email protected].

Copyright by Adept Technology, Inc. All rights reserved.

Adept, the Adept logo, the Adept Technology logo, AdeptVision, AIM, Blox, Bloxview, FireBlox, Fireview, Meta Controls, MetaControls, Metawire,

PatrolBot, Seekur, Soft Machines, and Visual Machines are registered trademarks of Adept Technology, Inc.

Brain on Board is a registered trademark of Adept Technology, Inc. in Germany.

Adept ACE, ACE PackXpert, Adept 1060 / 1060+, Adept 1850 / 1850 XP, Adept 540, Adept 560, Adept AnyFeeder, Adept Award, Adept C40, Adept

C60, Adept CC, Adept Cobra 350, Adept Cobra 350 CR/ESD, Adept Cobra 550, Adept 550 CleanRoom, Adept Cobra 600, Adept Cobra 800, Adept

Cobra i600, Adept Cobra i800, Adept Cobra PLC Server, Adept Cobra PLC800, Adept Cobra s600, Adept Cobra s800, Adept Cobra s800 Inverted,

Adept Cobra Smart600, Adept Cobra Smart800, Adept DeskTop, Adept FFE, Adept FlexFeeder 250, Adept IC, Adept iSight, Adept Impulse Feeder,

Adept LineVision, Adept MB-10 ServoKit, Adept MC, Adept MotionBlox-10, Adept MotionBlox-40L, Adept MotionBlox-40R, Adept MV, Adept MV-

10, Adept MV-19, Adept MV-4, Adept MV-5, Adept MV-8, Adept OC, Adept Python, Adept Quattro s650, Adept Quattro s650H, Adept Quattro

s650HS, Adept Quattro s800H, Adept sDIO, Adept SmartAmp, Adept SmartAxis, Adept SmartController CS, Adept SmartController CX, Adept

SmartModule, Adept SmartMotion, Adept SmartServo, Adept sMI6, Adept sSight, Adept Viper s650, Adept Viper s850, Adept Viper s1300, Adept

Viper s1700, AdeptCartesian, AdeptCast, AdeptForce, AdeptFTP, AdeptGEM, AdeptModules, AdeptMotion, AdeptMotion Servo, AdeptMotion VME,

AdeptNet, AdeptNFS, AdeptOne, AdeptOne-MV, AdeptOne-XL, AdeptRAPID, AdeptSight, AdeptSix, AdeptSix 300, AdeptSix 300 CL, AdeptSix 300

CR, AdeptSix 600, AdeptTCP/IP, AdeptThree, AdeptThree-MV, AdeptThree-XL, AdeptTwo, AdeptVision AGS, AdeptVision AVI, AdeptVision GV,

AdeptVision I, AdeptVision II, AdeptVision VME, AdeptVision VXL, AdeptVision XGS, AdeptVision XGS II, AdeptWindows, AdeptWindows

Controller, AdeptWindows DDE, AdeptWindows Offline Editor, AdeptWindows PC, AIM Command Server, AIM Dispense, AIM PCB, AIM

VisionWare, AmigoBot, A-Series, FlexFeedWare, HyperDrive, IO Blox, MicroV+, MobileEyes, MobilePlanner, MobileSim, MotionBlox, MotionWare,

ObjectFinder, ObjectFinder 2000, PackOne, PalletWare, PowerBot, sAVI, S-Series, UltraOne, V, V+, and VisionTeach are trademarks of Adept

Technology, Inc.

Any trademarks from other companies used in this publication

are the property of those respective companies.

Created in the United States of America

10 Columbia Drive • Amherst, NH 03458 • USA • Phone +1 603.881.7960 • Fax+1 603.881.3818

www.mobilerobots.com www.adept.com [email protected]

Page 3: Research PatrolBot User's Guideplascencia/patrolbot/Research_PatrolBot_3rd_gen_… · MobileEyes MobileEyes is a graphical application for remote visualization, teleoperation, and

Table of Contents

Chapter 1: Introduction .................................................... 1

1.1 Product Description .................................................................................................... 1

1.2 Software Overview ..................................................................................................... 2

1.3 How Can I Get Help?.................................................................................................. 5

Chapter 2: Safety .............................................................. 7

Chapter 3: Installation and Setup ................................... 11

3.1 Transport and Storage .............................................................................................. 11

3.2 Unpacking the Robot ................................................................................................ 11

3.5 Repacking for Relocation ......................................................................................... 12

3.6 Operating Environment ........................................................................................... 12

Chapter 4: Getting Started .............................................. 13

4.1 Assembly and Start Up ............................................................................................. 13

Chapter 5: Connectivity .................................................. 17

5.2 Available Power Connections ................................................................................. 17

5.3 Available I/O Connections ....................................................................................... 18

5.4 I/O Connections ......................................................................................................... 19

5.5 I/O Pinouts ................................................................................................................. 21

Chapter 6: Operation ...................................................... 25

6.1 Operating Environment ........................................................................................... 25

6.3 Power and Charging ................................................................................................. 26

6.4 Indicators and Manual Controls ............................................................................. 28

6.5 Onboard Computer. ................................................................................................... 31

6.6 Sonar ........................................................................................................................... 32

6.7 Laser Range Finder ................................................................................................... 32

Chapter 7: Maintenance .................................................. 35

7.2 Cleaning ...................................................................................................................... 36

7.3 Replacing Periodic Parts .......................................................................................... 37

Page 4: Research PatrolBot User's Guideplascencia/patrolbot/Research_PatrolBot_3rd_gen_… · MobileEyes MobileEyes is a graphical application for remote visualization, teleoperation, and

7.4 Replacing Non-Periodic Parts ................................................................................. 39

8.1 Dimension Drawings ................................................................................................ 51

8.2 Robot Specifications .................................................................................................. 53

Chapter 9: Robot Programming and Configuration ......... 57

ARIA .................................................................................................................................. 57

Client-Server Communication Packet Protocol ........................................................... 57

Updating & Reconfiguring µARCS ............................................................................... 76

Appendix A: Internal Component Connection Diagram ... 85

Appendix B: PCB Layouts ................................................ 87

Page 5: Research PatrolBot User's Guideplascencia/patrolbot/Research_PatrolBot_3rd_gen_… · MobileEyes MobileEyes is a graphical application for remote visualization, teleoperation, and

Adept MobileRobots Research PatrolBot User’s Guide, Rev. A

Page 1 of 96

Chapter 1: Introduction This manual covers the setup, operation, and user maintenance for the Adept MobileRobots

Research PatrolBot.

This manual does not cover the installation or configuration of user-supplied accessories.

1.1 Product Description

The Adept MobileRobots Research PatrolBot is a general-purpose, 2-wheel differential-drive,

indoor mobile robot, designed and sized to carry payloads up to 40 kg while working around

people. The robot's size and drive assembly are designed to work in any wheelchair-accessible

environment.

Research PatrolBot 3rd Generation is an update of the previous 1st and 2nd generation Research

PatrolBots. The 3rd Generation is based on the same design as Adept mobile robot platforms

used for commercial and industrial applications. The 3rd Generation of the Research PatrolBot

differs from the prior 2nd generation Research PatrolBot by its white body color instead of the

previous gray color, the addition of useful power and IO connector wells recessed in the top

plate, and other internal improvements.

PatrolBot combines hardware and development software libraries to provide an intelligent

mobile platform upon which you can deploy your mobile robotic research applications. Using

the Adept MobileRobots Pioneer Software Development Kit you can write software that simply

controls robot motion, or uses advanced localization and navigation capabilities to know

where it is within an indoor workspace, and to drive safely and autonomously to any accessible

destination within that workspace, continuously and without human intervention. This

autonomous navigation capability may also be used to automatically self-charge with its

dedicated charging station.

The primary sensor is a laser rangefinder. The laser is backed up by rear-facing sonar, and front

and back sensing bumpers.

The Adept MobileRobots Research PatrolBot provides a variety of interfaces, power options,

and systems support needed for development and deployment of application-specific sensors

and accessories. See "Connectivity".

Body and Drive

The Adept MobileRobots Research PatrolBot is relatively small, lightweight, and highly

maneuverable. It has a strong aluminum body and solid construction that makes it very

durable, and is insulated against water splashes and dust.

The robot is a two-wheel, differential-drive vehicle, with passive casters front and rear, and

independent drive-wheel spring-suspension for balance. Its solid, foam-filled wheels are at the

center of rotation so that the robot turns in place. Each of the robot's two drive wheels are

driven by a brushless motor with planetary gear reduction for high reliability.

Page 6: Research PatrolBot User's Guideplascencia/patrolbot/Research_PatrolBot_3rd_gen_… · MobileEyes MobileEyes is a graphical application for remote visualization, teleoperation, and

Chapter 1: Introduction

Adept MobileRobots Research PatrolBot User’s Guide, Rev. A

Page 2 of 96

What's Included - Basic Components (all robots)

One fully-assembled robot with fully-charged batteries

Integrated microcontroller with μARCS firmware (installed in robot)

Integrated Single Board Computer (SBC) running either Debian Linux or Windows XP

Embedded. (installed in robot)

Joystick

Integrated wired and wireless Ethernet (installed in robot)

Integrated scanning laser range finder (installed in robot)

Integrated audio output with speaker (installed in robot)

CD-ROM containing licensed copies of Adept software and documentation

ARIA, ARNL, μARCS, and other software is also pre-loaded on the robot.

Documentation

Optional Components and Attachments (partial list)

Automated charging (docking) station

External power supply, PN 10484-000

Spare sealed lead-acid battery pack, PN 10702-000

Low-obstacle Detection Laser (URG), PN 10896-000 (installed in robot)

Pan/tilt/zoom Camera

Stereo Camera

Manipulator Arm

See www.mobilerobots.com for more

1.2 Software Overview

The robot comes with the following software. If ordered with an onboard computer, all

software has been installed on the onboard computer as well as provided on CD, and is

available for download (including any updated versions) at http://robots.mobilerobots.com. All

software is available for Windows and Linux.

μARCS

At the lowest level, a microcontroller running μARCS firmware handles the details of mobility,

including maintaining the robot’s drive speed and heading over uneven terrain, as well as

acquiring sensor readings, such as from the encoders, gyroscope, and sonar, and managing the

robot’s power and emergency stop systems, batteries, and bumpers. The μARCS controller

computes and reports the robot’s odometry (X, Y, and heading), sonar readings, and a variety

of other low-level operating conditions via an RS-232 serial channel. See Chapter 9 for details

on this protocol, more information on how µARCS operates, and details on its behavior via

configuration parameters stored by the robot.

µARCS updates are available for download at http://robots.mobilerobots.com/wiki/µARCS.

uARCScf

uARCScf is the utility used to configure various μARCS parameters stored by the robot in

nonvolatile “FLASH” memory. It can also be used to upgrade the version of μARCS. uARCScf

is included with the µARCS firmware packages, which can be found in /usr/local/µARCS on

Linux or C:\Program Files\MobileRobots\µARCS on Windows.

Page 7: Research PatrolBot User's Guideplascencia/patrolbot/Research_PatrolBot_3rd_gen_… · MobileEyes MobileEyes is a graphical application for remote visualization, teleoperation, and

Chapter 1: Introduction

Adept MobileRobots Research PatrolBot User’s Guide, Rev. A

Page 3 of 96

Onboard Computer Operating System

The robot’s onboard computer (if present) has been configured with either a Linux or Windows

XP Embedded operating system, along with all drivers and software needed for devices

included with the computer.

ARIA

ARIA is the core development library or SDK for use with the PatrolBot. It is a C++ library

(with wrapper libraries also available for Python and Java).

ARIA is available with all robots.

On Linux is can be found at /usr/local/Aria, and on Windows at C:\Program

Files\MobileRobots\Aria and in the Start Menu. ARIA includes full API reference

documentation in its doc subdirectory, as well as example programs in the examples directory,

and full source code distributed as free software under the terms of the GNU General Public

License.

ARIA updates and additional information are available for download at

http://robots.mobilerobots.com/wiki/ARIA.

ARNL

ARNL is a development library or SDK for including accurate laser localization and flexible,

reliable autonomous navigation capabilities in your software.

ARNL is included with all robots ordered with the Laser Navigation package.

ARNL can be found installed on Linux at /usr/local/Arnl, and on Windows at C:\Program

Files\MobileRobots\ARNL. The ARNL installation includes the localization and navigation

libraries, as well as compatible ARIA libraries. It includes a full API reference manual in the

doc subdirectory, as well as example programs in the examples directory. Refer to ARNL’s

README.txt file and API reference manual for more information on getting started using it.

ARNL updates and additional information are available for download at

http://robots.mobilerobots.com/wiki/ARNL.

Mapper3

Mapper3 is an application used for converting and editing maps for use with ARNL and

MobileSim.

Mapper3 is available for download at http://robots.mobilerobots.com/wiki/Mapper3.

MobileSim

MobileSim is the MobileRobots simulator. If you run MobileSim first, ARIA will automatically

connect to MobileSim instead of the real robot. This allows software to be tested with the

simulator on any computer before using the real robot, without recompilation or any changes.

MobileSim is available for download at http://robots.mobilerobots.com/wiki/MobileSim.

Page 8: Research PatrolBot User's Guideplascencia/patrolbot/Research_PatrolBot_3rd_gen_… · MobileEyes MobileEyes is a graphical application for remote visualization, teleoperation, and

Chapter 1: Introduction

Adept MobileRobots Research PatrolBot User’s Guide, Rev. A

Page 4 of 96

MobileEyes

MobileEyes is a graphical application for remote visualization, teleoperation, and software

configuration. It communicates with onboard robot software via the wireless network and the

ArNetworking system (included with ARIA), and can run on any PC or laptop.

MobileEyes is available for download at http://robots.mobilerobots.com/wiki/MobileEyes.

Software for Accessory Devices

Development libraries for use with some accessory devices are provided by the original

manufacturer of the device. This includes the Cyton arm, the Bumblebee stereo camera, the

Focus nDepth stereo processor (used with MobileRanger), and some other devices. These

libraries can be downloaded from http://robots.mobilerobots.com/wiki/Software. All other

accessory devices are supported in ARIA.

Speech Synthesis and Recognition Libraries

MobileRobots provides repackaged versions of free speech recognition and synthesis software,

as well as the optional Cepstral higher quality speech synthesis library (included when the

optional Speech packages are ordered with a robot). These can be found at

http://robots.mobilerobots.com/wiki/ArSpeech

Page 9: Research PatrolBot User's Guideplascencia/patrolbot/Research_PatrolBot_3rd_gen_… · MobileEyes MobileEyes is a graphical application for remote visualization, teleoperation, and

Chapter 1: Introduction

Adept MobileRobots Research PatrolBot User’s Guide, Rev. A

Page 5 of 96

1.3 How Can I Get Help?

MobileRobots provides a customer support website at http://robots.mobilerobots.com. This website provides

downloads of all manuals, software and device drivers, a searchable knowledge base of information, tips and

answers to frequently asked questions.

For questions and public discussions on use of ARIA and other MobileRobots-provided software with users

of MobileRobots platforms, MobileRobots provides the aria-users mailing list. See

http://robots.mobilerobots.com/wiki/aria-users for archives of past discussions and instructions on joining

the mailing list.

For questions and public discussions on robot hardware and general robotics topics with other users of

MobileRobots platforms, MobileRobots provides the pioneer-users mailing list. See

http://robots.mobilerobots.com/wiki/pioneer-users for archives of past discussions and instructions on

joining the mailing list.

To contact MobileRobots’ customer support specialists regarding any questions not answered in this

documentation, or to troubleshoot problems with your robot, visit

http://robots.mobilerobots.com/wiki/Contact_Support, or email [email protected] describing your

problem. Include your robot’s serial number.

Factory Repairs

If after reading this manual, you are having hardware problems with your Adept MobileRobots Research

PatrolBot and are sure that it needs repair, contact us at:

[email protected]

In the body of your e-mail message, provide your robot’s serial number and describe the problem you are

having in as much detail as possible.

Tell us when and how we can best contact you. We will assume e-mail is the best format, unless otherwise

notified. We will try to resolve the problem through communication. If the robot must be returned to the factory

for repair, obtain a Repair Authorization Code and shipping instructions from us first.

Page 10: Research PatrolBot User's Guideplascencia/patrolbot/Research_PatrolBot_3rd_gen_… · MobileEyes MobileEyes is a graphical application for remote visualization, teleoperation, and

Chapter 1: Introduction

Adept MobileRobots Research PatrolBot User’s Guide, Rev. A

Page 6 of 96

Page 11: Research PatrolBot User's Guideplascencia/patrolbot/Research_PatrolBot_3rd_gen_… · MobileEyes MobileEyes is a graphical application for remote visualization, teleoperation, and

Chapter 2: Safety

Adept MobileRobots Research PatrolBot User’s Guide, Rev. A

Page 7 of 96

Chapter 2: Safety

2.1 Dangers, Warnings, Cautions, and Notes

There are six levels of special alert notation used in Adept manuals. In descending order of

importance, they are:

DANGER: This indicates an imminently hazardous electrical situation which,

if not avoided, will result in death or serious injury.

DANGER: This indicates an imminently hazardous situation which, if not

avoided, will result in death or serious injury.

WARNING: This indicates a potentially hazardous electrical situation which, if

not avoided, could result in serious injury or major damage to the equipment.

WARNING: This indicates a potentially hazardous situation which, if not

avoided, could result in serious injury or major damage to the equipment.

CAUTION: This indicates a situation which, if not avoided, could result in

minor injury or damage to the equipment.

NOTE: Notes provide supplementary information, emphasizes a point or

procedure, or gives a tip for easier operation.

Page 12: Research PatrolBot User's Guideplascencia/patrolbot/Research_PatrolBot_3rd_gen_… · MobileEyes MobileEyes is a graphical application for remote visualization, teleoperation, and

Chapter 2: Safety

Adept MobileRobots Research PatrolBot User’s Guide, Rev. A

Page 8 of 96

2.2 Qualification of Personnel

This manual assumes that all personnel have been trained and have a working knowledge of

the system. The user must provide the necessary additional training for all personnel who will

be working with the system.

As noted in this user’s guide, certain procedures should be performed only by skilled or

instructed persons. For a description of the level of qualification, Adept uses the standard

terms:

Skilled persons have technical knowledge or sufficient experience to enable them to

avoid the dangers, electrical and/or mechanical.

Instructed persons are adequately advised or supervised by skilled persons to enable

them to avoid the dangers, electrical and/or mechanical.

All personnel must observe sound safety practices during the installation, operation, and

testing of all electrically powered equipment. To avoid injury or damage to equipment, always

remove power by disconnecting the AC power from the source before attempting any repair or

upgrade activity. Use appropriate lockout procedures to reduce the risk of power being

restored by another person while you are working on the system.

DANGER: Any person who programs, teaches, operates, maintains, or repairs

the robot system must be trained and must demonstrate the competence to

safely perform the assigned task.

DANGER: The user must get confirmation from every entrusted person before

they start working with the robot that the person:

Has received the user's guide.

Has read the user's guide.

Understands the user's guide.

Will work in the manner specified by the user's guide.

2.3 Safety Aspects While Performing Maintenance

Only skilled persons with the necessary knowledge about the safety and operating equipment

are allowed to maintain the robot.

DANGER: During maintenance and repair, the power to the charging station

must be turned off. Unauthorized third parties must be prevented, through the

use of lockout measures, from turning on power.

DANGER: During maintenance and repair, disconnect the batteries of the

robot as soon as possible. Avoid shorting the terminals of the batteries.

Page 13: Research PatrolBot User's Guideplascencia/patrolbot/Research_PatrolBot_3rd_gen_… · MobileEyes MobileEyes is a graphical application for remote visualization, teleoperation, and

Chapter 2: Safety

Adept MobileRobots Research PatrolBot User’s Guide, Rev. A

Page 9 of 96

2.4 Important Safety Instructions

Read the installation and operation instructions before using the equipment.

Do not ride on the robot.

Do not exceed the maximum payload.

Limit operation to a 20% slope (12% for payloads over 10 kg up to 25 kg).

Do not drop the robot, run it off a ledge, or otherwise operate it in an irresponsible

manner.

Do not get the robot wet. Do not expose the equipment to rain or moisture.

Do not use power extension cords unless properly rated.

Do not continue to run the robot after hair, clothing, wires, string, or any other items

have become wound around the robot’s axles or wheels.

Never access the interior of the robot with the charger attached.

Immediately disconnect the battery pack when removing the battery pack cover.

Do not use parts not authorized by Adept.

Do not use any charger not supplied by Adept.

Do not turn on the robot without the antennas in place.

The installation and use of Adept products must comply with all safety instructions and

warnings in this manual. Installation and use must also comply with all applicable local and

national requirements and safety.

The Adept MobileRobots Research PatrolBot is intended for use on level floors, for payloads

under 40 kg (88 lbs.).

The body of the PatrolBot must not come into contact with liquids. The drive wheels can

tolerate damp floors, but the body of the robot must remain dry.

The Adept equipment is not intended for use in any of the following situations:

In hazardous (explosive) atmospheres

In mobile, portable, marine, or aircraft systems

In life-support systems

In residential installations

In temperatures over 40° C (104° F) or humidity over 95% (or condensing).

CAUTION: The instructions for installation, operation, and maintenance given

in this manual must be strictly observed.

Non-intended use of an PatrolBot can:

Cause injury to personnel

Damage the robot or other equipment

Reduce system reliability and performance

All persons that install, commission, operate, or maintain the robot must:

Have the necessary qualifications

Page 14: Research PatrolBot User's Guideplascencia/patrolbot/Research_PatrolBot_3rd_gen_… · MobileEyes MobileEyes is a graphical application for remote visualization, teleoperation, and

Chapter 2: Safety

Adept MobileRobots Research PatrolBot User’s Guide, Rev. A

Page 10 of 96

Read and follow exactly the instructions in this manual

If there is any doubt concerning the application, ask Adept to determine if it is an intended use

or not.

Take precautions to ensure that these situations do not occur.

Purposely defeating any aspect of the safety E-Stop system

Improper installation or programming of the robot system

2.5 Safety Standards

The following table lists standards that the robot system has been evaluated to meet.

Table 2-1. Standards Met by Robot

Standard

TUV-tested to UL standards 1740:1998 (charging station)

FCC part 15

2.6 Safety Requirements for Additional Equipment

If the robot is to be used in an EU or EEA member country, all accessories used with the robot

must comply with the safety requirements in the European Machine Directive 89/392/EEC (and

subsequent amendments) and related harmonized European, international, and national

standards. For robot systems, these include: EN 775/ISO 10218, sections 5,6; EN 292-2; and EN

60204.

In other countries, Adept strongly recommends, in addition to complying with the

applicable local and national regulations, that a similar level of safety be attained.

In the USA, applicable standards include ANSI/RIA R15.06 and ANSI/UL 1740.

In Canada, applicable standards include CAN/CSA Z434.

2.7 What to Do in an Emergency Situation

Press the E-Stop button (red push-button) and then follow the internal procedures of your

company or organization for an emergency situation. If a fire occurs, use CO2 to extinguish the

fire.

Page 15: Research PatrolBot User's Guideplascencia/patrolbot/Research_PatrolBot_3rd_gen_… · MobileEyes MobileEyes is a graphical application for remote visualization, teleoperation, and

Adept MobileRobots Research PatrolBot User’s Guide, Rev. A

Page 11 of 96

Chapter 3: Installation and Setup

3.1 Transport and Storage

The PatrolBot must be shipped and stored in a temperature-controlled environment, within the

range 5° to 40° C (41° to 104° F). The recommended humidity range is 5 to 90 percent, non-

condensing. It should be shipped and stored in the Adept-supplied shipping container, which

is designed to prevent damage from normal shock and vibration. You should protect the

container from excessive shock and vibration.

In particular, ensure the bottom of the robot is fully supported by packing material.

The robot must always be stored and shipped in an upright position in a clean, dry area that is

free from condensation. Do not lay the container on its side or any other non-upright position.

This could damage the robot.

The PatrolBot weighs 38 - 45 kg (84 - 99 lbs.) with no options installed.

Battery Pack

Batteries should be stored in a cool environment to prevent self-discharge. The manufacturer

recommends +5° to +25° C (41° to 77° F) if storing for more than 7 days. For storage under 7

days, +5° to +40° C (41° - 104° F) is acceptable.

In any case, the batteries should start storage fully charged. If the batteries have been stored

for more than 3 months at +25° C (77° F) or 1.5 months at +35° C (95° F), they will require up to

5 charge cycles before they reach full capacity.

NOTE: If you purchased spare battery packs, this section applies to them, also.

3.2 Unpacking the Robot

Carefully inspect all shipping containers for evidence of damage during transit. If any damage

is indicated, request that the carrier’s agent be present at the time the container is unpacked.

Before signing the carrier’s delivery sheet, compare the actual items received (not just the

packing slip) with your equipment purchase order. Verify that all items are present and that

the shipment is correct and free of visible damage.

If the items received do not match the packing slip, or are damaged, do not sign the receipt.

Contact Adept as soon as possible.

If the items received do not match your order, please contact Adept immediately.

Retain all containers and packaging materials. These items may be necessary to settle claims or,

at a later date, to relocate the equipment.

The PatrolBot comes packed in foam in a cardboard box.

Open the box to reveal the robot

Remove the tie-down and foam to fully-expose the robot.

Page 16: Research PatrolBot User's Guideplascencia/patrolbot/Research_PatrolBot_3rd_gen_… · MobileEyes MobileEyes is a graphical application for remote visualization, teleoperation, and

Chapter 3: Installation and Setup

Adept MobileRobots Research PatrolBot User’s Guide, Rev. A

Page 12 of 96

The charging station is shipped in a separate box, along with the joystick.

Refer to Chapter 4: Getting Started for further assembly and set up steps.

3.5 Repacking for Relocation

If the robot or other equipment needs to be relocated, reverse the steps in the installation

procedures in this chapter. Reuse all original packing containers and materials and follow all

safety notes used for installation. Improper packaging for shipment will void your warranty.

The robot must always be shipped in an upright orientation.

3.6 Operating Environment

The Adept MobileRobots Research PatrolBot is designed to operate in an environment that is

wheelchair accessible. Care must be taken to avoid:

glass doors/walls

pits without railings or low bumpers

floors with access panels removed

loose cables, hoses, etc.

large, highly-reflective objects

Floors must provide good traction, typical of good walking conditions.

Slopes 20% with up to a 10 kg payload

(requires a 50 cm transition area)

12% with up to a 25 kg payload

Step traversal up to 15 mm

Gap traversal up to 15 mm

Temperature 5° - 40° C (41° - 104° F)

Humidity 0 - 95%, non-condensing

The PatrolBot is not intended for use in hazardous environments (explosive gas, water, dust, oil

mist). It has an IP rating of IP-42.

Page 17: Research PatrolBot User's Guideplascencia/patrolbot/Research_PatrolBot_3rd_gen_… · MobileEyes MobileEyes is a graphical application for remote visualization, teleoperation, and

Adept MobileRobots Research PatrolBot User’s Guide, Rev. A

Page 13 of 96

Chapter 4: Getting Started This chapter describes how to quickly set up, test, and operate your new PatrolBot. For more

mapping and integration details, refer to the ARIA API Reference Manual, the ARNL API

Reference Manual, and the ARNL Quick Start Guide

4.1 Assembly and Start Up

Your PatrolBot comes fully-assembled, battery pack fully-charged, and ready for out-of-the-box

operation. You may need to attach some accessories that were shipped separately or detached

for safety.

JoyDrive Only Mode

JoyDrive Only mode lets you quickly move the robot to its destination without waiting for all

its components (such as onboard computer, sensors, etc.) to start up. This can be used to drive

it from the shipping dock to its automated charge station or a demonstration site.

WARNING: The PatrolBot does not avoid anything when in JoyDrive Only

mode, so YOU are completely responsible for its safe operation.

NOTE: The following procedure must start with the robot powered off.

1. Plug the joystick into its port inside the right power-I/O bay.

2. Disengage both robot E-stop buttons (red locking pushbuttons) by turning clockwise.

3. Hold the joystick with handle and cable facing you.

4. Press and hold the joystick’s green GO button.

5. While continuing to hold the joystick GO button, press and hold the robot PWR ON

button for three seconds, then release.

6. Continue to hold the joystick GO button for about five seconds or until the ‘JoyDrive

only…’ message appears on the LCD.

7. Release the joystick GO button.

8. To drive the robot, press and hold the GO button while moving the joystick handle

forward/back to translate, and left/right to rotate the robot.

Note that only the robot microcontroller and LCD start up in this mode. You will have to PWR

OFF and then PWR ON again to start up normally including onboard computer, software and

devices. Also note that, if you use JoyDrive Only mode to drive the robot away from where it

has been operating normally with ARNL localization, and restart it there, it will become lost

and you will have to relocalize it.

Page 18: Research PatrolBot User's Guideplascencia/patrolbot/Research_PatrolBot_3rd_gen_… · MobileEyes MobileEyes is a graphical application for remote visualization, teleoperation, and

Chapter 4: Getting Started

Adept MobileRobots Research PatrolBot User’s Guide, Rev. A

Page 14 of 96

Figure 4-1. Joystick and GO Button; and LCD display showing JoyDrive only mode.

Installing the Charging Station

The automated charging station can be used for either manual or automated charging of your

robot's batteries.

The charging station sits on the floor, but its back side needs to be against a wall. (This prevents

the station from moving when the robot docks.)

Clearance

Locate the charging station near a 110 or 240 VAC outlet with 1 - 2 meters of clear space in front

to ease the robot’s maneuvers, especially automated ones, onto the station.

Power

Install the power cord and switch the automated charging unit to ON. The power switch is just

above the power cord. The green power LED indicator should light.

The charging station requires 110-240 VAC, 50-60 Hz, 8 A.

Its maximum ambient operating temperature is 40° C (104° F).

Attach Wireless Ethernet Antennas

Carefully screw both Wifi antennas to the SMA screw connectors on each side of the robot near

the I/O wells. Antennas must be attached before powering on the robot.

Install Accessories

Some external accessories, such as cameras, manipulator arm, etc. may have been shipped

unattached to the robot. Some may have been shipped in separate packaging. Carefully

unpack and install these accessories. Refer to accessory documentation, as well as Chapter 5:

Connectivity in this manual for more information. Contact MobileRobots support if you have

any questions.

Page 19: Research PatrolBot User's Guideplascencia/patrolbot/Research_PatrolBot_3rd_gen_… · MobileEyes MobileEyes is a graphical application for remote visualization, teleoperation, and

Chapter 4: Getting Started

Adept MobileRobots Research PatrolBot User’s Guide, Rev. A

Page 15 of 96

Powering On The Onboard Computer

To power on the onboard computer, push the Scroll rocker switch in the right hand control

panel well next to the LCD display until you reach the PC Power OFF screen. You will need to

press Scroll several times (either up or down). When the screen displays PC Power OFF, open

the left hand control panel well and press the Select switch to turn the onboard computer on.

When the power has been switched on to the onboard computer, the LCD panel will display

PC Power ON and a C will appear in the upper display line. You can configure the robot to

turn the computer and other devices on at startup. See Chapter 9 for configuration details.

To turn off the onboard computer, first shut down the operating system. Then either use the

LCD panel to switch PC power off, or simply turn the robot off using the red PWR OFF button.

More details on robot operation are given in Chapter 6.

Page 20: Research PatrolBot User's Guideplascencia/patrolbot/Research_PatrolBot_3rd_gen_… · MobileEyes MobileEyes is a graphical application for remote visualization, teleoperation, and

Chapter 4: Getting Started

Adept MobileRobots Research PatrolBot User’s Guide, Rev. A

Page 16 of 96

Page 21: Research PatrolBot User's Guideplascencia/patrolbot/Research_PatrolBot_3rd_gen_… · MobileEyes MobileEyes is a graphical application for remote visualization, teleoperation, and

Chapter 5: Connectivity

Adept MobileRobots Research PatrolBot User’s Guide, Rev. A

Page 17 of 96

Chapter 5: Connectivity

5.1 Available Power Connections

The following power connections are available in the right power I/O bay:

5 VDC x 1 (switched)

12 VDC x 3 (switched)

24 VDC x 1 (switched)

20 - 30 VDC x 2 (switched)

20 - 30 VDC E-Stop-controlled x 1

Each supply has an associated LED which, when lit, indicates that the port is actively powered.

Each receptacle comes with mating connectors that mask out1 any power ports which have

been allocated to other devices inside the PatrolBot. Accordingly, for safe operation, use those

accompanying connectors to attach your own devices.

Table 5-1. Power Port Limits

Nominal Voltage

Port # Actual Voltage

Maximum Current

Normal Shutoff Response Time

5 V 6 5.0 ± 0.2 VDC 2 A 29 ms

12 V 7 12.0 ± 0.5 VDC

2 A 29 ms

12 V 8 12.0 ± 0.5

VDC

2 A 29 ms

12 V 10 12.0 ± 0.5 VDC

2 A 29 ms

20 - 30 V 12 25 ± 5 VDC 1.125 A 21 ms

20 - 30 V 13 25 ± 5 VDC 4.5 A 21 ms

24 V 14 24 ± 1 VDC 4 A 21 ms

20 - 30 V E−Stop 25 ± 5 VDC 7.5 A 21 ms

Port #9 is visible outside, but epoxy-filled and not user-available.

NOTE: Port # corresponds to the software-switched port numbers you can address.

The three 12 VDC ports are limited to a total of 5 A.

The E-Stop 20 - 30 VDC supply automatically gets disconnected when the E-Stop button is

pressed, just like motor power.

1The ports that are masked out are actually filled with epoxy to prevent them from being used.

Page 22: Research PatrolBot User's Guideplascencia/patrolbot/Research_PatrolBot_3rd_gen_… · MobileEyes MobileEyes is a graphical application for remote visualization, teleoperation, and

Chapter 5: Connectivity

Adept MobileRobots Research PatrolBot User’s Guide, Rev. A

Page 18 of 96

The state of switched power connections are software controlled. See Chapter 9 for details.

5.2 Available I/O Connections

These connections are available for use with Adept- and user-supplied accessories.

Figure 5-2. Left I/O Bay Figure 5-1. Right Power-I/O Bay

Right Power I/O Bay

Ethernet port ETH 1, wired crossover

Optional Firewire connector

VGA Monitor connector for onboard computer

USB connector for onboard computer

Optional analog video connector for camera

Left I/O Bay

Digital Inputs x 8 (connected to onboard computer)

Inverse logic: 0 V = logical TRUE (ON); 5 V = logical FALSE (OFF)

Page 23: Research PatrolBot User's Guideplascencia/patrolbot/Research_PatrolBot_3rd_gen_… · MobileEyes MobileEyes is a graphical application for remote visualization, teleoperation, and

Chapter 5: Connectivity

Adept MobileRobots Research PatrolBot User’s Guide, Rev. A

Page 19 of 96

Digital Outputs x 8 (connected to onboard computer)

Inverse logic: 0 V = logical TRUE (ON); 5 V = logical FALSE (OFF)

Analog Input x 6 (connected to onboard computer)

Auxiliary Bumpers x 8 – labeled AUX BUMP

Serial ports x 2 (RS-232) - COM2 and COM4

PS/2 Keyboard and Mouse connectors – labeled KB and MOUSE

CPU Power LED - labeled SBC PWR

IDE LED - labeled HD

Onboard computer hard reset button – labeled SBC RESET

Connector for optional pan/tilt/zoom camera control

RCA audio connectors (optional)

The 10-bit analog ports are configured for 0 - 5 VDC analog, corresponding to 0 - 1023 data,

respectively.

The digital output ports may source only up to 24 mA each at 5 VDC.

The AUX BUMP ports are intended for use as payload bumpers. They are digital inputs,

normally pulled high, that can be toggled with GND. Their positions, relative to the robot's

body, can be configured in the ARIA *.p file. (See below for details)

Left User Control Well

POWER OFF button

SELECT controls for the LCD

Maintenance Serial Port

Ethernet Port (ETH 0)

Right User Control Well

EXTERNAL CHARGER port

POWER ON button

SCROLL buttons, for controlling the LCD

Joystick port

Lockable user well doors are available as an option. Contact Adept for information.

5.3 I/O Connections

Power port specifications are given in Power Port Limits on page 17.

Table 5-2. I/O Connections

Description Specification

Ports

MAINTAINENCE

Serial

Serial port for external connection to robot microcontroller

VGA/Monitor VGA console monitor for onboard computer

USB Onboard computer USB host, use with any USB device or

Page 24: Research PatrolBot User's Guideplascencia/patrolbot/Research_PatrolBot_3rd_gen_… · MobileEyes MobileEyes is a graphical application for remote visualization, teleoperation, and

Chapter 5: Connectivity

Adept MobileRobots Research PatrolBot User’s Guide, Rev. A

Page 20 of 96

Description Specification

hub

Video Analog video signal from camera to onboard computer

Keyboard, Mouse PS/2 keyboard and mouse to onboard computer

Eth1, Eth2 wired RJ-45 (cross-over) to onboard computer

Firewire Optional; onboard computer IEEE-1394 interface

COM2, COM4 RS-232 Serial, onboard computer COM2 and COM4

Camera Control For P/T/Z camera, RS-232 Serial to microcontroller

auxiliary serial port.

Audio Not connected by default, may be connected to onboard

computer. (contact support)

Analog In 6 x 10-bit @ 0-5 VDC input (0-1024 data). Connected to

Versalogic Cobra onboard computer.

Digital Input 8 digital input (normally high)

0V=logical 1, 5V=logical 0. Connected to Versalogic Cobra

onboard computer.

Digital Output 8 output (24 mA @ 5 VDC; normally OFF). Connected to

Versalogic Cobra onboard computer.

Aux Bump 8 digital input (normally high) that trigger extra uARCS

bumper signals.

Joystick Inductive-drive joystick input to microcontroller

Manual Charge port

Charge port for external power supply

Page 25: Research PatrolBot User's Guideplascencia/patrolbot/Research_PatrolBot_3rd_gen_… · MobileEyes MobileEyes is a graphical application for remote visualization, teleoperation, and

Chapter 5: Connectivity

Adept MobileRobots Research PatrolBot User’s Guide, Rev. A

Page 21 of 96

5.4 I/O Pinouts

Connector

Name

Robot

Connector

Mating

Connector

Pin Function Location for

PATROLBOT

AUX

5 VDC

PHOENIX

1755736

PHOENIX

1873058

1 PORT6_PWR Right Bay

2 PORT6_RTN

AUX

12 VDC

PHOENIX

1881613

PHOENIX

1881383

1 PORT7_PWR Right Bay

2 PORT7_RTN

3 PORT8_PWR

4 PORT8_RTN

5 PORT9_PWR

6 PORT9_RTN

7 PORT10_PWR

8 PORT10_RTN

AUX

24 VDC &

20-30 VDC

PHOENIX

1755794

PHOENIX

1873113

1 24 V PORT14_PWR Right Bay

2 PORT14_RTN

3 20-30 V PORT13_PWR

4 PORT13_RTN

5 20-30 V PORT12_PWR

6 PORT12_RTN

7 20-30 V E-Stop_PWR

8 ESRB_ARM_RTN

Connector

Name

Robot

Connector

Mating

Connector

Pin Function Location for

PATROLBOT

Digital I/O

#1

Digital I/O

#2

WEIDMULLER

1729000000

WEIDMULLER

1727690000

1 DIO_0 Left I/O Bay

2 DIO_1

3 DIO_2

4 DIO_3

5 DIO_4

6 DIO_5

7 DIO_6

8 DIO_7

9 -

16

GND

Page 26: Research PatrolBot User's Guideplascencia/patrolbot/Research_PatrolBot_3rd_gen_… · MobileEyes MobileEyes is a graphical application for remote visualization, teleoperation, and

Chapter 5: Connectivity

Adept MobileRobots Research PatrolBot User’s Guide, Rev. A

Page 22 of 96

Connector

Name

Robot

Connector

Mating

Connector

Pin Function Location for

PATROLBOT

Analog

Input

WEIDMULLER

1728980000

WEIDMULLER

1727670000

1 AN0 Left I/O Bay

2 AN1

3 AN2

4 AN3

5 AN4

6 AN5

7 -

12

GND_Analog

Connector

Name

Robot

Connector

Mating

Connector

Pin Function Location for

PATROLBOT

Bumpers WEIDMULLER

1728970000

WEIDMULLER

1727660000

1 GND Left I/O Bay

2 IR1

3 IR3

4 IR5

5 IR7

6 GND

7 IR0

8 IR2

9 IR4

10 IR6

Connector

Name

Robot

Connector

Mating

Connector

Pin Function Location for

PATROLBOT

ETH 1

ETH 0

L-COM

ECF504-SC6

RJ-45 1 Transmit

+

Right Bay

Left User Well 2 Transmit

3 Receive +

4 -

5

N/C

6 Receive

7 -

8

N/C

Page 27: Research PatrolBot User's Guideplascencia/patrolbot/Research_PatrolBot_3rd_gen_… · MobileEyes MobileEyes is a graphical application for remote visualization, teleoperation, and

Chapter 5: Connectivity

Adept MobileRobots Research PatrolBot User’s Guide, Rev. A

Page 23 of 96

Connector

Name

Robot

Connector

Mating

Connector

Pin Function Location for

PATROLBOT

COM 2 AMP

5747871-4

DB-9 Female

Pin

1 DCD Left I/O Bay

2 RXD

3 TXD

4 DTR

5 GND

6 DSR

7 RTS

8 CTS

9 RI

Connector

Name

Robot

Connector

Mating

Connector

Pin Function Location for

PATROLBOT

COM 4 AMP

5747871-4

DB-9

Female Pin

1 DCD Left I/O Bay

2 RXD/TX+

3 TXD

4 DTR/RXD-(485-)

5 GND

6 DSR

7 RTS/TXD

8 CTS

9 RI/RXD+(485+)

Connector

Name

Robot

Connector

Mating

Connector

Pin Function Location for

PATROLBOT

Charge

Port

Anderson

Power

Products

PP30

Anderson

Power

Products

PP30

Red +

Voltage

Right User Well

Black Ground

Connector

Name

Robot

Connector

Mating

Connector

Pin Function Location for

PATROLBOT

Joystick Lumberg

B-81

8 Position DIN

Lumberg

0131 08-1

1 Ground Right User Well

2 X-Axis

3 N/C

4 Enable

Page 28: Research PatrolBot User's Guideplascencia/patrolbot/Research_PatrolBot_3rd_gen_… · MobileEyes MobileEyes is a graphical application for remote visualization, teleoperation, and

Chapter 5: Connectivity

Adept MobileRobots Research PatrolBot User’s Guide, Rev. A

Page 24 of 96

Connector

Name

Robot

Connector

Mating

Connector

Pin Function Location for

PATROLBOT

5 Goal

6 Gain/Speed

7 Y-Axis

8 +5 V

Connector

Name

Robot

Connector

Mating

Connector

Pin Function Location for

PATROLBOT

Maintenance

Port

DB-9

Female

DB-9

Male

1 N/C Left User Well

2 TX

3 RX

4 DTR

5 Ground

6 -

9

N/C

Connector

Name

Robot

Connector

Mating

Connector

Pin Function Location for

PATROLBOT

802.11

Antenna 1

SMA

Female

SMA

Male

1 Right I/O Bay

Shield

802.11

Antenna 2

SMA

Female

SMA

Male

1 Left I/O Bay

Shield

Page 29: Research PatrolBot User's Guideplascencia/patrolbot/Research_PatrolBot_3rd_gen_… · MobileEyes MobileEyes is a graphical application for remote visualization, teleoperation, and

Adept MobileRobots Research PatrolBot User’s Guide, Rev. A

Page 25 of 96

Chapter 6: Operation This chapter provides an overview of the operation of the PatrolBot.

Figure 6-1. Location of Parts on the PATROLBOT Robot

6.1 Operating Environment

The Adept MobileRobots Research PatrolBot is designed to operate in an environment that is

wheelchair accessible. Care must be taken to avoid:

Page 30: Research PatrolBot User's Guideplascencia/patrolbot/Research_PatrolBot_3rd_gen_… · MobileEyes MobileEyes is a graphical application for remote visualization, teleoperation, and

Chapter 6: Operation

Adept MobileRobots Research PatrolBot User’s Guide, Rev. A

Page 26 of 96

glass doors/walls

pits without railings or low bumpers

floors with access panels removed

loose cables, hoses, etc.

large, highly-reflective objects

Floors must provide good traction, typical of good walking conditions.

Slopes 20% with up to a 10 kg payload

(requires a 50 cm transition area)

12% with up to a 25 kg payload

Step traversal up to 15 mm

Gap traversal up to 15 mm

Temperature 5° - 40° C (41° - 104° F)

Humidity 0 - 95%, non-condensing

The PatrolBot is not intended for use in hazardous environments (explosive gas, water, dust, oil

mist). It has an IP rating of IP-42.

6.3 Power and Charging

The PatrolBot comes with two 12 VDC sealed lead-acid batteries wired in series. Batteries are

sealed and safe, including for shipment by air.

Battery recharging is managed by the robot. With ample power, such as is provided by the

automated charging station or the power-supply accessory, all onboard systems function

continuously while the batteries recharge.

The interactive LCD, shows voltage for lead-acid batteries.

Run and recharge times will vary significantly depending on modes of operation (opportunity

charging, continuous motion, and so on) and accessory power consumption The typical run-to-

recharge ratio for lead-acid batteries is about 1:1.

Recharging the Batteries

During autonomous operation of PatrolBot, software using ARIA and/or ARNL may be used to

send the robot automatically to its automated charging station and dock.

Alternatively, to manually recharge its batteries, attach the accessory power supply at the

EXTERNAL CHARGER port or position the robot on its automated charging station and

manually engage the recharging system with the button on the top of the dock.

Page 31: Research PatrolBot User's Guideplascencia/patrolbot/Research_PatrolBot_3rd_gen_… · MobileEyes MobileEyes is a graphical application for remote visualization, teleoperation, and

Chapter 6: Operation

Adept MobileRobots Research PatrolBot User’s Guide, Rev. A

Page 27 of 96

You should maintain your PatrolBot’s batteries in a charged state above 22.7 VDC.

Recharge the batteries when they fall below 24, even though the robot may continue

to operate below that. The LCD will flash a warning when the voltage falls below 24

VDC. The system will be automatically shut off if the voltage falls below a critical level to avoid

deep-discharge damage. Adept recommends that you fully recharge the batteries at least once

every two to three days.

Automated Charging Station

The automated charging station (also called a “dock” or “docking station”) is both a manual

and an automated means for recharging your PatrolBot batteries.

To manually operate the automated charging station, push the PatrolBot (PWR OFF or engage

E-STOP) so that the robot slides onto the charge plates under the station’s contact shield. To

engage the charger, press and hold down the station’s yellow manual-charge button on top of

the unit. This applies power to the station’s charge plates. Release the manual charge button

after three seconds. If the PatrolBot’s onboard charging system gets power from the plates, it

activates an electromagnet, which maintains the station’s power supply to the robot. If the

robot does not activate its electromagnet, the charge station will shut off power. Reposition the

robot if the yellow charging-indicator LED does not stay lit, and retry.

Powering ON or OFF the robot, or connecting and disconnecting the robot with network and

onboard clients will not disturb the charging state. (Moving the robot will.) The station supplies

ample power for all onboard systems while charging its batteries, so you can continue

operating the PatrolBot, other than driving it, while charging.

To implement fully autonomous recharging, use the ARIA or ARNL software development kit.

Refer to the ARNL Reference Manual for information on using its docking modes to

autonomously navigate to and enter the dock.

PWR ON and PWR OFF

PWR ON and PWR OFF pushbuttons switch main power to the robot's onboard systems via

relays on the ESRB. Also on the ESRB, a relay provides motor-power switching that ensures

removal of power from the motors in an emergency.

PWR OFF removes power from all systems immediately except the charging hardware circuits.

The PWR ON pushbutton is also used to enable motor power after an E-Stop.

Power Distribution

A Power Distribution Board (PDB) provides conditioned 5, 12, and 24 VDC, and raw (battery)

20 - 30 VDC power to the robot’s and accessory electronics, including the onboard computer

and Laser Range Finder (LRF), all under software-switched control by the μARCS firmware.

To specify which accessories are powered on by default at startup, or to assign AUX power to

your own accessories, modify their related power flash parameters on the microcontroller. You

can also control power from a client connected with the μARCS microcontroller.

Page 32: Research PatrolBot User's Guideplascencia/patrolbot/Research_PatrolBot_3rd_gen_… · MobileEyes MobileEyes is a graphical application for remote visualization, teleoperation, and

Chapter 6: Operation

Adept MobileRobots Research PatrolBot User’s Guide, Rev. A

Page 28 of 96

6.4 Indicators and Manual Controls

Interactive LCD

Between the user wells is the interactive LCD. It is your window to the μARCS microcontroller.

Besides providing status messages, its top line has several indicators of systems-related states.

A spinning line segment in the middle indicates that the microcontroller is active. The robot’s

battery voltage or SOC appears on the right side of the display and flashes when the charge or

voltage is low. Also, power indicator characters appear when microcontroller-mediated power

is switched ON for the onboard computer (‘C’), LRF (‘L’), auxiliary 5 (‘<’), 12 (‘*’) and 24 (‘>’)

Volt ports.

An animated icon appears in the upper-left corner of the display when the drive motors are

engaged, such as when the robot is driving autonomously or being driven with a joystick. The

icon’s wheels appear to spin when the robot moves, in addition to the flashing blue-LED drive-

lamp indicators just below the top plate of the robot. An ‘S’ character replaces one or both

wheel characters depending on which side is stalled. Similarly, a ‘B’ indicates a bumper-related

stall (left is front), if the BumpStall behavior is enabled in flash (it is enabled by default).

An ‘E’ character appears and flashes when the robot’s E-Stop is engaged. And, finally, a ‘G’

character appears and flashes if the integrated gyro is disabled for some reason.

Symbol Meaning

Power C onboard computer power ON

L LRF power ON

< 5 VDC ON

* 12 VDC ON

> 24 VDC ON

Errors S Wheel(s) stalled

B Bumper(s) activated

E (flashing) E-Stop engaged

G (flashing) Gyro disabled

The Scroll and Select rocker switches located on each side of the provide a means for you to

check on additional systems status and to change some states manually. Press Scroll up or

down to scroll through the status messages and, if available, options to change their states.

Press the Select switch either up or down to change the system state, when given an option.

The display automatically reverts after five seconds of inactivity.

Some options only appear if the related flash parameter is set. For example, if you don’t assign

an option for a device on the auxiliary 5 V port, then the option won’t appear in the LCD

interactive display sequence.

E-Stop

When pressed, the red latching pushbutton at the rear of the robot immediately removes power

from the robot’s motors.

Page 33: Research PatrolBot User's Guideplascencia/patrolbot/Research_PatrolBot_3rd_gen_… · MobileEyes MobileEyes is a graphical application for remote visualization, teleoperation, and

Chapter 6: Operation

Adept MobileRobots Research PatrolBot User’s Guide, Rev. A

Page 29 of 96

To reset E-Stop:

1. Twist the E-Stop button until it pops up. Ensure both buttons have been released in

this way.

2. Then press the PWR ON button inside the right user well to re-enable power to the

motors.

Drive Lamps

Blue LEDs underneath the top section of the PatrolBot glow and flash just before the robot

begins to move and while it is in motion.

Joystick

Press and hold the green GO button to drive with the joystick.

Figure 6-2. Joystick GO Button

Use the joystick to drive the robot manually. The Joystick connection port is in the right power-

I/O bay. Hold down the GO button to drive. The cart icon appears on the LCD, if connected,

when driving.

NOTE: The Joystick handle should be facing you, not away from you.

Push the handle forward or back to make the robot move in that direction. Push the handle to

the side to make the robot rotate in that direction. Diagonal positions of the handle drive the

robot in an arc.

The PatrolBot slows to a stop when you release the GO button. To stop more quickly, continue

to hold the GO button down and pull or push the joystick handle to its limit in the opposite

direction of the robot’s travel.

The joystick’s GOAL button may be used by client software for any purpose. (When scanning

an environment with ARNL to make a map, it is used to record locations for goals in the map.)

Software Joystick Control

ARIA is able to request software joystick control mode. In this mode, the PatrolBot sends

joystick data to the software instead of directly driving the robot. Your software may use this

Page 34: Research PatrolBot User's Guideplascencia/patrolbot/Research_PatrolBot_3rd_gen_… · MobileEyes MobileEyes is a graphical application for remote visualization, teleoperation, and

Chapter 6: Operation

Adept MobileRobots Research PatrolBot User’s Guide, Rev. A

Page 30 of 96

joystick data for any purpose, or apply ARIA’s limiter actions to perform guarded control of

the robot.

JoyDrive Only Mode

The robot can also start up in a special mode: JoyDrive Only. This mode allows the operator to

have full control of the robot. This is useful for maintenance, or for quickly moving the robot

from one location to another. To start JoyDrive Only mode, press and hold the green GO button

while powering on the system.

WARNING: You are in full control when driving in JoyDrive Only or Unsafe

Mode.

Figure 6-3. The LCD Screen for JoyDrive Only Mode

Maintenance Serial Port

The 9-pin DSUB serial connector inside the left user well is for external access to the

microcontroller, typically for μARCS flash maintenance. The port is shared, as are its functions,

by the onboard computer’s /dev/ttyS0 (COM1) connection with the microcontroller’s internal

HOST serial port. Use a common, pass-through serial cable from your PC to the robot's serial

connector.

Page 35: Research PatrolBot User's Guideplascencia/patrolbot/Research_PatrolBot_3rd_gen_… · MobileEyes MobileEyes is a graphical application for remote visualization, teleoperation, and

Chapter 6: Operation

Adept MobileRobots Research PatrolBot User’s Guide, Rev. A

Page 31 of 96

6.5 Onboard single-board computer (SBC)

An industrial single-board computer (SBC) is mounted internally to the robot. Either Debian

Linux or Windows Embedded have been preinstalled by MobileRobots, along with all

MobileRobots and accessory development libraries and required computer device drivers. The

computer’s COM1 RS-232 serial connection is used for software control of the robot.

Computer power is switched on and off via the interactive LCD screen (see Chapter 6, section

6.4). uARCS may also be configured to automatically turn computer power on at startup. See

chapter 9 for details on configuring uARCS parameters.

To access the computer for maintenance, you must remove the front of the robot. See Chapter

7, Section 7.4 for more information.

More technical information including a manual is available from the MobileRobots support

website: http://robots.mobilerobots.com/wiki/Onboard_Computers

Connectors

PS/2 keyboard and mouse connectors are available in the left I/O bay. Video monitor and USB

connectors are available in the right I/O bay. A USB hub may be used if more than one USB

connection is required. A connector for the primary ETH 0 ethernet interface is the left user

well. An additional connection for the secondary ETH 1 interface is in the right power I/O bay.

COM2 and COM4 RS-232 serial ports are available in the left I/O bay. (COM3 is used for

communication with the laser rangefinder.)

Logging In

The onboard computer operating system may be accessed by attaching keyboard, monitor and

mouse, or by remote connection over the network. If the onboard computer is running Linux,

several startup options are provided. The default option is a text-only mode. The X-Windows

graphical environment may be started from the text-only mode by running startx.

If the onboard computer is running Linux, you can log in as guest (normal unprivileged user)

or root (privileged administrative account). The default passwords are mobilerobots. Please

change these passwords. Passwords are changed in Linux using the passwd command. New

users can be added using the adduser command or the “Users and Groups” utility in the

“Administration” section of the “System” menu.

If the onboard computer is running Linux, a remote login connection can be made using ssh

(Secure Shell). Files may be copied using sftp (Secure FTP) or scp (Secure Copy).

If the onboard computer is running Windows, a remote connection can be made using Remote

Desktop.

Networking

Networking is preconfigured for a Class-C network (netmask for all ports 255.255.255.0).

Ethernet port ETH 0 is set to IP address 10.0.125.32. The wireless interface comes set with IP

10.0.126.32 with an access-point based (“managed”) network SSID of “Wireless Network”,

unsecured.

Page 36: Research PatrolBot User's Guideplascencia/patrolbot/Research_PatrolBot_3rd_gen_… · MobileEyes MobileEyes is a graphical application for remote visualization, teleoperation, and

Chapter 6: Operation

Adept MobileRobots Research PatrolBot User’s Guide, Rev. A

Page 32 of 96

Please consult with your network systems administrator for the appropriate settings for these

network interfaces.

More information about changing operating system networking settings is available from the

MobileRobots support website:

http://robots.mobilerobots.com/wiki/Onboard_Computer_Network_Configuration

6.6 Sonar

The PatrolBot’s sonar are for obstacle sensing while backing up. The maximum possible range

is up to 5 m (16 ft.), though the typical accurate range is only up to 3 m (10 ft.).

Details of sonar operation can be changed using uARCScf (see chapter 9) via the RearSonar

parameter. (FrontSonar is not used on PatrolBot).

6.7 Laser Range Finder

The onboard SICK LMS-200 Laser Range Finder (LRF) is a very precise scanning sensor. The

LRF normally provides 181 readings in a 180 degree field of view, with an accuracy of ±18 mm

out to a typical maximum range of 16 m (52.5 ft.). Various laser operating parameters may be

changed during use with ARIA. The LRF operates in a single plane, positioned at about 30 cm

(12 in.) above the floor. It is mounted in the center of the robot.

NOTE: On Research PatrolBot, laser power is additionally controlled by serial

port state; the laser will automatically switch off if software closes its serial

port connection to the laser. (This forces configuration reset of the laser

between uses, and conserves battery power when no software is using it.)

In most environments, the sensor will provide highly-accurate data, but glass, mirrors, and

other highly-reflective objects cannot be reliably detected by the laser. Caution must be

exercised when operating the robot in areas that have these types of objects. If the robot will

need to drive in close proximity of these objects, then it is recommended to use a combination

of markings on the objects, such as tape or painted strips, and also use forbidden sectors in the

map, so that the robot knows to plan paths safely around these objects.

On optional URG-04LX laser rangefinder is also available mounted beneath the front bumpers

of the robot for additional ground-level sensing.

6.8 User Digital and Analog I/O

The digital and analog I/O ports in the top PatrolBot I/O wells are connected to the general

purpose digital and analog I/O interface on the onboard computer. The I/O states may be read

and set via ARIA’s ArVersalogicIO class, if the amrio Linux operating system kernel driver

module is loaded.

In PatrolBots shipped after January 2010, Linux has been configured to automatically load the

amrio driver module at boot. The amrio Linux kernel driver module may be downloaded at

http://robots.mobilerobots.com if you need to reinstall it.

Page 37: Research PatrolBot User's Guideplascencia/patrolbot/Research_PatrolBot_3rd_gen_… · MobileEyes MobileEyes is a graphical application for remote visualization, teleoperation, and

Chapter 6: Operation

Adept MobileRobots Research PatrolBot User’s Guide, Rev. A

Page 33 of 96

More information about the computer’s digital and analog I/O interface is available in the

Versalogic Cobra EBX-12 Manual, available for download from http://robots.mobilerobots.com.

Page 38: Research PatrolBot User's Guideplascencia/patrolbot/Research_PatrolBot_3rd_gen_… · MobileEyes MobileEyes is a graphical application for remote visualization, teleoperation, and

Table of Contents

Adept MobileRobots Research PatrolBot User’s Guide, Rev. A

Page 34 of 96

Page 39: Research PatrolBot User's Guideplascencia/patrolbot/Research_PatrolBot_3rd_gen_… · MobileEyes MobileEyes is a graphical application for remote visualization, teleoperation, and

Table of Contents

Adept MobileRobots Research PatrolBot User’s Guide, Rev. A

Page 35 of 96

Chapter 7: Maintenance This chapter covers periodic maintenance and user-serviceable parts replacement.

7.1 Periodic Maintenance Schedule

The following tables give a summary cleaning procedures and parts replacement for heavy duty

operation of the PatrolBot, which includes continuous driving operation of the robot every day, including

periodic use of the automatic charging (docking) station. For light duty, less frequent use, you may

perform this maintenance at reduced frequency or only as needed.

The drive motors and gearbox are sealed and permanently lubricated, so they do not require periodic

maintenance.

Cleaning and Inspection Schedule:

Table 7-1. Cleaning

Item Period, Heavy Duty Use

Period, Light Duty Use

Reference

Clean charging station contacts

3-6 months 12 months Charging Station Contacts on page 37

Clean axles and tires

As needed As needed Tires on page 36

Clean laser (LRF) lens -

wipe clean

6 months/ as needed

As needed Laser Range Finder on page 36

Clean fan grills/filters

3 months/as needed

3 months/as needed

Robot Fan Grills, Battery Vents on page 37

Clean battery

vent holes

3 months/as

needed

3 months/as

needed

Robot Fan Grills, Battery Vents on page 37

Parts Replacement Schedule:

Table 7-2. Parts Replacement

Item Period, Heavy Duty

Use

Period, Light Duty Use

Reference

Batteries 3 – 4 months As needed Batteries on page 37.

Fuses As needed As needed Fuse Summary on page 44

Charging As needed As needed Robot Charging Contacts on page 41

Page 40: Research PatrolBot User's Guideplascencia/patrolbot/Research_PatrolBot_3rd_gen_… · MobileEyes MobileEyes is a graphical application for remote visualization, teleoperation, and

Table of Contents

Adept MobileRobots Research PatrolBot User’s Guide, Rev. A

Page 36 of 96

Item Period,

Heavy Duty

Use

Period, Light

Duty Use

Reference

Contacts

Bumper Panel As needed As needed Replacing a Bumper Panel on page 49

Charging Station Contacts

As needed As needed Charging Station Contact Board on page 42

NOTE: The frequency of these procedures will depend on the particular system, its operating

environment, and amount of usage. Use the intervals in this section as guidelines and modify the

schedule as needed. The battery replacement estimate of 3-4 months assumes continuous daily

operation of the robot. Occasional usage will only require battery replacement as needed (when their

run time begins to be noticeably reduced.)

DANGER: Lockout and tagout power before servicing.

DANGER: Only skilled or instructed persons, as defined in Qualification of Personnel on

page 8, should perform the procedures and replacement of parts covered in this section.

The access covers on the robot and charging station are not interlocked – turn off and

disconnect power if covers are to be removed.

7.2 Cleaning

The frequency of the following cleaning procedures is dependent on the conditions in which the robot

operates. Operating in an environment with a lot of dust or dirt will require more frequent cleaning.

Tires

Occasionally clean the tires with a mild soapy solution. Remove any dirt or debris that may accumulate

on the tires, because these can degrade the robot’s performance.

This applies to both the drive wheels and to the casters.

Axles

Keep the axles free of carpet, hair, string, or anything that may wrap around and bind up the robot’s

drive.

Laser Range Finder

Occasionally clean the lens of the laser range finder. Use only alcohol-based, non-abrasive cleaners, and

wipe thoroughly.

Page 41: Research PatrolBot User's Guideplascencia/patrolbot/Research_PatrolBot_3rd_gen_… · MobileEyes MobileEyes is a graphical application for remote visualization, teleoperation, and

Table of Contents

Adept MobileRobots Research PatrolBot User’s Guide, Rev. A

Page 37 of 96

Robot Fan Grills, Battery Vents

Fans grills must be kept clear. This is best done by blowing compressed air directly behind the bumpers.

The compressed air should be blown down the top of the grills, toward the bottom of the robot.

On the rear bumper panels, fans are located behind the two panels that do not have foam at their top

edges.

The vent holes on the bottom of the battery compartment should be kept clear. Refer to Figure 7-2.

Charging Station Fan Filters

There are two fans on the charging station. The cover for each is held in place with two tabs. Pull up on

the tabs, and the square grill will come off. The foam filter is immediately under the grill. You can use

either compressed air to blow the foam filters clean, or you can wash them in soap and water. If you

choose to wash them, ensure that they are completely dry before reinstalling.

Charging Station Contacts

The two charging station contacts occasionally need to be cleaned. The suggested interval is 3 – 6 months,

depending on frequency of charging.

WARNING: Unplug power from the charging station before starting.

1. Slide the contact shield of the charging station back, to expose the contact board.

2. Clean the contacts with denatured alcohol. The contacts will be shiny when clean.

7.3 Replacing Periodic Parts

There is a spare parts list at the end of this chapter.

Batteries

Lead-acid Battery Packs

Lead-acid batteries last longest when kept fully-charged. Severe discharge is harmful to the batteries. Do

not operate the robot if the combined voltage falls below 23 volts. (The robot is programmed to shut

down at 22.7 volts). Adept recommends battery replacement after approximately 500 charge cycles,

which is typically 3 months of continuous all-day full-time use.

Keep your robot on the charging station when it is not in use.

Page 42: Research PatrolBot User's Guideplascencia/patrolbot/Research_PatrolBot_3rd_gen_… · MobileEyes MobileEyes is a graphical application for remote visualization, teleoperation, and

Table of Contents

Adept MobileRobots Research PatrolBot User’s Guide, Rev. A

Page 38 of 96

Figure 7-2. Bottom of Base, showing Battery Pack Cover

Time to Perform Procedure

10 minutes

Frequency of Procedure

Lead-acid battery: 500 cycles (approximately 3 months of all-day continuous full-time use)

Dispose of the battery according to all local and national environmental regulations regarding

electronic components.

DANGER: Follow appropriate ESD (electro-static discharge) procedures during the

removal/replacement phases.

1. Turn off the robot.

2. Tip the robot onto its front bumper, exposing the battery compartment cover.

3. Remove the six Phillips-head screws with a #2 Phillips screwdriver. Refer to Figure 7-2.

4. Carefully slide the battery pack out of the body.

The battery pack is attached to the battery cover, so the cover will not come off by itself.

5. Disconnect the power and temperature-sensor cables from the old battery pack.

6. Remove the old battery pack assembly.

7. Attach the power and temperature-sensor connectors of the new battery.

8. Lift the new battery pack into the robot body and carefully slide it in.

9. Secure the assembly with the accompanying screws.

The battery pack may need to be maneuvered past the bolts inside the battery compartment. It will line

up best if you start the two lower screws first.

Page 43: Research PatrolBot User's Guideplascencia/patrolbot/Research_PatrolBot_3rd_gen_… · MobileEyes MobileEyes is a graphical application for remote visualization, teleoperation, and

Table of Contents

Adept MobileRobots Research PatrolBot User’s Guide, Rev. A

Page 39 of 96

Figure 7-3. Removing the Battery Pack and Cover

7.4 Replacing Non-Periodic Parts

The following parts are replaced on an as-needed basis.

There is a spare parts table at the end of this chapter.

Removing Robot Front Cover

Removing the front cover provides access to the optional onboard computer, and fuses for all 5 V power

(micro-controller and I/O). It also gives you access to the individual front panels, should they need to be

replaced.

Support the chassis such that you have enough room under it to remove the front cover while the robot

remains in an upright position.

One means of accomplishing this is with a support T consisting of a 13.5 in. 4x4 screwed to an 18 in. 2x4

with three 3 in. deck screws.

1. Remove the four socket-head cap screws from the bottom edge of the front cover, using a 3 mm

Allen wrench.

2. Pull the bottom edge of the front cover forward, away from the robot chassis.

3. With the bottom edge still pulled forward, lift the front cover straight up.

Support the front cover to protect the cables still connected.

Be careful around the onboard computer, which is now exposed.

4. Disconnect the fan power cable.

5. Disconnect the low obstacle detection power cable, if present.

6. Disconnect the low obstacle detection serial cable, if present.

7. Disconnect the bumper cable.

The front cover is removal is now complete.

On the left side of the chassis, there are two fuses for the onboard computer, and a third fuse for all 5 V

for the robot. This includes the microcontroller and I/O.

Page 44: Research PatrolBot User's Guideplascencia/patrolbot/Research_PatrolBot_3rd_gen_… · MobileEyes MobileEyes is a graphical application for remote visualization, teleoperation, and

Table of Contents

Adept MobileRobots Research PatrolBot User’s Guide, Rev. A

Page 40 of 96

Removing Robot Rear Cover

Removing the rear cover provides access to the micro-controller, the back of the power distribution bus

(PDB), main power relay bus (ESRB), both rear exhaust fans, and the gyroscope. It also gives you access

to the individual rear panels, should they need to be replaced.

Support the chassis such that you have enough room under it to remove the rear cover screws and the

battery cover screws, while the robot remains in an upright position.

One means of accomplishing this is with a support T consisting of a 13.5 in. 4x4 screwed to an 18 in. 2x4

with three 3 in. deck screws.

If you do not use a support T, you should support the battery pack with one M3 x 5 screw in the middle

top hole of the battery pack cover.

1. Remove the four M4 screws from the bottom edge of the rear cover, using a 3 mm Allen

wrench.

2. Remove the four outer (closest to the outside surface of the robot) #2 Phillips screws from the

battery cover.

3. Remove the cable cover, using a 2 mm Allen wrench. Refer to the following figure. Save the

screws for reassembly.

Figure 7-4. Unscrewing the Cable Cover

Push the cable cover in towards the center of the robot.

Slide the inner edge of the cable cover back, so it slides free. The inner edge of the cable

cover has a lip to keep it in place.

The rear cover of the robot in now held in place with a lip at the top edge.

4. Lift the rear cover at each side, and slide it back and off the chassis.

5. Hang the rear cover on the bottom edge of the chassis.

6. Remove the bumper wire connector from the micro-controller board (hemostats are useful for

this). This is on the left side of the robot.

7. Remove the fan cable from the ESRB PCB (right side of robot).

Page 45: Research PatrolBot User's Guideplascencia/patrolbot/Research_PatrolBot_3rd_gen_… · MobileEyes MobileEyes is a graphical application for remote visualization, teleoperation, and

Table of Contents

Adept MobileRobots Research PatrolBot User’s Guide, Rev. A

Page 41 of 96

Robot Charging Contacts

Time to Perform Procedure: 15 minutes

This procedure covers how to replace a charging contact on the robot. There are two charging contacts,

and their replacement procedure is the same.

1. Remove the three M4 screws holding in the contact. Use a 2.5 mm Allen wrench. Save the screws

for reassembly. Refer to the following figure.

Figure 7-5. Removing the Contact Screw

2. Slide the Allen wrench into the slot on the side of the contact facing the other contact. Pry the

contact down and out.

3. Work the wire and connection out of the robot body.

4. Carefully cut the heat shrink tubing off of the connection with small diagonal cutters.

Page 46: Research PatrolBot User's Guideplascencia/patrolbot/Research_PatrolBot_3rd_gen_… · MobileEyes MobileEyes is a graphical application for remote visualization, teleoperation, and

Table of Contents

Adept MobileRobots Research PatrolBot User’s Guide, Rev. A

Page 42 of 96

Figure 7-6. Cutting the Heatshrink Tubing

5. Pull the connection apart, being careful that the wire does not slip back into the robot body.

6. Connect the connector of the replacement contact. Ensure that the heatshrink tubing (which comes

as a part of the replacement contact), is over the wire.

7. Slide the heatshrink tubing over the connection.

8. Heat the heatshrink tubing with an electric heat gun. Take care that you don’t apply much heat to

the foam behind the bumper panels.

9. Tuck the connector and wire back into the robot body.

10. Secure the contact to the robot, using the three M4 screws that were removed when disassembling.

Charging Station Contact Board Replacement

Time to Perform Procedure: 15 minutes

This procedure covers how to replace the contact board on the charging station of an PatrolBot.

Removing Contact Board

WARNING: Unplug power from the charging station before starting.

1. Remove AC power from the charging station.

2. Slide back the contact shield, and use masking tape at one side to keep it retracted.

3. Unscrew the M3 x 8 mm screw from the divider that separates the two contacts.

Retain this screw for reassembly.

Page 47: Research PatrolBot User's Guideplascencia/patrolbot/Research_PatrolBot_3rd_gen_… · MobileEyes MobileEyes is a graphical application for remote visualization, teleoperation, and

Table of Contents

Adept MobileRobots Research PatrolBot User’s Guide, Rev. A

Page 43 of 96

Figure 7-7. Moving the Contact Divider

4. Swing the divider clear of the contact board. See the previous figure.

5. Remove the eight M3 x 6 mm screws that hold down the contact board.

Retain these screws for reassembly.

6. Lift the board out of the charging station and turn it upside-down.

7. Disconnect the power wire from the contact board.

8. Disconnect the Relay and Power connector (5-pin).

9. Disconnect the Fan connector (4-pin).

10. Disconnect the Switches and LEDs connector (8-pin).

11. Remove the ground wire.

Using a 2.5 mm Allen wrench and 7 mm box wrench or socket, remove the ground nut, bolt, and

washer.

Retain these parts for reassembly.

Installing Contact Board

1. Replace the ground wire, using a 2.5 mm Allen wrench and 7 mm box wrench or socket, to install

the ground nut, bolt, and washer.

Ensure that this wire comes through the center hole in the charging station.

2. Reconnect the Switches and LEDs 8-pin connector.

Ensure that this wire comes through the right-most hole in the station.

3. Reconnect the 5-pin Relay and Power connector.

Ensure that this wire comes through the left-most hole in the station.

4. Reconnect the 4-pin Fan connector.

Ensure that this wire comes through the left-most hole in the station.

Page 48: Research PatrolBot User's Guideplascencia/patrolbot/Research_PatrolBot_3rd_gen_… · MobileEyes MobileEyes is a graphical application for remote visualization, teleoperation, and

Table of Contents

Adept MobileRobots Research PatrolBot User’s Guide, Rev. A

Page 44 of 96

5. Reconnect the main power line.

Ensure that the red wire matches the connecting red wire, and that this wire comes through the

center hole in the station.

6. Reinstall the contact board, ensuring that wires are not pinched, and the center slide under the

board is clear of wires.

7. Reinstall the center divider, using the M3 x 8 mm screw that you removed earlier.

8. Reinstall the eight M3 x 6 mm screws, removed earlier, to hold down the contact board.

9. Remove the masking tape used to hold the contact shield back.

Testing Charging Station

1. Plug in the charging station’s AC power. The green power light should come on. If not, make sure

the charging station is turned on.

2. Press and hold the yellow button on the top of the charging station. The yellow light should come

on, and the station should make an audible click. The light will go out when you release this

button if no robot is attached.

3. Attach a robot to the charging station.

4. Press the yellow button. The yellow light should come on and stay on.

Fuse Summary

The following table lists the location, use, type, and rating of fuses on the PATROLBOT.

Protects Amps Location Fuse Type Number of

Fuses

Charging Station 8 (250 V) Above charging station power switch

Ceramic cylinder

2

onboard computer 8 (250 V) Behind front cover In-line 2

5 V (onboard computer, microcontroller, I/O)

7.5 Behind front cover Mini ATO 1

Left Drive Motor 7.5 R. side, battery

compartment

Mini ATO 2

Right Drive Motor 7.5 R. side, battery compartment

Mini ATO 2

E-Stop power through I/O port 7.5 R. side, battery compartment

Mini ATO 1

Charging circuit 10 R. side, battery

compartment

Mini ATO 1

12 V power (Laser, I/O)

7.5 Behind rear cover Mini ATO 1

24 V power 7.5 Behind rear cover Mini ATO 1

Lead-acid Battery Pack 30 Between batteries Mini ATO 1

Mini-ATO type fuses are commonly used in automobiles, and can be found at most hardware and auto-

supply stores.

Page 49: Research PatrolBot User's Guideplascencia/patrolbot/Research_PatrolBot_3rd_gen_… · MobileEyes MobileEyes is a graphical application for remote visualization, teleoperation, and

Table of Contents

Adept MobileRobots Research PatrolBot User’s Guide, Rev. A

Page 45 of 96

Charging Station Power Switch Fuse Replacement

Time to Perform Procedure: 10 minutes

These are the only fuses on the charging station. They are located just above the power switch.

Symptoms: When switched on, the green power light does not come on. (Verify that the unit is plugged

into AC power.)

WARNING: Unplug power from the charging station before starting.

Page 50: Research PatrolBot User's Guideplascencia/patrolbot/Research_PatrolBot_3rd_gen_… · MobileEyes MobileEyes is a graphical application for remote visualization, teleoperation, and

Table of Contents

Adept MobileRobots Research PatrolBot User’s Guide, Rev. A

Page 46 of 96

1. Use a small flat-bladed screwdriver to pry out the top edge of the black cover immediately above

the power switch.

The cover will flip down and open, revealing the red fuse holder. Refer to the following

illustration.

Figure 7-8. Opening the Charging Station Switch Cover

Page 51: Research PatrolBot User's Guideplascencia/patrolbot/Research_PatrolBot_3rd_gen_… · MobileEyes MobileEyes is a graphical application for remote visualization, teleoperation, and

Table of Contents

Adept MobileRobots Research PatrolBot User’s Guide, Rev. A

Page 47 of 96

2. Use a small flat-bladed screwdriver to pry out the red fuse holder.

There are two fuses in the fuse holder – one on each side.

Figure 7-9. Removing the Charging Station Fuse Holder

3. Remove and replace the faulty fuse.

A good fuse will have a resistance of < 1 Ohm. If the resistance across the two ends of the fuse if

higher than this, replace it.

Note the location of the fuses in the fuse holder. They do not span both clips, as might be expected.

When installed, the fuses need to be as far towards the center of the charging station as possible.

Refer to the following illustration.

Figure 7-10. Fuse in Fuse Holder

Page 52: Research PatrolBot User's Guideplascencia/patrolbot/Research_PatrolBot_3rd_gen_… · MobileEyes MobileEyes is a graphical application for remote visualization, teleoperation, and

Table of Contents

Adept MobileRobots Research PatrolBot User’s Guide, Rev. A

Page 48 of 96

4. Insert the fuse holder into the charging station chassis, above the power switch.

5. Snap the fuse cover back into place.

Fuses Behind Front Cover

Time to Perform Procedure: 10 minutes

In the cutout on the left side of the chassis, behind the front cover, there are two fuses for the onboard

computer and another fuse for all 5 V power to the robot, which includes power for the onboard

computer, microcontroller, and I/O.

The two onboard computer fuses are in-line, on wires in fuse cases. The 5 V fuse is board-mounted.

To access these fuses:

1. Remove the Front Cover.

2. For the onboard computer fuses, open the fuse shell, and remove the fuse. For the 5 V fuse, remove

the fuse from the PC board.

3. Replace the fuse with a new fuse.

4. Close the fuse shell (for the onboard computer fuses).

5. Reinstall the Front Cover.

Fuses Behind Rear Cover

Time to Perform Procedure: 10 minutes

On the right side of the robot, to the right of the ESRB board, are the 12 and 24 V fuses. These protect any

regulated power, including power to the laser and I/O power.

To access these fuses:

1. Remove the Rear Cover.

2. Remove the fuse from the board.

The fuse puller in the battery compartment can be accessed from the top after the rear cover is

removed.

3. Replace the fuse with a new fuse.

4. Reinstall the Rear Cover.

Fuses in Battery Compartment

Time to Perform Procedure: 10 minutes

A fuse puller is mounted in the left rear of the battery compartment.

Inside the rear-most cavity on the right side of the compartment are six fuses.

The top four are 7.5 A mini ATO fuses. Two protect each drive motor.

The last fuse in that compartment is also a 7.5 A mini ATO fuse. It protects the E-Stop power that is

provided through the I/O port.

For lead-acid batteries only: the other cavity on the right side of the compartment holds a 10 A

mini ATO, which protects the charging circuit.

To replace any of these fuses:

Page 53: Research PatrolBot User's Guideplascencia/patrolbot/Research_PatrolBot_3rd_gen_… · MobileEyes MobileEyes is a graphical application for remote visualization, teleoperation, and

Table of Contents

Adept MobileRobots Research PatrolBot User’s Guide, Rev. A

Page 49 of 96

1. Remove the battery pack. See Batteries on page 37.

2. Replace any burned-out fuses. See Fuse Summary on page 44

3. Re-install the battery pack. See Batteries.

Fuse on Battery

Time to Perform Procedure: 10 minutes

For lead-acid batteries, the wire between the two batteries contains a 30 Amp ATO fuse.

Replacing a Bumper Panel

Time to Perform Procedure: 15 minutes

Bumper panels can occasionally become dented. If the dent is deep enough, it can keep the bumper panel

switch in a depressed state. At this point, you must replace the panel.

To verify that the panel needs replacement, press on the panel. You should be able to hear the switch

actuate. If the switch doesn’t actuate, replace the panel.

1. Remove the front or back cover.

2. Unscrew the four M3 x 6 mm screws in the damaged panel, using a 2 mm Allen wrench.

3. Lift off the panel.

4. Reach under the cover, and press the panel support frame into position.

Studs in the two outer rear bumper panels are not attached to a frame, so they have to be pressed

through the panel individually.

The four internally-threaded studs should be sticking through the cover. Refer to the following

figure.

Figure 7-12. Bumper Panel Removed

5. Place the new bumper panel over the studs, and attach it with four M3 screws. The circular foam

on the inside of the new bumper panel must go over the bumper panel switch, and the four studs

go through the holes in the foam.

Page 54: Research PatrolBot User's Guideplascencia/patrolbot/Research_PatrolBot_3rd_gen_… · MobileEyes MobileEyes is a graphical application for remote visualization, teleoperation, and

Table of Contents

Adept MobileRobots Research PatrolBot User’s Guide, Rev. A

Page 50 of 96

Table 7-3. Spare Parts List

Description Part Number

Sealed Lead-acid Battery Pack 10702-000

Bumper - Full

Bumper - Right

10290-000

Bumper - Left

10291-000

Joystick 10809-000 10292-000

Tire 10477-000

Caster 10287-000

Charging Station Filter 10167-000

Charging Station 10126-000

Charging Station Contact, Left Side (Black wire) - Negative 10601-000

Charging Station Contact, Right Side (Orange wire) - Positive 10602-000

Contact [email protected] to verify and order these or any other parts for your robot. Include

your robot’s serial number in your email.

Page 55: Research PatrolBot User's Guideplascencia/patrolbot/Research_PatrolBot_3rd_gen_… · MobileEyes MobileEyes is a graphical application for remote visualization, teleoperation, and

Chapter 8: Technical Specifications

Adept MobileRobots Research PatrolBot User’s Guide, Rev. A

Page 51 of 96

Chapter 8: Technical Specifications

8.1 Dimension Drawings

Figure 8-1. PatrolBot Top and Side Dimensions

Page 56: Research PatrolBot User's Guideplascencia/patrolbot/Research_PatrolBot_3rd_gen_… · MobileEyes MobileEyes is a graphical application for remote visualization, teleoperation, and

Chapter 8: Technical Specifications

Adept MobileRobots Research PatrolBot User’s Guide, Rev. A

Page 52 of 96

See also Maintenance, for a parts-location figure.

Figure 8-2. Charging Station Dimensions

Page 57: Research PatrolBot User's Guideplascencia/patrolbot/Research_PatrolBot_3rd_gen_… · MobileEyes MobileEyes is a graphical application for remote visualization, teleoperation, and

Chapter 8: Technical Specifications

Adept MobileRobots Research PatrolBot User’s Guide, Rev. A

Page 53 of 96

Figure 8-3. Charging Station Details

Refer to Connectivity on page 17 for drawings of the I/O and Power Bay connections.

8.2 Robot Specifications

Description Specification

Physical

Length 589 mm (23.2 in.)

Width 483 mm (19.0 in.)

Height (body) 378 mm (14.9 in.)

Body clearance 51 mm (2.0 in.)

Weight 45 kg (99 lb.) with lead-acid batteries

Payload – level surface 40 kg (88 lb.)

Construction/Rating

Body Aluminum

Chassis 1.6 mm (0.06 in.) aluminum

Assembly Allen hex screws (metric)

IP Rating IP-42

Page 58: Research PatrolBot User's Guideplascencia/patrolbot/Research_PatrolBot_3rd_gen_… · MobileEyes MobileEyes is a graphical application for remote visualization, teleoperation, and

Chapter 8: Technical Specifications

Adept MobileRobots Research PatrolBot User’s Guide, Rev. A

Page 54 of 96

Description Specification

Batteries

Battery 2x12 V lead-

acid

Run time 1-3 hours, approx. 13.6 kg (30 lbs.)

Recharge ratio 1:1

Performance

Drive wheels 2 grey non-marking foam-filled rubber, with 4 casters

Wheel diameter 200 x 50 mm (7.9 in. nominal)

Steering Differential

Gear ratio 28.9:1

Pushing force 22 kg (48.5 lb.)

Swing radius 290 mm (11.4 in.)

Turn radius 0 mm

Translate speed max 1800 mm/sec (67 in./sec)

Rotational speed max 300 degrees/sec

Traversable step max 15 mm (0.6 in.)

Traversable gap max 15 mm (0.6 in.)

Climb grade max 20% up to 10 kg (22 lb.) - requires 50 cm (19.7 in.)

transition area

12% up to 25 kg (55 lb.)

Traversable terrain All wheelchair accessible

Sensors

Laser Range Finder 1 at front of robot

Sonar 4 at rear of robot

Position encoders 2 x 1024 quadrature (one each wheel)

Analog gyroscope 320 degree/sec max rotation

Microcontroller

firmware

Adept µARCS

Description Specification

Controls, Ports and Indicators

Motion LEDs flash when in motion

Maintenance Serial and Ethernet ports for external connection with

microcontroller. Ethernet port wired RJ-45 (cross-over)

Applications Ethernet port for applications; wired RJ-45 (cross-over)

Single Board Computer

Software

Debian Linux or Windows Embedded; Pioneer Software

Development Kit including ARIA and ARNL libraries

Communications 1 802.11 a/b/g/Auto wireless

RS-232 2

Page 59: Research PatrolBot User's Guideplascencia/patrolbot/Research_PatrolBot_3rd_gen_… · MobileEyes MobileEyes is a graphical application for remote visualization, teleoperation, and

Chapter 8: Technical Specifications

Adept MobileRobots Research PatrolBot User’s Guide, Rev. A

Page 55 of 96

Description Specification

Analog 6 x 10-bit @ 0-5 VDC input (0-1024 data)

Digital1

8 digital input (normally high)

8 output (24 mA @ 5 VDC; normally OFF)

Aux. bumpers 8 digital input (normally high)

The following controls apply only to the Closed Architecture variant

Interactive LCD 4 lines x 20 characters per line status display

SCROLL Rocker switch

SELECT Rocker switch

Power PWR ON green pushbutton

PWR OFF red pushbutton

ESTOP Lock-down pushbutton (twist to release)

The following controls apply only to the Open Architecture variant

ESTOP port Two-pin port for user-supplied E-Stop

LCD port Port for user-supplied or optional LCD

Power Control port (ON/OFF)

Port for supplied ON/OFF cable/buttons

Power Control cable Cable with ON and OFF buttons

1Inverse logic: 0 V = logical TRUE (ON); 5 V = logical FALSE (OFF)

Power port specifications are given in Chapter 5: Connectivity.

Page 60: Research PatrolBot User's Guideplascencia/patrolbot/Research_PatrolBot_3rd_gen_… · MobileEyes MobileEyes is a graphical application for remote visualization, teleoperation, and

Adept MobileRobots Research PatrolBot User’s Guide, Rev. A

Page 56 of 96

Page 61: Research PatrolBot User's Guideplascencia/patrolbot/Research_PatrolBot_3rd_gen_… · MobileEyes MobileEyes is a graphical application for remote visualization, teleoperation, and

Chapter 9: Robot Programming and Configuration

Adept MobileRobots Research PatrolBot User’s Guide, Rev. A

Page 57 of 96

Chapter 9: Robot Programming and

Configuration All MobileRobots platforms use a client-server architecture. The robot’s microcontroller with embedded

μARCS (“micro-ARCS”) firmware manages all the low-level details of the mobile robot’s systems

including implementing velocity control of the robot platform, operating the motors and receiving

encoder data, integrating encoder and gyro data to determine an estimate for robot position, firing the

sonar and receiving sonar data, managing power to all components, and more. µARCS unifies the robot

into a single system with one interface channel through which software on the onboard computer can

communicate and control the robot.

ARIA

Software communicates with µARCS via a simple packet-based protocol (described below) via an RS-232

serial connection to the robot’s onboard computer, or to a laptop mounted on the robot, or bridged over a

wireless network to an offboard computer.

To support development of software, MobileRobots provides a C++ development library called ARIA

which implements this protocol, provides interfaces to many accessory devices, and also includes many

useful tools for robotics and cross-platform programming. It is also possible to use ARIA in Python and

Java via wrapper libraries. ARIA installation packages can be found on the CD included with your robot,

preinstalled on the onboard computer and the latest version as well as all future updates can be

downloaded at http://robots.mobilerobots.com/wiki/ARIA. ARIA can be used on Linux with the

standard GNU C++ compiler and linker (g++), or on Windows with Microsoft Visual C++ (either Visual

Studio 2003, 2008 or 2010). ARIA is provided as open-source software, under the terms of the GNU

General Public License (GPL). Full reference documentation is included.

In addition to the ARIA library, MobileRobots provides additional development libraries, including the

ArNetworking framework for network programming over TCP and UDP, speech synthesis and speech

recognition libraries, and the ARNL intelligent navigation libraries. Useful applications for robot

development also include the MobileSim simulator, and the MobileEyes user interface application. This

software can be found on the CD provided with the robot, and at

http://robots.mobilerobots.com/wiki/Software.

ARIA automatically handles all communication with the robot and many accessory devices, including

but not limited to laser rangefinders, the robot’s built in sonar and bumper sensors, pan/tilt cameras and

pan/tilt units, GPS receivers, and more. To communicate with the robot, ARIA sends and receives

messages with the robot’s embedded firmware. The rest of this chapter describes this protocol in detail.

When using ARIA or other development software, however, you do not need to implement this protocol

directly (though some of the information included below regarding the behavior of uARCS, as well as

how to configure its parameters, will be useful to the ARIA programmer.)

Client-Server Communication Packet Protocol

All MobileRobots mobile robot platforms implement the same Pioneer protocol and are fully compatible.

All versions of firmware are backwards-compatible with previous versions.

Page 62: Research PatrolBot User's Guideplascencia/patrolbot/Research_PatrolBot_3rd_gen_… · MobileEyes MobileEyes is a graphical application for remote visualization, teleoperation, and

Chapter 9: Robot Programming and Configuration

Adept MobileRobots Research PatrolBot User’s Guide, Rev. A

Page 58 of 96

The protocol is a bidirectional byte stream, in which sequences of byte packets represent individual

commands (when sent from client to µARCS server), or sets of robot state information (when sent from

µARCS to the client; these packets are sometimes referred to as Server Information Packets, or SIPs).

Packets consist of five main elements: a two-byte header, a one-byte count of the number of subsequent

packet bytes, a one-byte command or packet type identifier followed by packet data, and finally a two-

byte checksum.

General Packet Format

Component Bytes Value Description

header 2 0xFA, 0xFB Packet header; same for client and server

byte count 1 Number of command/argument bytes plus Checksum’s two

bytes, but not including Byte Count itself or the header bytes.

Maximum of 249.

Packet type or

command

identifier

1 0 - 255 Packet type or command identifier (see below for lists).

data n Command argument data (if any) or SIP data (depends on

type of SIP)

checksum 2 Packet integrity checksum

Packet data is divided into one or more value fields. The meaning and sequence of fields are specific to

each packet or command type. Each field has a data type which determines the size of that field (in

bytes). Integer data values contained in a packet may be signed and unsigned, and are 16-bit (2-byte)

integers, least-significant byte first. Single-byte values are one 8-bit byte. Strings may be either length-

prefixed or NULL terminated (depending on packet type).

Packet Checksum

Calculate the client-server packet Checksum by successively adding data byte pairs (most-significant byte

first) to a running checksum (initially zero), disregarding sign and overflow. If there are an odd number

of data bytes, the last byte is XORed to the low-order byte of the checksum.

NOTE: The checksum integer is at the end of the packet, with its bytes in the reverse order of that used

for data; that is, b0 is the high byte and b1 is the low byte.

// packetBuf is a character buffer char[] containing one data packet

// read from the robot.

int i;

unsigned char n;

int c = 0;

i = 3;

n = packetBuf[2] - 2; // data length

while (n > 1) {

c += ((unsigned char)packetBuf[i]<<8) | (unsigned char)packetBuf[i+1];

c = c & 0xffff;

n -= 2;

i += 2;

}

if (n > 0)

c = c ^ (int)((unsigned char) packetBuf[i]);

Page 63: Research PatrolBot User's Guideplascencia/patrolbot/Research_PatrolBot_3rd_gen_… · MobileEyes MobileEyes is a graphical application for remote visualization, teleoperation, and

Chapter 9: Robot Programming and Configuration

Adept MobileRobots Research PatrolBot User’s Guide, Rev. A

Page 59 of 96

ARIA automatically verifies packet checksums when receiving and parsing robot packets from µARCS,

and automatically provides correct checksums with client commands sent to µARCS.

Server Information Packets

Once a client establishes a connection and sends the OPEN command, µARCS automatically and

periodically sends one or more Server Information Packets (SIPs) over the HOST serial port back to the

connected client. The default SIP period is 100ms (10Hz), but may be changed via the SIPcycle parameter

or client command. One type of SIP, the Standard SIP (also historically referred to as a “Motors Packet”),

is always sent after OPEN. The Standard SIP informs the client about a number of operating states and

readings, using format described in the table below.

In addition to the standard SIP, other types of information packets may be requested via client commands

to include accessory or additional data. These packets get sent immediately before or after the standard

SIP that µARCS sends to your client every SIPcycle milliseconds (typically set to 100). The standard SIP

has priority, it will always be sent every cycle.

Standard SIP contents

“byte” indicates a single byte value (usually unsigned). “int” indicates a signed 16-bit (2-byte) integer

value (LSB). “uint” indicates an unsigned 16-bit (2-byte) integer value (LSB).

Field Size Description

Packet Header 2 bytes Exactly 0xFA (250), 0xFB (251)

Packet Byte Count byte Number of packet bytes that follow, which includes 2 bytes for

checksum (does not include preceding header or this byte count)

Packet Type byte 0x32 when motors stopped or 0x33 when robot moving.

XPOS int Wheel-encoder and optional gyro integrated coordinates in

millimeters (DistConvFactor2 = 1.0).

YPOS int

THPOS int Orientation in angular units (AngleConvFactor2 = 0.001534 radians per

angular unit = 2π/4096).

L VEL int Wheel velocities in millimeters per second (VelConvFactor2 = 1.0)

R VEL int

BATTERY byte Battery charge in tenths of volts (e.g. 101 = 10.1 V) (see also

BATTERYX10 and STATEOFCHARGE fields below)

STALL AND

BUMPERS

uint Motor stall and bumper indicators:

Bit Condition if set (1)

0 Left wheel stalled

1-7 Bumper triggered

8 Right wheel stalled

9-15 Bumper triggered

unused int unused

2 ARIA stores conversion factors in robot parameter file researchPB.p and automatically applies the conversion when SIP is received

Page 64: Research PatrolBot User's Guideplascencia/patrolbot/Research_PatrolBot_3rd_gen_… · MobileEyes MobileEyes is a graphical application for remote visualization, teleoperation, and

Chapter 9: Robot Programming and Configuration

Adept MobileRobots Research PatrolBot User’s Guide, Rev. A

Page 60 of 96

FLAGS uint General status flags:

Bit Condition if set (1)

0 Motors enabled

1 Sonar array #1 enabled

2 Sonar array #2 enabled

3 Sonar array #3 enabled

4 Sonar array #4 enabled

5 Stop button pressed

6 E-stall engaged

7 (unused in PatrolBot)

8 (unused in PatrolBot)

9 Joystick button 1 is pressed

10 Recharging “power-good”

11-15 Reserved

unused byte unused

Sonar Readings

Count

byte If sonar is available and enabled, then this is the number of new sonar

readings included in this SIP. If sonar is unavailable or disabled, it

will be 0 and no reading data will follow.

Sonar Reading

Number

byte If Sonar Readings Count is 0, then this byte is omitted. Otherwise, it

indicates which sonar disc number 0-31 the range reading is from.

This allows a partial or out of order set of readings to be included in

each SIP.

Sonar Reading

Range

uint If Sonar Readings Count is 0, these readings are omitted. Otherwise,

sonar range values in millimeters (RangeConvFactor2 = 1.0) follow.

…Rest Of The Sonar Readings…

GRIP_STATE byte Pioneer gripper state (unused in PatrolBot)

ANPORT byte Selected Pioneer analog I/O Port (see ADSEL command) (unused in

PatrolBot)

ANALOG byte Pioneer analog input value (0-255=0-5 VDC) (unused in PatrolBot)

DIGIN byte Pioneer digital input (unused in PatrolBot)

DIGOUT byte Pioneer digital output (unused in PatrolBot)

BATTERYX10 int Actual battery voltage in 0.1 V (especially useful for battery voltages >

25.5)

CHARGESTATE byte Automated recharging state byte; -1 = unknown; 0=not charging;

1=bulk; 2=overcharge; 3=float.

ROTVEL int Current rotational velocity in degrees X 10 per sec.

FAULTFLAGS uint Fault flags:

Bit Condition if set (1)

0 PDB laser status read failure

1 high temp

2 general PDB failure

3 low battery

4 gyro fault

5 unused in PatrolBot

6 unused in PatrolBot

Page 65: Research PatrolBot User's Guideplascencia/patrolbot/Research_PatrolBot_3rd_gen_… · MobileEyes MobileEyes is a graphical application for remote visualization, teleoperation, and

Chapter 9: Robot Programming and Configuration

Adept MobileRobots Research PatrolBot User’s Guide, Rev. A

Page 61 of 96

7 encoder degraded warning

8 encoder failure

9 critical driving fault (encoder failure)

10-14 reserved

15 Jodrive safe mode indicator set

LATVEL int Not used.

TEMPERATURE byte Reading from internal temperature sensor, in deg. C, or -127 if

unavailable.

STATEOFCHARGE byte Amount of remaining battery charge, 0-100% (not applicable in

PatrolBot)

CHECKSUM 2 bytes checksum

Client Commands

Client commands are packets sent from client software to µARCS. The packet ID indicates the command,

and depending on the command, argument data may follow.

A command’s argument may be a two-byte (16-bit) integer, ordered as least-significant byte first (little

endian). The integer absolute value is provided in the packet; whether it should be interpreted as a

positive or negative number is indicated by the argument type byte (0x3B or 0x1B). The argument may

also be a string or buffer of up to a maximum of 200 bytes, prefaced by a length byte and may or may not

be NULL terminated. Some commands have other command-specific argument formats as well. How

exactly a command’s argument should be interpreted is documented with commands is specified in the

list of commands below.

The number of client commands it is possible to send per second depends on the client-server serial baud

rate, average number of data bytes per command, synchronicity of the communication link and so on.

μARCS’ command processor runs on a one millisecond interrupt cycle, but a particular command’s

response depends on the command. Typically, limit client commands to a maximum of one every 3-5

milliseconds or be prepared to recover from lost commands.

Command Packet Format Component Bytes Value Description

header 2 0xFA, 0xFB Packet header; same for client and server

byte count 1 Number of command/argument bytes plus Checksum’s

two bytes, but not including Byte Count itself or the

header bytes. Maximum of 249.

packet type or

command

identifier

1 0 - 255 Packet type or command identifier (see below for lists).

data type 1 0x3B (positive

integer),

0x1B (negative or

unsigned integer),

0x2B (string)

0x3B indicates that a 16-bit (2-byte) integer follows.

0x1B indicates that a 16-bit (2-byte) integer follows, whose

value should be negated

0x2B indicates that a length-prefixed string follows. The

length prefix is one byte.

data n Argument data

checksum 2 Packet integrity checksum

Page 66: Research PatrolBot User's Guideplascencia/patrolbot/Research_PatrolBot_3rd_gen_… · MobileEyes MobileEyes is a graphical application for remote visualization, teleoperation, and

Chapter 9: Robot Programming and Configuration

Adept MobileRobots Research PatrolBot User’s Guide, Rev. A

Page 62 of 96

µARCS client command list

“byte” indicates a single byte value (usually unsigned). “int” indicates a signed 16-bit (2-byte) integer

value (LSB). “uint” indicates an unsigned 16-bit (2-byte) integer value (LSB).

Command # Args Description

Before Client Connection:

SYNC0 0 none Start connection. Send in sequence. ARCOS echoes

SYNC1 1 none synchronization commands back to client, and

SYNC2 2 none robot-specific auto-synchronization after SYNC2.

After Established Connection:

PULSE 0 none Reset server watchdog timeout.

OPEN 1 none Start sending data.

CLOSE 2 none Stop sending data and close client connection.

POLLING 3 str Change Sonar polling sequence.

ENABLE 4 int 1=enable; 0=disable the motors.

SETA 5 int If positive, set acceleration used for VEL, MOVE and VEL2 commands.

If negative, set deceleration used for VEL, MOVE and VEL2 commands.

Argument is desired acceleration or deceleration in mm/sec2.

SETV 6 int Set maximum/move translation velocity limit; mm/sec.

SETO 7 none Reset local position estimate to 0,0,0..

MOVE 8 int Translate (+) forward or (-) back mm distance at SETV speed

ROTATE 9 int Rotate (+) counter- or (-) clockwise degrees/sec at SETRV limited speed.

Deprecated. See RVEL.

SETRV 10 int Sets maximum/turn rotation velocity; degrees/sec.

VEL 11 int Translate at mm/sec forward (+) or backward (-) (SETV limited speed).

HEAD 12 int Turn at SETRV speed to absolute heading; ±degrees (+ = counterclockwise).

DHEAD 13 int Turn at SETRV speed relative to current heading; (+) counter- or (–) clockwise

degrees.

SAY 15 str Not available on PatrolBot

JOYREQUEST 17 int Request one or continuous stream (>1) or stop (0) joystick packets

CONFIG 18 none Request a configuration SIP.

ENCODER 19 int Request one, a continuous stream (>1), or stop (0) encoder SIPs.

RVEL 21 int Rotate robot at (+) counter- or (–) clockwise; degrees/sec (SETRV limit). (Replaces

ROTATE; commands are equivalent.)

DCHEAD 22 int Adjust heading relative to last setpoint; ± degrees (+ = ccw)

SETRA 23 int If positive, set rotation acceleration used for RVEL, ROTATE, HEAD, DHEAD and

DCHEAD commands, in degrees/sec2

If negative, set rotation deceleration used for RVEL, ROTATE, HEAD, DHEAD and

DCHEAD commands, in degrees/sec2

SONAR 28 int 1=enable, 0=disable all the sonar; otherwise, use bits 1-3 to specify an individual array

number 1-4.

Page 67: Research PatrolBot User's Guideplascencia/patrolbot/Research_PatrolBot_3rd_gen_… · MobileEyes MobileEyes is a graphical application for remote visualization, teleoperation, and

Chapter 9: Robot Programming and Configuration

Adept MobileRobots Research PatrolBot User’s Guide, Rev. A

Page 63 of 96

STOP 29 none Stop the robot (0 velocities); motors remain enabled

DIGOUT 30 2 byte Set (1) or reset (0) Pioneer digital output ports. Bits 8-15 is a byte mask that selects, if

set (1), the output port(s) for change; Bits 0-7 set (1) or reset (0) the selected port(s).

Unused in PatrolBot.

SETPBIOPORT 31 2 byte Turn a PatrolBot PDB power port on or off. First byte indicates which port address,

second byte indicates state (1=on, 0=off). See Chapter 5 for locations of power output

connectors. PatrolBot only.

Address Function Device

0 Computer power 0 is computer power off, 1 is computer power on.

1 System kill 0 is normal, 1 to kill system.

4 5V #1 Floor (URG) laser

5 5V #2 motion lights enable/disable

6 5V #3

7 12V #1

8 12V #2 Cameras

9 12V #3 Audio Amplifier & Microphone

10 12V #4 Microphone Record Light

11 24V #1 Laser

13 24V #3

14 24V #4

15 Soft-triggered estop

VEL2 32 2 byte Set independent wheel velocities; bits 0-7 for right wheel, bits 8-15 for left wheel; in

20mm/sec increments.

GRIPPER 33 int Not available

ADSEL 35 int Selects ANPORT Pioneer analog I/O port number. (Not available in PatrolBot)

GRIPPERVAL 36 int Pioneer gripper request. Not available in PatrolBot.

GRIPREQUEST 37 int Pioneer gripper request. Not available in PatrolBot.

GYROCALCW 38 uint Set the clockwise rotation calibration value for the gyro.

GYROCALCCW 39 uint Set the counterclockwise rotation calibration value for the gyro.

IOREQUEST 40 int Request one (1), a continuous stream (>1), or stop (0) Pioneer IO packets. Not used

with PatrolBot.

TTY2 42 str Sends string argument to serial device connected to AUX1 serial port.

GETAUX 43 uint Request to retrieve 1-200 bytes from the AUX1 serial port; 0 flushes the buffer.

BUMPSTALL 44 int Stall robot if no (0), only front (1) while moving forward, only rear (2) while moving

backward, or either (3) bumpers contacted when robot moving in related direction.

TCM2 45 int TCM2 module commands; 0=module off, no readings; 1=compass only, readings in

standard SIP; 2=send one TCM2 packet; 3=send continuous (each cycle) TCM2

packets; 4=user calibration; 5=auto calibration; 6=stop auto-calibration, send one

packet, revert to mode 1; 7=soft reset.

JOYDRIVE 47 int 1=allow joystick drive from port while connected with a client; 0 (default) disallows.

SONARCYCLE 48 uint Change the sonar cycle time; in milliseconds.

HOSTBAUD 50 int Change the HOST serial port baud rate to 0=9600, 1=19200, 2=38400, 3=57600, or

4=115200.

Page 68: Research PatrolBot User's Guideplascencia/patrolbot/Research_PatrolBot_3rd_gen_… · MobileEyes MobileEyes is a graphical application for remote visualization, teleoperation, and

Chapter 9: Robot Programming and Configuration

Adept MobileRobots Research PatrolBot User’s Guide, Rev. A

Page 64 of 96

AUX1BAUD 51 int Change the AUX1 serial port baud rate (see HOSTBAUD).

AUX2BAUD 52 int Change the AUX2 serial port baud rate (see HOSTBAUD).

AUX3BAUD 53 int Change the AUX3 serial port baud rate (see HOSTBAUD).

E_STOP 55 none Emergency stop; very abrupt by overriding deceleration.

M_STALL 56 int 1=motor button off causes a stall, 0=does not.

GYROREQUEST 58 int If client-side (HasGyro 1), request one, a continuous stream (>1), or stop (0) Gyro

SIPs. If server-side (HasGyro 2), 0 disable or 1 to enable the gyro.

LCDWRITE 59 str Display a message on the LCD accessory: byte 0=starting column (1-19); byte

1=starting row (1-4); byte 2=1 if clear line contents first, otherwise 0; bytes 3- = up to

20 chars, NULL-terminated.

TTY4 60 str Send string argument out to device connected at AUX3 serial port.

GETAUX3 61 int Request to retrieve 1-200 bytes from the device connected at the AUX3 serial port; 0

flushes the buffer.

TTY3 66 str Send string argument out to device connected at AUX2 serial port.

GETAUX2 67 int Request to retrieve 1-200 bytes from the device connected at the AUX2 serial port; 0

flushes the buffer.

CHARGE 68 int 0=release; 1=deploy autocharge-docking mechanism.

ARM 70-80 int Pioneer arm commands. Not available in PatrolBot.

ROTKP 82 int Change working rotation Proportional PID value.

ROTKV 83 int Change working rotation Derivative PID value.

ROTKI 84 int Change working rotation Integral PID value.

TRANSKP 85 int Change working translation Proportional PID value.

TRANSKV 86 int Change working translation Derivative PID value.

TRANSKI 87 int Change working translation Integral PID value.

REVCOUNT 88 int Change working differential encoder count.

DRIFTFACTOR 89 int Change working drift factor.

SOUNDTOG 92 int 0=mute User Control piezo; 1 = enable. Unused in PatrolBot.

TICKSMM 93 int Change working encoder ticks per millimeter tire travel.

BATTEST 250 int Artificially set the battery voltage; argument in tens volts (100=10V); 0 to revert to real

voltage

DIGTEMPTEST 251 Int Artificially set the digital temperature; argument in degrees C; 0 to revert to real

temperature.

ANTEMPTEST 252 Int Artificially set the analog temperature; argument in degrees C; 0 to revert to real

temperature.

RESET 253 none Force reset of the microcontroller.

MAINTENANCE 255 none Engage microcontroller maintenance mode.

Page 69: Research PatrolBot User's Guideplascencia/patrolbot/Research_PatrolBot_3rd_gen_… · MobileEyes MobileEyes is a graphical application for remote visualization, teleoperation, and

Chapter 9: Robot Programming and Configuration

Adept MobileRobots Research PatrolBot User’s Guide, Rev. A

Page 65 of 96

Command Packet Errors

µARCS ignores a client command packet whose Byte Count exceeds 204 (total packet size of 207 bytes) or

has an erroneous Checksum. The client should similarly ignore erroneous SIPs.

Because of the real-time nature of client-server mobile-robotics interactions, we made a conscious

decision to provide an unacknowledged communication packet interface. Retransmitting server

information packets typically serves no useful purpose because old data is useless in maintaining

responsive robot behaviors.

Nonetheless, the client-server interface provides a simple means for dealing with ignored command

packets: Most of the client commands alter state variables in the server. By examining those values in

respective SIPs, client software may detect ignored commands and re-issue them until achieving the

correct state.

Establishing the connection

When first started or reset, µARCS is in a special wait state, listening for communication packets to

establish a client-server connection. To establish a connection, the client application must send a series of

three synchronization packets containing the SYNC0, SYNC1 and SYNC2, waiting for response from

µARCS after each packet, before sending the next. µARCS echoes each SYNC packet verbatim back to

the client. The client should listen for the returned packets and only issue the next synchronization

packet after it has received the appropriate echo response.

The response from µARCS to the last synchronization packet, SYNC2, also includes robot identifying

information as three NULL-terminated character strings: robot name, robot class or type, and robot

subclass or subtype. You may set the name to any string using uARCScf (see next section). For the

Research PatrolBot, the class is always “Pioneer” and the subclass is always “researchPB”. Clients use

these identifying strings to configure their own operating parameters. ARIA, for instance, uses the

Subclass to identify and load PatrolBot’s “researchPB.p” parameter file found in the Aria/params

directory, followed by a robot parameter file corresponding to the robot name, if one exists.

Client

Software

SYNC0 [250, 251, 3, 0, 0, 0]

SYNC0 [250, 251, 3, 0, 0, 0]

SYNC1 [250, 251, 3, 1, 0, 1]

]0]

SYNC2 [250, 251, n, 2, name,

type, subtype, c]

SYNC2 [250, 251, 3, 2, 0, 2]

µARCS

Page 70: Research PatrolBot User's Guideplascencia/patrolbot/Research_PatrolBot_3rd_gen_… · MobileEyes MobileEyes is a graphical application for remote visualization, teleoperation, and

Chapter 9: Robot Programming and Configuration

Adept MobileRobots Research PatrolBot User’s Guide, Rev. A

Page 66 of 96

Opening the session—OPEN

Once you’ve established a connection with µARCS, your client should send the Open command #1 (250,

251, 3, 1, 0, 1, which causes µARCS to perform a few housekeeping functions, start its various processes,

such as the motor controllers, and begin transmitting information to the client.

Note that when first connected, your robot’s motors are disabled, regardless of their state when last

connected. To enable the motors after starting a connection, you must either do it manually via the

interactive LCD, or have your client send an Enable client command #4 with an integer argument of one.

(See Client Commands below).

Keeping the Beat—PULSE

A µARCS safety watchdog expects that, once connected, it receives at least one command packet from the

client program every WatchDog seconds, as defined in the robot’s FLASH configuration. (default is 2

seconds). Otherwise, it assumes the client-server connection is broken and stops the robot.

Some clients—ARIA-based ones, for instance—use the good practice of sending a PULSE client command

#0 (250, 251, 3, 0, 0, 0) just after OPEN. And if your client application will be otherwise distracted for

some time, have it periodically issue the PULSE command to let your robot server know that your client

is indeed alive and well. It has no other effect.

If the robot shuts down due to lack of communication with the client, it will revive upon receipt of a

client command and automatically accelerate to the last-specified speed and heading.

Closing the connection—CLOSE

To close the client-server connection, which automatically disables the motors and other server functions,

simply issue the CLOSE command #2. Most of the controller’s operating parameters return to their

configured default values upon disconnection with the client.

Robots in Motion

When your µARCS firmware receives a motion command, it accelerates or decelerates the robot

according to acceleration or deceleration parameters previously set by SETA (command #5, for

translation) and SETRA (command #23, for rotation) until the platform either achieves the requested

speed (for VEL and RVEL commands) or nears the requested movement distance (when performing

MOVE, HEAD and DHEAD commands). Rotation headings and translation setpoints are achieved by a

trapezoidal velocity function, which µARCS recomputes each time it receives a new motion command.

µARCS automatically limits velocities, acceleration and deceleration to client-modifiable maximum limits

(set via SETV, SETRV, SETA and SETRA) and ultimately by absolute “Top” constants. µARCS initializes

these limits upon startup or reset from its FLASH parameters.

Limits set via SETV, SERV, SETA commands and SETRA take effect on subsequent commands, not on the

current translation or rotation activity, and are reset when the client disconnects or uARCS is reset.

Page 71: Research PatrolBot User's Guideplascencia/patrolbot/Research_PatrolBot_3rd_gen_… · MobileEyes MobileEyes is a graphical application for remote visualization, teleoperation, and

Chapter 9: Robot Programming and Configuration

Adept MobileRobots Research PatrolBot User’s Guide, Rev. A

Page 67 of 96

v e l o c i t y

t i m e

m a x v e l o c i t y

a c c e l d e c e l

p o s i t i o n a c h i e v e d

s h o r t m o v e ,

m a x v e l o c i t y n o t

r e a c h e d

p o s i t i o n a c h i e v e d

s t a r t p o s i t i o n

The orientation commands Head (#12), DHEAD (#13) and DCHEAD (#22) turn the robot with respect to

its internal dead-reckoned angle to an absolute heading (0-359 degrees), relative to its immediate

heading, or relative to its current heading setpoint (achieved or last commanded heading), respectively.

In general, positive relative heading command arguments turn the robot in a counterclockwise direction.

However, the robot always turns in the direction that will achieve its heading most efficiently.

Accordingly, relative-heading arguments greater than 179 degrees automatically get reduced to 179 or

less degrees with a concomitant change in direction of rotation.

The STOP command is equivalent to requesting both translation and rotation velocities of 0; the robot

will decelerate to 0. The E-STOP command #55 overrides normal deceleration and abruptly stops your

PatrolBot in the shortest distance and time possible. Accordingly, the robot brakes to zero translational

and rotational velocities with very high deceleration and remains stopped until it receives a subsequent

translation or rotation velocity command from the client.

PID controls

µARCS uses a Proportional-Integral-Derivative (PID) control system to adjust the PWM pulse width at

the motor drivers to smooth the power to the motors. The motor-duty cycle is 50 microseconds (20 KHz);

pulse-width is proportional 0-500 (FLASH PwmMax) for 0-100% of the duty cycle. µARCS recalculates

and adjusts your robot’s trajectory and speed every five milliseconds based on feedback from the wheel

encoders.

The default PID values for translation and rotation and maximum PWM are stored as FLASH parameters

in your robot’s controller and may be changed. You also may temporarily update the PID values with the

µARCS client commands #84 through #87. On-the-fly changes persist until the client disconnects.

Translation, but not the rotation PID values apply during independent wheel-velocity mode.

The P-term Kp increases the overall gain of the system by amplifying the position error. Large gains will

have a tendency to overshoot the velocity goal; small gains will limit the overshoot but cause the system

to become sluggish. We’ve found that a fully loaded robot works best with a Kp setting of around 15 to

30, whereas a lightly loaded robot may work best with Kp in the range of 5 to 15.

The D-term Kv provides a PID gain factor that is proportional to the output velocity. It has the greatest

effect on system damping and minimizing oscillations within the drive system. The term usually is the

first to be adjusted if you encounter unsatisfactory drive response. Typically, we find Kv to work best in

the range of 3 to 10 for lightly to heavily loaded robots, respectively. If your robot starts to vibrate or

shutter, reduce Kv.

Page 72: Research PatrolBot User's Guideplascencia/patrolbot/Research_PatrolBot_3rd_gen_… · MobileEyes MobileEyes is a graphical application for remote visualization, teleoperation, and

Chapter 9: Robot Programming and Configuration

Adept MobileRobots Research PatrolBot User’s Guide, Rev. A

Page 68 of 96

Front

180°

-90° 270° +90°

X

Y

The I-Term Ki moderates any steady state errors thereby limiting velocity fluctuations during the course

of a move. At rest, your robot will seek to “zero out” any command position error. Too large of a Ki

factor will cause an excessive windup of the motor when the load changes, such as when climbing over a

bump or accelerating to a new speed. Consequently, we typically use a 0 value for PatrolBot’s Ki, but

consider a value from 1 to 5 for heavily loaded robots.

DriftFactor, RevCount and TicksMM

Three client commands let you change, albeit momentarily for the current client-server connection, those

values that affect encoder-based translation, rotation and drift in your robot. The DriftFactor is a signed

value in 1/8192 increments that gets added to or subtracted from the left wheel encoder to correct for tire

circumference differences and consequent translation and rotation drift. DriftFactor defaults to its

FLASH value on start up or reset and can be changed on-the-fly with the DriftFactor client command #89

with signed integer argument.

The RevCount parameter is the differential number of encoder ticks for a 180-degree rotation of the robot

and is used to compute and execute headings. Like DriftFactor and TicksMM, RevCount defaults to its

FLASH value on startup or reset and can be changed on-the-fly with the RevCount client command #88

and unsigned integer argument.

TicksMM is the number of encoder ticks per millimeter tire rotation for translation speed and distance

computations. The default FLASH value can be changed on-the-fly during a client connection session

with the TicksMM client command #93 and unsigned integer value.

Position integration

MobileRobots platforms track their position and orientation based on dead-reckoning from wheel motion

derived from encoder readings and from the integrated gyroscope accessory when attached and enabled

with HasGyro mode 2 (server-side integration).

µARCS maintains its internal coordinate position in platform-dependent units, but reports the values in

platform-independent millimeters and

angular units (2π/4096 radians) in the

standard SIP (XPos, YPos and THPos).

Conversion from the angular units to

degrees is automatically performed by

ARIA when received.

Be aware that registration between

external and internal coordinates

deteriorates rapidly with movement due

to gearbox play, wheel imbalance,

slippage and many other real-world

factors. You can rely on the dead-

reckoning ability of the robot for a short

range—on the order of a few meters and

one or two revolutions, depending on the

surface. Carpets tend to be worse than

hard floors.

Page 73: Research PatrolBot User's Guideplascencia/patrolbot/Research_PatrolBot_3rd_gen_… · MobileEyes MobileEyes is a graphical application for remote visualization, teleoperation, and

Chapter 9: Robot Programming and Configuration

Adept MobileRobots Research PatrolBot User’s Guide, Rev. A

Page 69 of 96

Also, moving either too fast or too slow tends to exacerbate the absolute position errors. Accordingly,

consider the robot’s dead-reckoning capability as a means of tying together sensor readings taken over a

short period of time, not as a method of keeping the robot on course with respect to a global map.

On start-up, the robot position is initialized to (0, 0, 0), pointing along the positive X-axis at 0 degrees.

Absolute angles vary between 0 and ±4096 angular units (+180 to -179 degrees).

You may reset the internal coordinates back to 0,0,0 with the SETO command #7.

Sonar

When connected with and opened by the client, μARCS automatically begins firing your PatrolBot’s

sonar, one disc at a time from each array simultaneously, as initially sequenced and enabled in your

robot’s FLASH parameters, and provides data in the standard SIP.

Enabling and disabling sonar

Use the SONAR client command #28 to enable or disable the sonar. Use an argument of 1 to enable all

sonar, or 0 to disable all sonar.

Polling Sequence

Each array’s sonar fire at a rate and in the sequence defined in your robot microcontroller’s FLASH

parameters. (Consult the next chapter on how to change the FLASH settings.) Use the sonar POLLING

command #3 to have your client change the firing sequence and the SONARCYCLE command #48 to

change the rate. The changes persist until you restart the client-server connection.

The POLLING command string argument consists of a sequence of sonar numbers one through 32. Sonar

numbers one through eight get added to the polling sequence for sonar array number one; numbers nine

through 16 get added to the sequence for sonar array number two; 17-24 specify the sequence for array

three; and 25-32 are for array four. You may include up to 16 sonar numbers in the sequence for any

single array. Only those arrays whose sonar numbers appear in the argument get re-sequenced.

You may repeat a sonar number two or more times in a sequence. If a sonar number does not appear in

an otherwise altered sequence, the disc will not fire. If you do repeat a sonar in the sequence, know that

ARIA and related clients ignore the first reading if two ranging values from the same sonar appear in the

same SIP.

(For compatibility with other robots, if the POLLING command string is empty, all the sonar in the array

get disabled, just as if you had sent the Sonar command with an argument value of zero.)

Polling Rate

Use the SONARCYCLE client command #48 to change the sonar cycle timing on the fly for the current

client session. The SONARCYCLE command takes one integer argument, the cycle interval between

reading each of the sonar transducers in milliseconds. It can take up to 40 ms for a sonar transducer to

sense the return signal at the maximum 5 meter range; reducing the cycle time therefore limits the

effective maximum sensing range to less than 5 meters, though it provides a faster update rate of range

data for the application. The default value may be set in FLASH parameters, and is normally 40 ms.

Page 74: Research PatrolBot User's Guideplascencia/patrolbot/Research_PatrolBot_3rd_gen_… · MobileEyes MobileEyes is a graphical application for remote visualization, teleoperation, and

Chapter 9: Robot Programming and Configuration

Adept MobileRobots Research PatrolBot User’s Guide, Rev. A

Page 70 of 96

Bumper Stalls and Emergencies

µARCS may immediately and quickly stop the robot and notify the client of a stall if any one or more of

the bumper contact sensors get triggered and the robot is going in the direction of the bump

(forward/front or backward/rear). From the client-side, you also may change the BunpStall behavior with

BUMPSTALL command #44 and an integer argument: zero to disable BumpStall; a value of one to re-

enable BunpStall only when a forward bump sensor gets triggered; two for rear-only BumpStalls; or three

for both rear and forward bump contact-activated stalls. Set the BumpStall uARCS configuration

parameter to specify default behavior.

In an emergency, your client may want the robot to stop quickly, not subject to normal deceleration. In

that case, send the ESTOP command (#55).

Extended Bumpers

In order to protect accessories and attachments outside the normal protective envelope of the robot, such

as a platform on top of the robot, µARCS 4.1 and later now supports extended bumpers—digital switches

(e.g. bumper switches, IR breakbeams, etc.) that can mimic a bump event. Simply connect the digital

switch to one of the eight extended bumper digital inputs (see chapter 5) and then, in FLASH

configuration using uARCScf (see below), associate that switch with a front and/or rear bumper.

Consequently, when activated, the switch causes a bump event just as if the associated bumper(s) had

been contacted.

See Chapter 6, Updating & Reconfiguring µARCS, for FLASH configuration details.

CONFIGpac Packet and CONFIG command

Send the CONFIG command #18 without an argument to have µARCS send back a CONFIGpac packet

type 32 (0x20) containing the robot’s current operational parameters. Use the CONFIGpac to examine

many of your robot’s default FLASH-based settings and their working values, where appropriate, as

changed by other client commands, such as SetV and RotKV.

CONFIGpac contents

Label Data Description

Packet Header int Common packet header = 0xFAFB

Packet Byte count byte Number of following data bytes

Packet type byte CONFIGpac = 0x20

Robot type str “Pioneer”

Subtype str “researchPB”

Sernum str Serial number for the robot.

4mots byte unused

Rotveltop int Maximum rotation velocity; deg/sec

Transveltop int Maximum translation speed; mm/sec

Rotacctop int Maximum rotation (de)acceleration; deg/sec2

Transacctop int Maximum translation (de)acceleration; mm/sec2

PWMmax int Maximum motor PWM (limit is 500).

Name str Unique name given to your robot (can be changed using uARCScf).

SIPcycle byte Server information packet cycle time; ms.

Hostbaud byte Baud rate for client-server HOST serial: 0=9.6k, 1=19.2k, 2=38.4k, 3=56.8k, 4=115.2k.

Auxbaud byte Baud rate for AUX1 serial port; see HostBaud.

Gripper int 0 if no Pioneer Gripper; else 1. Always 0 on PatrolBot.

Page 75: Research PatrolBot User's Guideplascencia/patrolbot/Research_PatrolBot_3rd_gen_… · MobileEyes MobileEyes is a graphical application for remote visualization, teleoperation, and

Chapter 9: Robot Programming and Configuration

Adept MobileRobots Research PatrolBot User’s Guide, Rev. A

Page 71 of 96

Front Sonar int 1 if robot has front sonar array enabled, else 0. Always 0 on 3rd gen. PatrolBot.

Rear Sonar byte 1 if robot has rear sonar enabled, else 0.

Lowbattery int In 1/10 volts; alarm activated when battery charge falls below this value.

Revcount int Working number of differential encoder ticks for a 180 degree revolution of the

robot.

Watchdog int Ms time before robot automatically stops if it has not received a command from the

client. Restarts on restoration of connection.

P2mpacs byte Unused.

Stallval int Maximum PWM before stall. If > PWMMAX, never.

Stallcount int Ms time after a stall for recovery. Motors lax during this time.

Joyvel int Joystick translation velocity setting, mm/sec

Joyrvel int Joystick rotation velocity setting in deg/sec

Rotvelmax int Current max rotation speed; deg/sec.

Transvelmax int Current max translation speed; mm/sec.

Rotacc int Current rotation acceleration; deg/ sec2

Rotdecel int Current rotation deceleration; deg/ sec2

Rotkp int Current Proportional PID for rotation

Rotkv int Current Derivative PID for rotation

Rotki int Current Integral PID for rotation

Transacc int Current translation acceleration; mm/ sec2

Transdecel int Current translation deceleration; mm/ sec2

Transkp int Current Proportional PID for translation.

Transkv int Current Derivative PID for translation.

Transki int Current Integral PID for translation.

Frontbumps byte Number of front bumper segments.

Rearbumps byte Number of rear bumper segments.

Charger byte Autocharger type. 0=none; 1 = Pioneer/PeopleBot; 3 = PatrolBot; 4 = PowerBot

SonarCycle byte Sonar duty cycle time in milliseconds.

Autobaud byte 1 if the client can change baud rates; 2 if auto-baud implemented.

HasGyro byte 1 or 2 if robot equipped with the gyro heading correction device; otherwise 0.

Driftfactor int Working drift factor value.

Aux2baud byte Baud rate for AUX2 serial port: 0=9.6k, 1=19.2k, 2=38.4k, 3=56.8k, 4=115.2k.

Aux3baud byte Baud rate for AUX3 serial port: 0=9.6k, 1=19.2k, 2=38.4k, 3=56.8k, 4=115.2k.

Ticksmm int Encoder ticks per millimeter tire motion

Shutdownvolts int DC volts X10 at or below which the onboard PC will shut down

Firmware Version str

Null-terminated string containing firmware version identifier.

GyroCW int Gyro calibration factor clockwise

GyroCCW int Gyro calibration factor counterclockwise

KinematicsDelay byte Time delay (ms) between acquisition and reporting of rotation

Packet checksum 2bytes Packet checksum

Host Serial Communications

The baud rates for the HOST and Aux serial ports initially are set from their respective FLASH-based

defaults and get reset to those values whenever the controller is reset or upon client disconnection. For

advanced serial port management from the client side, µARCS provides four commands which let your

client software reset the HOST (HOSTBAUD command #50), Aux1 (AUX1BAUD #51), Aux2

(AUX2BAUD #52) and Aux3 (AUX3BAUD #53) serial port baud rates, respectively. Use the integer

Page 76: Research PatrolBot User's Guideplascencia/patrolbot/Research_PatrolBot_3rd_gen_… · MobileEyes MobileEyes is a graphical application for remote visualization, teleoperation, and

Chapter 9: Robot Programming and Configuration

Adept MobileRobots Research PatrolBot User’s Guide, Rev. A

Page 72 of 96

command argument value to specify the rate, where 0 = 9600, 1 = 19200 K, 2 = 38400, 3 = 57600, or 4 =

115200 baud.

With auto-bauding, the HOST serial port automatically reverts to its FLASH default baud rate if, after

being reset by the HOSTBAUD client command, it does not receive a subsequent and valid client-

command packet within 500 milliseconds.

Robot Auxiliary Serial Ports

The robot microcontroller contains additional RS-232 serial ports, to which serial devices may be

connected in addition to the onboard computer’s serial ports. (For example, the pan/tilt/zoom control of a

camera.)

Use the client-side TTY2 command #42 with a string argument to have that string sent out the Aux1 port

to the attached serial device. Similarly, use the TTY3 command #66 to send a string argument out the

Aux2 port, or TTY4 command #60 to send data out the Aux3 port.

µARCS also maintains three circular buffers for incoming serial data from the respective Aux ports. On

request, µARCS sends successive portions of the buffer to your client via SERAUXpac (type = 176),

SERAUX2pac (type = 184) and SERAUX3pac (type = 200) packets.. Use the GETAUX command #43 to

request SERAUXpac with Aux1 data, GETAUX2 command #67 for Aux2 and GETAUX3 command #61

for Aux3. Include an integer argument value of zero to flush the contents of the respective buffer.

Otherwise, the argument indicates the amount of data to return (up to 253 bytes). µARCS will wait to

collect the requested number of bytes before sending the return packet.

Encoder Data

Issue the ENCODER command #19 with an argument of one for a single, or with an argument value of

two or more for a continuous stream of ENCODERpac (type 144; 0x90) SIPs. Discontinue the packets

with the ENCODER command #19 with an argument of zero.

ENCODERpac Packet contents Label Data Description

Packet Header int Exactly 0xFA, 0xFB

Packet Byte Count byte Number of data bytes + 2 (checksum)

Packet Type byte 0x90

Left Encoder int Least significant, most significant portion of the

int current accumulated encoder counts from the left wheel

Right Encoder int Least significant, most significant portion of the

int current accumulated encoder counts from the right wheel

Packet Checksum 2bytes Checksum for packet integrity

Heading Correction Gyro

A heading correction gyroscopic sensor (“gyro”) may be used to improve the accuracy of the uARCS’

estimated position. The gyro can be used in two modes, set via the HasGyro configuration parameter.

With HasGyro set to 2, uARCS automatically uses the gyro to improve its estimated position (XPos, YPos

and THPos returned in the Standard SIP). With HasGyro set to 1, uARCS does not use the gyro data, but

Page 77: Research PatrolBot User's Guideplascencia/patrolbot/Research_PatrolBot_3rd_gen_… · MobileEyes MobileEyes is a graphical application for remote visualization, teleoperation, and

Chapter 9: Robot Programming and Configuration

Adept MobileRobots Research PatrolBot User’s Guide, Rev. A

Page 73 of 96

client software can request gyro data with the GYROREQUEST command. The gyro can by disabled by

setting HasGyro to 0.

In all cases, µARCS collects and averages the gyro (Z-axis) rate and temperature over a 25 millisecond

time period—the bandwidth of the gyro. What happens next depends on the HasGyro setting.

Server-Side Automatic Analog Gyro Handling (HasGyro = 2)

With the FLASH parameter HasGyro set to 2, µARCS manages the analog gyro internally. uARCS

averages analog readings over a 25 millisecond cycle time. µARCS fuses the gyro and encoder readings

to compute the XPos, YPos and ThPos position estimate provided in the standard SIP. uARCS

automatically detects the gyro center point and compensates for drift. Two calibration factors, GyroCW

and GyroCCW may be set in uARCS configuration or for the current session only via GYROCW and

GYROCCW client commands. These calibration factors determine actual rates clockwise and

counterclockwise and need to be set for each robot/gyro pair—something typically done at the factory,

but may be recalibrated if necessary. These calibration factors are both typically at or near 950.

Due to noise effects and consequent drift, the gyro is not used to compute the robot’s pose if the gyro’s

measured rate falls below a threshold, which may be set via the GyroRateLimit configuration parameter.

If this parameter value is zero, the default rate limit is 2.0 degrees per second is used. Set the parameter

to tenths of degrees per second; for example, the value 20 is 2.0 degrees/sec.

You can temporarily disable the gyro during a client-server session by sending client command #58 with

an argument of 0. Re-enable it with an argument of 1.

Client-Side Analog Gyro Handling (HasGyro = 1)

With HasGyro set to 1, µARCS simply collects the averaged analog gyro readings every 25 milliseconds

and, upon request by the client with command GyroRequest #58 and argument 1 (0 to cancel), sends the

collected data just before the standard SIP to a connected client in a GYROpac (type = 0x98) packet for

processing. Analysis of the gyro data and subsequent modifications to the robot's heading may then be

done on the client side. ARIA version 1.3 and later includes an ArAnalogGyro class for accessing the

received gyro data and automatically performing the heading correction. Note that the client-side gyro

calibration/correction factor is found as the GyroScaler value in your robot’s Aria/params/*.p parameter

file and should be calibrated for the particular robot and gyro.

GYROpac consists of a count of the averaged rate and temperature data pairs accumulated since the last

cycle, followed by that number of rate/temperature pairs.

GYROpac packet contents

Field Field size Value Description

Packet Header 2 0xFA, 0xFB Standard uARCS packet header

Packet Byte Count 1 Number of following packet data bytes

Packet Type 1 0x98 Packet type

Number of gyro data

pairs

1 N Number of gyro data pairs in this packet

Then for each of N gyro data pairs:

Rate 2 Varies 0-1023 Gyro rate in 25ms interval units

Page 78: Research PatrolBot User's Guideplascencia/patrolbot/Research_PatrolBot_3rd_gen_… · MobileEyes MobileEyes is a graphical application for remote visualization, teleoperation, and

Chapter 9: Robot Programming and Configuration

Adept MobileRobots Research PatrolBot User’s Guide, Rev. A

Page 74 of 96

Temperature 1 Varies 0-255 Gyro temperature during this reading

Packet checksum 2 Packet checksum bytes

Low Battery Voltage PC Shutdown (Linux only)

The RI pin 9 on the HOST serial port (used for robot control) is set low when the robot powers on.

µARCS sets RI to high when the batteries discharge to below the FLASH-set ShutdownVolts value. The

Linux genpowerd daemon can monitor RI and begin shutting down the OS when set. PatrolBots with

onboard computers running Linux have been preconfigured to do this.

Use the µARCS client maintenance command #250 to test genpowerd or software behavior on low battery

voltage. This command sets an artificial battery voltage that replaces the real voltage. Reset behavior to

reflect real battery voltage by sending command 250 with a value of 0.

Accessory Power Control

Use the SETPBIOPORT command #31 to switch power to devices. This command takes two bytes as

arguments; the first byte indicates the power port #, the second the desired state (1 for on, 0 for off).

See Chapter 5 for the location of power connectors on the robot.

Port # Function Typical Device

0 Computer power 0 is computer power off, 1 is computer power on.

1 System kill 0 is normal, 1 to kill system.

4 5V #1 Floor (URG) laser

5 5V #2 motion lights enable/disable

6 5V #3

7 12V #1

8 12V #2 Cameras

9 12V #3 Audio Amp & Microphone

10 12V #4

11 24V #1 Laser

13 24V #3

14 24V #4

15 Soft-trigger estop

FLASH parameters let you specially map power ports to some common uses, and have µARCS manage

their start up states. Once specially mapped, dedicated µARCS commands automatically address those

ports for you. Command #95, for example, with an argument of zero will initiate a gentle shutdown of

the PC. Note that command #31 with integer argument zero will immediately cut power to the PC, while

the PC-related command #95 initiates a gentle shutdown as if in a ShutdownVolts condition.

Similarly, commands #96-99 let you directly address the ports allocated in FLASH to the LRF and to the

auxiliary 5 VDC, 12 VDC and 24 VDC switched power connectors. Once mapped, these ports also appear

and may be changed from the LCD control panel.

Page 79: Research PatrolBot User's Guideplascencia/patrolbot/Research_PatrolBot_3rd_gen_… · MobileEyes MobileEyes is a graphical application for remote visualization, teleoperation, and

Chapter 9: Robot Programming and Configuration

Adept MobileRobots Research PatrolBot User’s Guide, Rev. A

Page 75 of 96

Joystick Packet

Use the JoyRequest command #17 with an argument value of 0, 1 or 2 to request information about the

joystick, if it is enabled in the µARCS configuration. 1 requests a single JOYSTICKpac packet (type = 248)

to be sent by the next client-server communications cycle. 2 has JOYSTICKpac SIPs sent continuously

after the standard SIP, at approximately one per cycle depending on serial port speed and other pending

SIPs. Use argument value 0 to stop continuous JOYSTICKpac packets.

JOYSTICKpac contents

Automated Recharging

To use the PatrolBot’s automated recharging docking station system, it must be enabled in the µARCS

Charger parameter (see below). Thereafter, for autonomous operation of the robot with the recharging

system, use ARNL, ARIA or other software to slowly drive the robot into the docking station. Make sure

the robot stops when one of the front bumper switches is triggered. Use the µARCS Charge command

#68 with an integer argument of 1 to automatically halt robot motion if necessary, disable the motors, and

deploy the electromagnet.

ARNL includes modes that will automatically drive to a dock location from the map, drive into the dock,

and begin charging; see the code provided in ArDocking.cpp and ArDocking.h.

To stop charging, send the Charge command #68 with integer argument of zero to gracefully cancel

charging.

Your client software disconnect and reconnect to µARCS without disrupting recharging, as long as the

robot’s power-contacts remain positively engaged with the charger and you don't do anything else to

otherwise disrupt charging, such as move the robot.

Monitoring the Recharge Cycle

µARCS versions 2.4 and later include a Charging state byte near the end of the standard SIP that decodes

these charging states for you. Accordingly, by monitoring the charging state byte or the individual

power-good and overcharge bits, as well as the battery voltage, your client may make recharging strategy

decisions. The thing to remember is that lead-acid batteries last longest when routinely charged into float

mode, typically once per day.

Meaning of Charging state field values:

SIP Charging

State Field

Charge State Overcharge Volts Charge Current

Label Data Value Description

Packet header 2 0xFA, 0xFB Common header

Byte count 1 11 Varies

type 1 0xF8 Packet type

button0 1 0 or 1 1=button pressed

button1 1 0 or 1 1=button pressed

X-axis 2 varies 0-1023 Rotation analog

Y-axis 2 varies 0-1023 Translation analog

throttle 2 varies 0-1023 Throttle setting

Packet checksum 2 varies Computed checksum

Page 80: Research PatrolBot User's Guideplascencia/patrolbot/Research_PatrolBot_3rd_gen_… · MobileEyes MobileEyes is a graphical application for remote visualization, teleoperation, and

Chapter 9: Robot Programming and Configuration

Adept MobileRobots Research PatrolBot User’s Guide, Rev. A

Page 76 of 96

Value

-1 Unknown ? ? ?

0 Not Charging 0 or 1 Any 0

1 Bulk 1 14 6A

2 Overcharge 0 14-14.7 Decreases to 1A

3 Float 1 13.5 <1A

Updating & Reconfiguring µARCS

µARCS firmware and a set of operating parameters get stored in your PatrolBot microcontroller’s

FLASH. With special upload and configuration software tools, you change and update µARCS and its

operating parameters. No hardware modification is required.

Where to Get µARCS Software

Your PatrolBot comes installed with the latest version of µARCS. And the various µARCS configuration

and update tools come with the robot on CD-ROM. Thereafter, stay tuned to the Pioneer-users newsgroup

or periodically visit our support website to obtain the latest µARCS software and related documentation:

http://robots.MobileRobots.com

The main utility, uARCScf, is a multi-functional application for both uploading new µARCS versions as

well as modifying your robot’s onboard FLASH-based parameters.

µARCS Maintenance Mode

To connect with and update µARCS and its configuration parameters, you need to first connect a serial

port from an offboard PC to the MAINTENANCE serial port of your PatrolBot, or effect the changes

directly from the onboard PC. For the former option, make sure the onboard PC is OFF.

Enabling Maintenance Mode on the Controller

If for any reason your robot’s FLASH parameters get erased or your μARCS software encounters a code

fault, your PatrolBot’s microcontroller automatically reverts to Maintenance Mode.

Or, if you attach a PC to the MAINTENANCE port, and run uARCScf on that PC and then reset or

otherwise start the microcontroller, it will automatically revert into Maintenance Mode.

Or, simply by executing uARCScf in the absence of another client connection, it automatically engages

Maintenance Mode. Finally, the LCD lets you SCROLL to and SELECT “Engage uC stub Maintenance

Mode.” (The latter methods use the μARCS client command #255 to do that.)

uARCScf

The µARCS update and configuration program, uARCScf, is used to update the µARCS firmware on the

robot microcontroller, and to change its various configuration parameters.

Page 81: Research PatrolBot User's Guideplascencia/patrolbot/Research_PatrolBot_3rd_gen_… · MobileEyes MobileEyes is a graphical application for remote visualization, teleoperation, and

Chapter 9: Robot Programming and Configuration

Adept MobileRobots Research PatrolBot User’s Guide, Rev. A

Page 77 of 96

Install uARCScf on the PC you plan to use for maintaining your robot’s operating system and parameters

by double-clicking the distribution software’s onscreen icon (Windows) or by unpacking the compressed

tar archive (Linux):

$ tar -zxvf uARCS1_0.tgz

The expanded archive creates a uARCS/ directory in the selected Windows or current Linux path and

stores the µARCS software and files within.

Starting uARCScf

uARCScf is a text-based console. uARCScf may be invoked with various command-line options. Use the -

help option to list the available options.

In Linux, run uARCScf using the following commands.

$ cd /usr/local/µARCS

$ ./uARCScf

In Windows, you may double-click the uARCScf icon to automatically open a console window and start

the program without any options. To start up with command-line options, run the program from the Start

menu, or run the Windows Command Prompt accessory from the Start menu, navigate to the

C:\Program Files\MobileRobots\uARCS directory, and run uARCScf followed by any command line

options:

C:\> cd Program Files\MobileRobots\uARCS

C:\Program Files\MobileRobots\uARCS\> uARCScf

Normally (without any command-line arguments), uARCScf starts up expecting to connect to PatrolBot’s

microcontroller through your PC’s COM1 or /dev/ttyS0 serial port. If successfully connected, the program

automatically retrieves your robot’s FLASH-stored operating parameters and enters interactive mode.

uARCScf startup options Key Argument Description

-b List of uARCScf

commands

Batch Mode: Executes a list of uARCScf commands, then exits

automatically.

-u motfile Upload the given µARCS firmware image from file motfile

-l paramsfile Load parameters from the given paramsfile (usually named with .rop)

instead of downloading from robot. If saved with the save command,

these will replace robot’s existing parameters.

-n None Don’t connect to microcontroller (use to manipulate parameter files

locally only)

-rp Robot serial port Use specified serial port for connection (default is COM1 or /dev/ttyS0)

-rb Baud rate Specify the serial connection baud rate

-s Paramsfile On exit from uARCScf, automatically save a copy of the current

parameter values to the named .rop paramsfile.

These options are specified in a command terminal after the uARCScf program name followed by any

required arguments, separated by spaces. For example, to start up uARCScf on Windows and make a

connection through your PC’s serial port other than the default COM1 or ttyS0:

C:\Program Files\MobileRobots\uARCS> uARCScf –rp COM3

Page 82: Research PatrolBot User's Guideplascencia/patrolbot/Research_PatrolBot_3rd_gen_… · MobileEyes MobileEyes is a graphical application for remote visualization, teleoperation, and

Chapter 9: Robot Programming and Configuration

Adept MobileRobots Research PatrolBot User’s Guide, Rev. A

Page 78 of 96

Similarly, in Linux, the following command uploads a fresh copy of μARCS to your robot’s controller and

then exits automatically:

$ ./uARCScf –u µARCS1_0.mot –n –b

Configuring µARCS Parameters

Your PatrolBot has several parameters stored in nonvolatile FLASH memory. For instance, the default

maximum translation velocity is stored in the TransVelMax parameter. Its value takes effect when

starting your robot or after resetting the controller and may be changed temporarily by a client command.

Use uARCScf’s batch or interactive modes to modify these operating parameters and hence your robot’s

default operating characteristics.

Start up uARCScf as described in the previous section. And as discussed earlier, uARCScf normally

downloads the set of operating parameters from your robot’s FLASH for your review and modification.

Or you may load a disk-stored version of those parameters.

Interactive Commands

To operate uARCScf in interactive mode, simply type a keyword at the command line. Some keywords

affect the operation of uARCScf, the status of the parameters file as a whole or the connection between

uARCScf and your robot’s controller. For instance, to review the list of current μARCS FLASH variables,

type ‘v’ or ‘view’ followed by a return (‘Enter’). Type ‘p’ to view a menu of power port-related settings.

Each successive return will display additional variable keywords and current values. Similarly, type ‘?’

or ‘help’ to see a list of uARCScf interactive commands.

Changing Parameters

Most keywords refer to the operating parameters themselves. Alone, a parameter’s keyword simply asks

uARCScf to display the parameter’s value. Provide an argument with the parameter keyword separated

by a space to change its value. That value may be a string (no quotes or spaces) or a decimal or

hexadecimal (“0xN”) number. For example, to change the watchdog timeout to four seconds, type:

watchdog 4000

or

watchdog 0xfa0

uARCScf control commands

Command Description

KEYWORD value Without value, displays the current value of the parameter with name

KEYWORD in uARCScf (not the value stored on the robot, if changed

in uARCScf). With value, changes the value of the parameter with

name KEYWORD in uARCScf (configuration must then be saved

with SAVE command to change on robot).

VIEW Display list of all parameters except power port mapping parameters.

List display will pause after a screenfull, press ENTER to continue

display.

POWER Display list of power port mapping parameters.

UPLOAD motfile Upload a new µARCS firmware image from mofile to the robot. Use

Page 83: Research PatrolBot User's Guideplascencia/patrolbot/Research_PatrolBot_3rd_gen_… · MobileEyes MobileEyes is a graphical application for remote visualization, teleoperation, and

Chapter 9: Robot Programming and Configuration

Adept MobileRobots Research PatrolBot User’s Guide, Rev. A

Page 79 of 96

this command to re-write or upgrade µARCS.

RESTORE paramsfile If paramsfile is given, load configuration parameters from paramsfile

into uARCScf (configuration must still be saved with SAVE

command to change on robot). If paramsfile is not given, reload

parameters from the robot.

SAVE paramsfile If paramsfile is given, save configuration parameters from uARCScf to

paramsfile. If paramsfile is not given, save configuration parameters to

the robot.

QUIT Exit uARCScf.

HELP or ? Display summary of commands.

Save Your Work

While changing parameter values in uARCScf interactive mode, you are editing a temporary copy; your

changes are not put into effect in your robot’s FLASH until you explicitly “save” them to the

microcontroller.

Also use the uARCScf save command to save a copy of the parameters to a disk file for later upload. We

strongly recommend that you save each version of your robot’s parameter values to disk for later

retrieval should your controller get damaged or its FLASH inadvertently erased. Default parameter files

come with each μARCS distribution, but it is tedious to reconstruct an individual robot’s unique

configuration.

Parameter Keyword Type Default Value Description

TYPE str Pioneer Identifies the robot type.

SUBTYPE str researchPB Identifies the robot model and params file.

NAME str none Name for your robot. Maximum of 16 characters, no spaces.

You may change this to any name.

SERNUM str none Serial number for the robot set at factory

TICKSMM int 192 Encoder ticks/mm (ticks per rev x gearRatio) /

(wheelDiameter x PI)

REVCOUNT int 30700 The number of differential encoder ticks for a 180 degree

revolution of the robot.

DRIFTFACTOR int 0 Value in 2298108 increments to add or subtract from the left

encoder ticks in order to compensate for tire differences.

BATTCONV byte 1 0 = 12V, 1 = 24 Volt system

BATTOFFSET int 203 Volts x 10 offset for battery voltage measurement

LOWBATTERY int 230 controller alarm activated when battery charge falls below

this value.

SHUTDOWNVOLTS int 227 controller disconnects client and signals onboard PC to

shutdown when battery charge falls below this value. After

90 seconds, power shuts off.

HOSTBAUD byte 0 Baud rate for client-server HOST serial: 0 = 9.6k, 1 = 19.2k, 2 =

38.4k, 3 = 56.8k, 4 = 115.2k.

AUXBAUD1 byte 0 Baud rate for AUX serial port 1; see HostBaud

AUXBAUD2 byte 0 Baud rate for AUX serial port 2; see HostBaud

Page 84: Research PatrolBot User's Guideplascencia/patrolbot/Research_PatrolBot_3rd_gen_… · MobileEyes MobileEyes is a graphical application for remote visualization, teleoperation, and

Chapter 9: Robot Programming and Configuration

Adept MobileRobots Research PatrolBot User’s Guide, Rev. A

Page 80 of 96

AUXBAUD3 byte 0 Baud rate for AUX serial port 3; see HostBaud

SIPCYCLE byte 100 Server information packet cycle time in 1 ms increments.

Default is classic 100 ms.

WATCHDOG int 2000 Time in ms before robot automatically stops if it has not

received a command from a client. Restarts on restoration of

connection.

SONARCYCLE byte 40 Sonar cycle time in milliseconds

SONAR1 str 0 Ping sequence for sonar array #1. Up to 16 number characters

1−8; 0 to disable the array

SONAR2 str 3456 Ping sequence for sonar array #2. Up to 16 number characters

1−8; 0 to disable the array

SONAR3 str 0 Ping sequence for sonar array #3. Up to 16 number characters

1−8; 0 to disable the array

SONAR4 str 0 Ping sequence for sonar array #4. Up to 16 number characters

1-8; 0 to disable the array.

HASGYRO byte 0 Set to 1 = client−side or 2 = firmware analog gyro; or SPI

3=gyro, 4=IMU

GYROCW int 738 Adjust for gyro type 2−4 clockwise rotations

GYROCCW int 738 Adjust for gyro type 2−4 counter-clockwise rotations

GYRORATELIMIT int 0 Minimum rotational rate x10 degrees per second at which

firmware−integrated gyro (HasGyro>1) affects odometry

(eliminate noise when stopped). 0=default 2 degrees per

second analog gyro or 1 degree per second SPI ones

GYRORANGE byte 0 SPI−based gyro/IMU only; selects default max. range:

0,3=320/300 d/s; 1=80/75 d/s; 2=160/150 d/s

HASBRAKES byte 0 1 if robot has mechanical brakes. Use 0 for PatrolBot.

CHARGER byte 3 Autocharger type. Use 3 for PatrolBot.

TCM2 byte 0 TCM2 module, if connected, specify Aux serial port 1, 2, or 3

LCD byte 3 Aux port number of attached LCD module

FRONTBUMPS byte 6 Number of front bumper segments

REARBUMPS byte 6 Number of rear bumper segments

INVERTBUMP byte 0 0=none; 1=front; 2=rear; or 3=invert both; affects stall bits in

std. SIP only.

BUMPSTALL byte 3 0=disable bump stall; 1=enable rear; 2=enable front; 3=enable

both front and rear bump stalls

FRONTIRS str 0 Associate IR port with front bumper segment

REARIRS str 0 Associate IR port with front bumper segment

INVERTIRS byte 0 Normally active low; 1 = invert front; 2 = invert rear, 3 =

invert both front and rear IR signals

STALLVAL int 300 Maximum PWM before stall. If > PwmMax, never.

STALLCOUNT int 500 Ms time after a stall for recovery. Motors not engaged during

this time.

PWMMAX int 495 Maximum motor PWM (500 maximum).

ROTVELTOP int 360 Maximum rotation velocity; deg/sec

TRANSVELTOP int 1900 Maximum translation speed; mm/sec

ROTACCTOP int 1000 Maximum rotation (de)acceleration; deg/sec2

Page 85: Research PatrolBot User's Guideplascencia/patrolbot/Research_PatrolBot_3rd_gen_… · MobileEyes MobileEyes is a graphical application for remote visualization, teleoperation, and

Chapter 9: Robot Programming and Configuration

Adept MobileRobots Research PatrolBot User’s Guide, Rev. A

Page 81 of 96

TRANSACCTOP int 1400 Maximum translation (de)acceleration; mm/sec2

ROTVELMAX int 300 Max rotation speed; deg/sec.

TRANSVELMAX int 1800 Max translation speed; mm/sec.

ROTACC int 150 Rotation acceleration; deg/sec2

ROTDECEL int 200 Rotation deceleration; deg/sec2

ROTKP int 10 Proportional PID for rotation

ROTKV int 10 Differential PID for rotation

ROTKI int 0 Integral PID for rotation

TRANSACC int 500 Translation acceleration; mm/sec2

TRANSDECEL int 600 Translation deceleration; mm/sec2

TRANSKP int 5 Proportional PID for translation

TRANSKV int 30 Differential PID for translation

TRANSKI int 0 Integral PID for translation

JOYSTICK byte 1 Joystick type: 0=analog, 1=inductive

JOYDRIVEOK byte 0 1 = joydrive okay without client connection

JOYSAFE byte 0 1 lets you operate in joydrive UNSAFE mode

JOYVELMAX int 1500 Joydrive maximum translation velocity

JOYRVELMAX int 60 Joydrive maximum rotation velocity

Power Port Mapping and States

Use the ‘p’ command to view and to change the FLASH parameters related to PatrolBot’s power port

controls. Two types of settings apply: the first maps a port to the selected feature (PC power always is

allocated to port 0). If you don’t allocate a port, μARCS won’t manage power to the designated feature

and will not display its option during LCD Interactive Mode. Be careful—the allocated port must reflect

the physical connection. For instance, if you set MotionLampPort to 11, your PatrolBot’s LRF will turn ON

and OFF repeatedly every time your robot drives. Not good.

A second type specifies the port’s behavior when you first PWR ON PatrolBot, when the microcontroller

gets reset and when a client connects and disconnects from µARCS. Note that you may effect state

changes through the LCD Interactive Mode, as well.

The power state parameter for the embedded PC (PCPower) default is zero, in which case the PC is OFF

when PatrolBot’s power is first turned ON. If you power up the PC from the LCD, it will stay ON

through a microcontroller reset and all client connections. Similarly, set PCPower to one in order to have

the PC power ON during start up. The difference is that if you power OFF the PC and then reset the

microcontroller, the PC will start up again. In other words, the PC won’t maintain state through reset,

but will through client connections.

The LRF and auxiliary power states are more versatile. Similarly set their respective FLASH parameters

to 0 or 1 to have the power switches act identically to PCPower. Alternatively, set the state to 2 to force the

port OFF, or 3 to force the port ON after uC RESET. Finally, set the value to 4 to have the port power ON

when a client connects with µARCS and OFF when the client disconnects.

Power Board related ('p') FLASH parameters Keyword Type Default Description

TEMPTHRESHOLD byte 0 Set to degrees C at which analog temperature sensor will

Page 86: Research PatrolBot User's Guideplascencia/patrolbot/Research_PatrolBot_3rd_gen_… · MobileEyes MobileEyes is a graphical application for remote visualization, teleoperation, and

Chapter 9: Robot Programming and Configuration

Adept MobileRobots Research PatrolBot User’s Guide, Rev. A

Page 82 of 96

trigger a system shutdown.

PDBPORT byte 1 Aux serial port 1−3 to which power distribution board

communicates with the microcontroller. (This is set at the

factory. Do not change.)

MOTIONLAMPPORT byte 12 Flashes while PatrolBot moves

FAULTLAMPPORT byte 0 Flashes if estop, ON if no client connection

BATTLAMPPORT byte 0 Flashes if low battery

PCPOWER byte 0 Set to 1 to start PC when PWR ON or reset

LRFPORT byte 11 Sets the port number for LRF power switch

LRFPOWER byte 2 Power state value 0−4; see description in text

AUX5VPORT byte 0 Power switch port allocation for Aux 5V

AUX5V byte 0 Power state value 0−4; see description in text

AUX12VPORT byte 0 Power switch port allocation for Aux 12V

AUX12V byte 0 Power state value 0−4; see description in text

AUX24VPORT byte 0 Power switch port allocation for Aux 24V

AUX24V byte 0 Power state value 0−4; see description in text

PID Parameters

The µARCS configuration parameters include settings for the PID motor controls for translation and

rotation of the robot. The translation values also are used for independent-wheel mode. The default

values are for a lightly loaded robot. Experiment with different values to improve the performance of

your robot in its current environment.

The Proportional PID (Kp) values control the responsiveness of your robot. Lower values make for a

slower system; higher values make the robot “zippier”, but can lead to overshoot and oscillation.

The Derivative PID (Kv) dampens oscillation and overshoot. Increasing values gives better control of

oscillation and overshoot, but they also make the robot’s movements more sluggish.

The Integral PID (Ki) adjusts residual error in turning and velocity. Higher values make the robot correct

increasingly smaller errors between its desired and actual angular position and speed.

DriftFactor, Ticksmm and RevCount

µARCS uses the TicksMM and RevCount parameters to convert your platform-independent speed and

rotation commands—typically expressed in millimeters or degrees, respectively—into platform-

dependent units. And it uses the DriftFactor to compensate for tire difference.

The TicksMM value is the number of encoder pulses (“ticks”) per millimeter of wheel rotation. The value

is, of course, dependent upon the wheel encoder’s resolution, the motor-to-wheel gear ratio and the

wheel’s diameter.

The RevCount value is the number of encoder ticks for one-half revolution of the robot. It depends on a

number of factors, principally the length of the wheel base, which may change due to payload, tire wear,

operating surface and so on.

Page 87: Research PatrolBot User's Guideplascencia/patrolbot/Research_PatrolBot_3rd_gen_… · MobileEyes MobileEyes is a graphical application for remote visualization, teleoperation, and

Chapter 9: Robot Programming and Configuration

Adept MobileRobots Research PatrolBot User’s Guide, Rev. A

Page 83 of 96

The DriftFactor is a value in 1/8192 units that gets added or subtracted from the left-wheel encoder count

at each motor cycle. In doing so, it compensates for tire difference and thereby straightens the robot’s

translation forward and backward.

The TicksMM and RevCount parameters affect the conversion of your motion command arguments into

platform-dependent values used by µARCS. Unlike previous controller software, µARCS also uses

TicksMM and RevCount to convert its internal measures into platform-independent position, heading and

velocity values reported back from the server, such as XPos and THPos. Accordingly, you’ll notice that

the respective ARIA client parameters have many conversion factors like DistConvFactor set to 1.0.

StallVal and StallCount

A µARCS stall monitor maintains a running average of PWM values for each wheel over a 500

millisecond integration period. PWM values get added to the sum if the wheel speed is below 100

mm/sec. The average is then compared with the StallVal FLASH value. If it exceeds that value, in other

words the motors are being given lots of power but are barely moving if at all, a stall occurs. Once

stalled, power is removed and the motors relax for the StallWait period, after which power gets reapplied.

Note that PatrolBot will consequently roll down a hill if it stalls along the way.

Bumpers

µARCS implements three FLASH parameters that specify states and numbers of front and rear bumper

segments. Set the FrontBumps and RearBumps parameters to the number of bumper segments for the front

and rear bumpers, respectively; or to 0 if you don’t have a particular bumper. The number of segments is

used to isolate the bumper bits, if any, so that a triggered bumper event is reported correctly in the Stall

values in the standard SIP. Use the InvertBump FLASH parameter’s value to invert those bumper-related

Stall values, but not the hardware-related states reported in the IOpac. The FrontBumps and RearBumps

values also are reported near the end of the CONFIGpac.

PatrolBot comes with six bumper segments each front and rear. If for any reason you remove a bumper

from your robot, you MUST reset the associated FrontBumps or RearBumps FLASH value. Otherwise, the

robot may stall incessantly and ARIA won’t let you drive.

Use the BumpStall FLASH parameter to set the default for the robots behavior when one of its front

and/or rear bumper gets triggered. Normally, BumpStall is engaged for both front and rear (default value

of zero) bumper segments. Reset it to three to disengage bump stalls altogether; one to trigger stalls only

when the rear bumpers engage; or two for front bumps only.

BumpStalls occur only when the robot is traveling in the direction of the bump: a front bumper triggered

while traveling forward, or a rear bumper triggered when driving in reverse. You may over-ride the

BumpStall FLASH default with the BumpStall client command #44, although the command arguments are

the reverse: The command argument of zero disables the bumpstall behavior; one enables front only; two

rear only; and three for both bumpers. Your robot’s BumpStall behavior reverts to the FLASH default on

reset and up disconnection from the client.

Page 88: Research PatrolBot User's Guideplascencia/patrolbot/Research_PatrolBot_3rd_gen_… · MobileEyes MobileEyes is a graphical application for remote visualization, teleoperation, and

Chapter 9: Robot Programming and Configuration

Adept MobileRobots Research PatrolBot User’s Guide, Rev. A

Page 84 of 96

Page 89: Research PatrolBot User's Guideplascencia/patrolbot/Research_PatrolBot_3rd_gen_… · MobileEyes MobileEyes is a graphical application for remote visualization, teleoperation, and

Appendix A: Internal Component Connection Diagram

Adept MobileRobots Research PatrolBot User’s Guide, Rev. A

Page 85 of 96

Appendix A: Internal Component Connection

Diagram

Page 90: Research PatrolBot User's Guideplascencia/patrolbot/Research_PatrolBot_3rd_gen_… · MobileEyes MobileEyes is a graphical application for remote visualization, teleoperation, and

Appendix A: Internal Component Connection Diagram

Adept MobileRobots Research PatrolBot User’s Guide, Rev. A

Page 86 of 96

Page 91: Research PatrolBot User's Guideplascencia/patrolbot/Research_PatrolBot_3rd_gen_… · MobileEyes MobileEyes is a graphical application for remote visualization, teleoperation, and

Appendix B: PCB Layouts

Adept MobileRobots Research PatrolBot User’s Guide, Rev. A

Page 87 of 96

Figure 2. Example of IDC-type connector numbering (10-position, 2-row connector shown)

Figure 1. Example of Mini- and Micro-fit style connector numbering (6-position, 2-row connector shown)

Appendix B: PCB Layouts This Appendix to the Research PatrolBot (3rd Generation) User’s Guide diagrams internal interconnnections of the SH2-based microcontroller, I/O daughter card and Power-Distribution Board (PDB) for PatrolBot.

Two types of connectors are used. Note that IDC socket types use odd and even numbering on parallel rows; but Mini- and Microfit connectors use successive-position numbering. See the Figures 1 and 2 below for examples.

µARCS Microcontroller

Table 1. Power connector (3-position microfit)

Serial Ports

The “System Serial” port connects to the external MAINTAINENCE DSUB-9 serial port, and shares signal lines with the HOST port which connects to onboard computer COM1. Either serial ports may be used to connect client software to the microcontroller (see Chapter 9). To differentiate the source, HOST has signal lines for detecting an attached device (DTR pin 4) which automatically switches its signals. HOST also has signals for notifying the attached PC of low-power condition (DSR pin 6 and RI pin 9). The HOST serial connectors are wired DCE for direct connection (straight-through cable, not NULL-modem) to a standard PC serial port.

Page 92: Research PatrolBot User's Guideplascencia/patrolbot/Research_PatrolBot_3rd_gen_… · MobileEyes MobileEyes is a graphical application for remote visualization, teleoperation, and

Appendix B: PCB Layouts

Adept MobileRobots Research PatrolBot User’s Guide, Rev. A

Page 88 of 96

Table 1. HOST serial port (DSUB-9 socket)

* Shared signals on MAINTENANCE

Table 2. System, Aux1, Aux2 and Aux3 serial ports (5-poitions microfit sockets)

Encoders

Heading Correction Gyro

Table 4. Heading correction gyro connector (6-position microfit)

Temperature Sensor

Table 5. Temperature sensor connector (6-pos microfit)

Expansion I/O Connector

The expansion I/O header connects the microcontroller with the auxiliary I/O daughter board.

Table 6. Expansion I/O (54-pos 0.1 header)

Page 93: Research PatrolBot User's Guideplascencia/patrolbot/Research_PatrolBot_3rd_gen_… · MobileEyes MobileEyes is a graphical application for remote visualization, teleoperation, and

Appendix B: PCB Layouts

Adept MobileRobots Research PatrolBot User’s Guide, Rev. A

Page 89 of 96

Page 94: Research PatrolBot User's Guideplascencia/patrolbot/Research_PatrolBot_3rd_gen_… · MobileEyes MobileEyes is a graphical application for remote visualization, teleoperation, and

Appendix B: PCB Layouts

Adept MobileRobots Research PatrolBot User’s Guide, Rev. A

Page 90 of 96

PatrolBot Daughter Board (Auxiliary I/O)

Sonar

The Sonar signals connect to the sonar multiplexing board located near the sonar array. Only Sonar 2

currently is connected with a single multiplex board that supports the four sonar discs at the rear of

PatrolBot.

Table 7. Sonar connectors (2x10-pos microfits)

Bumpers

Bumper digital signals are pulled high internally.

Table 8. Bumpers (2x10-pos microfits)

Page 95: Research PatrolBot User's Guideplascencia/patrolbot/Research_PatrolBot_3rd_gen_… · MobileEyes MobileEyes is a graphical application for remote visualization, teleoperation, and

Appendix B: PCB Layouts

Adept MobileRobots Research PatrolBot User’s Guide, Rev. A

Page 91 of 96

IRs

Typically used with breakbeam IRs (hence the label), any digital switch will do. Digital input signals are

pulled high internally.

Table 9. IR connector (10-pos microfit)

Power Distribution Board (PDB)

Page 96: Research PatrolBot User's Guideplascencia/patrolbot/Research_PatrolBot_3rd_gen_… · MobileEyes MobileEyes is a graphical application for remote visualization, teleoperation, and

10 Columbia Drive

Amherst, NH 03450

603·881·7960

www.mobilerobots.com