ebook img

NASA Technical Reports Server (NTRS) 20060056494: The K9 On-Board Rover Architecture PDF

1.2 MB·English
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview NASA Technical Reports Server (NTRS) 20060056494: The K9 On-Board Rover Architecture

aource of Acquisition NASA Ames Research Center The K9 On-B oard Rover Architect ire .John L. Brctsina 1Iaria Brialat Michael Fair” Richard N‘ashingtoot . h i v LVrigtit” .Iiit,ononiy and Robotics Area, N.4S.4 Ames Research Center. hloffett Field, C-4 9-Wj LS.4 { jbresina I mbualat I mfair I rwashington I awright ) @arc.nasa.gov 1 Introduction This paper describes the software architecture of NASA Ames Research Center’s K9 rover. The goal of the on- board software architecture team was to develop a modular, flexible framework that would allow both high- and low-level control of the K9 hardware. Examples of low-level control are the simple drive or pan/tilt commands which are handled by the resource managers, and examples of high-level control are the command sequences which are handled by the conditional executive. In between these two control levels are complex behavioral commands which are handled by the pilot, such as drive to goal with obstacle avoidance or visually servo to a target. This paper presents the design of the architecture as of Fall 2000. We describe the state of the architecture implementation as well as its current evolution. An early version of the architecture was used for K9 operations during a dual-rover field experiment conducted by NASA Ames Research Center (.ARC) and the Jet Propulsion Laboratory (JPL) from May 14 to May 16, 2000 El]. 2 The K9 Rover The K9 Rover (see Figure 1) is a 6-wheel rocker-bogey chassis outfitted with electronics and instruments appropriate for supporting research relevant to remote science exploration and autonomous operations. The main CPU is a 166 5fHz PC104-i- mobile Pentium SfMX single board computer running the Linux operating system. An auxiliary microprocessor communicates with the main CPU over a serial port and controls power switching as well as other 1/0 processing. The motion/navigation system consists of motor controllers for the wheels and pan/tilt unit, a compass, and an inertial measurement unit. These system components communicate with the main CPU over serial ports. The camera system consists of a stereo pair of high resolution SCSI filter- wheel cameras, and up to eight multiplexed stereo pairs of low resolution RS-170 cameras. During field experiments, we have supported the testing of additional instruments on board the K9 rover. The Laser Induced Breakdown Spectrometer from Los Alamos National Laboratory and the flight panoramic camera from Ball Aerospace were tested during the May 2000 field experiment. Work is on-going to support three additional instruments: the CHA4MPm icroscopic imager from the University of Colorado, Boulder, an arm-mounted, Raman spectrometer from Detection Limit, Inc./ Montana State University-Bozeman, and a pseudolite GPS system from Stanford University. 3 Architecture The K9 on-board software architecture consists of 3 types of modules: device drivers, resource managers, behaviors/data processors, pilot, and exec. Figure 2 illustrates the architectural elements and their interactions, arid the following subsections describe the individual components. ‘NASA contractor with QSS. YXSA contractor with RIACS. Figure I: The K9 Rover. 3.1 Device Drivers At the lowest layer of the structure are the device drivers. These modules directly control the hardware devices of the robot, including framegrabbers, motors, and buses. Each device driver is controlled by a resource manager and cannot be commanded directly by the rover operator or plan executive. 3.2 Resource Managers In the next layer up from the device drivers are the resource managers. The current set of resource managers include the base manager, the pan/tilt manager. and the vision manager. The base manager drives the rover's wheels, and the vision manager controls image acquisition. In the future this set will also include an arm manager and instrument managers, such as spectrometer or microscopic camera managers. Resource managers can be directly commanded using command messages or direct method calls. Command messages are transmitted by NDDS,a commercial publish/subscribe communication framework for real-time systems, based on an underlying datagram model. 3.3 Rover Behaviors and Data Processors The rover behaviors and data processors comprise another type of module in the K9 software architecture. This set of modules currently includes obstacle avoidance arid path planning. and in the near-term will also include visual tracking and stereo processing. Behaviors cannot be ~oni~ia~itdleirtelc tly by the rover operator nor the executive module; they are instead indirectly controlled via the pilor. This is a relatively generic module type of the architecture, in that the behavior modules recliiire littlra knowl~r(lgca~b out the details of the robotic platform performing the sensing and xtii;~tio~foir tht: rti~(liilt~..i s t~~~11ipcI.vor.i sitier the obstacle avoidance module. The inputs to this module are A rimgtl 111i1rj of tht>c iirr~~ci~t~ i';iror~tiit*itiht,e desired goal, and knowledge of the maximum allowable obstacle sial ;im I rriiritrriiirri o hr it(+& wi~ig 13. L\fafl ( ~ rtih ese inputs, the obta~lct-avoitiance niodule will output a, preferrctil. s;ift*t ltivirig tlir Rover 1 Operator Conditional Executive L’ / i P ’, i’ battery charge compass ,, ‘ baseencoders pit encoders currentlvolt sense C videomux ‘1 j 1 base motor controller frame,mbbe= p/t motor controller chassis articulation sensor Figure 2: The K9 Rover Architecture. The rover can be commanded at the level of plans. complex commands, or low-level commands. The plans in turn may consist of complex and low-level commands, with additional temporal, resource, and state constraints. Solid lines indicate public interfaces, which are accessible to rover op- erators and executive control; dashed lines indicate private interfaces, which are accessible only to the controlling module. .\ztion: (drive 10.0 0.05) Wait-for condition\: t time IO 300) time +S t20) (resourcee nergy 5, Stan conditions (time IO 300) (time c5 +70) , ( resource energy 5 (resource storage 100) (rover-state :mechanical-state .ok) (rover-state :distance-traveled ?start-distance) Maintain conditions: (resource energy 7) End conditions: (rover-state :distance-traveled '?end-distance) (> '?end-distance ?start-distance) Expectations: (duration 100 10) fl,',./J 11 I1 (energy 2) Continue-on-failure: False Figure 3: A CRL action. An action may have conditions that must hold before, during, and after execution. Conditions rnay be based on temporal, resource, or state information. 3.4 Pilot The pilot is the next higher level of abstraction within the K9 software architecture. The pilot is the hub of the hardware control software, as it is the link between the behaviors and the resource managers. Complex commands, such as "visually servo to a target while avoiding obstacles", are directed to the pilot either by direct method calls from the executive or via a single NDDS command. The pilot then decomposes the complex command into a set of more specific commands to the resource managers and requests for information from the behaviors and data processors. In the example of visually servoing to a target while avoiding obstacles, the pilot commands the vision manager to acquire a stereo pair of images from the front hazard-avoidance cameras ("hazcams") and a stereo pair of images from the mast-mounted navigation cameras ("navcams"). The pilot then passes the hazcan; image pair to the stereo processing component to obtain a range map. The pilot also passes the navcam image pair, along with a template image of the target, to the visual tracking module. The tracking module outputs a target location that is input to the obstacle avoidance module, along with the range map. The obstacle avoidance module outputs the safe drive direction, which is then used by the pilot to command the base manager to move K9. 3.5 Conditional Executive At the highest layer of the structure is the conditional executive. The rover operator creates a command plan that contains commands for specific K9 subsystems; for example, mobility and cameras. The commands are written to an uplink file in the Contingent Rover Language (CRL). CRL is a flexible, conditional sequence language that allows for execution uncertainty. CRL expresses time constraints and state constraints on the plan, but allows flexibility in the precise time that actions must be executed. Constraints include conditions that must hold before, during, and after actions are executed: failure of these conditions leads to an execution failure and potential plan adaptation. Figure 3 illustrates the types of conditions supported by CRL. A primary feature of CRL is its support for contingent branches to handle potential problem points or opportunities in execution. The contingent branches and the flexible plan conditions allow a single plan to encode a large family of possible behaviors, thus providing responses to a wide range of situations. The structure of the CRL plan language anti its interpretation are completely domain-intirpenderit . Domain- t1t:pendent information is added by specifying command dictionary, with command names md argument types. i\. ,iiriI i‘oiiiiniiri(1 iiiwrt’<iri,. wt1ic.h p;wsc~s( ~ortiitiit11t~o1 ~t tic1 rovc’r .tiicI riit.iirri v;ili~c~.st i111> tCtt.v iriti,rrri,it.ioti frortl r Ill* rom’r Ttw c.on(lit.ion,d Iwr’iitivc* (CX) IS rc~sporisiblrf~o r int.i.rprcltirig t,titi CR L (.orrirr1xi(l plm cortiing frorii grc)iiml i’oiltUo1. dirvkiriy riiti-rmit! rc’soiir(:e re({iiirerrirnts ,in([ ,tv;ulability, rxionitoring p h i! xtv*iitioii. mcI p)t.~wt.ii~l~y ~e’lt~t.~tltt~~!rgn i~,t,~pvlea n brilIi(;hcs if the .iituation changes. .it ctilch branch poirit in ttic! phn. CS triily have niriltiplr t.tligible options. CX chooses the option with the highest expectecl rit,ility, computed 1)ver the rc~rn;riritler of the plan. From this utility and ii model of the probabilities of various ?vents (such ;IS il traverse raking longer than anticipatetl), the expected utility of iin entire branching plan can be estimated. The initial estimate of the utility of executing actions is computed on the ground with respect to the expected resource and time availability. These estimates are only approximate - the actual time and resource availability execution is only known at time. To better handle uncertainties, we have developed methods to update plan utilities on board at runtime to reflect the current best estimate of action utilities [2]. In addition, the overall utility of the uplinked plan may change during execution, due to unforeseen science opportunities or changes in resource availability and demand profiles. In this case, the rover’s behavior will be suboptimal unless its plan is revised. Furthermore, the scope of the plan may be exceeded due to failures. In this case, without plan revision. the rover must wait until a new plan is uplinked. We address the issues of plan suboptimality and plan failures by performing limited plan revision on board [3]. Our long-term strategy is to continue to increase rover on-board planning capabilities as flight processors become more powerful and as rover autonomy software . becomes more acceptable. 4 Current Status and Future Directions The K9 rover has been demonstrated in May 2000, as part of the joint JPL-Ames field test; it has also been demonstrated at our local test site at NASA Ames. We have a full suite of device drivers and resource managers for the onboard fans and power system components as well as the following onboard instruments and sensors: cameras, a pan-tilt head, a laser rangefinder, an inertial measurement unit, a compass, temperature sensors. We have recently installed an arm with 5 degrees of freedom, which will be used to deploy instruments on targets in order to perform in-situ science. The pilot has been demonstrated for use with obstacle avoidance and motor control. Work on integrating visual navigation and stereo processing is ongoing. The conditional executive has also been demonstrated for control of behaviors; we are currently extending the executive to control the pilot’s new capabilities. We are also integrating on-board science analysis algorithms [4],w hich will be used by the executive to increase the rover’s scientific productivity. One future direction of the K9 software architecture is to explore its compatibility with the CLARAty software architecture from JPL 151. As our first step in this effort, the arm control is being developed within the CLAR..lty framework. Acknowledgments: In addition to the authors, the K9 rover team included K. Bass, J. Bowman, L. Edwards. L. Flueckiger, L. Kobayashi, L. Nguyen, C. Stoker, and H. Thomas. References [l] J. L. Bresina, SI. G Bualat, L. J. Edwards, R. &I. Washington, and A. R. Wright. K9 operations in May ’00 dual-rover field experiment. In Proceedings of the Sixth International Symposium on Arttficzal Intelligence, Robotics, and Automation in Space (iSAIRAS-LOOI), 2001. [2] J. L. Bresina and R. Washington. Expected utility distributions for flexible, contingent execution. In Proceedings of the .4;lAI-2000W orkshop: Representation Issues for Real- World Plannrng Systems, 2000. 131 J. L. Bresina and R. Washington. Robustness via run-time adaptation of contingent plans. In Proceedzngs of the AAAI-2001 Spring Syposium: Robust Autonomy, 2001. [4] V. C. Gulick. R. L. llorris, M. Ruzon, and T. L. Roush. Autonomous science ilIialysis of digital images for mars sample return and beyond. In The 30th Lunar Plunetanj Sczence Conference, 1999. [.’I R. Volpe, I. Nesnas. T. Estlin, D. Mutz, R. Petras, and H. Das. The CLAR.4ty architecture for robot.ic ii\ltoti(>Iny.I n Proceedings of the 2001 IEEE Aerospuce Conference, SIarch 200 1.

See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.