Vessel hull robot navigation subsystem

Information

  • Patent Grant
  • 8386112
  • Patent Number
    8,386,112
  • Date Filed
    Monday, May 17, 2010
    14 years ago
  • Date Issued
    Tuesday, February 26, 2013
    11 years ago
Abstract
A vessel hull robot navigation subsystem and method for a robot including a drive subsystem onboard the robot for driving the robot about the hull. A sensor subsystem onboard the robot outputs data combining robot and vessel motion. A memory onboard the robot includes data concerning the configuration of the hull and a desired path of travel for the robot. A fix subsystem communicates position fix data to the robot. A navigation processor onboard the robot is responsive to the memory data, the sensor subsystem, the position fix data, and the data concerning vessel motion. The navigation processor is configured to determine the position of the robot on the hull by canceling, form the sensor subsystem output data combining both robot and vessel motion, the determined vessel motion. The navigation processor controls the drive subsystem to maneuver the robot on the hull based on the fix data, the configuration of the hull, the desired path of travel for the robot, and the determined position of the robot on the hull.
Description
RELATED APPLICATIONS

This application is related to co-pending application, U.S. patent application Ser. No. 12/313,643 filed Nov. 21, 2008.


FIELD OF THE INVENTION

The subject invention relates to a hull robot typically configured to clean and/or inspect the hull of a vessel.


BACKGROUND OF THE INVENTION

The frictional resistance of a vessel hull as it moves through the water can constitute 45% to 90% of the total resistance and may be increased by 6% up to 80% due to the fouling of the hull by algae, sea grass, barnacles, and the like. An added resistance of 30% due to moderate bio-fouling of a tanker hull can increase the fuel consumption of the vessel by twelve tons per day. The result is added cost to operate the vessel and increased emissions.


Accordingly, there are a variety of methods employed to lower the chance of bio-fouling and/or to clean the hull of vessels. For example, hull paints and coatings are used in an effort to decrease the chance of bio-fouling, but such treatments do not always work reliably. See, for example, U.S. Pat. No. 7,390,560 incorporated by reference herein. Also, the vessel must be dry docked for an extensive period of time while the paint and/or coating is applied. There are also environmental concerns with anti-fouling paints and coatings.


So, typically, while the ship is dockside and/or during normal unlading conditions, the hull is periodically cleaned manually by scuba divers using motorized brushes. The cost of such a cleaning procedure is high. This type of cleaning effort is repeated approximately every ten to twenty months or sooner if needed. Worse, some jurisdictions have made this practice illegal due to the toxicity of anti-fouling paint which contaminates the water.


In response, robotic hull cleaners have been proposed. The “Hismar” consortium, for example, has proposed a robotic platform for hull cleaning during normal unlading conditions. The robot is magnetically attached to the hull when the vessel is stationary and is tethered to an operator control unit, a high pressure water source, a suction subsystem, and a power subsystem.


Other tethered robots are disclosed in U.S. Pat. Nos. 5,628,271; 6,317,387; 4,674,949; 4,401,048; 4,079,694; 3,946,692; and 3,638,600. See also WO 02/074611; “Design of a Remotely Operated Vehicle (ROV) for Underwater Ship Hull Cleaning,” by Lee Min Wai Serene and Koh Cheok Wei; and “The Design of Underwater Hull-Cleaning Robot,” by Fu-cai et al., published in The Journal of Marine Science and Application, Vol. 3, No. 1, June 2004. All of these references are hereby incorporated by reference herein.


Most prior hull cleaning robots suffer from several shortcomings. Typically, the robots are connected to a cable and powered and controlled by an on-board power supply and control subsystem and are able to operate only on a stationary vessel.


Navigation of a hull robot as proposed in the prior art includes using a three-dimensional laser mapping system, gyroscopic devices, lidar cameras, acoustic transceivers, and the like. See U.S. Pat. Nos. 5,947,051 and 6,317,387 incorporated herein by this reference.


BRIEF SUMMARY OF THE INVENTION

In the applicant's co-pending application, U.S. patent application Ser. No. 12/313,643, filed Nov. 21, 2008 and incorporated herein by this reference, a hull robot includes one or more turbines powering the robot drive and cleaning subsystems. The turbines are activated by water flowing past the hull when the vessel is underway. Because the available power is somewhat limited in such a system, complicated, high power navigation systems are not optimal. Also, to keep the cost of the system down, expensive navigation systems are not preferred.


Programming the robot in advance to maneuver about the hull autonomously according to a planned route could also be problematic as the robot's position may shift over time, for example, as waves, hydrodynamic forces, and navigation drift affect the robot's position on the hull. Highly accurate guidance and navigation systems are expensive and consume a fair amount of power. Moreover, while the vessel is underway it pitches, rolls and yaws in many directions complicating the navigation challenge.


In accordance with one aspect of the invention, shifts in the robot's position on the hull are accounted for and the accumulated inaccuracies inherent in the navigation system are addressed by programming the robot to periodically maneuver to a position on the hull to receive a position calibration fix. To account for the motion (pitch, roll and yaw) of the vessel while it is underway, the robot is also programmed to subtract the motion of the vessel from its navigation calculations. In this way, the robot's position on the hull can be determined after it leaves the position calibration fix point.


In one example, the result is a lower cost, lower power navigation subsystem.


The invention features a vessel hull robot navigation subsystem and method. A drive subsystem onboard the robot is for driving the robot about the hull. A sensor subsystem onboard the robot outputs data combining robot and vessel motion. A memory onboard the robot includes data concerning the configuration of the hull and a desired path of travel for the robot.


A fix subsystem communicates position fix data to the robot. There are also means for determining vessel motion. A navigation processor onboard the robot is responsive to the memory data, the sensor subsystem, the position fix data, and the means for determining the vessel motion. The navigation processor is configured to determine the position of the robot on the hull by canceling, from the sensor subsystem output data combining both robot and vessel motion, the determined vessel motion. The navigation processor controls the drive subsystem to maneuver the robot on the hull based on the fix data, the configuration of the hull, the desired path of travel for the robot, and the determined position of the robot on the hull.


In one example, the navigation processor is furthered configured to control the drive subsystem to periodically maneuver the robot above the water line to receive the position fix data. The robot further may include a pressure sensor for detecting when the robot is above the water line.


The fix subsystem typically includes at least two hull mounted transmitters and a receiver onboard the robot receiving transmissions from the at least two hull transmitters. The navigation processor is responsive to the receiver and is configured to determine, by triangulation, robot position fix data based on the transmissions transmitted by the at least two hull transmitters.


