background image

Software and Programming 

 

Software and Programming 

Chapter 3

 

The Pioneer Arm’s controller is attached to and controlled through an 

AUX

 serial port on your robot’s 

controller.   The robot controller, on the other hand, is connected with your robotics programs through 
its 

HOST

 serial port.  This means that your command and control client programs communicate with 

your Pioneer Arm through the Pioneer controller, not directly with the Pioneer Arm’s controller. 

Generic versus Server Programming 

We connect the Pioneer Arm through the robot’s controller for several reasons:  It means that you 

need only a single communication channel for all client-server communications with your robot and its 

accessories, thereby obviating the need for additional wireless modems or an expensive onboard PC 

with multiple serial ports.  Perhaps more importantly, we’ve included special servers in your robot 

controller’s embedded software that provide control features and watchdogs not available with the 

Pioneer Arm’s generic control software and not easily performed from a standard PC. 

Even so, Pioneer’s controller servers also support pass-through servers that transfer serial 
communications directly to and from the 

HOST

 and 

AUX

 serial ports, so that you may control your 

Pioneer Arm with its generic command set, if you prefer. 

Generic Controls 

The Pioneer Arm’s generic controller responds to a simple set of commands that enable/disable 

power to the servos and position the servo-driven joints.   It also lets you query the controller software 

version number and accessory digital I/O.  

However, the Pioneer Arm’s generic controller has no provision for controlling joint speeds.  The servo 

motors adjust to their new position as fast as they can, leading to some pretty wild swings unless you 

are careful.  Nor, with the generic commands, can you query for the current position of a joint. 

Your robot’s Pioneer Arm support servers, on the other hand, give you control over joint speeds and 

maintain current position information, as well as a variety of other advanced and convenient features.  

Which is why we recommend that you program to the Pioneer Arm servers and not to the arm’s generic 

command set. 

Generic Command Syntax 

The Pioneer Arm’s generic control protocols consist of a header byte (255; 0xFF) followed by a 

command byte and, sometimes, one command parameter. 

The most significant bit (b

7

) of the command byte determines the mode—set the bit for query mode; 

clear it for servo-positioning or digital output port commands.  The next three most significant bits of 

the command byte (b

4-6

) select the board number; always 0 for the Pioneer Arm.   The remaining bits 

of the command byte depend on the command mode. 

Generic Commands 

The Pioneer Arm’s generic commands let you enable/disable power to the servos and query for the 

controller’s software version number and analog/digital port states.  The native Arm controller 

supports three digital control bits and two analog input channels.  Digital channel 0 is connected to 

and controls power to the Pioneer Arm’s servo motors.  Channel 1 is connected to the status LED 

inside the Arm controller box. 

You may use the Pioneer Arm controller’s generic servo-positioning command to move a joint.  The 

command consists of three bytes:  The header (255; 0xFF), a servo-selector byte, and the position 

value byte.  The servo-selector byte’s most significant bit (b7) always is OFF (0) to distinguish servo-

positioning commands from query commands.  Its remaining bits (b

0-6

) select the servo number, for a 

total of up to eight joints.  Only joints one—the base swivel—through six—the gripper—are active with 

the Pioneer Arm. 

 

10 

The servo-positioning byte allows up to 255 different servo positions, although in practice the range of 

positions for any individual joint and depending on the individual arm varies to roughly 200 positions 

Summary of Contents for Pioneer Arm

Page 1: ...Pioneer Arm Manual with NEW AKIN Arm Kinematics Software ...

Page 2: ... 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 MobileRobots software and hardware without license or the express written consent of MobileRobots Inc is explicitly forbidden PeopleBot AmigoBot PowerBot PatrolBot ARCSinside SetNetGo MobilePlanner MobileSim...

Page 3: ... Keep equipment away from hair or fur Inappropriate Operation Inappropriate operation voids your warranty Inappropriate operation includes but is not limited to 9 Dropping the equipment 9 Overloading the Arm above its payload capacity 9 Getting the equipment wet 9 Continuing to run the equipment after hair yarn string or any other items have become wound in one or more of its joints 9 All other fo...

