Abstract:
A method of recording trajectory data and sensor data for a vehicle while it is manually driven. The trajectory data comprises of the trajectory length and vehicle frame (position and orientation) that are calculated at each motion execution interval. The sensor data comprises of the trajectory length, vehicle frame, sensor frame, and sensor data that are obtained at each sensor execution interval. In particular, if the sensor is a range-finder, an estimated frame of the object that the range finder detects will be added to said sensor data. One objective of this invention is to play back the same motion the vehicle was taught by a human operator. Another objective is to generate a world map for the vehicle. Still further objective is, in the play-back mode, to correct vehicle&#39;s positional errors using the sensor data.

Description:
BACKGROUND OF THE INVENTION 
     This invention pertains to a vehicle, specifically to computing and storing its trajectory data and sensor data for a manually-driven vehicle. This invention falls into the Classification Definitions of 701/002 and 701/025. 
     Wheeled unmanned vehicles are widely adopted in manufacturing, services, and other industries. For instance, in manufacturing factories, they are used for unmanned material handling tasks. In semiconductor clean rooms, unmanned vehicles with articulated manipulators are widely used for silicon cassette handling to eliminate human operators who may produce unwelcome dust. Some hospitals use meal-delivering vehicles for cost-saving measures. 
     Heretofore, two methods have been known to navigate unmanned vehicles: an electrical/optical method and a programming method. The electrical/optical navigation method uses inductive wires or optical tapes pasted on the floor that are tracked by a vehicle. Another method is navigating a vehicle by computer programming. 
     U.S. Pat. No. 4,816,998 described a method for a self-pivoting vehicle of computing a steering angle signal by dead reckoning from a predetermined desired trajectory for the vehicle. 
     U.S. Pat. No. 5,109,340 describes a method for an autonomous vehicle of planning smooth paths by using Clothoid curves that has the feature of curvature continuity. 
     U.S. Pat. No. 5,170,352 describes a method for an autonomous vehicle of detecting obstacles and detecting the target areas of which the vehicle to be directed. The vehicle is supposed to operate within a predetermined physical area such as on the deck of an aircraft carrier. 
     U.S. Pat. No. 5,219,036 describes a method for an unmanned industrial trucks of guiding themselves using reference points embedded in the floor and a path-tracking algorithm. 
     U.S. Pat. No. 5,233,526 describes a method for a driverless vehicle of relocking on a theoretical trajectory during the passage of the vehicle by modifying its curvature. This method guarantees that the curve has the curvature-continuity. 
     U.S. Pat. No. 5,621,291 describes a method for a self-propelled robotic vacuum cleaner of controlling its motion by ultrasonic sensors. 
     U.S. Pat. No. 6,134,486 describes a method for a vehicle of tracking a path consisting of directed lines and circles. 
     U.S. Pat. No. 6,138,064 describes a method for a vehicle of branching from a main line and of merging into the main line again. 
     These just described navigation methods, however, suffer from a number of disadvantages: (A) As to the electrical/optical method, it is time consuming and costly to implement the wires or optical tapes in the working environment. The cost increases proportionally with its total travelling distance. Furthermore, it is also time consuming and costly to change a once implemented wire/tape because of environmental or mission modifications. In clean room applications, using wires/tapes themselves is not desirable because they may become a source of dust. (B) The programming method has problems also. Measurement of a path in the vehicle&#39;s operating environment is needed to program the vehicle. This is a time-consuming task. In some situations, an ideal path for the task cannot be defined easily by programming. 
     There is another problem where an unmanned vehicle is used for practical applications. A geometrical map of the vehicle environment is necessary for the vehicle&#39;s precise motion. Heretofore, there is no economical and simple method known to do this task. 
     BRIEF SUMMARY OF THE INVENTION 
     The prior art made of record cited in the previous section describe methods of controlling an autonomous vehicle by computer programs. However, this invention states a manual-controlling method of a non-autonomous vehicle. 
     One objective of the invention is to provide a method of recording trajectory data for a manually-driven vehicle. More specifically, the trajectory data contains the trajectory length traveled by the vehicle, vehicle frame (position and orientation), and trajectory curvature computed at each motion execution interval. This is a method of manually teaching trajectories to vehicles. Another objective of the invention is, in case a sensor is mounted on the vehicle, to provide a method of storing trajectory sensor data taken along the vehicle&#39;s manual motion at each sensor execution interval. The sensor data contains the trajectory length, vehicle frame, sensor frame, and information collected by the sensor. 
     An advantage of the invention is that the trajectory data contains the necessary and sufficient geometrical information (the length, position, orientation, curvature of each section of the trajectory) needed to reproduce the manually generated trajectory. The curvature is essential information to obtain better control of vehicles. Approximating each trajectory section by a circular arc or by a straight line is the best known method for vehicle odometry. 
     Another advantage is that any trajectory that is hard to define mathematically can be generated by the method since the vehicle trajectory is generated manually. Thus the invention solves one of the problems stated earlier that an ideal path for some task is difficult to define by a computer program. 
     Still further advantage of the invention is that it provides a timesaving and economical method of defining and modifying trajectories to a vehicle. For a vehicle equipped with a program implementing the invention, teaching a new trajectory can be done in a single manual driving session. Thus the invention solves another problem stated earlier that implementing and changing inductive wires or optical tapes is time consuming and costly. 
     Still further advantage of the invention is that it provides only spatial information of the vehicle trajectory without any timing information. This method allows more general playing back of the recorded motion, because a user can select any speed profile for a play-back motion independent of the speed profile at the teaching mode. 
     Still further advantage of the invention is to provide a hardware-independent method of handling the trajectory information. The invention can be applied to different vehicles with an arbitrary size and with an arbitrary wheel architecture such as differential-drive, tricycle, or car-like. 
     Still further advantage of this invention is to provide a straightforward method of recording on-board sensor information about the external world while the vehicle is manually-driven. This information helps the vehicle later when it reproduces the same motion for positional identification (or localization) and other purposes. 
     Still further advantage of this invention is to provide a straightforward method of creating a map of the world by a vehicle using an appropriate range sensor, such as a sonar. The range sensor data is an envelope of objects in the world that is scanned by the sensor. The envelope can be edited manually or by a computer program to generate a geometrical map. This method is far easier than the method of physically measuring the world by hand to generate a map. If the vehicle is operated by a person who has the knowledge of the physical characteristics of the sensor, he/she can drive the vehicle to maximize the sensor information. 
     Still further advantage of this invention is that the world map taken by a sensor during the teaching mode and the sensor data obtained in the play-back mode are consistent, since the sensor used in both modes are the same used at similar positions and orientations. Therefore, a localization task (or vehicle&#39;s positional error resetting) becomes easier and meaningful. If the world map had been manually made without the sensor, inherent differences between the hand-made map and the sensor data would degrade the localization task. 
     In this invention, an odometry method of computing the trajectory information (the trajectory length, coordinates, orientation, and curvature) for recording is stated. The method apparently is parallel to the one of computing the trajectory information of a computer-controlled vehicle as a part of the position-feedback control algorithm. However, it should be noted that in this invention the trajectory information is given by manually-controlled motions intending to be used later for the reproduction of the same motion. 
    
    
     BRIEF DESCRIPTION OF THE DRAWING 
     FIG. 1 shows a vehicle frame (position and orientation) Q=(p,θ)=((x, y), θ) and the reference frame, (( 0, 0), 0 ), of a manually-driven vehicle in the global frame. 
     FIG. 2 shows a sample trajectory of a manually-driven vehicle, which is composed by short curves separated by vehicle frames. 
     FIG. 3 is a block diagram of a manually-driven vehicle system that comprises of the main vehicle subsystem and the motion control subsystem. 
     FIG. 4 shows an incremental transformation of a manually-driven vehicle characterized by a circular arc generated during a motion-execution interval. 
     FIG. 5 is a figure made from FIG. 4 by moving the first frame Q i  into the reference frame keeping the geometrical relation between the two frames unchanged. This figure also shows that the incremental transformation of a manually-driven vehicle is computed by the incremental trajectory length and vehicle orientation change. 
     FIG. 6 shows that, in a manually-driven differential-drive vehicle, the incremental trajectory length and vehicle orientation change can be computed from the incremental moving distances at both wheels. 
     FIG. 7 shows that an on-board sensor is mounted on the manually-driven vehicle, where the vehicle frame is Q and the sensor frame local to the vehicle frame is R. 
     FIG. 8 shows that an on-board range finder is mounted on the manually-driven vehicle, where the vehicle frame is Q, the range-finder frame local to the vehicle frame is R, and the range to a detected object is d. 
     FIG. 9 is an example of a set of object points in a sonar data V. In this case, the sonar is mounted horizontally (φ=0) on the manually-driven vehicle, the object data points are on a single plane. 
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
     Therefore, the invention is related to the two functions of a manually-driven vehicle: The first function is to record a trajectory data. The second function is to record a sensor data. There are no other inventions that have similar objectives. Therefore, the invention is not an improvement of any other invention. 
     [1] Two Operating Modes of a Vehicle 
     In the invention, the vehicle has two distinct operating modes: a teaching mode and a play-back mode. In the teaching mode, its motion is driven or directed by a human, and its trajectory and sensing data are recorded by a computer program. In the play-back mode, its motion is controlled by a computer program to reproduce the motion that was recorded in the teaching mode. 
     [2] Manual Driving Methods 
     In the teaching mode, several different methods for manual driving are possible. They include: 
     (A) A method where a human operator physically moves the vehicle by hand(s). The motors of the vehicle must be set free so that the operator can move the vehicle with little resistance. 
     (B) A method where a sensor system mounted on a vehicle actively detects an object held by a human operator. For instance, a sonar system is mounted on a vehicle and detect an object that is held by a human operator. The vehicle is programmed to move so that the distance between the vehicle&#39;s front end and the object is in a predefined range and the object is in the heading orientation of the vehicle. 
     (C) A method where the vehicle is remotely-controlled by a human operator. 
     (D) The vehicle may be driven by a human operator who is riding on it. 
     This invention is applicable to any other methods as long as the vehicle motion is controlled or directed by a human operator in any way, because the invention is related to only the method how the resultant motion is computed and recorded. 
     [3] Motion-Data Computation 
     To clearly define the position and orientation of a vehicle, we paste a local Cartesian frame on it (FIG.  1 ). In this specific embodiment, we assume the vehicle has one or two fixed wheel(s) where a fixed wheel is a wheel that cannot be steered. We also assume that if there are two fixed wheels, they are aligned on the same axle. There are at least three wheel architectures—a differential drive, a bicycle, and a car-like—that possess this property. The origin of the local frame is put on the axle of the fixed wheel(s) and its Y-axis is aligned to the axle. Then the local X-axis direction which is equal to the vehicle&#39;s heading orientation is perpendicular to the wheel axle. 
     A global frame is defined on the plane where the vehicle moves around. The local frame on the vehicle moves along the vehicle&#39;s motion. As shown in FIG. 1, the vehicle frame Q in the global frame is defined as Q=(p, θ)=((x, y), θ) through the local frame. Here p=(x, y) is the position of the local frame origin and θ the orientation of the local X-axis both measured in the global frame. Specifically, Q ref =((0, 0), 0) is called the reference frame. 
     The vehicle is manually driven starting from an initial vehicle frame Q 0 =(p 0 , θ 0 ) at time t 0 . The initial frame is known to the vehicle. The vehicle frame Q=(p, θ) moves continuously with the vehicle, and the origin p of the vehicle frame generates a motion trajectory as shown in FIG.  2 . This motion trajectory is discretely represented as a sequence (Q 0 , Q 1 , . . . , Q i , Q i+1 , . . . , Q n ) of vehicle frames at motion execution times, t 0 , t 1 , . . . , t i , t i+1 , . . . , t n . Each vehicle frame Q i =(p i , θ i ) at time t i  is shown by a tick in FIG. 2 (i=0, 1, . . . , n). The tangential orientation to the trajectory at any point is equal to the X-axis orientation of the vehicle frame at the point. The tick at p i  corresponds to the Y-axis of the vehicle frame Q i . The vehicle is in the stop state at the initial and final frames, Q 0  and Q n . 
     Now we demonstrate a method of computing a vehicle frame Q i+1  from the previous frame Q i  (i=0, 1, . . . , n−1), assuming Q i  is known. Notice that Q 0  is known. At the motion sampling time t i+1 , we assume that the vehicle can measure an incremental trajectory length Δs i  and vehicle orientation change Δθ i  generated during the motion-execution interval [t i , t i+1 ]. The vehicle has a system architecture shown in FIG. 3, comprising of a main vehicle subsystem and a motion control subsystem. The motion control subsystem executes the motor-control and motion-measurement tasks, and reports the incremental trajectory length Δs i  and vehicle orientation change Δθ i  to the main vehicle subsystem that executes the main algorithm described in this section. Detailed operations in the Motion Control Subsystem is described in Section [4]. The trajectory length Δs i  is positive or negative. If Δs i &lt;0, the vehicle has moved backwards manually. The vehicle orientation change Δθ i  is positive, negative, or equal to 0. 
     Noticing that the incremental vehicle trajectory from Q i  to Q i+1  in this period [t i , t i+1 ] is normally small compared with the vehicle size, we assume that the curvature in the period is constant, which is equal to the average curvature 
     
       
         κ i =Δθ i   /Δs   i . 
       
     
     Thus the incremental trajectory is a circular arc or a straight segment with this curvature κ i  (FIG.  4 ). Namely the path segment is a short straight line if κ i =0, or a short circular arc otherwise. The circular arc is counterclockwise if κ i &gt;0, and is clockwise if κ i &lt;0. 
     FIG. 5 is a figure made from FIG. 4 by moving the first vehicle frame Q i  into the reference frame ((0, 0), 0) keeping the geometrical relation between the two frames, Q i  and Q i+1 , unchanged. FIGS. 4 and 5 demonstrate a specific case where the circular arc is counterclockwise with κ i &gt;0. First we define an incremental transformation 
     
       
         ΔQ i =((Δ x   i   , Δy   i ), Δθ i ), 
       
     
     which is a transformation that transforms Q i  into Q i+1 . Let us show how to evaluate this incremental transformation. If Δθ i  is not equal to zero, then the radius r i  of the circular arc is 
     
       
           r   i =1/κ i   =Δs   i /Δθ i . 
       
     
     From FIG. 5, we can evaluate 
     
       
         Δ x   i   =r   i  sin Δθ i =(sin Δθ i /Δθ i )Δ s   i   
       
     
     
       
         Δ y   i   =r   i (1−cos Δθ i )=((1−cos Δθ i )/Δθ i )Δ s   i . 
       
     
     On the other hand, if Δθ i =0, the incremental trajectory is a straight segment and 
     
       
         Δ x   i   =Δs   i   
       
     
     
       
         Δ y   i =0. 
       
     
     As a result, the incremental transformation ΔQ i  is obtained as 
     
       
         Δ Q   i =((Δ s   i   , 0), 0)   
       
     
     
       
         Δ Q   i =(((sin Δθ i /Δθ i )Δ s   i , ((1−cos Δθ i )/Δθ i )Δ s   i ), Δθ i ) 
       
     
     if 
     
       
         Δθ i =0, 
       
     
     otherwise. This incremental transformation ΔQ i  transforms the vehicle frame Q i =((x i , y i ), θ i ) into Q i+1  using the following two-dimensional composition operator (*): 
     
       
           Q   i+1   =Q   i   *ΔQ   i =(( x   i   , y   i ), θ i )*((Δ x   i   , Δy   i ), Δθ i )=(( x   i   +Δx   i  cos θ i   −Δy   i  sin θ i   , y   i   +Δx   i  sin θ i   +Δy   i  cos θ i ), θ i +Δθ i ). 
       
     
     The trajectory length s i+1  from the start point p 0  to p i+1  is computed recursively by S i+1 =s i +Δs i  with an initial condition, s 0 =0. 
     [4] Incremental Motion Detection 
     In this section, we describe how the motion control subsystem shown in FIG. 3 computes the incremental trajectory length Δs i  and orientation change Δθ i . In this section only, we use Δs and Δθ to denote Δs i  and Δθ i  respectively for simplicity. As a sample wheel architecture for the vehicle, we take the differential-drive architecture, where two independently-driven wheels share the same axle as shown in FIG.  6 . In this wheel architecture, the incremental rolling distances, Δs R  and Δs L  at the right and left wheels can be computed as follows, knowing the right and left motor-encoder pulse counts, Δn R  and Δn L , in the same motion-control-execution period, the total number of pulses N in one rotation of the encoder, the reduction-gear ratio G, and the wheel radius D: 
       Δs   R =(Δ n   R   /N )(1 /G )π D   
     
       
           Δs   L =(Δ n   L   /N )(1 /G )π D   
       
     
     Since we assume that the vehicle made a constant-crvature motion in this period, the three trajectories by the vehicle frame origin, the right wheel, and the left wheel are all concentric circular arcs, or are parallel line segments. First we assume that the curves are circular arcs; i.e., Δθ not equal to 0. Let r and 2W be the distance from the reference point to the circle center C and the distance between the two wheels respectively. From FIG.  6 , 
     
       
         Δ s   R   +Δs   L =( r+W )Δθ+( r−W )Δθ=2 rΔθ= 2Δ s,   
       
     
     
       
         Δ s   R   −Δs   L =( r+W )Δθ−( r−W )Δθ=2 WΔθ.   
       
     
     Therefore, 
     
       
         Δ s =(Δ s   R   +Δs   L )/2,  (1) 
       
     
     
       
         Δθ=(Δ s   R   −Δs   L )/(2 W ).  (2) 
       
     
     Thus, the pair (Δs, Δθ) of the incremental trajectory length and vehicle orientation change are computed from the two values Δs R  and Δs L  using Equations (1) and (2) respectively. These equations are obviously correct even if the curves are straight segments, where Δs R =Δs L  and the curves are straight segments. This concludes the description of the task of a motion control subsystem. 
     Even if the vehicle uses other wheel architectures such as the tricycle or the car-lick architecture, the evaluation method of the two incremental-motion-related values is straightforward for an individual who is knowledgeable in this field. 
     [5] Motion-Data Recording 
     Now we are ready to record the motion data. The ith trajectory record A i  must include the trajectory length and vehicle frame such as: 
     
       
           A   i =( s   i   , Q   i ) 
       
     
     This motion record A i  is recorded in a memory at time t i . A trajectory data M is a sequence 
     
       
           M =( A   0   , A   1   , . . . , A   i   , A   i+1   , . . . , A   n ) 
       
     
     of trajectory records. 
     [6] Motion Reproduction in Playing-Back Mode 
     The vehicle plays back the original motion using the trajectory data, M=(A 0 , A 1 , . . . , A i , A i+1 , . . . , A n ) in its play-back mode. A method of reproducing the recorded motion is found, for instance, in U.S. Pat. No. 6,134,486. In this filed invention, when a path description is given, a vehicle is steered using the positional error, directional error, and curvature error. Notice the information on position and orientation is included in the vehicle frame Q i  in each motion record A i =(s i , Q i ). Although each curvature K i  is not directly contained in any motion record, it is calculated as 
     
       
         κ i Δθ i   /Δs   i =(θ i −θ i−1 )/( s   i   −s   i−1 ). 
       
     
     Thus the motion record M contains all the necessary and sufficient geometrical information to reproduce the manually generated trajectory. 
     [7] Sensor Data Recording 
     Furthermore, assume that a sensor or sensors are mounted on the vehicle that has the motion capacity described in the previous sections. An example of a sensor is an image sensor, a sonar, a laser range finder, or an infrared sensor. The relative position and orientation of a sensor on the vehicle should be generally described by a three-dimensional frame in the vehicle local frame rather than a two-dimensional one. For instance, the effects of sensors mounted at different heights may be different. Likewise, the effects of sensors mounted in a horizontal orientation and in a vertical one are obviously different. 
     A three-dimensional frame or transformation T is represented as 
     
       
           T =(( u, v, w ), (α, φ, ψ)), 
       
     
     where u is X-coordinate, v Y-coordinate, w Z-coordinate, α yaw (rotation about Z-axis), φ pitch (rotation about Y-axis), and ψ roll (rotation about X-axis). To deal with three-dimensional frames, a vertical Z-axis is added to the global frame with its origin on the ground. Namely, the set of points with z=0 is the ground surface. The two-dimensional vehicle frame Q=((x, y), θ) is changed into a three-dimensional one Q′: 
     
       
           Q ′=(( x, y,  0), (θ, 0, 0)). 
       
     
     A vertical Z-axis is added also to the local vehicle frame and its origin is set at the ground level. Suppose a sensor is mounted on a vehicle (FIG.  7 ). Its three-dimensional sensor frame R local to the vehicle frame is represented as 
     
       
           R =(( a, b, c ), (α, φ, ψ)). 
       
     
     The sensor&#39;s global frame S is obtained by the following three-dimensional composition: 
     
       
           S=Q′*R =(( x, y,  0), (θ, 0, 0))*(( a, b, c ),(α, φ, ψ))=(( x+a  cos θ− b  sin θ,  y+a  sin θ+ b  cos θ,  c ), (θ+α, φ, ψ)) 
       
     
     Let U be the data collected by the sensor. For instance, if it is a sonar, the data is merely a range value d. If it is an image sensor, the data is a two-dimensional intensity information. If it is a proximity sensor, the data is only a one-bit on-off information. An example of a sensor record B is a quadruple 
     
       
           B =( s, Q, S, U ), 
       
     
     which comprises of the trajectory length s, the vehicle positional information Q, sensor positional information S, and sensed data U itself. A sensor data is a sequence 
     
       
           P =( B   0   , B   1   , . . . , B   i   , B   i+1   , . . . , B   m ) 
       
     
     of sensor records. Notice that the function execution intervals for motion and sensing are not necessarily the same, and hence, the number of trajectory records in a trajectory data M and the number of sensor records in a sensor data P generated in a single teaching session may not be equal. If more than one sensor is mounted on the vehicle, a multiple number of sensor data are obtained in a single teaching session. 
     [8] Range-Finder Data Recording 
     In this section, we consider an embodiment where the sensor described in Section [7] is a range finder. A sonar is one of typical range finders. Suppose a range finder is mounted on a vehicle (FIG.  8 ). Its three-dimensional sensor frame R local to the vehicle frame is 
     
       
           R =(( a, b, c ), (α, φ, 0)), 
       
     
     as defined in the previous Section [7] except that the roll ψ=0, because of the nature of a range finder. The range finder&#39;s global frame S is obtained in a similar equation described in Section 7 as 
     
       
           S=Q′*R =(( x, y,  0), (θ, 0, 0))*(( a, b, c ), (α, φ, 0))=(( x+a  cos θ− b  sin θ,  y+a  sin θ+ b  cos θ,  c ), (θ+α, φ, 0)). 
       
     
     If the range finder detects an object with a range of d, the object frame in the range-finder frame is ((d, 0, 0), (0, 0, 0)). The best estimate V of the frame of the object in the global frame is obtained by the three-dimensional composition (FIG.  8 ): 
     
       
           V=S *(( d,  0, 0), ( 0, 0, 0))=(( x+a  cos θ− b  sin θ,  y+a  sin θ+ b  cos θ,  c ), (θ+α, φ, 0))*(( d,  0, 0), (0, 0, 0))= 
       
     
     
       
         (( x+a  cos θ− b  sin θ+ d  cos θcos(θ+α),  y+a  sin θ+ b  cos θ+ d  cos θsin(θ+α),  c+d  sin φ), (θ+α, φ, 0)). 
       
     
     This object frame is further added into the sensor record B 
     
       
           B= ( s, Q, S, U, V ). 
       
     
     to obtain a range-finder record. A range-finder data is a sequence 
     
       
           P= ( B   0   , B   1   , . . . , B   i   , B   i+1   , . . . , B   m ) 
       
     
     of range-finder records. If more than one range-finder is mounted on the vehicle, a multiple number of range-finder data are registered in one teaching session. 
     FIG. 9 shows an example set of positions of the object frame V in a range-finder data. In this specific experiment, the elevation φ was 0 and z becomes constant. Therefore, all the points are on a single horizontal plane. 
     [9] Another Embodiment 
     As opposed to the typical embodiment of the invention stated in Section [1], this invention can be embodied by a vehicle that has only one mode, a teaching mode. In this vehicle, a motion data obtained may be used for purposes other than reproducing the motion on the same or a similar vehicle. 
     Also, with this vehicle, a sensor record obtained may not be used for playing back with the same vehicle. For instance, the sensor data generated by a human-driven operation may be utilized for the generation of an abstract geometrical map of the world, but not for the vehicle&#39;s unmanned navigation. 
     Obviously many modifications and variations of the present invention are possible in light of the above teachings. It is, therefore, to be understood that the present invention may be practiced within the scope of the claims other than as specifically described.