Thanks to visit codestin.com
Credit goes to www.scribd.com

0% found this document useful (0 votes)
9 views16 pages

A Computational Framework For Simulation of UWRV Systems

This paper presents a computational framework for simulating the dynamics and hydrodynamics of Underwater Robotic Vehicle (URV) systems using an efficient version of the Articulated-Body (AB) algorithm. It addresses the complexities of simulating various URV topologies, including open-chain and tree-structured mechanisms, while incorporating compliant contacts with the environment. The framework leverages object-oriented design techniques to enhance code reuse and adaptability for future developments in underwater robotics.

Uploaded by

Amit
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
9 views16 pages

A Computational Framework For Simulation of UWRV Systems

This paper presents a computational framework for simulating the dynamics and hydrodynamics of Underwater Robotic Vehicle (URV) systems using an efficient version of the Articulated-Body (AB) algorithm. It addresses the complexities of simulating various URV topologies, including open-chain and tree-structured mechanisms, while incorporating compliant contacts with the environment. The framework leverages object-oriented design techniques to enhance code reuse and adaptability for future developments in underwater robotics.

Uploaded by

Amit
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 16

AutonomousRobots 3,253-268 (1996)

@ 1996Kluwer Academic Publishers.Manufacturedin The Netherlands.

A Computational Framework for Simulation of Underwater


Robotic Vehicle Systems

SCOTT McMILLAN
High Techsplanations, Inc., 6001 Montrose Road, Suite 902, Rockville, MD 20852-4874
[email protected]

DAVID E. ORIN
Department of Electrical Engineering, The Ohio State University, Columbus, OH 43210
[email protected]

ROBERT B. McGHEE
Department of Computer Science, Naval Postgraduate School, Monterey, CA 93943
[email protected]

Abstract. This paper presents a computational framework for efficiently simulating the dynamics and hydrody-
namics of Underwater Robotic Vehicle (URV) systems. Through the use of object-oriented mechanisms, a very
general yet efficient version of the Articulated-Body (AB) algorithm has been implemented. An efficient solution
to branching within chains is developed in the paper so that the algorithm can be used to compute the dynamics for
the entire class of open-chain, tree-structured mechanisms. By including compliant contacts with the environment,
most closed-chain systems can also be modeled. URV systems with an extended set of topologies can be simulated
including proposed underwater walking machines with intra-body powered articulations. Using the encapsulation
inherent in Cff, the hydrodynamics code has been confined to a single class, thereby explicitly defining this
framework and providing an environment for readily implementing desired hydrodynamics algorithms. Resulting
simulations are very efficient and can be used in a number of applications both in the development and use of URV
systems.

Keywords: underwater robotics, hydrodynamics, simulation, articulated mechanisms, tree topologies, object-
oriented design

1. Introduction serve the needs of marine biologists and geologists


who study hydrothermal vents (Yoerger et al., 1995),
Underwater Robotic Vehicle (URV) systems represent and inspection of underwater telecommunications ca-
an important and growing area of advanced robotics be- bles (Kato, 1995). The current state-of-the-art and
cause of their potential for applications in the hazardous future research directions in underwater robotics are
and unstructured subsea environment. The range of briefly summarized by Yuh (1995a), and representa-
applications is quite wide and is typified by those tive research of a number of international groups may
presented at a recent workshop in Japan on Robotic be found in papers from a recent conference (Basu
Technologies in Oceanic Engineering (Yuh, 1995b). et al., 1995; Sayers et al., 1995; Bono et al., 1995;
These include installation, maintenance, and repair Santos et al., 1995; Yuh, 1995a; Fujii and Ura, 1995;
of subsea structures in support of the offshore-oil in- Vagany and Rigaud, 1995; Lane and Knightbridge,
dustry (Lane, 1995), survey of the deep sea floor to 1995).
254 McMillan, Orin and McGhee

Because of the relatively high cost and risk involved, the branching of tree structures so that URV systems
simulation is an important alternative to sea trials and with general topologies may be efficiently simulated.
demonstrations especially during the early stages of This paper also presents the computational framework
the control development of a URV system. Numerical that is necessary to achieve a very efficient simula-
simulations with reasonable execution speeds can per- tion of this general class of systems. The result is the
mit trials to be repeated at much more frequent rates. ability to simulate, for example, dual redundant ma-
Beyond this are the computational requirements of tele- nipulators mounted on a free-flying base such as that
presence applications in which aremote operator needs described in Lane (1995) or Aquarobot, an underwater
immediate graphical feedback to gain a sense of being walking robot for surveying and construction of sea-
present at the site (Boman, 1995). Real-time simu- walls (Iwasaki et al., 1987). Terrain adaptive vehicles
lation is required to overcome the transmission delays such as K2T’s eight-legged walker or the Wheeled Ac-
and communications bandwidth limitations that are of- tively Articulated Vehicle (WAAV) (Yu and Waldron,
ten associated with these systems. 1991), which have intra-body powered articulations,
As the degree of autonomy of URV systems is in- can also be simulated.
creased to reduce the operator workload or to extend Furthermore, the computational framework has been
the range of operation of the system, even greater de- developed so that a variety of joint types, actuator mod-
mands on the computationa rate may be placed during els, and hydrodynamic models may be incorporated
tele-assistance. The URV system automatically per- with ease. The degrees of freedom in each joint, the ac-
forms most of the lower-level coordination and control tuator forces/torques, and hydrodynamic forces, along
functions while the operator supervises the execution of with the link velocities, accelerations, etc., on which
the task by, for instance, teaching a series of actions or they are dependent, are effectively integrated into the
assisting with error recovery. Simulation-in-the-loop recursions of the AB method so that the computational
control can be effective in these modes of operation complexity is still O(N), where N is the number of
to provide a predictive capability. The effects of the links in the system.
present or an alternative guidance and control strategy Finally, the computational framework that has been
can be simulated ahead of real time and viewed to judge developed uses object-oriented design (OOD) tech-
its viability for successfully completing the task or mis- niques . Implementation of real-time simulation soft-
sion. This may often imply computation of seconds of ware can be a complex programming task. This paper
motion in milliseconds at super-real-time rates (Wong presents the OOD techniques that are especially suited
and Orin, 1995). for managing and reducing this complexity such as in-
In order to meet the real-time or even super-real-time formation hiding or encapsulation, inheritance, and
simulation requirements of some applications, this pa- polymorphism. These mechanisms also support code
per develops a computational framework for simula- reuse and extensibility so that productivity is increased
tion of URV systems. This computational framework and the simulation code can easily be adapted to model
builds on the most efficient methods available for dy- new mechanisms.
namic and hydrodynamic simulation. The articulated- In the next section, the kinematic topologies of the
body (AB) method for a single serial chain was first URV systems considered are discussed in more detail.
developed in Featherstone (1983). This was extended Considering the most general tree-structured topology,
to URV systems systems (still single chain) with the in- the development of the AB algorithm is presented in
corporation of various hydrodynamic forces exerted on Section 3. Then, the computational framework to sup-
these systems in underwater environments in our pre- port the efficient incorporation of the hydrodynamic
vious work (McMillan et al., 1995b). While particular effects is summarized in Section 4. Section 5 presents
models were developed in that paper to compute these the object-oriented implementation of the resulting al-
forces due to added mass, viscous drag, fluid accelera- gorithm which is followed by some results.
tion, and buoyancy, many other models exist that make
tradeoffs between computational simplicity and simu- 2. Topologies of URV Systems
lation fidelity (Yuh, 1990; Ioi and Itoh, 1990; Fossen,
1995; Goheen, 1995; Bono et al., 1995). With advances in underwater robotics, the kinematic
This work is extended in this paper with the devel- topologies found in URV systems are becoming much
opment of a new algorithm that is capable of handling more diverse. The simplest is the sub-like URV without