Page 4: ...C CONTROLS 10 Generic Command Syntax 10 Generic Commands 10 Generic Command Communications 11 PIONEER CONTROLLER ARM SERVERS 11 Client Commands 11 INFO and ARMINFOpac 12 POWER 12 STATUS and ARMpac 13 SPEED and POS 13 SPEED Limits 14 HOME and PARK 14 INIT CHECK and Warm Reset Protocol 14 ARIA AND ARAKIN ARM SUPPORT 15 ArP2ArmSimple ArAKinDemo and ArAKinExample 16 CHAPTER 4 ARM FLASH PARAMETERS 17 F...

Page 5: ...the Pioneer platforms are nearly identical and share accessories including the Pioneer Arm All Pioneer robots come with onboard robotics server software These operating systems have an open API for client control of the robot s systems and accessories Users access the onboard servers through an RS 232 serial communication port from their client workstation connected wirelessly or tethered via a pi...

Page 6: ...In addition the Pioneer Arm now comes bundled with ARIA integrated inverse kinematics software Arm Kinematics AKin as licensed from Fachhochschule Trier University of Applied Sciences Simply provide the 3 D position for the gripper end effector and let AKin do the work ARIA and ArAKin come with several demonstration clients that you may modify and use to create your own mobile robotic arm software...

Page 7: ...reach We maintain a 24 hour seven day per week Web server where customers may obtain software and support materials http robots MobileRobots 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 MOBILEROBOTS platform Newsgroups We maintain several email based newsgroups throu...

Page 8: ...rrently is unmoderated so please confine your comments and inquiries to issues concerning the operation and programming of Pioneer robots Tell us your robot s SERIAL NUMBER 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 and accessories Share your thoughts and questions directly with us http robots Mobile...

Page 9: ...tip of the Arm s V shaped mounting base should point towards the rear of the robot and the arm should be folded towards the back of its base 2 Use the hex wrench that came with your robot and one of the mounting screws to secure the arm s base tip to the robot s top plate just in front of the access port Freely rotate the arm around its base to access the mounting holes 3 Align the two other mount...

Page 10: ...characteristic of servo motors when first powered up are minimized Accordingly when operating the Pioneer Arm be sure to manually place it in its HOME resting position before applying power to its servos and be careful to have it resume its HOME position before removing power Failure to do so may cause damage to the Pioneer Arm or to nearby people animals lamps vases undergraduates For additional ...

Page 11: ...art up your robot Its Pioneer Arm automatically gets power too but the joint servos should be OFF and the arm limp in its HOME position If not manually move the joints until the arm is in that HOME position P2ArmDemo On startup the P2ArmDemo program automatically makes a client connection with your robot s controller through the COM1 dev ttyS0 with Linux serial port 5 It then graphically displays ...

Page 12: ...ect it and its surroundings from inadvertent damage The robot controller s Arm servers support important features that monitor Arm activity and automatically if enabled act to protect your Pioneer Arm These watchdogs include a client connection related automatic shutdown server a release timer for the Arm gripper and a warm reset server Power and Connection Related Automatic Shutdown Because it is...

Page 13: ... than five minutes at a time with healthy rest periods in between CAREFUL Unless carefully managed by your software the Pioneer Arm gripper timer may act to drop an object prematurely Like AutoParkTimer the gripper s watchdog timer GripperParkTimer is a parameter stored in your robot controller s FLASH and modified with the FLASH configuration utility The timer defaults to five minutes and can be ...

Page 14: ...s can you query for the current position of a joint Your robot s Pioneer Arm support servers on the other hand give you control over joint speeds and maintain current position information as well as a variety of other advanced and convenient features Which is why we recommend that you program to the Pioneer Arm servers and not to the arm s generic command set Generic Command Syntax The Pioneer Arm...

Page 15: ...etrieve responses from the Pioneer Arm controller using generic commands use the respective GETAUX commands 43 67 61 for AUX1 3 and corresponding SERAUXpac types 176 184 and 200 respectively server information packet Command and packet details are in your robot s Operations Manual MobileRobots ARIA client development environment supports these functions too Pioneer Controller Arm Servers Your robo...

