# Patent

## Title
Celestial navigation system for an autonomous robot

## Abstract

A navigational control system for an autonomous robot includes a transmitter subsystem having a stationary emitter for emitting at least one signal. An autonomous robot operating within a working area utilizes a receiving subsystem to detect the emitted signal. The receiver subsystem has a receiver for detecting the emitted signal emitted by the emitter and a processor for determining a relative location of the robot within the working area upon the receiver detecting the signal.

## Background
RELATED APPLICATIONS
This application incorporates by reference in its entirety and claims priority to U.S. patent application Ser. No. 60/586,046, entitled “Celestial Navigation System for an Autonomous Robot,” filed on Jul. 7, 2004.


TECHNICAL FIELD
The present invention relates generally to robotic systems and, more specifically, to navigational systems for autonomous robots.
BACKGROUND
Automated robots and robotic devices are becoming more prevalent today and are used to perform tasks traditionally considered mundane, time-consuming, or dangerous. As the programming technology increases, so too does the demand for robotic devices that can navigate around a complex environment or working space with little or no assistance from a human operator.
Robotic devices and associated controls, navigational systems, and other related systems are being developed. For example, U.S. Pat. No. 6,594,844 discloses a Robot Obstacle Detection System, the disclosure of which is hereby incorporated by reference in its entirety. Additional robot control and navigation systems, and other related systems, are disclosed in PCT Published Patent Application No. WO 2004/025947, and in U.S. patent application Ser. Nos. 10/167,851, 10/056,804, 10/696,456, 10/661,835, 10/320,729, and 10/762,219, the disclosures of which are hereby incorporated by reference in their entireties.
Many autonomous robots navigate a working space by simply moving randomly until an obstacle is encountered. Generally, these types of robots have on-board obstacle detectors, such as bump sensors or similar devices, that register contact with an obstacle. Once contact is made, command routines typically direct the robot to move in a direction away from the obstacle. These types of systems, which are useful for obstacle avoidance, are limited in their ability to allow a robot to track its location within a room or other working environment. Other systems, often used in conjunction with the bump sensors described above, use an infrared or other detector to sense the presence of nearby walls, obstacles, or other objects, and either follow the obstacle or direct the robot away from it. These systems, however, are also limited in their ability to allow a robot to navigate effectively in a complex environment, as they allow the robot to only recognize when objects are in its immediate vicinity.
In more advanced navigational systems, a robot incorporates an infrared or other type of transmitter. This transmitter directs a series of infrared patterns in horizontal directions around the robot. These patterns are, in turn, detected by a stationary receiver, generally placed at or near a boundary of the working space, on a wall, for example. A microprocessor uses the information from the signals to calculate where in the working space the robot is located at all times; thus, the robot can truly navigate around an entire area. These types of systems, however, are best employed in working spaces where few objects are present that may interfere with the dispersed patterns of infrared signals.
These limitations of the above types of navigational systems are, at present, a hurdle to creating a highly independent autonomous robot, which can navigate in a complex environment. There is, therefore, a need for a navigational system for a robot that can allow the robot to operate autonomously within an environment that may be cluttered with a number of obstacles at or near the operational or ground level. Moreover, a navigational system that can be integrated with some or all of the above systems (the bump sensors, for example) is desirable. Such a navigational system should allow a robot to recognize where it is at all times within a working area, and learn the locations of obstacles therein.
SUMMARY OF THE INVENTION
In one aspect, the invention relates to a navigational system for an autonomous robot that includes a stationary transmitter for emitting at least two signals, the signals directed toward a surface remote from a working area, such as a wall bordering a floor (upon which a robot operates), or a ceiling located above the floor. The system also includes a receiver mounted to an autonomous robot containing various power, motive, and task-related components. The receiver detects the two signals emitted by the emitter, and a processor determines the location of the robot within the working area based upon the received signals. Generally, the signals directed to the remote surface are infrared signals, but other embodiments are also possible. The robot detects the signal energy reflected from the ceiling and, by calculating the azimuth and elevation of the signals relative to the robot, can determine its location.
In another aspect, the invention relates to a method of control for an autonomous robot including the steps of: transmitting a signal from a stationary emitter to a surface remote from a working area; detecting the signal using a receiver integral with an autonomous robot; and directing a movement of the autonomous robot within the working area, the movement based at least in part upon detection of the signal.
In yet another aspect, the invention relates to a method of control for an autonomous robot including the steps of: transmitting at least two signals from a stationary emitter to a surface remote from a working area; detecting the signals using a receiver integral with an autonomous robot; and determining a location of the autonomous robot within the working area, the location based at least in part upon detection of the signal.
In still another aspect, the invention relates to a signal transmitter for providing navigational markings for use by an autonomous robot including: a power source; and a modulated signal emitter, wherein the signal emitter sequentially emits a first coded signal and a second coded signal, the first signal and the second signal directed to a surface remote from a working area of the robot.
In still another aspect, the invention relates to a receiver for detecting emitted navigational markings, the receiver mountable to an autonomous robot, the receiver including: a lens including a plurality of photodiodes, each photodiode oriented orthogonally to each adjacent photodiode, each photodiode adapted to detect a signal reflected from a remote surface; and a processor for processing the signals received from the plurality of photodiodes, the processor including a plurality of data outputs.
In another aspect, the invention relates to a navigational control system for an autonomous robot including a transmitter subsystem having a stationary emitter for emitting at least one signal, and an autonomous robot operating within a working area, the autonomous robot having a receiving subsystem. The receiving subsystem has a receiver for detecting the signal emitted by the emitter and a processor for determining a relative location of the robot within the working area upon the receiver detecting the signal. In certain embodiments of the above aspect, the emitter includes a modulated signal emitter and may sequentially emit a first coded signal and a second coded signal. In other embodiments of this aspect, the receiver includes a plurality of photodiodes, and may include four or five photodiodes. In some embodiments, at least four photodiodes are arranged in a substantially planar orientation, and may be oriented orthogonally to each adjacent photodiode. In certain embodiments, the fifth photodiode is oriented substantially orthogonally to each of the four photodiodes. Some embodiments orient at least one of the photodiodes in a direction corresponding to a reference direction of travel of the robot.
In other embodiments of the above aspect, the processor further includes a navigational control algorithm, and may direct a movement of the robot within the working area upon the receiver detecting the signal. In certain embodiments, the emitter emits at least two signals, and may be located on a robot docking station. In certain embodiments, the signal includes light having at least one of a visible wavelength and an infrared wavelength. Alternative embodiments direct at least one signal at a surface remote from the working area.
In another aspect, the invention relates to a method of control for an autonomous robot, including the steps of transmitting a signal from a stationary emitter, detecting the signal using a receiver integral with the robot operating within a working area, and determining a relative position of the robot in the working area based at least in part on the detected signal. The method may include the step of directing a movement of the robot within the working area, the movement based at least in part upon the position of the robot. Certain embodiments may include the step of storing a position of the robot and/or the step of comparing the position of the robot to a stored position.
Other embodiments of the above aspect include the step of directing a movement of the robot within the working area, the movement based at least in part on the stored position. In certain embodiments, the relative position of the robot is based at least in part on at least one of an elevation and an azimuth of the detected signal. In other embodiments, the transmitted signal is directed to a surface remote from the working area.