180
Simulation of Underwater Robotic Vehicle Systems 255

Figure 1. Aquarobot: an underwater walking robot for surveying and construction of seawalls (Iwasaki et al., 1987).

articulations. This represents the majority of URV respectively. Another is the WAAV (Wheeled Actively
systems and can be modeled as a single rigid body. Articulated Vehicle), a terrain-adaptive vehicle for
To interact with the environment single manipulators planetary exploration, containing three modules with
have appeared on some systems such as MBARI’s two independently powered wheels each, and intercon-
ROV, Tiburon, equipped with a Schilling manipula- nected by powered ball joints (Yu and Waldron, 1991).
tor (Newman and Robison, 1992). The corresponding These design approaches are now being applied to
topology is a simple articulated structure called a serial URV systems. As shown in the concept drawing in
chain. Fig. 2, the topology for K’T’s autonomous robot for
More recently, systems with greater complexity have shallow water and surf-zone mine clearance opera-
been developed which require corresponding increases tions is more complex than a simple star topology be-
in the complexity of simulation and control systems. cause the body of the vehicle contains ajoint that allows
Examples include URVs with multiple manipulators the top half to rotate about a vertical axis with respect
such as the dual redundant manipulator system de-
scribed in Lane (1995), and underwater legged systems
such as the Aquarobot (Iwasaki et al., 1987) shown in
Fig. 1. These systems are said to have a more general
star topology which consists of a single central body,
called the reference member, to which any number of
serial chains is attached (one of these chains is shown
in Fig. 3(a)).
However, some of the most advanced robotic sys-
tems being designed have more general topologies still.
Examples of these systems include the energy-efficient
“frame walkers” such as Dante II (Apostolopoulos and
Bares, 1995), a rappelling vehicle for exploration of
volcanoes. Its torso consists of two bodies that slide
back and forth and rotate with respect to one another, Figure 2. Concept drawing of an autonomous mobile robot under
with a set of four legs attached to each that can be development for shallow water and surf-zone mine clearance appli-
lowered and raised for the support and transfer phases, cations (Courtesy of K2T, Inc.).

181
256 McMillan, Orin and McGhee

the dynamics for the entire class of open-chain, tree-