The means for determining vessel motion may include a multi-axis inertial sensing subsystem on the vessel outputting data representing motion of the vessel, a transmitter on the vessel for transmitting said data, and a receiver on the robot for receiving this data. In another version, the means for determining vessel motion includes the sensor onboard the robot outputting vessel motion data alone when the robot is not moving. In this version, the navigation processor is typically configured to periodically stop movement of the robot to acquire the vessel motion data.


The sensor subsystem onboard the robot may also include an odometer for determining the distance traveled by the robot. Typically, the sensor subsystem is configured to output angular rotations about a plurality of axes and position angles with respect to a plurality of axes.


One example of a vessel hull robot navigation subsystem in accordance with the invention includes a sensor subsystem onboard the robot outputting robot motion data, a memory onboard the robot including data concerning the configuration of the hull and a desired path of travel for the robot, a fix subsystem communicating position fix data to the robot, and a navigation processor onboard the robot and responsive to the memory data, the sensor subsystem, and the position fix data. The navigation processor is configured to maneuver the robot on the hull based on the fix data, the configuration of the hull, the desired path of the travel for the robot, and the determined position of the robot on the hull.


One example of a vessel hull robot navigation subsystem includes a sensor subsystem onboard the robot outputting data combining robot and vessel motion, a memory onboard the robot including data concerning the configuration of the hull and a desired path of travel for the robot, means for determining vessel motion, and a navigation processor onboard the robot and responsive to the memory data, the sensor subsystem, and the means for determining the vessel motion. The navigation processor is configured to determine the position of the robot on the hull by canceling from the sensor subsystem output data combining both robot and vessel motion, the determined vessel motion, and control the drive subsystem to maneuver the robot on the hull based on the configuration of the hull and the desired path of travel for the robot, and the determined position of the robot on the hull.


One vessel hull robot navigation subsystem includes a sensor subsystem onboard the robot outputting data combining robot and vessel motion, a fix subsystem communicating position fix data to the robot, means for determining vessel motion, and a navigation processor onboard the robot and responsive to the sensor subsystem, the position fix data, and the means for determining the vessel motion. The navigation processor is configured to determine the position of the robot on the hull by canceling, from the sensor subsystem output data combining both robot and vessel motion, the determined vessel motion, and maneuver the robot on the hull based on the fix data and the determined position of the robot on the hull. Further included may be a memory onboard the robot including data concerning the configuration of the hull and a desired path of travel for the robot. The navigation processor is responsive to the memory data and configured to control the drive subsystem to maneuver the robot based on the configuration of the hull and the desired path of travel for ht robot.


A vessel hull robot navigation method, in one example, includes sensing robot motion, and vessel motion, storing data concerning the configuration of the hull and a desired path of travel for the robot, communicating position fix data to the robot, determining vessel motion determining the motion of the robot on the hull by canceling vessel motion from the sensed robot and vessel motion, and maneuvering the robot on the hull based on the fix data, the configuration of the hull, the desired path of travel for the robot, and the determined position of the robot on the hull.


The method may further include controlling the drive subsystem to periodically maneuver the robot above the water line to receive the position fix data. The method may further include sensing pressure to detect when the robot is above the water line.


Communicating fix data may include installing at least two hull transmitters and determining, by triangulation, robot position fix data based on the transmissions transmitted by the at least two hull transmitters.


Determining vessel motion may include installing a multi-axis inertial sensing subsystem on the vessel outputting data representing motion of the vessel and transmitting this data to the robot. Determining vessel motion could also include periodically stopping movement of the robot to acquire vessel motion data. Sensing robot motion may further include determining the distance traveled by the robot.


In one example, a vessel hull robot navigation method includes sensing data combining robot and vessel motion, communicating position fix data to the robot, determining vessel motion, determining motion of the robot on the hull by canceling vessel motion from the data combining both robot and vessel motion, and maneuvering the robot on the hull based on the fix data and the determined position of the robot on the hull.


The subject invention, however, in other embodiments, need not achieve all these objectives and the claims hereof should not be limited to structures or methods capable of achieving these objectives.





BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS

Other objects, features and advantages will occur to those skilled in the art from the following description of a preferred embodiment and the accompanying drawings, in which:



FIG. 1 is a schematic bottom view showing an example of a hull robot in accordance with the invention;



FIG. 2 is a block diagram showing the primary components associated with a navigation subsystem for a hull robot;



FIG. 3 is a depiction of the method of determining the coordinates of a point in space from an origin in accordance with the invention;



FIGS. 4A-4B are plots showing how the motion of the ship is determined in accordance with the invention;



FIG. 5 is a schematic depiction showing movement of a vessel;



FIG. 6 is a depiction showing how a robot position fix is determined in accordance with the invention;



FIG. 7 is a view showing a robot in position on the vessel hull above the water line in order to receive position fix data;



FIG. 8 is a flow chart depicting the primary steps involved in determining the position of a robot on the vessel hull by canceling, from the sensor subsystem output data combining both robot and vessel motion, the determined vessel motion;



FIG. 9 is a view showing the output of an inertial sensor used in an example of the invention;



FIG. 10 is a block diagram depicting the primary components located on the vessel hull associated with a navigation subsystem in accordance with the invention;



FIG. 11 is a block diagram showing, in one example, the primary navigation subsystem components located onboard the robot in accordance with the invention; and



FIG. 12 is a flow chart depicting the operation of and the primary steps associated with the programming of the navigation processor in accordance with an example of the invention.





DETAILED DESCRIPTION OF THE INVENTION

Aside from the preferred embodiment or embodiments disclosed below, this invention is capable of other embodiments and of being practiced or being carried out in various ways. Thus, it is to be understood that the invention is not limited in its application to the details of construction and the arrangements of components set forth in the following description or illustrated in the drawings. If only one embodiment is described herein, the claims hereof are not to be limited to that embodiment. Moreover, the claims hereof are not to be read restrictively unless there is clear and convincing evidence manifesting a certain exclusion, restriction, or disclaimer.



FIG. 1 shows an example of robot 10 including robot body 12 with turbine intake vents 14a and 14b. Cleaning brushes 16a, 16b, and 16c are also shown driven by motor 17. A magnetic drive system 22 is typically used to adhere the robot to the hull and to maneuver the robot about the hull.