BRIEF DESCRIPTION OF THE DRAWINGS
The drawings are not necessarily to scale, emphasis instead generally being placed upon illustrating the principles of the invention. In the following description, various embodiments of the present invention are described with reference to the following drawings, in which:
FIG. 1 is a schematic view of a navigational system for an autonomous robot in accordance with one embodiment of the invention;
FIG. 2 is a schematic view of a navigational system for an autonomous robot in accordance with another embodiment of the invention;
FIG. 3A is a side view of a stationary emitter in accordance with one embodiment of the invention;
FIG. 3B is a side view of a stationary emitter in accordance with another embodiment of the invention;
FIG. 4A is a side view of a infrared receiver for an autonomous robot in accordance with one embodiment of the invention;
FIG. 4B is a top view of the infrared receiver of FIG. 4A;
FIG. 4C is a side view of a infrared receiver for an autonomous robot in accordance with another embodiment of the invention;
FIG. 5A is a representation of the control system of an infrared receiver for an autonomous robot in accordance with one embodiment of the invention;
FIG. 5B is a flowchart of a signal detection and localization program in accordance with one embodiment of the invention;
FIG. 6 is a top view of a navigational system for an autonomous robot in accordance with another embodiment of the invention; and
FIGS. 7-14 are schematic circuit diagrams of infrared receivers and transmitters for a navigational system in accordance with one embodiment of the invention.