structured mechanisms. It builds upon the structure
of the AB algorithm (Featherstone, 1983) for comput-
ing robot dynamics, that is presented in the appendix,
to provide a basis for the computational framework
to simulate URV systems. This is a very efficient
method for computing the dynamics of multibody sys-
tems (Roberson and Schwertassek, 1988).
In this discussion, a general tree structure is assumed
as shown in Fig. 3(b) which has a reference mem-
/\ i-4. (0) ,
)
( referencemember
/
( reference member
\ (0)
)
,
ber and N links that are numbered from 1, attached
to the reference member through joint 1, to N, one of
----A the “leaf” links (end-effecters). With this algorithm,
(4 (b) the reference member can be either mobile or fixed, for
simulation of AUV/ROV systems as well as manipula-
Figure 3. Open-chain articulations connected to a reference mem-
ber: (a) a serial chain, and (b) a (general) tree structure.
tion systems mounted on stationary platforms, and the
joints between the links can have an arbitrary number
of degrees of freedom (DOFs). In addition, soft con-
to the bottom half. Similar to Dante II, four legs are straints are used to model the contact of chains (specif-
attached to each half which alternate in the support and ically, the end-effecters) with the terrain/environment
transfer phases. (Freeman and Orin, 1991). This means that the closed
All of these systems are characterized by intra-body, loops that are thus formed through the time-varying
powered articulations within the torso that cannot be contacts can be modeled as well. In fact, soft con-
modeled as simple star topologies. Instead, the most straints are appropriate in most cases since they model
general open-chain topology, the tree, must be em- the compliance at the contact.
ployed and is illustrated in Fig. 3(b). The inn-a-body The method for modeling the branches in general
articulations can be modeled by allowing for branching tree structures is presented in the following discussion
in the chains that are attached to the reference mem- and is based on the work of Khalil and Kleinfinger
ber. This same branching capability allows for mod- (1986). For serial chains with single DOF joints, mod-
eling of open-chain systems with arbitrary branching ified Denavit-Hartenberg (MDH) parameters specify
elsewhere in the system as well. To this point, our the kinematic transformations between successive links
DynaMechs software package was capable of simulat- most efficiently (Craig 1986). However, they are inad-
ing only systems with star topologies (McMillan et al., equate in tree-topology systems where branching oc-
1995a). This paper presents the extensions that allow curs. In this case, a pair of constant parameters, in
the entire class of open-chain articulated mechanisms addition to the MDH parameters, are needed to specify
with tree structures to be modeled. Also, by modeling the transformation between the links as illustrated in
the compliance at the contacts where these mechanisms Fig. 4.
interact with the terrain/environment, the closed loops
that occur within time-varying topological structures
can be handled as well. The required simulation algo- Joint j ‘, ~

rithm for tree-structured topologies with contacts at the Joint i


“leaf” nodes is presented in the next section.

3. The Articulated-Body Algorithm


for Tree Structures

In this section, a very general yet efficient version of /‘Joint k


the Articulated-Body (AB) algorithm is presented. An
efficient solution to branching within chains is devel- Figure 4. Additional MDH-like parameters for modeling branches
oped so that the algorithm can be used to compute in tree structures with 1 DOF joints.

182
Simulation of Underwater Robotic Vehicle Systems 257

This figure shows a branch that occurs outboard simulate a serial chain system. The links were num-
of link i to links j and k. Again, assuming single bered, in order, from 1 (attached to the reference mem-
DOF joints, link i’s coordinate system (indicated by ber) to the last link, N, as shown in Fig. 3(a). The im-
ii and ii) can be defined so that ii lies on the com- plementation of the AB algorithm’s recursions along
mon normal between joint i’s axis and one of the out- the serial chains was implemented in a straightforward
board joint axes (joint j in this case); therefore, a set fashion with for loops, using the loop variable to index
of MDH parameters can specify this transformation. the necessary functions for the links in the correct order.
For each additional branch, an intermediate coordinate An increasing counter is used for the forward recursions
system (indicated by ii and ii, in the figure) attached and a decreasing one for the backward recursion.
to link i is specified from which MDH parameters Using this predecessor function, the new kinematic
can then be used. This intermediate coordinate sys- and dynamic equations used to derive the AB algorithm
tem also lies on joint i’s axis and is specified with an for tree-structured topologies has been included in the
axial screw transformation with constant parameters, appendix. For the kinematic equations, it is a straight-
d; and 0;. forward conversion from serial chain code to replace all
Since transformation of kinematic and dynamic references to link i - 1 (the inboard neighbor to link i
quantities between coordinate systems accounts for in a serial chain) with p(i), because all quantities com-
the majority of the computation in the simulation of puted in the kinematics step refer only to the inboard
articulated-body mechanisms, efficient implementa- neighbor. On the other hand, the force balance (dy-
tion of these functions is paramount to achieving effi- namics) equation for a link requires the sum of forces
cient simulation algorithms. Our previous work showed exerted on its outboard neighbors which requires a new
how the various dynamic quantities are most efficiently approach. Since the outboard links equations would be
transformed using MDH parameters (McMillan and computed first, an accumulation operation must be im-
Orin, 1995). By realizing that these operations consist plemented in the new computational framework which
of two successive axial (X and z) screws and that the ad- adds to the forces exerted on a link p(i) and the code
ditional parameters for branching define an additional for each link i is computed in the backward recursion.
z-axial screw, the result in that paper can be applied to The equation from the appendix is repeated here for
the additional parameters to achieve the most efficient emphasis:
computation for these general tree structures.
The previous discussion assumed revolute and pris- f&j := f& + iXFcij fi Vi given p(i), (1)
matic joints only. Other joint types can be modeled
using a number of single DOF joints. However, it has where f&, is the sum of the forces exerted by link p(i)
been shown that more efficient methods are available onto all of its outboard (successor) links and fi is the
for specifying the transformation across multiple DOF part of that force exerted onto link i .
joints when parameters suitable for the joint are used. With the proper computational framework presented
One example from our work is the ball joint which con- below, the serial chain method can be easily modified
tains three revolute DOFs. With or without branching, to support the simulation of tree-structured systems by
a constant position vector and three variable Euler an- employing a specific link numbering scheme suggested
gles are sufficient and no intermediate coordinate sys- by Brand1 et al. (1986). That is, the links are still num-
tem would need to be specified. bered from 1 to N with the requirement that a link’s
Finally, note that in tree-structured systems each link number always be greater than its predecessor. Ei-
has a single parent link, also called its inboard neigh- ther depth-first or breadth-first numbering of the links
bor. Therefore, it is notationally easier to present un- will satisfy this requirement, and the former is used
ambiguous kinematics and dynamics algorithms that in Fig. 3(b). This ensures that for loops can still be
refer only to the current link and its inboard neighbor. used and that the computations proceed in the proper
To accomplish this, the predecessor function, p(.), is order with an inboard link’s computation occurring be-
used extensively in the rest of this paper to refer to a fore/after an outboard link’s computation during a for-
link’s predecessor. As an example, p(j) = p(k) = i for ward/backward recursion. The only major differences
the links in Fig. 4. between general tree structures and serial chains are
Previous work (McMillan et al., 1995a, b) presented that more end-effecters are possible, additional trans-
the kinematics and dynamics equations required to formation parameters may be needed for branching in

183
258 McMillan, Orin and McGhee

the tree, and the accumulation of forces and Al3 iner- where vr is the linear velocity of the body relative to
tias at branch points with equations similar to 1 must the fluid and ‘af is the linear acceleration of the fluid.
be performed. In order to compute ff in the local coordinates of the
link for inclusion in the AB algorithm, the components
of both, vi and ‘af must be determined relative to the
4. Hydrodynamic Simulation Framework body’s local coordinate system. Also note that the fluid
rotation is assumed to be negligible in this framework,
With an efficient AB algorithm for land/space-based in which case only the link’s angular velocity is in-
robotic systems well understood, this section presents cluded.
the computational framework for developing an effi- When an object translates through a viscous fluid, lift
cient hydrodynamic simulation algorithm. While the and drag forces are also exerted on it and are included
net hydrodynamic force results from incompressible in the hydrodynamic bias force. For a general body,
fluid flow determined by the Navier-Stokes (distributed surface integrals over the entire body are required to
fluid-flow) equations, it is assumed here that it can be compute the resultant force and moment, fp, which is
represented as a sum of separately identifiable compo- a function of the body’s velocity relative to the fluid:
nents for which “lumped” approximations have been
used. Using these assumptions, (Yuh, 1990) and (Ioi ff = f(Wi, VI).
and Itoh, 1990) have identified the most significant hy-
drodynamic forces due to added mass, viscous drag, While lift and related forces due to vortex shedding are
buoyancy, and fluid acceleration which are presented usually much smaller for the systems and applications
in the following discussion. under consideration here, large viscous drag forces can
Inclusion of the hydrodynamic forces in the simula- be exerted on URV systems even for reasonably slow
tion is accomplished at the rigid body (link or mobile motions because water density is significant. Drag can
reference member) level where the force balance equa- be further decomposed into pressure drag which is nor-
tion for each was defined in Eq. (A6) in the appendix. mal to the surface of the body and shear drag which
Including the hydrodynamic effects, this equation is is tangential. For underwater manipulation, the shear
replaced with the following: drag will also typically be small, so that the emphasis
in McMillan et al. (1995b) was on modeling pressure
fi =I”ai-pH+q, (2) drag. It arises from non-zero normal components of
where relative velocity between the body’s surface and the
I? = Ii +I:, (3) fluid. As was shown in McMillan et al. (1995b), this
computation can be significantly simplified for regular
py = /3i + PA + f? + f: + f:, (4) body shapes such as cylinders.
Finally, both buoyancy and fluid acceleration forces
and which are called the hydrodynamic inertia and hy- are translational forces exerted through the center of
drodynamic bias force, respectively. These are analo- buoyancy of the body and proportional to the mass of
gous to the spatial inertia of the link, Ii, and bias force, the fluid that is displaced by the body. The buoyant
pi, that are used in land- and space-based simulation. force is also proportional to gravitational acceleration,
The new (hydrodynamic) inertia is needed when a iag, and opposite in direction:
rigid body accelerates through a fluid, because some
of the surrounding fluid also accelerates with the body.
For water, this fluid has significant inertia properties
that can be specified with a 6 x 6 positive definite added while the fluid acceleration force is proportional to and
mass matrix, I”. A detailed derivation of the spatial exerted in the same direction as the acceleration of the
(6 x 1) reaction force, ff , due to this effect was carried surrounding fluid, ‘af:
out in McMillan et al. (1995). The resulting form has
an acceleration-dependent term which leads to Eq. (3)
above, and a bias force that is a function of the following
terms: Note that these require the gravitational and fluid ac-
celeration terms to be expressed in the body’s local
coordinates as well, hence, the leading superscript.

184
Simulation of Underwater Robotic Vehicle Systems 259

These two accelerations and the linear velocity environment


relative to the fluid are additional terms that must be
provided in the computational framework to support
hydrodynamic simulation. The relative linear velocity
is most efficiently incorporated by replacing the com-
putation of the link’s angular velocity in Eq. (Al) in
the appendix with the following for the spatial velocity
of the link relative to the fluid:

v; =
[I
Wi
V;
= iXp(i) (J(i) + 4i Qj. (9)

Note that the top half of this spatial vector is the an-
gular velocity from before because we assume irrota-
Figure 5. Object hierarchy for DynaMechs
tional fluid flow, and the last term has been generalized
for arbitrary joint types whose motion space is defined
by the 6 x n vector, & (Lilly and Orin, 1991). Since encapsulation, inheritance, and polymorphism to ac-
the gravitational and fluid acceleration are free vectors, complish this goal.
they can be expressed with respect to each coordinate
system with the appropriate rotation operation:
5.1. Object Hierarchy

The first step in OOD is to decompose the task, in atop-


These equations are incorporated into the Forward down fashion, into a part-of hierarchy of component
Kinematics recursion of the AB algorithm along with objects as shown in Fig. 5. First the domain is divided
the subsequent computation of ,!lzfl for each rigid body into two parts, the robotic system and the surrounding
in the system. environment, as indicated by the two top-level objects,
Although detailed derivations of equations to com- While the latter contains the attributes for the environ-
pute the additional hydrodynamic forces were pre- ment with which the system interacts such as gravity,
sented in McMillan et al. (1995b), the specifics have fluid characteristics, and terrain models, the emphasis
been purposefully omitted from this discussion. This is in this work is on the system object. The system is
to emphasize the fact that, with the framework provided decomposed into the reference member and a number
here, different hydrodynamic algorithms (Yuh, 1990; of general articulated structures that are attached to the
Ioi and Itoh, 1990; Fossen, 1995; Goheen, 1995; Bono reference member. The articulated structure is further
et al., 1995) with varying degrees of accuracy or mod- decomposed into a number of links and a set of end-
eling additional effects can be readily implemented. effecters that are associated with the “leaf” links of the
articulated structure and allow for interaction with the
environment. Finally, actuator models have also been
5. An Object-Oriented Robot Simulation System added to this version of the software and are considered
a component of each link.
The resulting AB algorithm has been implemented in
C++ using object-oriented design (OOD) techniques
as part of a more extensive goal to develop a real-time 5.2. Class Hierarchy
graphical simulation system for underwater, land, and
space-based robotic systems. Among the advantages The second step in OOD concentrates on the devel-
of OOD are improved complexity management, code opment of the classes to be used. Classes essentially
reuse and increased productivity, and easier mainte- define the “types” of the elements that appear at the
nance and expandability’. This section of the paper nodes of the object hierarchy. This is accomplished
presents an overview of the design of this simulation with a kind-of classification of these objects defined by
system, called DynaMechs (McMillan et al., 1995a), inheritance and polymorphism techniques which leads
with emphasis on the use of the OOD mechanisms of to the class hierarchy as shown in Fig. 6.

185
260 McMillan, Orin and McGhee

note that inheritance (see below) is used so that both


the MobileBase and Link classes can access the
member data and functions associated with the gen-
eral RigidBody class. The discussion that follows
! Actuator 1 presents the pertinent OOD mechanisms that are used
including encapsulation, inheritance, and polymor-
phism in the design of this hierarchy.

Encapsulation. A class has two distinct features:


membervariables that store data or state, and mem-
berfunctions (or methods)which correspond to a set
of behaviors that operate on the member variables.
Figure 7 shows excerpts from C++ classes that are
used in DynaMechs. For example, the member vari-
ables of the RigidBody class (at the top of the figure)
Figure 6. Class hierarchies for DynaMechs (the dashed boxes in- include all of its mass and inertia properties, and hydro-
dicate abstract classes). dynamic parameters such as center of buoyancy, drag
coefficients, and the added mass matrix. Note that user-
defined Cartesian and spatial vector and matrix types
As implied by the object hierarchy, the System’s have been used to clarify the declarations of these vari-
member variables include an instance of a RefMem- ables. In this example, member functions include the
ber object and an array of ArticulatedStruc- constructor (given the same name as the class) for cre-
ture objects that are dynamically allocated when the ating instances of the class and code to compute the
System object is created. This allows for simula- hydrodynamic bias force.
tion of an arbitrary number of articulated structures The user usually only has access to a set of member
attached to the reference member. Polymorphism (see functions in the section of the definition indicated by the
below) in the RefMember class, as indicated by the C++ keyword, public. Encapsulation is enforced in
dashed box in the figure, provides System objects two ways. Not only is the implementation of these
with a uniform interface for functions whose imple- functions hidden from the user, but the variables and
mentation depends on whether the reference member is functionsin theprivateorprotected(afeatureto
a FixedBase or MobileBase objectwhich enables support inheritance mechanisms) sections of the class
simulation of systems with stationary platforms as well are also inaccessible to the user. Normally, all member
as vehicles. Likewise, polymorphism in the Articu- variables and some functions are encapsulated, so that
1atedStructure class allows for simulation of gen- limited and controlled access by the user can only be
eral Tree structures as well as Serialchain objects. gained through calls to the public functions.
While serial chains can be represented as trees, code This encapsulation is key to achieving the bene-
specialized to serial chains is more efficient than the fits of complexity management with OOD. From the
general tree code and has been retained from the pre- user’s standpoint, the objects of each class have a cer-
vious version of this software. tain functionality provided by the public functions,
TheArticulatedStructureclassmembervari- and the emphasis in the top-down design phase fo-
ables include dynamically allocated arrays of End- cuses on the interaction of objects using only these
Ef f ector and Link objects which allows for an functions. At the same time, the implementation of
arbitrary number of links and end-effecters to be the classes’ internal data and methods (a bottom-up
simulated for each articulated structure. Polymor- process) is decoupled from the top-down design deci-
phism in the Link and MDHLink classes provides sions. Should the implementation of the functions and
ArticulatedStructure objects with a uniform variables change at a later date, no other code would
interface for functions whose implementation de- be affected provided the interface (function names and
pends on the type of joint associated with the link: their argument lists) does not change. This empha-
revolute (RevoluteLink), prismatic (Prismati- sizes the need for early and complete specification of
clink), or ball (BallnSocketLink) joints. Also the classes’ public interfaces during the design process,

186
Simulation of Underwater Robotic Vehicle Systems 261

class RigidBody hydrodynamic simulation because nearly all of the code


c specific to the hydrodynamic effects have been encap-
protected:
float mass; sulated into the RigidBody class. The hydrodynamic
CartesianVector cg-pos; // pos of c.g. inertia is computed in the constructor during initializa-
CartesianVector cb-pos; // pos of c.b. tion and assigned to the Spatial-Inertia variable
CartesianTensor I-bar; // 3x3 inertia which is accessed by the remaining code during the
SpatialTensor Spatial-Inertia, Added-Mass; Backward Dynamics recursion, and the hydrodynamic
float C-d. length, radius; // drag params.
float disp-fluid-vol; bias force is computed by calling the computeHy-
droBias member function during the Forward Kine-
public: matics recursion. The remainder of the software pro-
RigidBody(FILE *cfg-ptr); // Constructor vides the framework for simulating general, open-
void computeHydroBias(CartesianVector a-g,
CartesianVector a-f,
chain, tree-structured systems. Provided the arguments
SpatialVector v-r, passed to the computeHydroBias member function
SpatialVector betaH); are sufficient, the user can arbitrarily change its im-
3; plementation to compute any desired hydrodynamic
algorithm (even computing time-varying added mass
class Link: public RigidBody // inherit R.B.
matrices) without needing to modify any other classes.
c
public:
Link(FILE +cfg-ptr);
virtual Inheritance. A second goal in the design of the
void txToInboard(SpatialVector f, classes is to increase code reuse with a mechanism
SpatialVector f-ib)=O; called inheritance. This is accomplished by moving
3; variables and functions that are present in more than
class MDELink: public Link // inherit Link one class into a single, more general class, called a
c superclass. Its variables and functions are then in-
protected: herited by subclasses that need to use them. For ex-
float d-branch, theta-branch; ample, the RigidBody class is the superclass for the
float aJ4DH. alphaJ4DH. d_MDH, theta_MDH;
Link (shown in Fig. 7) and MobileBase (not shown)
public: classes that are both examples of rigid bodies. The
MDHLink(FILE *cfg-ptr); public RigidBody declaration in the first line of
void txToInboard(SpatialVector f. the Link class definition will give Link objects ac-
SpatialVector f-ib); cess to the RigidBody's member variables and func-
3;
tions as well as the variables and functions specific to
class BallnSocketLink: public Link links such as the function, txToInboard, to trans-
I form spatial vectors to the coordinate system of the
private: link’s inboard neighbor.
EulerAngles q; // orient. and pos. Other examples of inheritance in this design can
CartesianVector p; // urt inboard link.
be found in the reference member classes (Fig. 6).
public: FixedBaseandMobileBase objectssharecommon
BallnSocketLink(FILE *cfg-ptr); attributes that are defined in and inherited from the
void txToInboard(SpatialVector f, RefMember SUperClaSS. TheMobileBase class also
SpatialVector f-ib);
inherits the RigidBody class which results in mul-
3;
tiple inheritance. Another form of multiple inheri-
Rgure 7. Excerpts from someDynsMechs classes. tance can also be achieved by inheriting classes that
are themselves subclasses, such as the MDHLink and
Bailnsocket~ink classes which contain attributes
and will significantly reduce the complexity of the pro- ofthe Link and RigidBodyclasses.
gramming task and make code maintenance and mod- The subclass/superclass terminology implies the hi-
ifications much easier. erarchical relationship between classes and is one mo-
This point is extremely important in the con- tivation behind the development of the class hierarchy.
text of our computational framework for supporting The key to successful class decomposition is to move

187
262 Mcklillan, Orin and McGhee

attributes to the most general level possible. As aresult, spatial vector f [ 2 ] , expressed in link [ 11 's coor-
the amount of code reuse is maximized because the in- dinate system, to the coordinate system of the links’
herited variables and functions are only implemented inboard neighbors in a backward recursion (lines 4-
once. Productivity increases because this reduces the 5). Note that this example assumes a serial chain for
amount of coding and testing required. simplicity, in which case the predecessor function has
simplified to p(i) = i - 1.
Polymorphism. Polymorphism is the other important Regardless of the actual type of joint, the user’s func-
consideration in the development of the class hierarchy, tion call is the same.Internally, however, Bal InSock-
which is defined in Booth (1986) as the ability to refer etlink's function was executed for link[ l] and
to methods of different classes by a common function ~~~~ink's function for link [ 0 I . This mechanism is
name, and through this name have them “respond to also called dynamic binding where the particular func-
a common set of operations in different ways.” To tion to be executed is determined at runtime (when
illustrate this point, the txToInboard is used as an lines 2 and 3 are executed). With polymorphism no ex-
example (Fig. 7). First, the class hierarchy related to tra variables indicating which type of joint, case state-
the Link class is expanded to include the MDHLink ments or conditionals are needed which keeps the code
and BaIlnSocketLink subclasses that contain code cleaner and more maintainable. Other than the instanti-
specialized to different types of joints. ation of the link objects themselves, this code supports
For efficient transformations, the four modi- encapsulation because it does not depend on the vari-
fied Denavit-Hartenberg (MDH) parameters and two ous types of links that may be defined, and it also does
branch parameters (if applicable) are needed for single not need to be modified when the system is extended
DOF (revolute and prismatic) joints as defined in the to include new link subclasses.
MDHLink class, and three Euler angles and a Cartesian Polymorphism and inheritance, together, in the
position vector are used for the three DOF ball joints as Link class, illustrate the ease with which the soft-
shown in the BallnSocketLink class. As a result, ware has been extended to include the new ball joint
each requires a different version of txToInboard. To types. Figure 6 also indicates that polymorphism
hide these details from the user, a uniform function in- was extended to the MDHLink class, and inheritance
terface to both, using C++‘s virtual keyword, is from that class was used to create the RevoluteLink
provided in the Link superclass. The “= 0" indicates and PrismaticLink classes. Inheritance (code reuse
that this is apure virtualfunction which must be defined of the MDHL~~~ class) reduces the amount of new code
by its subclasses. Because it has undefined methods, that must be written while polymorphism through both
the Link class is called an abstract class as indicated the Link and MDHLink classes eliminates the need
by the dashed box in Fig. 6. to modify code that calls methods of Link objects.
With this framework, the following code shows how This extensibility is a key requirement of this simula-
polymorphism is used in C++: tion package since it is targeted to experimental vehicle
systems where a vast range of configurations may be
1 Link *link[2]; proposed.
2 link[O] = new MDHLink(cfgptr);
3 link[l] = new 6. Hydrodynamic AB Algorithm Implementation
BallnSocketLink (cfgptr) ;
Using the design presented in the previous section, the
4 for (i=2;i>O;i--) hydrodynamic AB algorithm was implemented effi-
5 link[i-l]->txToInboard(f[i], ciently. The distribution of the tasks in the algorithm
f[i-11); across the various classes is illustrated in Fig. 8. In this
figure, each box corresponds to one of the objects in
In this example, an array of two Link objects (line 1) the system and contains their class names (more than
is allocated. The first is dynamically allocated as an one where polymorphism is illustrated). The arrows
MDHLink and the second a BallnSocketLink us- indicate the order in which the objects execute code
ing Cff’s new command (lines 2-3). With the com- to complete the three steps of the AB algorithm. In
mon name (Link) and the uniform function inter- addition, the EndEf f ector objects contain code for
face (txToInboard) polymorphism can now be used. modeling compliant contacts and computing external
This is illustrated with the spatial transformation of a tip forces as described in Freeman and Orin (1991).

188
Simulation of Underwater Robotic Vehicle Systems 263

SY!
rF algorithm for the Aquarobot has also been measured on
this workstation containing a 150 MHz MIPS R4400
processor and the IRIX 5.2 operating system. Including
foot pad and camera boom dynamics and the hydrody-
namic algorithm described in McMillan et al. (1995b),
one iteration of the Aquarobot dynamics computation
(28 rigid bodies/45 DOFs) requires about 2.6 ms. With
reasonably stiff contacts with the environment, this ap-
pears adequate for real-time performance, and is un-
- Forward Kinematics dergoing further study. In addition, much work is yet
---z Forward Accelerations to be done to compare the simulation results with ex-
perimental results for Aquarobot. First, the derivation
Figure 8. Hydrodynamic AB algorithm distribution among the
DynaMechs classes.
of the hydrodynamic parameters required by this sim-
ulator must be accomplished which is a difficult task
and must be the subject of further study.
Note that polymorphism in the Articulated-
Strut ture class provides a uniform interface so the
same algorithm can simulate both general tree topolo- 7. Conclusions
gies and the streamlined serial chain code, in the same
way the RefMember class enables the software to eas- A computational framework for simulating the dy-
ily simulate fixed and mobile base systems and the namics and hydrodynamics of URV systems has been
Link class to easily compute the dynamics for nu- developed in this paper. Systems with general tree-
merous types of joints. In addition, dynamic array structured topologies may be simulated within this
allocation allows for simulation of an arbitrary number framework, and these include URVs equipped with
of articulated structures each with an arbitrary number multiple manipulators and underwater walking ma-
of links. chines. The closed loops that occur when the arms
Figure 9 shows the Aquarobot simulation running or legs interact with the terrain/environment are ef-
on a Silicon Graphics (SGI) Indigo2 workstation with fectively managed by using soft constraints which
Extreme graphics using SGI’s Performer software. model the compliance at the contacts (Freeman and
The runtime performance of the resulting simulation Orin, 1991). The dynamics algorithm used within the

Figure 9. Scene from the Aquarobot simulation.

189
264 McMillan, Orin and McGhee

framework is based on the Articulated-Body (AB) advance the employment of simulation in the develop-
method (Featherstone, 1983) which was extended ment and use of URV systems. Released versions of
to support the topologies of tree-structured systems the code can be obtained via anonymous FTP from
Brand1 et al. (1986) by providing an efficient solu- ftp://cs.nps.navy.mil/pub/dynamechs or
tion to branching with chains. The hydrodynamic ef- visiting the DynaMechs Home Page on the WWW
fects of added mass, drag, buoyancy, and fluid accel- athttp://cs.nps.navy.mil/research/eod/
eration forces McMillan et al. (1995b) may be readily dynamechs . html.
computed within the framework since the velocities,
accelerations, and other quantities on which they are
dependent, are provided. The resulting simulation al- Appendix: Articulated-Body Algorithm
gorithm has O(N) complexity where N is the number
of links in the system. In this appendix, the equations required to develop
Object-oriented design techniques were used to sup- the AB algorithm for tree-structured topologies is dis-
port an efficient, yet general, implementation of the cussed. In particular, the kinematic and dynamic equa-
algorithm in C++. The capability exists to simulate tions that result from the use of the predecessor function
systems with multiple articulated structures (with effi- that was defined in Section 3 are given.
cient code in place for the prevalent serial chain struc-
ture, as well) connected to a reference member that A. 1. Kinematics
can be either fixed or mobile. The joints that connect
the rigid bodies together can be revolute, prismatic, or Derivation of the AB algorithm begins with the set of
ball joints, and the capability exists to easily extend the kinematic equations that compute the velocities and
system to include other types. accelerations for each link. For land- and space-based
One of the important results of the object-oriented algorithms, only the angular velocity is needed which
design is the implementation of the hydrodynamic depends on the angular velocity of the inboard link,
computation. While the rest of the system provides the tip(i) and the velocity of the intervening joint (assuming
framework for computing the dynamics of these gen- a revolute joint), qi, as follows:
eral tree-structured mechanisms, the computation of
the hydrodynamic forces on each rigid body in the sys- W = iRp(i)Wp(i) + giii 9 (AlI
tem becomes encapsulated in a single (RigidBody)
class. In fact, it can be implemented in a single mem- where ‘R,(i) is the 3 x 3 rotation matrix between link i’s
ber function of the class. This has been accomplished coordinate system and its predecessor’s. Using spatial
by defining the required inputs of the hydrodynamic
notation, the equation for acceleration of link i (at its
computation (e.g., velocity relative to fluid, fluid accel- coordinate system's origin) may be written as follows
eration, etc.) in a form that can be efficiently computed
(Featherstone, 1987):
within the AB framework. Then, the computations
of the hydrodynamic forces on each rigid body have
been developed with respect to these and implemented ai = i%ija,(ij + 4i;ii + (i, 642)
in the RigidBody class. There are two benefits to
where & is the spatial joint axis vector, and ci is the
this approach: (a) hydrodynamic algorithms of vary-
vector of Coriolis and centripetal accelerations that are
ing complexity and accuracy, that have been developed
a function of known velocities:
by others for submerged rigid bodies (there are many),
can be readily implemented because the implementa-
tion itself is hidden from the other parts of the software
system, and (b) the resulting software will yet be very
efficient for complex structures. The spatial acceleration is a six-element vector com-
In addition to the aspectsof the computational frame- bining the three-dimensional angular, hi, and linear
work that have been described in the paper, other acceleration, ai, vectors as follows:
work has proceeded to provide a graphical capability
with the basic DynaMechs simulation system. This
is the subject of continuing work that will hopefully
ai=[oj
Cli
1’ G44)

190
Simulation of Underwater Robotic Vehicle Systems 265

Note that the convention in this paper is to use an italic and second mass moments) as follows:
bold variable, such as a, to refer to a Cartesian (three-
dimensional) vector representing either a rotational or
translational quantity, and a block bold variable, such (A9)
as a, to refer to a spatial (six-dimensional) vector.
The spatial transformation matrix, iXP(i), is used to
whereii is the 3 x 3 moment of inertia tensor for the
transform spatial vectors between coordinate system i
link with respect to its own coordinate system, and 13
and its predecessor and is defined as follows (Lilly and
is the 3 x 3 identity matrix. The 3 x 1 vector, hi, is its
Orin, 1991):
first mass moment which is equal to (mi si), where rni
is its mass and Si is the vector from the link’s coordinate
iXp(i) =
iRp(i)
JRp(i.P(i);T
l
'R
0
P(r)
'
1 (A5)
system origin to its center of mass.
From Eq. (A2), the acceleration of link i depends on
the acceleration of the inboard link. This implies that a
recursion from the base at the root of the tree to the end-
where P(%i is the Cartesian vector specifying the po-
effecters may be used to compute the link accelerations
sition of the origin of link i’s coordinate system with
when the joint accelerations, ii, are known. Eq. (A6)
respect to link p(i)‘s, and the tilde above the vector
implies a recursion from the end-effecters to the base
signifies that its components should be combined in a
to determine all of the link forces once the link ac-
skew symmetric matrix such that bc = b x c.
celerations have been determined. Together these two
sets of equations define the outward and inward recur-
A.2. Dynamics sions associated with the inverse dynamics problem
which computes the joint torques for a specified mo-
To complete the derivation of the AB algorithm, a set tion. For the case of forward dynamics computations,
of dynamics equations for the force balance on each however, the joint accelerations are unknown so that
link is needed. For link i, this is given as follows: the link accelerations, and hence the link forces cannot
be determined in a direct manner from these equations.
Consequently, a different approach is required to solve
fi =Ijai-/?i+fi+, (‘46) the dynamic simulation problem. In the AB algorithm,
this involves the computation of AB inertias.
where the vector, pi, is a vector of bias forces that are
a function of the link’s angular velocity as follows:
A.3. Articulated Bodies
Bi = f(Q). (A7) Instead of using the force balance equation for a single
link, an expression relating fi to the dynamic properties
The vector fi is the spatial force exerted onto link i of all the links outboard of it (i.e., the subtree of links
by its inboard (predecessor) link, and fz is the sum whose root is link i) is used. This relationship is given
of the forces exerted by link i onto all of its outboard as follows:
(successor) links. This quantity is accumulatedusing
the predecessor function as follows: fi = ITaj - #?i*. t-410)

fp+) I= fsici,+ iXicij fi Vi given p(i). (‘48) The matrix, IT, is the 6 x 6 AB inertia of the outboard
links which is the inertia that is “felt” at the ith coordi-
Like the spatial acceleration, spatial forces exerted nate system when the outboard joints are free to move.
on/by the link are also six-element vectors combining Likewise, the vector, BT, is the bias force exerted on
the moment, n, and translational force, f, vectors. the ith link due to the resultant bias forces within the
In the first term on the right side of Eq. (A6), link articulated body including the effects of all outboard
i’s spatial inertia, Ii, relates the spatial acceleration of joint torques. Details of the derivation of the equations
the link to the resultant spatial force. This 6 x 6 matrix needed to efficiently compute 1; and ,!$*can be found
combines the link’s mass and inertia quantities (first in McMillan (1994).

191
266 McMillan, Orin and McGhee

The resulting AB algorithm for forward dynamics Boman, D.K. 1995. International survey: Virtual-environment re-
contains three O(N) recursions. The first is a Forward search. Computer, 28(6):57-65.
Kinematics recursion which computes the velocities Bono, R., Caccia, M., and Veruggio, G. 199.5.Simulation and control
of an unmanned underwater vehicle. In IEEEInt. Corzf on Robotics
and velocity-dependent terms, /3i and &, of each link andAutomation, Nagoya, Japan, pp. 1573-1578.
from the base to the end-effecters. In the second step, Booth, G. 1986. Object Oriented Design with Applications, Ben-
the AB inertias, IT, and bias forces, b,*, are computed in jamin/Cummings Publishing Co. Inc.: Redwood City, CA.
a Backward Dynamics recursion from the end-effecters Brandl, H., Johanni, R., and Otter, M. 1986. A very efficient
to the base. The final step begins with the computation algorithm for the simulation of robots and similar multibody
systems without inversion of the mass matrix. In Proc. oj
of the base acceleration. In the case of a fixed base, this IFAUIFIPLMACS Int. Symp. on Theory of Robots, Vienna,
quantity is known, a~ = 0, and for mobile bases it can Austria.
be computed from the AB inertia of the entire system Craig, J.J. 1986. Introduction to Robotics: Mechanics and Control,
and the resultant force on the reference member (the re- Addison-Wesley: Reading, MA.
sults of the second recursion). This result enables the Featherstone, R. 1983. The calculation of robot dynamics using
articulated-body Inert&.. The Int. Journal @Robotics Research,
computation of the first joint’s acceleration, &, with The MIT Press, 2: 13-30.
an equation derived from Eqs. (A2) and (AlO). This Featherstone, R. 1987. Robor Dynamics Algorithms, Kluwer Aca-
enables the computation of link l’s acceleration from demic Publishers: Boston.
Eq. (A2). These results are used to compute the joint Fossen, T.I. 1995. Underwater vehicle dynamics. In Underwater
Robotic Vehicles: Design and Control, J. Yuh (Ed.) TSI Press:
and link accelerations (in that order) for the succes-
Albuquerque, NM, pp. 1540.
sor links in the tree. This procedure defines the final Freeman, P.S. and Orin, D.E. 1991. Efficient dynamic simu-
Forward Accelerations recursion from the base to the lation of a quadruped using a decoupled tree-structured ap-
end-effecters. proach. Int. Journal of Robotics Research, The MIT Press,
10(6):619-627.
Fujii, T. and Ura, T. 1995. Autonomous underwater robots with
Acknowledgments distributed behavior control architecture. In IEEE Int. Con5 on
Robotics and Automation, Nagoya, Japan, pp. 1868-1873.
Goheen, K.R. 1995. Techniques for URV modeling. In Underwater
The authors wish to recognize the financial support
Robotic Vehicles: Design and Control, J. Yuh (Ed.) TSI Press:
of the Office of Naval Research and the Naval Explo- Albuquerque, NM, pp. 99-126.
sive Ordnance Disposal Technical Center, Indian Head, loi, K. and ltoh, K. 1990. Modelling and simulation of an underwater
MD as managed by Mr. Chris O’Donnel under con- manipulator. Advanced Robotics, 4(4):303-317.
tract N0464A95WR01915. This work was also sup- lwasaki, M., Akizono, J., Takahashi, H., Umetani, T., Nemoto, T.,
Asakura, 0.. and Asayama, K. 1987. Development on aquatic
ported in part by a DuPont Fellowship and an AT&T
walking robot for underwater inspection. Report qf the Port and
Ph.D. Scholarship both at The Ohio State University, Harbour Research Institute, 26(5):393-422.
by Grant No. BCS-9306252 from the National Science Kato, N. 1995. Application of fuzzy algorithms to guidance and
Foundation to the Naval Postgraduate School, and by control of AUV. In Workshop on Robotic Technologies in Oceanic
Grant No. BCS-9311269 from the National Science Engineering, Nagoya, Japan, pp. 38-46.
Khalil, W. and Kleinfinger, J.F. 1986. A new geometric notation for
Foundation to The Ohio State University.
open and closed-loop robots. In IEEE Int. Corzf on Robotics and
Automation, San Francisco, CA, pp. 1174-1179.
Lane, D.M. 1995. Subsea robotics for the offshore industry. In Work-
shop on Robotic Technologies in Oceanic Engineering, Nagoya,
Japan, pp. 8-16.
1. Of course, C++ is not the only language possessing object ori- Lane, D.M. and Knightbridge, PJ. 1995. Task planning and world
ented features. However, it is the defacto standard for real-time modelling for supervisory control of robots in unstructured en-
graphical simulation and was therefore chosen for this research. vironments. In IEEE Int. Co@ on Robotics and Automation,
Nagoya, Japan, pp. 1880-1885.
Lilly, K.W. and Orin, D.E. 1991. Alternate formulations for the
References manipulator inertia matrix. International Journal of Robotics Re-
search, The MIT Press, 10(1):64-74.
Apostolopoulos, D. and Bares, J. 1995. Configuration of a robust McMillan, S. 1994. Computational dynamics for robotic systems on
rappelling robot. In IEEEKYJ Int. Co@ on Intelligent Robotics land and under water. Ph.D. thesis, The Ohio State University:
and Systems, Pittsburgh, PA. Columbus, Ohio.
Basu, A., Elnagar, A., and Fiala, M. 1995. Surface integration for McMillan, S. and Orin, D.E. 1995. Efficient computation of
inspection tasks. In IEEE Int. Conf on Robotics and Automation, articulated-body inertias using successive axial screws. IEEE
Nagoya, Japan, pp. 1560-1566. Trans. on Robotics and Automation, 11(4):606-611.
Simulation of UnderwaterRobotic Vehicle Systems 267

McMillan, S., Orin, D.E., andMcGhee, R.B. 1995a.DynaMechs: An in Monterey, CA. He is currently a member of the Core Technology
object oriented software package for efficient dynamic simulation Group at High Techsplanations, Inc. in Rockville, MD, perform-
of underwater robotic vehicles. In Underwater Robotic Vehicles: ing research in and development of surgical simulation systems.
Design and Control, J. Yuh (Ed.) TSI Press: Albuquerque, NM: His research interests include legged locomotion, control systems
pp. 73-98. for autonomous underwater vehicles, physically-based modeling for
McMillan, S., Orin, D.E., and McGhee, R.B. 1995b. Efficient dy- virtual reality simulations, parallel processing, and object-oriented
namic simulation of an underwater vehicle with a robotic manipu- design. He is a member of IEEE and Tau Beta Pi.
lator. IEEE Trans. on Systems, Man, and Cybernetics, 25(8): 1194-
1206.
Newman, J.B. and Robison, B.H. 1992. Development of a dedi-
cated ROV for ocean science. Marine Technology Society Journal,
26(4):46-53.
Roberson, R.E. and Schwertassek, R. 1988. Dynamics of Multibody
Systems, Springer-Verlag: Berlin.
Santos, A., Rives, l?, Espiau, B., and Simon, D. 1995. Dealing
in real time with a priori unknown environment on autonomous
underwater vehicles (AUVs). In IEEE Int. Co@ on Robotics and
Automation, Nagoya, Japan, pp. 1579-1584.
Sayers, C.P., Lai, A., and Paul, R.P. 1995. Visual imagery for subsea
teleprogramming. In IEEElnt. Cm-$ on Robotics andAutomation,
Nagoya, Japan, pp. 1567-1572.
Vagany, J. and Rigaud, V. 1995. Supervised navigation: Optimal al-
gorithm example and needs for autonomous supervision. In IEEE David E. Orin received his Ph.D. degree in Electrical Engineering
b-u. Cot-$ on Robotics andAutomation, Nagoya, Japan, pp. 1874- from The Ohio State University, Columbus, in 1976. From 1976 to
1879. 1980, he taught at Case Western Reserve University, Cleveland, OH,
Wong, H.C. and Orin, D.E. 1995. Control of a quadruped stand- in the Department of Electrical Engineering and Applied Physics.
ing jump over irregular terrain obstacles. Journal ofAutonomous Since 1981, he has been at The Ohio State University, where he is
Robots, l:lll-129. currently a Professor of Electrical Engineering. His current research
Yoerger, D.R., Bradley, A.M., and Walden, B. 1995. Automatic dock- interests include underwater robotic systems, computational robot
ing system for the autonomous benthic explorer. In Workshop on dynamics, control of enveloping grasping systems, parallel compu-
Robotic Technologies in Oceanic Engineering, Nagoya, Japan, tation, and control of legged machines.
pp. 27-37. Dr. Orin is the Vice President for Finance of the IEEE Robotics
Yuh, J. 1990. Modeling and control of underwater robotic ve- and Automation Society. He is a Fellow of the IEEE and a member
hicles. IEEE Transactions on Systems, Man, and Cybernetics, of Sigma Xi, Tau Beta Pi, and Eta Kappa Nu.
20(6):1475-1483.
Yuh, J. 1995a. Development in underwater robotics. In IEEE Int.
Co@ on Robotics and Automation, Nagoya, Japan, pp. 1862-
1867.
Yuh, J. (Ed.) 1995b. Workshop on Robotic Technologies in Oceanic
Engineering, Nagoya, Japan, May.
Yu, J. and Waldron, K.J. 1991. Design of wheeled actively artic-
ulated vehicle. In Proceedings of the Second National Applied
Mechanisms and Robotics Conference, Cincinnati, OH.

Robert B. McGhee was born in Detroit, Michigan in 1929. He


received the B.S. degree in Engineering Physics from the University
of Michigan in 1952, and the M.S. and Ph.D. degrees in Electrical
Engineering from the University of Southern California in 1957 and
1963 respectively.
From 1952 until 1955, he served on active duty as aguided missile
Scott McMillan received the B.S. degree in Computer Engineering maintenance officer with the U.S. Army Ordnance Corps. From 1955
from Clemson University, Clemson, SC in 1988, and the MS. and until 1963, he was a member of the technical staff with Hughes Air-
Ph.D. degrees in Electrical Engineering from The Ohio State Uni- craft Company, Culver City, CA, where he worked on guided missile
versity in 1990 and 1994, respectively. From 1994 to 1996, he was simulation and control problems. In 1963, he joined the Electrical
a member of the research faculty at the Naval Postgraduate School Engineering Department at the University of Southern California as

193
268 Mckiillan, Orin and McGhee

an Assistant Professor. He was promoted to Associate Professor in Department and in the Electrical and Computer Engineering Depatt-
1967. In 1968, he was appointed Professor of Electrical Engineer- ment at the Naval Postgraduate School.
ing and Director of the Digital Systems Laboratory at Ohio State Dr. McGhee is aFellow of the Institute of Electrical and Electronic
University, in Columbus, OH. In 1986, he joined the Computer Sci- Engineers. He currently teaches in the areas of artificial intelligence,
ence Department at the Naval Postgraduate School in Monterey, CA, robotics, computer languages, and feedback control theory. His re-
where he served as Chairman from 1988 until 1992. Since 1992, he search interests are centered around computer simulation and control
has held a joint appointment as Professor in the Computer Science of unmanned vehicles, especially for subsea applications.

194

You might also like