In the examples shown, turbines 26a and 26b drive generators 28a and 28b, respectively. Turbines 26a and 26b are driven by water flowing past the vessel hull when the vessel is underway. Generators 28a and 28b recharge a power source such as a battery. One or more motors are powered by the power source. An electronic controller is also powered by the power source as is a navigation processor and various sensors and other electronic subsystems.



FIG. 1 also shows motor 30 driving turret 24. Motor 30 is powered by the power source and is controlled by an electronic subsystem or controller. Motor 30 drives worm gear 32 engaged with peripheral gear 34 on turret 24. Turret 24 rotates with respect to the hull via a shaft or the like. Other actuator systems for adjusting the position of turret 24 are possible. In this way, as the robot turns via drive system 22, turbines 26a and 26b can be kept in alignment with the flow of water past the hull.


Typically, other subsystems are included as components of the robot, for example, a communication subsystem, and the like. Preferably robot body 12 need not be tethered to any kind of an on-board power or control subsystem. The turbine subsystem can operate the drive subsystem (and, in one example, a cleaning subsystem) directly or via a generator charging a power subsystem (e.g., a battery pack) which supplies power to one or more motors driving the drive subsystem and/or the cleaning subsystem. The battery pack can also be used to energize the other electronic and/or electromechanical subsystems associated with the robot. It is also possible for a generator to drive one or more motors directly.


Drive system 22 in this particular example includes frame 40 with spaced side walls 42a and 42b interconnected by end walls 44a and 44b. Spaced axles 48a and 48b, in this example, are rotatably disposed between side walls 42a and 42b such that frame 40 defines first frame portion or section 50a housing axle 48a and second frame portion 50b housing axle 48b. Axles 48a, 48b support, in this particular example, wheels such as spaced magnetic wheels 52a and 52b on axle 48a and spaced wheels 52c and 52d on axle 48b. By wheels, as disclosed herein, we mean wheels in the conventional sense, drum shaped wheels (also referred to as rollers), and even a pair of spaced wheels, drums, or sprockets used, for example, in a magnetic track, and other rolling structures. For example, as disclosed herein, axle 48b can support a drum type wheel or there may be two spaced axles supported by frame section 50b supporting spaced drums or sprockets for a magnetic track housed by frame section 50b. The same is true with respect to frame section 50a.


Frame 40 defines pivotable, bendable, or flexible joint 54 between frame portion 50a and frame portion 50b. Stated another way, frame 40 includes expandable and contractible portion 56 between frame portions 50a and 50b. In this particular example, pivotable joint 54 is a section of frame side wall 72b and expandable portion 56 comprises a gap in frame 40 side wall 42a and a gap in top wall 58 between metal frame portions 50a and 50b. Pivotable or flexible joint 54, in this particular example, is a portion of the frame which can be bent when desired. Flexible joint 54 spans gap 56 which narrows from a wide end in side wall 42b to a narrower end near side wall 42a. Joint 54 is, in this example, a locally flexible integral portion of an otherwise stiff frame side wall 42b and top wall 58 and can bend a few degrees.


Actuator subsystem 60 is configured to move frame portion 50a relative to frame portion 50b and flex joint 54 while expanding and contracting expandable frame gap 56. This action, in turn, angles first axle 48a relative to second axle 48b and turns the drive and the robot it is attached to. In one example, if the axles are a foot apart, the turning radius can be between 5 to 40 feet which is sufficient for operation on the hull of a ship.


In this particular example, the actuator subsystem includes a shaft with threads extending into a threaded orifice in frame portion 50a and threads on the other end extending into a threaded orifice in frame portion 50b. The threads are in different directions so turning the shaft in one direction expands gap 56 and turning the shaft in the opposite direction contracts gap 56. To reduce any stress on the shaft, rotating barrel nuts may be incorporated in the frame portions, to receive the threads on the opposite ends of the shaft.


A piston driven in and out of a cylinder is coupled to the shaft via a pivoting joint. In this way, actuating the cylinder rotates the shaft. The cylinder is typically coupled to the frame at or near joint 54. The combination of the cylinder and the piston may be an electrically driven linear actuator as is known in the art or a pneumatically drive subsystem as is also known in the art. See the co-pending application by the applicant hereof entitled HULL ROBOT STEERING SYSTEM filed on May 10, 2010, application Ser. No. 12/800,174.


Other robot drive/turning subsystems, however, are possible. For example, two magnetic tracks can be used and then steering is possible by operating one track at a different speed than the other track. See also patent application Ser. Nos. 12/313,643; 12/583,346; and 12/587,949 incorporated herein by this reference.


Navigation subsystem 60, FIG. 2, via navigation processor 62, provides an output to drive subsystem 22 to control forward and backward motion of the robot and to steer the robot on the hull. Navigation subsystem 60 as well as the other electronic subsystems of the robot may be housed in sealed housing 13, FIG. 1.


Sensor subsystem 66 onboard robot 10 typically includes a multi-axis sensing system (such as provided by Systron Donner, Analog Devices, MicroStrain, and Gladiator Technologies). Since both the robot and the hull are moving, sensor subsystem 66 outputs data to navigation processor 62 reflecting a combination of the motion of the robot on the vessel hull and the motion of the vessel hull itself.


To address this situation, there are means for determining vessel motion, for example, a multi-axis sensing system 70 on the vessel which transmits vessel motion data to navigation subsystem processor 62 via receiver 72. Processor 62 is then configured (e.g., programmed) to subtract or cancel vessel motion from the data obtained from sensor subsystem 66 (data reflecting combined robot and vessel motion). The result is data concerning only the motion of the robot on the vessel hull. Based on the robot motion data, the position of the robot on the hull can be ascertained.


In another example, processor 62 is programmed to control drive subsystem 64 to periodically stop the robot on the hull. Then, the output of sensor subsystem 66 is data concerning motion of the vessel only. This data can be stored in memory 74. When the robot again maneuvers on the hull, this data is subtracted from the output of sensor subsystem 66 to derive data concerning movement of the robot.


Thus, means for determining vessel motion may include either a sensing subsystem 70 on-board the vessel and/or sensor subsystem 66 of the robot when the robot is not moving. Vessel motion data, in one example, can be output by both subsystem 70 and subsystem 66 and compared to verify both subsystems and to compensate for any errors or differences between the two subsystems. Typically, the periodicity motion of the large vessels does not change too often so updates to the vessel motion data stored in memory 74 may need to only occur periodically.