DETAILED DESCRIPTION
FIG. 1 is a schematic view of a navigational system 10 for an autonomous robot 12 in accordance with one embodiment of the invention. The components of the system 10 include, in this embodiment, a transmitter 20, a charging or base station 22, and a robot 12 that operates in a room or other similar working area 14. In this case, the working area 14 is a floor of a room, bounded at least in part by walls 16. Borders of a ceiling 18 also intersect the walls 16 and are remote from the working area 14. The depicted transmitter 20 includes two emitters 22, 24. In this embodiment, the base station 22 may include an emitter 26 as well. In various embodiments, any combination or quantity of emitters may be used on the base station 26, or transmitter 20, or both. The robot 12 includes an on-board microprocessor, power and drive components, task-specific components (dirt sensors, vacuums, brushes, etc.), and at least one receiver, such as a infrared receiver 28. The robot 12 may also include certain buttons, switches, etc. for programming the robot, or such instructions may be directed by a remote control (not shown) or a personal computer (not shown). Depending on the application, certain components may be removed from the disclosed system 10, or other components may be added. Also, for simplicity, this disclosure will describe vacuuming as a demonstrative task of the autonomous robot 12. It will be apparent, though, that the navigation system disclosed herein has wide applications across a variety of robotic systems. For example, a robot may be used for floor waxing and polishing, floor scrubbing, ice resurfacing (as typically performed by equipment manufactured under the brand name ZAMBONI®), sweeping and vacuuming, unfinished floor sanding and stain/paint application, ice melting and snow removal, grass cutting, etc. Any number of task-specific components may be required for such duties, and may each be incorporated into the robot, as necessary.
The transmitter 20 directs at least two infrared signals 22a, 24a from emitters 22, 24 to a surface remote from the working area 14 upon which the robot 12 operates. The depicted embodiment directs the signals 22a, 24a to the ceiling 18, but it may also direct the signals 22a, 24a to a portion of a wall 16, or both. The signals 22a, 24a may be directed to any point on the remote surface, but directing the signals as high as possible above the working area 14 is generally desirable. Directing the signals to a high point allows them to be more easily detected by the robot 12, as the field of view of the robot receiver 28 is less likely to be blocked by a tall obstacle (such as a high-backed chair or tall plant). In this disclosure, the regions of contact 22b, 24b of the signals 22a, 24a on the remote surface will be referred to as “points,” regardless of the size of the intersection. For example, by using a collimator in conjunction with the emitters (described below), the points of intersection 22b, 24b of the signals 22a, 22b can be a finite area with the signal strongest at approximately central points 22c, 24c. In alternative embodiments, central points 22c, 24c represent focused laser or other signals that may be used for navigation.
In one embodiment of the transmitter, the signals 22a, 24a are directed towards a ceiling 18, at two points 22c, 24c, forming a line proximate and parallel to the wall 16 upon which the transmitter 20 is located. Alternatively, and as depicted in FIG. 1, the signals 22a, 24b may be directed out away from the wall 16, at an angle of approximately 5° or more, to avoid any interference with objects such as pictures secured to or hung from the wall 16. Generally, the signals 22a, 24a are transmitted at a known angle θ between the two signals 22a, 24a; in one such embodiment, θ equals approximately 30°, but other angles are contemplated. This angle θ may be set at the time of manufacture or user-defined based on particular applications or other requirements. By setting the angle θ to a known value, the distance S between the signals 22a, 24a at the point of contact 22b, 24b with ceiling 18 may be determined, provided the heights of the ceiling h1, h2 at the points of contact 22b, 24b are known. Note that when used on a flat ceiling 18, as depicted, h1 equals h2.
In the embodiment depicted in FIG. 1, base station 22 emits signal 26a, which may serve as another or optional signal that the robot 12 may utilize. Here signal 26a is directed toward a wall 16, so that the point of contact 26b is high enough to avoid any objects that may obstruct the robot's 12 field of view. Central point 26c (or laser point) contacts the wall 16 at height h3.
As the robot 12 moves within a working area 14, it detects the signals 22a, 24a emitted by the transmitter 20 as energy bouncing or reflecting off the diffuse ceiling surface 18. In an alternative embodiment, visible points may be used in place of infrared points. An on-board camera may replace the infrared receiver in detecting either infrared or visible points. The robot's microprocessor converts the signals 22b, 24b sensed by the receiver 28 into bearings from the robot 12 to the signals 22b, 24b. The microprocessor calculates the representative elevation angles ε1, ε2 and the azimuths α1, α2 of the signals to determine the location of the robot 12 within the working area 14. In this embodiment, the azimuths α1, α2 are measured utilizing the “forward” direction of movement M of the robot 12 as a datum, but any suitable datum can be used. By calculating the elevation angle and azimuth from the robot 12 to the two signals 22b, 24b, the robot 12 is able to locate itself within a room with accuracy.
FIG. 2 depicts another embodiment of a navigational system 110 for an autonomous robot 112 in accordance with the invention. Here, a robot 112 moves in a working area, in this case a floor 114. A transmitter 120 is installed at the top frame of a doorway 132 between two rooms 136, 138. Similar to the embodiment depicted in FIG. 1, the transmitter 120 is installed at a known distance h4 above work area 114. In other embodiments, the transmitter 120 may be installed at the height of ceiling 118. The transmitter 120 may also be recessed within the door frame 130 or ceiling 118 to reduce its profile and limit the impact on architectural aesthetics of a room. Additionally, the transmitter 120 may be disguised to resemble a cover plate for a sprinkler head, speaker, or other device.
The transmitter 120 emits two signals 122a, 124a (depicted graphically by a plurality of arrows) into the two rooms 136, 138. The signals 122a, 124a may be configured to not overlap each other, therefore providing a distinct signal on each side of the door centerline 130. In other embodiments, overlap of the signals 122a, 124a may be desired. The robot 112 includes a receiver 128 that has a field of vision 134. The emitted signals 122a, 124a are detected by the receiver 128 when the robot's field of vision 134 intersects the signals 122a, 124a. Similar to the embodiment in FIG. 1, the robot calculates the azimuth and elevation to the transmitter 120 to determine its relative location. Similar to the embodiment described above, by detecting only one signal, the robot 112 can calculate a bearing to the transmitter 120. Accordingly, the transmitter 120 functions as a beacon for the robot 112 to follow and, if the signal is coded, the robot 112 may determine which room of a number of rooms it is located in, based on the coded signal. In this regard, the robot 112 is able to determine its relative location, on a room-by-room basis, as opposed to determining its location within a room.
FIG. 3A shows a transmitter 20 in accordance with one embodiment of the invention. The depicted transmitter 20 is plugged into a wall outlet 40 for convenience and unobtrusiveness, but other transmitters and locations may be utilized. For example, the transmitter may be placed anywhere within a room, provided it has an available power source. Battery-powered transmitters are particularly versatile, in that they may be located remote from a wall outlet. Such battery-operated transmitters could be unobtrusively located above window or door frames, or on top of tall furniture such as dressers or bookshelves. Optionally, the transmitter may include a visible signal option, aligned with the emitted signals, allowing a user to direct the signals to particular locations when the device is initially installed. Additionally, more than one transmitter may be used, if desired. Such a system could include communication capability between the various transmitters, for example to ensure that only one signal or a subset of signals are emitted at any given time.
The transmitter 20 in FIG. 3A includes a housing 42, constructed of plastic or like material. The transmitter 20 may include a power receptacle 44 so the outlet that the transmitter 20 utilizes for power is still available for other uses. (In this figure, the transmitter 20 is shown cut-away above the line L.) The transmitter includes two emitters 22, 24, set within the housing 42. Alternatively, the emitters 22, 24 may be flush with or extend beyond the housing 42. Setting the emitters 22, 24 within the housing 42 allows the signals 22a, 24a to be directed by utilizing collimators 22e, 24e. The collimators 22e, 24e may be formed within the housing 42 or may be discreet components within the housing 42. Alternatively, the collimators 22e, 24e may be secured to the outside of the housing 42. In alternative embodiments, lenses 22d, 24d may be included, with or without collimators 22e, 24e to focus and direct the signals 22a, 24a. These basic manufacturing considerations can also be adapted for emitters that are utilized on charging or base stations as well. One or more emitters on a base station can serve as an additional point of navigation for the robot within the room, or may simply aid the robot in locating the base station.
FIG. 3B depicts a transmitter 120 for use with the navigational system 110 depicted in FIG. 2. The transmitter 120 is secured to the underside of an upper cross member of the door frame 132, but may also be recessed therein or secured to or recessed within ceiling 118. The transmitter 120 includes two emitters 122, 124. Other embodiments of the transmitter 120 may include more than two emitters or just a single emitter, depending on the application. By utilizing two emitters the transmitter can direct signals into two different rooms, generally on either side of the centerline 130 of the door frame 132. This allows a robot to distinguish in which room it is presently located. More than two emitters may be utilized with collimators 122e, 124e to distinguish different areas within a given room. Such configuration allows the robot to sense its relative location within a room and adjust its cleaning behavior accordingly. For example, a signal could mark an area of the room that the robot would likely get stuck in; the emitted signal could allow the robot to recognize the area and accordingly not enter it, even though it might otherwise be able to do so unimpeded. Alternatively, or in addition, the different signals could mark areas that require different cleaning behaviors (due to carpeting or wood floors, high traffic areas, etc.).
Turning back to FIG. 3B, the emitters may be installed flush with or extend beyond the housing 142. Setting the emitters 122, 124 within the housing 142 allows the signals 122a, 124a to be directed by utilizing collimators 122e, 124e. The collimators 122e, 124e allow the signals 122, 124 to be directed to two sides of the centerline 130 of doorframe 132, without any signal overlap, if so desired. The collimators 122e, 124e may be formed within the housing 142 or may be discreet components within the housing 142. Alternatively, the collimators 122e, 124e may be secured to the outside of the housing 142. In alternative embodiments, lenses 122d, 124d may be included, with or without collimators 122e, 124e, to focus and direct the signals 122a, 124a. 
In one embodiment of the invention, each signal (regardless of emitter location or number of signals) is modulated at 10 kHz, and is coded with an 8-bit code to serve as a unique identifier of the signal, thus preventing the robot from confusing one point with another. Accordingly, more than two signals may be employed to increase the accuracy of the robot's calculations regarding its location within a working area. As noted above, using only one emitter allows the robot to take a heading base on that signal. Using more than two points enables the robot to continue navigating, if fewer than all of the points are detected (either due to failure of a signal transmission or if the robot moves to a location where fewer than all the points are visible).
In one embodiment, the transmitter pulses the coded signals as follows. After an initial synchronization pulse, the first signal at 10 kHz is emitted for 100 ms. This provides a sufficient time period for the receiver and the processor in the robot to calculate azimuth and elevation angles, as discussed in detail hereinbelow. So that the robot can also determine which signal is being received, the transmitter next pulses a series of five bits, each for 10 ms. The five bits include two start bits, for example a zero and a one, followed by a unique three bit identifier to identify that particular signal or point. After a 100 ms delay, the transmitter repeats the sequence for the second signal or point. By changing the modulation frequency and/or the identifier, the second signal or point can be uniquely distinguished from the first. Any number of unique signals can be transmitted and identified, in this manner. After the series of signals are transmitted, the transmitter waits a substantially longer period of time, for example on the order of a random one to two second interval, before repeating the transmitting sequence, starting again with the first signal. The length of time for each transmission is merely exemplary, and may be varied based upon user preference, application, or other needs. Additionally, the signals may be modulated at the same or different frequencies.
FIG. 4A depicts a side view of a receiver 228 for use with an autonomous robot, the receiver 228 surface mounted on the robot housing 212. FIG. 4B is a top view of the same receiver 228. The receiver 228 includes an outer shell or housing 244 of a generally translucent or transparent, high-impact plastic or like material. Four photodiodes 246a, 246b, 246c, and 246d are installed in an orientation in the housing 244 generally corresponding to four adjacent sides of a cube. Accordingly, each photodiode is generally perpendicular to the two photodiodes on either side of it and parallel to the photodiode opposite it. Located generally above the plane of orientation of photodiodes 246a-246d is a fifth photodiode 246e. At least one photodiode, in this case photodiode 246a, is oriented toward a direction of forward movement M of the robot. The photodiodes are connected via control wiring and other components to the robot's microprocessor and related systems. Installing the receiver 228 on the top of the housing 212 provides the robot with a very wide field of view. As depicted, the field of view δ1 for the horizontally oriented photodiode 246e is extremely wide. Depending on the sensitivity of the photodiode 246e, the thickness or translucence of the plastic, and other factors, the field of view δ1 may approach or exceed 180°. Similarly, due to the orientation of photodiodes 246a-246d, their field of view δ2 approaches near vertical in the direction upwards from the robot housing 212 and is limited below only by the robot housing 212 itself. There is overlap between the fields of view δ2 in the longitudinal plane, as depicted in FIG. 4B.
As apparent from FIG. 4A, there is overlap between the fields of view δ1 and δ2, allowing the robot to readily detect signals within a space in which the robot is operating. The overlap creates a total field of view for the receiver that approaches the entire volume of the room above the robot housing. Accordingly, this embodiment of the receiver 212, is particularly well-suited to the embodiment of the navigation system depicted and described in FIG. 2, where a signal is projected into an entire room. Of course, this receiver 228 could also be used with the system depicted in FIG. 1. Although installing the receiver closer to or above the top surface of the robot provides for a wider range of view, this configuration increases slightly the height of the robot and can limit robot travel beneath certain obstacles such as couches, low tables, or the like.
FIG. 4C depicts an embodiment of the receiver 328 installed below the surface of the robot housing 312. The photodiodes (as a group, 346) are installed in a void 350 or other cavity below the surface of the robot housing 312. A translucent or transparent plastic cover 312a fits over the void and photodiodes 346. The cover 312a may be secured to the housing 312 with screws, press-fit connections, or other connectors. Alternatively, the cover 312a may be simply set in place without connectors, allowing for easier access to the photodiodes 346 for service or replacement. This lower profile version reduces or eliminates the risk associated with the surface mounted receiver described above getting stuck below obstacles.
The construction of this receiver 328 is similar to that of FIG. 4A. Four of the photodiodes 346a-346d are installed orthogonal to each other, facing a predefined direction on the robot (i.e., front, back, right, and left). The fifth photodiode 346e is installed orthogonal to the other four, facing directly up from the top of the robot. Because the photodiodes 346 are set within the housing 312, the receiver's overall field of view δ3 is limited somewhat. In this embodiment, δ3 equals approximately 120°. The field of view δ3 may be wider or narrower depending on the depth of installation below the surface of the robot housing 312. Alternatively, the field of view δ3 may also be modified by utilizing a cover 312a having particular effects on signal transmission, such as a fish-eye lens or the like.
One embodiment of the control schematic 560 for the receiver 528 is depicted in FIG. 5A. The infrared receiver 528 includes a number of independent photodiodes (generally, 546), pre-amplified and multiplexed into a single microprocessor 562. As described above, four of the photodiodes 546a-546d are installed orthogonal to each other, facing a predefined direction on the robot (i.e., front, back, right, and left). The fifth photodiode 546e is installed orthogonal to the other four, facing directly up from the top of the robot. Once a reflected signal is received by a photodiode 546, the receiver 528 determines the frequency of modulation of the signal, the identity sequence, if any, and the envelope of received energy (i.e., the demodulation of energy). These values are sent to the microprocessor 562 that, in turn, calculates the location of the robot relative to the signals and the identities of the signals. Additionally, if only a single point is detected by the receiver 528 (if, for example, the robot's view of the second signal is obstructed), the robot may use this point as a heading. By following this heading, the robot can move within the work area until the second point is detected.
In operation, the receiver first measures the “noise floor,” the amount of infrared energy present in the space in which the robot is located, which it sets as the threshold value. Generally, this value is the average of the values for each photodiode. Any subsequent measurement above this threshold value triggers an event (e.g., a calculation of point azimuth and elevation). The receiver then measures the modulation frequency again, searching for an expected increase at 10 kHz (i.e., the frequency of the initial synchronization signal transmitted by the transmitter). If a 10 kHz frequency increase is detected, the robot recognizes this as an emitted navigational signal. The robot then measures the amplitude of the reflected point on all five photodiodes to determine an average value. This value is then compared to a list of signal frequencies to determine which of the signals has been detected. Alternatively, any detected identity sequence associated with the signal can be compared to a list of transmitter codes or signal IDs stored in a lookup table in the robot processor memory.
The on-board microprocessor uses the amplitude value to determine the azimuth and elevation of the received signals, that it then uses to determine its location within a working area. To determine the azimuth, the microprocessor enters the values of the two strongest readings from the four side photodiodes into an algorithm. The algorithm takes the ratio of these two readings to determine the azimuth angle. For example, if the two strongest readings from two photodiodes are equal, the algorithm recognizes that the point is located at an azimuth angle that is directly between the two photodiodes (i.e., at 45 degrees). In a similar algorithm, the amplitude value measured from the strongest side photodiode and the amplitude value measured from the top-facing photodiode value are used to determine the elevation of the signal. These values are then stored in the robot's memory for future reference.
Once the receiver has detected at least two points, and determines the azimuth and elevation of each point, it determines its location within the working space. A triangulation algorithm based on the known ceiling height and the azimuth and elevation of the two detected points allows the processor to determine where in the working space the robot is located. Over time, the values of elevation and azimuth between each coded point and specific locations of the robot within the workspace are stored in the robot's memory, creating a map of the environment in which the robot operates.
In a specific embodiment, the navigation system 200 depicted in FIG. 5B uses an angle-based localization system. Values corresponding to elevation and azimuth are determined by synchronously comparing average amplitudes from the number of detectors arranged on the robot. Of the five detectors, four are arranged in a plane and are angularly spaced by 90° increments. The fifth detector is in the center of the aforementioned four-detector array and aimed so that it is orthogonal to every detector, directed vertically from the robot. Together, this five-element array has a full or near-full hemispherical field of view.
In the embodiment depicted in FIG. 5B, all five detectors monitor for amplitude (Step 705) until an amplitude that crosses a preset threshold is detected (Step 710). After the amplitude on any detector crosses the preset detection threshold, the frequency of the signal on the strongest detector is measured and compared against known transmit frequencies (Step 715). If the measured frequency is one of the known transmit frequencies (Step 720), the next step in the detection process is executed. If the signal is not a known transmit frequency, the detection process is aborted (Step 725) and the signal detected is declared to be “out of band.” Once an “in band” frequency is detected, a time-averaged amplitude of each photodetector is measured, converted to a binary number, and stored for later processing in a microprocessor memory (Step 730). Upon storing the five numerical values (one for each photodiode), the azimuth angle is determined.
Of the four detectors that reside in a single plane, the values of the two strongest signals detected are used to form a ratio to determine the azimuth angle (Step 735). The ratio of second-strongest signal over the strongest signal is either compared to a look-up table or inserted into a mathematical equation to determine an azimuth angle output. Both the look-up table and the equation represent the overlap of the received sensitivity patterns of two orthogonal detectors with known sensor responses. In this embodiment, the photodetector output is modeled as a fourth-order Gaussian response to angle off of “boresight,” a term that generally refers to a vector that is orthogonal to the semiconductor die in the detector package.
To calculate elevation, the strongest signal from azimuth calculation (i.e., the denominator of the ratio) must first be normalized, as if it were on boresight of the respective detector (Step 740). For example, if the azimuth has been determined to be 10° off of boresight from a given detector, that 10° angle is entered into a look-up table or equation that describes the sensor response of any single photodetector. At zero degrees, the output of this look-up table/equation would be 1.00000. As the angle deviates from zero degrees, the output drops to some fraction of 1.00000 (the normalized value at boresight). For example, if a value of 10° is entered into said equation, the output of this operation may be 0.99000. The denominator of the azimuth ratio is then divided by this fractional value in order to scale up, or “normalize,” that value to what it would be if the azimuth were actually zero degrees. This normalized value is then stored in memory, and elevation may be determined.
To calculate elevation, the normalized output from the previous step is used to produce a new ratio with the output from the upward-looking (fifth) detector, such that the numerator is the second-strongest of the two values and the denominator is the strongest of the two values (Step 745). This ratio is then entered into the same look-up table or equation from the step above (used to calculate azimuth), thus outputting an elevation angle.
Benefits of this type of navigation system are numerous. As the robot moves about a working area, measuring the azimuth and elevation of the various points detected, the robot can create a map of the area, thus determining its location within a given space. With this information, the robot can fuse data from all of its on-board sensors and improve cleaning or other task efficiency. One way it can do this is to create a map where the high-traffic areas in a house or other building are located (as indicated by readings from the dirt sensor, for example). The robot would then clean the areas it identified as high traffic (and therefore, often dirty) each time it passes over that area, whether directed to or not. The robot may also improve its cleaning function by merging the output from the wheel drop, stasis, bumper, and wall-following sensors to roughly mark areas of entrapment, or where large obstacles exist, so that those areas can potentially be avoided in future runs.
Another method of improving cleaning efficiency involves selectively programming the robot to clean particular areas, as detailed below. For example, a personal computer or remote control may be used to control the autonomous robot. Although the robot can operate without operator intervention, an operator would first set up the robot, or may wish to direct the robot to operate in particular areas or at particular times. For example, by using a number of transmitters in various rooms on one floor of a house, an operator may be able to direct the robot to clean a number of specific rooms at a certain time. The operator could select, in the control program field of the computer program, the living room, family room, bathroom, and kitchen areas for selected cleaning. Once commanded (either immediately or on a predefined schedule), the robot would be signaled to begin its cleaning cycle. The robot undocks from its base/charging station and begins cleaning the closest room on the programmed list. It recognizes this room and can differentiate it by the coded group of infrared points on the ceiling or the coded signal emitted in the room. After the first room is cleaned, the robot checks its level of power, and if needed, returns to its charger for additional charging. In order to return to the charger, in one embodiment the robot can follow the point or points on the ceiling back to the base station. After charging is complete, the robot traverses the area roughly back to the place it left off and resumes cleaning. This sequence of events continues until all of the programmed rooms have been cleaned. Alternatively, the selection of particular areas to clean could be made by remote control or by pressing buttons on a control panel located on the base station. By using a personal computer, however, multiple transmitters could communicate with each other and with the base station via power lines using HOME GENIE®, ECHELON®, or equivalent technology.
An alternative embodiment is depicted in FIG. 6, where a robot uses a number of signals for headings to move from room to room. Robot 612 is moving M within room A when its power level drops below a predetermined level, requiring the robot to return to is base charging station 622. Upon crossing the predetermined power level, the robot's receiver 628 searches for a signal from a nearby emitter. As the robot is located in room A, it detects the signal 622a emitted from transmitter 620a and, using the signal 622a as a heading, moves directly for that signal 622a. 
Alternatively, the robot 612 may emit its own coded pulse, to determine if any transmitters are in the area. This coded pulse could “awaken” sleeping or otherwise dormant transmitters, which would then begin their own emission cycle. Alternatively, the pulse may be some audible or visual signal such as a distinct beep, buzz, or visual strobe. Note that this pulse need not be within the field of view of the transmitter.
The robot 612 will continue to move toward signal 622a until one of several events happens at or near doorway 632a. In the first event, the robot may determine, based on readings from its photodiodes, that it is directly under the transmitter 620a. In the second event, the robot 612 may sense a second signal 624a, that may overlap the first detected signal 622a. This event would occur if the configuration of the emitters, collimators, etc., as described in more detail above, provided overlapping signal patterns between signals 622a and 624a. In a third event, robot 612 may sense a signal from an entirely different transmitter, in this case signal 622b from transmitter 620b. Other events are also contemplated, as suitable for the particular application. The occurrence of the event presents the robot 612 with any number of behavioral, functional, or other options. For example, each coded signal may serve as a unique marker for a different working space. Upon detecting the unique signal associated with a particular working space, the robot may alter its cleaning function. If room A is carpeted but room B is uncarpeted, the robot may adjust its cleaning as it moves from room A to room B. Alternatively, if room B is a known high traffic area and the robot has sufficient power available, the robot 612 may spend a period of time cleaning room B before continuing its return to base 622. Upon detecting a second signal (in this case, signal 622b) the robot may completely disregard the first signal 622a received when the return to the base station 622 began. Using new signal 622b as a heading, it begins moving toward that signal 622b. The robot 612 may also check its battery level at each event, storing that value in its microprocessor. Over time, the robot will have created a table of battery levels at each event (and battery level change from event to event), and be able to accurately determine precise battery power remaining at each transmitter location.
Once the robot has been moving in room B (shown as 612′ in phantom), it will eventually determine, based on battery level, time, or other factors, to follow the heading provided by signal 622b, and continue its return to its base station 622. The robot 612 will follow the heading until an event occurs at or near doorway 632b. Again, the event may be detecting a strength of signal 622b, indicating that the robot is directly below the transmitter, detecting an overlap signal from 624b, or detecting a new signal 622c. The robot 612 may again perform any of the behaviors described above, check and store its battery level, change cleaning characteristics, etc.
Once in room C, the robot 612′′ may again, as required, begin to follow the heading provided by signal 622c. Again, at or near doorway 632c to room D, an event may direct the robot to perform any number of behaviors. Alternatively, the robot may move directly to charging station 622, guided by emitted signal 626 or some other signal or program.
During its return to base station, as the robot 612 moves from room A to room B to room C and so on, it detects and stores the information about each coded signal that it detects along its route. By storing this information, the robot creates a map, using the coded signals as guideposts, allowing it to return to its starting location in the future. After charging, the robot can return to the room it was working in prior to returning to its base, by comparing the detected signals to those stored in its memory.
FIGS. 7-9 depict schematic circuit representations in one embodiment of various components of an infrared signal transmitter, namely an AC-DC converter, a microcontroller and support circuitry, and LED drivers. More specifically, FIG. 7 shows an electronic circuit that takes 120V AC/60 Hz line voltage and converts it to a regulated +5VDC supply. This supply is used to power the microcontroller and associated circuitry of the transmitter, depicted in FIG. 8. In addition to the power conversion, this circuit also provides an isolated digital logic signal to the microcontroller, whenever a “zero-crossing” in the AC line input is detected.
FIG. 8 includes the transmitter microcontroller and support circuitry (i.e., a clock oscillator and an in-circuit serial programming port). In addition, there is a circuit that allows a user initiated button press to project visible light from a pair of LEDs, co-located with the pair of IR LEDs, onto the remote surface for the purpose of assisting the user in aiming the infrared signal points.
FIG. 9 depicts two channels of infrared LED driver. Each driver controls a preset constant current into a single IR LED, that then emits near-infrared light that is collimated by an external lens and projected onto the remote surface. Each LED is modulated and can be pulse-coded independently of the other. This allows the microcontroller in the robot to discern between the different transmitter signals, to determine which detected signal is which.
FIGS. 10-14 depict schematic circuit representations in one embodiment of various components of the robot mounted infrared receiver, namely DC-DC linear power converters, a five channel preamplifier, a multiplexer and programmable tuned amplifier, detectors, and a microcontroller and associated peripherals. More specifically, FIG. 10 depicts two independent linear voltage regulators. One of the regulation circuits is switched ON-OFF via microcontroller control, in order to conserve battery power during a sleep mode.
FIG. 11 depicts five independent preamplifiers, that convert respective photodiode output currents into voltages of much larger magnitudes. Each preamplifier is built using an operational amplifier in a transimpedance topology. This is so that the preamplifiers can be configured with low-noise. Also, there is a novel, active feedback circuit, that is used to null out large photodiode current offsets caused by exposure of the circuit to sunlight and other strong low-frequency light sources.
FIG. 12 is a multiplexer and programmable tuned amplifier for the receiver. This circuitry can be functionally segregated into three functional blocks. The first block is a multiplexer, that receives signals from the five photodiode preamplifiers and outputs one of them to a programmable attenuator, as commanded by the receiver's microcontroller. The second block is the programmable attenuator, that is used to reduce the overall receiver gain, to deal with the enormous dynamic range of received signals. As depicted herein, there are two digital inputs from the microcontroller, which permits four discrete gain levels to be selected. The third block is a tuned, band-pass amplifier, that provides the bulk of the voltage amplification to signals which fall within the circuit's pass-band.
FIG. 13 depicts the two detectors used in the receiver. The first detector is a rectifying, envelope detector with integral voltage gain. This detector is used to strip the modulation frequency and provide the signal envelope to the microcontroller's analog-to-digital converter. The envelope is used the by microcontroller to determine the magnitude of the received signal. The second detector is a voltage comparator, that is used to square up the receive pulses and convert them to CMOS logic level, thereby allowing the microcontroller to extract digital data from the receive signals.
Lastly, FIG. 14 illustrates the microcontroller and its peripherals. The peripherals include a clock oscillator, ICSP port, voltage supervisor/reset generator, and RS-232 level serial port for interfacing with a host personal computer or a main robot processor.
Accordingly, the navigational system is operationally very robust and is adapted to compensate for substantial variances in infrared energy. For example, if the robot is operating in an environment with high base infrared readings (such as a space with a large number of fluorescent lighting fixtures or windows that allow entry of sunlight), the robot distinguishes the infrared signals generated by the transmitter from the infrared noise present in the space. Similarly, the receiver distinguishes between other off-band signals, such as infrared remote controls. In such cases, establishing an initial threshold value of infrared energy and emitting a predefined, known, modulating infrared signal from the transmitter overcomes these disturbances. Additionally, the transmitter can be tuned to emit a sufficiently strong infrared signal to accommodate surfaces with varied reflectivities.
While there have been described herein what are to be considered exemplary and preferred embodiments of the present invention, other modifications of the invention will become apparent to those skilled in the art from the teachings herein. The particular methods, configurations, and geometries disclosed herein are exemplary in nature and are not to be considered limiting.

## Claims

1. A navigational control system for a mobile robot operating within a working area, the navigational control system comprising:
a transmitter disposed within a working area and comprising a stationary emitter configured to direct first and second signals, modulated to be different from one another, onto a remote surface above the working area, such that the first and second signals are reflected from spaced apart positions on the remote surface; and
a receiving subsystem disposed on the mobile robot and comprising:
a receiver installed at a top surface of the mobile robot and directed generally upward, the receiver including at least four discrete photodiodes arranged to face in different directions and configured to generate respective response signals responsive to the reflected signals; and
a processor connected to the receiver and configured to
determine a first angle associated with the first reflected signal, from relative amplitudes of the response signals from the photodiodes in response to the first signal as reflected off of the remote surface, to
determine a second angle associated with the second reflected signal, from relative amplitudes of the response signals from the photodiodes in response to the second signal as reflected off of the remote surface, and to
determine a location of the robot within the working area relative to the reflected signals, based on the first and second determined angles;

wherein the photodiodes are angularly spaced to face in different directions about the receiver so as to detect one or both of the reflected signals in various positions within the working area.

2. The navigational control system of claim 1, wherein the emitter sequentially emits the first and second signals as coded signals.

3. The navigational control system of claim 1, wherein the receiver comprises four photodiodes oriented orthogonally to each adjacent photodiode, each photodiode adapted to detect at least one of the first or second signals reflected from the remote surface.

4. The navigational control system of claim 1, wherein the receiver comprises four photodiodes each arranged to at least partially face one of four substantially orthogonal travel directions of the robot.

5. The navigational control system of claim 1, wherein each photodiode is arranged at an angle with respect to an adjacent photodiode.

6. The navigational control system of claim 1, wherein the receiver comprises five photodiodes.

7. The navigational control system of claim 6, wherein the one of the photodiodes is oriented substantially orthogonally to each of the four other photodiodes.

8. The navigational control system of claim 5, wherein at least one of the photodiodes is oriented in a direction corresponding to a reference direction of travel of the robot.

9. The navigational control system of claim 1, wherein the processor further comprises a navigational algorithm.

10. The navigational control system of claim 9, wherein the processor directs a movement of the robot within the working area based on input from the receiver.

11. The navigational control system of claim 1, wherein the processor determines the relative position of the robot at least in part on at least one of an elevation and an azimuth of each detected signal.

12. The navigational control system of claim 1, wherein the transmitter is located on a robot docking station within the working area, and the docking station emitting a signal onto a remote surface above the working area, the receiver being responsive to the emitted docking station signal as reflected off of the remote surface.

13. The navigational control system of claim 1, wherein the at least one signal comprises light having at least one of a visible wavelength and an infrared wavelength.

14. The navigational control system of claim 1, wherein the discrete photodiodes detect the first and second signals emitted by the transmitter as reflected energy bouncing off a diffuse ceiling surface.

15. A method of control for a mobile robot operating within a working area, the method comprising:
transmitting directed first and second signals, modulated to be different from one another, onto a remote surface above the working area, such that the first and second signals are reflected from spaced apart positions on the remote surface;
detecting the first and second signals as reflected off of the remote surface using an upwardly directed receiver of the mobile robot, the receiver including at least four discrete photodiodes arranged to face in different directions and configured to generate respective response signals responsive to the reflected signals;
determining a first angle associated with the first reflected signal, from relative amplitudes of the response signals from the photodiodes in response to the first signal as reflected off of the remote surface;
determining a second angle associated with the second reflected signal, from relative amplitudes of the response signals from the photodiodes in response to the second signal as reflected off of the remote surface; and
determining a location of the robot in the working area relative to the reflected signals, based on the first and second determined angles;
wherein the photodiodes are angularly spaced to face in different directions about the receiver so as to detect one or both of the reflected signals in various positions within the working area.

16. The method of claim 15, further comprising directing a movement of the robot within the working area, the movement based at least in part upon the determined location of the robot within the working area.

17. The method of claim 15, further comprising storing the location of the robot in memory.

18. The method of claim 17, further comprising comparing the location of the robot to a stored location.

19. The method of claim 18, further comprising directing a movement of the robot within the working area, the movement based at least in part on the stored location.

20. The method of claim 15, wherein the location of the robot is based at least in part on at least one of an elevation and an azimuth of the detected signal.

21. The method of claim 17, further comprising creating a map of the working area based on the locations of the robot as the robot maneuvers about the working area.

22. The method of claim 15, further comprising:
maneuvering the robot away from a base station about a plurality of working areas, each working area having a corresponding transmitter configured to emit a coded signal;
associating each received coded signal with the corresponding working area;
storing a travel order of encountered working areas;
monitoring a power level of the robot;
when the robot power level is below a threshold power level, maneuvering the robot through the encountered working areas in reverse travel order back to the docking station.

23. The method of claim 22, further comprising maneuvering the robot away from the docking station through the previously encountered working areas according to the travel order.

24. The method of claim 15, further comprising arranging each photodiode of the receiver to at least partially face one of four substantially orthogonal travel directions of the robot.

25. The method of claim 15, further comprising arranging each photodiode of the receiver orthogonally to each adjacent photodiode, each photodiode adapted to detect at least one of the first or second signals reflected from the remote surface.

26. The navigational control system of claim 12, wherein the processor is configured to maneuver the robot in response to the received docking station signal as reflected off of the remote surface.

27. The navigational control system of claim 12, wherein the processor is configured to locate the docking station for docking in response to the received docking station signal as reflected off of the remote surface.

28. The navigational control system of claim 1, wherein the processor executes operations comprising:
maneuvering the robot away from a docking station about a plurality of working areas, each working area having a corresponding transmitter configured to emit a coded signal, the processor associating the coded signal with the corresponding working area;
storing a travel order of encountered working areas;
monitoring a power level of the robot;
when the robot power level is below a threshold power level, maneuvering the robot through the encountered working areas in reverse travel order back to the docking station.

29. The navigational control system of claim 28, wherein the operations further comprise maneuvering the robot away from the docking station through the previously encountered working areas according to the travel order.

30. The navigational control system of claim 1, wherein the processor is configured to create a map of the working area based on the relative locations of the robot as the robot maneuvers about the working area.

31. The navigational control system of claim 1, wherein the first and second signals are modulated to be different from one another by modulating the signals at different frequencies.

32. The navigational control system of claim 1, wherein the first and second signals are modulated to be different from one another by pulsing the signals with different codes.

33. The method of claim 15, wherein the first and second signals are modulated to be different from one another by modulating the signals at different frequencies.

34. The method of claim 15, wherein the first and second signals are modulated to be different from one another by pulsing the signals with different codes.

35. A mobile robot comprising:
drive components that move the robot within a working area; and
a navigational control receiving subsystem comprising:
a receiver installed at a top surface of the mobile robot, the receiver including at least four independent photodiodes arranged to face in different directions and each responsive to first and second reflected signals at spaced apart positions on a remote surface above the working area, the first and second signals modulated to be different from one another; and
a processor connected to the receiver and configured to
determine a first angle associated with the first reflected signal, by comparing signals from the four independent photodiodes in response to the first reflected signal, to
determine a second angle associated with the second reflected signal, by comparing signals from the four independent photodiodes in response to the second reflected signal, and
determine a location of the robot within the working area relative to the reflected signals, based on the first and second determined angles;


wherein the at least four independent photodiodes are angularly spaced to face in different directions about the receiver so as to detect one or both of the reflected signals in various positions within the working area.