background image

AmigoBot Mobile Robots

21

AmigoBot’s client-server architecture

Chapter 5

 

 AmigoBot Operating System

All ActivM

EDIA 

R

OBOTICS

’ mobile robots use an

intelligent client/server control architecture
developed by Dr. Kurt Konolige.  In the model,
the server works to manage all the low-level
details of the mobile robot’s systems.  These
include operating the motors, firing the sonar,
collecting sonar and motor encoder data, and

so on

all on command from and reporting to a

separate client application, such as Saphira or

Ayllu.

With this client/server architecture, high-level
robotics applications developers do not need to
know many details about a particular robot
server, because the client typically 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 AmigoBot via the
AmigoBot Operating System (AmigOS)
client/server interface.  The same AmigOS
functions and commands are supported in the
various client-programming libraries that

accompany the robot.

Experienced ActivM

EDIA 

R

OBOTICS

 Pioneer users

already are familiar with AmigOS:  It is directly
compatible with Pioneer Operating Systems,
implementing most of the same commands and
protocols.  AmigOS, of course, does not support
all the PSOS or P2OS-enabled accessories for
those respective robots, and extends the servers

to add new functionality, such as with sounds.

Communication Packet Protocol

AmigOS servers communicate with a client application using special packet protocols:
command packets from client to server, and server information packets (SIPs) from the
server to client. Both are bit streams consisting of four main elements: a two-byte header,
a one-byte count of the number of command/data bytes, the client command and its

arguments or the server information data, and finally, a two-byte checksum.

Summary of Contents for AmigoBot

Page 1: ...AmigoBOT Technical Manual...

Page 2: ...ies and which are available for network download by AmigoBot customers are solely owned and copyrighted by ActivMEDIA ROBOTICS LLC AmigoBot developers and users are authorized by revocable license to...

Page 3: ...red to correct the interference at their own expense Some possible ways to ameliorate the interference include Reorient or relocate the receiving antenna Operate the equipment in a different location...

Page 4: ...unds 12 Motors and Position Encoders 13 Sonars 13 Sonar Rate and Sequence 13 Sonar Sensitivity 13 Serial and Accessory Ports 13 System Serial Port 13 Control Serial Port 14 Accessory Connector 14 Radi...

Page 5: ...Sounds 30 Extended Server Information Packets 30 Packet Processing 30 Configuration Packets 30 Encoder Packets 30 AUX Serial Packets 31 Sound Playlist 31 CHAPTER 6 UPDATING RECONFIGURING AMIGOS 33 Wh...

Page 6: ...vi APPENDIX B 42 APPENDIX C 43 INDEX 45 WARRANTY LIABILITIES 47...

Page 7: ...ll 2 wheel differential drive intelligent mobile robot Like its Pioneer siblings AmigoBot is truly an off the shelf plug and play mobile robot containing all of the basic components for autonomous sen...

Page 8: ...ient computer and AmigoSURVEILLANCE a color camera with 2 4GHz A V radio for live audio video surveillance applications Software and Modes of Operation The AmigoBot microcontroller comes loaded with A...

Page 9: ...bsumption like environment which excels for multi agent cooperative tasks and the simpler Pioneer Application Interface PAI There is even P LOGO a version of the popular programming language extended...

Page 10: ...ies to issues concerning the operation and programming of AmigoBot Support Have a problem Can t find the answer in this or any of the accompanying manuals Do you know a way that we might improve Amigo...

Page 11: ...ct computer Controls Switches Indicators and Sounds Recharge Power Battery A single slide switch on the bottom of the AmigoBot near the caster controls power to the entire robot and all of its integra...

Page 12: ...to begin AmigoBot s self tests for instance While in self test mode the button advances the sonar tests See Chapter 4 Self Tests for details When connected with a client the black Motors Test button...

Page 13: ...Although calibrated at the factory you may adjust the sonar sensitivity and range to accommodate differing AmigoBot operating environments The sonar gain control is a one turn screwcap accessible thro...

Page 14: ...exible section unscrews from the main body Main power to AmigoBot s radio modem is controlled from the robot s Power switch Use the pushbutton switch on the side of the modem to individually control i...

Page 15: ...cut off for a configurable amount of time stallwait The server software also notifies the client which wheel is stalled When stallwait elapses motor power resumes and motion continues under server con...

Page 16: ...ng Ayllu PAI and P LOGO come distributed as compressed archives of software We include a CD ROM containing these software configured and compiled for Windows 95 98 00 NT systems and for RedHat Linux A...

Page 17: ...e Connect menu of Saphira s main window on your computer and engage the appropriate serial port It s the one that you connected to the robot via a direct cable or through modems The serial port name v...

Page 18: ...menu items in the Saphira client and from the client keyboard These include manual drive operation and disabling enabling obstacle avoidance and constant velocity behaviors When manually driving the...

Page 19: ...and fail with a Connection refused In that case reset the robot and check your serial connections For instance if you are using the InfoWave radio modems the red DCD LED on the host should light up I...

Page 20: ...sonars You should hear the distinctive clicking sound as each sonar pings individually each in order clockwise beginning with the sonar closest to the left wheel sonar 0 The green System LED blinks at...