To provide calibration data, fix subsystem 78 is also typically provided to more accurately determine the position of the robot on the vessel hull. In one example, fix subsystem 78 includes two spaced transmitters on the vessel each transmitting to robot receiver 72 signals which can be uniquely identified by navigation processor 62. Navigation processor 62 is then programmed to use triangulation techniques to determine a position fix of the robot relative to the two transmitters whose position is known. The position of the robot is thus determined and stored in memory 74. Sensor subsystem 66 then determines the movement of the robot as described above and calculates the position of the robot based on the position fix data and the movement of the robot.


Typically, the fix data from fix subsystem 78 and the vessel motion data from multi-axis sensing subsystem 70 are provided to receiver 72 of robot 10 when robot 10 is maneuvered above the water line on the hull so that RF transmissions can be used. Thus, navigation processor 62 is configured to periodically control drive subsystem 22 to maneuver robot 10 above the water line. Pressure sensor 80 may be included to verify that the robot is above the water line.


Memory 74 also typically includes data concerning the configuration of the hull and an input desired path of travel for the robot about the hull. Navigation processor 62, based on this data and the derivation of the robot's motion, then controls drive subsystem 22 to maneuver the robot about the hull according to the desired path of travel.


For example, suppose that at time T1, the fix data indicates that the robot is at position Xn, Yn, and Zn on the hull. The stored intended path of the travel for the robot is to first maneuver to position X1, Y1, and Z1 according to the desired path of travel for the robot.


The position of the robot Xn, Yn, and Zn can be expressed as Ro, Φo, and θo and X1, Y1, and Z1 can be expressed as point P (R1, Φo, and θo). As the robot traverses the hull to position P, odometer 82, FIG. 2 determines R and sensor subsystem 66 determines Φ and θ of both the robot and the vessel. Navigation processor 62 subtracts the vessel's motion from this combined data and determines Φ and θ for the robot.


The robot is programmed, via the desired path of travel stored in memory 74, to traverse the hull for a distance R at angles Φ and θ. Navigation processor 62 then issues course corrections to drive subsystem 22 based on the output of sensor subsystem 66 and odometer 82.


The polar coordinate system or the spherical coordinate system involves the distance from the origin 0 and two angles θ and Φ as shown in FIG. 3.


The position of point P is described as (r, Φ, θ), where r=the distance from the origin (O), Φ=the horizontal azimuth angle measured on the XY plane from the X axis in the counterclockwise direction, and θ=the azimuth angle measured from the Z axis. The origin is typically determined, at least initially, via the fix subsystem described above.


The range of Φ is from 0 to 2π (360), and the range of θ is from 0 to π (180°).


To transform from Cartesian to Spherical coordinates and vice versa, trigonometry is used to establish the transformation equations:

X1=r sin θ cos φ  (1)
Y1=r sin θ sin φ  (2)
Z1=r cos θ  (3)
r=(X12+Y12+Z12)1/2  (4)
θ=tan−1(Z1/(X12+Y12)1/2), and  (5)
φ=tan−1(Y1/X1).  (6)


In a polar coordinate system, if the robot starts a calibration fix point Pf for any measured r, θ, Φ, or X, Y, Z position can be determined from the relations above.


In operation, the robot will typically include a three-dimensional map of the hull stored in memory 74, FIG. 2. The robot will start at a calibration fix point Pf (Xn, Yn, Zn), FIG. 3. With the map of the ship's hull in memory, and the capability to measure θ, Φ, or r, the robot travels according to a pre-programmed course. As it travels along the hull, sensing subsystem 66 measures θ and Φ.) Odometer 82 measures r. This measured data is compared to the programmed position input by the user, e.g., the desired path of travel for the robot. If there is a difference, the course is corrected by the difference, which can be represented in polar coordinates by

Pprogram(r,Φ,θ)−Pmeasured(r,Φ,θ)=course correction(r,Φ,θ)  (7)

Pprogram (r, Φ, θ) is the location where the robot is supposed to be according to the inputted desired path of travel and Pmeasured (r, Φ, θ) is the actual measured location both referenced from the same starting point (Xn, Yn, Zn). With the transformation equations above, the course correction equation can also be represented in Cartesian coordinates.


Because the robot will be navigating on a moving platform that has angular movement about X, Y, Z axes, it will often be necessary to determine this angular motion of the platform so that such motion does not corrupt the actual position angular measurements Φ and θ.


Removing the platform's angular motion can be accomplished in a variety of ways. One way is to stop the robot and measure this angular movement and store it. Once the robot begins moving again, the unwanted angular motion can be subtracted. Another way is to include a multi-axis sensing system 70 located on the moving platform used to continuously measure the platform's angular motion and remotely provide this information to the robot as shown in FIG. 2. Processor 62 can then subtract the unwanted angular motion before it calculates a course correction. In either case, the subtraction can be accomplished by three-dimensional vector subtraction.


As an example of operation, assume the robot is on the preprogrammed course shown in FIG. 4 starting at the known position (0, 0, 0) and moving towards (0, 2, 4), the desired position. In this path X is always zero and the robot is moving only in the Z and Y directions. Assume that as the robot travels from (0, 0, 1) to (0, 0, 2), somehow it ends up at location (0.5, 0, 2).


In real time, multi-axis sensing system 66, FIG. 2 is measuring angular rotation about each axis and the angular information is translated into θ and φ. In the above case where X is always zero, there is no angular rotation about the Z axis and φ=90°. The angle θ=0° as long as Y is zero (0). As Y becomes greater than zero, θ will vary between 0 and 90°. The measured data is derived from the equations (1)-(3) above where, θ and φ are provided by multi-axis sensing system 66 and r is provided by odometer 22.


If the path is skewed, the robot is at position (0.5, 0, 2) instead of at the desired position (0, 0, 2). The navigation's multi-axis sensing system is now measuring angular rotation about the Z axis and angle θ is now less than 90°. Navigation processor will course correct the robot's path until X is once again zero. This process continuously monitors the desired position and compares it to the actual and course adjustments are made until

(x,y,z)program−(x,y,z)measured=0  (8)
or
Pprogram(r,Φ,θ)−Pmeasured(r,Φ,θ)=0.  (9)


Under some operating conditions, the robot will be moving and navigating on a ship that will be subjected to sea state conditions. Sea state conditions will cause the ship to pitch, roll and yaw and is shown in FIG. 5.


The ship's motion will cause multi-axis sensing system 66, FIG. 2 onboard the robot to report both the motion of both the robot and ship. To maintain the robot's navigation accuracy, the ship's motion needs to be accounted for and removed.