Page 16: ...ove nor will the servers update joint positions unless your robot s controller verifiably has communication with the arm s controller and the arm s servo power is enabled There is a special warm reset protocol your client must perform in the case that the Pioneer Arm controller is not in contact with the robot s controller when your client software requests to enable servo power or in the case tha...

Page 17: ...S DESCRIPTION 2 0xFAFB Header 0 11 Data byte count 1 160 ARMpac server information packet ID 2 bit endcoded status Bit encoded servo power b0 and connection b1 status respective bit is set 1 if servo power enabled or a connection established between Pioneer Arm controller and the robot s microcontroller 3 bit encoded status Bit encoded motion status for each servo driven joint bit set 1 if respect...

Page 18: ...ds And so on Fortunately the worst case all six joints moving at once and requiring simultaneous position updates is rare for which a complete update cycle takes 2 x 6 12 milliseconds As it happens the larger heavier joints move best at slower speeds and speed controlling delay times of 15 milliseconds and above are smoothest and plenty fast for most manipulation applications HOME and PARK As desc...

Page 19: ...er Arm through the arm servers In the meantime you should manually restore the Pioneer Arm to its HOME position For your client to recover command and control of the Pioneer Arm while remaining connected after the communication failure you must follow the warm reset protocol 1 Request status STAT or CHECK and wait for restoration of communication bit 1 of the status byte 2 Issue the INIT command 3...

Page 20: ... activities as well as the ArAKin kinematics libraries Install the software into your ARIA directory typically in C Program Files MobileRobots Aria or usr local Aria Be sure to use matching ARIA and ArAKin versions In the generic Aria examples subdirectory find and create the ArP2ArmSimple program which shows you how to connect and operate the individual arm joints as well as monitor arm states an...

Page 21: ...e default joint speeds in 1 millisecond increments Unlike the other FLASH based position values joint speeds may be modified by your client software through the SPEED client command 78 See the previous chapter for details The TICKS PER 90DEGREES define the number of unique positions ticks the individual servo takes for a 90 degree swing in the joint Use this value to convert absolute joint positio...

Page 22: ...ton 3 Continue holding the MOTORS button for three or more seconds P2OS 4 Release the MOTORS button The robot should not reset If it does you probably didn t hold the MOTORS button down long enough Try again When successfully in FLASH maintenance mode notice that the heartbeat asterisk stops blinking in the C166 Console LCD With H8S and SH2 based robots the STATUS LED blinks rapidly and the BATT L...

Page 23: ... the current operating parameters from the robot but to load a saved parameters files from disk You may edit the file restored parameters just as you edit those retrieved from the robot And you may save those edited parameters over the same file or a different one using the save command Note that file restored configuration parameters are not necessarily the same as those stored in the robot s FLA...

Page 24: ...oneer Arm FLASH parameters for individual servo joints KEYWORD JOINT JOINT 1 JOINT 2 JOINT 3 JOINT 4 JOINT 5 JOINT 6 Home 125 30 20 130 20 100 Speed 20 20 20 20 20 20 Min 1 2 1 1 1 28 Center fc fc fc fc fc fc Max 223 230 215 224 233 250 TickPer90Deg fc fc fc fc fc fc Replace keyword suffix with joint number 1 6 ServoMin4 for example Cailbrated at the factory With the Pioneer Arm parameters several...

Page 25: ...nclude 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 name email and mail addresses as well as 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 Arm must be return...

Page 26: ...stic with foam covered gripper fingers MOTION 5 DOF arm and 1 DOF gripper POWER 5 and 12 VDC supplied by Pioneer robot ARM RANGE 50 cm fully extended GRIPPER RANGE Gripper fingers part to 5 cm PAYLOAD 150 gm 5 oz lift capability SPEED 1 second from fully extended to fully relaxed position 22 ...

Page 27: ...rs and manufacturers of MobileRobots 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 MobileRobots products in any way They shall bear no responsibilities or liabilities for any opera...

Page 28: ...19 Columbia Drive Amherst NH 03031 USA 1 603 881 7960 1 603 881 3818 fax http www MobileRobots com ...

Reviews: