Calhoun: The NPS Institutional Archive Faculty and Researcher Publications Faculty and Researcher Publications 1995-08 Efficient Dynamic Simulation of an Underwater Vehicle with a Robotic Manipulator McMillian, Scott IEEE Transactions on Systems, Man, and Cybernetics, Volume 25, No. 8, August 1995 http://hdl.handle.net/10945/45123 1194 IEEE TRANSACTIONS ON SYSTEMS, MAN, AND CYBERNETICS, VOL. 25, NO. 8, AUGUST 1995 Efficient Dynamic Simulation of an Underwater Vehicle with a Robotic Manipulator Scott McMillan, Member, IEEE, David E. Orin, Fellow, IEEE, and Robert B. McGhee, Life Fellow, IEEE With real-time simulation rates, a number of other uses for dynamic simulators are possible. The first is hardware-in-theloop simulation where control system hardware and software is tested by interfacing it to a real-time simulation of the URV . Human-in-the-loop applications can also be implemented when a real-time simulation is coupled with a realistic 3-D graphical display of the system. One such application is to train piIots and mission specialists much like aircraft simulators are used to train aviators. Another application can be found in the teleoperation of untethered URV’s. Because significant delays occur in acoustic communication with such vehicles, human control is significantly degraded. By providing the teleoperator with a simulated display of the system, on-line with no delay, enhanced performance of human-machine interaction can be I. INTRODUCTION realized , . The system targeted in our research is a new remotelyHE importance of underwater robotic vehicles (URV’ s) operated vehicle (ROV), Tiburon, that is currently under for marine research and subsea development continues to grow because their manned counterparts are much more development at the Monterey Bay Aquarium Research Institute expensive to develop and maintain -. This increase in (MBARI). This vehicle is designed for operation at depths of use has brought about a concomitant need for accurate simu- up to 4000 meters . A CAD drawing of it is shown in Fig. 1 lations of these systems+,and with the addition of robotic along with the Schilling Titan I1 manipulator  which will manipulators to these vehicles, such simulations must become be mounted on the front. In order to achieve real-time simulation rates, efficient more sophisticated. As with land- and space-based robotics, accurate dynamic simulation can be a very beneficial tool in dynamic and hydrodynamic algorithms for systems like this development of URV’s. With proper use, significant amounts must be developed. A number of efficient algorithms have of time and money can be saved during the design, test been developed to compute the dynamics of the more common and evaluation phases of new vehicle systems or subsystems. land-based manipulators. The two most notable approaches to Specifically,dynamic sim’ulation can reduce the need for costly this problem are the Composite Rigid Body (CRB) method prototypes by eliminating many candidate designs early in [lo] and the Articulated-Body (AB) method [ll]. The latter the development process. This saves not only on ’cost, but has an advantage because its computation grows linearly with also on the time needed to construct successive prototype the number of degrees of freedom (DOF’s), whereas the generations. In addition, simulators can aid in the design of CRB method has cubic complexity. As a result, an efficient control algorithms for these systems. By using the simulated implementation of the AB method has been shown to require URV to test such algorithms, the possibility of potentially less computation than that of the CRE3 method for manipulators damaging instabilities due to algorithm errors is eliminated, with more than three DOF’s . Because the Schilling arm and risks encountered when the control system is finally has six DOF’s, the AB simulation algorithm is more efficient than the CRB algorithm, and is the basis for the algorithm implemented in hardware are reduced. developed in our work. Manuscript received January 21; 1994; revised October 7, 1994. This The purpose of this paper is to present the development work was supported in part by a DuPont Fellowship and an AT&T Ph.D. of this efficient O ( N ) algorithm for dynamic and hydrodyScholarship, both at The Ohio State University, by grant BCS-9109989 from the National Science Foundation to the Naval Postgraduate School, and by namic simulation of a URV system with a manipulator. To grant BCS-9311269 from the National Science Foundation to The Ohio State accomplish this, the effects of a mobile base (the URV body) University. S. McMillan and R. B. McGhee are with the Department of Computer must first be included. After this step, the resulting algorithm Science, Naval Postgraduate School, Monterey, CA 93943 USA. could be used in the simulation of space-based robotic systems. D. E. Orin is with the Department of Electrical Engineering, The Ohio State Then, the most efficient method for including hydrodynamic University, Columbus, OH 43210 USA. IEEE Log Number 941 1906. effects must be determined. To this end, work by Yuh  Abstract-In this paper, an efficient dynamic simulation algorithm is developed for an underwater robotic vehicle (URV) with a manipulator. It is based on previous work on efficient O(N ) algorithms, where N is the number of links in the manipulator,and has been extended to include the effects of a mobile base (the URV body). In addition, the various hydrodynamic forces exerted on these systems in underwater environments are also incorporated into the simulation. The effects modeled in this work are added mass,viscous drag, fiuid acceleration,and buoyancy forces. With emcient implementation of the resulting algorithm, the amount of computation with inclusion of the hydrodynamics is almost double that of the original algorithm for a six degree-of-freedom land-based manipulator with a mobile base. Nevertheless, the amount of computation still only grows linearly with the number of degrees of freedom in the manipulator. T 0018-9472/95$04.00 0 1995 IEEE 1195 MCMILLAN et al.: EFFICIENT DYNAMIC SIMULATION OF AN UNDERWATER VEHICLE qN / Link N / Fig. 2. Serial-chain manipulator. W (b) Fig. 1. The MBARI URV system: (a) Tiburon, and (b) the Schilling Titan II manipulator. and Ioi and Itoh [ 141 have identified the most important forces which include added mass, viscous drag, fluid acceleration, and buoyancy. This paper will develop a method for computing these terms in the context of an articulated linkage system, and more importantly, will efficiently incorporate these into the AB simulation algorithm. In the next section, our dynamics notation is presented along with the salient features of the AB algorithm and a synopsis of the principal equations. The basic AB algorithm is also extended to include the dynamics of a mobile base. In Section 111, the hydrodynamic terms needed in the simulation of a single rigid body are presented. Then, the AB algorithm is extended in Section IV to include these hydrodynamic terms. The computational requirements for the resulting algorithm are presented in Section V, along with a comparison of algorithms for the fixed- and mobile-base systems on land or in space. Using object-oriented design techniques, this algorithm has been implemented in C++.Computational runtimes using this software package, called DynaMechs , are presented in Section VI. 11. ARTICULATED-BODY DYNAMICS: BACKGROUND AND NOTATION In this section, Featherstone's AB method [ll] for computing robot dynamics is reviewed, and the notation used in this paper is presented. This is a very efficient method for computing the dynamics of multibody systems . To begin this discussion, a serial chain manipulator with a fixed base as shown in Fig. 2 is assumed. It has N links that are numbered from 1, attached to the base through joint 1, to N , the endeffector. The joints between the links can have an arbitrary number of DOF's, but we will limit this discussion to single DOF revolute or prismatic joints. This assumption accounts for the vast majority of robotic systems while simplifying the analysis of computational requirements. Nevertheless, this is not limiting, since multiple DOF joints can be simulated by concatenation of multiple single DOF joints. Each joint axis of the manipulator, as indicated by the arrows in the figure, is specified by a six-element unit vector, #i,where the subscript i indicates the joint or link number. These vectors are part of the spatial notation used in our work that combines three-dimensional angular and translational quantities into a single vector , . Since Qi is defined in the coordinate system fixed to link i, it is constant. Using modified Denavit-Hartenberg (MDH) notation [ 191, , in which the z-axis lies along the ith joint axis, di is given by [O 0 1 0 0 OIT for revolute joints and [O 0 0 0 0 1IT for prismatic joints. The state of the system and its inputs can now be specified with a set of scalars that are defined with respect to these vectors as shown in Fig. 2. For each joint i, the state is given by the scalar joint position and velocity, qi and q i , and the input joint torque or force is given by ~ i .Given these quantities for all of the joints, the goal of dynamic simulation is to compute the forward dynamics for the N joint accelerations, q i , and then to numerically integrate these to obtain new values for the positions and velocities. In this section, the algorithm to compute forward dynamics is described. For a discussion of the various numerical integration algorithms for solving ordinary differential equations, the reader is referred to any of a number of numerical analysis texts (e.g., [211). A. Dynamics Derivation of the AB algorithm begins with the set of dynamics equations for the force balance on each link. As illustrated in Fig. 3, the force balance equation for link i operating in air or on the surface of the Earth is given as IEEE TRANSACTIONS ON SYSTEMS, MAN, AND CYBERNETICS, VOL. 25, NO. 8, AUGUST 1995 1196 Y; I Link i from the link's coordinate system origin origin to its center of mass. Finally, in (l), 0;is the vector of velocity-dependent bias forces  (see Table I). In efficient robotic dynamics algorithms for ground, air, or space vehicles, the gravitational effects can be combined with the spatial acceleration in (1) to reduce the amount of computation. This is accomplished with the following force balance equation \ \ \ Joint i i l Joint i where Fig. 3. Spatial notation for rigid-body dynamics. a: = ai - [i:g] follows f, - '+lXTf,+l+ Yg = Itaz- B, (1) where f, is the spatial force exerted onto link i by its inboard link and contains the effect of T,, f,+l is the force exerted by link i onto the next link outboard and contains the effect of ~ , + 1 ,and 'fg is the gravitational force. These are sixelement vectors combining the three-dimensional moment, n, and translational force, f, vectors as follows fa= k]. Like the spatial forces, the spatial acceleration of the link, ai, is also a six-element vector combining the angular, wi,and translational, ai, acceleration vectors. The spatial transformation matrix, i+lX;, is used to transform spatial vectors between coordinate systems i and i 1 and is defined as follows  which is the spatial acceleration of the body biased by gravitational acceleration. B. Kinematics To complete the derivation of the AB algorithm, a set of kinematic equations that compute the angular and translational accelerations of each link given the corresponding accelerations of the inboard link and the relative joint acceleration between the two links is needed. The same equations can also be used to propagate the computation of the biased acceleration. Using spatial notation, the equation for the biased acceleration of link i (at its coordinate system) may be written as follows  + (3) where a+'& is the 3 x 3 rotation matrix from the coordinate system attached to link i to the one attached to link i 1, and is the Cartesian vector specifying the position of the origin of link ( i + 1)'s coordinate system with respect to link i's. The tilde above the vector signifies that its components should be combined in a skew symmetric matrix such that + h = b x a . In the first term on the right side of (l), link i's spatial inertia, Ii, relates the spatial acceleration of the link to the resultant spatial force. This 6 x 6 inertia matrix combines the link's mass and inertia quantities (first and second mass moments) as follows (4) where 1; is the 3 x 3 moment of inertia tensor for the link with respect to its own coordinate system, and 1 3 is the 3 x 3 identity matrix. The 3 x 1 vector, hi, is its first mass moment which is equal to (mi si), where mi is its mass and si is the vector ' Note that the convention in this paper is to use an italic bold variable, such as f,to refer to a Cartesian (three-dimensional) vector representing either a rotational or translational quantity, and a block bold variable, such as f , to refer to a spatial (six-dimensional) vector. where Ci is the vector of Coriolis and centripetal accelerations that are a function of known link velocities (see Table I). From (7), the acceleration of link i is dependent on the acceleration of the inboard link. This implies that a recursion2 from the base of the manipulator to the end-effector may be used to compute the link accelerations when the joint accelerations, ti, are known. Eq (1) implies a recursion from the end-effector to the base to determine all of the link forces once the biased accelerations have been determined. Together these two sets of equations define the outward and inward recursions associated with the inverse dynamics problem which computes the joint torques to achieve a given motion. For the case of forward dynamics computations, however, the joint accelerations are unknown so that the biased accelerations, and hence the link forces cannot be determined in a direct manner from these equations. Consequently, a different approach is required to solve the dynamic simulation problem. In the AB algorithm, this involves the computation of AB inertias. *This is the term generally used in the robotics literature. However, for those not familiar with this literature, its usage should not be confused with the notion of recursive function culls in computer science terminology. In the context of robotics, this term does not imply that the evaluation of this equation is implemented with recursive function calls from end-effector to base (although it could be). Rather, it is implemented with a for-loop and each acceleration is computed in succession from base to end-effector. 1197 MCMILLAN et al.: EFFlCIENT DYNAMIC SIMULATION OF AN UNDERWATER VEHICLE --- forces, T O = fo, exerted on the base such as the resultant thruster force. The Forward Kinematics recursion will now begin with computation of velocity-dependent terms for the mobile base. This is simplified because the velocity of this body is given as part of the system state and does not need to be computed. In addition, the bias acceleration, is zero. Then, the Backward Dynamics recursion is extended to include the computation of the AB inertia and bias force, IT, and p:, for this body. Finally, the Forward Accelerations recursion must now begin with the computation of the base acceleration. Substituting $o into the equations used to compute the joint accelerations of each link, a simplified equation which was derived by Featherstone (, p. 122) results so, Fig. 4. Articulated-body dynamics. C. Articulated Bodies Instead of using the force balance equation for a single link, an expression relating f; to the dynamic properties of links i through N is used. As illustrated in Fig. 4, this relationship is given as follows fi = 15:. - 0:. (8) The matrix, It, is the 6 x 6 AB inertia of links i through N which is the inertia that is “felt” at the ith coordinate system when the joints from i 1 to N are free to move. Likewise, the vector, p:, is the bias force exerted on the ith link due to the resultant bias forces within the articulated body including all outboard joint torques and excluding gravitational effects. Details of the derivation of the equations needed to efficiently compute 15 and @f can be found in 1121. The resulting AB algorithm for forward dynamics contains three O ( N ) recursions. The first is a Forward Kinematics recursion which computes the velocities and velocity-dependent of each link from the base to the tip. In terms, Bi and the second step, the AB inertias, It, and bias forces, K , are computed in a Backward Dynamics recursion from the tip to the base. The final step begins with the known base = 0, which enables the computation of the acceleration, first joint’s acceleration, q1, with an equation derived from (7) and (8). This enables the computation of link 1’s acceleration from (7). These results are used to compute the joint and link accelerations (in that order) for the next link in the chain. This procedure defines the final Forward Accelerations recursion from the base to the tip of the chain. + si, D. Mobile Base Thus far, we have been discussing an AB simulation algorithm for a serial chain with a fixed base which can be found in [ 111, .When simulating URV systems, the base of the manipulator, the vehicle body, is no longer fixed with respect to an inertial frame and the equations must be augmented to model this characteristic. This is accomplished by modeling the vehicle body as another link (link 0) in the serial chain which has a six DOF joint (joint 0) between it and the inertial frame, and adding another step to each of the three recursions. The spatial representation of this joint’s motion, #o, is given by a constant 6 x 6 identity matrix. This implies that the joint velocity is equal to the spatial velocity of the base, q o = VO, expressed in body fixed coordinates. Likewise, the joint acceleration is the same as its spatial acceleration, q o = a0,and the joint torque/force is equal to extemal spatial where IT,is the AB inertia of the entire URV system, including added mass, that is “felt” at the vehicle body’s coordinate system. The net force acting on this inertia including gravitational effects is divided into two components: the resultant thruster force exerted on the vehicle, fo, and the re? of the forces . A derivation exerted on this inertia including gravity, using the biased acceleration was performed in  which shows that this equation can be written using the biased acceleration as follows 4 3 = (I;)-’(fo + 0;) (10) where p: now excludes gravitational effects. This biased acceleration is used as the starting condition for the final recursion along the chain to compute joint accelerations. For simulation purposes, the unbiased acceleration is needed and is obtained by adding gravitational acceleration back into this result. FOR RIGID BODIES 111. HYDRODYNAMICS When the motion of rigid bodies is to be simulated in an underwater environment, a number of additional effects must be modeled in the simulation as a result of various hydrodynamic forces. While these forces result from incompressible fluid flow determined by the Navier-Stokes (distributed fluid-flow) equations , “lumped” approximations to these forces are used in this work. To this end, Yuh [ 131 and Ioi and Itoh [ 141 have identified four separate effects that need to be included in a dynamic simulation of submerged rigid bodies. Under limiting assumptions that the net hydrodynamic force on an object can be represented as a sum of separately identified components modeling the effects of added mass, drag, fluid acceleration, and buoyancy forces, this section develops a notation consistent with the previous section, and derives the equations needed to compute these hydrodynamic forces exerted on a single rigid body. It is further assumed that forces computed for one link are negligibly affected by the proximity of another. A. Added Mass To those acquainted with the dynamics of manipulators in space or air, probably the most surprising hydrodynamic effect IEEE TRANSACTIONS ON SYSTEMS, MAN, AND CYBERNETICS, VOL. 25, NO. 8, AUGUST 1995 1198 Surrounding Water Fig. 5. Added mass. where wb is frequently referred to as the rate of growth of a vector, and w b x the rate of transport . Substituting this into (1 1) leads to the following equation for the added mass force Given this result, the effects of fluid translational acceleration on the force resulting from added mass can be incorporated by replacing the translational acceleration of the rigid body with its translational acceleration relative to the surrounding fluid, ai (, p. 150). This is defined as follows is the added mass force. When a body is accelerated through a fluid, some of the surrounding fluid is also accelerated with the body. A force is exerted on the surrounding fluid to achieve this acceleration, and the reaction force, which is equal in magnitude and opposite in direction, is exerted on the body. The latter is referred to as the added mass force . Its computation within our framework is presented in this section. where baf is the translational acceleration of the fluid exWith our assumptions about lumped approximations, added pressed in the body-fixed coordinate system. Likewise, the mass can be specified with a 6 x 6 matrix, If, as shown in translational velocity term is replaced in the added mass Fig. 5. As with the spatial inertia for a rigid body, this added equation with the relative translational velocity, v i . Finally, the equation can be written in terms of the body’s mass matrix is symmetric and positive definite. Since this inertia is a function of the body’s surface geometry, however, biased acceleration, ab, so that it may be more easily incorpothere is no concept of principal axes as in rigid body analysis, rated into the AB dynamics algorithm. This leads to the final along which, torque and angular momentum are colinear. In form of the added mass force equation fact, with added mass, unlike the rigid body’s mass, an applied translational force can result in a noncolinear acceleration of the center of gravity as well. Consequently, the added mass matrix does not have the same structure as shown in (4) for the where spatial inertia of a rigid body in space or air. For a general body shape, the matrix will be full which leads to notably different dynamic behavior as compared to the rigid body counterpart. Newman  derived a set of equations to compute the !!]r;.E;] added mass force that is exerted on a rigid body accelerating through an unbounded, inviscid fluid that is itself not accelerating (that is, has steady, irrotational flow). This was found by which is called the added mass bias force and is a function taking the derivative of the total momentum of the fluid. As of known state variables, fluid velocity and acceleration, and shown in the Appendix, translating Newman’s equations into gravity. spatial notation results in the following equation: B.’ Drag and Lift Forces where negative signs are needed to compute the reaction force that is exerted onto the rigid body, and Wb and Vb are the angular and translational velocities of the body, respectively. The translational velocity derivative term, is not the true acceleration of the rigid body; but is rather the time derivative of ‘ub with respect to the body’s rotating reference frame.3 Since the AB simulation algorithm uses the biased acceleration of the body, ab, (1 1) must be modified before it can be efficiently incorporated into the algorithm. First, the following relationship for its true acceleration, a b , is used ’The elements of which are ii. u,and t i l from . When an object moves through a viscous fluid, drag and lift forces are exerted on it. Since water density is significant, large viscous forces can be exerted on URV systems even for reasonably slow motions. Lift and the related forces due to vortex shedding  are believed to be small for the applications at hand and are ignored. Drag can be decomposed into pressure drag, which is normal to the surface of the body, and shear drag, which is tangential. For underwater manipulation, the shear drag will also typically be small, so that the emphasis here is on the modeling of the pressure drag. Pressure drag arises from nonzero normal components of relative velocity between the body’s surface and the fluid. For a general body, a surface integral over the entire body is required to compute the resultant force and moment, f:. To avoid this integration, links are approximated by cylinders MCMILLAN et al.: EFFICIENT DYNAMIC SIMULATION OF AN UNDERWATER VEHICLE I I99 Eqs. (18) and (19) must then be integrated along the length of the cylinder to obtain the resultant drag force and moment as follows: dfb" D fb = -pcDr nf = - p c D r / / ~/ Fig. 6. Drag force on a cylinder. as shown in Fig. 6 where one of the coordinate axes is assumed to lie along the axis of the cylinder. This is not an unreasonable assumption since most often, the 2- or y-axis points along links with revolute joints, and the z-axis points along links with prismatic joints when using MDH parameters to assign coordinate system locations. The resulting procedure to compute f: is based on one in  which has been extended in our work to include the effects of arbitrary angular and translational velocity of the cylinder as well. Strip theory is used to replace the surface integral with a line integral along the length of the cylinder. Therefore, the cylinder is partitioned into circular disk elements with width dx, and the translational velocity relative to the fluid and normal to the edge of each disk, wn, must be determined. The translational velocity of a disk relative to the fluid at a distance d along the cylinder's axis (the x-axis in this example) is approximated, assuming its radius is small compared to the length, as follows: where Wb is the angular velocity of the cylinder (which is also the angular velocity relative to the fluid since it is assumed to be irrotational), and ul; is the translational velocity of the cylinder relative to the fluid at the origin of the bodyfixed coordinate system. The normal velocity is this vector's projection onto the yz-plane. Using the above results, the partial force exerted on the edge of a disk at a distance, d, from the coordinate system can be computed as follows: d f f ( d ) = -0.5pCDI(vn(d)((v"(d)(2rdx) (18) where p is the fluid density, CD is the drag coefficient, r is the radius of the cylinder, and the last term (within the parentheses) is the projected area of the disk normal to the fluid flow. The partial moment about the body-fixed coordinate system due to this force is computed as follows: d n f ( d ) = -0.5pC~IJv~(d)II([d0 0IT x vn(d)}2rdx. (19) 1' (20) IIv"(x)IIv"(x)dX I' [lWn(x)ll([x 0 01' X un(x)) dx (21) which make up the bottom and top halves of the spatial drag force, respectively. The x-components of both of these vectors are zero. Therefore, for smooth cylinders, no moment about the z-axis exists which would only be caused by x-components of angular velocity. This is consistent with the earlier assumption that shear drag is negligible and assumed to be zero in this derivation. A drag force along the x-axis can exist, however, due to a drag force exerted on the flat ends of the cylinder to relative translational velocity along the x-axis. In this case, the 2-component of f f is computed as follows: where ( v i ) " is the x-component of the link's translational velocity with respect to the fluid. The assumption that components of the drag force can be computed from normal components of relative velocity while ignoring tangential components is consistent with the work of Chakrabarti, Tam, and Wolbert  and the independence principle . C. Total Buoyancy: Buoyancy and Fluid Acceleration Because of the similarity between buoyancy and fluid acceleration forces, they are presented together in this section. Both are translational forces as illustrated in Fig. 7. They are exerted at the center of buoyancy of the body, which is the center of volume of the body or equivalently the center of mass of the fluid that is displaced by the body. Finally, they are proportional to the mass of the fluid that is displaced by the body, The buoyant force, f:, is exerted in the direction opposite of gravity. This force is a result of Archimedes principle which states that a body immersed in a fluid is buoyed up with a force equal to the weight of the fluid displaced by the body. In terms of the gravitational acceleration, bag,this force is computed as follows mi. j: = -mi b a g . (23) The gravitational acceleration is defined as follows: bag = gz, (24) where z, is the unit vector that points "down" as is traditional in marine mechanics , and g is the gravitational constant. A similar equation was given by Newman (, p. 152) for the fluid acceleration force which is given as follows: f b" = "bf baf where baf is the acceleration of the fluid. This force is sometimes referred to as the horizontal buoyancy force. 1200 IEEE TRANSACTIONS ON (b) Fig. 7. Total buoyancy forces: (a) buoyancy, and (b) fluid acceleration. For increased computational efficiency, both forces are combined as follows: It is convenient to refer to this as the total buoyancy force. To use this in existing robot dynamics algorithms, the equivalent spatial force exerted at the origin of the body-fixed coordinate system must be found. The resulting force is computed by the following equation: SYSTEMS,MAN, AND CYBERNETICS, VOL. 25, NO. 8, AUGUST 1995 action in shallow depths, which is not an environment that will be encountered by most URV systems. The unbounded assumption poses more of a problem, but for first order approximations it should generally be acceptable. Another assumption is that the added mass matrix and drag coefficients are known and constant. In actuality, these quantities are extremely difficult to compute with a high degree of accuracy, and vary nonlinearly with respect to velocity and other parameters . However, we believe that over the range of operating conditions typically encountered by a URV, these coefficients vary only small amounts such that a constant coefficient assumption is the only reasonable approach and is adequate for the purposes of the desired application. Lift force is one hydrodynamic effect that has been omitted from this discussion. In most texts it is described as a force proportional to the square of the relative velocity in a direction normal to the fluid flow by some coefficient of lift CL caused by nonzero net circulation around the body. This is usually presented with the definition for drag which is the same except that this force is in a direction opposite to the flow and related by the drag coefficient, C D .For the three-dimensional derivations in this paper, this definition does not seem to be adequate. The line integrals that are used to compute the drag force, can, in the case of general translation, compute components normal and parallel to the fluid velocity. We have called this the computation for drag only, and considered lift forces to be present only when the body is a foil. Since the URV under consideration and the links of its robotic arm are not foils, computation of lift forces has been omitted. Vortex shedding is another effect that has not been considered in this discussion. When a bluff body is translating through a fluid, pairs of vortices build up behind it. They continue to grow in size until instabilities cause them to alternately detach from the body. This introduces additional periodic forces on the body that can be large . A straightforward check of the Strouhal NumberReynolds Number map will indicate if vortex shedding effects are a potential problem, although precise modeling of these effects for underwater manipulators would be lengthy. Engineering solutions to eliminate the problem using spoilers could be effective, so for now the phenomenon is believed to be small enough to ignore in most robotic applications. where b is the vector from the body-fixed coordinate system to its center of buoyancy. Note that the quantity, baf - bag, is also required in the computation of the added mass bias IV. URV SIMULATION ALGORITHM DEVELOPMENT force, @, and because bafor bagare not needed individually, In this section, the dynamic simulation algorithm for an the subtraction is performed once with respect to the inertial coordinate system and only a single vector needs to be articulated chain of rigid bodies in an underwater environment is developed. First, the dynamic equation of motion for a transformed to each body’s coordinate system. single link in a fluid is developed. To accomplish this, the spatial force balance on a given link i is written to add the D. Assumptions hydrodynamic forces derived in the previous section into (5). At this point a few comments should be made about The resulting equation is written as follows: the derivation of the hydrodynamic terms and some of the assumptions that have been employed. The most notable fi - i + l XT fi+l f t f p fFB = Ii a: - pi. (28) assumptions are that the fluid is irrotational and unbounded. The former is acceptable since rotation due to any vortices Note that f t , the added mass force from (15), is also a function in the fluid would be small compared to rotation of the of, a:, the unknown biased acceleration of link i. Grouping body, or it would be on such a small scale compared to the these acceleration terms together and rewriting the equation to extent of the body as to be negligible. The exception is wave resemble the form of (5) leads to the desired hydrodynamic + + + ~ 1201 MCMILLAN et 01.: EFFICIENT DYNAMIC SIMULATION OF AN UNDERWATER VEHICLE equation of motion for the link fa - i+lxp;+l IFa; - py z AB ALGORITHM FOR (29) - where 1 ; = Ii + If TABLE I A URV WITH A MANIPULATOR. Given: O R , , wo, V O , ' 0 1 , 1 v; = (30) vo - O%CV, 'a, = O&'a, and where eag= [O 0 gjT oaf-s= ORc("a/- @ = f3a + pf + f? + f?". This equation states that the spatial acceleration of the body and the exerted force are linearly related through the sum of the rigid body's spatial inertia and the added mass of the fluid surrounding the body. A comparison of (29) with (5) leads to three changes that must be made to the AB algorithm for land-based systems to incorporate these hydrodynamic terms. First, the computation of the body's translational velocity relative to the fluid, w:, and the combined acceleration term, ' ~ f - ~for , each rigid body must be added to the Forward Kinematics step. Then, the computation of the hydrodynamic bias force, fly, from (31) can be performed. Finally, the link's spatial inertia, Ii, is replaced with its hydrodynamic inertia, I:, from (30) in computation for the Backward Dynamics recursion. Note that the Forward Accelerations step is unaffected by the addition of hydrodynamic effects. With these modifications, an efficient implementation of the AB algorithm for URV systems with a single manipulator containing revolute (a;= 1) or prismatic (oi = 0) joints results and is listed in Table I. In the Forward Kinematics step, the computation of quantities for the base are separated from the recursion along the chain because of the differences with the computation for each link. In order to perform this computation, the state of the base, consisting of position, orientation and spatial velocity, and the fluid's velocity and acceleration with respect to the inertial coordinate system, euf and e a f , must be given. Given its orientation, the corresponding rotation matrix between the base and the earth-fixed inertial coordinate system, OR,is specified, and the gravitational acceleration, 'ag,can be determined. From these, w; and Oafpgcan be computed for the base. For the forward recursion along the chain, the manipulator's state, including joint positions, qi, and velocities, i;,must be and position, '-'pa, given. From qi, the orientation, i&-l, of link 2's coordinate system with respect to i - 1's can be determined. For revolute joints, 2R-l is a function of q; and i-lpi is constant and can be determined off-line. For is constant and a-lp; is a function prismatic joints, of pi. Taken together, ;Ri-l and i - l p i completely specify the spatial transformation matrix, iX;-l. This is used along with qi to compute w: for each link, and has been combined with the computation of the angular velocity for the sake of efficiency. The computation of a ~ f - is~ accomplished using just i&-l, while Ci depends on both i&-l and '-'pi. Finally, the computation of 0: is the same for the base and the links of the manipulator. Note that this step still includes the computation of pafrom the land-based algorithm which has been separated from the computation of for emphasis. In the Backward Dynamics step, the input joint torques/forces, ri. must be given. Given these inputs, 1 [ (31) - woWxo (wo XfoW x oho) = i end for Given: IN= I:, 11. Backward Dynamics for i = N , . . . , l . Given: p;lr = 0; (no tip force). TI. n; = IT+; mf = &1f4~ N,= I: - n,(ml)-'nT 7 : = 4TPT + T, I:-l = IE1 + 'XT-,N,'X,-I A = end for p r 1+ 'xfl [P: - N , C-~ n;(ml)-l.r:] i. UI. Forward Accelerations .b = (GI-' a0 = (fo Given: fo (thruster force). + PE) [.:,] 4+ the backward recursion is almost identical to the land-based algorithm. Only the computations of 1: and are affected by the hydrodynamics. They now use IF and fly, and take into account the fact that the matrix addition to compute I? can be performed off-line and does not add to the amount of computation. Finally, no changes need to be made to the Forward Accelerations steD. ~ IEEE TRANSACTIONS ON SYSTEMS, MAN, AND CYBERNETICS, VOL. 25, NO. 8, AUGUST 1995 1202 a Cartesian vector will require [4M, 2A], and transformation of a spatial vector (actually planar rotations of its two component w f Hydrodynamics Mobile Base Fixed Base Cartesian vectors) requires [8M, 4A]. This is employed in the X t X t first iteration of the loop in the Forward Kinematics step to 12 9 4 compute w1, v i , and C1. 12 7 The same concept has also been applied to the transforma27 15 133 110 tions between adjacent links in the serial chain. With the use 8N-12 5N-9 20N - 12 13N - 8 of MDH parameters , , transformation of Cartesian 8N-4 4N-2 vectors can be accomplished with two planar rotations (about 22N - 20 10N - 10 ION - I8 22N - 33 27N 15N 15N - 15 27N - 19 the x and z axes) for a cost of [8M, 4A]. Featherstone  133N 11ON also applied this concept to spatial transformations which .N-I N-l N-l are treated as two separate axial screws. Each axial screw 5N-5 -5N-5 5N - 5 transformation of a spatial vector costs [lOM, 6A] for a total 15N - 15 15N - 15 15N - 30 15h - 15 15N - 30 15N - 15 N N N of [20M, 12A] between adjacent coordinate systems . This 86N - 94 ?ON - 58 86N - 59 70N - 48 92N - 52 70N - 80 accounts for the computational requirements of w,, w:, ' ~ f - ~ 49N - 23 a0N - 31 49N - 27 49N - 55 50N - 27 50N - 54 86 71 86 71 and C, for z > 1. 3 3 Computation of the hydrodynamic bias force, Py, is the 17N - 21 20N - 12 17N - 11 20N - 12 17N - 11 20N - 22 6h-1 6N-3 6N-4 6N-1 6N 6.V most significant in the Forward Kinematics step. First, the N -2 N-1 A' - 1 computation of 0, is accomplished with a Cartesian matrix224N - 259 205N - 248 124N - 30 205N - 37 177N + 130 333N t 93 (1314) (1193) (2392) (2091) (1085) (982) vector multiply and three cross products totalling [27M, 15A]. Then, the next two terms of Pf compute the added mass bias force, Pf. The first is computed with a cross product, Cartesian V. COMPUTATIONAL REQUIREMENTS vector addition, two Cartesian matrix-vector multiplies, and a In this section, the computational cost of each equation in spatial vector addition for a total of [24M, 24A]. The second Table I is determined and listed in the last two columns of term is obtained with a spatial matrix-vector multiply, three Table I1 for a URV system with an manipulator containing cross products, a Cartesian vector addition and a spatial vector N revolute joints. In this table, the number of floating point addition for a total of [54M, 48Al. multiplies and divides are considered together under the label Computation of the drag force, f,", is accomplished using of multiplies (x), and the number of additions and subtractions (20), (21), and (22). The x-component of the drag force in (22) are combined under the label of additions (+). In addition, requires [2M, OA] for the on-line part of the computation. only the minimum number of trigonometric operations (one The integrals in the first two equations, can be numerically sinekosine pair for each angle) are needed and are not included determined using the Gauss-quadrature method which replaces in the totals. This section also compares these results to the integral with a weighted sum of the term within the integral efficient algorithms developed in our work for land-based evaluated at four points over its range. The terms to be summed robotic systems (without hydrodynamic's) with both fixed and can be computed with [9M, 3A] and a square root (counted as a mobile bases. multiplication) which includes the multiplication by the weight In our implementation of the algorithm, the rotation matrix and the computation of w'(d) from (17). This is performed expressing the orientation of the URV body, OR,, is defined by four times requiring [40M, 12Al. Then, the results are added three Euler angles . In the Forward Kinematics step, this together ([OM, 12A1) noting that both vectors contain one matrix is used to transform quantities expressed in $e earth- zero element, and then multiplied by the constant outside of fixed inertial reference frame to the URV's body-fixed frame. the integral ([4M, OA]). Therefore, computing f," with five To achieve the most efficient transformation of these quanti- nonzero terms and adding it to the bias force requires a total ties, this is implemented as three separate planar rotations each of [46M, 29Al. requiring [4M, 2A].4 With this approach, the transformations Finally, the total buoyancy force, the last term in the comof ewf and e a f - gcost [12M, 6A] each. The alternative would putation of fly, requires [9M, 9A] noting that the acceleration, be to evaluate "Re([ 12M, 4A]) and perform two 3 x 3 matrix- 2 a f - g ,should be multiplied by the mass of the displaced vector multiplies ([9M, 6A] each) for a total cost of [30M, fluid before the cross product is performed. Therefore, the 16Al. Since the gravitational acceleration contains only a z computation of Pf requires [133M, 1lOA]. This also applies component, its transformation .only requires [4M, OAI. to the computation of 0: for the vehicle body which implies The placement of the body-fixed (0) coordinate system that the vehicle body has also been approximated by a cylinder also has a significant effect on the amount of computation for the drag computation. If desired, equivalent methods can in this algorithm. To minimize the amount of computation, it be developed for rectangular solids which require comparable is placed so that its origin and z-axis coincide with the first amounts of computation. link's coordinate system in the manipulator. This results in A number of steps can be taken to reduce the amount of a single planar rotation (through the manipulator's first joint computation in the Backward Dynamics recursion. First, n,, angle about the z-axis) when transforming both Cartesian and m:, and N, are constant for z = N and can be computed offspatial quantities between these systems. Therefore, rotation of line along with (m:)-' and nZ(m:)-'. For the other iterations, the computation of n, reduces to selecting the third column 4[4M, 2A] = 4 multiplies, 2 additions. TABLE I1 COMPUTATIONAL REQUIREMENTS OF THEAB SIMULATION ALGORITHM. ~ ~ ~ ~ ~ ~ - ~ ~ ~ , 1203 MCMILLAN et al.: EFFICIENT DYNAMIC SIMULATION OF AN UNDERWATER VEHICLE of I f , (m:)-l simplifies to a scalar reciprocal, and the third element of ni(mf)-’ is one. The matrix, N;, is the ith AB inertia after it has been reflected across joint z. Because the joint is free to move, it contains a zero row and column as follows N l 1 N12 0 N14 N15 1’1112 N22 0 N24 N25 0 0 0 0 0 Ni= IN14 N24 0 N44 N45 N15 N25 0 N45 N55 N56] IN16 N26 0 N46 N56 N66 This reflected inertia matrix is also symmetric (notice the indices), and only 15 of its elements must be computed, which requires [ IM, 1A] each. The most costly step in this recursion is the spatial congruence transformation of this matrix in the computation of the AB inertia, If-1. A new method developed in , 1321 requires only [70M, 71AJ and is accomplished by breaking this computation into two congruence transformations involving axial screws analogous to the decomposition of spatial transformations above. To complete the computation of I:-l, the addition of two symmetric 6 x 6 matrices, requiring 21 additions, is needed for a total of [70M, 92Al. Due to the placement of the body (0) coordinate system, the last iteration of this computation (I:) can be performed using a single planar rotation matrix (simpler than an axial screw) which results in [22M, 40A] for this step. In the Forward Accelerations step, the biased base acceleration, a&, is most efficiently computed using Cholesky decomposition since the AB inertia is symmetric and positive definite. Note that this step does not compute the inverse of this matrix, but only the solution to the matrix equation which requires only [86M, 65A] for the 6 x 6 system [ 101. If present, a thruster force on the vehicle body, fo, must first be added for a total of [86M, 71Al. The true acceleration of the vehicle body is obtained by adding the gravitational acceleration to the result ([OM, 3A1). Finally, the amount of computation in the forward recursion to compute the joint accelerations is straightforward. However, note that the third element of Ci is zero and the computation of ah is not required. This particularly efficient implementation of the URV algorithm is based on versions that were developed for simulation of land-based manipulator systems with and without a mobile base , and the results of which are also listed in Table 11. The requirements for a manipulator with a fixed base are listed in the first columns of the table and results in [(224N-259)M, (205N - 248)Al for a system with N revolute joints. This result omits the computation of hydrodynamics and the effects of a mobile base, and it makes use of the fact that the base has zero acceleration and velocity to reduce the amount of computation of the quantities for the first few links of the manipulator. This can be directly compared to the best previous result, [(250N - 222)M, (220N - 248)A], reported by Brandl, Johanni, and Otter . When N = 6, the result reported here requires nearly 15% fewer operations to compute the dynamics. With the addition of a mobile base, the algorithm could be used to simulate space-based robotic systems (with rigid links). The resulting computational requirements are listed in the middle of Table 11. This involves the addition of another rigid body and six more DOF’s to the system, but only requires an additional [229M, 211Al for a total of [(224N - 30)M, (205N - 37)Al. This is almost equivalent to the cost of adding another link with a revolute joint to the manipulator. The primary difference in computation between this mobile base algorithm and the URV algorithm occurs in the Forward Kinematics step where additional velocities, accelerations, and bias forces in Pf are computed for hydrodynamic effects. The total number of floating point operations for this system is [(377N 130)M, (333N 93)Al. With N = 6 (all revolute joints), this corresponds to the cost needed to compute the dynamics and hydrodynamics for the Monterey Bay Aquarium Research Institute’s URV with the 6 DOF Schilling Titan I1 manipulator. This represents a 75% increase in computation over the mobile base simulation (without hydrodynamics), and approximately a 115% increase in computation over the simulation of this manipulator with a fixed base. + + VI. DYNAMECHS: AN OBJECT-ORIENTED SIMULATOR This paper provides all of the major theory needed to produce a dynamic simulator that efficiently incorporates hydrodynamic effects for underwater vehicle systems. The algorithm presented thus far has been slightly modified so that it is capable of computing the dynamics for a large class of tree-structured mechanisms having star topologies. This class includes robotic systems with fixed or mobile bases, with and without hydrodynamics, and with multiple chains. An efficient implementation of this general algorithm has been achieved through the use of object-oriented design (OOD) techniques in C++ as part of a larger project to develop a real-time graphical simulation system for URV’s as described in . The result is an integrated simulation software package, called DynaMe~hs,~ primarily for terrestrial and underwater robotic systems. It covers industrial robots, multilegged vehicles [311, URV’s with any number of manipulators, and can even simulate space-based robotic systems without flexible links. The completed graphical simulation system also includes a Spaceball (a six-axis force/torque sensor) for user control of thrusters and manipulator, a mouse for viewpoint control commands, and a 3D graphical display of the system and its environment to visualize the output of the simulation. A scene from this display is shown in Fig. 8 which was developed using SGI’s 3D modeling package called Inventor and executed on a Silicon Graphics (SGI) Indigo2 Extreme workstation with a 150 MHz MIPS R4400 processor. The runtime performance of the simulation algorithm (excluding the overhead for the grsphical display) for the three configurations listed in Table I1 was measured. Without hydrodynamics, computation of the Schilling manipulator’s dynamics requires an average of 0.30 and 0.38 ms for fixed and mobile base systems, respectively. The ROV/manipulator system with hydrodynamics requires an average of 0.52 ms. This is more than adequate for realtime performance during normal operation of the ROV system without “hard” contacts with the environment. ‘Pronounced “dynamics,” and stands for Dynamics of Mechanisms. This software is available via anonymous FTP from cs .n p s .navy. mi 1 in the /pub/dynamechs/ directory. , IEEE TRANSACTIONS ON SYSTEMS, MAN, AND CYBERNETICS, VOL. 25, NO. 8, AUGUST 1995 1204 Fig. 8. Scene from a DynaMechs simulation’of the ‘IburodSchilling system. VII. SUMMARY AND CONCLUSION In this paper, an efficient algorithm has been developed for dynamic simulation of an underwater vehicle equipped with a manipulator. Since many efficient algorithms for the simulation of land-based manipulators have been developed in the past, one was chosen as the basis for our work. The system for which this work has been developed is the Monterey Bay Aquarium Research Institute’s ROV, Tiburon, with a Shilling manipulator. Based on the number of DOF’s for this manipulator, the O(N) AB simulation algorithm is the most efficient. A review of this algorithm for systems with fixed bases from [ 111 has been presented. An especially efficient version of this algorithm was developed in  that requires [(224N-259)M, (205N-248)Al for systems with N revolute joints which represents an improvement of 15% over the results in . With modifications made to include the effects of a mobile base the algorithm requires [(224N-30)M, (205N - 37)Al. The next goal of this work was to efficiently incorporate hydrodynamic effects into this algorithm. A number of hydrodynamic effects on a single rigid body were identified from previous work in [I31 and , including added mass, drag, fluid acceleration and buoyancy forces. Equations to compute these effects are derived here in a form consistent with traditional robot dynamics algorithms. Then, this result is extended to systems with serial chains of rigid bodies and efficiently incorporated into the AB algorithm. A detailed analysis of the amount of computation required by the resulting algorithm also has been carried out, and shown to require [(377N + 130)M, (333N + 93)Al for a URV with a manipulator that has N revolute joints. For the MBARI ROV with the Schilling Arm ( N = S), the computation of the dynamics requires [2392M, 2091Al. An implementation of the algorithm in the DynaMechs software package can compute the dynamics of this URV system in an average of 0.52 ms on an SGI workstation with a MIPS R4400 processor, which is fast enough to achieve real-time simulation rates. The purpose of this work has been to provide an integrated computational framework, with multibody dynamics and hydrodynamics included, for efficient simulation of a variety of land-based and underwater robotic systems. Now that we have provided the foundational work, others can apply this to their systems, after deriving parameters for the model, to 9e determine the important hydrodynamic effects. With an actual URV system, experimental results can be obtained and the accuracy of the models for each of the hydrodynamic forces can be measured within the context of a specific application to see if the models are sufficient. There may be cases in which the computation of the hydrodynamic forces needs to be altered to provide a more complex or perhaps simpler model. The advantage of this computational framework is that it can accommodate a variety of models in which the hydrodynamic forces on a link are computed as a function of its velocity and acceleration and that of the fluid without significantly affecting its basic efficiency. Hopefully, this work will contribute to the growing application of URV systems in underwater environments. APPENDIX OF THE ADDEDMASSFORCEEQUATION DERIVATION In this appendix, the added mass force equation, ( l l ) , is derived in spatial notation beginning with Newman’s equations for this force from . Before we begin, some of his notation should be defined. First, the ijth element of the 6 x 6 added mass matrix is denoted by m i j . The translational velocity expressed in the body-fixed coordinate system is given by the following Cartesian vector ob = [ul u 2 U3]* (33) and a redundant notation is used to define the elements of angular velocity wb= [u, us U6IT = [a1 (34) a2 Finally an “indicial notation” for the cross product operation is defined. The jth component of the result is given as follows ( b x a)j = Ejklbkal (35) where summations are implied on the right hand side for both k and 1 from 1 to 3. The equation to compute the three components of translational force from  is given by [(115), Ch. 41 Fj = - U i m j i - EjklUiOkmli, j = 1,2,3, (36) where, again, summations are implied for k and I from 1 to 3, and for i from 1 to 6. To obtain a vector equation, the summation on i is made explicit and the cross product term is isolated as follows 6 Fj=-Cm . . U .- 6 Ui(Ejklakmli), j = JZ ’z i=l 1,2,3* (37) i=l Then, the summations are expanded and the cross products are expressed in vector notation Fj = -( m j l U l + mj2U2 + . . + mjsiis) + :;I) m32 1205 MCMILLAN et ai.:EFFICIENT DYNAMIC SIMULATION OF AN UNDERWATER VEHICLE Finally, this is written in a form consistent with our spatial notation as follows where nA = [Nl N2 N3IT and m41 m42 m63 m51 m52 m53 m61 m62 m43 1 By combining (44) and (39), the desired added mass spatial force equation is obtained as where our definition for the added mass matrix is written in terms of Newman’s coefficients as Note that these blocks are “swapped” because spatial notation requires that angular components of spatial vectors appear above the translational components which is the opposite of the convention used in [241. The equations for the moment exerted on the body due to added mass is given in  as follows [( 116), Ch. 41 N . - - U .zm .j + 3 , i - f j k l U i ( 2 k m l + S , i - EjklUiUkmlir j = 1 , 2 , 3 (41) where the components of moment have been specified with N j instead of the Mj used in  to avoid confusion with the added mass coefficients, and the implicit summations of (36) apply here as well. This can be rewritten, as before, to highlight the summation over Z and the cross product operation, as follows 6 6 N j = - C mj+3,iOi i=l - Ui(Ejklclkml+S,i) i=l 6 - (42) Ui(EjkiUkmii). i=l In Cartesian vector notation, this is written as follows I: : ) m32 j (43) for j = 1 , 2 , 3 . In spatial notation, this reduces to nb”= - [M22 M21 ] E:] - Gb[M22 M21] E:] (44) (47) ACKNOWLEDGMENT The authors thank Dr. Anthony Healey of the Naval Postgraduate School for informative discussions on hydrodynamics, and James B. Newman of MBARI for access to and involvement in the Tiburon project. REFERENCES [ I ] J. Yuh, “Special issue on underwater robotics,” J. Robotics Systems, vol. 8, pp. 291-412, June 1991. 121 Pmc. of the 20th Annual Technical Symp. and Exhibition of the Association for Unmnned Vehicle Systems, Washington, D.C.: Association for Unmanned Vehicle Systems, June 1993.  T. I . Fossen, Guidance and Control of Ocean Vehicles. New York: John Wiley, 1994.  M. J. Zyda, R.B. McGhee, S. Kwak, D. B. Nordman, R. C. Rogers and D. Marco, “Three-dimensional visualization of mission planning and control for the NPS autonomous underwater vehicle,” IEEE J. Oceanic Eng., vol. 15, no. 3, pp. 217-221, 1990.  D. P. Brutzman, Y . Kanayama and M. J. Zyda, “Integrated simulation for rapid development of autonomous underwater vehicles,” in Proc. of IEEE Symp. on Autonomous Underwater Vehicle Technology. Washington, D.C., June 1992, pp. 3-10.  L. Conway, R. Volz and M. Walker, “Tele-autonomous systems: Methods and architectures for intermingling autonomous and telerobotic technology,” in Proc. of 1987 IEEE Int. ConJ on Robotics and Automafion, Raleigh, NC, 1987. pp. 1121-1 130.  J. Funda and R. P. Paul, “Teleprogramming: Overcoming communication delays in remote manipulation,” in Pmc. of Isr IARP Workshop on Mobile Robots for Subsea Environments, Monterey, CA, Oct. 1990, pp. 155-1 62. [SI J. B. Newman and B. H. Robison, “Development of a dedicated ROV for Ocean science,” Marine Technology Society Journal, vol. 26, pp. 46-53, Winter 1992.  Anon., “Titan I1 high resolution bilateral force feedback remote manipulator system,” Technical Report, Schilling Development, Inc., Davis, CA, Apr. 1991. [IO] M. W. Walker and D. E. Orin, “Efficient dynamic computer simulation of robotic mechanisms,” J. Dynamic Sysfems. Measurement, and Control, vol. 104, pp. 205-211, Sept. 1982. [ 1 11 R. Featherstone, “The calculation of robot dynamics using articulatedbody inertias,” Inr. J. Robotics Research, MIT Press, vol. 2, pp. 13-30, Spring 1983. [I21 S. McMillan, “Computational dynamics for robotic systems on land and under water,” Ph.D. Dissertation, The Ohio State University, Columbus, Summer 1994. [ 131 J. Yuh, “Modeling and control of underwater robotic vehicles,” IEEE Trans. Sysf. Man Cyber., vol. 20, pp. 1475-1483. Nov./Dec. 1990. [ 141 K. Ioi and K. Itoh, “Modeling and simulation of an underwater manipulator,” Advanced Roborics, vol. 4, no. 4, pp. 303-3 17, 1990. [IS] S. McMillan, D. E. Orin and R. B. McGhee, “DynaMechs: An object oriented software package for efficient dynamic simulation of underwater robotic vehicles,” in Underwafer Robotic Vehicles: Design and Controrol, J. Yuh, Ed. TSI Press, pp. 73-98, 1995. 1206 IEEE TRANSACTIONS ON SYSTEMS, MAN, AND CYBERNETICS, VOL. 25, NO. 8, AUGUST 1995 [I61 R. E. Roberson and R. Schwertassek, Dynamics of Multibody Systems. [ 171 [I81 [ 191  1211  (231     1281  1301   Berlin: Springer-Verlag. 1988. R. Featherstone, Robot Dynamics Algorithms. Boston, MA: Kluwer, 1987. K. W. Lilly, ESficient Dynamic Simulation of Robotic Mechanisms. Norwell, MA: Kluwer, 1993. J. J. Craig, Introduction to Robotics: Mechanics and Control. Reading, MA: Addison-Wesley, 1986. K. W. Lilly and D. E. Orin, “Alternate formulations for the manipulator inertia matrix,” Inf. J. Robotics Res., MIT Press, vol. 10, pp. 64-74, Feb. 1991. G. Dahlquist and A. Bjorck, Numerical Methods. Englewood Cliffs, NJ: Prentice Hall, 1974. H. Brandl, R. Johanni and M. Otter, “A very efficient algorithm for the simulation of robots and similar multibody systems without inversion of the mass matrix,” in Proc. of IFAC/lFlP/lMACS Int. Symp. on Theory of Robofs, Vienna, Austria, Dec. 1986. I. H. Shames, Mechanics of Fluids, New York, NY: McGraw-Hill, 1962. J. N. Newman, Marine Hydrodynamics. Cambridge, MA: MIT Press, 1977. “Controllability,” in Principles ofNaval Architecture, E. Lewis, Ed., vol. 3, New York, Society of Naval Architects and Marine Engineers, 1987. J. L. Synge and B. A. Griffith, Principles of Mechanics. New York: McGraw Hill, 1949. T. Sarpkaya and M. Isaacson, Mechanics of Wave Forces on Offshore Structures. New York Van Nostrand Reinhold, 1981. S. K. Chakrabarti, W. A. Tam and A. L. Wolbert, “Wave forces on a randomly oriented tube,” in Proc. of the O.T.C., no. 2190, Houston, TX, 1975. 0. M. Griffin and S. E. Ramberg, “Some recent studies of vortex shedding with application to marine tubulars and risers,” Trans. ASME, vol. 104, pp. 2-13, Mar. 1982. J. M. Cooke, M. J. Zyda, D. R. Pratt and R. B. McGhee, “NPSNET: Flight simulation dynamic Amodeling using quaternions,” Presence, vol. 1, pp. 4 0 4 4 2 0 , Fall 1992. K. Yoneda, K. Suzuki and Y. Kanayama, “Gait planning for versatile motion of a six legged robot,” in IEEE In?. Conf on Robotics and Automation, San Diego, CA, 1994, pp. 1338-1343. S. McMillan and D. E. Orin, “Efficient computation of articulatedbody inertias using successive axial screws,’’ to appear in IEEE Trans. Robotics Automat., 1995. Scott McMillan (S’87-M’95) received the B.S. degree in computer engineering from Clemson University, Clemson, SC, in 1988, and the M.S. and Ph.D. degrees in electrical engineering from The Ohio State University, Columbus, in 1990 and 1994, respectively. He is currently a member of the research staff and the’Naval Postgraduate School, Monterey, CA. His research interests include legged locomotion, control systems for autonomous underweer vehicles, physically-based modeling for virtual reality simulations, parallel processing, and object-oriented design. David E. Orin (S’75-M’76-SM’88-F93) received his Ph.D. degree in electrical engineering from The Ohio State University, Columbus, in 1976. From 1976 to 1980, he taught at Case Western Reserve University, Cleveland, OH, in the Department of Electrical Engineering and Applied Physics. Since 1981, he has been at The Ohio State University, where he is currently a Professor of Electrical Engineering. His current research interests include underwater robotic systems, computational robot dynamics, control of enveloping grasping systems, parallel computation, and control of legged machines. Dr. Orin is the Secretruy of the IEEE Robotics and Automation Society, Chair of its Constitution and Bylaws Committee, and an elected member of its Administrative Committee. He is a Contributing Editor with Robotics Review, from The MIT Press. He is a member of Sigma Xi, Tau Beta Pi, and Eta Kappa Nu. Robert B. McChee (M’58-SM’85-F‘WLF’94) was born in Detroit, MI, in 1929. He received the B.S. degree in engineering physics from the University of Michigan, Ann Arbor, 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 a guided missile maintenance officer with the U.S. Army Ordnance Corps. From 1955 until 1963, he was a member of the technical staff with Hughes Aircraft Company, Culver City, CA, where he worked on guided missile simulation and control problems. In 1963, he joined the Department of Electrical Engineering, University of Southern California, as an Assistant Professor. He was promoted to Associate Professor in 1967. In 1968, he was appointed Professor of Electrical Engineering and Director of the Digital Systems Laboratory at Ohio State University, Columbus. In 1986, he joined the Computer Science Department at the Navel Postgraduate School, Monterey, CA, where he served as Chairman from 1988 until 1992. Since 1992, he has held a joint appointment as Professor in the Computer Science Department and in the Electrical and Computer Engineering Department at the Naval Postgraduate School. Dr. McGhee currently teaches in the areas of artificial intelligence, robotics, computer languages, and feedback control theory. His research interests are centered around computer simulation and control of unmanned vehicles, especially for subsea applications.
* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project