If a multi-axis sensing system 70, is placed on the ship, as the ship pitches, rolls and yaws, the multi-axis sensing system will measure the angular rotation about each axis in degrees per second. This information can then be transmitted to the robot as shown in FIG. 2 (for example when the robot receives fix data) where it will be accounted for and removed from the reported angular rotation onboard the robot. For example, if ship's motion is causing the following angular rotation:

X-axis 0.1°/sec,Y-axis 0.01°/sec,Z-axis 0°/sec,  (10)

the robot's speed and course and at a given point should have the angular rotation:

X-axis 0.0°/sec,Y-axis 0.05°/sec,Z-axis 0°/sec  (11)

In this example, assuming the angular motion of the ship and robot is in the same direction, then the combined angular motion measured by the robot is:

X-axis 0.1°/sec,Y-axis 0.06°/sec,Z-axis 0°/sec  (12)

The ships motion would then be subtracted resulting in the desired angular motion shown in equation (11).


An alternative approach is to have the robot periodically stop moving. When the robot is not moving, onboard multi-axis sensing system 66 will now be measuring the ship's motion only. This motion can then be zeroed or stored and subtracted as robot navigates about the hull.


In this case, ship's motion as stated above, is:

X-axis 0.1°/sec,Y-axis 0.01°/sec,Z-axis 0°/sec,  (13)

and would be zeroed or calibrated out of the robot's navigation measurement system.



FIG. 6 depicts the operation of an exemplary subsystem. The robot is at position YN, XN on the ship's hull, typically above the water line, and transmitters 100a and 100b are fixed at known locations on the ship's hull. The distance A between transmitters 100a and 100b is a known value. Distances b and d are determined by the following calculations.










X
n

=


X
3

-



a
2

+

d
2

-

b
2



2

a







(
14
)







Y
n

=


Y
2

-


d
2


-



(


a
2

+

d
2

-

b
2


)

2


4


a
2








(
15
)








The distance a is X3−X1


The distances b and d are determined by:


At time t=t0, frequency source F3T on board the robot transmits,


At time t=t0+t1F1R, F1R receives F3T signal and


At time t=t0+t1F2R, F2R receives F3T signal,


At time t=t0+t1F1R+t2F1T, F1T transmits a signal and


At time t=t0+t1F2R+t2F2T, F2T transmits a signal,


At time t=t0+t1F1R+t2F1T+t2F3R, F3R receives F1T signal and


At time t=t0+t1F2R t2F2T t2F3R, F3R receives F2T signal


Therefore,


b=[(t0+t1F1R+t2F1T+t2F3R))/2]c, and d=[(t0+t1F2R+t2F2T+t2F3R)/2]c


C=speed of light


As shown in FIG. 7, every time the robot reaches the surface, a frequency tone is emitted from the robot from transmitter 73, FIG. 2 onboard the robot causing the frequency sources on the hull to each transmit a unique frequency at known locations on the hull. Radio triangulation is then used to more accurately determine where the robot is on the hull. The robot's known (calibrated) position fix is then the starting point of a stored pre-programmed cleaning path. As the robot traverses the hull, sensor 66, FIG. 2 and odometer 82 continually measure the robot's location using the algorithm discussed above. This process is repeated as the robot travels from bow to stern according to the cleaning path depicted in FIG. 7 at 110.



FIG. 8 shows ship's vessel motion data at 120 (based on, for example, sensing subsystem 70, FIG. 2) subtracted from robot motion data as shown at 122 (also including ship motion data as discussed above for the output from sensor subsystem 66, FIG. 2. With the ship's motion removed as shown at 124 and also based on the distance traveled as output from odometer 82, FIG. 2, the robot's measured position is shown at 126 in FIG. 8.



FIG. 9 shows the typical output of both sensor subsystems 66 and 70, FIG. 2, in this example, the rotation rate 127 for all three axes, and the acceleration 128, and angle 129 for all three axes.


In one preferred embodiment, the data from the navigation transmitters 100 on the vessel hull, and data from the angular sensor and the acceleration sensor onboard the ship's hull are combined as shown at 130, FIG. 10 and transmitted via transmitter 140. Receiver 72 and transmitter 73 onboard the robot (or alternatively a transmitter/receiver combination or transceiver) provides this data to navigation processor 62. Data from sensor subsystem 66 and odometer 82 is used by navigation processor 62 in addition to the ship hull mapping data and the intended programmed path of the robot as shown at 74 in order to control drive/steering subsystem the drive/steering subsystem.


Thus, the operation of navigation processor 62 includes determining a pre-programmed cleaning or inspection pattern, step 150, FIG. 12 based on data stored in memory 74 as well as a user determined path also stored in memory 74. A calibration reference point as shown at step 152 is determined based on the triangulation technique described above. Navigation processor 63 controls the drive subsystem to navigate the robot based on dead reckoning step 152. At step 156, the ship's motion is subtracted from the onboard sensor subsystem output data and, with the vessel's motion removed, in combination of the distance traveled as measured via odometer 82, navigation processor 62 at step 158 determines the robot's location and provides course corrections as needed to a drive subsystem.


In this way, shifts in the robot's position on the hull are accounted for and any inaccuracies inherent in the navigation subsystem is addressed by periodically maneuvering the robot to a position on the hull to receive position fix calibration data. To account for the motion of the vessel while it is underway, the robot is also programmed to subtract the motion of the vessel from its navigation calculations. In this way, the robot's position on the hull once it leaves the position calibration fix point can be determined. The result is a lower cost, lower power navigation subsystem.


Although specific features of the invention are shown in some drawings and not in others, this is for convenience only as each feature may be combined with any or all of the other features in accordance with the invention. The words “including”, “comprising”, “having”, and “with” as used herein are to be interpreted broadly and comprehensively and are not limited to any physical interconnection. Moreover, any embodiments disclosed in the subject application are not to be taken as the only possible embodiments.


In addition, any amendment presented during the prosecution of the patent application for this patent is not a disclaimer of any claim element presented in the application as filed: those skilled in the art cannot reasonably be expected to draft a claim that would literally encompass all possible equivalents, many equivalents will be unforeseeable at the time of the amendment and are beyond a fair interpretation of what is to be surrendered (if anything), the rationale underlying the amendment may bear no more than a tangential relation to many equivalents, and/or there are many other reasons the applicant can not be expected to describe certain insubstantial substitutes for any claim element amended.


Other embodiments will occur to those skilled in the art and are within the following claims.