Page 21: ...ing relationship with your robot This chapter explains how to communicate with AmigoBot via the AmigoBot Operating System AmigOS client server interface The same AmigOS functions and commands are supp...

Page 22: ...packet with its bytes in the reverse order of that used for arguments and data that is b0 is the high byte and b1 is the low byte Use the following C code fragment in your client applications to comp...

Page 23: ...rver interface In the meantime 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...

Page 24: ...ns from a client for control and operation of the robot or its simulator The number of client commands per second you may send depends on the serial baud rate and average number of data bytes per comm...

Page 25: ...es 4 2 1 0 1 0 DHEAD 13 int Turn relative to current heading degrees 3 x 1 0 1 0 SAY 15 string Sound duration 20 ms increments tone half cycle pairs int is string length 4 2 1 0 Not ap plicable see SO...

Page 26: ...command number optionally followed by if required by the command a one byte description of the argument type and the argument value Client Command Argument Types There are three different types of Ami...

Page 27: ...may uniquely name your AmigoBot with a special configuration tool we provide The class and subclass are fixed and cannot changed by the user The class string is Pioneer the subclass depends on your ro...

Page 28: ...anslation and rotation operate independently AmigOS will try to make the robot achieve the desired velocity and heading as soon as the commands are received using its internal acceleration and deceler...

Page 29: ...0 pointing toward the positive x axis at 0 degrees Absolute angles vary between 0 and 360 degrees As the robot moves it will update this internal position based on dead reckoning You may reset the int...

Page 30: ...ontinuous stream of packet types to the client over the Control serial communication line Packet Processing It is up to the client to handle all packet types Extended packets get intermingled with the...

Page 31: ...ing N data bytes as requested in command Checksum integer Checksum for packet integrity AmigOS maintains a circular buffer for incoming serial data from the AUX port and returns successive portions de...

Page 32: ...ds if first response packet when getting all user playlist Sound toggle byte Sound on 1 or off 0 Name 16 byte string Sound name in ASCII may be empty or may not be null terminated If tilde prefix is a...

Page 33: ...Simply follow the on screen directions For the Linux UNIX versions uncompress and untar the distribution using the appropriate system utilities For example with the Linux version the command is tar zx...

Page 34: ...ntity and operating parameters As with amigosdl connect with AmigoBot s System serial port on the bottom of the robot and enable System Mode on the robot if you haven t done so already Find and execut...

Page 35: ...arameters with respective AmigOS commands from the client Amigoscf Commands Command Description keyword value Alone keyword displays current edited value Add a value argument to change current value c...

Page 36: ...on restoration of connection with client RevCount integer 23310 The number of encoder ticks for a 360 degree revolution of the robot Reset this parameter to a number that best reflects the characteris...

Page 37: ...uration in a file called AmigoBot cf Restored parameters overwrite the temporary parameters in the amigoscf program an do not take effect on the robot until save d onto its FLASH You may edit the file...

Page 38: ...ou intend not to use the robot for any longer period of time a pity such as for a week or more Charging the Battery If you have the standard AmigoBot or the high speed charger accessory insert it into...

Page 39: ...ess explicitly authorized by the AmigoBot support Factory Repairs If after reading this manual you re having hardware problems with your AmigoBot and you re sure that it needs repair contact us AmigoB...

Page 40: ...System serial ports are active RS232 compatible pins 1 Gnd 2 RxD and 3 TxD1 Pin 4 is connected to Vcc 5 VDC Careful when using a common 4 wire telephone cable the connector pins get reversed The Amigo...

Page 41: ...connections I O Ports on Accessories Connector Pin Label Description Pin Label Description 1 12V Battery 2 GND Battery 3 12V power 4 GND power 5 12V unconditioned 6 GND ground 7 TIOCA4 Gen I O 8 TIOC...

Page 42: ...nvFactor 0 555 sonar range mm Robot class subclass Class Pioneer Subclass amigo SonarNum 8 total sonars Sonar parameters SonarNum is number of sonars SonarUnit I X Y TH is unit I 0 to N 1 description...

Page 43: ...4 hrs Mobility Drive wheels 2 solid rubber with caster balance Wheel diameter 10 cm Wheel width 3 cm Steering Differential Gear ratio 19 5 1 Swing radius 33 cm Turn radius 0 cm Translate speed max 75...

Page 44: ...uP 1M external RAM 16 KB uP Controls and Ports Main Power Robot accessories power ON OFF Charge System power battery recharge RESET Warm reboot download MOTORS TEST Motors download self tests Radio P...

Page 45: ...ients 8 Client Server 21 Client Server Mode 9 CLOSE 28 Cold Start 17 Comm port 34 Communication packets 22 See Packets Communications 17 Communications rate 23 Components Battery 11 User supplied 9 CO...

Page 46: ...20 Sensors 8 SERAUXpac 31 Serial 40 Configuration 40 Control Port 40 Internal ports 40 System Port 40 Server Information packets 23 Server information packets 23 Servers 21 ADSEL 30 AmigoBot Operatin...

Page 47: ...r 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...

Page 48: ...44 Concord Street Peterborough NH 03458 603 924 9100 603 924 2184 fax http www amigobot com...

Reviews: