METHOD AND APPARATUS FOR MOBILE ROBOT MOTION CONTROL

Abstract: A mobile robot base movable relative to a surface, comprising: at least two wheels privotably and rotatably mounted to the base, each wheel having a steering axis and a rotation axis; drive means for rotating the wheels along the surface; steering means for pivoting the wheels with respect to the surface; and controller means for controlling the motion of the base, wherein the controller means includes means for reading an input motion vector from a host processor, mapping the input vector to a desired axis motion vector for each of the axes, calculating a control envelope for each of the axes, determining whether the axis motion vector lies within the control envelope for each of the axes, calculating a modified axis motion vector when the axis motion vector does not lie within the control envelope, sending the axis motion vector or modified axis motion vector to an axis controller for each of the axes, estimating a motion of the base traveled during a discrete time interval DELTA t, calculating a position and an orientation of the base in a set of world coordinates, and repeating the previous steps continuously until commanded to stop.

Description: METHOD AND APPARATUS FOR MOBILE ROBOT MOTION CONTROL Background of the Invention Mobile bases with intended applications in robotics and industrial automation require a great deal of movement flexibility in order to be fully utilized. Current robot mobile bases often employ a "synchro-drive" mechanism — a complex set of gears and pulleys that constrains the wheels to steer and to translate simultaneously. Since steering and translation movement is fully decoupled in this system, "steering in place" is possible. (Contrast this maneuverability with that of a car.) While this allows a good deal of maneuverability, its mechanical complexity makes it difficult and expensive to manufacture. Additionally, this type of mobile base has limited movement due to its fixed orientation (i.e. its inability to rotate). In general, a rigid body constrained to move in a plane (i.e. a mobile base moving on the floor) has three degrees of freedom (DOFs) such as, movement in the x direction, movement in the y direction and rotation. Combining these three DOFs results in movement in any direction while simultaneously rotating. A holonomic mobile base, has the ability move in this manner and change its motion at any time. By constructing a mobile base out of wheels that each have two degrees of freedom (one for steering, one for translation) all three DOFs are possible under the proper control, and complex mechanisms found in synchro-drive mobile bases are no longer needed. Additionally, these 2-DOF wheels (2-DOFWs) can be easily integrated and manufactured as modular wheel assemblies. It is also possible to increase the "caster" of a 2-DOFW by moving the translation axis behind the steering axis (Figure 1) and making it resemble a caster wheel. Unlike a 2-DOFW wheel with no caster (i.e. intersecting steering and translation axes), a mobile base constructed with caster 2-DOFWs is fully holonomic under the proper control. Various problems arise, however, when trying to control a mobile base constrained to three DOFs with more than three controllable DOFs (e.g. a base with four 2-DOFWs has eight DOFs). A base with this many DOFs under improper control will certainly result in undesired motion and motor axes that "fight" each other, (i.e. consider two wheels facing opposite directions playing tug-of-war.) This in turn creates wheel slippage, increased tire wear, increased power consumption, and more frequent mechanical problems. It is considered important in robotics to be able to accurately assess the motion of the mobile base either through direct measurement or through estimation. This motion estimation can also be "summed-up" over time to create a "dead reckoned" position estimate of the mobile base with respect to fixed coordinates, which is also useful for autonomous tasks such as navigation. That is, consider a robot that wishes to navigate to a location (room) of which it knows the x-y coordinates. Motion estimation is also responsible for proper control of the mobile base, as will be described below. A control algorithm which minimizes wheel slippage will also allow for maximum motion estimation accuracy. Summary of the Invention The present invention overcomes the deficiencies in the prior art described above, and provides motion control for a mobile robot base that is more accurate and more maneuverable. Referring to Figure 3 and the Detailed Description of the Preferred Embodiments, an overview of the inventive control sequence is provided in the following paragraph. A supervisory controller reads the input vector from a host processor, and maps the input vector to the desired axis motion vector (i.e. the desired motion of each axis) by using the equations in Section 2 below. It then predicts if the axes are capable of the desired motion by calculating their control envelopes (i.e. the motion possible within one control cycle Δt .) as described in Section 3. If all axes are capable of the desired motion within one control cycle the desired axis motion vector is passed to the low-level controller. If one or more axes are incapable of the desired motion, a modified axis motion vector is calculated as described in Section 4 and passed to the low-level controller. The modified axis motion vector lies within the control envelopes of all 2N axes while minimizing control error (i.e. the difference between the commanded input vector and the actual base motion.) The control algorithm then estimates the motion of the mobile base since the last control cycle using the technique described in Section 5. The estimated motion is then used to update the position and orientation y„, ψΛ of the base coordinate frame in the fixed world coordinate frame as described also in Section 5. The updated position and orientation is then made available for the host processor to read. The control algorithm then repeats the whole process by beginning another control cycle. Brief Description of the Drawings Figure 1 A is a perspective view showing a mobile base wheel with no castor offset. Figure IB is a perspective view showing a mobile base wheel with a castor offset. Figure 2 is a schematic diagram showing the flow of command information which controls the motion of the mobile base. Figure 3 is a schematic diagram showing the steps of a method for controlling the motion of the mobile base. Figure 4 is a perspective view schematically showing the layout of the mobile base wheels and the base and world coordinate systems. Detailed Description of the Preferred Embodiments Section 1 - Overview of the Control Algorithm Referring to Table 1, a description of notations and variables used herein is provided. Table 1 N Number of wheels Cartesian position of wheel attachment point of 2- DOFW i to the base in base coordinates (m, m) Cartesian position of wheel attachment point of 2- DOFW i to the base in base coordinates as it has changed since the previous control cycle using the coordinates of the previous control cycle (m, m) (far, Angle offset of 2-DOFW i with respect to the base origin, (rad) (see Figure 4) θ mWl Measured steer angle of 2-DOFW i (rad) θ dWl Desired steer angle of 2-DOFW i (rad) m d = [i (/ , y d , ψ d ] Input vector (IV), or desired mobile base motion in base coordinates read from host processor (m/s, m/s, rad/s) m e = \x e y e , ψ Estimated mobile base motion in base coordinates calculated as described in Section 5 (m/s, m/s, rad/s) Am e = , Δy. , Δ ψ e ] Estimated change in mobile base position in base coordinates calculated as described in Section 5 (m, m, rad) fήiiλ) Possible mobile base motion decomposed along parametric line with parameter λ (m/s, m s, rad/s) (Section 4) m m Modified mobile base motion (m/s, m/s, rad s) m a Axis motion vector (AMV) of length 2N (type of wheel, caster or no caster, determines units) δ Small increment much less than 1.0 (0.1 nominal) (Section 4) Desired velocity vector of attachment point of 2-DOFW i to the base in base coordinates (m/s, m/s) μ dm Desired velocity magnitude of 2-DOFW i (m/s) s dWl Desired steering axis position for 2-DOFW i (encoders) s mWl Measured steering axis position for 2-DOFW i (encoders) m Measured steering axis position for 2-DOFW i in the previous control cycle (encoders) As mWl Measured change in steering axis position for 2-DOFW i since the previous control cycle (m) S JW , Desired steering axis velocity for 2-DOFW i (encoders/s) s mWl Measured steering axis velocity for 2-DOFW i (encoders/s) s mιam Maximum steering axis velocity for 2-DOF W i (encoders/s) s mmm Maximum steering axis acceleration for 2-DOF W i (encoders/s 2 ) s IWl Lower-bound steering axis position for 2-DOFW i within Δt time (encoders) s uWj Upper-bound steering axis position for 2-DOFW i within Δt time (encoders) lm Lower-bound steering axis velocity for 2-DOFW i within Δt time (encoders/s) s uWl Upper bound steering axis velocity for 2-DOFW i within Δt time (encoders/s) t mWl Measured translation axis position for 2-DOFW i (encoders) m Measured translation axis position for 2-DOFW i in the previous control cycle (encoders) t mWi Measured change in translation axis position for 2- DOFW i since the previous control cycle (m) i dWl Desired translation axis velocity for 2-DOFW i (encoders/s) i mWl Measured translation axis velocity for 2-DOFW i (encoders/s) i maxWl Maximum translation axis velocity for 2-DOFW i (encoders/s) i m3 Wi Maximum translation axis acceleration for 2-DOFW i (encoders/s 2 ) i lm Lower-bound translation axis velocity for 2-DOFW i within Δt time (encoders/s) i uWl Upper-bound translation axis velocity for 2-DOFW i within Δt time (encoders/s) r m Radius of 2-DOF W i (m) σ Wl Steering axis encoder pitch for 2-DOFW i (encoders/rad) τ m Translation axis encoder pitch for 2-DOFW i (encoders/rad) c Wi Amount of caster for 2-DOFW i (m) Δt Time elapsed during a control cycle (s) [ x eB ' y eB ' Ψ eB j Estimated position and orientation of the base coordinate frame (i.e. coordinates that are fixed with respect to the mobile base and move with the mobile base) in fixed world coordinates (i.e. coordinates that are fixed with respect to the floor on which the mobile base moves) (m, m, rad) Referring to Figures 1 A and IB, a mobile base constructed according to the present invention includes as many two degrees of freedom wheels (2-DOFWs) as deemed necessary (N > 2 , where N is the number of 2-DOFWs). All of the wheels are mounted on the mobile base which is a rigid platform (depicted in Figure 4.). Each 2-DOFW has two independent axes, one for steering and one for translation. Figure 1 A shows an example of a 2-DOFW with no castor, such that the steering and translation axes intersect (i.e. c m = 0.) Figure IB shows an example of a 2-DOFW having a castor offset. In other words, the steering axis is offset from the translation axis by c m . Each of the 2-DOFWs on the mobile base can have a different amount of caster if necessary. Referring to Figure 2, a schematic diagram shows the flow of command information which controls the motion of the mobile base. Since each of the N wheels has two axes (i.e. steering and translation), the mobile base has a total of 2N axes. Controlling the 2N axes of the mobile base are 2N servo amplifiers connected to a set of low-level controllers that perform closed-loop, high servo-rate control of all axis positions. Positional feedback of each axis is provided by an accurate encoding scheme. A supervisory controller interfaced to the low-level controllers coordinates all 2N axes by sending position updates to the low-level controllers at each discrete control cycle. The position updates are calculated by the control algorithm which takes into account the mobile base geometry, motor dynamics, and a 3-DOF input vector sent from a host processor interfaced to the supervisory controller. The 3-DOF input vector completely describes the desired velocity-based motion of the mobile base, which is constrained to move within three DOFs as described previously. A possible input vector, for example, consists of an x- velocity, y- velocity, and rotational velocity with respect to the center of the mobile base, or alternatively, angle, magnitude, and rotational velocity with respect to a random fixed point (i.e. the representation is arbitrary as long as the axes of the input vector are independent.) The control algorithm is optimal in that it controls the 2N axes such that the mobile base moves as commanded by the input vector as accurately and as quickly as possible within the physical limits of the motors. For example, if a motor is commanded beyond what it is physically capable of (i.e. it is commanded beyond its "saturation point") while other motors are commanded to within their physical limits, wheel slippage occurs. The control algorithm is able to predict this situation and correct it before it occurs. It accomplishes this by anticipating velocities and saturation points with working models of each motor axis. Thus, the control algorithm simultaneously minimizes wheel slippage and minimizes the difference between desired motion specified by the input vector and actual mobile base motion (motion error). Section 2 - Mapping the Input Vector to the Desired Axis Motion Vector This determines the motion required at each 2-DOFW and the corresponding motion at each axis such that the mobile base moves according to the commanded input vector (i.e. [ rf , j^, ^])- Thus, the mapping is from 9Ϊ 1 to 9Ϊ 2Λ/ . It is accomplished by first calculating the desired velocity to each wheel attachment point as below. The desired wheel velocity for each wheel is expressed as a 2-vector [ χ jw, > jwi ] Dase coordinates (Figure 4). ( V : l ≤ i ≤ N ) (i.e. for all wheels i): y d w, = y,, + r wl ψ d cθs{φ m ) where y , is the angle offset of 2-DOFW i with respect to the base origin in radians. These desired wheel velocities are then mapped to the two axes of the 2-DOFW. For 2-DOF Ws with no caster ( c Wl = 0 ) the desired steering axis position and desired translation axis velocity [^_ w -,,t £W ] are calculated for each 2-DOFW as follows: ^» , = arctan2(>' Λr „i ΛK ,) V . 2 - 2 χ dwι + y<tw< S dWl = ' Wl ti dWl where θ dWl is the desired steering angle for 2-DOFW i, σ Wl is the steering axis "encoder pitch" for 2-DOFW i expressed in encoders per radian, and μ dWl is the desired velocity magnitude for wheel i For 2-DOFWs with caster (c m ≠ 0 ) the desired steering axis velocity and desired translation axis velocity [j^,, ^,] arc calculated for each 2-DOFW as below. First the steering angle for each 2-DOFW is measured ( θ mWl ) based on the raw measured encoder value of the steering axis ( s mWl ) and the encoder pitch ( σ Wl ): n __ S mWι °mWι ~ _ Sdw, = — (J , ∞ θ «,w, ) - XJW, sin(^ rff , , )) w, = -^ ( x d cos( ? mH ,, ) + y dWl sin(c? l((/ , )) where c Wl is the amount of caster offset in meters, τ Wl is the encoder pitch for 2DOFW i expressed in encoders per radians, and r Wl is the radius of the 2DOFW i Thus, by concatenating all N wheel motion pairs described above, we create a desired axis motion vector with 2N in length. Section 3 - Calculating the Control Envelopes The control envelope for an axis describes the possible motion an axis can perform within a fixed time. For a 2-DOFW i with no caster ( c w , = 0 ) we must calculate the steering axis position lower and upper bounds (s m and s uWl ) and the translation axis velocity lower and upper bounds (i lm and i uWI ). First, calculating the steering position lower bound, we assume that the axis should move based on a value proportional to the error ( s dWl - s mWl ) scaled by gain value ( k ) minus a small tolerance ( s ) or based on the maximum (negative) acceleration possible for the steering axis (£-.„„,,■) (the measured position and velocity (s mm and s mWi ) are required to calculate the position as a result of maximum acceleration), whichever is greater: >IWι max(.ϊ mWl + K As dWl s mWl ) e s ,s mWl + s mm Δt 2 ^ axW/ Δt ) Calculating the upper bound, we similarly assume the axis should move based on a value proportional to the error scaled by a gain value plus a small tolerance or based on the maximum (positive) acceleration, whichever is lesser. S uWι = m - n S i i + *o S dWι ~~ S mWι I + e .s ' S mWι + S mWi~~-' + T ^ma lfi^' Calculating the lower bound of the translation axis velocity, we assume the control envelope is determined by either maximum (negative) acceleration, or by the maximum possible (negative) velocity of the translation axis (i mmWi ), whichever is greater. Calculating the upper bound, we similarly assume the control envelope is determined by either the maximum (positive) acceleration, or by the maximum possible (positive) velocity of the translation axis, whichever is lesser. w, = n-ϊniimwi + iv t' ∞m) Once these values have been determined, the desired motion [^,,^, 1 lies within the control envelope for Δt time duration if and only if S dWi - S IWi an " S dWi — S mWi or < s,. Wi and s llWi ≥ 5„ For a 2-DOFW i with caster (c Wi ≠ 0 ) we must calculate the steering axis velocity lower and upper bounds ( s m and s uWj )and translation axis velocity lower and upper bounds (i tm and i αWI ). Calculating the lower bound of the steering axis velocity, we assume the control envelope is determined by either maximum (negative) acceleration is ' maxiyi ), or by the maximum possible (negative) velocity of the translation axis ( ^ m xtf , ) > whichever is greater. S IWι = maX ' S' »fι ~ S max ^' ι ~ S m xWi ) Calculating the upper bound, we similarly assume the control envelope is determined by either the maximum (positive) acceleration, or by the maximum possible (positive) velocity of the steering axis, whichever is lesser. uWι ~ m - n \ S tVι + Λ a (fι ^' S mzxWι ) Calculating the translation velocity lower and upper bounds is the same for 2-DOFWs with caster. lV i = maX ( rolfι ~ 'ma lf;^' — maxWi ) wi mm \ tmm + tmsxWi t * t maχ μr, ) Once these values have been determined, the desired motion [ ^, , i dWl ] lies within the control envelope for Δt time duration if and only if lWι — S dWι — S uWι and Thus we can determine for a given increment in time ( Δt ) the possible motion for each axis (control envelope) of each 2-DOFW, and for a given axis motion vector, whether it lies within the control envelopes. Section 4 - Calculating the Modified Axis Motion Vector We describe an algorithm that can be applied when the desired axis motion vector mapped from the input vector does not lie within the control envelopes of all axes. Given a desired base motion input vector ( m d ) and a current estimated base motion vector ( m e ) (calculated in Section 5) we can determine a modified motion vector that is closest to the desired input vector while staying within the control envelopes of all axes. We begin by defining a parametric line m,(X) as a function of λ , which varies between 0 and 1 : m,(λ) = λ(f d - m e ) + m e O ≤ Λ ≤ l Evaluating m,(0) results in m c , which is the current base motion vector. Evaluating m,(\) results in h d , which is the desired input vector. Thus, we define an algorithm that finds a value of λ whose m,(λ) mapping is closest to the desired input vector and lies within the control envelopes when mapped to the axis motion vector. The basic idea is to increment λ by a small amount (δ) until the mapping of m,(λ) to the axis motion vector lies within the control envelopes. This becomes the modified axis motion vector. 0 < δ « 1 begin procedure λ = δ while m,(λ) mapped to axis motion vector (Section 2) lies within control envelopes of all axes of each 2-DOFW (Section 3) do λ = λ + δ end = m,W return axis motion vector mapping of fh m end Note, there are many possible ways to implement the same algorithm. This method is presented because of its simplicity. Section 5 - Estimating the Motion of the Mobile Base Here, we describe how to estimate the motion of the base during the discrete time interval Δt . First, we calculate the new apparent wheel positions with respect to the base coordinates. These new coordinates are expressed as x m ' and y W ' l for wheel i. For wheels with no caster ( c Wl = 0 ), we begin by calculating the measured steering angle as in Section 1 : ø__, = ^- We proceed by calculating the measured translation distance ( Δt,,,,,,, ) since the beginning of the previous control cycle: Here, we introduce Wl which is the measured translation axis position at the beginning of the previous control cycle expressed in encoders. The apparent wheel positions are then simply the wheel positions in base coordinates ( x m and y m ) plus the calculated motion: x W ' l -= x Wl + Δt mW , cos(θ mm ) ym' = ym + mm s - n ( θ mm ) For wheels with caster (c Wl ≠ 0 ), we similarly calculate the steering angle: And, as above, we calculate the apparent wheel motion as a result of the translation axis: iWi = ~ VmWi ~ LlVi ) However, because of the caster offset, steering motion results in apparent wheel motion as well. Here we introduce lWl which is the measured steering axis position at the beginning of the previous control cycle expressed in encoders: As = — is - '£ . σ w, The apparent wheel motion is then calculated by a rotation with respect to the steer angle: xw' , = *w, + „m cos( θ mWl ) - Δs mWl ύn(θ mWl ) yw' , = y w , + temv, cos i θ m w, ) + m w, ή n(θ mWl ) We then use the apparent wheel motion to calculate the amount of base rotation Δψ e since the last control cycle. We do this by calculating the rotation for each possible wheel pair and averaging the results: M = C(N,2) Δ ψ c = f J arctan2 (y m ' - y W ' j , x m ' - x W ' j ) - arctan2 (y m - y W] , x Wk - x Wj ) The above equation is summed over all possible wheel pairs j, k . That is, there are C(N,2) ( N choose 2 combinatorial) possible wheel combinations. Since the position of a mobile base having only two wheels (i.e. N = 2) can be estimated with feedback from only three of its four motion axes (the fourth one being redundant), there are many other ways to estimate the motion of the base. The preceding formula can be used for bases having only two wheels, but there will only be one wheel pair to "average." As the number of wheels used on a mobile base goes up (i.e. as N increases), the better the above estimation algorithm gets. We now calculate the change in x and y coordinates ( Δx e and Δy. ) by evaluating the following equations: Δ - = τ∑ x w' - Jxl + yϊi ∞støm + ψe A y , = ∑ y W ' l - -fiϊ+yϊ *H m + &Ψe) ;-l The estimated base motion vector can be calculated by dividing by the time increment At : The final step in motion estimation is determining the "summed-up" position of the mobile base in fixed world coordinates. This is accomplished by adding the rotation angle change Δ ψ e to the existing angle estimate ( Ψ n )• Similarly x eβ and y eB are calculated by adding to the existing estimates the rotated change in x and y coordinates with respect to ψ eli : x e n = e n + Δx e cos(^ e/j ) - Δy e sin( y . /( ) y e n = y e n + y e cosiψ eB ) + Δx e sm(ψ eH ) Section 6 - Summary The present invention, as described above, provides a method and apparatus for controlling the motion of a mobile base with increased accuracy and maneuverability. In its preferred embodiment, the present invention is used on a mobile robot base having three wheels each with a predetermined amount of castor. The mobile robot is controlled by an off-board host processor (as shown in Figure 2.) The host processor sends command signals and receives motion feedback from an onboard supervisory controller by radio, cable, infrared, or similar type of link. The motion control signals are mapped to axis control signals by the supervisory controller and sent to six low-level controllers. Each of the six low level controllers corresponds to either a steering axis or translation axis for one of the three wheels. Each of the low level controllers in turn sends an axis control signal to an associated servo amplifier, which provides the proper voltage and current to drive the respective axis motor. Each of the six motors has an encoder, which provides motor position feedback to both the low-level controller and the supervisory controller. The host processor and supervisory controller are preferably microprocessors that are commonly used for embedded control. Propriety software code is written preferably in C programming language to implement the inventive control method on the microprocessors and low level controllers. The inventive method can be utilized with other configurations (not shown.) For instance, the mobile base described above can be inverted with the positions of the mobile base and the surface it rolls on transposed. In other words, two degree of freedom wheels can be mounted pointed upward on a stationary base, and can translate and rotate a horizontal surface resting on the wheels. In another possible application (not shown), multiple bases, each having single or multiple wheels, can be pivotably linked together in a snake-fashion to form a non-rigid base which is controlled by the inventive method. The above descriptions and drawings are for illustrative purposes only, and are not exhaustive of possible alternate embodiments of the invention. It is to be understood that the present invention is not limited to the sole embodiments described above and illustrated herein, but encompasses any and all variations falling within the scope of the appended claims.

Claims: What is claimed is: 1. A method of calculating a desired axis motion of a wheeled base from an overall desired motion of the wheeled base, the wheeled base having at least two wheels, each wheel having two axis which define two degrees of freedom for that wheel, each wheel having an attachment point on the base, the method comprising the steps of: receiving an inputted motion vector for an overall desired motion of the wheeled base; calculating from the inputted vector a desired two dimensional motion vector for each of the attachment points; mapping the motion vector of one of the attachment points to an axis motion for each of the two axes associated with the one attachment point, so that driving the two axes of the associated wheel will result in the desired base motion of the one attachment point; and repeating the previous step for each of the attachment points. 2. A method of calculating a desired axis motion as recited in claim I, wherein the step of calculating the two dimensional motion vector for each of the attachment points is characterized by the equations: d = X J + r w Ψ sintøn ) ; and y d w, = y + r » ,Ψ d ∞s( m ) , wherein X JW , is the desired wheel attachment point velocity in the x-direction of the base coordinates for each wheel, x d is the Ψ d φ Wl is the angle offset of 2-DOFW i with respect to the base origin in radians. y^ y d 3. A method of calculating a desired axis motion as recited in claim 1 , wherein all of the wheels of the base have a castor that is equal to zero and the steps of mapping the motion vectors of the attachment points to axis motions is characterized by the equations: θ d w, = arctan2 (^ ΛFl ,i Λf , l ) / . 2 • " _ dlVi ~ X Wι + y Wi S dWι ~ σ Wι"dWι Wi ' o t dWl = μ dWl r w, where θ dW: is the desired steering angle for 2-DOFW i, X dW, 15 μ dWl is the desired velocity magnitude for wheel i S dWι σ Wl is the steering axis "encoder pitch" for 2-DOFW i expressed in encoders per radian * Wι 0 τ Wl r w, 4. A method of calculating a desired axis motion as recited in claim 1 , wherein all of the wheels of the base have a castor that is not equal to zero and the 5 steps of mapping the motion vectors of the attachment points to axis motions is characterized by the equations: " ( , cos(£? mH/ , ) - XdW , ύn(θ mW , )) ; and ' ■ Wi ' dWi (x dlVl ∞s(θ mm ) + y dW , sin( ?, w )) , ' Wi where 0. «Wι > m Vι ' Wi c Wl is the amount of caster offset in meters, X dWl τ Wl is the encoder pitch for 2DOFW i expressed in encoders per radians, and is the radius of the 2DOFW ■ dWi > , 5. A method of providing a control envelope for axes on a wheeled base, the wheeled base having at least two wheels, each wheel having two axes which define two degrees of freedom for that wheel, the control envelope ensuring that none of the wheel axes are commanded to move in a manner that they are not capable, the method comprising the steps of: defining for each of the axes of each of the wheels a maximum possible range of motion that will be permitted during an allotted control period; receiving an inputted motion vector for an overall desired motion of the wheeled base; calculating from the inputted vector a desired axis motion for each of the axes of each of the wheels, so that driving all of the axes will result in the overall desired motion of the base; determining if any of the desired axis motions are not within the permitted range of motion previously defined for that axis; and modifying as little as possible the overall desired motion of the base if required by the previous step such that all of the corresponding desired axis motions are within the permitted ranges of axis motion. 6. A method of estimating rotation of a wheeled base relative to a surface during a discrete time interval Δt, the base having at least two wheels each pivotably and rotatably mounted thereon for contacting the surface and driving the base and surface relative to one another, the method comprising the steps of: calculating an apparent motion for each of the wheels during the time interval Δt; calculating a rotation of the base for each possible pair of the wheels based on the apparent motion calculated for each of the wheels; and averaging the results of the previous step. 7. A method of estimating rotation of a wheeled base as recited in claim 6, wherein the step of calculating an apparent motion of each wheel is represented by the equations: x w' , = m + Δt m wι ∞s ( θ mw, ) ~ ^ , sin^, ) J and yw', = y w , + ^ , ∞<θmw, ) + Δ .HT, sin(0 m „, ) , wherein x Λ W' ι ■ > x m > -~**mWi ' m w, ; yw' , y w , s mWl 8. A method of estimating rotation of a wheeled base as recited in claim 7, wherein each wheel has a steering axis and a rolling or translation axis, the two axis for each of the wheels being offset from one another such that the castor does not equal zero. 9. A method of estimating rotation of a wheeled base as recited in claim 7, wherein each wheel has a steering axis and a rolling or translation axis, the two axis for each of the wheels intersecting such that the castor equals zero. 10. A method of estimating rotation of a wheeled base as recited in claim 6, wherein the steps of calculating a rotation of the base for each possible pair of the wheels and averaging the results are represented by the equation: Δf ( = ∑ arctan2 (y m ' - y W ' l , x m ' - x W ' l ) - arctan2 (y m - y W/ , x m - x Wl ) , wherein M Y' Λ Wk » X ' ym ' y w X Wk ' X IVj > 11. A method of calculating position and orientation of a wheeled base relative to a world coordinate system fixed to a surface, the base having a base coordinate system fixed thereto and at least two wheels each pivotably and rotatably mounted to the base at an attachment point for contacting the surface and driving the base and surface relative to one another, the method comprising the steps of: calculating a steering angle for each of the wheels; calculating a measured translation distance for each of the wheels traveled over a time Δt elapsed during a control cycle; calculating an apparent motion for each of the wheels based on the steering angle and measured translation calculated; calculating an apparent position in base coordinates for each of the wheels by adding the calculated motion to the wheel attachment point at the beginning of the control cycle; calculating a rotation of the base for each possible pair of the wheels based on the apparent motion calculated for each of the wheels; calculating a total change in base rotation by averaging the results of the previous step; calculating a total change in translation coordinates by averaging the apparent motion of each of the wheels, taking into account the base rotation calculated in the previous step since the beginning of the control cycle; calculating a summed-up position and orientation of the mobile base in the fixed world coordinates by adding the total change in base angle to an existing angle estimate and adding the total change in translation coordinates to an existing estimate of translation coordinates. 12. A method of calculating position and orientation of a wheeled base as recited in claim 11, wherein the step of calculating the total change in base rotation is characterized by the equation: ψ e = ii ∑arctan2 (v A - y W ' J ,x w ' k - x m ' ) - arctan2 (y m -y Wj ,x m -x WJ ) , wherein _ x Λ W'k ' v' y w X Wk • > X W) -> 13. A method of calculating position and orientation of a wheeled base as recited in claim 11 , wherein the step of calculating the total change in translation coordinates is characterized by the equations: Δ = JF∑ m' - J χ l, + l,s∞ ( m + Δ , wherein Δx. j_ N ι=l x W'f> 'Wi ' Δψ e ; Δy„ , yw' , > 14. A method of calculating position and orientation of a wheeled base as recited in claim 11 , wherein the step of calculating a summed-up position and orientation of the mobile base is characterized by the equations: x a = x e + e cos( j /r- -s ) - Δy e sin(ι t . Λ ) , and y t β = y* + Δ Λ ∞*( tB ) + x, sin(ι/ / ( ) wherein X eH ' Δx e , Ay e , y eB 15. A method for controlling the motion of a wheeled base with respect to a surface, the base having a base coordinate system fixed thereto and at least two wheels each pivotably and rotatably mounted to the base at an attachment point for contacting the surface and driving the base and surface relative to one another, each wheel having a plurality of axes, the method comprising the steps of: reading an input vector from a host processor; mapping the input vector to a desired axis motion vector for each of the axes; sending the desired axis motion vector to an axis controller for each of the axes; estimating a motion of the base traveled during a discrete time interval Δt; calculating a position and an orientation of the base in a set of world coordinates. 16. A method for controlling the motion of a wheeled base as recited in claim 15, wherein the steps of estimating a motion of the base and calculating a position and orientation of the base further comprise the steps of: calculating a steering angle for each of the wheels; calculating a measured translation distance for each of the wheels traveled over a time Δt elapsed during a control cycle; calculating an apparent motion for each of the wheels based on the steering angle and measured translation calculated; calculating an apparent position in base coordinates for each of the wheels by adding the calculated motion to the wheel attachment point at the beginning of the control cycle calculating a rotation of the base for each possible pair of the wheels based on the apparent motion calculated for each of the wheels; calculating a total change in base rotation by averaging the results of the previous step; calculating a total change in translation coordinates by averaging the apparent motion of each of the wheels, taking into account the base rotation calculated in the previous step since the beginning of the control cycle; calculating a summed-up position and orientation of the mobile base in the fixed world coordinates by adding the total change in base angle to an existing angle estimate and adding a rotated total change in translation coordinates to an existing estimate of translation coordinates. 17. A method for controlling the motion of a wheeled base as recited in claim 16, wherein the step of calculating the total change in base rotation is characterized by the equation: Δ ψ e = JL ∑ arctan2 (y m ' - y W ' j , x m ' - x W ' J ) - arctan2 (y m - y Wj , x m - x Wj ) , vi ) wherein ψ e , _L > x' *H% > 18. A method for controlling the motion of a wheeled base as recited in claim 16, wherein the step of calculating the total change in translation coordinates is characterized by the equations: N . * * = i∑ x ι'v. - i x l. + yl. cos (Φw, + Δ^ β ) ; and <=ι 4v. = ∑ yw' , - < i χ l, + yl, sin ( w, + Δ Ψ, ) , r=l wherein Δx. N W; > ' Wi ' Δy e ; Δ^ , yw' 19. A method for controlling the motion of a wheeled base as recited in claim 16, wherein the step of calculating a summed-up position and orientation of the mobile base is characterized by the equations: X e = x e + Δx, ∞s(ψ ett ) - Δy e ήn(ψ els ) , and y * B = y t β + Ay. ∞ s iΨ B ) + )f , sintø^ ) wherein y, , X eB > x e , Ay e , 20. A method for controlling the motion of a wheeled base with respect to a surface, the base having a base coordinate system fixed thereto and at least two wheels each pivotably and rotatably mounted to the base for contacting the surface and driving the base and surface relative to one another, each wheel having a plurality of axes, the method comprising the steps of: reading an input vector from a host processor; mapping the input vector to a desired axis motion vector for each of the axes; calculating a control envelope for each of the axes; determining whether the desired axis motion vector lies within the control envelope for each of the axes; calculating a modified axis motion vector for each of the axes in which the desired axis motion vector does not lie within the control envelope; sending the desired axis motion vector or modified axis motion vector to an axis controller for each of the axes; estimating a motion of the base traveled during a discrete time interval Δt; calculating a position and an orientation of the base in a set of world coordinates; and repeating the previous steps continuously until commanded to stop. 21. A mobile robot base movable relative to a surface, the base comprising: at least two wheels pivotably and rotatably mounted to the base, each wheel having a steering axis and a rotation axis; drive means for rotating the wheels along the surface; steering means for pivoting the wheels with respect to the surface; and controller means for controlling the motion of the base, wherein the controller means includes means for reading an input vector from a host processor, mapping the input vector to a desired axis motion vector for each of the axes, calculating a control envelope for each of the axes, determining whether the axis motion vector lies within the control envelope for each of the axes, calculating a modified axis motion vector when the axis motion vector does not lie within the control envelope, sending the axis motion vector or modified axis motion vector to an axis controller for each of the axes, estimating a motion of the base traveled during a discrete time interval Δt, calculating a position and an orientation of the base in a set of world coordinates, and repeating the previous steps continuously until commanded to stop.

Inventors: LEGRAND RICHARD M, SLATER JAMES C, LEGRAND, RICHARD, M., SLATER, JAMES, C.
Applicants: LEGRAND RICHARD M, NOMADIC TECHNOLOGIES INC, SLATER JAMES C, LEGRAND, RICHARD, M., NOMADIC TECHNOLOGIES, INC., SLATER, JAMES, C.
Application year: 1997
Main classification: G01B7
IPC codes: G05D1