Claims
  • 1. A vessel hull robot navigation subsystem comprising: a drive subsystem onboard the robot for driving and maneuvering the robot about the hull, wherein the robot is adapted to move and navigate about the vessel and is subject to sea state conditions while the vessel is underway;a sensor subsystem onboard the robot outputting data combining robot and vessel motion;a memory onboard the robot including data concerning the configuration of the hull and a desired path of travel for the robot; a fix subsystem communicating position fix data to the robot;means for determining vessel motion; anda navigation processor onboard the robot and responsive to the memory data, the sensor subsystem, the position fix data, and the means for determining the vessel motion, the navigation processor configured to:determine the position of the robot on the hull by canceling, from the sensor subsystem output data combining both robot and vessel motion, the determined vessel motion to maintain navigation accuracy of the robot, andcontrol the drive subsystem to maneuver the robot on the hull based on the fix data, the configuration of the hull, the desired path of travel for the robot, and the determined position of the robot on the hull.
  • 2. The vessel hull robot navigation subsystem of claim 1 in which the navigation processor is furthered configured to control the drive subsystem to periodically maneuver the robot above the water line to receive the position fix data.
  • 3. The vessel hull robot navigation subsystem of claim 2 in which the robot further includes a pressure sensor for detecting when the robot is above the water line.
  • 4. The vessel hull robot navigation subsystem of claim 2 in which the fix subsystem includes at least two hull transmitters and a receiver onboard the robot receiving transmissions from the at least two hull transmitters, the navigation processor responsive to the receiver and configured to determine, by triangulation, robot position fix data based on the transmissions transmitted by the at least two hull transmitters.
  • 5. The vessel hull robot navigation subsystem of claim 1 in which the means for determining vessel motion includes a multi-axis sensing subsystem on the vessel outputting data representing motion of the vessel, a transmitter on the vessel for transmitting said data, and a receiver on the robot for receiving said data.
  • 6. The vessel hull robot navigation subsystem of claim 1 in which the means for determining vessel motion includes the sensor onboard the robot outputting vessel motion data alone when the robot is not moving, the navigation processor configured to periodically stop movement of the robot to acquire the vessel motion data.
  • 7. The vessel hull robot navigation subsystem of claim 1 in which the sensor subsystem onboard the robot further includes an odometer for determining the distance traveled by the robot.
  • 8. The vessel hull robot navigation subsystem of claim 1 in which the sensor subsystem is configured to output angular rotations about a plurality of axes and position angles with respect to a plurality of axes.
  • 9. A vessel hull robot navigation subsystem comprising: a drive subsystem onboard the robot for driving the robot about the hull, wherein the robot is adapted to move and navigate about the vessel and is subject to sea state conditions while the vessel is underway;a sensor subsystem onboard the robot outputting robot motion data;a memory onboard the robot including data concerning the configuration of the hull and a desired path of travel for the robot;a fix subsystem communicating position fix data to the robot; anda navigation processor onboard the robot and responsive to the memory data, the sensor subsystem, and the position fix data, the navigation processor configured to control the drive subsystem to maneuver the robot on the hull based on the fix data, the configuration of the hull, the desired path of travel for the robot, and the determined position of the robot on the hull, wherein the navigation processor is furthered configured to control the drive subsystem to periodically maneuver the robot above the water line to receive the position fix data.
  • 10. The vessel hull robot navigation subsystem of claim 9 further including means for determining vessel motion and the navigation processor is configured to determine the position of the robot on the hull by canceling, from the sensor subsystem output, determined vessel motion.
  • 11. The vessel hull robot navigation subsystem of claim 1 in which the robot further includes a pressure sensor for detecting when the robot is above the water line.
  • 12. The vessel hull robot navigation subsystem of claim 9 in which the fix subsystem includes at least two hull transmitters and a receiver onboard the robot receiving transmissions from the at least two hull transmitters, the navigation processor responsive to the receiver and configured to determine, by triangulation, robot position fix data based on the transmissions transmitted by the at least two hull transmitters.
  • 13. A vessel hull robot navigation subsystem comprising: a drive subsystem onboard the robot for driving the robot about the hull, wherein the robot is adapted to move and navigate about the vessel and is subject to sea state conditions while the vessel is underway;a sensor subsystem onboard the robot outputting data combining robot and vessel motion;a memory onboard the robot including data concerning the configuration of the hull and a desired path of travel for the robot;means for determining vessel motion comprising a multi-axis sensing subsystem on the vessel outputting data representing motion of the vessel, a transmitter on the vessel for transmitting said data, and a receiver on the robot for receiving said data; anda navigation processor onboard the robot and responsive to the memory data, the sensor subsystem, and the means for determining the vessel motion, the navigation processor configured to:determine the position of the robot on the hull by canceling, from the sensor subsystem output data combining both robot and vessel motion, the determined vessel motion to maintain navigation accuracy of the robot, andcontrol the drive subsystem to maneuver the robot on the hull based on the configuration of the hull and the desired path of travel for the robot, and the determined position of the robot on the hull.
  • 14. The vessel hull robot navigation subsystem of claim 13 further including a fix subsystem communication position fix data to the robot, the navigation processor onboard the robot responsive to the position fix data and further configured to control the drive subsystem to maneuver the robot on the hull based on the fix data.
  • 15. The vessel hull robot navigation subsystem of claim 14 in which the navigation processor is furthered configured to control the drive subsystem to periodically maneuver the robot above the water line to receive the position fix data.
  • 16. The vessel hull robot navigation subsystem of claim 15 in which the robot further includes a pressure sensor for detecting when the robot is above the water line.
  • 17. The vessel hull robot navigation subsystem of claim 14 in which the fix subsystem includes at least two hull transmitters and a receiver onboard the robot receiving transmissions from the at least two hull transmitters, the navigation processor responsive to the receiver and configured to determine, by triangulation, robot position fix data based on the transmissions transmitted by the at least two hull transmitters.
  • 18. The vessel hull robot navigation subsystem of claim 13 in which the sensor subsystem onboard the robot further includes an odometer for determining the distance traveled by the robot.
  • 19. The vessel hull robot navigation subsystem of claim 13 in which the sensor subsystem is configured to output angular rotations about a plurality of axes and position angles with respect to a plurality of axes.
  • 20. A vessel hull robot navigation subsystem comprising: a drive subsystem onboard the robot for driving the robot about the hull, wherein the robot is adapted to move and navigate about the vessel and is subject to sea state conditions while the vessel is underway;a sensor subsystem onboard the robot outputting data combining robot and vessel motion; a fix subsystem communication position fix data to the robot;means for determining vessel motion; anda navigation processor onboard the robot and responsive to the sensor subsystem, the position fix data, and the means for determining the vessel motion, the navigation processor configured to:determine the position of the robot on the hull by canceling, from the sensor subsystem output data combining both robot and vessel motion, the determined vessel motion to maintain navigation accuracy of the robot, andcontrol the drive subsystem to maneuver the robot on the hull based on the fix data and the determined position of the robot on the hull.
  • 21. The vessel hull robot navigation subsystem of claim 20 further including a memory onboard the robot including data concerning the configuration of the hull and a desired path of travel for the robot, the navigation processor responsive to the memory data and configured to control the drive subsystem to maneuver the robot based on the configuration of the hull and the desired path of travel for the robot.
  • 22. A vessel hull robot navigation subsystem, comprising: a drive subsystem onboard the robot for driving the robot about the hull, wherein the robot is adapted to move and navigate about the vessel and is subject to sea state conditions while the vessel is underway;a sensor subsystem onboard the robot outputting data combining robot and vessel motion;a memory onboard the robot including data concerning the configuration of the hull and a desired path of travel for the robot;means for determining vessel motion comprising the sensor onboard the robot outputting vessel motion data alone when the robot is not moving, the navigation processor configured to periodically stop movement of the robot to acquire the vessel motion data; anda navigation processor onboard the robot and responsive to the memory data, the sensor subsystem, and the means for determining the vessel motion, the navigation processor configured to:determine the position of the robot on the hull by canceling, from the sensor subsystem output data combining both robot and vessel motion, the determined vessel motion to maintain navigation accuracy of the robot, andcontrol the drive subsystem to maneuver the robot on the hull based on the configuration of the hull and the desired path of travel for the robot, and the determined position of the robot on the hull.
