Pioneer 2™
Operations Manual
with
NEW Hitachi H8S-based Controller
&
ActivMedia Robotics Operating System
Software
PIONEER 2-DX8
PIONEER 2-AT8
Copyright © 2002, ActivMedia Robotics, LLC. All rights reserved.
Under international copyright laws, this manual or any portion of it may not be copied or
in any way duplicated without the expressed written consent of ActivMedia Robotics.
The software on disk, CD-ROM, and/or in the microcontroller’s FLASH, which accompany
the robot and are available for network download by ActivMedia Robotics customers,
are solely owned and copyrighted or are licensed products distributed by ActivMedia
Robotics, LLC.
Developers and users are authorized by revocable license to develop and operate
custom software for personal research and educational use only. Duplication,
distribution, reverse-engineering, or commercial application of the ActivMedia Robotics
software and hardware without the expressed written consent of ActivMedia Robotics,
LLC, is explicitly forbidden.
The various names and logos for products used in this manual are often registered
trademarks or trademarks of their respective companies. Mention of any third-party
hardware or software constitutes neither an endorsement nor a recommendation.
ActivMedia Robotics’ Pioneer 2-H8S Operations Manual, version 1.0, August 2002
ii
ActivMedia Robotics
Important Safety Instructions
Read the installation and operations instructions before using the equipment.
Avoid using power extension cords.
To prevent fire or shock hazard, do not expose the equipment to rain or moisture.
Refrain from opening the unit or any of its accessories.
Keep wheels away from long hair or fur.
Inappropriate Operation
Inappropriate operation voids your warranty! Inappropriate operation includes, but is
not limited to:
Dropping the robot, running it off a ledge, or otherwise operating it in an
irresponsible manner
Overloading the robot above its payload capacity
Getting the robot wet
Continuing to run the robot after hair, yarn, string, or any other items have
become wound around the robot’s axles or wheels
All other forms of inappropriate operation or care
iii
Table of Contents
CHAPTER 1 INTRODUCTION................................................................................................................. 1
ROBOT PACKAGE ........................................................................................................................................ 1
Basic Components (all shipments).......................................................................................................... 1
Optional Components and Attachments (partial list) ............................................................................. 1
User-Supplied Components / System Requirements ............................................................................... 2
ADDITIONAL RESOURCES ............................................................................................................................ 2
Software.................................................................................................................................................. 2
Newsgroups ............................................................................................................................................ 2
Support ................................................................................................................................................... 3
CHAPTER 2 WHAT IS PIONEER? .......................................................................................................... 4
PIONEER REFERENCE PLATFORM ................................................................................................................ 4
PIONEER FAMILY OF MICROCONTROLLERS AND OPERATING SYSTEM SOFTWARE ...................................... 5
HITACHI H8S-BASED MICROCONTROLLER .................................................................................................. 5
CLIENT SOFTWARE ...................................................................................................................................... 5
ActivMedia Robotics Basic Suite ............................................................................................................ 6
ARIA ....................................................................................................................................................... 7
Saphira ................................................................................................................................................... 7
Laser Navigation and Localization......................................................................................................... 8
THE PIONEER LEGACY................................................................................................................................. 8
Pioneer 1 and AT.................................................................................................................................... 8
Pioneer 2 and PeopleBot ........................................................................................................................ 8
New Pioneer 2-DX8 and AT8 Mobile Robots ......................................................................................... 9
MODES OF OPERATION .............................................................................................................................. 10
Server Mode.......................................................................................................................................... 10
Maintenance and Standalone Modes .................................................................................................... 10
Joydrive and Self Test Modes ............................................................................................................... 10
CHAPTER 3 SPECIFICATIONS & CONTROLS ................................................................................. 11
PHYSICAL CHARACTERISTICS .................................................................................................................... 11
MAIN COMPONENTS .................................................................................................................................. 12
Deck...................................................................................................................................................... 12
User Control Panel............................................................................................................................... 12
Body, Nose, and Accessory Panels ....................................................................................................... 13
Sonar Arrays with Gain Adjustment ..................................................................................................... 14
Motors and Position Encoders ............................................................................................................. 15
Batteries and Power ............................................................................................................................. 15
Battery Indicators and Low Voltage Conditions................................................................................... 16
Recharging ........................................................................................................................................... 16
ONBOARD PC ............................................................................................................................................ 16
Computer Control Panel....................................................................................................................... 17
Operating the Onboard PC .................................................................................................................. 17
PC Networking ..................................................................................................................................... 18
SAFETY AROS WATCHDOGS .................................................................................................................... 19
CHAPTER 4 QUICK START................................................................................................................... 20
PREPARATIVE ASSEMBLY .......................................................................................................................... 20
Install ARIA .......................................................................................................................................... 20
Install Batteries..................................................................................................................................... 21
Client-Server Communications............................................................................................................. 21
STARTING UP CLIENT AND SERVER ........................................................................................................... 21
Drive Self-Test ...................................................................................................................................... 21
Client Server Connection...................................................................................................................... 21
iv
ActivMedia Robotics
A Successful Connection .......................................................................................................................22
OPERATING THE ARIA DEMONSTRATION CLIENT .....................................................................................22
DISCONNECTING ........................................................................................................................................23
QUICKSTART TROUBLESHOOTING WITH SRISIM ........................................................................................23
Proper Connections...............................................................................................................................23
SRIsim ...................................................................................................................................................24
CHAPTER 5 JOYDRIVE AND SELF-TESTS ........................................................................................25
JOYDRIVE MODE ........................................................................................................................................25
ENGAGING SELF-TESTS ..............................................................................................................................26
CHAPTER 6 ACTIVMEDIA ROBOTICS OPERATING SYSTEM.....................................................27
CLIENT-SERVER COMMUNICATION PACKET PROTOCOLS...........................................................................27
Packet Checksum...................................................................................................................................28
Packet Errors ........................................................................................................................................28
SERVER INFORMATION PACKETS ...............................................................................................................29
CLIENT COMMANDS ...................................................................................................................................30
THE CLIENT-SERVER CONNECTION............................................................................................................32
Autoconfiguration (SYNC2)...................................................................................................................32
Opening the Servers—OPEN ................................................................................................................33
Keeping the Beat—PULSE ....................................................................................................................33
Closing the Connection—CLOSE..........................................................................................................33
MOTION COMMANDS .................................................................................................................................33
ActivMedia Robots in Motion................................................................................................................34
PID Controls .........................................................................................................................................35
Position Integration...............................................................................................................................36
SONAR .......................................................................................................................................................36
STALLS AND EMERGENCIES ........................................................................................................................37
ACCESSORY COMMANDS AND PACKETS ....................................................................................................37
Packet Processing .................................................................................................................................37
CONFIGpac and CONFIG Command ..................................................................................................39
AUX port communications ....................................................................................................................39
Encoder packets ....................................................................................................................................39
Gripper packets .....................................................................................................................................39
Sounds ...................................................................................................................................................40
TCM2.....................................................................................................................................................40
INPUT OUTPUT (I/O) ..................................................................................................................................41
User I/O.................................................................................................................................................41
IO packets..............................................................................................................................................41
Expansion I/O........................................................................................................................................42
CHAPTER 7 UPDATING & RECONFIGURING AROS ......................................................................43
WHERE TO GET AROS SOFTWARE ............................................................................................................43
AROS MAINTENANCE MODE ....................................................................................................................43
SIMPLE AROS UPDATES ............................................................................................................................43
AROSCF ....................................................................................................................................................44
STARTING AROSCF ...................................................................................................................................44
CONFIGURING AROS OPERATING PARAMETERS .......................................................................................45
Interactive Commands...........................................................................................................................45
Changing Parameters............................................................................................................................45
SAVE YOUR WORK ....................................................................................................................................46
PID PARAMETERS ......................................................................................................................................46
TICKSMM AND REVCOUNT .........................................................................................................................48
CHAPTER 8 MAINTENANCE & REPAIR ............................................................................................49
DRIVE LUBRICATION..................................................................................................................................49
BATTERIES .................................................................................................................................................49
Changing Batteries................................................................................................................................49
Hot-Swapping the Batteries...................................................................................................................49
Charging the Batteries ..........................................................................................................................49
v
Alternative Battery Chargers................................................................................................................ 50
TIGHTENING THE AT8 DRIVE BELT........................................................................................................... 50
GETTING INSIDE ........................................................................................................................................ 50
Removing the Nose ............................................................................................................................... 51
Opening the Deck ................................................................................................................................. 51
FACTORY REPAIRS .................................................................................................................................... 52
APPENDIX A.............................................................................................................................................. 53
H8S MICROCONTROLLER .......................................................................................................................... 53
Power Connector.................................................................................................................................. 53
Serial Ports ........................................................................................................................................... 54
User I/O-Gripper Port.......................................................................................................................... 54
The Expansion I/O Bus ......................................................................................................................... 55
Bumper Ports........................................................................................................................................ 56
Motors, Encoders, IR Sensors .............................................................................................................. 56
User Control Interface.......................................................................................................................... 56
Joystick Port ......................................................................................................................................... 57
APPENDIX B.............................................................................................................................................. 58
MOTOR-POWER INTERFACE BOARD .......................................................................................................... 58
USER POWER CONNECTIONS ..................................................................................................................... 59
APPENDIX C.............................................................................................................................................. 60
RADIO MODEM SETTINGS.......................................................................................................................... 60
APPENDIX D.............................................................................................................................................. 61
SPECIFICATIONS ........................................................................................................................................ 61
WARRANTY & LIABILITIES ................................................................................................................ 63
vi
ActivMedia Robotics
Chapter 1
Introduction
Congratulations on your purchase and
welcome to the rapidly growing community
of researchers, developers, and enthusiasts
of ActivMedia Robotics’ intelligent mobile
robots.
Figure 1. Pioneer Mobile Robots first
appeared commercially in 1995.
This Pioneer 2-H8S Operations Manual
provides both the general and technical
details you need to operate your new Pioneer 2-DX8 or -AT8 mobile robot with its new
Hitachi H8S-based microcontroller, and to begin developing your own robotics hardware
and software.
For operation of previous versions of Pioneer 2 which use the Siemens C166-based
microcontroller and support systems, please consult the Pioneer 2 Operations Manual
available through sales@activmedia.com or at our support website: http://robots.
activmedia.com.
ROBOT PACKAGE
Our experienced manufacturing staff put your mobile robot and accessories through a
“burn in” period and carefully tested them before shipping the products to you. In
addition to the companion resources listed above, we warranty your ActivMedia robot
and our manufactured accessories against mechanical, electronic, and labor defects
for one year. Third-party accessories are warranted by their manufacturers, typically for
90 days.
Even though we’ve made every effort to make your ActivMedia Robotics package
complete, please check the components carefully after you unpack them from the
shipping crate.
Basic Components (all shipments)
One fully assembled mobile robot with battery
CD-ROM containing licensed copies of ActivMedia software and documentation
Hex wrenches and assorted replacement screws
Replacement fuse
Set of manuals
Registration and Account Sheet
Optional Components and Attachments (partial list)
Battery charger (some contain power receptacle and 220VAC adapters)
Onboard PC computer with PC104+ bus, hard-drive and other accessories
Radio Ethernet and/or serial modems; one mounted inside the robot
Companion radio for LAN or basestation connection
Supplementary and replacement batteries
3-Battery Charge Station (110/220 VAC)
Added sonar arrays
2-DOF Gripper
5-DOF P2 Arm with gripper
ActivMedia Color Tracking System (ACTS)
Stereo Vision Systems
Pan-Tilt-Zoom Surveillance Cameras
Custom Vision System
1
Congratulations
Range-finding laser
Global Positioning System
Compass
Bumper rings
Serial cables for external connections
Many more…
User-Supplied Components / System Requirements
Client PC: 586-class or later PC with Microsoft Windows© or RedHat© Linux OS
One RS-232-compatible serial port
Four megabytes of available hard-disk storage
ADDITIONAL RESOURCES
New ActivMedia Robotics customers get three additional and valuable
resources:
A private account on our Internet server for downloading software, updates, and
manuals
Access to private newsgroups
Direct access to the ActivMedia Robotics technical support team
Software
We maintain a 24-hour, seven-day per week Web server where customers may obtain
software and support materials:
http://robots.activmedia.com
Some areas of the website are restricted to licensed customers. To gain access, enter
the username and password written on the Registration & Account Sheet that
accompanied your robot.
Newsgroups
We maintain several email-based newsgroups through which ActivMedia robot owners
share ideas, software, and questions about the robot.
Visit the support
http://robots.activmedia.com website for more details. To sign up for pioneer-users,
for example, send an e-mail message to the –requests automated newsgroup server:
To: pioneer-users-requests@activmedia.com
From: <your return e-mail address goes here>
Subject: <choose one command:>
help
(returns instructions)
lists (returns list of newsgroups)
subscribe
unsubscribe
Our SmartList-based listserver will respond automatically. After you subscribe, send your
email comments, suggestions, and questions intended for the worldwide community of
Pioneer users:1
To: pioneer-users@activmedia.com
From: <your return e-mail address goes here>
Subject: <something of interest to pioneer users>
1
Note: Leave out the –requests part of the email address when sending messages to the newsgroup.
2
ActivMedia Robotics
Access to the pioneer-users newslist is limited to subscribers, so your address is safe
from spam. However, the list currently is unmoderated, so please confine your
comments and inquiries to issues concerning the operation and programming of Pioneer
or PeopleBot robots.
Support
Have a problem? Can’t find the answer in this or any of the accompanying manuals? Or
do you know a way that we might improve our robots? Share your thoughts and
questions directly with us:
support@activmedia.com
Please include your robot's serial number (look for it beside the Main Power switch)we
often need to understand your robot's configuration to best answer your question.
Tell us your robot’s SERIAL NUMBER.
Your message goes directly to the ActivMedia Robotics technical support team. There a
staff member will help you or point you to a place where you can find help.
Because this is a support option, not a general-interest newsgroup like pioneer-users,
we reserve the option to reply only to questions about problems with your robot or
software.
See Chapter 8, Maintenance & Repair, for more details.
3
Chapter 2
What Is Pioneer?
Figure 2. ActivMedia Robots
Pioneer is a family of mobile robots,
both two-wheel and four-wheel drive,
including the Pioneer 1 and Pioneer AT,
Pioneer 2™ -DX, -DXe, -DXf, -CE, -AT,
and now the Pioneer 2™-DX8 and -AT8
mobile robots.
These small, research
and development platforms share a
common architecture and foundation
software with all other ActivMedia
robots including the PeopleBot™ V1,
Performance
PeopleBot™,
and
PowerBot™ mobile robots. All employ a
client-server robotics control architecture that was originally developed by
Kurt Konolige, Ph.D., of SRI International,
Inc. and Stanford University.
PIONEER REFERENCE PLATFORM
ActivMedia robots set the standards for intelligent mobile platforms by containing all of
the basic components for sensing and navigation in a real-world environment. They
have become reference platforms in a wide variety of research projects, including
several US Defense Advanced Research Projects Agency (DARPA) funded studies.
Every ActivMedia robot comes complete with a sturdy aluminum body, balanced drive
system (two-wheel differential with caster or four-wheel skid-steer), reversible DC motors,
motor-control and drive electronics, high-resolution motion encoders, and long-life, hotswappable battery power, all managed by an onboard microcontroller and mobilerobot server software.
Besides the open-systems ActivMedia Robotics Operating System (AROS) software
onboard the robot controller, every ActivMedia robot also comes with a host of
advanced robot-control client software applications and application-development
environments. Software development includes our own foundation ActivMedia Robotics
Interface for Applications (ARIA), released under the GNU Public License, and complete
with fully documented C++ libraries and source code. SRI International’s Saphira robotics
development system with simulator and GUI, as well as support for advanced localization
and gradient-based navigation comes bundled, too. Several third-party robotics
applications development environments also have emerged from the research
community for ActivMedia robots, including Ayllu from Brandeis University and Player
from the University of Southern California.
Available applications software include the ActivMedia Robotics Basic Suite and Basic
Suite Pro with state-of-the-art autonomous and guarded operation of the robot and
accessories for surveillance, delivery, and a variety of other remote-agent applications.
Every ActivMedia robot also comes with a plethora of expansion options, including builtin hardware support for sonar and bump sensors and lift/gripper effectors, as well as
serial-port and server software support for a number of sensors, effectors, and control
accessories, like an onboard PC system, 5-DOF arm, robotic pan-tilt cameras, and much,
much more.
4
ActivMedia Robotics
PIONEER FAMILY OF MICROCONTROLLERS AND OPERATING SYSTEM SOFTWARE
The original Pioneer 1 mobile robot server had a microcontroller based on the Motorola
68HC11 microprocessor and powered by Pioneer Server Operating System (PSOS)
software. The first generation of Pioneer 2 and PeopleBot robots use a Siemens C166based microcontroller and Pioneer 2 Operating System (P2OS) software. Now, all new
ActivMedia robots, including Pioneer 2, PeopleBot, AmigoBot, and PowerBot, use a
multifunctional Hitachi H8S-based microcontroller and new ActivMedia Robotics
Operating System (AROS) software.2
Although differing in some interfacing features, processing power, support for various
sensors, and I/O, all ActivMedia Robotics’ server-operating system software—PSOS, P2OS,
and now AROS—are upwardly compatible. Accordingly, client software written to
operate a six-year old Pioneer AT will work with a brand new Pioneer 2-DX8. We’ve taken
great care to have all client commands for control of that original Pioneer 1 work
identically in our latest robots. Client-server communications protocols over a serial
communication link remain identical, too. See Chapter 6, ActivMedia Robotics
Operating System, for details.
HITACHI H8S-BASED MICROCONTROLLER
Your H8S-based ActivMedia robot also has a variety of expansion power and I/O ports for
attachment and close integration of a client PC, sensors, and a variety of accessories—
all accessible through a common application interface to the robot server software,
AROS. Features include:
18 MHz Hitachi H8S/2357 with 32K RAM and 128K FLASH
Optional 512K FLASH or SRAM expansion
3 RS-232 serial ports (4 connectors) configurable from 9.6 to 115.2 kbaud
4 Sonar arrays of 8 sonar each
2 8-bit bumpers/digital input connectors
1 P2 Gripper/User I/O connector with 8-bits digital I/O and 1 analog input
1 Expansion/bus connector containing
5 Analog input
2 Analog output
8-bit I/O bus with r/w and 4 chip-selects
2-axes, 2-button joystick port
User Control Panel
Controller HOST serial connector
Main power and bi-color LED battery level indicators
AUX and RADIO power switches with related LED indicators
RESET and MOTORS pushbutton controls
Piezo buzzer
Motor/Power Board (drive system) interface with PWM and motor-direction
control lines and 8-bits of digital input
With the onboard PC option, your ActivMedia robot becomes an autonomous agent.
With Ethernet-ready onboard autonomy, your robot even becomes an agent for multiintelligence work.
CLIENT SOFTWARE
Your ActivMedia robot is the server in a client-server environment: It handles the lowlevel details of mobile robotics, including maintaining the platform’s drive speed and
heading over uneven terrain, acquiring sensor readings, such as the sonar, and
managing attached accessories like the P2-Gripper. To complete the client-server
architecture, ActivMedia robots require a client connection: software running on a
2
AmigoBot has an H8S-based controller, but uses the AmigoBot Operating System tailored for its electronics.
5
computer connected with the robot’s controller via the HOST serial link and which
provides the high-level, intelligent robot controls, including obstacle avoidance, path
planning, features recognition, localization, gradient navigation, and so on.
An important benefit of ActivMedia Robotics’ client-server architecture is that different
robot servers can be run using the same high-level client. For example, we provide a
robot simulator that runs on the host machine that can look and act just like your real
robot. With the Simulator, you may conveniently perfect your application software, then
run it without modification on any ActivMedia robot. Several clients also may share
responsibility for controlling a single mobile server, which permits experimentation in
distributed communication, planning, and control.
Currently available client software and development environments for the Microsoft
Windows or Red Hat© Linux-based computing platform of your choice include:3
ActivMedia Robotics Basic Suite with WorldLink Internet surveillance and control
ActivMedia Robotics Interface for Applications (ARIA)
SRIsim ActivMedia robot simulator
SRI’s Saphira client-development suite with Colbert
Versions and updates for supported computing platforms are available to passwordregistered customers for download from our software website:
http://robots.activmedia.com
ActivMedia Robotics Basic Suite
To better support our customers, ActivMedia Robotics software designers have blended
and refined the best of advanced mobile robotics software found in the many
development environments into a suite of state-of-the-art software tools and
applications. We call this suite ActivMedia Robotics Basic Suite, and it includes the
following five modules plus a robot simulator:
NAVIGATOR is the crown jewel—a sophisticated
graphical-user control module with which you
access your ActivMedia robot’s many intelligent
capabilities, from guarded teleoperation to selfguided navigation along a planned path to a
goal that you select onscreen with a click of the
mouse. Navigator also lets you remotely share,
connect and operate the robot from the
Internet, or a local area network. You can see
and hear from afar what your robot sees and
hears through its camera and microphone.
Navigator even lets you chat and exchange
audio and video with others who may be
connected simultaneously.
Figure 3. Navigator and
WorldPass guide the robot to a
goal with a click of the mouse.
WORLDPASS is a free version of Navigator that lets you share youf robot with colleagues,
friends, and family. WorldPass provides all the networking and remote-control
functionality of Navigator, including network video and audio, but only connects with a
robot through a host running Navigator, not to one directly. You may distribute WorldPass
3
Some software may come bundled with your robot. Other packages require purchase for licensing. Some
software also are available for alternative operating systems, such as Macintosh, SunOS, Solaris, and BSD Unix.
6
ActivMedia Robotics
to anyone you want to use your robot, but it will not appear on your own menu since it
copies functionalities of Navigator, which you may not distribute.
MAPPER provides the tools you need to construct a map of your robot’s real operating
space (“world”). Navigator and WorldPass use this map floor plan to plan a path from
one point to another within a space.
TRAINER is a programming editor and robot interface in which you create and perfect
your own intelligent mobile robot-control programs with the simple, yet powerful Colbert
programming language.
SIMULATOR is not a separate module of Basic Suite. It is a connection option that provides
a virtual replacement for your robot. By connecting to the simulator instead of a real
robot, you can test Colbert programs, maps, and so on, when the real robot isn’t
practical or available.
AMIGOSOUNDS is for AmigoBot only. With AmigoSounds, you assemble recorded sounds
stored on your PC’s disk into a playlist of sounds for your AmigoBot. With AmigoSounds,
you may give AmigoBot different audio-based personalities.
ARIA
The ActivMedia Robotics Interface for Applications (ARIA) is a C++-based open-source
development environment that provides a robust client-side interface to a variety of
intelligent robotics systems, including your ActivMedia robot’s controller and accessory
systems.
ARIA is the ideal platform for integration of your own robot-control software, since it
neatly handles the lowest-level details of client-server interactions, including serial
communications, command and server-information packet processing, cycle timing,
and multithreading, as well as a variety of accessory controls, such as for the PTZ robotic
camera, the P2-Gripper, scanning laser-range finder, motion gyros, among many others.
What’s more, it comes with source code so that you may examine the software and
modify it for your own sensors and applications.
Figure 4. ActivMedia robots require a computer, typically a Windows©- or RedHat©
Linux-based PC, to run client software for intelligent robotics command and
control operations.
Saphira
Saphira, including the Colbert language, is a full-featured robotics control environment
developed at SRI International’s Artificial Intelligence Center. Saphira and its ARIA
foundation form the robotics-control and applications-development foundation for
much of the ActivMedia Robotics Basic Suite and many other ventures. The complete,
7
licensed Saphira robotics development environment, including C/C++ libraries, GUI
interface and Simulator, comes bundled with your ActivMedia robot.
Laser Navigation and Localization
A separate Laser Navigation and Localization package is available as a Saphira add-on.
It is a comprehensive suite of software tools and applications by which, with your laserscanning/range-finder enabled robot, you automatically create, edit, and use maps
and floorplans for advanced robotics applications including localization and gradient
navigation.
THE PIONEER LEGACY
Commercially introduced in Summer 1995, Pioneer 1 is the original platform. It came with
a single-board 68HC11-based robot microcontroller and the Pioneer Server Operating
System (PSOS) software. Its low-cost and high-performance caused an explosion in the
number of researchers and developers who now have access to a real, intelligent mobile
robotic platform.
Pioneer 1 and AT
Intended mostly for indoor use on hard, flat surfaces, the Pioneer 1 has solid rubber tires
and a two-wheel differential, reversible drive system with a rear caster for balance. The
Pioneer 1 came standard with seven sonar range finders (two side-facing and five
forward-facing) and integrated wheel encoders.
Software-wise, the Pioneer 1 initially served as a platform for SRI International's AI/fuzzy
logic-based Saphira robotics applications development. But it wasn't long before its
open architecture became the popular platform for the development of a variety of
alternative robotics software environments.
Many developers created software that interfaced directly with PSOS. Others extended
the capabilities of Saphira (PAI and P-LOGO are two good examples), while others have
implemented alternative robotics-control architectures, such as the subsumption-like
Ayllu.
Functionally and programmatically identical to the Pioneer 1, the four-wheel drive, skidsteering Pioneer AT was introduced in the Summer of 1997 for operation in uneven indoor
and outdoor environments, including loose, rough terrain.
Except for the drive system, there are virtually no operational differences between the
Pioneer AT and the Pioneer 1: The integrated sonar arrays and microcontrollers are the
same. The accessories available for the Pioneer 1 also work with the Pioneer AT. Further,
applications developed for the Pioneer 1 work with little or no porting to the Pioneer 2s.
Pioneer 2 and PeopleBot
The next generation of Pioneer Mobile Robots—including the Pioneer 2-DX, -CE, and -AT,
introduced in Fall 1998 through Summer 1999, improved upon the Pioneer 1 legacy while
retaining its many important advantages.4 Indeed, in most respects, particularly with
applications software, Pioneer 2 works identically to Pioneer 1 models.
The ActivMedia Robotics Pioneer 2 models DX, DE, DXe, DXf, and AT, and the V1 and
Performance PeopleBot robots use a high-performance 20 MHz Siemens 88C166-based
microcontroller, with independent motor/ power and sonar-controller boards for a
4
Price/performance ratio included! The much more capable and expandable Pioneer 2 was introduced four
years later for just a few hundred dollars (US) more than the original Pioneer 1.
8
ActivMedia Robotics
versatile operating environment. The controller has two RS232-standard communications
ports and an expansion bus to support the many accessories available for your
ActivMedia robot, as well as your own custom attachments.
Sporting a more holonomic body, larger wheels
and stronger motors for better indoor
performance, Pioneer 2-DX, -DXe, -DXf, and -CE
models,
like Pioneer 1, are two-wheel,
differential-drive mobile robots.
The four-wheel drive Pioneer 2-AT has
independent motor drivers. Unlike its Pioneer AT
predecessor, the Pioneer 2-AT comes with a stalldetection system and inflatable pneumatic tires
with metal wheels for much more robust
operation in rough terrain, as well as the ability to
carry nearly 30 kilograms (66 lbs) of payload and
climb a 60-percent grade. The newest version of
the 2-AT, introduced in mid-2001, includes an
integrated joystick port for manual operation
and a hinged top-plate for easy access to the
internal systems.
Figure 5. The Performance
PeopleBot sports an attractive body
design and bundled systems,
including voice synthesis and
recognition for human-interaction
research and applications.
Other Pioneer 2-like robots include the PeopleBot
robots, which were introduced in 2000. They are
architecturally Pioneer 2 robots, but with stronger
motors and integrated human-interaction
features, including a pedestal extension,
integrated voice and sound synthesis and
recognition—ideal for human-interaction studies
as well as for commercial and consumer mobilerobotics applications.
New Pioneer 2-DX8 and AT8 Mobile Robots
Two new models of Pioneer 2 appeared in the Summer of 2002, and are the topics of this
manual: The Pioneer 2-DX8 and –AT8 Mobile Robots. Both sport a new microcontroller
based on the Hitachi H8S microprocessor, with new control systems and I/O expansion
capabilities. The Pioneer 2-DX8 also has new, more powerful motors for better
navigational control and payload. Improved performance with little sacrifice in speed.5
Software-wise, the Pioneer 2-DX8 and –AT8’s are upwardly compatible with all other
ActivMedia robots, including Pioneer 1. The new ActivMedia Robotics Operating System
(AROS) software extends—but does not replace—the original PSOS and P2OS. This
means that even programs that interface at the lowest communication levels will work
with all Pioneer 1 and Pioneer 2 platforms. This also means that the higher level clients
and applications, including Saphira, ARIA, Basic Suite, and others including your own
software, will work with AROS and any host ActivMedia robot just as they had worked
with PSOS or P2OS.6 Of course, you will have to extend your client software, as we have
done with Saphira, ARIA, and others, in order to take full advantage of AROS.
To the relief of those who have invested years in developing software for Pioneer 1,
Pioneer 2 truly does combine the best of the new mobile robot technologies with the
tried-and-true Pioneer architecture.
5
6
The short-lived Pioneer 2-DXf has the same, more-powerful motors.
The two-time gold medal winners of the International RoboCup robot soccer competition used Pioneer 1s one
year and quickly converted to Pioneer 2s in the next year.
9
MODES OF OPERATION
You may operate your Pioneer 2 robot in one of five modes:
Server
Joydrive
Self-test
Maintenance
Standalone
Server Mode
The Pioneer 2-H8S microcontroller comes with fully programmable 128K FLASH and 32K
dynamic RAM included in its Hitachi 18 MHz H8S/2357 microprocessor. An additional
512K of dynamic RAM or FLASH-ROM is available as optional equipment. But we don't
recommend that you start learning H8S programming. Rather, the robot comes to you
installed with the latest AROS robotics server software.
In conjunction with client software, such as ARIA, Saphira, or ActivMedia Basic Suite
Navigator running on an onboard or other user-supplied computer, AROS lets you take
advantage of modern client-server and robot-control technologies to perform
advanced robot tasks.
Most users run their ActivMedia robot in server mode, because it gives them quick, easy
access to its robotics functionality while working with high-level software on a familiar
host computer.
Maintenance and Standalone Modes
For experiments in microcontroller-level operation of your robot’s functions, you may
reprogram the onboard FLASH for direct and standalone operation of your ActivMedia
robot. We supply the means to download, but not the microcontroller's programming
software, for you to work in standalone mode.
The utilities we provide for you to reprogram the H8S-based controller's FLASH also may
be used to update and upgrade your robot’s AROS. In a special Maintenance Mode,
you also adjust your robot’s operating parameters that AROS uses as default values on
startup or reset. See Chapter 7, “Updating & Reconfiguring AROS, for much more detail.
We typically provide the maintenance utilities and AROS upgrades free for download
from our website, so be sure to sign up for the pioneer-users email newslist. That's
where we notify our customers of the upgrades, as well as where we provide access to
ActivMedia robot users worldwide.
Joydrive and Self Test Modes
Finally, we provide onboard software and controller hardware that lets you drive the
robot from a tethered joystick when not otherwise connected with a controlling client.
And we provide some self-test programs that exercise your robot’s hardware and
software. We examine these modes in some detail in Chapter 5, Joydrive and Self-Tests.
10
ActivMedia Robotics
Chapter 3
Specifications & Controls
ActivMedia’s Pioneer robots may be smaller than most, but they pack an impressive
array of intelligent mobile robot capabilities that rival bigger and much more expensive
machines.
For example, the Pioneer 2-DX8 with onboard PC is a fully autonomous
intelligent mobile robot, but unlike other commercially available robots, the DX8’s
modest size lends itself very well to navigation in tight quarters and cluttered spaces,
such as classrooms, laboratories, and small offices.
At the same time, the powerful AROS server with ActivMedia Robotics client software, is
fully capable of mapping its environment, finding its way home, and performing other
sophisticated path-planning tasks.
Figure 6. The Pioneer 2-DX8’s physical dimensions and swing radius
PHYSICAL CHARACTERISTICS
Weighing only 9 kg (20 pounds
with one battery), the basic
Pioneer 2-DX8 Mobile Robot is
lightweight, but
its strong
aluminum body materials and
solid construction make it
virtually indestructible.
These characteristics also permit
it
to
carry
extraordinary
payloads: The DX8 can carry
up to 23 Kg (50 lbs.) additional
weight; the Pioneer 2-AT8 can
carry over 30 Kg (66 lbs.) more!
Yet, Pioneer 2s are lightweight
enough that it is also as easy to
transport as a suitcasea task
made even easier by the DX8's
built-in handle.
Figure 7. Pioneer 2-AT8’s Console and hinged deck.
11
Specifications and Controls
MAIN COMPONENTS
ActivMedia robots are composed of several main parts:
Deck
User Control Panel
Body, Nose, and Accessory Panels
Sonar Array(s)
Motors and encoders
Batteries and Power
Figure 8. Components of the Pioneer 2-DX8.
Deck
The original Pioneer 2-DX, CE, and AT decks are one piecethe top plate of the robot.
The newer DXe and AT, and now the DX8 and AT8 models have hinged top-plates which
give you much easier access to the internal components of the robot. See Chapter 8,
Maintenance & Repair, for access details.
The robot’s deck is simply the flat surface for mounting projects and accessories, such as
the PTZ Robotic Camera or a laser range finder. Feed-through slots on each side of the
DX8 deck let you conveniently route cables to the accessory panels on the side panels
of the robot. A removable plug in the middle of the deck on all models gives you
convenient access to the interior of the robot.
When mounting accessories, you should try to center the robot's payload over the drive
wheels. If you must add a heavy accessory to the edge of the deck, counterbalance
the weight with a heavy object on the opposite end. A full complement of batteries
helps balance the robot, too.
User Control Panel
The User Control Panel is where you have access to the AROS-based onboard
microcontroller. Found inside the AT8’s hinged access panel on the deck or on the leftside panel of the DX8, it consists of control buttons and indicators, and an RS232compatible serial port with a 9-pin DSUB connector.
The red PWR LED is lit whenever main power is applied to the robot. The green STAT LED
state depends on the operating mode and other conditions. It flashes slowly when the
controller is awaiting a connection with a client and flashes quickly when in joydrive
12
ActivMedia Robotics
mode or when connected with a client and the motors are engaged. It also flashes
moderately fast when in maintenance mode.
The BATTERY LED’s apparent color depends on your robot’s battery voltage: green when
fully charged (>12.5 volts) through orange, and finally red when the voltage is below
11.5. When in maintenance mode, however, the BATTERY LED glows bright red only,
regardless of battery charge.
A built-in piezo buzzer (audible through the holes just above the STAT and PWR LEDs)
provides audible clues to the robot’s state, such as upon successful startup of the
controller and a client connection. An AROS client command lets you program the
buzzer, too, to play your own sounds.
The SERIAL connector, with incoming
and outgoing data indicator LEDs (RX
and TX, respectively), is through where
you may interact with the H8S
microcontroller from an offboard
computer for tethered client-server
control and for AROS system
maintenance. The port is shared
internally by the HOST serial port, to
which we connect the onboard
computer or radio modem. Digital
switching circuitry disables the internal
HOST serial port if the computer or radio
modem is OFF. However, serial port
interference will be a problem if the
HOST and User Control SERIAL ports are
both occupied and engaged.
Accordingly, turn off RADIO or
Figure 9. P2-DX8 User Control Panel
computer power if you intend to use
the SERIAL port, or remove the SERIAL
port cable if you plan to connect with
the controller through the onboard radio modem or PC.
RADIO and AUX are pushbutton switches which engage or disengage power to the
respective devices on the Motor/Power Interface board. See Appendix B for power
connections. Respective red LEDs indicate when power is ON.
The red RESET pushbutton acts to unconditionally reset the H8S controller, disabling any
active connections or controller-attached devices, including the motors.
The white MOTORS pushbutton’s actions depend on the state of the controller. When
connected with a client, push it to manually enable and disable the motors, as its label
implies. When not connected, press the pushbutton once to enable joydrive mode, and
again to enable the motors self-test.
To engage AROS maintenance mode, you press and hold the white MOTORS button,
press and release the red RESET button, then release MOTORS. In the future, the white
MOTORS button may engage other modes, such as when in AROS standalone mode.
Body, Nose, and Accessory Panels
Your ActivMedia robot’s sturdy, but lightweight aluminum body houses the batteries,
drive motors, electronics, and other common components, including the front and rear
sonar arrays. The body also has sufficient room, with power and signal connectors, to
13
Specifications and Controls
support a variety of robotics accessories inside, including an A/V wireless surveillance
system, radio modems or radio Ethernet, onboard computer, and more.
On all models except the Pioneer 2-CE, a hinged rear door gives you easy access to the
batteries, which you may quickly hot-swap to refresh any of up to three batteries.
The nose is where we put the onboard PC. The nose is readily removable for access:
Simply remove two screws from underneath the front sonar array. With the 2-AT8, a third
screw holds the nose to the bottom of the body. The DX8’s nose is hinged at the bottom.
Once the mounting screws are removed, simply pull the nose away from the body.7 This
provides a quick and easy way to get to the accessory boards and disk drive of the
onboard PC, as well as to the sonar gain adjustment for the front sonar array. The nose
also is an ideal place for you to attach your own custom accessories and sensors.
The Pioneer 2-DX8 comes with a removable right-side panel through which you may
install accessory connectors and controls. A special side panel comes with the onboard
PC option, for example, which gives users monitor, keyboard, mouse, and 10Base-T
Ethernet access, as well as the means to reset and switch power for the onboard
computer.
The AT comes with a single access panel in the deck. Fastened down with finger-tight
screws, the User Control Panel and onboard computer controls are accessible beneath
the hinged door.
All models come with an access port near the center of the deck through which to run
cables to the internal components.
Sonar Arrays with Gain Adjustment
Natively, H8S/AROS-based ActivMedia
robots support up to four sonar arrays,
each with eight transducers that
provide object detection and range
information for collision avoidance,
features recognition, localization, and
navigation. The sonar positions in all
Pioneer 2 arrays are fixed: one on each
side, and six facing outward at 20degree intervals. Together, fore and
aft sonar arrays provide 360 degrees of
nearly seamless sensing for the
platform.
Each sonar array comes with its own
driver electronics for independent
Figure 10. Pioneer 2 sonar array
control. Each array’s sonar are
multiplexed; the sonar acquisition rate
is 25 Hz (40 milliseconds per sonar per array. Sensitivity ranges from ten centimeters (six
inches) to over four meters. You may control the sonar’s firing pattern through software;
the default is left-to-right in sequence 0 to 7 for each array.
The driver electronics for each array is calibrated at the factory. However, you may
adjust the array’s sensitivity and range to accommodate differing operating
7
With older Pioneer 2 models, you also needed to remove the Gripper before removing the Nose.
With the DXE, DX8, and newer ATs, the Nose and Gripper come off together, so you only need to
remove the Nose’s mounting screws.
14
ActivMedia Robotics
environments. The sonar gain control is on the underside of the sonar driver board,
which is attached to the floor of each sonar module.
Sonar sensitivity adjustment controls are accessible directly, although you may need to
remove the Gripper to access the front sonar, if you have that accessory attached.8 For
the front sonar, for instance, locate a hole near the front underside of the array through
which you can see the cap of the sonar-gain adjustment potentiometer. Using a small
flat-blade screwdriver, turn the gain control counterclockwise to make the sonar less
sensitive to external noise and false echoes.
Low sonar-gain settings reduce the robot’s ability to see small objects. Under some
circumstances, that is desirable. For instance, attenuate the sonar if you are operating in
a noisy environment or on uneven or highly reflective floora heavy shag carpet, for
example. If the sonar are too sensitive, they will “see” the carpet immediately ahead of
the robot as an obstacle.
Increase the sensitivity of the sonar by turning the gain-adjustment screw clockwise,
making them more likely to see small objects or objects at a greater distance. For
instance, increase the gain if you are operating in a relatively quiet and open
environment with a smooth floor surface.
Motors and Position Encoders
Pioneer 2’s drive systems use high-speed, high-torque, reversible-DC motors, each
equipped with a high-resolution optical quadrature shaft encoder for precise position
and speed sensing and advanced dead-reckoning. Motor gearhead ratios and
encoder ticks per revolution vary by robot model. However, AROS converts most client
commands and server information from platform independent distance units into
platform-dependent encoder ticks, as expressed in the Ticksmm FLASH parameter,
calculated as the encoder counts (4 * 500, typically) divided by the product of wheel
circumference times gear ratio.
Batteries and Power
Pioneer 2 robots may contain up to three, hot-swappable, seven ampere-hour, 12 volts
direct-current (VDC) sealed lead/acid batteries (total of 252 watt-hours), accessible
through a hinged and latched back door. We provide a suction cup tool to help grab
and slide each battery out of its bay. Spring contacts on the robot’s battery power
board alleviate the need for manually attaching and detaching power cables or
connectors.
Balance the batteries in your robot.
Battery life, of course, depends on the configuration of accessories and motor activity.
Pioneer 2-AT8 charge life typically ranges from two to three hours. The Pioneer 2-DX8 runs
continuously for six hours or more; up to four hours with onboard computer. If you don’t
use the motors, your robot’s microcontroller will run for several days on a single battery
charge.
IMPORTANT: Batteries have a significant impact on the balance and operation of your
robot.
Under most conditions, we recommend operating with three batteries.
Otherwise, a single battery should be mounted in the center, or two batteries inserted on
each side of the battery container.
8
It’s easier to remove the DXE’s Nose with Gripper attached.
15
Specifications and Controls
Battery Indicators and Low Voltage Conditions
The User Control Panel has a bi-color LED labeled BATTERY that visually indicates current
battery voltage. From approximately 12.5 volts and above, the LED glows bright green.
The LED turns progressively orange and then red as the voltage drops to approximately
11.5 volts.
Aurally, the User Control Panel’s buzzer, if active (see the AROS SoundTog client
command and FLASH parameter), will sound a repetitive alarm if the battery voltage
drops consistently below the FLASH LowBattery level. If the battery voltage drops below
11 volts, the microcontroller’s watchdog server automatically shuts down a client
connection and notifies the computer, via the HOST HRNG pin, to shut down, thereby
preventing data loss or systems corruption due to low batteries.
Recharging
Typical battery recharge time using the recommended accessory (800 mA) charger
varies according to the discharge state; it is roughly equal to three hours per volt per
battery. The Power Cube accessory allows simultaneous recharge of three swappable
batteries outside the robot.
With the optional high-speed (4A maximum current) charger, recharge time is greatly
reduced. It also supplies sufficient current to continuously operate the robot and
onboard accessories, such as the onboard PC and radios. But with the higher-current
charger, care must be taken to charge at least two batteries at once. A single battery
may overcharge and thereby damage both itself and the robot.
Both recommended chargers are specifically designed for optimal and safe lead-acid
battery recharging. Indicators on the module’s face show fast-charge mode (typically
an orange LED) in which the discharged batteries are given the maximal current, and
trickle mode (green LED indicator), which the batteries are given only enough current to
remain at full charge.
ONBOARD PC
The Pioneer 2 robot line has provisions for an
onboard, internally integrated PC. Mounted just
behind the nose of the robot, the PC is a common
EBX form-factor that comes with up to four serial
ports, 10/100Base-T Ethernet, monitor, keyboard,
and mouse ports, two USB ports, and support for
floppy, as well as IDE hard-disk drives.
For
additional functionality, such as for sound, video
framegrabbing, firewire or PCMCIA bus, and
wireless Ethernet, the onboard PC accepts PC104
and PC104-plus (PCI bus-enabled) interface cards
that stack on the motherboard.
Necessary 5 VDC power comes from a dedicated
DC:DC converter, mounted nearby. A hard-disk
drive is specially shock-mounted to the robot’s
nose, in between a cooling fan and computer
speaker.
16
Figure 11. Pioneer 2-DX
computer control sidepanel
ActivMedia Robotics
Computer Control Panel
User-accessible communication and control port connectors, switches, and indicators for
the onboard PC are on the Computer Control Panel, found on the right sidepanel of the
DX8 or in the hinged control well next to the User Controls of the AT8.
Figure 12. Pioneer 2-AT8 computer and user controls
The controls and ports use common connectors: standard monitor DSUB and PS/2
connectors on the mouse and keyboard. The Ethernet is a 10/100Base-T standard RJ-15
socket.
The ON/OFF slide switch directly controls power to the onboard PC—through Main
Power, unlike some earlier versions of the onboard system which included a delayed
power shutdown. The PWR LED lights when the computer has power.
The HDD LED lights when the onboard hard-disk drive is active. The RESET button restarts
the PC.
Operating the Onboard PC
This is a brief overview of operating the onboard PC. Please consult the Computer
Systems Documentation and the OS manufacturer’s documentation for more detail.
ActivMedia Robotics’ software runs over either Microsoft Windows (currently
Windows2000) or RedHat Linux (currently version 7.x). Accordingly, we prefer (the latter,
in particular) and support those OSes on the onboard PC.
When we perform the PC OS and software installation and configuration, we install our
software typically in /usr/local on Linux systems, or in C:\Program Files\ActivMedia
Robotics under Windows. Of course, we install the appropriate drivers for the various
accessory expansion cards, such as for a framegrabber or sound card. Please consult
the respective ActivMedia Robotics application software manuals, such as the
ActivMedia Color Tracking System (ACTS) for the video framegrabber or Festival for the
sound card.
The first time you access the onboard PC, we recommend that you put the robot up on
blocks so that it cannot inadvertently move and wreak havoc with external connections.
Then attach a keyboard, monitor, and mouse to their respective sockets on the
Computer Control Panel. Switch Main Power and then the computer power switch on.
After bootup, log in to the system. We’ve already created two users: one with common
systems and file read/write permissions (guest) and one with full-access to the PC
17
Specifications and Controls
software and OS—root (Linux) or administrator (Windows). If there is a password
(usually not) it’s activmedia. When connected directly, we recommend you log in with
full-access capabilities so that you can do systems setup and maintenance, such as
change passwords, add users, and set up the network. Do note that with Linux systems,
you cannot log in remotely over the network as root; you must log in as a common user
and use the ‘su –‘ command thereafter to attain superuser (root) status.
Once logged into a Windows system, it’s simply a matter of clicking the mouse to select
programs and applications. With Linux, use the ‘startx’ command to enable the XWindows desktop and GUI environment. You might perform some of the QuickStart
activities this way, although motion is impractical because of the monitor, mouse, and
keyboard tethers. You may remove these while the system is active at your own risk.
Rather, we suggest that you run the QuickStart activities from an offboard computer first
(onboard PC off), and then tackle the networking issues to establish a remote, preferably
wireless connection with your robot.
PC Networking
We ship installed PC systems’ preset and tested at a fixed IP address with Class-C network
configuration. We allocate the same IP to both the wired and wireless Ethernet ports,
typically 192.168.100.32. Although you need not fuss with drivers or low-level device
settings, before you may establish a network connection with the onboard PC (not the
robot’s controller!), even if just through a “cross-over” Ethernet cable to another PC,
you’ll need to reconfigure the robot’s PC network settings. Please consult with your
network systems administrator for networking details.
Briefly, with Windows, go to the Control Panel’s Network and Dialup Connections
wizard and choose the networking device’s Properties to change the IP address and
other details. Under Linux, there are similar, GUI-based tools under X-Windows to help
you set up the network, such as netcfg, but we prefer to edit (emacs or vi) the salient
network settings in /etc/sysconfig/network and in the specific device configuration
files found in
/etc/sysconfig/network-scripts/, such as ifcfg-eth0 (wired
Ethernet) and ifcfg-eth1 or ifcfg-wvlan0 (wireless).
From Windows, use the Control Panel Network and Dialup Connections tool to
enable or disable a particular device. From Linux, use ifup and ifdown to enable or
disable an Ethernet device. For example, as superuser, type ‘ifdown eth0; ifup
eth1’ to switch from a tethered to a wireless Ethernet connection.
For remote connections over Ethernet to your onboard PC, simply use telnet or the more
secure ssh to log in to your Linux system. Allow X-windows server connections at your
remote PC (xhost) if you plan to export the X-Windows display from the robot PC for
remote GUI-based controls (export DISPLAY=remote’s hostname or IP:0, for
example).
With Windows, you will need a special remote-control application to establish a
connection from a remote computer to the onboard PC over the network; VNCserver,
for example, or Timbuktu.
Please note that you may not connect with the robot’s microcontroller directly over the
network: That is, you cannot run a client application, such as the ARIA demo or Saphira,
on the remote PC and choose to directly connect with the robot server by selecting the
robot PC’s IP address. Rather, either run the client application on the onboard PC and
export the display and controls over the network to the remote PC (preferred), or use the
ARIA-based IPTHRU programs (see program sources in Aria/examples) to negotiate the
IP-to-serial conversions needed by the client-server connection.
18
ActivMedia Robotics
SAFETY AROS WATCHDOGS
AROS contains a communications watchdog that will halt the robot’s motion if
communications between a PC client and the robot server are disrupted for a set time
interval, nominally two seconds (watchdog parameter). The robot will automatically
resume activity, including motion, as soon as communications are restored.
AROS also contains a stall monitor.
If the drive exerts a PWM pulse that equals or
exceeds a configurable level and the wheels fail to turn (stallval), motor power is cut
off for a configurable amount of time (stallwait). The server software also notifies the
client which motor is stalled. When the stallwait time elapses, motor power
automatically switches back ON and motion continues under server control.
There also is the LowBattery FLASH parameter that sets off an audible warning when the
batteries fall below a safe charge level. To avoid systems corruptions, the AROS servers
force a soft system shutdown, possibly including the onboard PC (Linux genpowerd),
when the batteries fall below approximately 11 volts.
All these “failsafe” mechanisms help ensure that your robot will not cause damage or be
damaged during operation. You may reconfigure the various FLASH-based parameter
values to suit your application. See Chapter 7, Updating & Reconfiguring AROS, for
details.
19
Quick Start
Chapter 4
Quick Start
This chapter describes how to quickly set up and operate your new ActivMedia robot
with the ARIA demonstration software. For more details about programming and
operating your ActivMedia mobile robot with ARIA, Saphira, or other client software, see
their respective programming manuals.
PREPARATIVE ASSEMBLY
Your ActivMedia robot comes fully assembled and ready for out-of-the-box operation.
However, you may need to attach some accessories that were shipped separately for
safety. The procedures we describe herein are for control of the basic robot.
If you have the onboard PC option, we recommend that you leave it off and perform
the following tests with a tethered laptop or desktop computer first, then attack the
many networking issues before you establish a remote-control connection with the
onboard.
Install ARIA
ARIA client software-development environment, including the ARIA demonstration
program and robot simulator, come on CD-ROM with your new robot. They also come
already installed in your robot’s onboard PC, if you purchased this option.
ActivMedia Robotics customers also may obtain ARIA and related software and updates
from our support website:
http://robots.activmedia.com
When installed, ARIA typically requires eight megabytes of hard-disk space.
The Windows version of ARIA is a self-extracting InstallShield® archive. Simply doubleclick its .exe icon and follow the extraction program’s instructions. Normally, ARIA is put
into a directory named C:\Program Files\ActivMedia Robotics\ARIA.
The
demonstration program and simulator get put into the bin\ subdirectory.
For
convenience, you may access all these from the Start Menu’s Programs option. The
demonstration program’s source code and MSVC++ project and workspace files are in
the examples\ subdirectory.
Linux users must have superuser (root) permissions in order to install ARIA. It comes as an
RPM installation archive:
rpm -ihv aria...
and gets installed in /usr/local/Aria. The ARIA demonstration program and simulator
get put into the bin/ subdirectory. The demonstration sources and makefile are in the
examples/ subdirectory.
Linux users should also be sure they have permission to read/write through their PC’s serial
port that connects with the robot. The default is /dev/ttyS0.
ARIA is a terminal
application that does not include a GUI, so its programs do not require X-Windows.
CAREFUL
Slide the batteries into the robot TERMINALS LAST.
Otherwise, you will damage the robot.
20
ActivMedia Robotics
Install Batteries
Out of the box, your ActivMedia robot comes with its batteries fully charged, although
shipped separately. Just slide one or up to three batteries into robot’s battery box
through the back door. Balance them: one in the center; if two, then one on each side.
Client-Server Communications
Your robot requires a serial communication link with a client PC for operation. The serial
link may be:
A tether cable from the robot’s 9-pin serial connector on the User Control Panel
to a computer
A piggyback laptop cabled to the User Control Panel
An optional radio modem pair—one inside the robot and a companion
connected to a serial port on your PC
An integrated onboard PC wired internally for direct onboard control
STARTING UP CLIENT AND SERVER
We recommend that you first test your robot and are confident of its operation before
putting it together with and controlling it from the ARIA demonstration client.
Drive Self-Test
Position your ActivMedia robot on the floor or ground in an open space, or up on blocks
if you have attachments to the onboard computer. Slide the Main Power switch to ON.
You should hear an audible beep, and the Power light and Battery light should glow
while the Status light blinks rhythmically on the User Control Panel. The same AROS
initialization sequence also occurs whenever you press the red RESET button.
Now press the white MOTORS button twice to engage the motor’s self-test. If your robot is
working properly, it should move or rotate the wheels in four brief, but distinctive turns,
forward and back, left and right. If not, please contact support@activmedia.com for
assistance.
Press the red RESET button to prepare for the client connection.
Client Server Connection
To start the ARIA client demonstration program and connect with the robot, we presume
that you have completed the preparatory stages of this chapter by installing ARIA (as
needed), by starting and testing the robot, and by connecting the client PC with the
AROS controller via a serial link. Now it is time to connect the ARIA demonstration
program with your robot.
If you are using radio modems to communicate wirelessly from a desktop PC to the
robot, now is a good time to power the units. The RADIO power switch for the integrated
robot modem is on the User Control Panel. The HOST radio modem should be attached
to your PC and powered via the module that came with the unit.
Windows users may select the ARIA demo from the Start menu, in the ActivMedia
Robotics program group. Otherwise, start if from the ARIA bin\ directory.
Linux users will find the compiled demo in /usr/local/Aria/bin/ or in examples/. Start
it:
%s ./demo
21
Quick Start
NOTE
By default, the ARIA demo connects with your robot server through your
client PC’s COM1 (Windows) or /dev/ttyS0 (Linux) serial port.
You must alter the demo source and recompile for a different serial port.
A Successful Connection
ARIA prints out lots of diagnostic text as it negotiates a connection with the robot. If
successful, the client requests various AROS servers to start their activities, including sonar
polling, position integration, and so on.
The microcontroller sounds an audible
connection cue, and you should hear the robot’s sonar ping with a distinctive and
repetitive clicking. In addition, the motors-associated STATUS LED on the User Control
Panel should light continuously (was flashing slowly while awaiting connection). Note
that the ARIA demo automatically engages your robot’s motors though a special client
command. Normally, the motors are disengaged when first connecting.
The amber SERIAL port indicator LEDs on the robot’s User Control Panel should blink to
indicate ARIA-client to AROS-server communications, too.
OPERATING THE ARIA DEMONSTRATION CLIENT
When connected with the
ARIA demo client, your robot
becomes
responsive
and
intelligent. For example, it
moves cautiously. Although it
may
drive
toward
an
obstacle, your ActivMedia
robot will not crash because
the ARIA demo includes
obstacle-avoidance behaviors which enable the robot to
detect and actively avoid
collisions.
The ARIA demo displays a
menu of robot operation
options. The default mode of
operation is teleop.
In
teleop mode, you drive the
robot manually, using the
arrow keys on your keyboard
or a joystick connected to the
client PC’s joystick port (as
opposed to a joystick port on
the robot).
Table 2. ARIA demo operation modes
MODE
HOT
DESCRIPTION
KEY
laser
l
Displays the closest and furthest readings
from the robot’s laser range finder
io
i
Displays the state of the robot’s digital
and analog-to-digital I/O ports
position
p
Displays the coordinates of the robot’s
position relative to its starting location
bumps
b
Displays the status of the robot’s bumpers
sonar
s
Displays the robot’s sonar readings
camera
c
Controls and exercises the robot’s pantilt-zoom robotic camera
gripper
g
Controls, exercises, and displays status of
the robot’s Gripper
wander
w
Sends the robot to move around at its own
whim, while avoiding obstacles
teleop
t
Allows the user to drive and steer the
robot via the keyboard or a joystick
connected to the computer
While
driving
from
the
keyboard, each keypress speeds the robot forward or backward or incrementally
changes its direction incrementally. For instance, when turning, it is often useful to press
the left- or right-turn key rapidly several times in a row, because the turn increment is
small.
22
ActivMedia Robotics
The other modes of ARIA demo operation
give you access to your robot’s various
sensors
and
accessories,
including
encoders, sonar, laser, Gripper, a pan-tiltzoom robotic camera, I/O port states,
bumpers, and more. Accordingly, use the
ARIA demo not only as a demonstration
tool, but as a diagnostic one, as well, if you
suspect a sensor or effector has failed or is
working poorly.
Table 2. Keyboard teleoperation
KEY
ACTION
↑
Increment forward velocity
↓
Decrement forward velocity
←
Incremental left turn
→
Incremental right turn
space
All stop
Access each ARIA demo mode by pressing
its related hot-key; ‘t’, for instance, to
select teleoperation. Each mode includes
onscreen instructions and may have sub-menus for operating of the respective device.
DISCONNECTING
When you finish, press the Esc key to disconnect the ARIA client from your robot server
and exit the ARIA demonstration program. Your ActivMedia robot should disengage its
drive motors and stop moving, and its sonar should stop firing. You may now slide the
robot’s Main Power switch to OFF.
QUICKSTART TROUBLESHOOTING WITH SRISIM
Most problems occur when attempting to connect the ARIA client with a robot for the
first time. The process can be daunting if you don’t make the right connections and
installations.
ATTENTION!
The ARIA client to robot server connection is SERIAL only.
You may not connect ARIA or other client software with the robot
controller over a network TCP/IP link.
Rather, EXPORT the onboard PC (display, keyboard, and mouse) to a
remote terminal over the network but run ARIA or other client software
locally on the onboard PC.
Proper Connections
Make sure you have ARIA properly installed and that your robot and connections are
correct. A common mistake with Linux is not having the proper permissions on the
connecting serial port.
Make sure your robot’s batteries are fully charged (battery LED green). The robot servers
shut down and won’t allow a connection at under 10.5 volts.
The most common problems occur with the serial connection itself, particularly between
radio modems. If you are using the onboard PC or radio modems, the serial connection
is internal and established at the factory; you should not have problems with those
cables. Simply make sure the RADIO switch is ON, for example. And remove any serial
cable that is plugged into the User Control Panel as it may interfere with internal serial
communication.
23
Quick Start
With other serial connections, make sure to use the proper cable: a “pass-through” one,
minimally connecting pins 2, 3, and 5 of your PC’s serial port to the HOST radio modem of
the pair or to the robot’s serial port on the User Control Panel. The HOST radio modem
should be set to DCE mode and plugged into the serial connector on your PC that serves
as COM1 or /dev/ttyS0. To verify that you have the correct cable to the modem, plug it
in directly to the User Control Panel serial port on the robot and turn the RADIO switch
OFF. If you get the ARIA demo to connect with the robot this way, something is wrong
with the modems or there is excessive radio interference disrupting your wireless
communications.
If you access the wrong serial port, the ARIA demonstration program will display an error
message. If the robot server isn't listening, or if the serial link is severed somewhere
between the client and server (cable loose, or a modem OFF, for instance), the client will
attempt "Syncing 0" several times and fail. In that case, RESET the robot and check your
serial connections. For instance, if you are using radio modems, the DCD lamp on the
HOST unit next to your PC should light up. If it doesn't, it means it cannot find the one in
the robot.
If for some reason communications get severed between the ARIA client and AROS
server, but both the client and server remain active, you may revive the connection with
little effort: If you are using radio modems, first check and see if the robot is out of range.
To test for range limits, simply pick up the robot and move it closer to the basestation
radio modem. If the robot was out of range, the connection should resume. If not,
check to make sure that radio modems were not inadvertently switched OFF.
Communications also will fail if the client and/or server is somehow disabled during a
session. For instance, if you inadvertently switch off the robot’s Main Power or press the
RESET button, you must restart the connection. Turning the Main Power switch OFF and
then back ON, or pressing the RESET button puts the robot servers back to their wait state,
ready to accept client connections again. If the ARIA demo or other client application is
still active, simply press esc and restart the.
SRIsim
To verify proper installation of the software, you might run the robot simulator, SRISim. It
is in the same directory as the ARIA demonstration program. Start SRIsim first, then the
ARIA demo program. ARIA should successfully connect with the simulator if the software
has been installed correctly.
Linux users take note: SRIsim is a GUI program that graphically displays a simulated
robot and its world environment in which it operates. Accordingly, you will need to be
running X-windows (typically “startx”) to use it.
SRIsim looks like a real robot to the ARIA client, so you can operate the demo as you do
your own ActivMedia robot. SRIsim includes simulated worlds and different robot profiles
which you select from the Files menu, too, so you can see how different robots might
navigate in a real or imagined space.
24
ActivMedia Robotics
Chapter 5
Joydrive and Self-Tests
Although not all models come standard with a joystick port, your robot’s H8S-based
controller has a joystick connector and AROS contains a joydrive server for manual
operation of your Pioneer 2-AT8 or –DX8.9 And AROS comes with a short self-test routine
for your robot’s drive system.
To run in either joydrive or self-test mode, start up or RESET the robot into its AROS wait
state. You may press the RESET button at any time to disable self-test and joydrive
modes. You have about 10 seconds to engage and complete the joystick calibration
and begin driving the robot or to enter into motors self-test mode before the controller
automatically cancels joydrive mode and reverts to waiting for a client connection.
You may also enable AROS’ joydrive server while connected with a client by sending the
client command number 47 with the integer argument 1.
JOYDRIVE MODE
To joydrive your robot when not connected with a client program, switch the robot’s
Main Power ON or RESET the controller, then press the white MOTORS button on the User
Control Panel once. Listen for a rhythmic, low-tone beeping indicating joydrive mode.
To joydrive your robot while it is connected with a client (overrides client-based drive
commands for manual operation while recording a map, for instance), you must have
the client software send the AROS command number 47 with an integer argument 1 to
enable the joydrive servers. The first time you press and release the joystick fire button
after AROS receives the command, you engage self-calibration mode (see below).
Have your client send the AROS joydrive command number 47 with an integer argument
of 0 to disable the joystick drive-override.
The joystick is self-calibrating: When you first enable joydrive mode, either by the client
command or when in self-test joydrive mode, AROS detects the joystick’s center and
extreme positions and saves these values to balance the driving action. Accordingly,
rotate the joystick around its extreme limits and then let the joystick handle find its default
centered position before pressing the fire button and starting to joydrive the robot. Try
exiting (RESET or client command 47, depending on mode) and restarting joydrive mode
if the joystick doesn’t seem to function well.
The joystick’s fire button 1 acts as the joydrive “deadman”—press it to start driving;
release it to stop the robot’s motors. The robot should drive forward and reverse, and
turn left or right in response and at speeds relative to the joystick’s position.
When not connected with a client control program, releasing the joystick fire button
stops the robot. However when connected with a client, the client program resumes
automatic operation of your robot’s drive system. So, for example, your robot may
speed up or slow down and turn, depending on the actions of your client program.
You may adjust the maximum translational and rotational speeds, even disable joydrive
mode, through special AROS FLASH configuration parameters. See Chapter 7, Updating
& Reconfiguring AROS, for details.
Press the white MOTORS button on the User C
9
The joystick adaptor kit, including the 15-pin DSUB joystick connector and pull-up resistors, if not installed on
your robot, is available for nominal fee through sales@activmedia.com.
25
Joydrive and Self Tests
ENGAGING SELF-TESTS
To enable self-test mode, press the white MOTORS button twice after startup or RESET.10
ATTENTION!
Place your robot on the floor or ground and have everyone step
back before engaging self-tests.
Currently, the only AROS self-test exercises your ActivMedia robot’s drive motors. During
this test, the robot is not at all conscious of bystanders. Please have everyone step back
and remove any obstacles from within a diameter of four to five feet around before
engaging the self-test.
The motor’s self-test begins by engaging the left drive wheel, first forward, then in reverse,
each to complete a partial turn clockwise, then counterclockwise. Similarly, the right
wheel engages, first forward, then reverse to complete partial turns, first
counterclockwise, then clockwise.
The H8S-AROS controller reverts to its client-connection wait state after completing the
motors self-test.
10
As described above, the first MOTORS press and release puts the robot into joydrive mode.
26
ActivMedia Robotics
Chapter 6
ActivMedia Robotics Operating System
All ActivMedia robots use a client-server
mobile robot-control architecture developed
by Dr. Kurt Konolige and others at SRI
International.
In the model, the robot’s
controller servers work to manage all the lowlevel details of the mobile robot’s systems.
These include operating the motors, firing the
sonar, collecting sonar and wheel encoder
data, and so onall on command from and
reporting to a separate client application,
such as Saphira, ARIA, or Basic Suite
Navigator.
With this client/server architecture, robotics
applications developers do not need to
know many details about a particular robot
server, because the client insulates them
from this lowest level of control. Some of you,
however, may want to write your own
robotics control and reactive planning
programs, or just would like to have a closer
programming relationship with your robot.
This chapter explains how to communicate
with and control your ActivMedia robot via
the ActivMedia Robotics Operating System
(AROS) client-server interface. The same
AROS functions and commands are
supported in the various client-programming
environments that accompany your robot or
are available for separate license.
Figure 13. ActivMedia Robotics
client-server control architecture
Experienced Pioneer users can be assured that AROS is upwardly compatible with all
ActivMedia robots, implementing all the same commands and information packets that
first appeared in the Pioneer 1-based PSOS and in the original Pioneer 2-based P2OS.
AROS, of course, extends the servers to add new functionality, improve performance,
and provide additional information about the robot's state and sensing.
CLIENT-SERVER COMMUNICATION PACKET PROTOCOLS
ActivMedia robots communicate with a control client using special client-server
communication packet protocols, one for command packets from client to server and
another for server information packets (SIPs) from the server to client. Both protocols are
bit streams consisting of five main elements: a two-byte header, a one-byte count of the
number of subsequent packet bytes, the client command or SIP packet type, command
data types and argument values or SIP data bytes, and, finally, a two-byte checksum.
Packets are limited to a maximum of 208 bytes each.
The two byte header which signals the start of a packet is the same for both clientcommand packets and SIPs: 0xFA, 0xFB. The byte count value counts the number of all
subsequent bytes in the packet including the checksum, but not including the byte
count value itself of the header bytes.
Data types are simple and depend on the element (see descriptions below): client
commands, SIP types, and so on, are single 8-bit bytes, for example. Command
27
Pioneer 2 Operating System
arguments and SIP values may be 2-byte integers, ordered as least-significant byte
always first. Some data are strings of up to a maximum 200 bytes, prefaced by a length
byte. Unlike common data integers, the two-byte checksum appears with its mostsignificant byte first (opposite order).
Packet Checksum
Calculate the PSOS/P2OS/AROS client-server packet checksum by successively adding
data byte pairs (high byte first) to a running checksum (initially zero), disregarding sign
and overflow.
If there is an odd number of data bytes, the last byte is XORed to the
low-order byte of the checksum.
int calc_chksum(unsigned char *ptr)
{
int n;
int c = 0;
// ptr is array of bytes
// first is data count
n = *(ptr++);
/* Step over byte count
*/
n -= 2;
/* don't include checksum word */
while (n > 1)
{
c += (*(ptr)<<8) | *(ptr+1);
c = c & 0xffff;
n -= 2;
ptr += 2;
}
if (n > 0)
c = c ^ (int)*(ptr++);
return(c);
}
NOTE: The checksum integer is placed at the end of the packet, with its bytes in the
reverse order of that used for data integers; that is, b0 is the high byte and b1 is the low
byte.
Packet Errors
AROS ignores a client command packet whose byte count exceeds 252 (total packet
size of 255 bytes) or has an erroneous checksum. The client should similarly ignore
erroneous SIPs.
AROS does not acknowledge receipt of a command packet nor does it have any facility
to handle client acknowledgment of a SIP. Accordingly, when designing client
applications, keep in mind serial communication limitations, particularly data rates and
physical linkage. Communication between an onboard PC client connected with the
server via a hardwire is much more reliable than over radio modems, for example. And
don’t expect to send a client command every millisecond if the HOST serial port’s baud
rate is set to 9,600 kbps.
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 or command packets would serve no useful purpose,
because old data would be virtually 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.
28
ActivMedia Robotics
SERVER INFORMATION PACKETS
Like its PSOS and P2OS predecessors, AROS automatically and repeatedly sends a
packet of information over its HOST serial port to a connected client. The standard AROS
SIP informs the client about a number of operating states and readings, using the order
and data types described in the nearby Table.
Table 3. Standard Server Information Packet
NAME
HEADER
BYTE COUNT
VALUE
int
byte
STATUS/PACKET
0x3S =
TYPE
2
3
int
XPOS
YPOS
THPOS
L VEL
R VEL
BATTERY
STALL AND
BUMPERS
int
Sint╪
Sint
Sint
byte
int
CONTROL
Sint
FLAGS
Sint
COMPASS
byte
byte
byte
int
SONAR COUNT
NUMBER
RANGE
DESCRIPTION
Exactly 0xFA, 0xFB
Number of data bytes + 2 (checksum), not including header or
byte-count bytes
Motors status
Motors stopped
Robot moving
Wheel-encoder integrated coordinates; platform-dependent units;
multiply by DistConvFactor‡
to convert to millimeters.
Orientation in platform-dependent units—multiply by
AngleConvFactor‡ for degrees.
Wheel velocities in mm/sec (VelConvFactor‡ = 1.0)
Battery charge in tenths of volts (101 = 10.1 volts, for example)
Motor stall and bumper indicators. Bit 0 is the left wheel stall
indicator, set to 1 if stalled. Bits 1-7 correspond to the first bumper
I/O digital input states (accessory dependent). Bit 8 is the right
wheel stall, and bits 9-15 correspond the second bumper I/O
states, also accessory and application dependent.
Setpoint of the server’s angular position servo—multiply by
AngleConvFactor‡ for degrees
Bit 0 motors status; bits 1-4 sonar array status; bit 5 E-STOP
button status.
Electronic compass accessory heading in 2-degree units
Number of new sonar readings included in SIP
If Sonar Count>0, is sonar disc number 0-31; reading follows
Sonar range value; multiply by RangeConvFactor‡
…REST OF THE SONAR READINGS…
GRIP_STATE
ANPORT
BYTE
BYTE
ANALOG
BYTE
DIGIN
BYTE
Gripper state byte.
Selected analog port number 1-5
User Analog input (0-255=0-5 VDC) reading on selected port
Byte-encoded User I/O digital input
Byte-endcoded User I/O digital output
Packet-integrity checksum
‡
Client-side data-conversion factor. Consult the ARIA parameter file your robot.
╪
Explicitly a signed integer.
DIGOUT
CHECKSUM
BYTE
INTEGER
AROS also supports several additional SIP types. These include an “alternative” SIP that
currently is not supported by Saphira or ARIA.11 See following sections in this chapter for a
description of the extended SIP types.
11
Indeed, if enabled, the alternative SIP apparently will “break” the client software. Read carefully.
29
Pioneer 2 Operating System
CLIENT COMMANDS
AROS has a structured command format for
a client for control and operation of your
commands are comprised of a one-byte
required by the command, by a one-byte
argument value.
receiving and responding to directions from
ActivMedia robot or the Simulator. Client
command number optionally followed, if
description of the argument type and the
Table 5. AROS/P2OS/PSOS client command packet protocol
COMPONENT
BYTES
VALUE
2
1
0xFA, 0xFB
N
COMMAND
NUMBER
1
0 - 255
ARGUMENT
TYPE
1
ARGUMENT
n
0x3B or
0x1B or
0x2B
data
CHECKSUM
2
computed
HEADER
BYTE COUNT
DESCRIPTION
Packet header; same for client and server
Number of command/argument bytes plus
Checksum’s two bytes, but not including Byte Count
itself or the header bytes. Maximum of 252.
Client command number;
see Table 7.
Required data type of command argument:
positive integer,
negative or absolute integer,
or string (ARGSTR)
Command argument; always 2-byte integer or string
containing length prefix
Packet integrity checksum
Table 6. AROS/P2OS/PSOS command set
COMMAND
#
ARGS
SYNC0
0
1
2
none
none
none
0
1
2
3
4
5
none
none
none
string
int
Sint
DHEAD
6
7
8
9
10
11
12
13
int
none
Sint
Sint
int
Sint
Sint
Sint
SAY
15
string
CONFIG
ENCODER
18
19
none
int
RVEL
21
Sint╪
DCHEAD
22
Sint
SYNC1
SYNC2
PULSE
OPEN
CLOSE
POLLING
ENABLE
SETA
SETV
SETO
MOVE
ROTATE
SETRV
VEL
HEAD
30
DESCRIPTION
Before Client Connection
Start connection. Send in sequence. AROS echoes
synchronization commands back to client, and
robot-specific autosynchronization after SYNC2.
After Established Connection
Resets server watchdog
Starts the AROS servers
Close servers and client connection
Change sonar polling sequence (see text)
1=enable; 0=disable the motors
Translational acceleration, if positive, or
deceleration, if negative; mm/sec/sec
Sets maximum translational velocity; mm/sec
Resets local position to 0,0,0 origin
Translate (+) forward or (-) back mm distance
Rotate (+) counter- or (-) clockwise degrees/sec
Sets maximum rotational velocity; degrees/sec
Translate at mm/sec forward (+) or backward (-)
Turn to absolute heading; ±degrees (+ = ccw )
Turn relative to current heading; (+) counter- or
(–) clockwise degrees
As many as 20 pairs of duration (20 ms
increments) /tone (half-cycle) pairs
Request configuration SIP
Request one (1), a continuous stream (>1), or stop
(0) encoder SIPs
Rotate at (+) counter- or (–) clockwise;
degrees/sec
Heading setpoint relative to last setpoint;
AROS
P2OS
PSOS
1.0
1.0
3.x
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
3.x
3.x
3.x
3.9
–
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
–
4.8
3.x
–
–
4.8
3.x
4.2
3.x
1.0
1.0
4.2
1.0
1.0
1.4
1.4
–
–
1.0
1.0
4.2
1.0
ActivMedia Robotics
DCHEAD
22
Sint
SETRA
23
Sint
SONAR
28
int
STOP
DIGOUT
29
30
none
2
bytes
VEL2
32
2
bytes
GRIPPER
33
int
ADSEL
35
int
GRIPPERVAL
36
int
GRIPREQUEST
37
none
IOREQUEST
40
none
PTUPOS
41
2
bytes
TTY2
42
string
GETAUX
43
int
BUMP_STALL
44
int
TCM2
45
int
DOCK
46
int
JOYDRIVE
47
int
E_STOP
55
none
E_STALL
56
int
STEP
64
none
TTY3
66
string
GETAUX2
67
int
ROTKP
82
int
ROTKV
83
int
ROTKI
84
int
TRANSKP
85
int
Heading setpoint relative to last setpoint;
± degrees (+ = ccw)
Rotational (+)acceleration or
(-)deceleration, in degrees/sec/sec
1=enable, 0=disable all the sonar; otherwise, use
bit 0 to enable (1) or disable (0) a particular array
1-4, as specified in argument bits 1-4.
Stops robot; motors remain enabled
Bits 8-15 is a byte mask that selects the output
port(s); Bits 0-7 set (1) or reset (0) the selected
port(s).
Independent wheel velocities; Bits 0-7 for right
wheel, Bits 8-15 for left wheel; PSOS is in
±4mm/sec; AROS/P2OS in 20mm/sec increments
Gripper server commands. See the Pioneer 2
Gripper or PeopleBot manual for details.
Selects the A/D port number for reporting Anport
value in standard SIP.
Gripper server values. See Pioneer 2 Gripper or
PeopleBot manual for details.
Request one (1), a continuous stream (>1), or stop
(0) Gripper SIPs. See Pioneer 2 Gripper or
PeopleBot manual for details.
Request one (1), a continuous stream (>1), or stop
(0) IO SIPs
Msbyte is port number (1-4), lsbyte is pulse
width in 100µsec units PSOS or 10µsec units
P2OS
Sends string argument to serial device connected
to AUX (AUX1 on P2-H8S) port
Request to retrieve 1-200 bytes from the AUX
(AUX1 on P2-H8S) serial port; 0 flushes the
buffer.
Stall robot if front (1), rear (2) or either (3; AROS
default) bumps contacted. Off (P2OS default) is 0.
TCM2 Module commands; see TCM2 Manual for
details.
Default is OFF; 1=enable docking signals;
2=enable docking signals and stop the robot when
docking power sensed.
Default is O=OFF; 1=allow joystick drive from
hardware port while also connected with a client
Emergency stop, overrides deceleration
1.0
1.0
1.0
1.0
1.0
–
–
1.0
1.0
1.0
1.2
–
4.2
1.0
1.0
4.1
1.0
1.3
4.0
1.0
1.2
–
1.0
–
1.0
1.E
–
1.0
1.E
–
–
1.2
4.5
1.0
1.0
4.2
1.0
1.4
–
1.0
1.5
–
1.0
1.6
–
–
1.C
–
1.0
1.G
–
1.0
1.8
–
1 (AROS default)=Emergency stop button causes
stall; 0 (P2OS default)=off
Single-step mode (simulator only)
1.0
1.E
–
1.0
1.0
3.x
Sends string argument to serial device connected
to AUX2 P2-H8S serial port
Request to retrieve 1-200 bytes from the AUX2
P2-H8S serial port; 0 flushes the buffer.
Change working rotation Proportional PID value
(not FLASH default)
Change working rotation Derivative PID value
(not FLASH default)
Change working rotation Integral PID value (not
FLASH default)
Change working translation Proportional PID
l ( t FLASH d f lt)
1.0
–
–
1.0
–
–
1.0
1.M
–
1.0
1.M
–
1.0
1.M
–
1.0
1.M
–
31
Pioneer 2 Operating System
value (not FLASH default)
TRANSKV
86
int
TRANSKI
87
int
REVCOUNT
88
int
PLAYLIST
91
92
none
int
SOUNDTOG
╪
Change working translation Derivative PID value
(not FLASH default)
Change working translation Integral PID value
(not FLASH default)
Change working revcount (not FLASH default)
1.0
1.M
–
1.0
1.M
–
1.1
1.M
Request AmigoBot sounds playlist packet
0=mute or 1=enable buzzer
1.0
1.0
1.E
–
–
–
Signed integer; otherwise absolute/unsigned.
The number of client commands you may send per second depends on the HOST serial
baud rate, average number of data bytes per command, synchronicity of the
communication link, and so on. AROS’ command processor runs on a one millisecond
interrupt cycle, but the server response speed 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.
THE CLIENT-SERVER CONNECTION
Before exerting any control, a client application must first establish a connection with the
robot server via a serial link through the robot controller’s HOST port. After establishing
the communication link, the client then sends commands to and receives operating
information from the server.
When first started or reset, AROS is in a special wait state, listening for communication
packets to establish a client-server connection.12 To establish a connection, the client
application must send a series of three synchronization packets containing the SYNC0,
SYNC1, and SYNC2 commands in succession, and retrieve the server responses.
Specifically, and as examples of the client command protocol, the synchronization
sequence of bytes is (in hexadecimal notation):
SYNC0:
SYNC1:
SYNC1:
0xFA, 0xFB, 0x03, 0x00, 0x00, 0x00
0xFA, 0xFB, 0x03, 0x01, 0x00, 0x01
0xFA, 0xFB, 0x03, 0x02, 0x00, 0x02
When in wait mode, AROS echoes the packets 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.
Autoconfiguration (SYNC2)
AROS automatically sends robot configuration information back to the client following
the last synchronization packet (SYNC2). The configuration values are three NULLterminated strings that comprise the robot’s FLASH-stored name, class, and subclass.
You may uniquely name your ActivMedia robot with the FLASH configuration tool we
provide. The class and subclass are constants normally set at the factory and not
changed thereafter. (See next chapter for details.)
The class string typically is Pioneer. The subclass depends on your robot model; P2D8
or P2AT8, for example. Clients may use these identifying strings to self-configure their
own operating parameters. ARIA, for instance, loads and uses the robot’s related
parameters file found in the special Aria/params directory.
12
There also is monitor mode for AROS downloads and parameter updates; see next chapter for details.
32
ActivMedia Robotics
Opening the Servers—OPEN
Once you’ve established a connection with AROS, your client should send the OPEN
command to the server, which causes the ActivMedia robot controller to perform a few
housekeeping functions, start its various servers, such as for the sonar and motor
controllers, listen for client commands, and begin transmitting server information to the
client.
Keeping the Beat—PULSE
A safety watchdog expects that, once connected, your robot’s controller receives at
least one communication packet from the client every watchdog seconds (default is
two). 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
command just after opening the AROS servers. And if your client application will be
otherwise distracted for some time, 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 setpoints.
Closing the Connection—CLOSE
To close the client-server connection, which automatically disables the motors and other
server functions like sonar, simply issue the client CLOSE command.
Once connected, send the ENABLE command
or press the white MOTORS button on the User Control Panel
to enable your robot’s motors.
MOTION COMMANDS
The AROS motor-control servers accept several different client-motion commands of two
mutually exclusive types: either independent-wheel or platform translational/rotational
movements. The AROS servers automatically abandon any translational or rotational
setpoints and switch to independent wheel-velocity controls when your client issues the
independent-wheel VEL2 command, and vice versa.
Note that once connected, ActivMedia robots’ motors are disabled, regardless of their
state when last connected. Accordingly, you must either enable the motors manually
(white MOTORS button on the User Control Panel) or send the motors ENABLE client
command with the argument value of one.13 Monitor the status of the motors with bit 0
of the Flags integer in the standard SIP.
When in independent-wheel velocity mode (VEL2), the robot’s motion-control servers do
their best to maintain precise wheel velocities. In practice, wheel slippage and uneven
terrain will cause the robot to change heading, which your client must detect and
compensate.
When
in
translational/rotational
(TR) motion control
mode
(recommended), your robot’s servers work to maintain both platform speed and
heading.
13
Alternatively, disable the motors with the ENABLE command argument of zero.
33
Pioneer 2 Operating System
Table 7. AROS motion commands
Rotation
Turn to absolute heading at SETRV max velocity
HEAD
DHEAD, DCHEAD
Turn to heading relative to control point at SETRV max velocity
Rotate at SETRV velocity
ROTATE
Translation
Translate forward/reverse at prescribed velocity (SETV maximum)
VEL
Translate distance at SETV max velocity
MOVE
Independent
VEL2
Wheel
Set velocity for each side of robot (SETV maximum)
ActivMedia Robots in Motion
ActivMedia robots use position, as opposed to velocity, motion controls to translate the
platform a certain distance and turn it to a particular heading. To achieve constant
translational (VEL), rotational (ROTATE), or independent-wheel (VEL2) velocities, the
servers simply set the target position well ahead of the robot’s current position.
When the robot controller receives a motion command, it accelerates or decelerates
the robot at the translational SETA (TR and VEL2 modes) and rotational SETRA (TR mode
only) rates until the platform either achieves its SETV maximum translational and SETRV
maximum rotational speeds, or nears its goal. Accordingly, rotational headings and
translational setpoints are achieved by a trapezoidal velocity function, which AROS
recomputes each time a new motion command is received.14
short move,
max velocity
not reached
max velocity
ve lo city
accel
decel
start
positi on
time
position
achieved
posi tion
achi eved
Figure 14. ActivMedia robots trapezoidal velocity profile
AROS automatically limits VEL2-, VEL-, and RVEL-specified velocities to previously
imposed, client-modifiable SETVEL and SETRV maximums, and ultimately by absolute,
platform-dependent, FLASH-embedded constants. Similarly, the distinct acceleration
and deceleration parameters for both translation and rotation are limited by FLASH
14
Note that acceleration and deceleration are distinct values, settable via SETA for translation and SETRA for
rotation.
34
ActivMedia Robotics
constants. AROS initializes these values upon controller startup or reset from related
FLASH parameters. The speed limits, either from FLASH or when changed by SETV or
SETRV commands, take effect on subsequent commands, not previously established
velocity or heading setpoints. And the maximums persist across client-server connection
sessions until the controller is reset.
Note that the emergency stop (E_STOP) command number 55 or the Emergency STOP
button that is found on some ActivMedia robots override deceleration and immediately
stop the robot 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 translational or rotational velocity command from
the client or until the STOP button is reset. (See E_STOP and E_STALL later in this chapter.)
PID Controls
The AROS drive servers use a common Proportional-Integral-Derivative (PID) control
system to adjust the PWM pulse width at the motor drivers and subsequent power to the
motors. The motor-duty cycle is 200 microseconds; pulse-width is proportional 0-500 for 0100% of the duty cycle.
The AROS drive servers recalculate and adjust your robot’s trajectory and speed every
five milliseconds based on feedback from the wheel encoders.
0
+X
Front
+90
+Y
+270
+180
Figure 15. Internal coordinate system
The default PID values for translation and
rotation and maximum PWM are stored
as FLASH parameters in your robot’s H8S
microcontroller and may be changed.
You also may temporarily update the PID
values with the AROS client commands
84 through 87. On-the-fly changes persist
until the controller is reset.
The
translational PID values apply to
independent wheel-velocity mode.
The P term value 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 20, whereas a lightly loaded robot may
work best with Kp in the range of 20 to 30.
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 600 to 800 for lightly to heavily
loaded robots, respectively.
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 minimum value for Ki in the range of 0 to 10 for lightly to
heavily loaded robots respectively.
35
Pioneer 2 Operating System
Position Integration
ActivMedia robots, including Pioneer 2s, track their position and orientation based on
dead-reckoning from wheel motion derived from encoder readings. The robot maintains
its internal coordinate position in platform-dependent units, as reported in the standard
SIP (Xpos, Ypos, and Thpos).
Be aware that with the Simulator as well as with real robots, registration between external
and internal coordinates deteriorates rapidly with movement, due to gearbox play,
wheel imbalance and slippage, and many other real-world factors. You can rely on the
dead-reckoning ability of the robot for just a short range—on the order of several meters
and one or two revolutions, depending on the surface. Carpets tend to be worse than
hard floors.
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.
The orientation commands HEAD and DHEAD turn the robot with respect to its internal
dead-reckoned angle. On start-up, the robot is at the origin (0,0), pointing toward the
positive X-axis at 0 degrees. Absolute angles vary between 0 and 359.
You may reset the internal coordinates to 0,0,0 with the SETO P2OS command.
SONAR
When connected with and opened by the client, AROS automatically begins firing your
robot’s sonar, one disc each simultaneously for each array, as initially sequenced and
enabled in your robot’s FLASH parameters. The sonar servers also begin sending the
sonar-ranging results to the client via the standard SIP.
Use the SONAR client command to enable or disable all or individual sonar arrays. Set
("1") bit zero of the SONAR argument to enable or reset it ("0") to disable the sonar
pinging. Set argument bits two through four to an individual array number one through
four to enable or disable only that array. Array zero, the form of the P2OS command,
affects all the arrays at once. For example, an argument value of one enables all the
sonar arrays, whereas an argument value of six silences array number three. Monitor the
status of the sonar arrays in the Flags integer of the standard SIP (Table 6).
Each array’s sonar fire at a rate of 25 Hertz in the sequence defined in your robot’s FLASH
parameters. (Consult the next chapter on how to change the FLASH settings.) Use the
sonar POLLING command to have your client change that firing sequence. The changes
persist until you reset or otherwise restart the controller.
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 resequenced. 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.
Note that for compatibility with earlier ActivMedia robot operating systems, if the string is
empty, all the sonar get disabled, but their polling sequences remain unaltered, just as if
you had sent the SONAR command with an argument value of zero.
36
ActivMedia Robotics
STALLS AND EMERGENCIES
With a robot equipped with forward and/or rear bumpers, AROS immediately stops the
robot and notifies the client of a stall if any one or more of the contact sensors get
triggered and the robot is going in the direction of the bump (forward/front or
backward/rear). Send the BUMP_STALL command (#44) with a integer argument of zero
to disable that bump-stall behavior. Give the argument value of one to re-enable
BUMP_STALL only when a forward bump sensor gets triggered; two for rear-only
BUMP_STALLs; or three for both rear and forward bump contact-activated stalls.
In an emergency, your client may want the robot to stop quickly, not subject to normal
deceleration. In that case, send the E_STOP command (#55).
Like BUMP_STALL, use AROS’ built-in
E_STALL feature to simulate a stall
Table 8. The Flags bits in the standard SIP
when someone presses the robot’s
BIT
CONDITION IF SET
An
emergency STOP button.15
0
Motors enabled
integrated switch in the Emergengy
1
Sonar
array #1 enabled
STOP button toggles a dedicated
2
Sonar
array #2 enabled
digital I/O port (Port A, bit 3) on the
3
Sonar
array #3 enabled
microcontroller
thereby
notifying
4
Sonar array #4 enabled
AROS of the emergency condition.
5
Emergency STOP button pressed
AROS stops the robot’s motors, puts
6
Emergency stall engaged
on the brakes, and throws continuous
7-15
Reserved
stalls. Unlike other stalls, E_STALL also
disables the motors. You must either
re-enable the motors manually (MOTORS button) or programmatically (ENABLE
command). The E_STALL server notifies your client software through the stall bytes
and in bit 5 of the FLAGS byte in the standard so that your client may respond to an
Emergency STOP E_STALL differently than another stall.
Normally enabled (default was disabled in P2OS), change E_STALL by sending the
AROS command (#56). With argument of zero, E_STALL gets disabled. An argument
value of one re-enables E_STALL.
ACCESSORY COMMANDS AND PACKETS
Several types of alternative server information packets (SIPs) come with AROS to better
support the ActivMedia Robotics community. On request from the client by a related
AROS command, the AROS server packages and sends one or a continuous stream of
information packets to the client over the HOST serial communication line. Extended
packets get sent immediately after the standard SIP that AROS sends to your client every
SIP milliseconds (typically 100).16
The standard SIP takes priority and gets sent as soon as the communication port is free
and the cycle timer expires. So you may have to adjust the communications baud rate
to accommodate all data packets in the allotted cycle time, or some packets may
never get sent.
Packet Processing
Identical with the standard SIP, all AROS server information packets get encapsulated
with a header (0xFA, 0xFB), byte count, packet type byte, and trailing checksum. It is up
15
16
Available only on some robots.
You may have to adjust the Host port serial baud rate to accommodate the additional communications
traffic.
37
Pioneer 2 Operating System
to the client to parse the packets, sorted by type for content.
respective client application programming manuals for details.
Please consult the
ARIA, for example, comes with a framework for packet parsing and has an internal
parser for the PSOS/P2OS/AROS packet type 0x3S (S=0-2; aka “standard” SIP), as well as
for some of the extended packets we describe in this section.
Table 9. CONFIGpac contents
LABEL
DATA
DESCRIPTION
HEADER
int
byte
byte
str
str
REVCOUNT
int
WATCHDOG
int
P2MPACS
STALLVAL
STALLCOUNT
byte
int
int
JOYVEL
JOYRVEL
ROTVELMAX
TRANSVELMAX
ROTACC
ROTDECEL
ROTKP
int
int
int
int
int
int
int
Common packet header = 0xfAFB
IDs ENCODERpac = 0x20
Number of following data bytes
Typically “Pioneer”
Identifies the ActivMedia robot model; “p2d8”,
for example.
Serial number for the robot.
Antiquated (=1 if AT with P2OS)
Maximum rotational velocity; deg/sec
Maximum translation speed; mm/sec
Maximum rotation (de)acceleration; deg/sec2
Maximum translational (de)acceleration; mm/sec2
Maximum motor PWM (500=fully on).
Unique name given to your robot.
Server information packet cycle time
Baud rate for client-server HOST serial: 0=9.6k,
1=19.2k, 2=38.4k, 3=56.8k, 4=115.2k.
Baud rate for AUX serial port 1; see HostBaud
0 if no Gripper; else 1
1 if robot has front sonar array enabled, else 0
1 if robot has rear sonar enabled, else 0
In 1/10 volts; alarm activated when battery
charge falls below this value.
Current number of differential encoder ticks for
a 360 degree revolution of the robot.
Ms time before robot automatically stops if it
has not received a command from a client.
Restarts on restoration of connection.
1 enables alternative SIP.
Maximum PWM before stall. If > PwmMax, never.
Ms time after a stall for recovery. Motors not
engaged during this time.
Joystick translation velocity setting, mm/sec
Joystick rotation velocity setting in deg/sec
Current max rotational speed; deg/sec.
Current max translational speed; mm/sec.
Current rotational acceleration; deg/sec2
Current rotational deceleration; deg/sec2
Current Proportional PID for rotation
ROTKV
ROTKI
TRANSACC
TRANSDECEL
TRANSKP
TRANSKV
TRANSKI
int
int
Current Derivative PID for rotation
Current Integral PID for rotation
int
int
int
int
int
Current
Current
Current
Current
Current
TYPE
BYTE COUNT
ROBOT TYPE
SUBTYPE
SERIALNUM
4MOTS
ROTVELTOP
TRANSVELTOP
ROTACCTOP
TRANSACCTOP
PWMMAX
NAME
SIP
HOSTBAUD
AUXBAUD
GRIPPER
FRONT SONAR
REAR SONAR
LOWBATTERY
38
str
Byte
int
int
int
int
int
str
byte
byte
byte
int
int
Byte
int
translational acceleration; mm/sec2
translational deceleration; mm/sec2
Proportional PID for translation
Derivative PID for translation
Integral PID for translation
ActivMedia Robotics
CONFIGpac and CONFIG Command
Send the CONFIG command #18 without an argument to have AROS send back a
CONFIGpac SIP packet type 32 (0x20) server information packet containing the robot's
operational parameters. Use the CONFIGpac to examine many of your robot’s default
FLASH_based settings or their working values, when appropriate, as changed by other
client commands, such as SETV and ROTKV. A table nearby gives details about the
configuration packet data.
AUX port communications
AROS provides two-way communications through the HOST client-server communication
port to and through two auxillary serial ports on the microcontroller, AUX1 and AUX2. Use
the TTY2 command number 42 with a string argument to have that string sent out the
AUX1 port to the attached serial device, such as a robotic camera. Similarly, use the
TTY3 command number 66 to send a string argument to the AUX2 port.
AROS also maintains two circular buffers for incoming serial data from the AUX1 and
AUX2 ports. On request, AROS sends successive portions of the buffers to your client via
the HOST port in the respective SERAUXpac (type = 176; 0xB0) and SERAUX2pac (type =
184; 0xB8) SIPs. Use the GETAUX command 43 for AUX1 or GETAUX2 command number 67
for AUX2. Use the integer argument value of zero to flush the contents of the respective
buffer. Use an argument value of up to 253 bytes to have AROS wait to collect the
requested number of incoming AUX-port serial bytes and them send them in the
respective SERAUX or SERAUX2 SIP.
Encoder packets
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.
Table 10. ENCODERpac SIP contents
Header
Byte Count
Left Encoder
Right Encoder
Checksum
integer
byte
integer
integer
integer
integer
integer
Exactly 0xFA, 0xFB
Number of data bytes + 2 (checksum)
Least significant, most significant portion of the
current 4-byte raw encoder count from the left drive wheel
Least significant, most significant portion of the
current 4-byte raw encoder count from the left drive wheel
Checksum for packet integrity
Gripper packets
AROS controls the Gripper accessory for the Pioneer 2-DX8 and –AT8, and for the
Performance PeopleBot robots. The client sends commands to the Gripper servers and
gets Gripper status information from the standard SIP. Please consult the respective
manuals for details.
Table 11. GRIPPERpac packet contents
HEADER
BYTE COUNT
TYPE
HASGRIPPER
GRIP_STATE
GRASP_TIME
CHECKSUM
int
byte
byte
byte
byte
byte
integer
Exactly 0xFA, 0xFB
Number of data bytes + 2 (checksum)
Packet type = 0xE0
Gripper type: 0=none; 1=User; 2=PeopleBot
See nearby Table
MS time controls grasping pressure
Computed checksum
39
Pioneer 2 Operating System
AROS supports a GRIPPERpac (type=224; 0xE0) packet type and related GRIPREQUEST
P2OS command #37 to retrieve setup and status information from the servers.
Normally disabled, your client program may request one or a continuous stream
(command argument > one) of Gripper packets.
Send GRIPREQUEST with the
argument value zero to stop continuous packets.
Note that the Gripper status information bits 0-5 also may be obtained from the
respective digin and digout values of the standard SIP as related to the User I/O port
states. See Appendix A for connection details.
Table 12. GRIPPERpac state byte
BIT
0
1
2
3
4
5
6
7
FUNCTION
STATE
Grip limit
Lift limit
Outer breakbeam
Inner breakbeam
Left paddle
Right paddle
Lift
Gripper
paddles fully open when 0; otherwise between or closed
Lift fully up or down when 0; otherwise in between
obstructed when 0; nothing in between when 1
obstructed when 0; nothing in between when 1
grasping when 0
grasping when 0
moving when 1
moving when 1
Sounds
Unlike its ActivMedia robot cousins, the AmigoBot mobile robot has onboard sound
reproduction hardware and software that includes a playlist of contents. To support the
ActivMedia Robotics Basic Suite that includes all ActivMedia’s robots, we’ve included
the PLAYLISTpac (type = 208; 0xD0) and PLAYLIST request command 91 in AROS. We
document the command and packet here for completeness, but they have no effect
on the operation or performance of your ActivMedia mobile robot.
The AmigoBot sounds playlist consists of a series of one to 255 24-byte long sound
references, followed by individual sound data. Sound references may be NULL or
redundant.
Sound references consist of a 16-byte sound name followed by two long integers, which
specify the sound data position and length in the playlist. Upon receipt of the PLAYLIST
command 91 with any or no argument, AROS responds with a PLAYLISTpac SIP
containing 25 NULL bytes, telling the client that your AROS-based robot does not have
any onboard sounds.
Whereas the AmigoBot has a high-fidelity sound system, AROS- and P2OS-based robots
have a piezo buzzer that aurally notifies you of system conditions, such as low battery or
stalls. For stealthy operation, issue the SOUNTOG command number 92 with an
argument of zero to mute the controller’s buzzer; argument of one to re-enable it. (See
also the SOUNDTOG FLASH parameter in the next chapter to set its default state.)
The SAY command number 15 lets you play your own sounds through the buzzer. The
argument consists of a length-specified string of duration/frequency tone pair bytes. The
duration is measured in 20 millisecond increments. Frequencies are half-tones, limited by
the 8-bit timer. You’ll have to experiment with tones. Here is the sequence that
generates the AROS tone when the robot stalls (in octal):
\012\001\012\000\012\010\012\000\012\001
TCM2
The TCM2 accessory is an integrated inclinometer, magnetometer, thermometer, and
compass that attaches to one of the AUX serial ports of the AROS microcontroller. When
40
ActivMedia Robotics
attached and enabled, special TCM2 compass servers read and report the heading as
the compass byte in the standard SIP. Use the TCM2 command 45 to request additional
information from the device in the form of the TCM2pac. See the TCM2 Manual and
supporting software that accompanies the device for details.
INPUT OUTPUT (I/O)
Your AROS-based robot comes with a number of I/O ports that you may use for sensor
and other custom accessories and attachments. See Appendix A for port locations and
specifications. Some I/O states and readings appear in the standard SIP and may be
manipulated with AROS client commands. There also is an IOpac SIP for convenient
access to all your robot’s I/O.
User I/O
The User I/O connector on the H8S controller contains sixteen total digital input/output
ports, as well as an analog-to-digital (A/D) port.17 The bit-mapped states of the sixteen
digital ports and analog port automatically and continuously appear in the standard SIP,
in their respective DIGIN, DIGOUT, ANALOG bytes. When not physically connected, the
digital input and A/D port values may vary and change without warning.
Use the AROS client command number 30 to set one or more of the eight DIGOUT ports
on the AROS controller. Electrically, the ports are digital high (1) at ~5 VDC (Vcc) and low
(0) at ~0 VDC (GND). DIGOUT uses a two-byte (unsigned integer) argument. The first byte
is a mask whose bit pattern selects (1) or ignores (0) the state of the corresponding bit in
the second byte to set (1) or unset (0) the digital output port.
For example, here’s the AROS client command to set digital output ports one and three
(OD1 and OD3), reset port four (OD4), and leave all the rest alone (hexadecimal notation):
0xFA, 0xFB, 0x06, 0x1E, 0x1B, 0x19, 0x09, 0x37, 0x24
IO packets
Not all analog and digital I/O appears in the standard SIP. Accordingly, your client
software may request the IOpac SIP (type = 240; 0xF0), which contains all common I/O
associated with the P2-H8S controller and which appear on the various connectors,
including User IO, General IO, Bumpers, and IRs.
Table 13. IOpac packet contents
LABEL
HEADER
BYTE COUNT
TYPE
N DIGIN
DIGIN
FRONTBUMP
REARBUMP
IR
N DIGOUT
DIGOUT
AN
A/D
CHECKSUM
17
BYTES
CURRENT VALUE
2
1
1
1
1
1
1
1
1
1
1
10
0xFA, 0xFB
22
0xF0
4
varies 0-255
varies 0-255
varies 0-255
varies 0-255
1
varies 0-255
5
5 integers
varying 0-2047
varies
2
DESCRIPTION
Common header
Number of data bytes + 2
Packet type
Number of digital input bytes
ID0-8 bits mapped
Front bumper bits mapped
Number of digital output bytes
Digital output byte(s)
Number of A/D values
A/D ports 1-5 input values at 12bit resolution = 0-5 VDC
Computed checksum
Many of these ports are used by the Gripper accessory. Alternative I/O is available.
41
Pioneer 2 Operating System
Use the AROS client IOREQUEST command number 40 with an argument value of zero,
one, or two. The argument value one requests a single packet to be sent by the next
client-server communications cycle. The request argument value of two tells AROS to
send IOpac packets continuously, at approximately one per cycle depending on serial
port speed and other pending SIPs. Use the IOREQUEST argument value zero to stop
continuous IOpac packets.
Expansion I/O
Four alternative A/D ports appear at the 40-position Expansion I/O connector of the H8S
controller.18 Use the ADSEL client command number 35 to select and subsequently have
the A/D value from one of the alternative ports AN2-5 appear in the standard SIP. The
default port is AN0 (ADSEL argument value of zero), the A/D port also on the User I/O
connector.
18
Many other ports also appear at that connector, but are not yet supported in AROS.
42
ActivMedia Robotics
Chapter 7
Updating & Reconfiguring AROS
The AROS software and a set of operating parameters for your ActivMedia robot get
stored in the H8S microcontroller's FLASH ROM. With special download and configuration
software tools, you change and update the FLASH memory image. No hardware
modifications are required.
WHERE TO GET AROS SOFTWARE
Your ActivMedia robot comes preinstalled with the latest version of AROS. And the
various AROS 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 AROS software and related documentation:
http://robots.activmedia.com
AROS tools come in two flavors: One (dl_AROSV_v) simply updates the AROS servers in
FLASH. The other utility, AROScf, is a multi-functional application for both downloading
new AROS versions as well as modifying your robot’s onboard FLASH-based parameters.
AROS MAINTENANCE MODE
To connect with and update your robot’s AROS servers and its FLASH-based operating
parameters, you need to first connect a serial port on the PC from which you will run the
AROS tool(s) to the HOST port of your robot’s microcontroller:
If you are running from an onboard PC, the computer-to-HOST connection
already is made.
If you have an onboard PC, but prefer to use an external computer for
maintenance, simply power down the onboard computer.
If you use radio modems (not Ethernet), switch RADIO power OFF.
When connecting from an external PC, directly tether (no radios) its serial port to
the 9-pin DSUB serial connector on the User Control Panel.
Now start up your robot and put its controller into the special Maintenance Mode:
1. Press and hold the white MOTORS button on the User Control Panel
2. Press and release the adjacent red RESET button
3. Release the MOTORS button.
The STATUS LED on the User Control Panel should flash twice the rate than when in server
(“wait”) mode and the BATTERY LED should shine bright red.
SIMPLE AROS UPDATES
The simple AROS update application is just that: a standalone program that, when run,
updates the AROS servers to the indicated version V_v (1_0, for example) in your robot’s
microcontroller. Although it may add parameters to your current FLASH values, the
dl_AROSV_v application never changes your current parameters, but may add new
ones.
To use this convenient utility, simply download the “dl_”-prefixed executable for your PC’s
operating system (“.lin” filename suffix for Linux or “.exe” for Windows). Connect the
PC to your robot’s HOST serial port and put its controller into Maintenance Mode (see
section above). Then run the dl_… program.
43
Updating and Reconfiguring P2OS
Text prompts will help you get connected with your ActivMedia robot’s H8S-based
controller and update its AROS servers. No fuss. No muss.
AROSCF
The AROS update and configuration program, AROScf, is part of a collection of utilities
and files for comprehensive management of your ActivMedia robot’s onboard servers
and FLASH-based operating parameters. The distribution archive for the software is
simply named AROSV_v (V and v are the version major and minor numbers, such as 1_0),
with a “.tgz” suffix for Linux-based PCs or “.exe” for Windows computers.
Install the utilities and files 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 or otherwise executing the self-extracting, self-installing package. For Linux,
uncompress and untar the files:
% tar –zxvf AROS1_0.tgz
The expanded archive creates an AROS/ directory in the selected Windows or current
Linux path and stores the AROS software within.
STARTING AROSCF
AROScf is a text-based console application, as opposed to a graphical-user one. It runs
in two stages: Startup Mode followed by Interactive Mode. When invoked, you may
start AROScf with various command-line options. With an X-terminal under Linux, for
example, navigate to the AROS directory and invoke the program:
% cd /usr/local/AROS
% ./AROScf <options>
With Windows PCs, you may double-click the AROScf icon to automatically open a
console window and start the program without any options. To start up with commandline options, Run the program from the Start menu, or run Command from the Start
menu, then navigate to the AROS directory and start AROScf with options.
For example (after invoking the MSDOS-like command window):
C:\> cd AROS
C:AROS\> AROScf <options>
Normally (without any command-line arguments), AROScf starts up expecting to
connect your PC’s COM1 or /dev/ttyS0 serial port with your robot’s microcontroller which
you’ve put into Maintenance Mode.
If successfully connected, the program
automatically retrieves your robot’s FLASH-stored operating parameters and enters
interactive mode.
If the initial connection fails, AROScf still starts up into its Interactive Mode, but with
empty, and thereby useless parameter values. You may still operate many of AROScf’s
interactive features without a connection, such as maintain disk-based copies of your
robot’s operating parameters. And there is an interactive connect command that lets
you establish a maintenance connection with your robot. See the next section for
AROScf commands and operating features.
Include each of the selected AROScf’s startup-mode options as a key letter with a dash
(“-“) prefix, followed by any required arguments, separated by spaces. For example, to
start up AROScf and make a connection with a serial port other than the default COM1 or
ttyS0:
C:\AROS> AROScf –p COM3
44
ActivMedia Robotics
Similarly, this Linux xterm command uploads a fresh copy of AROS to your robot’s H8Sbased microcontroller and then exits, much like the simple dl_AROS1_0 program:
% ./AROScf –d AROS1_0.hex –n -b
Table 14. AROScf startup options
KEY
ARGUMENT
DESCRIPTION
-b
-d
command
arguments
hexfile
-h
-l
none
paramsfile
-n
-p
none
serialdevice
Batch mode executes list of AROScf
Interactive mode commands with arguments
Automatically upload AROS hex image file
after connecting with the controller
Print help message and exit
Load the disk-stored parameter file instead
of the robot’s copy
Don’t automatically connect with controller
Uses specified serial port for connection
-s
paramsfile
On exit from AROScf, automatically save the
current parameter values to the named
paramsfile
CONFIGURING AROS OPERATING PARAMETERS
Your ActivMedia robot has several parameters stored in FLASH that AROS uses to
configure its servers and auxiliary attachments and to uniquely identify your robot. For
instance, the default maximum translational velocity is stored in the TransVelMax
parameter. Its value takes effect when starting your robot or after resetting the
microcontroller, and may be changed temporarily by a client command. Use AROScf’s
Interactive Mode to modify these operating parameters, and hence your robot’s default
operating characteristics.
Start up AROScf as described in the previous section. As discussed earlier, AROScf
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.
Some of the parameters, "Constants", are not to be changed. The others, "Variables",
are the identifying and operating parameters that you may edit.
Interactive Commands
To operate AROScf in interactive mode, simply type a keyword at the command line.
Some keywords affect the operation of AROScf, the status of the parameters file as a
whole, or the connection between AROScf and your robot’s microcontroller. For
instance, to review the list of current AROS constants or variables, type 'c' or 'v',
respectively, followed by a return (Enter). Similarly, type '?' or 'help' to see a list of
AROScf interactive commands.
Changing Parameters
Other keywords refer to the operating parameters themselves. Alone, a parameter’s
keyword simply asks AROScf 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
45
Updating and Reconfiguring P2OS
> watchdog 0xfa0
See the respective control command and parameter Tables nearby for a full description
of AROScf operation.
Table 15. AROScf control commands
COMMAND
KEYWORD
DESCRIPTION
<value>
Alone, a keyword displays current, edited
value. Add argument to change current value.
c or constants
Display all
edit these.
v or variables
Display all variable parameter values which you
may edit and eventually save to your robot’s
FLASH.
r
or
restore
<paramsfile>
Restores variables to values currently stored
in FLASH or from a paramsfile on disk
save <paramsfile>
Saves current edited values to FLASH or saves
current edited values to pathname on disk for
later reference.
q or quit
Exits AROScf.
connect <portname>
Connects AROScf with microcontroller through
serial port (COM1 or /dev/ttyS0 default)
disconnect
Disconnects
AROScf
microcontroller
? or help
Displays these commands and descriptions.
constant
parameters.
from
You
your
cannot
robot’s
SAVE YOUR WORK
While changing parameter values in AROScf 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 AROScf save command to 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 microcontroller get damaged or its
FLASH inadvertently erased. Default parameter files come with each AROS distribution,
but it is tedious to reconstruct an individual robot’s unique configuration.
PID PARAMETERS
The AROS configuration parameters include settings for the PID motors controls for
translation and rotation of the robot.
The translation values also are used for
independent-wheel mode. The default values are for a moderately loaded robot.
Experiment with different values to improve the performance of your robot in its current
environment.
46
ActivMedia Robotics
Table 16. Configuration parameters (currently AROS 1_1) with values for Pioneer 2–DX8
KEYWORD
Type
Default
CONSTANTS
TYPE
SUBTYPE
SERIAL
ROTVELTOP
TRANSVELTOP
ROTACCTOP
TRANSACCTOP
TICK/MM
str
str
str
int
int
int
int
int
Pioneer
P2D8
factory
360
2200
600
4000
76
BATTCONV
byte
0 | 1
str
not_set
SIP
byte
100
PWMMAX
HOSTBAUD
int
byte
500
0
AUXBAUD1
AUXBAUD2
SONAR1
byte
byte
str
0
0
12345678
SONAR2
SONAR3
SONAR4
LOWBATTERY
str
str
str
int
0
0
0
110
REVCOUNT
int
33500
WATCHDOG
int
2000
SOUNDTOG
P2MPACS
STALLVAL
STALLCOUNT
byte
byte
int
int
1
0
250
100
GRIPPER
int
0
TCM2
ROTVELMAX
TRANSVELMAX
ROTACC
ROTDECEL
ROTKP
ROTKV
ROTKI
TRANSACC
TRANSDECEL
TRANSKP
TRANSKV
TRANSKI
JOYVELMAX
JOYRVELMAX
byte
int
int
int
int
int
int
int
int
int
int
int
int
int
int
0
200
2000
100
100
30
200
0
300
300
15
800
4
1000
50
VARIABLES
NAME
Description
Should not be changed
Identifies the robot type.
Identifies the ActivMedia robot model.
Serial number for the robot.
Maximum rotational velocity; deg/sec
Maximum translation speed; mm/sec
Maximum rotation (de)acceleration; deg/sec2
Maximum translational (de)acceleration; mm/sec2
Encoder ticks/mm: (ticks/rev x gear-ratio)
(wheel_diameter x PI)
0 if a 12V system; 1 if 24V
Parameters that you may change
Unique name for your robot.
Maximum of 20 characters, no spaces.
Server information packet cycle time in 1 ms
increments. Default is classic 100 ms.
Maximum motor PWM (500=fully on).
Baud rate for client-server HOST serial:
0=9.6k, 1=19.2k, 2=38.4k, 3=56.8k, 4=115.2k.
Baud rate for AUX serial port 1; see HostBaud
Baud rate for AUX serial port 2; see HostBaud
Ping sequence for sonar array #1. Up to 16
number characters 1-8; 0 alone to disable the
array
Ping sequence for array #2. See sonar1 above
Ping sequence for array #3. See sonar1 above
Ping sequence for array #4. See sonar1 above
In 1/10 volts; microcontroller alarm activated
when battery charge falls below this value.
The number of differential encoder ticks for a
360 degree revolution of the robot.
Ms time before robot automatically stops if it
has not received a command from a client.
Restarts on restoration of connection.
0 disables the buzzer
1 enables alternative SIP.
Maximum PWM before stall. If > PwmMax, never.
Ms time after a stall for recovery. Motors not
engaged during this time.
Set to 1 if P2 Gripper; 2 if Gripper on
Performance PeopleBot
TCM2 module connected to 1=AUX1 or 2=AUX2
Max rotational speed; deg/sec.
Max translational speed; mm/sec.
Rotational acceleration; deg/sec2
Rotational deceleration; deg/sec2
Proportional PID for rotation
Differential PID for rotation
Integral PID for rotation
Translational acceleration; mm/sec2
Translational deceleration; mm/sec2
Proportional PID for translation
Differential PID for translation
Integral PID for translation
Joydrive maximum translation velocity
Joydrive maximum rotational velocity
47
Updating and Reconfiguring P2OS
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.
TICKSMM AND REVCOUNT
AROS uses the ticksmm and revcount parameters to convert your platformindependent speed and rotation commands—typically expressed in millimeters or
degrees per second, respectively—into platform-dependent units.
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. These don’t normally change, and
so are considered constants and not editable for your robot.
The revcount value is the number of encoder ticks for one full 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.
Table 17. Some platform-dependent robot parameter values
Model
PARAMETER
DX
DXE
AT &
AT8
CE
PB V1
Performance PB &
DX8
ENCODER
RESOLUTION
500
500
100
100
500
500
GEAR RATIO
19.7
19.7
85.5
19.7
38.3
38.3
WHEEL DIAM (MM)
165
191
220
165
165
191
76
66
49
76
148
128
DISTCONVFACTOR
0.840
0.969
1.32
0.826
0.413
0.424
DIFFCONVFACTOR
0.0056
0.0057
0.0034
0.0056
0.0056
0.0060
ENCODER
TICKS/MM
48
ActivMedia Robotics
Chapter 8
Maintenance & Repair
Your ActivMedia robot is built to last a lifetime and requires little maintenance.
DRIVE LUBRICATION
The Pioneer 2-DX8 and –AT8 drive motors and gearboxes are sealed and self-lubricating,
so you need not fuss with grease or oil. An occasional drop or two of oil on the axle
bushings between the wheels and the case won’t hurt. And keep the axles clear of
carpet or other strings that may wrap around and bind up your robot’s drive.
BATTERIES
Lead-acid batteries like those in your Pioneer 2 robot last longest when kept fully
charged.
In fact, severe discharge is harmful to the battery, so be careful not to
operate the robot if the battery voltage falls below 11 VDC.
Changing Batteries
CAREFUL!
The Batteries slide in
TERMINALS LAST!
Your Pioneer 2 has a special battery harness and latched doors for easy access to the
onboard batteries. Simply unlatch the rear door, swing it open and locate the one to
three onboard batteries inside.
To remove a battery, simply grasp it and pull out. We provide a suction-cup tool to help.
Spring-loaded contacts eliminate the need to detach any connecting wires.
Similarly, insert batteries by simply sliding each one into a battery box compartment.
Load the batteries so that their weight gets distributed evenly across the platform:
Center a single battery and place two batteries one on each side.
Hot-Swapping the Batteries
You may change the batteries on some of your ActivMedia robots without disrupting
operation of the onboard systems (except the motors, of course): Either connect the
charger, which powers the robot's systems while you change the battery or batteries. Or,
if you have two or three batteries, swap each with a freshly charged one individually, so
that at least one battery is in place and providing the necessary power.
Charging the Batteries
If you have the standard charger accessory, insert it into a standard 110 or 220
(Europe/South America/Asia) VAC wall power receptacle. (Some users may require a
special power adapter.) Locate the round plug at the end of the cable that is attached
to the charger and insert it into the charge socket that is just below your robot’s Main
Power switch. The LEDs on the charger indicate charge status, as marked on its case.
It takes fewer than 12 hours—often just a few hours, depending on the level of
discharge—to fully charge a battery using the accompanying charger (roughly, three
hours per volt per battery). Although you may operate the robot while recharging, it
restricts the robot’s mobility.
49
Maintenance and Repair
Alternative Battery Chargers
The center post of the charger socket is the positive (+) side of the battery; the case is the
negative (-) side. A diode protects against the wrong charger polarity. Nonetheless, if
you choose to use an alternative battery charger, be sure to connect positive to positive
and negative to negative from charger to robot.
An alternative AC to DC converter/battery charger should sustain at least 0.75A at 13.75
to 14 VDC per battery, and not more than 2-2.5 amperes per battery. The High-Speed
Charger accessory, for example, is a four ampere charger and should be used with at
least two of the standard batteries.
An alternative charger also should be voltage- and current-limited so that it cannot
overcharge the batteries.
TIGHTENING THE AT8 DRIVE BELT
Occasionally,
particularly
after
heavy use, the Pioneer 2-AT drive
belts that mechanically link the front
and rear motors on each side will
loosen and slip, resulting in a load
popping noise. To start, use a 3mm
hex key to loosen, but not remove,
the three screws on the side of the
robot near the front wheel. One
screw is partly behind the wheel, so
with our parts kit, we included a
3mm hex key with a shortened “L”
section to fit behind the wheel.
Figure 16. Loosen the AT drive belt retainer
screws first.
Remove the small plastic plug
which is near the hinge on the top
plate and near the edge by the
wheel. Under it, you will see the head of a large hex bolt. This bolt tightens (clockwise) or
loosens (counter-clockwise) the drive belt for that side of the robot. Turn it using a 5mm
hex key probably not more than 1 full rotation. Avoid over tightening.
Test to make sure that it is tight enough by holding the wheel while running the self test.
When adjusted satisfactorily, retighten the screws on the side and replace the hole plug.
GETTING INSIDE
We normally discourage you
from opening up your robot.
However, on occasion, you
may need to get inside, for
instance to access the User
Power connections on the
Motor-Power board and
attach
your
custom
electronics.
Or you may
need to get to your
onboard computer and its
accessories.
50
Figure 17. Locations of Pioneer 2-AT's belt-tensioning
bolts
ActivMedia Robotics
Open the robot AT YOUR OWN RISK,
unless explicitly authorized by the factory.
We describe here how to remove your robot’s Nose to get at the onboard computer.
And we describe how to access the contents of the Body of your Pioneer 2-DX/DXE or AT
robot.
Removing the Nose
Pioneer 2-DX8 and –AT8’s onboard
computer sits just behind the robot’s
nose. And you may have to remove the
nose to access the front sonar array’s
gain adjustment pot. Two screws hold
the nose to the front sonar (or blank)
array. The AT8 also has a screw at the
bottom of the nose that attaches to the
body; the DX8’s nose is hinged at the
bottom.
Figure 18. Remove indicated screws to
access front plate of Pioneer 2-DX8 and AT8 robots.
Remove all nose retaining screws with the 3mm hex wrench supplied with your robot.
Unlike earlier Pioneer 2 models, you do not have to remove the Gripper or the front Bump
Ring accessories.
Once loosened, the DX8 nose pivots down on a hinge. For the AT model, four pins along
the nose’s back edges guide it onto the front of the robot. Simply pry the nose out and
away from the body.
Careful: The computer’s hard-drive, fan, and speaker have attached wire harnesses that
you need to relieve before completely detaching the nose from the body. We
recommend unplugging the speaker wire and simply rotating the nose out of the way to
access the onboard computer.
Opening the Deck
Figure 19. Remove indicated screws from Pioneer 2-DX8 or -AT8 rear deck to open plate.
The Pioneer 2-AT8 and –DX8 models have a center hinge in the deck which let you easily
open and access internal components without completely removing the top plate.
Simply remove the indicated 3mm screws shown in the Figures nearby from the section of
the deck that you want to access. You may need to first remove any accessories that
are bolted to the top plate through the indicated holes.
51
Maintenance and Repair
FACTORY REPAIRS
If, after reading this manual, you’re having hardware problems with your ActivMedia
robot and you’re satisfied that it needs repair, contact us:
support@activmedia.com
(603) 924-2184 (fax)
(603) 924-9100 (voice)
Tell us your robot’s SERIAL NUMBER
In the body of your email or fax message, describe the problem in as much detail as
possible. Also include your robot’s serial number (IMPORTANT!) as well as name, email
and mail addresses, along with phone and fax numbers. Tell us when and how we can
best contact you (we will assume email is the best manner, 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 shipping and repair authorization code and shipping
details from us first.
We are not responsible for shipping damage or loss.
52
ActivMedia Robotics
Appendix A
P2-H8S Ports & Connections
This Appendix contains pinout and electrical specifications for the external and internal
ports and connectors on the Pioneer 2-H8S microcontroller, motor-power interface, and
User Control boards.
Note that most two-layered sockets
are numbered odd pins on top and
even pins on the bottom, from right to
left, relative to the key in the Figure.
13
11
9
7
5
3
1
14
12
10
8
6
4
2
Figure 20. IDC-like socket pin numbering
H8S MICROCONTROLLER
Figure 21. The Pioneer 2-H8S microcontroller
Power Connector
The Power connector is a 3-pin microfit socket that delivers 12VDC (battery) to the
microcontroller circuitry and separate, conditioned 5 VDC to the sonar, including power
grounds.
Table 18. H8S Controller Power Connector
PIN
DESCRIPTION
1
12VDC battery
2
GND
3
Sonar 5VDC
53
Appendix A: Ports and Connections
Serial Ports
Two DSUB-9 and two 5-pin microfit sockets provide the HOST and AUX1/AUX2 auxiliary
serial ports for the P2-H8S controller. All are RS-232 compatible. The HOST port is shared
on both the User Control Panel as well as on the H8S controller board and is for AROS
client-server and maintenance connections.19 The internal HOST serial connector also
has signal lines for detecting an attached device (DTR pin 4) and for notifying the
attached PC of low-power condition (HRNG pin 9). The HOST serial connectors are wired
DCE for direct connection (straight-through cable, not NULL-modem) to a standard PC
serial port or to a radio modem set to DTE mode. See the nearby Tables for details.
The AUX1 and AUX2 serial ports are for RS232-compatible serial device connections, such
as for the TCM2 Modules or any of several pan-tilt-zoom robotic systems.
AROS operates the serial ports at any of the common data rates: 9,600, 19,200, 38,400,
57,800, or 115,200 bits per second; and at eight data bits, one stop bit, no parity or
hardware handshaking.
Table 19. HOST serial ports on H8S board and on User Control (*) (DSUB-9 socket)
PIN
SIGNAL
DESCRIPTION
PIN
SIGNAL
DESCRIPTION
2
*TXD
output
1
nc
3
*RCV
Input
4
DTR
Input
detects
attached
device and switches TxD
and RxD into the uC
5
*GND
Common
6
*DSR
Output
when
powered
7
nc
May be jumpered to
pin 6
8
nc
9
†
Output lowered to
signal PC shutdown
†
HRNG
controller
Shared on Motors interface
Table 20. AUX1 and AUX2 serial ports (5-pos microfit sockets)
PIN
SIGNAL
DESCRIPTION
1
DTR
Input
3
RCV
Input
5
GND
common
PIN
SIGNAL
DESCRIPTION
2
TXD
output
4
DSR
output
User I/O-Gripper Port
A 20-pin latching IDC socket on the H8S microcontroller provides the digital, analog, and
power ports for user connections and for the Gripper accessory. Indicated ports (*) are
shared on other connectors. Digital inputs are buffered and pulled high (digital 1);
outputs are buffered and normally low (digital 0).
19
Unlike with earlier P2 controllers, HOST does not interfere with the User Control Panel serial connections if its
attached device—PC or radio modem—is OFF.
54
ActivMedia Robotics
Table 21. User I/O – Gripper (20-pos latching IDC)
PIN
SIGNAL
DESCRIPTION
PIN
SIGNAL
DESCRIPTION
1
OD0
2
ID0
3
OD1
4
ID1
5
OD2
6
ID2
7
OD3
8
ID3
9
ID4
10
OD4
11
ID5
12
OD5
13
ID6
14
OD6
15
ID7
16
OD7
17
*AN0
18
Vcc
DIGIN bit 0;
Paddles open limit
DIGIN bit 1;
Lift limit
DIGIN bit 2;
Outer breakbeam IR
DIGIN bit 3;
Inner breakbeam IR
DIGOUT bit 4;
Not used by Gripper
DIGOUT bit 5;
Not used by Gripper
DIGOUT bit 6;
Not used by Gripper
DIGOUT bit 7;
Not used by Gripper
5VDC < 1A
19
Vpp
DIGOUT bit 0;
Gripper enable
DIGOUT bit 1;
Gripper direction
DIGOUT bit 2;
Lift enable
DIGOUT bit 3;
Lift direction
DIGIN bit 4;
Left paddle contact
DIGIN bit 5;
Right paddle contact
DIGIN bit 6;
Not used by Gripper
DIGIN bit 7;
Not used by Gripper
A/D port 0 (default)
(0-5VDC = 0-255)
Battery 12VDC < 1A
20
Gnd
Signal/power common
The Expansion I/O Bus
A 40-pin high-density IDC socket on the H8S microcontroller provides a general-purpose
connector for future I/O expansion. Digital lines, including 8-bit bus address, data,
read/write, and other general-purpose ones, are buffered with inputs pulled high.
Indicated ports (*) appear on other connectors.
Table 22. General-purpose I/O and data bus (40-pos high-density IDC)
PIN
SIGNAL
1
3
5
7
9
11
13
15
17
19
21
AD0
AD1
AD2
AD3
AD4
AD5
ID6
ID7
DAC1
DAC0
*AN4
23
*AN3
25
27
29
31
33
35
37
39
AN2
AN1
*AN0
GND
GND
GND
GND
GND
DESCRIPTION
PIN
SIGNAL
Address bit 0
Address bit 1
Address bit 2
Address bit 3
Address bit 4
Address bit 5
Address bit 6
Address bit 7
D/A port 1
D/A port 0
A/D port 4;
Joystick Y
A/D port 3;
Joystick X
A/D port 2
A/D port 1
A/D port 0
Signal common
Signal common
Signal common
Signal common
Signal common
2
4
6
8
10
12
14
16
18
20
22
D7
D6
D5
D4
D3
D2
D1
D0
CS4
CS3
CS2
Data
Data
Data
Data
Data
Data
Data
Data
Chip
Chip
Chip
DESCRIPTION
24
WR
Data write
26
28
30
32
34
36
38
40
RD
CS6
CS7
RST
P1.1
Vcc
Vcc
Vpp
bit 7
bit 6
bit 5
bit 4
bit 3
bit 2
bit 1
bit 0
select 4
select 3
select 2
Data read
Chip select 6 or digital I/O
Chip select 6 or digital I/O
Controller reset
Digital I/O
Controller 5VDC (<200ma)
Controller 5VDC (<200ma)
Battery 12VDC (<0.5A)
55
Appendix A: Ports and Connections
Bumper Ports
Two 10-position latching IDC connectors provide general-purpose digital inputs, typically
used for the robot’s bumpers. All inputs are buffered and pulled high (digital 1).
Table 23. Bumper ports (10-pos latching IDC)
PIN
SIGNAL
1
3
5
7
9
BP0
BP2
BP4
BP6
Gnd
DESCRIPTION
Bumper bit
Bumper bit
Bumper bit
Bumper bit
Common
0
2
4
6
PIN
SIGNAL
2
4
6
8
10
BP1
BP3
BP5
BP7
Gnd
DESCRIPTION
Bumper bit
Bumper bit
Bumper bit
Bumper bit
Common
1
3
5
7
Motors, Encoders, IR Sensors
A 26-position latching IDC connector on the H8S microcontroller provides interface
through an intermediate board to the Motor-Power Board (Appendix B).
Line
descriptions also can be found in the following Motor-Power Interface section.
Table 24. Motors, endcoders, and IR interface (26-pos latching IDC)
PIN
SIGNAL
DESCRIPTION
PIN
SIGNAL
DESCRIPTION
1
3
5
7
9
11
13
15
17
19
21
23
25
LPWM
RPWM
MEN
E-STOP
RPWR
APWR
CHRG
IR7
IR5
IR3
IR1
Gnd
Gnd
Left motors PWM
Right motors PWM
Motors enable
E-Stop detect input
Radio power enable
Aux power enable
Charge port detect
IR input bit 7
IR input bit 5
IR input bit 3
IR input bit 1
Signal common
Signal common
2
4
6
8
10
12
14
16
18
20
22
24
26
LDIR
RDIR
LEA
REA
LEB
REB
IR6
IR4
IR2
IR0
BAT
*HRNG
Gnd
Left motors direction
Right motors direction
Left encoder channel A
Right encoder channel A
Left encoder channel B
Right encoder channel B
IR input bit 6
IR input bit 4
IR input bit 2
IR input bit 0
Battery voltage detect
RS232-level PC shutdown
Signal common
User Control Interface
A 16-position latching IDC connector provides interface with the User Control Panel
board and functions. See description in a following section.
Table 25. User Control Panel interface
PIN
SIGNAL
DESCRIPTION
PIN
SIGNAL
DESCRIPTION
1
3
5
7
9
11
13
15
Vcc
RST
RPWR
CHRG
PLED
Vpp
Gnd
HDSR
5 VDC power
RESET button
Radio power switch
Charging indicator
Main power
Battery 12 VDC
Signal/power common
HOST serial enabled
2
4
6
8
10
12
14
16
Vcc
MOT
APWR
BZR
SLED
Gnd
HTXD
HRCV
5 VDC power
MOTORS button
Aux power switch
Buzzer PWM
Status
Signal/power common
HOST serial transmit
HOST serial receive
56
ActivMedia Robotics
Joystick Port
An 8-position microfit socket provides signal lines for connection to an analog joystick.
Indicated lines (*) are shared on other connectors.
Table 26. Joystick connector (8-pos microfit)
PIN
SIGNAL
DESCRIPTION
1
Vcc
5 VDC
3
*AN4
A/D port
Y-axis
5
*AN3
A/D port
X-axis
7
nc
PIN
SIGNAL
DESCRIPTION
2
FB0
Fire button 0
4;
4
Gnd
Signal common
3;
6
FB1
Fire button 1
8
nc
57
Appendix B: Motor-Power Board Connectors
Appendix B
Power Distribution
Pioneer 2 H8S-based robots
have two separate boards
which interface with the H8S
microcontroller and provide
power for motors as well as
conditioned power and signal
paths for the standard and
accessory onboard electronics.
Consult Appendix A for H8Scontroller and User Control
Panel interface details.
Figure 22. Pioneer 2 Motor-Power Board
MOTOR-POWER INTERFACE BOARD
The Motor-Power Interface board connects the P2-H8S controller’s motor control signals
to the P2 Motor-Power board, and provides connections for switched radio and auxiliary
power, power and digital inputs for IRs, charge-detection port, and emergency stop
detector. See the H8S-controller board in Appendix A for interface connection
specifications.
Figure 23. Motor-Power interface board
Table 27. User Control Panel Switched Radio Power connector (3-pos microfit)
PIN
SIGNAL
DESCRIPTION
1
Vpp
Radio switched battery 12 VDC
2
Gnd
Power common
3
Vcc
Radio switched 5 VDC
Table 28. User Control Panel Switched Aux power connector (4-pos microfit)
PIN
58
SIGNAL
DESCRIPTION
1
Vpp
Aux switched battery 12 VDC
2
Vcc
Aux switched 5 VDC
3
Gnd
Power common
4
Gnd
Power common
ActivMedia Robotics
Table 29. Table-sensing and breakbeam IR power and signal connectors (3-pos microfit)
PIN
SIGNAL
DESCRIPTION
1
Vpp
Radio switched battery 12 VDC
2
IRn
Switching signal
3
Gnd
Power/signal ground
USER POWER CONNECTIONS
On the Motor-Power board, four sets of unswitched battery (Vpp) and DC:DCconditioned 5 VDC (Vcc) power, with power ground are available for accessory and
custom electronics on a 12-pin Molex-type latch-lock (100mm) connector. See the P2
Motor-Power Interface above for switched power options.
Table 30. User Power Connector
PIN
CONNECTION
PIN
CONNECTION
1
2
3
4
5
6
Vcc
Gnd
Vpp
Vcc
Gnd
Vpp
7
8
9
10
11
12
Vcc
Gnd
Vpp
Vcc
Gnd
Vpp
59
Appendix C
RADIO MODEM SETTINGS
The radio modem-based wireless serial accessory comes pre-configured for use with your
ActivMedia robot for client-server connections. One modem comes installed in the
robot. All you need to do is attach the HOST radio modem to a free serial port on your
PC and provide power—no other setup is required.
You may examine and alter your radio modem settings, such as to match a new baud
rate. Use Hyperterminal, minicom, or other simple terminal program. Default settings are
DCE for the host and DTE for the Pioneer 2-DX8/AT8, 9,600 baud, 8 bits data, 1 stop bit, no
parity. Once connected, all modem control commands begin with "WM". For example,
"WMS2" at the host connects the host modem to the robot’s modem.
Command
Description
WMBx
Set up the default baud rate. x=1 : 115200 , 2 : 57600 ,
3 : 38400 , 4 : 19200 , 5 : 9600.
Disconnect the radio link established previously.
Set up echo and response function. x= ’A’ ~ ‘P’.
Set up the maximum frame length. xxxx must be at most a
4-digit decimal number and ranging from 1 to 1024.
Set up the group identification code. xxxxxx must be
exactly a 6-digit hexadecimal number. The group ID is
used to ensure that each connection within the group can
be created successfully only if the group ID is the same.
Change the identification name to xxx…. The length of
xxx… cannot exceed 32 letters.
List current setting. The format is as follows:
Set up my address. xxx must be at most a 3-digit decimal
number and ranging from 1 to 255.
From command mode return to data mode.
Set up the partner PN code. See WMP.
Older units have to set up your own PN codes. xxx... must
be exactly a 32-digit hexadecimal number.
Newer units xxx is a number 1-23; match with pair modem.
Query remote setting.
Set up the remote output destination. x=P : printer port,
x=R : RS-232 port.
Create a radio link with the partner addressed by xxx.
Xxx must be at most a 3-digit decimal number and ranging
from 1 to 255. After establishing the link, the async.
interface will enter data transmission mode until
receiving ESCAPE sequence. The ESCAPE sequence consists
of three contiguous ‘|’ characters and a <CR>. After the
reception of ESCAPE sequence, the async. interface will
re-enter into command mode. Note that robot’s modem xxx
is 2.
From data mode escape to command mode. A delay of 100 ms
is needed between the return and any following data
input.
WMD
WMEx
WMFxxxx
WMIxxxxxx
WMJxxx…
WML
WMMxxx
WMN
WMOxxx…
WMPxxx…
WMQx
WMRx
WMSxxx
| | |
followed by
<CR> key
ActivMedia Robotics
Appendix D
SPECIFICATIONS
DXe
DX8
AT/AT8
Perf PB
PB V1
CE
Physical Characteristics
Length (cm)
44.5
44.5
50
47
47
44
Width (cm)
40
40
49
38
38
33
Height (cm)
24.5
24.5
24
124
104
22
Clearance (cm)
5.1
6.5
6.5
5.5
3.5
3.5
Weight (kg)
9
9
14
21
19
9
Payload (kg)
23
25
40
11
13
20
3
3
3
3
3
1
Charge (watthrs)
252
252
252
252
252
84
Run time (hrs)
8–10
8–10
4-6
8-10
8-10
8-10
3-4
3-4
2-3
3-4
3-4
na
6
6
6
6
6
6
2.4
2.4
2.4
2.4
2.4
na
2
pneumatic
2
pneumatic
4
pneumatic
2
pneumatic
2 solid
rubber
2 solid
rubber
diam (mm)
191
191
220
191
165
165
width (mm)
50
50
75
50
37
37
75
75
na
75
75
75
Power
Batteries 12VDC
lead-acid
with PC (hrs)
Recharge time
hr/battery
std charger
High-Speed
(3 batteries)
Mobility
Wheels
Caster (mm)
Steering
Differential
Differential
Skid
Differential
Differential
Differential
Gear ratio
19.7:1
38.3:1
85.2:1
38.3:1
38.3:1
19.7:1
Swing (cm)
32
32
40
33
32
32
Turn (cm)
0
0
0
0
0
0
Translate speed
max (mm/sec)
1,800
1,400
700
900
800
1,600
Rotate speed
max (deg/sec)
360
300
140
150
130
300
Traversable step
max (mm)
20
20
89
15
15
20
Traversable gap
max (mm)
89
89
127
50
50
89
Traversable slope
max (grade)
25%
25%
40%
11%
11%
25%
Wheelchair
accessible
Wheelchair
accessible
Unconsolidated
No carpets!
Wheelchair
accessible
Wheelchair
accessible
Wheelchair
accessible
Traversable
terrains
61
Appendix D: Specifications
Sensors
DXE
DX8
AT/AT8
Perf PB
PB V1
CE
Sonar Front Array
(one each side,
six forward @ 20°
intervals)
8
8
8
8
8
8
Rear Sonar Array
(one each side,
six rear @ 20°
intervals)
8
8
8
8
8
na
Top Deck Sonar
(one each side,
six forward @
20° intervals)
na
na
na
8
8
na
Encoders (2 ea)
counts/rev
39,400
76,600
34,000
76,600
76,600
39,400
counts/mm
counts/rotation
66
128
49
128
148
76
18,400
33,500
22,500
33,500
39,000
18,400
Optional
Optional
Standard
Optional
Optional
Controls and Ports
Main Power
Charge Port
Joydrive
Standard
Warranty & Liabilities
Your ActivMedia robot is fully warranted against defective parts or assembly for one year
after it is shipped to you from the factory. Accessories are warranted for 90 days. This
warranty explicitly does not include damage from shipping or from abuse or
inappropriate operation, such as if the robot is allowed to tumble or fall off a ledge, or if it
is overloaded with heavy objects.
The developers, marketers, and manufacturers of ActivMedia Robotics products shall
bear no liabilities for operation and use of the robot or any accompanying software
except that covered by the warranty and period. The developers, marketers, or
manufacturers shall not be held responsible for any injury to persons or property involving
ActivMedia Robotics products in any way. They shall bear no responsibilities or liabilities
for any operation or application of the robot, or for support of any of those activities.
And under no circumstances will the developers, marketers, or manufacturers of
ActivMedia Robotics product take responsibility for support of any special or custom
modification to ActivMedia robots or their software.
63
64
44 Concord Street
Peterborough, NH 03458
(603) 924-9100
(603) 924-2184 fax
http://www.activrobots.com
Open as PDF
Similar pages