US Referenced Citations (90)
Number Name Date Kind
2104062 Temple Jan 1938 A
2132661 Temple Oct 1938 A
2386650 Bell Oct 1945 A
3088429 Johannessen May 1963 A
3285676 Hetteen Nov 1966 A
3439937 Dixon Apr 1969 A
3554300 Rosenberg Jan 1971 A
3638600 Modrey Feb 1972 A
3777834 Hiraoka et al. Dec 1973 A
3922991 Woods Dec 1975 A
3934664 Pohjola Jan 1976 A
3946692 Sierra et al. Mar 1976 A
3960229 Shio Jun 1976 A
3984944 Maasberg et al. Oct 1976 A
4046429 Pohjola Sep 1977 A
4079694 Galinou Mar 1978 A
4119356 Pohjola Oct 1978 A
4135592 Vincent Jan 1979 A
4202453 Wilkes et al. May 1980 A
4251791 Yanagisawa et al. Feb 1981 A
4401048 Rogers Aug 1983 A
4574722 Orita et al. Mar 1986 A
4674949 Kroczynski Jun 1987 A
4690092 Rabuse Sep 1987 A
4697536 Hirata Oct 1987 A
4734954 Greskovics et al. Apr 1988 A
4736826 White et al. Apr 1988 A
4789037 Kneebone Dec 1988 A
4809383 Urakami Mar 1989 A
4841894 Nellessen, Jr. Jun 1989 A
4890567 Caduff Jan 1990 A
4926775 Andorsen May 1990 A
5048445 Lever et al. Sep 1991 A
5174222 Rogers Dec 1992 A
5203646 Landsberger et al. Apr 1993 A
5249631 Ferren Oct 1993 A
5253605 Collins Oct 1993 A
5253724 Prior Oct 1993 A
5285601 Watkin et al. Feb 1994 A
5366038 Hidetsugu et al. Nov 1994 A
5435405 Schempf et al. Jul 1995 A
5628271 McGuire May 1997 A
5849099 McGuire Dec 1998 A
5852984 Matsuyama et al. Dec 1998 A
5894901 Awamura et al. Apr 1999 A
5947051 Geiger Sep 1999 A
6000484 Zoretich et al. Dec 1999 A
6053267 Fisher Apr 2000 A
6064708 Sakamaki May 2000 A
6102145 Fisher Aug 2000 A
6125955 Zoretich et al. Oct 2000 A
6317387 D'Amaddio et al. Nov 2001 B1
6564815 McGuire May 2003 B2
6595152 McGuire Jul 2003 B2
6698376 Delahousse et al. Mar 2004 B2
6792335 Ross et al. Sep 2004 B2
6886486 Van Rompay May 2005 B2
6886651 Slocum et al. May 2005 B1
7296530 Bernstein et al. Nov 2007 B1
7390560 Wallach Jun 2008 B2
7520356 Sadegh et al. Apr 2009 B2
7866421 Moore et al. Jan 2011 B2
7934575 Waibel et al. May 2011 B2
20030000445 McGuire Jan 2003 A1
20040089216 Van Rompay May 2004 A1
20040133999 Walton Jul 2004 A1
20050027412 Hobson et al. Feb 2005 A1
20050156562 Cohen et al. Jul 2005 A1
20050216125 Huston et al. Sep 2005 A1
20060175439 Steur et al. Aug 2006 A1
20060191457 Murphy Aug 2006 A1
20060249622 Steele Nov 2006 A1
20060261772 Kim Nov 2006 A1
20070089916 Lundstrom Apr 2007 A1
20070276552 Rodocker et al. Nov 2007 A1
20070284940 Koolhiran Dec 2007 A1
20080202405 Kern Aug 2008 A1
20080276407 Schnittman et al. Nov 2008 A1
20080281470 Gilbert, Jr. et al. Nov 2008 A1
20090078484 Kocijan Mar 2009 A1
20090094765 Osaka et al. Apr 2009 A1
20090166102 Waibel et al. Jul 2009 A1
20090301203 Brussieux Dec 2009 A1
20100000723 Chambers Jan 2010 A1
20100126403 Rooney, III et al. May 2010 A1
20100131098 Rooney, III et al. May 2010 A1
20100217436 Jones et al. Aug 2010 A1
20100219003 Rooney, III et al. Sep 2010 A1
20110208417 Fink et al. Aug 2011 A1
20110282536 Rooney, III Nov 2011 A1
Foreign Referenced Citations (5)
Number Date Country
3611750 Oct 1987 DE
2038721 Jul 1980 GB
WO 02074611 Sep 2002 WO
WO 02074611 Sep 2002 WO
WO 2005014387 Feb 2005 WO
Non-Patent Literature Citations (35)
Entry
U.S. Appl. No. 12/586,248, filed Sep. 18, 2009, Rooney III et al.
U.S. Appl. No. 12/587,949, filed Oct. 14, 2009, Komstein et al.
Munk, Torben, Fuel Conservation Through Managing Hull Resistance, Motorship Propulsion Conference, Copenhagen, Apr. 26, 2006 pp. 1-10.
Kohli, Nikita, Biofouling and Design of a Biomimetic Hull-Grooming Tool, Naval Surface Warfare Center Carderock Division, West Bethesda, MD, NSWCCD-CISD-2007/002, Ship Systems Integration & Design Department Technical Report, Sep. 2007, 38 pages total.
HISMAR Hull Identification System for Maritime Autonomous Robots, http://hismar.ncl.ac.uk/public—docs/HISMAR—Poster.pdf (1 page).
HISMAR HISMAR News Report No. 2. 2008, http://hismar.ncl.ac.uk/public—docs/News—Reports/News%20Report%20No2—UNEW.pdf (4 pages).
S. Reed, A. Cormack, K. Hamilton, I. Tena Ruiz, and D. Lane. “Automatic Ship Hull Inspection using Unmanned Underwater Vehicles,” Proceedings from the 7th International Symposium on Technology and the Mine Problem. Monterey, USA. May 2006 (10 pages).
Vaganay, J., Elkins, M., Espositio, D., Oapos, Halloran, W., Hover, F., Kokko, M. Ship Hull Inspection with the HAUV: US Navy and NATO Demonstrations Results, OCEANS 2006, vol., Issue, Sep. 18-21, 2006, pp. 1-6.
Borchardt, John, Grooming the Fleet, Mechanical Engineering, vol. 132/No. 4 Apr. 2010, pp. 33-35.
Written Opinion of the International Searching Authority for PCT Application No. PCT/US2009/006122 mailed Feb. 3, 2010 (seven (7) pages).
Lee Min Wai Serene and Koh Cheok Wei, “Design of a Remotely Operated Vehicle (ROV) for Underwater Ship Hull Cleaning,” National University of Singapore, 2003, pp. 1-6.
Fu-cai et al., “The Design of Underwater Hull-Cleaning Robot,” Journal of Marine Science and Application, vol. 3, No. 1, Jun. 2004, pp. 41-45.
Townsin, R.L., The Ship Hull Fouling Penalty, Biofouling, Jan. 2003, vol. 19, (supplement), Jan. 1, 2003, pp. 9-15.
Rosenhahn et al., Advanced Nanostructures for the Control of Biofouling: The FP 6 EU Integrated Project AMBIO, Biointerphases 3(1) Mar. 2008, published Feb. 21, 2008; pp. IR1-IR5.
Preiser et al., Energy (Fuel) Conservation Through Underwater Removal and Control of Fouling on Hulls of Navy Ships, Naval Research and Development Center, Materials Department, Annapolis, Research and Development Report, Dec. 1975, 52 pgs.
MAN, B&W, Basic Principles of Ship Propulsion, Basics of Ship Propulsion, pp. 1-30, Apr. 2004.
A Copenhagen Climate Treaty, Version 1.0 Draft, A Proposal for a Copenhagen Agreement by Members of the NGO Community, published Jun. 2009, pp. 1-78 (80 pages total).
Yuan, et al., The Design of Underwater Hull-Cleaning Robot, Journal of Marine Science and Application, vol. 3, No. 1, Jun. 2004, pp. 41-45.
Tallett, et al., Potential Marine Fuels Regulations: Impacts on Global Refining, Costs & Emissions, Joint IFQC & IPIECA Roundtable: Impacts of CO2 Emissions from Refining & Shipping, London, England Oct. 1, 2007, 17 pgs.
RTI International, EnSys Energy & Systems, Inc., Navigistics Consulting; Global Trade and Fuels Assessment—Future Trends and Effects of Designating Requiring Clean Fuels in the Marine Sector: Task Order No. 1, Draft Report, RTI Project No. 0209701.001, Apr. 2006 (82 pages total).
Anti-Fouling Systems, Focus on IMO, International Maritime Organization, UK, 2002, pp. 1-31. http://www.uscg.mil/hq/cg5/cg522/cg5224/docs/FOULING2003.pdf.
Fernandez, Linda, NAFTA and Member Country Strategies for Maritime Trade and Marine Invasive Species, Journal of Environmental Management 89, 2008, pp. 308-321.
U.S. Appl. No. 12/313,643, filed Nov. 21, 2008; James H. Rooney III; office action issued Apr. 13, 2012.
U.S. Appl. No. 12/586,248, filed Sep. 18, 2009; James H. Rooney III; office action issued May 24, 2012.
U.S. Appl. No. 12/587,949, filed Oct. 14, 2009; Howard R. Kornstein; office action issued May 25, 2012.
U.S. Appl. No. 12/800,174, filed May 10, 2010; James H. Rooney, III; office action issued Feb. 24, 2012.
Written Opinion of the International Searching Authority, International Application No. PCT/US2010/002163, Oct. 13, 2010, 5 pgs. (unnumbered).
Written Opinion of the International Searching Authority, International Application No. PCT/US2010/002164, Oct. 8, 2010, 5 pgs. (unnumbered).
Written Opinion of the International Searching Authority, International Application No. PCT/US2011/000787, Jul. 20, 2011, 7 pgs. (unnumbered).
Written Opinion of the International Searching Authority, International Application No. PCT/US2011/000770, Aug. 9, 2011, 5 pgs. (unnumbered).
Written Opinion of the International Searching Authority, International Application No. PCT/US2010/002693, Dec. 9, 2010, 8 pgs. (unnumbered).
U.S. Appl. No. 12/313,643, filed Nov. 21, 2008; James H. Rooney III; office action dated Sep. 17, 2012.
U.S. Appl. No. 12/587,949, filed Oct. 14, 2009; Howard R. Kornstein; notice of allowance dated Sep. 21, 2012.
U.S. Appl. No. 12/583,346, filed Aug. 19, 2009; James H. Rooney III; office action dated Sep. 25, 2012.
U.S. Appl. No. 12/800,174; dated May 10, 2010; James H. Rooney III; notice of allowance dated Aug. 17, 2012.
Related Publications (1)
Number Date Country
20110282536 A1 Nov 2011 US