US20180143634A1 - Autonomous path treatment systems and methods - Google Patents
Autonomous path treatment systems and methods Download PDFInfo
- Publication number
- US20180143634A1 US20180143634A1 US15/808,274 US201715808274A US2018143634A1 US 20180143634 A1 US20180143634 A1 US 20180143634A1 US 201715808274 A US201715808274 A US 201715808274A US 2018143634 A1 US2018143634 A1 US 2018143634A1
- Authority
- US
- United States
- Prior art keywords
- path
- robot
- autonomous
- treatment
- program
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
- 238000000034 method Methods 0.000 title claims abstract description 139
- 230000007246 mechanism Effects 0.000 claims abstract description 51
- 238000013507 mapping Methods 0.000 claims description 7
- 230000008569 process Effects 0.000 abstract description 12
- 230000000875 corresponding effect Effects 0.000 description 26
- 230000033001 locomotion Effects 0.000 description 23
- 238000004891 communication Methods 0.000 description 15
- 230000000694 effects Effects 0.000 description 13
- 230000001276 controlling effect Effects 0.000 description 10
- 239000000463 material Substances 0.000 description 9
- 230000009471 action Effects 0.000 description 8
- 238000007726 management method Methods 0.000 description 6
- 230000001413 cellular effect Effects 0.000 description 4
- 239000000446 fuel Substances 0.000 description 4
- 230000002829 reductive effect Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 238000002485 combustion reaction Methods 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 238000003384 imaging method Methods 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 230000002452 interceptive effect Effects 0.000 description 3
- 238000012544 monitoring process Methods 0.000 description 3
- 230000009467 reduction Effects 0.000 description 3
- 244000025254 Cannabis sativa Species 0.000 description 2
- 241001465754 Metazoa Species 0.000 description 2
- 241001609370 Puschkinia scilloides Species 0.000 description 2
- 208000027418 Wounds and injury Diseases 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 2
- 238000012550 audit Methods 0.000 description 2
- 238000013474 audit trail Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000006378 damage Effects 0.000 description 2
- 238000013480 data collection Methods 0.000 description 2
- 238000007688 edging Methods 0.000 description 2
- 230000007613 environmental effect Effects 0.000 description 2
- 208000014674 injury Diseases 0.000 description 2
- 239000010813 municipal solid waste Substances 0.000 description 2
- 238000010200 validation analysis Methods 0.000 description 2
- 239000013598 vector Substances 0.000 description 2
- 241000282326 Felis catus Species 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 239000012080 ambient air Substances 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000003416 augmentation Effects 0.000 description 1
- 238000007664 blowing Methods 0.000 description 1
- 230000001010 compromised effect Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000009849 deactivation Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 239000012530 fluid Substances 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 230000006698 induction Effects 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 239000007788 liquid Substances 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000003032 molecular docking Methods 0.000 description 1
- 239000010705 motor oil Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000037361 pathway Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 238000009987 spinning Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000001931 thermography Methods 0.000 description 1
- 238000012876 topography Methods 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- 230000003442 weekly effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0212—Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory
- G05D1/0221—Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory involving a learning process
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/0088—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots characterized by the autonomous decision making process, e.g. artificial intelligence, predefined behaviours
-
- E—FIXED CONSTRUCTIONS
- E01—CONSTRUCTION OF ROADS, RAILWAYS, OR BRIDGES
- E01H—STREET CLEANING; CLEANING OF PERMANENT WAYS; CLEANING BEACHES; DISPERSING OR PREVENTING FOG IN GENERAL CLEANING STREET OR RAILWAY FURNITURE OR TUNNEL WALLS
- E01H5/00—Removing snow or ice from roads or like surfaces; Grading or roughening snow or ice
- E01H5/04—Apparatus propelled by animal or engine power; Apparatus propelled by hand with driven dislodging or conveying levelling elements, conveying pneumatically for the dislodged material
- E01H5/08—Apparatus propelled by animal or engine power; Apparatus propelled by hand with driven dislodging or conveying levelling elements, conveying pneumatically for the dislodged material dislodging essentially by driven elements
- E01H5/09—Apparatus propelled by animal or engine power; Apparatus propelled by hand with driven dislodging or conveying levelling elements, conveying pneumatically for the dislodged material dislodging essentially by driven elements the elements being rotary or moving along a closed circular path, e.g. rotary cutter, digging wheels
- E01H5/092—Brushing elements
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/0011—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots associated with a remote control arrangement
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0212—Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0212—Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory
- G05D1/0214—Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory in accordance with safety or protection criteria, e.g. avoiding hazardous areas
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0287—Control of position or course in two dimensions specially adapted to land vehicles involving a plurality of land vehicles, e.g. fleet or convoy travelling
- G05D1/0291—Fleet control
- G05D1/0297—Fleet control by controlling means in a control room
-
- G05D2201/0213—
Definitions
- the methods used today to clear the snow involve a combination of human driven vehicles including trucks with plows or other snow removal attachments, human driven machines including snow throwers, snow blowers, push-behind snow plows, and manual shoveling.
- Large vehicles equipped with plows are typically used in large areas such as parking lots, streets and driveways that large vehicles can access easily.
- Smaller snow clearing machines are typically used where large vehicle plows cannot access, such as sidewalks, walking paths, and near edges of streets and parking lots where obstacles (such as walls, edging, or curbs) are present.
- manual shoveling is used in places inaccessible to snow clearing machines. Shoveling is by far the slowest method of snow clearing and is the most difficult for which to find labor. Since many people are sometimes needed to shovel, it is also the most expensive service to supply over a long period of time.
- an autonomous path treatment system and associated path treatment method uses a mobile path recording device with locator, processor and firmware to capture a sequence of coordinates and directions of travel of a path as the mobile device is moved along the path.
- the system has an autonomous path treatment robot having a treatment mechanism for treating the path, a controller with processor and memory storing firmware that when executed obeys steps of a path program file to control the motor and the treatment mechanism to treat the path.
- the system also has a server configured to execute a path program compiler to transform the recorded sequence of coordinates and directions into the path program file of instructions for controlling the autonomous path treatment robot to treat the path based upon the coordinates.
- a method for autonomously treating a path includes receiving, within a computer server, coordinates and directions of travel defining the path from a mobile device adapted with sensors to detect obstacles and generating, based upon the coordinates and directions of travel, a path program for controlling an autonomous path treatment robot to autonomously treat the path. The method continues with sending the path program to control the autonomous path treatment robot to treat the path; receiving status information from the autonomous path treatment robot during treatment of the path; and generating documentation indicative of the path treatment by the autonomous path treatment robot based upon the status information.
- a method for autonomously treating a path includes, receiving within a computer server, coordinates and directions of travel defining the path from a laptop or workstation equipped with a mapping and path designation program operable with aerial photographs of a site to designate a path. The method continues with sending the path program to control the autonomous path treatment robot to treat the path; receiving status information from the autonomous path treatment robot during treatment of the path; and generating documentation indicative of the path treatment by the autonomous path treatment robot based upon the status information.
- the aerial photographs are obtained through a drone, helicopter, fixed-wing aircraft, or reconnaissance satellite, and registered with markers to known GPS coordinates.
- an autonomous path treatment system in another embodiment, includes a mobile path recording device having a locator, a processor and a memory storing machine readable instructions executable by the processor to capture, using the locator, a sequence of coordinates and directions of travel of a path to be treated as the mobile device is moved along the path by an operator.
- the system also includes an autonomous path treatment robot having a motor for maneuvering the robot along the path; a treatment mechanism for treating the path; a controller having a processor and memory storing machine readable instructions that when executed by the processor obeys steps of a path program to control the motor and the treatment mechanism to treat the path.
- the system also includes a server having been configured to generate the path program from a recorded sequence of coordinates and instructions, the path program comprising instructions for controlling the autonomous path treatment robot to treat the path based upon the coordinates; the server configured to: send the path program to the autonomous path treatment robot; receive the status information from the autonomous path treatment robot via the wireless interface as the autonomous path treatment robot treats the path; and generate a web-based dashboard illustrating a status of the autonomous path treatment robot based upon the status information.
- an autonomous path treatment robot for treating a path includes a motor driving at least one wheel to maneuver the autonomous path treatment robot along the path; a path treatment device positioned ahead of the motor and wheel for treating the path; a wireless interface for receiving, from a remote server, a path program that includes a sequence of directives; and a controller having a processor and memory storing machine readable instructions that are executed by the processor to cooperatively control the motor and the rotating brush to treat the path based upon the sequence of directives.
- FIG. 1 shows one exemplary autonomous path treatment system, in an embodiment.
- FIG. 2 illustrates an alternative embodiment of the autonomous path treatment robot of FIG. 1 having an articulated steering system.
- FIG. 3 illustrates a path capture device for use with the autonomous path treatment system of FIG. 1 .
- FIG. 4 is a schematic illustration of an alternative path capture system utilizing registered, calibrated aerial photographs, with a path designation and mapping software to designate paths and areas to be treated.
- FIG. 5 illustrates an exemplary autonomous path treatment robot having a mower attachment in place of a snow-removal device, in an embodiment.
- FIG. 6 is a perspective view of the embodiment with mower attachment illustrated in FIG. 5 .
- FIG. 7 is a schematic showing components of the robot of the autonomous path treatment system of FIG. 1 , in an embodiment.
- FIG. 8 shows the robot operation center of FIG. 1 in further exemplary detail.
- FIG. 9 shows one exemplary dashboard for displaying a current status and progress of the autonomous path treatment robot of FIG. 1 , in an embodiment.
- FIG. 10 shows the path capture device of FIG. 3 in further detail.
- FIG. 11 shows the status of FIG. 5 in further exemplary detail.
- FIG. 12 is a flowchart illustrating one exemplar method for capturing location data defining a path to be treated by the autonomous path treatment robot of FIG. 1 , in an embodiment.
- FIG. 13 is a flowchart illustrating one exemplary method for generating the path program of FIG. 1 , in an embodiment.
- FIG. 14 is a flowchart illustrating one exemplary method for autonomous path treatment, in an embodiment.
- FIG. 15 shows one exemplary method for providing interactive control of the autonomous path treatment robot of FIG. 1 , in an embodiment.
- FIG. 16 shows one exemplary scenario where a management entity operates the robot operations center of FIG. 1 to provide simultaneous service to three service providers that each utilize one or more of autonomous path treatment robots, in an embodiment.
- FIG. 17 is a schematic illustrating a plan view of the robot of FIG. 1 in an embodiment.
- examples described herein describe a robot sized specifically for paths and walkways, the robot may be scaled for other situations including those where prior art snow removal solutions such as large, plow-equipped, vehicles are viable.
- Using the robot described herein may provide certain advantages, including: labor cost reduction, insurance cost reduction, reduction in number or need of manual laborers used in snow removal, reduced physical stress or injury during snow removal, reduced time to clear snow at a given site, snow clearing available 24 hours 7 days a week, and reduced overall cost of clearing snow.
- multiple robots may be deployed and activated simultaneously. Other advantages may become apparent in the description below.
- FIG. 1 shows one autonomous path treatment system 100 that includes an autonomous path treatment robot 102 .
- a path capture device 150 utilizes multiple sensors 152 to capture location data 154 of a path 180 to be treated.
- both the autonomous path treatment robot 102 and path capture device 150 employ several navigation sensors 152 that may include: global positioning system (GPS) which may be Wide Area Augmentation System (WAAS) enhanced, magnetometers, accelerometers and speedometers, and gyroscopes.
- GPS global positioning system
- WAAS Wide Area Augmentation System
- magnetometers magnetometers
- accelerometers and speedometers and gyroscopes
- sensors may include: RADAR, LIDAR, thermal imaging cameras, visual-wavelength color cameras, and ultrasonic sensors adapted to detect a texture as well as presence of obstacles.
- Path capture device 150 records location data 154 as path capture device 150 traverses over path 180 .
- Path capture device 150 sends location data 154 to a robot operations center (ROC) 120 where it is processed by a robot controller 130 to generate a path program 122 .
- Path program 122 includes a sequence of directives, such as movement directives with coordinates defining locations along path 180 and control directives for controlling components of robot 102 that are followed by robot 102 to treat path 180 .
- path program 122 may include operational directives such as direction of discharge of cleared snow such as by changing an angle of a snow thrower nozzle, an angle of a brush or blade used within clearing mechanism 214 , or an angle of another slow clearance device.
- Path program 122 may also include operational directives controlling operation of various additional features such as lights, rotation of a clearing brush, operation of treatment applicator 220 , and operation of an aural warning and/or communications system.
- ROC 120 and robot 102 communicate wirelessly using one or more of a cellular carrier, Wi-Fi, the Internet, Bluetooth, and so on.
- location data 154 includes global positioning system (GPS) coordinates, orientation in the Earth's magnetic field, and maximum speeds.
- location data 154 includes one or more of RADAR, LIDAR, and ultrasonic ranges to nearby obstacles as well as textures of obstacles recorded with each coordinate along the path to be treated.
- the path treatment robot 102 operated in a manually controlled mode operates as a path capture device to capture location data 154 of path 180 .
- the thermal and color cameras of the path treatment robot 102 are mounted on a sensor tower 102 C ( FIG. 2 ), and corresponding color cameras 150 B of the path capture device 150 are mounted on a sensor pole 150 A.
- the ultrasonic sensors may be mounted low on each front and rear corner of robot 102 and path capture device 150 .
- Path capture device 150 also has a touchscreen display 151 A that permits user interaction with electronics of the path capture device.
- paths are captured in other ways such as by using digital aerial photographs 170 ( FIG. 4 ) with a computer workstation.
- aerial photographs from commercial satellite coverage may be used. Where satellite photographs have inadequate resolution, are outdated, are cloud-obscured, or otherwise are inadequate, aerial photographs from other sources are used.
- Other sources of aerial photographs may include photographs taken from fixed-wing aircraft, helicopters, or by a camera-equipped drone 172 .
- a camera-equipped drone may in some cases permit obtaining adequate aerial photographs despite tall buildings and trees that may obstruct views from higher-flying aircraft or satellites.
- markers 174 are positioned on a site and precisely located with a GPS 176 , markers 174 may be the white “X” markers often used in aerial photography or may be any other object readily identifiable in an aerial photograph such as a corner of a planter or corner of a sidewalk.
- the drone is then flown over the site at a constant altitude and photographs are obtained with a drone-mounted camera 178 , these photographs are transmitted via an IEEE 802.11 Wi-Fi port 181 of a laptop or workstation computer 182 .
- both markers 174 and the entire site are not shown on a single frame, individual frames are stitched to generate a photo 170 showing the entire site and markers.
- the markers 174 are located on photo 170 and their previously obtained GPS coordinates are used to register the photo 170 to GPS coordinates and calibrate the photo 170 so precise locations and distances can be measured from photo 170 .
- the laptop or workstation computer 182 then executes a mapping, path, and area designation software 184 in memory 186 of laptop or workstation computer 182 , the mapping, path, and area designation software 184 detects edges on photo 170 and is then used by an operator 188 to designate on photo 170 areas and paths at the site that are to be treated such as sidewalks 187 , building entranceways 189 , handicapped parking places 191 and interconnecting paths such as a curb cutout 193 where robot 190 can safely transition from sidewalk 187 to parking spaces 191 .
- a mapping, path, and area designation software 184 detects edges on photo 170 and is then used by an operator 188 to designate on photo 170 areas and paths at the site that are to be treated such as sidewalks 187 , building entranceways 189 , handicapped parking places 191 and interconnecting paths such as a curb cutout 193 where robot 190 can safely transition from sidewalk 187 to parking spaces 191 .
- mapping, path, and area designation software 184 then provides location data 192 to path program 194 at ROC 196 so path program 194 can generate detailed paths that can be transmitted by robot controller 198 of ROC 196 to robot 190 for treating the areas and paths to be treated.
- a trial run of robot 190 is conducted during which robot 190 obtains additional path data, such as one or more of RADAR, LIDAR, and ultrasonic ranges to nearby obstacles as well as textures of obstacles recorded with each, this trial run may in some particular embodiments be performed under observation by operator 188 who may use a mobile device 199 to resolve robot stoppages due to obstacles and control and adjust paths traversed by the robot.
- the detailed paths, as annotated with additional path data, are then stored for use during autonomous robot operation.
- snow removal path treatment apparatus of robot 102 is removable and, as illustrated in FIG. 5 and FIG. 6 , robot 102 E may be equipped with a removable multiple-rotor mulching rotary mower deck 102 F. In this embodiment, robot 102 E may be used for summer mowing of grassy paths or grass-covered areas in addition to winter snow removal operations.
- System 100 may be operated by one or more entities, and is illustratively shown with a management entity 101 operating ROC 120 and a service provider 151 that operates path capture device 150 and autonomous path treatment robot 102 to provide a clearing service along path 180 at a service location for a third party.
- service provider 151 may purchase, lease, or rent robot 102 from management entity 101 (or from another entity) or be contracted by the third party to provide the path treatment service at the service location.
- Service provider 151 then contracts with management entity 101 to control robot 102 to perform the path treatment service at each service location.
- Service provider 151 may be contracted by multiple parties to provide service at multiple service locations without departing from the scope hereof. In certain scenarios, a single entity may provide both management and service to the third party.
- FIG. 7 is a schematic showing exemplary components of robot 102 of autonomous path treatment system 100 of FIG. 1 .
- Robot 102 includes a power source 210 that, for example, incorporates one or more of an internal combustion engine, battery, and a fuel cell.
- power source 210 includes an on-board battery, that battery may be charged from an internal combustion engine of power source 210 .
- the robot 102 upon completion of clearing a path the robot 102 is configured to return to, and position its rear end in, a docking station (not shown) adapted to charge the on-board battery by induction.
- line AC power is provided to a charging electronics module that, when the robot is present, drives at high frequency a first coil positioned near the rear end of the robot; when the robot's rear end is positioned near the coil a second coil in the rear end of the robot is inductively coupled to the first coil and picks up high frequency power that is then rectified for charging the on-board battery of the robot.
- Robot 102 also includes a propulsion mechanism 212 that receives power from power source 210 to propel and maneuver robot 102 .
- propulsion mechanism 212 includes a drivetrain with four wheels.
- propulsion mechanism 212 includes two caterpillar tracks.
- Robot 102 includes a steering mechanism 213 .
- the steering mechanism 213 is a skid-steer system that steers the robot by differential operation of propulsion mechanism 212 on opposing sides of robot 102 .
- FIG. 1 the steering mechanism 213 is a skid-steer system that steers the robot by differential operation of propulsion mechanism 212 on opposing sides of robot 102 .
- robot 102 A is articulated having a pivoting coupling 102 B between front and rear portions of robot 102 A with a hydraulically operated mechanism configured to rotate the front portion of robot 102 A about the pivot relative to the rear portion of robot 102 A.
- Robot 102 also includes a clearing mechanism 214 that receives power from power source 210 to clear snow from path 180 .
- clearing mechanism 214 is a spinning, cylindrical, brush that is positioned in front of propulsion mechanism 212 and moved by propulsion mechanism 212 .
- clearing mechanism 214 is a blade.
- clearing mechanism 214 is a snow blowing device.
- the mounting of clearing mechanism 214 allows pivoting of clearing mechanism 214 along a central, vertical axis (perpendicular to the ground), relative to propulsion mechanism 212 and/or a main chassis of robot 102 .
- This pivoting allows clearing mechanism 214 to operate at an angle relative to a direction of motion of propulsion mechanism 212 (and hence motion of robot 102 ), as may be required for a blade to push snow to the side.
- the brush may spin in either direction, but is generally operated so that snow is brushed away from robot 102 .
- Robot 102 may also include an optional treatment applicator 220 and associated treatment tank 222 that stores a treatment material 224 applied to path 180 by treatment applicator 220 .
- treatment material 224 is an ice-melter composition.
- treatment applicator 220 is a spreader device and treatment material 224 is granular and spreadable by the spreader device.
- treatment applicator 220 is a sprayer device and treatment material 224 is a liquid such as a de-icing solution.
- Treatment applicator 220 may be positioned aft of propulsion mechanism 212 ; for example, where treatment material 224 is a de-icing material, treatment applicator may deposit the de-icing material onto path 180 after robot 102 has removed snow therefrom.
- treatment applicator 220 is a vacuum device that collects and stores (e.g., in treatment tank 222 ) material as robot 102 moves.
- clearing mechanism 214 is a brush that spins in an opposite direction (as compared to when used to remove snow) such that debris (e.g., dirt, leaves, etc.) may be loosened and collected by the vacuum device.
- Treatment applicator 220 may be selected and configured to collect debris from both hard (e.g., streets, pathways, pavement, etc.) and soft (e.g., grass) surfaces.
- robot 102 may be configured to autonomously sweep debris from paths, walkways, streets, parking areas, and may also be used to clear leaves from lawns and other areas.
- path program 122 may be generated to control robot 102 to clear any area.
- robot 102 E may be provided with a path program 122 commanding it to traverse an area multiple times, the area being wider than the path it can clear in one pass, to mow the entire area.
- Robot 102 also includes a controller 202 (e.g., an on-board computer) with a processor 204 , memory 206 , and an interface 240 .
- Memory 206 may represent one or more of static RAM, dynamic RAM, non-volatile memory, FLASH memory, optical storage, magnetic storage, and so on.
- Interface 240 provides communication between controller 202 and external devices and may utilize one or more of Wi-Fi, Bluetooth, cellular, Ethernet, and USB type connections and connectors.
- Controller 202 communicates with a plurality of sensors 230 , such as a camera, RADAR, LIDAR, infrared, ultrasonic sensor, an inertial platform, a GPS receiver (or other such navigation device), accelerometer, gyroscope, compass, proximity sensor, battery gauge, and/or fuel gauge. Using sensors 230 , controller 202 determines a current status 270 of robot 102 .
- sensors 230 such as a camera, RADAR, LIDAR, infrared, ultrasonic sensor, an inertial platform, a GPS receiver (or other such navigation device), accelerometer, gyroscope, compass, proximity sensor, battery gauge, and/or fuel gauge.
- Controller 202 includes a control algorithm 208 that includes machine-readable instructions (i.e., software/firmware), stored within memory 206 , that are executed by processor 204 to control operation of robot 102 , in a particular embodiment these instructions are stored within a non-transitory computer readable media such as a flash memory device.
- Control algorithm 208 is shown with a control executive 250 , an obstacle identifier 252 , a navigator 254 and a monitor module 256 .
- Control executive 250 provides high-level operational control of robot 102 and manages communication via interface 240 with ROC 120 . Control executive 250 invokes other modules 252 , 254 , 256 , as needed.
- Control executive 250 invokes navigator 254 to process data from sensors 230 and determine a current location of robot 102 and a current direction of travel of robot 102 .
- Navigator 254 directs robot 102 along path 180 as defined within path program 122 .
- Navigator 254 processes data from sensors 230 to determine the current location, orientation, and speed of robot 102 and provides directives to adjust motion of robot 102 when robot 102 deviates from path 180 and/or path program 122 .
- Control executive 250 invokes obstacle identifier 252 to process data from sensors 230 to detect obstacles in or near the path of robot 102 . If obstacles are near the path of robot 102 , the robot 102 determines first if they correspond to obstacles having similar texture and location that were identified during path capture. If the obstacles match, such as is likely with walls, curbs, light poles, sign poles, fireplugs, railings, and similar immobile objects, the robot uses these obstacles to refine its location in the path it is following and avoids colliding with them in the same way the path capture device was manipulated to avoid them during path capture.
- Obstacles other than those that match obstacles present during path capture may also be encountered; such obstacles may include one or more of people, cars, trucks, animals, mounds of snow from prior clearance efforts, and other movable objects.
- data from one or more of sensors may include thermal and color cameras, RADAR, LIDAR, infrared and ultrasonic sensors, may be used to detect one or more of people, animals, and objects along path 180 of robot 102 .
- Sensors 230 may include pressure sensors, fluid level sensors, temperature sensors, voltage sensors, and current sensors that monitor the health of robot 102 by detecting one or more of engine fuel level, engine oil level, engine temperature level, battery level, operating temperature, and rotational speed of wheels and motors, and so on. Sensors 230 may also include sensors for detecting environmental data that may be sent back to ROC 120 such as one or more of ambient air temperature, relative humidity, atmospheric pressure, and so on.
- control executive 250 retrieves path program 122 from ROC 120 and invokes navigator 254 to determine, using one or more sensors 230 , a current location of robot 102 . Control executive 250 then invokes navigator 254 to control movement of robot 102 to follow path program 122 . Control executive 250 and navigator 254 cooperate to follow path program 122 and clear snow from path 180 autonomously. For example, control executive 250 and navigator 254 cooperate to navigate robot 102 from its current location to a next location defined within path program 122 (e.g., utilizing a straight line (dead reckoning) path and navigational information determined by navigator 254 ). Robot 102 follows path program 122 until it reaches the end, wherein robot 102 may shut down until required again.
- path program 122 e.g., utilizing a straight line (dead reckoning) path and navigational information determined by navigator 254 .
- control executive 250 invokes monitor module 256 to continually or periodically monitor sensors 230 to determine proximity of robot 102 to other objects. For example, monitor module 256 detects unexpected obstacles in the path of robot 102 by monitoring outputs from sensors 230 . If an obstacle is detected, control executive 250 invokes obstacle identifier 252 to identify the unexpected obstacle based upon data from sensor 230 . Obstacle identifier 252 may compare sensor data to object identity 282 of database 280 stored within memory 206 . Database 280 may include a plurality of object identifiers 252 that each defines sensor data corresponding to a previously detected obstacle.
- Database 280 may also store actions 284 in association with one or more object identifier 252 that define directives to control robot 102 based upon the corresponding object identity 282 .
- object identity 282 may define sensor data corresponding to sensors 230 detecting a dog in front of robot 102 , wherein corresponding actions 284 includes instructions to stop movement of robot 102 , stop operation of clearing mechanism 214 , and to wait until the obstacle clears.
- object identity 282 defines sensor data corresponding to detection of a snow drift in front of robot 102 , wherein corresponding actions 284 include instructions to continue movement of robot 102 at a slower speed to clear the snow drift.
- object identity 282 defines sensor data corresponding to detection of certain objects, such as a trash can mistakenly left or blown onto path 180 , and corresponding actions 284 include instructions for calculating movement of robot 102 around the trash can using sensors 230 .
- the directives 260 may define movements of robot 102 relative to the detected location and size of the unexpected obstacle.
- a vehicle is parked on or across path 180 such that robot 102 cannot be maneuvered around it, wherein actions 284 includes instructions to stop movement of robot 102 , stop operation of clearing mechanism 214 , and to wait for further instructions from ROC 120 and/or manual override control from a local human operator.
- Control executive 250 periodically generates and sends status 270 to ROC 120 .
- Control executive 250 may generate status 270 to include data from sensors 230 corresponding to the unexpected obstacle if detected.
- control executive 250 stops movement of robot 102 , generates status 270 to include sensor data from sensors 230 corresponding to the detected obstacle, sends status 270 to ROC 120 , and then waits for further directives 260 from ROC 120 (or a local operator).
- control executive 250 may utilize a camera of sensors 230 to capture an image of the unexpected obstacle and send that image to ROC 120 within status 270 .
- Control executive 250 may stop motion of robot 102 until it receives further instructions from ROC 120 .
- Robot controller 130 processes status 270 to generate one or more directives 260 that define actions for robot 102 to resolve the unexpected obstacle. For example, robot controller 130 may send directives 260 to robot 102 to (a) instruct robot 102 to wait until obstacle is no longer present and then resume following path program 122 ; (b) to instruct robot 102 to determine a path around the unexpected obstacle and continue following path program 122 ; or (c) instruct robot 102 to execute an action received from ROC 120 .
- directives 260 may include instructions (e.g., a sub-program) for using sensor data to maneuver robot 102 around the obstacle while avoiding collision with the obstacle or any other object (e.g., a wall or edging of path 180 ).
- Control executive 250 may also learn and optimize such avoidance maneuvers based upon the determined identification and size of the obstacle.
- control executive 250 may store directives 260 as actions 284 in association with sensor data corresponding to the unexpected obstacle as object identity 282 within database 280 .
- controller 202 learns how to identify and handle many different obstacles without waiting for directives 260 from ROC 120 .
- controller 202 builds database 280 with intelligence to identify and handle unexpected obstacles autonomously. That is, robot 102 learns to take appropriate action to continue and complete the task defined within path program 122 .
- Control executive 250 sends (e.g., continuously and/or periodically—even when obstacles are not detected) time-stamped status 270 back to ROC 120 to allow robot controller 130 (or any supervisor with access to the data at ROC 120 ) to monitor the status and progress of robot 102 . Communication between ROC 120 and robot 102 is secure.
- robot controller 130 may invoke document generator 370 to generate documentation 372 supporting a reason why a portion of path 180 has not been cleared.
- service provider 151 may send such documentation to a customer requesting that the obstacle be removed from path 180 for future treatment operations by robot 102 .
- the Robot Operations Center (ROC)
- FIG. 8 shows ROC 120 of FIG. 1 in further exemplary detail.
- ROC 120 includes a digital processor 302 or computer communicatively coupled with memory 304 and an Internet interface 390 .
- Memory 304 represents one or both of volatile memory (e.g., RAM, DRAM, SRAM, and so on) and non-volatile or non-transitory memory such as FLASH, ROM, magnetic memory, magnetic disk, and other nonvolatile memory known in the computer art, and is illustratively shown storing software 306 implemented as machine readable instructions that are executed by processor 302 to provide the functionality of ROC 120 as described herein.
- volatile memory e.g., RAM, DRAM, SRAM, and so on
- non-volatile or non-transitory memory such as FLASH, ROM, magnetic memory, magnetic disk, and other nonvolatile memory known in the computer art, and is illustratively shown storing software 306 implemented as machine readable instructions that are executed by processor 302 to provide the functionality of ROC 120 as
- Software 306 includes robot controller 130 implemented with a path program generator 310 that generates path program 122 based upon location data 154 , 192 received from path capture device 150 or from other sources such as a mapping, path, and area designation program 184 .
- Path program 122 defines a series of coordinates and orientation vectors and other operational instructions, such as acceleration, speed, and the direction of discharge, for robot 102 to follow to clear path 180 .
- Robot controller 130 also implements a situation analyzer 312 that processes status 270 received from robot 102 to determine progress of robot 102 through path program 122 , and to resolve situations encountered by robot 102 that cannot be resolved by robot 102 .
- situation analyzer 312 may generate at least one directive 260 that is sent to robot 102 indicating one or more actions for robot 102 to take to resolve a current situation encountered by robot 102 .
- Software 306 also includes a dashboard generator 380 that generates a dashboard 382 (e.g., see FIG. 9 for additional detail) through cooperation with Internet interface 390 that allows an operator (or customer) to view progress of robot 102 clearing path 180 . That is, dashboard generator 380 may process status 270 as it is received from robot 102 and update dashboard 382 in real-time. Dashboard generator 380 may also process previously recorded status 270 within history database 350 and generate a “replay” of activity by robot 102 . For example, based upon recorded status 270 within history database 350 , dashboard generator 380 may generate dashboard 382 to show progress of robot 102 on a previously completed clearing of path 180 , thereby allowing an operator and/or customer to verify that path 180 was cleared correctly. Dashboard generator 380 may allow this replay at normal speed, and may allow speed of the replay to be increased and/or decreased through interaction with dashboard 382 .
- dashboard generator 380 may process this replay at normal speed, and may allow speed of the replay to be increased and/or decreased through interaction with dashboard 382 .
- ROC 120 records status 270 within a history database 350 that provides evidence of the performance of robot 102 .
- Software 306 also includes a document generator 370 that processes status 270 records within history database 350 to generate documentation 372 , which may be sent to a customer as evidence that robot 102 has performed the necessary work (e.g., clearing snow from path 180 ) as a service to a third party.
- Documentation 372 contains information (e.g., dates, times, performance data, and images) that documents activity of robot 102 .
- documentation 372 may be automatically generated for each service (i.e., each path clearing) provided by robot 102 , or may summarize activity over a predefined period (e.g., a weekly report).
- Document generator 370 may digitally sign documentation 372 to ensure that it cannot be forged to show activities that did not occur, or to remove activities that did occur. That is, history database 350 and document generator 370 provide an accurate account of activity by robot 102 .
- robot 102 e.g., control executive 250
- robot 102 interacts with ROC 120 using one or more of cellular, satellite, and Wi-Fi protocols.
- Robot 102 may have its own IP address and thereby operates similarly to other Internet-of-Things (IoT) type devices.
- IoT Internet-of-Things
- robot 102 may operate autonomously, without continuous communication with ROC 120 , certain conditions may require robot 102 to communicate with ROC 120 or a local handheld computer (e.g., a smart phone) in order to clear the condition. For example, as described above, where control executive 250 and object identifier 252 cannot identify an unexpected obstacle, control executive 250 stops movement of robot 102 until further instructions are received.
- Control executive 250 also attempts to communicate with a local operator's mobile device 190 if any is nearby and monitoring this robot. For example, control executive 250 may send a current status 270 to mobile device 190 , which may be a smart phone or laptop computer running an app for communicating with robot 102 , whereupon mobile device 190 alerts the local operator to the current condition of robot 102 . The local operator may then interactively resolve the condition using mobile device 190 , for example by remotely controlling robot 102 or shutting down robot 102 using mobile device 190 , and/or may manually resolve the problem in other ways, for example by physically moving the obstacle.
- mobile device 190 may be a smart phone or laptop computer running an app for communicating with robot 102 , whereupon mobile device 190 alerts the local operator to the current condition of robot 102 .
- the local operator may then interactively resolve the condition using mobile device 190 , for example by remotely controlling robot 102 or shutting down robot 102 using mobile device 190 , and/or may manually resolve the problem in other ways, for example
- ROC 120 may include one or more servers (e.g., computers, each with memory and at least one processor) that communicate with one another and with robot 102 as it operates to execute path program 122 .
- ROC 120 may simultaneously communicate with a plurality of robots 102 , controlling each one independently to complete different tasks, and convey status 270 of each robot 102 to one or more human operators.
- an operator may connect to ROC 120 via a web browser over the Internet to monitor progress of the robots to complete their tasks.
- Each operator may be in charge of one or more robots 102 .
- ROC 120 may thereby provide a cloud service (SaaS) that a customer uses to monitor operation of their robot(s) 102 .
- SaaS cloud service
- a customer may provide a snow clearing service to a third party using robots 102 .
- a customer may use robots 102 to clear their own paths rather than employ a snow clearing service.
- FIG. 9 shows one exemplary dashboard 382 for displaying a current status and progress of robot 102 .
- Dashboard 382 is generated by dashboard generator 380 based upon status 270 received from robot 102 and may be viewed, via Internet interface 390 , by an operator of service provider 151 and/or an operator of ROC 120 .
- the operator views dashboard 382 in a web page generated by ROC 120 to visually receive an indication of the status of each of one or more robots 102 .
- Dashboard 382 is interactive and may allow the operator to drill-down into any given robot to receive more detailed information about the status of the robot, and of individual parts of the robot.
- Dashboard 382 may also allow the operator to control robot 102 , for example to shutdown operation of robot 102 , pause operation of robot 102 , and so on.
- dashboard 382 includes a graphical representation 402 of path 180 where a first completed portion is represented as a solid line 404 and an untreated portion indicated as a dashed line 406 .
- Graphical representation 402 may show key points 408 along path 180 , a current location 410 of robot 102 , and a finish location 411 .
- a bar graph 412 may illustrate a progress of robot 102 along path 180 and an estimated time of completion 414 .
- Dashboard 382 also shows a bar graph 416 representing one or more of: available fuel and/or battery level, available treatment material 224 , and so on.
- Dashboard 382 may also show one or more images captured by sensors 230 and included within status 270 .
- Status 270 may include one or more images, captured by imaging sensors 230 of a view in any direction around robot 102 . These images may be stored within memory 206 (e.g., within status 270 ) and within memory 304 of ROC 120 , thereby providing a visual audit trail of activity by robot 102 . For example, status 270 may be reviewed to determine whether robot 102 performed the required task (e.g., clearing path 180 at the requested time). In one embodiment, mobile device 190 may interrogate memory 206 of robot 102 to retrieve status 270 to determine and view the most recent actions of robot 102 .
- all communication between robot 102 and ROC 120 is secure (e.g., encrypted and digitally signed) to protect against loss or corruption of sensitive data and to prevent robot 102 from being remotely “taken over” by a third party (e.g., hostile attacker/hacker).
- a third party e.g., hostile attacker/hacker
- all messages from ROC 120 to robot 102 are encoded for use only by the addressed robot 102 .
- each of ROC 120 and robot 102 may have its own set of public key infrastructure (PKI) keys thereby allowing secure communication.
- PKI public key infrastructure
- FIG. 10 shows path capture device 150 of FIG. 1 in further detail.
- path capture device 150 collects and sends location data 154 to ROC 120 .
- Path capture device 150 is a mobile computing device that includes a processor 502 communicatively coupled with a memory 504 , a locator 510 , and a communication interface 520 .
- Memory 504 is shown storing an acquirer 550 that includes machine readable instructions executed by processor 502 to provide functionality of path capture device 150 as described herein.
- Locator 510 operates to determine a current location of device 150 , and may represent a GPS receiver and/or a location triangulation receiver.
- Communication interface 520 implements one or more communication protocols such as Wi-Fi, cellular, Bluetooth, and so on, to allow path capture device 150 to communicate with ROC 120 .
- Path capture device 150 is taken to a site containing path 180 (which is to be cleared of snow for example) and moved (e.g., by an operator or customer) along path 180 .
- the operator may simply walk path 180 while holding or pushing path capture device 150 operating in a “data-collection” mode.
- device 150 uses locator 510 to periodically, in an embodiment at least once per thirty centimeters, determine coordinates 560 of its current location and a current direction of travel that are then stored within memory 504 .
- Path capture device 150 also automatically records any objects near the path and their texture detected at each point by sensors of the path capture device 150 or robot 102 ; these sensors include ultrasonic and LIDAR sensors adapted to scan at least ahead and to the sides of the path capture device 150 or robot 102 .
- Path capture device 150 also allows the operator to record a feature 562 corresponding to coordinates 560 (i.e., capture a feature at a current location of path capture device 150 ) within location data 154 . That is, path capture device 150 allows the user to mark significant features of path 180 while capturing coordinates 560 .
- the operator may identify a start location where robot 102 is to start treatment of path 180 and an end location identifying where robot 102 is to stop treatment of path 180 .
- the operator may also indicate physical features of, or around, path 180 that may be useful when creating path program 122 .
- the operator may indicate the position of one or more of a curb, a step, a wall, a drop-off, a bank, and so on, relative to path 180 .
- the operator orients a camera of path capture device 150 towards a feature, and upon indication of the type of feature (e.g., wall, steps, etc.), path captures device 150 stores its current location, orientation (e.g., derived from sensors within path capture device 150 such as a magnetic compass, a GPS unit, and so on), and an image from the camera, corresponding to the identified feature, within memory 504 .
- the type of feature e.g., wall, steps, etc.
- path captures device 150 stores its current location, orientation (e.g., derived from sensors within path capture device 150 such as a magnetic compass, a GPS unit, and so on), and an image from the camera, corresponding to the identified feature, within memory 504 .
- path capture device 150 When capturing coordinates 560 and features 562 of path 180 , the operator may also interactively provide operational controls to path capture device 150 . For example, where a wall is located along one side of path 180 , the operator may interact with path capture device 150 , at the appropriate location, to enter an operational control to change the direction of clearing mechanism 214 to clear snow to an opposite side of path 180 from the wall. Path capture device 150 may allow the operator to define other parameters relevant to robot 102 , such as operation and application rate of treatment applicator 220 and a direction of rotation of clearing mechanism 214 . Path capture device 150 may in some embodiments record video of the path, this video may be played back by an operator resolving issues with obstacles detected by robot 102 when robot 102 is treating the path.
- the robot 102 or path capture device 150 may, but need not, have the path clearance device 214 attached.
- images captured with infrared and color cameras 150 B are annotated with an outline of path clearance device 214 and displayed to an operator on screen 151 A to assist in determining when movement of the robot should have adequately cleared the path.
- a map showing zones expected to be cleared by prior movements of the robot is shown to the operator to assist the operator in moving the path capture device to capture a path that clears remaining portions of an area to be cleared without undue or insufficient overlap.
- location data 154 is uploaded to ROC 120 and processed by path program generator 310 to generate path program 122 .
- Path capture device 150 may capture location data 154 for any number of paths at a given site and may capture location data 154 for any number of service locations. Where location data 154 is collected for multiple paths at a given site, path program generator 310 may generate sequence instructions within path program 122 to ensure that robot 102 (or multiple robots) working at that site clear path 180 in a most efficient sequence.
- Path capture device 150 may also be used to define a perimeter of an area to be cleared, wherein path program generator 310 generates path program 122 with coordinates that control robot 102 to clear the defined area in a most effective manner. For example, when removing snow from a large area such as parking lot, one or more algorithms for traversing and clearing such areas may be used to generate path program 122 to move the snow in an efficient and effective manner such that the required effort by robot 102 is minimized.
- a drone is controlled to traverse path 180 collecting location data 154 and one or more of images, LIDAR data, and so on, that are used to identify features of the path.
- generated path program 122 is overlaid on an aerial photograph or satellite photograph of the area to be treated and presented to an operator so that the operator can preview expected motions of the robot 102 .
- FIG. 11 shows status 270 of FIG. 8 in further exemplary detail.
- Status 270 includes a robot ID 602 , a time stamp 604 , location coordinates 606 , position in activity 608 , sensor data 610 , movement status 616 , and a digital signature 618 .
- Sensor data 610 may periodically include one or more images 612 (e.g., for audit purposes) and may include one or more images 612 acquired when an unexpected obstacle is detected by monitor module 256 . In an embodiment, images 612 may be obtained in any desired direction around robot 102 .
- Robot ID 602 is an identifier that uniquely identifies robot 102 , such as a unique serial number assigned to robot 102 .
- Timestamp 604 defines the date and time that status 270 was generated by control executive 250 , thereby allowing multiple status 270 records to be chronologically sorted to define an activity sequence.
- Location coordinates 606 define the location of robot 102 at the time status 270 was generated, and may for example be GPS coordinates.
- Position in activity 608 indicates progress of robot 102 through path program 122 and/or progress of robot 102 along path 180 .
- Images 612 may be captured by one or more imaging sensors 230 of robot 102 at the time status 270 is generated and may show the portion of path 180 yet to be cleared and the portion of path 180 that has been cleared.
- the one (or more) imaging sensor 230 is controllable to face any direction around robot 102 .
- Sensor data 610 contains information from any of sensors 230 (e.g., LIDAR, proximity, environmental, etc.), sensed at the time status 270 is created.
- Movement status 616 includes an indication of current activity of robot 102 , such as direction and speed of movement, tool activity and status, and so on.
- Each status 270 may include a digital signature 618 to ensure that communication from robot 102 to ROC 120 is secure, and cannot be spoofed or altered.
- ROC 120 may use digital signature 618 to ensure that status 270 was generated and sent by robot 102 and not by a malevolent third party.
- status 270 is generated at least once per minute, but normally more frequently. Where connectivity with ROC 120 is not available, status 270 may be stored within a non-volatile portion of memory 304 of controller 202 until communication with ROC 120 is available and status 270 is sent to ROC 120 . In one embodiment, status 270 records are collected within memory 304 and collectively sent to ROC 120 at regular, but less frequent, intervals.
- communication between ROC 120 and robot 102 utilizes a sequence number to ensure that messages are not missed or duplicated.
- ROC 120 For each message received from robot 102 , ROC 120 first validates the message (e.g., checking one or more of digital signature 618 , a sequence number being next in sequence, and the message data is checked for integrity errors), then ROC 120 stores the message within history database 350 in association with robot 102 and optionally in association with service provider 151 and the third party or the address (site) being serviced, before it is stored persistently in history database 350 of ROC 120 (or an alternative “final audit database”).
- each communication may involve first collecting the raw data together into a single “packet” along with the packet's monotonically increasing sequence number. Then a hash (message digest) of the packet is computed. This value (due to the properties of cryptographic hashes) is considered to be unique to the packet (like a fingerprint). Finally, the hash is digitally signed by robot 102 and sent to ROC 120 .
- a hash message digest
- a digital signature utilizes two encryption keys: a public key and a private key.
- both encryption keys corresponding to robot 102 are generated by robot 102 and the private key is never transferred off of robot 102 .
- generation of encryption keys occurs as part of the initial configuration process when a customer first receives their robot 102 .
- robot 102 transmits the public key to ROC 102 where it is stored in association with robot 102 .
- ROC 102 also has two encryption keys and transmits its public key to robot 102 and to service provider 151 .
- ROC 120 may detect this change because digital signature 618 could not be validated by the public key corresponding to robot 102 .
- robot 102 may verify communications from ROC 120 using the public key of ROC 120 , thus robot 102 may only be commanded from ROC 120 , since robot 102 may detect when a command is not from ROC 120 since it cannot be decrypted by the ROC's public key, which was downloaded to robot 102 during configuration.
- Document generator 370 may include a user interface to allow service provider 151 or the third party to request, in the event of a legal challenge, an audit trail from history database 350 for robot 102 .
- dashboard generator 380 generates a dashboard (e.g., dashboard 382 of FIG. 9 ) to replay status 270 records from history database 350 for robot 102 , wherein service provider 151 and/or the third-party view dashboard 382 via Internet interface 390 to see a replay of activity by robot 102 .
- Digital signature 618 ensures that information within status 270 is not altered in any way after status 270 is generated by control executive 250 , and may thereby be used to indicate that the data is authentic, and that the data has not been forged or altered by service provider 151 and/or ROC 120 . Digital signature 618 thereby allows service provider 151 to provide that robot 102 performed the required treatment at the requested time and thus fulfilled a service contract. Further, because of digital signature 618 , customers of service provider 151 are reassured that the evidence of service performed by robot 102 is true.
- FIG. 12 is a flowchart illustrating one exemplary method 700 for capturing location data 154 defining path 180 to be treated by robot 102 .
- Method 700 is for example implemented within path capture device 150 of FIG. 1 .
- path capture device 150 Prior to invoking method 700 on path capture device 150 , path capture device 150 is moved to a start point of path 180 . That is, path capture device 150 is positioned at the point on path 180 where treatment by robot 102 is to commence.
- step 702 method 700 determines a location of the path capture device.
- path capture device 150 uses locator 510 to determine a current location of path capture device 150 .
- step 704 method 700 stores the determined location in location data.
- acquirer 550 stores coordinates 560 of the determined location of step 702 within location data 154 .
- step 706 method 700 stores start point as interesting features in location data.
- acquirer 550 stores feature 562 indicating start point within location data 154 .
- step 708 method 700 detects movement along path to be cleared.
- acquirer 550 utilizes sensors 152 to detect movement of path capture device 150 before proceeding to step 710 .
- Step 710 is a decision. If in step 710 , method 700 determines that an interesting feature has been located, method 700 continues with step 712 ; otherwise, method 700 continues with step 714 .
- acquirer 550 determines that an interesting feature has been encountered based upon one or both of: receiving input from an operator of the path capture device 150 indicating a type of interesting feature encountered at a current location; and detecting an interesting feature using one or more sensors 152 . For example, acquirer 550 may detect an interesting feature captured by imager 512 as path capture device 150 is moved along path 180 .
- Interesting features may be selected from the group including: start point, end point, wall (left, right), curb (left, right), step (up, down), non-grass vegetation (left, right), permanent obstacle (unspecified, like a parked trailer, left, right), mailbox (left, right), drop-off (left, right), column (left, right), and so on.
- step 712 method 700 stores the interesting feature in location data.
- acquirer 550 stores feature 562 within location data 154 .
- acquirer 550 may store additional data from sensors 152 corresponding to the identified features within location data 154 .
- Method 700 then continues with step 714 .
- Step 714 is a decision. If in step 714 , method 700 determines that a directive is received, method 700 continues with step 716 ; otherwise, method 700 continues with step 718 . In one example of step 714 , a user enters a directive to path capture device 150 indicating a direction for cleared snow.
- step 716 method 700 stores the directive in location data.
- acquirer 550 stores directive within feature 562 of location data 154 .
- the user may indicate that snow is to be cleared to the left, wherein the directive stored within feature 562 may indicate an angle of minus thirty degrees for clearing mechanism 214 , thus defining the clearing direction for snow until changed by the user.
- the user and path capture device 150 are positioned at the start of path 180 , the user is prompted for an initial clearing direction.
- Steps 714 and 716 allow other directives (e.g., clearing mechanism 214 brush on/off and spin direction, treatment applicator 220 activation/deactivation, and so on) to be entered and stored within location data 154 .
- step 718 method 700 determines a location of the path capture device.
- acquirer 550 uses locator 510 to determine a current location of path capture device 150 .
- step 720 method 700 stores the determined location in location data.
- acquirer 550 stores coordinates 560 of the determined location of step 718 within location data 154 . Where a feature 562 has been added to location data 154 , coordinates 560 and feature 562 may be stored in association with one another within location data 154 .
- method 700 may also determine an orientation of path capture device 150 as indicating a direction of an interesting feature or as a direction for an entered directive, wherein the determined orientation is stored in location data 154 in association with the entered feature or directive.
- Step 722 is a decision. If, in step 722 , method 700 determines that an end of a portion of path 180 to be treated by robot 102 has been reached, method 700 continues with step 724 ; otherwise method 700 continues with step 708 . That is, steps 708 through 722 repeat as path capture device 150 is moved along path 180 over the area to be treated by robot 102 . When the end of the area to be treated is reached, the operator of path capture device 150 may provide an input to indicate the end, wherein method 700 continues with step 724 .
- step 724 method 700 sends the location data to the ROC.
- acquirer 550 sends location data 154 to ROC 120 via interface 520 .
- FIG. 13 is a flowchart illustrating one exemplary method 800 for generating the path program.
- Method 800 is implemented by path program generator 310 of ROC 120 for example.
- step 802 method 800 receives location data.
- ROC 120 receives location data 154 from path capture device 150 .
- Step 804 is optional. If included, in step 804 , method 800 retrieves geographic data for the area covered by the location data. In one example of step 804 , path program generator 310 retrieves, for an area corresponding to the area covered by location data 154 , one or more of satellite imagery, topographic data, building plans, and so on.
- step 806 method 800 sets the location coordinate to a start point. In one example of step 806 , a last coordinate variable storing a previous location coordinate in the generated program is initialized to the start location. In step 808 , method 800 reads a next item from location data. In one example of step 808 , path program generator 310 reads a next item from location data 154 received in step 802 .
- Step 810 is a decision. If, in step 810 , method 800 determines that the item read in step 808 contains coordinates, method 800 continues with step 812 ; otherwise, method 800 continues with step 816 .
- step 812 method 800 computes the direction and distance from the last coordinate to the next coordinate from the last coordinate.
- path program generator 310 computes a heading and a distance between the last coordinate and the next coordinate read in step 808 . For example, path program generator 310 may determine that robot 102 should move two feet in a due west direction.
- method 800 generates path program travel vector steps including a turn heading and an acceleration value.
- path program generator 310 generates a step in path program 122 with instructions to move robot 102 two feet in a due west direction by turning ⁇ 90 degrees from a current heading of due north and accelerating to 1 mph.
- Method 800 continues with step 808 .
- Step 816 is a decision. If, in step 816 , method 800 determines that the item read in step 808 contains feature, method 800 continues with step 818 ; otherwise, method 800 continues with step 824 .
- step 818 method 800 validates the current robot directives and controls in view of the identified feature and its location relative to the programmed location of robot 102 when moving along path 180 to ensure that the robot 102 can physically follow the path 180 while avoiding obstacles identified during path capture and while directing snow or debris away from tall obstacles such as walls. For example, robot 102 has limitations on turn radius; validation includes verifying that the robot 102 can turn sharply enough to follow turns of path 180 without colliding with obstacles.
- validation includes verifying that all parts of robot 102 remain clear of obstacles while performing turns required while following path 180 .
- the identified feature read in step 808 is a wall on the left side of path 180
- path program generator 310 validates, based upon previously defined directives and movement stored within path program 122 , that the direction of snow clearance by clearing mechanism 214 is not towards the wall (i.e., not to the left).
- path program generator 310 validates that a programmed speed of robot 102 within path program 122 is reduced.
- method 800 may modify path program 122 to control robot 102 to move at a slower speed when near the feature.
- method 800 may modify path program 122 to control robot 102 to monitor data from sensor 230 more frequently to prevent collision with the feature.
- path program generator 310 validates that the speed of robot 102 programmed within path program 122 is correct for traversing the step, and, if programmed speed is incorrect for traversing the step may adjust the programmed speed of the robot for that step.
- path program generator 310 may adjust programmed speed of the robot to ensure the robot can navigate the path without marring or colliding with those physical features or obstacles.
- method 800 may generate one or more additional directives and movement commands within path program 122 to enable robot 102 to negotiate the feature.
- Step 820 is a decision. If, in step 820 , method 800 determines that the robot directives and controls are valid, method continues with step 808 ; otherwise method 800 continues with step 822 . In step 822 , method 800 generates a path program feature warning. Optionally, step 822 may also generate one or more additional steps within path program 122 to correct operation of robot 102 in view of the invalid robot directives and controls. Method 800 then continues with step 808 .
- Step 824 is a decision. If, in step 824 , method 800 determines that the item read in step 808 contains directive, method 800 continues with step 826 ; otherwise, method 800 continues with step 828 .
- step 826 method 800 generates a path program directive step.
- path program generator 310 when the directive read in step 808 indicates that the clearing mechanism 214 is to be activated, path program generator 310 generates a program step within path program 122 to activate clearing mechanism 214 .
- path program generator 310 when the directive read in step 808 indicates that the clearing direction for clearing mechanism 214 should be to the right, path program generator 310 generates a step within path program 122 to move clearing mechanism 214 such that snow is cleared to the right.
- Method 800 then continues with step 808 .
- Step 828 is a decision. If, in step 828 , method 800 determines that an end of location data 154 has been reached, path program 122 is complete and method 800 terminates; otherwise, method 800 continues with step 808 . Steps 808 through 828 thus repeat to process all data within location data 154 . Path program 122 is stored within ROC 120 until requested by control executive 250 when robot 102 is about to operate.
- ROC 120 may apply encryption and digital signatures to path program 122 to ensure security of robot 102 control.
- FIG. 14 is a flowchart illustrating one exemplary method 900 for autonomous path treatment.
- Method 900 is implemented by control algorithm 208 of robot 102 for example.
- step 902 method 900 receives the path program from the ROC or from a mobile electronic device such as a smartphone or laptop computer.
- control algorithm 208 received path program 122 from ROC 120 .
- step 904 method 900 determines the location of the robot relative to the start point of the path program.
- control algorithm 208 utilizes sensors 230 to determine a location and orientation of robot 102 , and then determines its position relative to a start location of path program 122 .
- Step 906 is optional. If included, in step 906 , method 900 controls the robot to move to the start point. Where step 906 is not included, robot 102 may be controlled manually (e.g., by an operator using a mobile device communicatively coupled with robot 102 ) to be positioned at a start point. For example, an operator may use an enabled smart phone running an appropriate app or a laptop computer to communicate with and control robot 102 to move to the start point. Through interaction with robot 102 and an indicated start point within path program 122 , the app may indicate when robot 102 is at the start point. In one example of step 906 , control algorithm 208 invokes navigator 254 to control robot 102 to move from its current location to a location at the start of path program 122 .
- navigator 254 to control robot 102 to move from its current location to a location at the start of path program 122 .
- step 908 method 900 controls the robot to follow a next directive from the path program.
- control algorithm 208 reads a next directive from path program 122 and controls robot 102 to follow the directive.
- step 910 method 900 determines a status of the robot and sends the status to the ROC.
- control algorithm 208 determines status 270 of robot 102 and sends status 270 to ROC 120 .
- Step 912 is a decision. If, in step 912 , method 900 determines that the end of the path program has been reached, method 900 terminates; otherwise, method 900 continues with step 914 .
- Step 914 is a decision. If, in step 914 , method 900 determines that the robot is at a feature of interest, method 900 continues with step 916 ; otherwise, method 900 continues with step 918 . In one example of step 914 , control algorithm determines that a current location of robot 102 has an associated feature of interest within path program 122 and continues with step 916 .
- step 916 method 900 adjusts the robot for the feature of interest.
- control algorithm 208 applies one or more directives from path program 122 corresponding to the feature of interest and monitors the feature of interest using one or more sensors 230 .
- control algorithm 208 generates additional directives 260 based upon sensors data from sensors 230 based upon the detected features and a current position and orientation of robot 102 .
- Step 918 is a decision. If, in step 918 , method 900 determines that an obstacle is detected, method 900 continues with step 920 ; otherwise, method 900 continues with step 908 . Steps 908 through 918 thereby repeat provided no unexpected obstacle is encountered by robot 102 .
- step 920 method 900 stops the robot.
- control algorithm 208 stops propulsion mechanism 212 , stops clearing mechanism 214 , and stops treatment applicator 220 .
- step 922 method 900 captures sensor data of obstacle.
- control algorithm 208 captures sensor data from sensor 230 of the unexpected obstacle.
- step 924 method 900 sends the sensor data to the ROC and, if it is being controlled locally, also to a mobile electronic device such as a smartphone or laptop computer.
- control algorithm 208 sends sensor data from sensors 230 corresponding to the detected obstacle to ROC 120 .
- step 926 method 900 waits for the obstacle to clear, or for either the ROC or a mobile electronic device such as a smartphone or laptop computer to send directives.
- control algorithm 208 utilizes sensors 230 to determine when a mobile unexpected obstacle, such as a dog, cat, car, golf cart, or a person, has cleared from path 180 , or waits for additional directives 260 from ROC 120 or mobile electronic device that instruct robot 102 and that may be executed prior to executing a next directive from path program 122 .
- ROC 120 may send directives 260 to maneuver robot 102 around or over the unexpected obstacle.
- ROC 120 may control robot 102 to capture and send LIDAR data of the area around and including the obstacle to ROC 120 .
- ROC 120 may then generate a three-dimensional model of the object and surrounding area, and generate directives to maneuver robot 102 around the obstacle based upon the three-dimensional model.
- ROC 120 may also determine and send a directive to set a resume position within path program 122 such that robot 102 continues with the appropriate command after maneuvering robot 102 to avoid the obstacle. For example, based upon a determined location of robot 102 after being maneuvered around the obstacle, one or more steps of path program 122 may be skipped and operation of components of robot 102 may be resumed. Method 900 then continues with step 908 .
- FIG. 15 shows one exemplary method 1000 for providing interactive control of robot 102 of FIG. 1 .
- Method 1000 is implemented within situation analyzer 312 of ROC 120 for example.
- step 1002 method 1000 receives a status from the robot.
- situation analyzer 312 receives status 270 from robot 102 .
- step 1004 method 1000 stores the status within a database.
- situation analyzer 312 stores status 270 within history database 350 .
- Step 1006 is a decision. If, in step 1006 , method 1000 determines that robot has completed the path program, method 1000 terminates; otherwise, method 1000 continues with step 1008 .
- Step 1008 is a decision. If, in step 1008 , method 1000 determines that an unexpected situation has occurred with the robot, method 1000 continues with step 1010 ; otherwise, method 1000 continues with step 1002 . Steps 1002 through 1008 repeat until the robot finishes the path program or encounters an unusual situation (e.g., an unexpected obstacle).
- an unusual situation e.g., an unexpected obstacle
- step 1010 method 1000 analyzes the status to identify the situation.
- situation analyzer 312 processes and matches sensor data within status 270 against previously encountered situations to identify the unexpected situation.
- Step 1012 is a decision. If, in step 1012 , method 1000 determines that the robot has encountered a known situation, method 1000 continues with step 1014 ; otherwise, method 1000 continues with step 1016 .
- step 1014 method 1000 generates directives for the robot to resolve the situation.
- situation analyzer 312 generates one or more directives 260 to control robot 102 to resolve the current situation based upon previous success in resolving similar situations.
- ROC 120 learns from previous handling of a similar situation and may thereby generate directives 260 for resolving the current situation based upon success of these previously issued directives.
- Method 1000 then continues with step 1018 .
- step 1016 method 1000 interacts with an operator to determine directives 260 for resolving the current situation.
- situation analyzer 312 interacts with an operator to determine one or more directives 260 for robot 102 to resolve the current situation. For example, the operator may review status 270 and thus sensor data corresponding to an unexpected obstacle, and then enter one or more directives 260 that instruct robot 102 to move around the obstacle. Method 1000 then continues with step 1018 .
- sensor data from cameras is annotated with symbols indicating an effective reach of the path treatment device 214 .
- step 1018 method 1000 sends the determined directives to the robot.
- situation analyzer 312 sends directives 260 to robot 102 .
- Steps 1002 through 1018 thereby repeat to handle any unexpected obstacle or unexpected situation with robot 102 .
- FIG. 16 shows one exemplary scenario 1100 where management entity 101 operates ROC 120 to provide simultaneous service to three service providers 151 ( 1 )-( 3 ), where each service provider 151 utilizes one or more robots 102 . That is, ROC 120 simultaneously controls many robots 102 to clear paths at different locations. Specifically, ROC 120 maintains separate path programs 122 for each robot 102 based upon captured location data 154 for the paths indicated for treatment by that robot. Further, service provider 151 may utilize more than one robot 102 at a particular service location 1102 , particularly where the path to be cleared is large. In the example of FIG.
- service provider 151 ( 1 ) has two robots 102 ( 1 ) and 102 ( 2 ) that operate at service locations 1102 ( 1 ) and 1102 ( 2 ), respectively; service provider 151 ( 2 ) has two robots 102 ( 3 ) and 102 ( 4 ) that operate at service locations 1102 ( 3 ) and 1102 ( 4 ), respectively, and two robots 102 ( 5 ) and 102 ( 6 ) that operate at service location 1102 ( 5 ); and service provider 151 ( 3 ) has one robot 102 ( 7 ) that operates at service location 1102 ( 6 ).
- Service provider 151 ( 1 ) views a dashboard 382 ( 1 ) at a single location/console corresponding to operation of each robot 102 ( 1 ) and 102 ( 2 ).
- service provider 151 ( 2 ) views a dashboard 382 ( 2 ) at a single location/console corresponding to operation of each of robots 102 ( 3 )-( 6 )
- service provider 151 ( 3 ) views a dashboard 382 ( 3 ) at a single location/console corresponding to operation of robot 102 ( 7 ). That is, ROC 120 simultaneously provides control and monitoring of a plurality of robots 102 at different service locations 1102 and under control of various service providers 151 . ROC 120 also provides documentation 372 indicative of services performed by each robot 102 , thereby allowing each service provider 151 to provide evidence of services provided to each service location 1102 .
- FIG. 17 is a schematic illustrating a plan view of robot 102 in one exemplary embodiment.
- power source 210 is an internal combustion engine and an alternator for generating electrical power.
- Propulsion mechanism 212 includes four wheels with snow tires that drive robot 102 forwards in a direction indicated by arrow 1202 .
- Propulsion mechanism 212 may also be controlled to turn robot 102 .
- Clearing mechanism 214 is a rotating brush, driven by power from power source 210 . Clearing mechanism 214 is turned, relative to the propulsion direction indicated by arrow 1202 , such that cleared snow is thrown to the left, as indicated by arrow 1204 .
- the clearing direction of clearing mechanism 214 is controllable (e.g., using path program 122 ) to clear snow to the right of robot 102 as indicated by arrow 1206 .
- clearing direction of clearing mechanism 214 may be adjusted such that snow is cleared efficiently.
- a method designated A for autonomously treating a path including receiving, within a computer server, coordinates defining the path; generating, based upon the coordinates, a path program for controlling an autonomous path treatment robot to autonomously treat the path; and sending the path program to control the autonomous path treatment robot to treat the path.
- the server or a handheld device may receive status information from the autonomous path treatment robot during treatment of the path; and the server generates documentation indicative of the path treatment by the autonomous path treatment robot based upon the status information.
- a method designated AA including the method designated A, further including determining, from the status information, when the autonomous path treatment robot has encountered an unexpected obstacle; analyzing sensor data within the status information to identify the unexpected obstacle; generating one or more directives, based upon the identity or type of the unexpected obstacle, to control the autonomous path treatment robot to negotiate the unexpected obstacle; and sending the directives to the autonomous path treatment robot.
- a method designated AB including the method designated A or AA further including receiving, in association with at least one of the coordinates received from the mobile device, a feature indicator indicative of a physical feature of, or around, the path; and the step of generating the path program further includes validating the path program to ensure that the robot is capable of following the path.
- a method designated AC including the method designated A, AA, or AB further including the step of validating further comprising modifying the path program to adjust a speed of the autonomous path treatment robot when proximate the physical feature.
- a method designated ACA including the method designated AC, the step of validating further comprising generating a warning when the robot cannot follow the path because of turn radius and length of the autonomous path treatment robot.
- An autonomous path treatment system designated B includes a source of coordinates and directions of travel corresponding to a path to be treated which in some embodiments is computer executing mapping and path designation software using an aerial photograph, and in other embodiments is a mobile path recording device having a locator, a processor and a memory storing machine readable instructions executable by the processor to capture, using the locator, a sequence of coordinates and directions of travel of the path to be treated as the mobile device is moved along the path by an operator;
- the system also includes an autonomous path treatment robot having: a motor for maneuvering the robot along the path; a treatment mechanism for treating the path; and a controller having a processor and memory storing machine readable instructions that when executed by the processor obeys steps of a path program to control the motor and the treatment mechanism to treat the path; and a server configured to generate the path program from recorded sequence of coordinates and instructions, the path program comprising instructions for controlling the autonomous path treatment robot to treat the path based upon the coordinates.
- the server is configured to: send the path program to the autonomous path treatment robot; receive the status information from the autonomous path treatment robot via the wireless interface as the autonomous path treatment robot treats the path; and generate a dashboard illustrating a status of the autonomous path treatment robot based upon the status information.
- An autonomous path treatment system designated BA including the system designated B, wherein the server further includes a processor and a memory storing machine readable instructions executable by the processor to: receive the coordinates of the path from the mobile device; determine, from the status information, when the autonomous path treatment robot has encountered an unexpected obstacle; analyze sensor data within the status information to identify the unexpected obstacle; generate one or more directives, based upon the identified unexpected obstacle, to control the autonomous path treatment robot to negotiate the unexpected obstacle; and send the directives to the autonomous path treatment robot via the wireless interface.
- the memory storing machine readable instructions is non-transitory.
- An autonomous path treatment system designated BB including the system designated B or BA
- the memory of the mobile device further storing machine readable instructions executable by the processor to capture one or more features of the path selected from the group including a curb, a step, a wall, and a drop-off
- the memory of the server further storing machine readable instructions executable by the processor to generate the path program to include instructions for controlling the autonomous path treatment robot to treat the path based upon the features.
- An autonomous path treatment system designated BC including the system designated B, BA or BB, the memory of the mobile device further storing machine readable instructions executable by the processor to interact with the operator to receive feature information of the path, the feature information defining a location of one or more of a curb, a wall, and a step, together with its location relative to the path.
- An autonomous path treatment system designated BD including the autonomous path treatment system designated B, BA, BB, or BC, wherein the mobile path recording device is the autonomous path treatment robot.
- An autonomous path treatment robot for treating a path designated C including a motor driving at least one wheel to maneuver the autonomous path treatment robot along the path; a path treatment device positioned ahead of the motor and wheel for treating the path; a wireless interface for receiving, from a remote server, a path program that includes a sequence of directives; and a controller having a processor and memory storing machine readable instructions that are executed by the processor to cooperatively control the motor and the path treatment device to treat the path based upon the sequence of directives.
- An autonomous path treatment robot designated CA including the robot designated C, further including at least one sensor for sensing an environment of the robot to generate sensor data, the memory further storing instructions that when executed by the processor direct the robot to: detect an unexpected obstacle in the path of the robot based upon the sensor data; pause operation of the robot when the unexpected obstacle is detected; send the sensor data corresponding to the unexpected obstacle to the remote server; receive additional directives from the remote server; control the motor based upon the additional directives to maneuver the robot around the unexpected obstacle; and resume operation of the robot to treat the path.
- An autonomous path treatment robot designated CB including the robot designated C or CB, the memory further storing instructions that are executable by the processor to: store the additional directives within the memory in association with a first identity or type of the unexpected obstacle; match a subsequent unexpected obstacle to the first identify; and control the motor based upon the additional directives to maneuver the robot around the subsequent unexpected obstacle.
- An autonomous path treatment robot designated CC including the robot designated C, CA, or CB, the wireless interface being configured to transmit status information indicative of progress of the autonomous path treatment robot through the sequence of directives.
- An autonomous path treatment robot designated CD including the robot designated C, CA, CB, or CC, the wireless interface being configured to transmit status information indicative of operational status of the autonomous path treatment robot.
Landscapes
- Engineering & Computer Science (AREA)
- Aviation & Aerospace Engineering (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Automation & Control Theory (AREA)
- Architecture (AREA)
- Civil Engineering (AREA)
- Structural Engineering (AREA)
- Business, Economics & Management (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Game Theory and Decision Science (AREA)
- Medical Informatics (AREA)
- Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)
- Electrotherapy Devices (AREA)
- Radiation-Therapy Devices (AREA)
- Manipulator (AREA)
Abstract
Description
- This application claims the benefit of U.S. Provisional Application No. 62/425,571, filed Nov. 22, 2016, the contents of which are incorporated herein by reference in their entirety.
- Clearing snow is tedious, difficult, and labor intensive. In most commercial settings, snow should be removed within certain time constraints. In Zero Tolerance Locations—such as hospitals, urgent care centers, 24-hour stores, and schools,—the clearing of snow must begin as soon as the first flakes fall.
- The methods used today to clear the snow involve a combination of human driven vehicles including trucks with plows or other snow removal attachments, human driven machines including snow throwers, snow blowers, push-behind snow plows, and manual shoveling. Large vehicles equipped with plows are typically used in large areas such as parking lots, streets and driveways that large vehicles can access easily. Smaller snow clearing machines are typically used where large vehicle plows cannot access, such as sidewalks, walking paths, and near edges of streets and parking lots where obstacles (such as walls, edging, or curbs) are present. In places inaccessible to snow clearing machines, manual shoveling is used. Shoveling is by far the slowest method of snow clearing and is the most difficult for which to find labor. Since many people are sometimes needed to shovel, it is also the most expensive service to supply over a long period of time.
- For a snow removal services company that use manual labor to remove snow, there are many problems including: (a) hiring, training and managing laborers who will be needed to clear snow; (b) transporting laborers to multiple job sites at needed times (possibly in the middle of the night); (c) securing and maintaining proper insurance coverage for both the laborers and as work-service warranties; and (d) dealing with injuries that may occur as laborers remove snow.
- In an embodiment, an autonomous path treatment system and associated path treatment method uses a mobile path recording device with locator, processor and firmware to capture a sequence of coordinates and directions of travel of a path as the mobile device is moved along the path. The system has an autonomous path treatment robot having a treatment mechanism for treating the path, a controller with processor and memory storing firmware that when executed obeys steps of a path program file to control the motor and the treatment mechanism to treat the path. The system also has a server configured to execute a path program compiler to transform the recorded sequence of coordinates and directions into the path program file of instructions for controlling the autonomous path treatment robot to treat the path based upon the coordinates.
- In an embodiment, a method for autonomously treating a path includes receiving, within a computer server, coordinates and directions of travel defining the path from a mobile device adapted with sensors to detect obstacles and generating, based upon the coordinates and directions of travel, a path program for controlling an autonomous path treatment robot to autonomously treat the path. The method continues with sending the path program to control the autonomous path treatment robot to treat the path; receiving status information from the autonomous path treatment robot during treatment of the path; and generating documentation indicative of the path treatment by the autonomous path treatment robot based upon the status information.
- In another embodiment, a method for autonomously treating a path includes, receiving within a computer server, coordinates and directions of travel defining the path from a laptop or workstation equipped with a mapping and path designation program operable with aerial photographs of a site to designate a path. The method continues with sending the path program to control the autonomous path treatment robot to treat the path; receiving status information from the autonomous path treatment robot during treatment of the path; and generating documentation indicative of the path treatment by the autonomous path treatment robot based upon the status information. In particular embodiments the aerial photographs are obtained through a drone, helicopter, fixed-wing aircraft, or reconnaissance satellite, and registered with markers to known GPS coordinates.
- In another embodiment, an autonomous path treatment system includes a mobile path recording device having a locator, a processor and a memory storing machine readable instructions executable by the processor to capture, using the locator, a sequence of coordinates and directions of travel of a path to be treated as the mobile device is moved along the path by an operator. The system also includes an autonomous path treatment robot having a motor for maneuvering the robot along the path; a treatment mechanism for treating the path; a controller having a processor and memory storing machine readable instructions that when executed by the processor obeys steps of a path program to control the motor and the treatment mechanism to treat the path. The system also includes a server having been configured to generate the path program from a recorded sequence of coordinates and instructions, the path program comprising instructions for controlling the autonomous path treatment robot to treat the path based upon the coordinates; the server configured to: send the path program to the autonomous path treatment robot; receive the status information from the autonomous path treatment robot via the wireless interface as the autonomous path treatment robot treats the path; and generate a web-based dashboard illustrating a status of the autonomous path treatment robot based upon the status information.
- In another embodiment, an autonomous path treatment robot for treating a path, includes a motor driving at least one wheel to maneuver the autonomous path treatment robot along the path; a path treatment device positioned ahead of the motor and wheel for treating the path; a wireless interface for receiving, from a remote server, a path program that includes a sequence of directives; and a controller having a processor and memory storing machine readable instructions that are executed by the processor to cooperatively control the motor and the rotating brush to treat the path based upon the sequence of directives.
-
FIG. 1 shows one exemplary autonomous path treatment system, in an embodiment. -
FIG. 2 illustrates an alternative embodiment of the autonomous path treatment robot ofFIG. 1 having an articulated steering system. -
FIG. 3 illustrates a path capture device for use with the autonomous path treatment system ofFIG. 1 . -
FIG. 4 is a schematic illustration of an alternative path capture system utilizing registered, calibrated aerial photographs, with a path designation and mapping software to designate paths and areas to be treated. -
FIG. 5 illustrates an exemplary autonomous path treatment robot having a mower attachment in place of a snow-removal device, in an embodiment. -
FIG. 6 is a perspective view of the embodiment with mower attachment illustrated inFIG. 5 . -
FIG. 7 is a schematic showing components of the robot of the autonomous path treatment system ofFIG. 1 , in an embodiment. -
FIG. 8 shows the robot operation center ofFIG. 1 in further exemplary detail. -
FIG. 9 shows one exemplary dashboard for displaying a current status and progress of the autonomous path treatment robot ofFIG. 1 , in an embodiment. -
FIG. 10 shows the path capture device ofFIG. 3 in further detail. -
FIG. 11 shows the status ofFIG. 5 in further exemplary detail. -
FIG. 12 is a flowchart illustrating one exemplar method for capturing location data defining a path to be treated by the autonomous path treatment robot ofFIG. 1 , in an embodiment. -
FIG. 13 is a flowchart illustrating one exemplary method for generating the path program ofFIG. 1 , in an embodiment. -
FIG. 14 is a flowchart illustrating one exemplary method for autonomous path treatment, in an embodiment. -
FIG. 15 shows one exemplary method for providing interactive control of the autonomous path treatment robot ofFIG. 1 , in an embodiment. -
FIG. 16 shows one exemplary scenario where a management entity operates the robot operations center ofFIG. 1 to provide simultaneous service to three service providers that each utilize one or more of autonomous path treatment robots, in an embodiment. -
FIG. 17 is a schematic illustrating a plan view of the robot ofFIG. 1 in an embodiment. - With the versatile autonomous path treatment system described below, many, if not all, of the disadvantages and problems associated with prior art snow removal are addressed. Part of this autonomous path treatment system is its robot, one that may be activated as needed, at any time, or preprogrammed to ensure paths and walkways are clear by a defined time.
- Although examples described herein describe a robot sized specifically for paths and walkways, the robot may be scaled for other situations including those where prior art snow removal solutions such as large, plow-equipped, vehicles are viable. Using the robot described herein may provide certain advantages, including: labor cost reduction, insurance cost reduction, reduction in number or need of manual laborers used in snow removal, reduced physical stress or injury during snow removal, reduced time to clear snow at a given site, snow clearing available 24
hours 7 days a week, and reduced overall cost of clearing snow. At large sites, multiple robots may be deployed and activated simultaneously. Other advantages may become apparent in the description below. -
FIG. 1 shows one autonomouspath treatment system 100 that includes an autonomouspath treatment robot 102. Apath capture device 150 utilizesmultiple sensors 152 to capturelocation data 154 of apath 180 to be treated. In embodiments, both the autonomouspath treatment robot 102 andpath capture device 150 employseveral navigation sensors 152 that may include: global positioning system (GPS) which may be Wide Area Augmentation System (WAAS) enhanced, magnetometers, accelerometers and speedometers, and gyroscopes. For obstacle detection, both the autonomouspath treatment robot 102 andpath capture device 150 employ sensors that may include: RADAR, LIDAR, thermal imaging cameras, visual-wavelength color cameras, and ultrasonic sensors adapted to detect a texture as well as presence of obstacles.Path capture device 150records location data 154 aspath capture device 150 traverses overpath 180.Path capture device 150 sendslocation data 154 to a robot operations center (ROC) 120 where it is processed by arobot controller 130 to generate apath program 122.Path program 122 includes a sequence of directives, such as movement directives with coordinates defining locations alongpath 180 and control directives for controlling components ofrobot 102 that are followed byrobot 102 to treatpath 180. For example,path program 122 may include operational directives such as direction of discharge of cleared snow such as by changing an angle of a snow thrower nozzle, an angle of a brush or blade used withinclearing mechanism 214, or an angle of another slow clearance device.Path program 122 may also include operational directives controlling operation of various additional features such as lights, rotation of a clearing brush, operation oftreatment applicator 220, and operation of an aural warning and/or communications system. ROC 120 androbot 102 communicate wirelessly using one or more of a cellular carrier, Wi-Fi, the Internet, Bluetooth, and so on. - In embodiments,
location data 154 includes global positioning system (GPS) coordinates, orientation in the Earth's magnetic field, and maximum speeds. In addition,location data 154 includes one or more of RADAR, LIDAR, and ultrasonic ranges to nearby obstacles as well as textures of obstacles recorded with each coordinate along the path to be treated. - In an alternative embodiment illustrated by viewing
FIGS. 2 and 3 , thepath treatment robot 102 operated in a manually controlled mode operates as a path capture device to capturelocation data 154 ofpath 180. In some embodiments, the thermal and color cameras of thepath treatment robot 102 are mounted on asensor tower 102C (FIG. 2 ), andcorresponding color cameras 150B of thepath capture device 150 are mounted on asensor pole 150A. In contrast, the ultrasonic sensors may be mounted low on each front and rear corner ofrobot 102 and path capturedevice 150.Path capture device 150 also has atouchscreen display 151A that permits user interaction with electronics of the path capture device. - In an alternative embodiment, instead of or in addition to paths captured with
path capture device 150, paths are captured in other ways such as by using digital aerial photographs 170 (FIG. 4 ) with a computer workstation. In this embodiment, aerial photographs from commercial satellite coverage may be used. Where satellite photographs have inadequate resolution, are outdated, are cloud-obscured, or otherwise are inadequate, aerial photographs from other sources are used. Other sources of aerial photographs may include photographs taken from fixed-wing aircraft, helicopters, or by a camera-equippeddrone 172. A camera-equipped drone may in some cases permit obtaining adequate aerial photographs despite tall buildings and trees that may obstruct views from higher-flying aircraft or satellites. In an example using adrone 172, at least twovisible markers 174 are positioned on a site and precisely located with aGPS 176,markers 174 may be the white “X” markers often used in aerial photography or may be any other object readily identifiable in an aerial photograph such as a corner of a planter or corner of a sidewalk. The drone is then flown over the site at a constant altitude and photographs are obtained with a drone-mountedcamera 178, these photographs are transmitted via an IEEE 802.11 Wi-Fi port 181 of a laptop orworkstation computer 182. Where bothmarkers 174 and the entire site are not shown on a single frame, individual frames are stitched to generate aphoto 170 showing the entire site and markers. Themarkers 174 are located onphoto 170 and their previously obtained GPS coordinates are used to register thephoto 170 to GPS coordinates and calibrate thephoto 170 so precise locations and distances can be measured fromphoto 170. - The laptop or
workstation computer 182 then executes a mapping, path, andarea designation software 184 inmemory 186 of laptop orworkstation computer 182, the mapping, path, andarea designation software 184 detects edges onphoto 170 and is then used by anoperator 188 to designate onphoto 170 areas and paths at the site that are to be treated such assidewalks 187, buildingentranceways 189,handicapped parking places 191 and interconnecting paths such as acurb cutout 193 whererobot 190 can safely transition fromsidewalk 187 toparking spaces 191. The mapping, path, andarea designation software 184 then provideslocation data 192 topath program 194 atROC 196 sopath program 194 can generate detailed paths that can be transmitted byrobot controller 198 ofROC 196 torobot 190 for treating the areas and paths to be treated. - Once the detailed paths are identified, a trial run of
robot 190 is conducted during whichrobot 190 obtains additional path data, such as one or more of RADAR, LIDAR, and ultrasonic ranges to nearby obstacles as well as textures of obstacles recorded with each, this trial run may in some particular embodiments be performed under observation byoperator 188 who may use amobile device 199 to resolve robot stoppages due to obstacles and control and adjust paths traversed by the robot. The detailed paths, as annotated with additional path data, are then stored for use during autonomous robot operation. - In an alternative embodiment, snow removal path treatment apparatus of
robot 102 is removable and, as illustrated inFIG. 5 andFIG. 6 ,robot 102E may be equipped with a removable multiple-rotor mulchingrotary mower deck 102F. In this embodiment,robot 102E may be used for summer mowing of grassy paths or grass-covered areas in addition to winter snow removal operations. -
System 100 may be operated by one or more entities, and is illustratively shown with amanagement entity 101 operatingROC 120 and aservice provider 151 that operatespath capture device 150 and autonomouspath treatment robot 102 to provide a clearing service alongpath 180 at a service location for a third party. Accordingly,service provider 151 may purchase, lease, orrent robot 102 from management entity 101 (or from another entity) or be contracted by the third party to provide the path treatment service at the service location.Service provider 151 then contracts withmanagement entity 101 to controlrobot 102 to perform the path treatment service at each service location.Service provider 151 may be contracted by multiple parties to provide service at multiple service locations without departing from the scope hereof. In certain scenarios, a single entity may provide both management and service to the third party. -
FIG. 7 is a schematic showing exemplary components ofrobot 102 of autonomouspath treatment system 100 ofFIG. 1 .Robot 102 includes apower source 210 that, for example, incorporates one or more of an internal combustion engine, battery, and a fuel cell. Whenpower source 210 includes an on-board battery, that battery may be charged from an internal combustion engine ofpower source 210. In an alternative embodiment, upon completion of clearing a path therobot 102 is configured to return to, and position its rear end in, a docking station (not shown) adapted to charge the on-board battery by induction. In this alternative embodiment, line AC power is provided to a charging electronics module that, when the robot is present, drives at high frequency a first coil positioned near the rear end of the robot; when the robot's rear end is positioned near the coil a second coil in the rear end of the robot is inductively coupled to the first coil and picks up high frequency power that is then rectified for charging the on-board battery of the robot. -
Robot 102 also includes apropulsion mechanism 212 that receives power frompower source 210 to propel and maneuverrobot 102. In one embodiment,propulsion mechanism 212 includes a drivetrain with four wheels. In another embodiment,propulsion mechanism 212 includes two caterpillar tracks.Robot 102 includes asteering mechanism 213. In an embodiment, illustrated inFIG. 1 , thesteering mechanism 213 is a skid-steer system that steers the robot by differential operation ofpropulsion mechanism 212 on opposing sides ofrobot 102. In an alternative embodiment, illustrated inFIG. 2 ,robot 102A is articulated having a pivotingcoupling 102B between front and rear portions ofrobot 102A with a hydraulically operated mechanism configured to rotate the front portion ofrobot 102A about the pivot relative to the rear portion ofrobot 102A.Robot 102 also includes aclearing mechanism 214 that receives power frompower source 210 to clear snow frompath 180. In one embodiment,clearing mechanism 214 is a spinning, cylindrical, brush that is positioned in front ofpropulsion mechanism 212 and moved bypropulsion mechanism 212. In another embodiment,clearing mechanism 214 is a blade. In another embodiment,clearing mechanism 214 is a snow blowing device. The mounting ofclearing mechanism 214 allows pivoting ofclearing mechanism 214 along a central, vertical axis (perpendicular to the ground), relative topropulsion mechanism 212 and/or a main chassis ofrobot 102. This pivoting allowsclearing mechanism 214 to operate at an angle relative to a direction of motion of propulsion mechanism 212 (and hence motion of robot 102), as may be required for a blade to push snow to the side. In the brush embodiment ofclearing mechanism 214, the brush may spin in either direction, but is generally operated so that snow is brushed away fromrobot 102. -
Robot 102 may also include anoptional treatment applicator 220 and associated treatment tank 222 that stores atreatment material 224 applied topath 180 bytreatment applicator 220. In an embodiment,treatment material 224 is an ice-melter composition. In one embodiment,treatment applicator 220 is a spreader device andtreatment material 224 is granular and spreadable by the spreader device. In another embodiment,treatment applicator 220 is a sprayer device andtreatment material 224 is a liquid such as a de-icing solution.Treatment applicator 220 may be positioned aft ofpropulsion mechanism 212; for example, wheretreatment material 224 is a de-icing material, treatment applicator may deposit the de-icing material ontopath 180 afterrobot 102 has removed snow therefrom. - In one embodiment,
treatment applicator 220 is a vacuum device that collects and stores (e.g., in treatment tank 222) material asrobot 102 moves. In this embodiment,clearing mechanism 214 is a brush that spins in an opposite direction (as compared to when used to remove snow) such that debris (e.g., dirt, leaves, etc.) may be loosened and collected by the vacuum device.Treatment applicator 220 may be selected and configured to collect debris from both hard (e.g., streets, pathways, pavement, etc.) and soft (e.g., grass) surfaces. For example,robot 102 may be configured to autonomously sweep debris from paths, walkways, streets, parking areas, and may also be used to clear leaves from lawns and other areas. For example, by implementing one or more known algorithms for traversing an area to clear it,path program 122 may be generated to controlrobot 102 to clear any area. Similarly, when configured with a lawn mowing unit,robot 102E may be provided with apath program 122 commanding it to traverse an area multiple times, the area being wider than the path it can clear in one pass, to mow the entire area. -
Robot 102 also includes a controller 202 (e.g., an on-board computer) with aprocessor 204,memory 206, and aninterface 240.Memory 206 may represent one or more of static RAM, dynamic RAM, non-volatile memory, FLASH memory, optical storage, magnetic storage, and so on.Interface 240 provides communication betweencontroller 202 and external devices and may utilize one or more of Wi-Fi, Bluetooth, cellular, Ethernet, and USB type connections and connectors.Controller 202 communicates with a plurality ofsensors 230, such as a camera, RADAR, LIDAR, infrared, ultrasonic sensor, an inertial platform, a GPS receiver (or other such navigation device), accelerometer, gyroscope, compass, proximity sensor, battery gauge, and/or fuel gauge. Usingsensors 230,controller 202 determines a current status 270 ofrobot 102. -
Controller 202 includes acontrol algorithm 208 that includes machine-readable instructions (i.e., software/firmware), stored withinmemory 206, that are executed byprocessor 204 to control operation ofrobot 102, in a particular embodiment these instructions are stored within a non-transitory computer readable media such as a flash memory device.Control algorithm 208 is shown with acontrol executive 250, anobstacle identifier 252, anavigator 254 and amonitor module 256.Control executive 250 provides high-level operational control ofrobot 102 and manages communication viainterface 240 withROC 120.Control executive 250 invokesother modules -
Control executive 250 invokesnavigator 254 to process data fromsensors 230 and determine a current location ofrobot 102 and a current direction of travel ofrobot 102.Navigator 254 directsrobot 102 alongpath 180 as defined withinpath program 122.Navigator 254 processes data fromsensors 230 to determine the current location, orientation, and speed ofrobot 102 and provides directives to adjust motion ofrobot 102 whenrobot 102 deviates frompath 180 and/orpath program 122. -
Control executive 250 invokesobstacle identifier 252 to process data fromsensors 230 to detect obstacles in or near the path ofrobot 102. If obstacles are near the path ofrobot 102, therobot 102 determines first if they correspond to obstacles having similar texture and location that were identified during path capture. If the obstacles match, such as is likely with walls, curbs, light poles, sign poles, fireplugs, railings, and similar immobile objects, the robot uses these obstacles to refine its location in the path it is following and avoids colliding with them in the same way the path capture device was manipulated to avoid them during path capture. - Obstacles other than those that match obstacles present during path capture may also be encountered; such obstacles may include one or more of people, cars, trucks, animals, mounds of snow from prior clearance efforts, and other movable objects. For example, data from one or more of sensors, that may include thermal and color cameras, RADAR, LIDAR, infrared and ultrasonic sensors, may be used to detect one or more of people, animals, and objects along
path 180 ofrobot 102. -
Sensors 230 may include pressure sensors, fluid level sensors, temperature sensors, voltage sensors, and current sensors that monitor the health ofrobot 102 by detecting one or more of engine fuel level, engine oil level, engine temperature level, battery level, operating temperature, and rotational speed of wheels and motors, and so on.Sensors 230 may also include sensors for detecting environmental data that may be sent back toROC 120 such as one or more of ambient air temperature, relative humidity, atmospheric pressure, and so on. - In one example of operation,
control executive 250 retrievespath program 122 fromROC 120 and invokesnavigator 254 to determine, using one ormore sensors 230, a current location ofrobot 102.Control executive 250 then invokesnavigator 254 to control movement ofrobot 102 to followpath program 122.Control executive 250 andnavigator 254 cooperate to followpath program 122 and clear snow frompath 180 autonomously. For example,control executive 250 andnavigator 254 cooperate to navigaterobot 102 from its current location to a next location defined within path program 122 (e.g., utilizing a straight line (dead reckoning) path and navigational information determined by navigator 254).Robot 102 followspath program 122 until it reaches the end, whereinrobot 102 may shut down until required again. - Within
robot 102,control executive 250 invokesmonitor module 256 to continually or periodically monitorsensors 230 to determine proximity ofrobot 102 to other objects. For example, monitormodule 256 detects unexpected obstacles in the path ofrobot 102 by monitoring outputs fromsensors 230. If an obstacle is detected,control executive 250 invokesobstacle identifier 252 to identify the unexpected obstacle based upon data fromsensor 230.Obstacle identifier 252 may compare sensor data to objectidentity 282 ofdatabase 280 stored withinmemory 206.Database 280 may include a plurality ofobject identifiers 252 that each defines sensor data corresponding to a previously detected obstacle.Database 280 may also storeactions 284 in association with one ormore object identifier 252 that define directives to controlrobot 102 based upon thecorresponding object identity 282. For example, objectidentity 282 may define sensor data corresponding tosensors 230 detecting a dog in front ofrobot 102, wherein correspondingactions 284 includes instructions to stop movement ofrobot 102, stop operation ofclearing mechanism 214, and to wait until the obstacle clears. In another example, objectidentity 282 defines sensor data corresponding to detection of a snow drift in front ofrobot 102, wherein correspondingactions 284 include instructions to continue movement ofrobot 102 at a slower speed to clear the snow drift. In another example, objectidentity 282 defines sensor data corresponding to detection of certain objects, such as a trash can mistakenly left or blown ontopath 180, andcorresponding actions 284 include instructions for calculating movement ofrobot 102 around the trashcan using sensors 230. For example, thedirectives 260 may define movements ofrobot 102 relative to the detected location and size of the unexpected obstacle. In another example, a vehicle is parked on or acrosspath 180 such thatrobot 102 cannot be maneuvered around it, whereinactions 284 includes instructions to stop movement ofrobot 102, stop operation ofclearing mechanism 214, and to wait for further instructions fromROC 120 and/or manual override control from a local human operator. -
Control executive 250 periodically generates and sends status 270 toROC 120.Control executive 250 may generate status 270 to include data fromsensors 230 corresponding to the unexpected obstacle if detected. When an unexpected obstacle is detected but cannot be identified byobstacle identifier 252,control executive 250 stops movement ofrobot 102, generates status 270 to include sensor data fromsensors 230 corresponding to the detected obstacle, sends status 270 toROC 120, and then waits forfurther directives 260 from ROC 120 (or a local operator). For example,control executive 250 may utilize a camera ofsensors 230 to capture an image of the unexpected obstacle and send that image toROC 120 within status 270.Control executive 250 may stop motion ofrobot 102 until it receives further instructions fromROC 120.Robot controller 130 processes status 270 to generate one ormore directives 260 that define actions forrobot 102 to resolve the unexpected obstacle. For example,robot controller 130 may senddirectives 260 torobot 102 to (a) instructrobot 102 to wait until obstacle is no longer present and then resume followingpath program 122; (b) to instructrobot 102 to determine a path around the unexpected obstacle and continue followingpath program 122; or (c) instructrobot 102 to execute an action received fromROC 120. - Where the obstacle is to be avoided by
robot 102,directives 260 may include instructions (e.g., a sub-program) for using sensor data to maneuverrobot 102 around the obstacle while avoiding collision with the obstacle or any other object (e.g., a wall or edging of path 180).Control executive 250 may also learn and optimize such avoidance maneuvers based upon the determined identification and size of the obstacle. - Upon receiving
directives 260 fromROC 120,control executive 250 may storedirectives 260 asactions 284 in association with sensor data corresponding to the unexpected obstacle asobject identity 282 withindatabase 280. Thus, in time,controller 202 learns how to identify and handle many different obstacles without waiting fordirectives 260 fromROC 120. - This learning approach utilizes obstacle identification and resolution within ROC 120 (e.g., where
ROC 120 includes advanced analysis and resolution software, and/or a human operator determines identification and resolution). However, over time,controller 202 buildsdatabase 280 with intelligence to identify and handle unexpected obstacles autonomously. That is,robot 102 learns to take appropriate action to continue and complete the task defined withinpath program 122. -
Control executive 250 sends (e.g., continuously and/or periodically—even when obstacles are not detected) time-stamped status 270 back toROC 120 to allow robot controller 130 (or any supervisor with access to the data at ROC 120) to monitor the status and progress ofrobot 102. Communication betweenROC 120 androbot 102 is secure. - Where
ROC 120 generatesdirectives 260 to resolve a situation,robot controller 130 may invokedocument generator 370 to generatedocumentation 372 supporting a reason why a portion ofpath 180 has not been cleared. For example,service provider 151 may send such documentation to a customer requesting that the obstacle be removed frompath 180 for future treatment operations byrobot 102. -
FIG. 8 showsROC 120 ofFIG. 1 in further exemplary detail.ROC 120 includes adigital processor 302 or computer communicatively coupled withmemory 304 and anInternet interface 390.Memory 304 represents one or both of volatile memory (e.g., RAM, DRAM, SRAM, and so on) and non-volatile or non-transitory memory such as FLASH, ROM, magnetic memory, magnetic disk, and other nonvolatile memory known in the computer art, and is illustratively shown storingsoftware 306 implemented as machine readable instructions that are executed byprocessor 302 to provide the functionality ofROC 120 as described herein. -
Software 306 includesrobot controller 130 implemented with apath program generator 310 that generatespath program 122 based uponlocation data path capture device 150 or from other sources such as a mapping, path, andarea designation program 184.Path program 122 defines a series of coordinates and orientation vectors and other operational instructions, such as acceleration, speed, and the direction of discharge, forrobot 102 to follow toclear path 180.Robot controller 130 also implements asituation analyzer 312 that processes status 270 received fromrobot 102 to determine progress ofrobot 102 throughpath program 122, and to resolve situations encountered byrobot 102 that cannot be resolved byrobot 102. For example,situation analyzer 312 may generate at least onedirective 260 that is sent torobot 102 indicating one or more actions forrobot 102 to take to resolve a current situation encountered byrobot 102. -
Software 306 also includes adashboard generator 380 that generates a dashboard 382 (e.g., seeFIG. 9 for additional detail) through cooperation withInternet interface 390 that allows an operator (or customer) to view progress ofrobot 102clearing path 180. That is,dashboard generator 380 may process status 270 as it is received fromrobot 102 andupdate dashboard 382 in real-time.Dashboard generator 380 may also process previously recorded status 270 withinhistory database 350 and generate a “replay” of activity byrobot 102. For example, based upon recorded status 270 withinhistory database 350,dashboard generator 380 may generatedashboard 382 to show progress ofrobot 102 on a previously completed clearing ofpath 180, thereby allowing an operator and/or customer to verify thatpath 180 was cleared correctly.Dashboard generator 380 may allow this replay at normal speed, and may allow speed of the replay to be increased and/or decreased through interaction withdashboard 382. -
ROC 120 records status 270 within ahistory database 350 that provides evidence of the performance ofrobot 102.Software 306 also includes adocument generator 370 that processes status 270 records withinhistory database 350 to generatedocumentation 372, which may be sent to a customer as evidence thatrobot 102 has performed the necessary work (e.g., clearing snow from path 180) as a service to a third party.Documentation 372 contains information (e.g., dates, times, performance data, and images) that documents activity ofrobot 102. For example,documentation 372 may be automatically generated for each service (i.e., each path clearing) provided byrobot 102, or may summarize activity over a predefined period (e.g., a weekly report). -
Document generator 370 may digitally signdocumentation 372 to ensure that it cannot be forged to show activities that did not occur, or to remove activities that did occur. That is,history database 350 anddocument generator 370 provide an accurate account of activity byrobot 102. - In one embodiment, during operation, robot 102 (e.g., control executive 250) interacts with
ROC 120 using one or more of cellular, satellite, and Wi-Fi protocols.Robot 102 may have its own IP address and thereby operates similarly to other Internet-of-Things (IoT) type devices. Althoughrobot 102 may operate autonomously, without continuous communication withROC 120, certain conditions may requirerobot 102 to communicate withROC 120 or a local handheld computer (e.g., a smart phone) in order to clear the condition. For example, as described above, wherecontrol executive 250 and objectidentifier 252 cannot identify an unexpected obstacle,control executive 250 stops movement ofrobot 102 until further instructions are received. Primarily, these instructions (e.g., directives 260) will be received fromROC 120.Control executive 250 also attempts to communicate with a local operator'smobile device 190 if any is nearby and monitoring this robot. For example,control executive 250 may send a current status 270 tomobile device 190, which may be a smart phone or laptop computer running an app for communicating withrobot 102, whereuponmobile device 190 alerts the local operator to the current condition ofrobot 102. The local operator may then interactively resolve the condition usingmobile device 190, for example by remotely controllingrobot 102 or shutting downrobot 102 usingmobile device 190, and/or may manually resolve the problem in other ways, for example by physically moving the obstacle. -
ROC 120 may include one or more servers (e.g., computers, each with memory and at least one processor) that communicate with one another and withrobot 102 as it operates to executepath program 122.ROC 120 may simultaneously communicate with a plurality ofrobots 102, controlling each one independently to complete different tasks, and convey status 270 of eachrobot 102 to one or more human operators. For example, an operator may connect toROC 120 via a web browser over the Internet to monitor progress of the robots to complete their tasks. Each operator may be in charge of one ormore robots 102.ROC 120 may thereby provide a cloud service (SaaS) that a customer uses to monitor operation of their robot(s) 102. For example, a customer may provide a snow clearing service to a thirdparty using robots 102. In another example, a customer may userobots 102 to clear their own paths rather than employ a snow clearing service. -
FIG. 9 shows oneexemplary dashboard 382 for displaying a current status and progress ofrobot 102.Dashboard 382 is generated bydashboard generator 380 based upon status 270 received fromrobot 102 and may be viewed, viaInternet interface 390, by an operator ofservice provider 151 and/or an operator ofROC 120. For example, the operator viewsdashboard 382 in a web page generated byROC 120 to visually receive an indication of the status of each of one ormore robots 102.Dashboard 382 is interactive and may allow the operator to drill-down into any given robot to receive more detailed information about the status of the robot, and of individual parts of the robot.Dashboard 382 may also allow the operator to controlrobot 102, for example to shutdown operation ofrobot 102, pause operation ofrobot 102, and so on. - As shown in
FIG. 9 ,dashboard 382 includes agraphical representation 402 ofpath 180 where a first completed portion is represented as asolid line 404 and an untreated portion indicated as a dashedline 406.Graphical representation 402 may showkey points 408 alongpath 180, acurrent location 410 ofrobot 102, and afinish location 411. Abar graph 412 may illustrate a progress ofrobot 102 alongpath 180 and an estimated time ofcompletion 414.Dashboard 382 also shows abar graph 416 representing one or more of: available fuel and/or battery level,available treatment material 224, and so on.Dashboard 382 may also show one or more images captured bysensors 230 and included within status 270. - Status 270 may include one or more images, captured by imaging
sensors 230 of a view in any direction aroundrobot 102. These images may be stored within memory 206 (e.g., within status 270) and withinmemory 304 ofROC 120, thereby providing a visual audit trail of activity byrobot 102. For example, status 270 may be reviewed to determine whetherrobot 102 performed the required task (e.g., clearingpath 180 at the requested time). In one embodiment,mobile device 190 may interrogatememory 206 ofrobot 102 to retrieve status 270 to determine and view the most recent actions ofrobot 102. - As noted above, all communication between
robot 102 andROC 120 is secure (e.g., encrypted and digitally signed) to protect against loss or corruption of sensitive data and to preventrobot 102 from being remotely “taken over” by a third party (e.g., hostile attacker/hacker). For example, all messages fromROC 120 torobot 102 are encoded for use only by the addressedrobot 102. For example, each ofROC 120 androbot 102 may have its own set of public key infrastructure (PKI) keys thereby allowing secure communication. -
FIG. 10 shows path capturedevice 150 ofFIG. 1 in further detail. As noted above,path capture device 150 collects and sendslocation data 154 toROC 120.Path capture device 150 is a mobile computing device that includes aprocessor 502 communicatively coupled with amemory 504, alocator 510, and acommunication interface 520.Memory 504 is shown storing anacquirer 550 that includes machine readable instructions executed byprocessor 502 to provide functionality ofpath capture device 150 as described herein.Locator 510 operates to determine a current location ofdevice 150, and may represent a GPS receiver and/or a location triangulation receiver.Communication interface 520 implements one or more communication protocols such as Wi-Fi, cellular, Bluetooth, and so on, to allowpath capture device 150 to communicate withROC 120. -
Path capture device 150 is taken to a site containing path 180 (which is to be cleared of snow for example) and moved (e.g., by an operator or customer) alongpath 180. The operator may simply walkpath 180 while holding or pushingpath capture device 150 operating in a “data-collection” mode. In data-collection mode,device 150 useslocator 510 to periodically, in an embodiment at least once per thirty centimeters, determinecoordinates 560 of its current location and a current direction of travel that are then stored withinmemory 504.Device 150, orrobot 102 operated in manual mode with path capture enabled, also automatically records any objects near the path and their texture detected at each point by sensors of thepath capture device 150 orrobot 102; these sensors include ultrasonic and LIDAR sensors adapted to scan at least ahead and to the sides of thepath capture device 150 orrobot 102.Path capture device 150 also allows the operator to record afeature 562 corresponding to coordinates 560 (i.e., capture a feature at a current location of path capture device 150) withinlocation data 154. That is,path capture device 150 allows the user to mark significant features ofpath 180 while capturing coordinates 560. For example, the operator may identify a start location whererobot 102 is to start treatment ofpath 180 and an end location identifying whererobot 102 is to stop treatment ofpath 180. The operator may also indicate physical features of, or around,path 180 that may be useful when creatingpath program 122. For example, the operator may indicate the position of one or more of a curb, a step, a wall, a drop-off, a bank, and so on, relative topath 180. In one embodiment, the operator orients a camera ofpath capture device 150 towards a feature, and upon indication of the type of feature (e.g., wall, steps, etc.), path capturesdevice 150 stores its current location, orientation (e.g., derived from sensors withinpath capture device 150 such as a magnetic compass, a GPS unit, and so on), and an image from the camera, corresponding to the identified feature, withinmemory 504. - When capturing coordinates 560 and features 562 of
path 180, the operator may also interactively provide operational controls topath capture device 150. For example, where a wall is located along one side ofpath 180, the operator may interact withpath capture device 150, at the appropriate location, to enter an operational control to change the direction ofclearing mechanism 214 to clear snow to an opposite side ofpath 180 from the wall.Path capture device 150 may allow the operator to define other parameters relevant torobot 102, such as operation and application rate oftreatment applicator 220 and a direction of rotation ofclearing mechanism 214.Path capture device 150 may in some embodiments record video of the path, this video may be played back by an operator resolving issues with obstacles detected byrobot 102 whenrobot 102 is treating the path. - During path capture, the
robot 102 orpath capture device 150 may, but need not, have thepath clearance device 214 attached. In embodiments wherepath clearance device 214 is not present during capture, images captured with infrared andcolor cameras 150B are annotated with an outline ofpath clearance device 214 and displayed to an operator onscreen 151A to assist in determining when movement of the robot should have adequately cleared the path. Similarly, in a particular embodiment a map showing zones expected to be cleared by prior movements of the robot is shown to the operator to assist the operator in moving the path capture device to capture a path that clears remaining portions of an area to be cleared without undue or insufficient overlap. - During collection, or once collection is completed,
location data 154 is uploaded toROC 120 and processed bypath program generator 310 to generatepath program 122. -
Path capture device 150 may capturelocation data 154 for any number of paths at a given site and may capturelocation data 154 for any number of service locations. Wherelocation data 154 is collected for multiple paths at a given site,path program generator 310 may generate sequence instructions withinpath program 122 to ensure that robot 102 (or multiple robots) working at that siteclear path 180 in a most efficient sequence. -
Path capture device 150 may also be used to define a perimeter of an area to be cleared, whereinpath program generator 310 generatespath program 122 with coordinates that controlrobot 102 to clear the defined area in a most effective manner. For example, when removing snow from a large area such as parking lot, one or more algorithms for traversing and clearing such areas may be used to generatepath program 122 to move the snow in an efficient and effective manner such that the required effort byrobot 102 is minimized. - In one embodiment, a drone is controlled to traverse
path 180 collectinglocation data 154 and one or more of images, LIDAR data, and so on, that are used to identify features of the path. - In an alternative embodiment, generated
path program 122 is overlaid on an aerial photograph or satellite photograph of the area to be treated and presented to an operator so that the operator can preview expected motions of therobot 102. -
FIG. 11 shows status 270 ofFIG. 8 in further exemplary detail. Status 270 includes arobot ID 602, atime stamp 604, location coordinates 606, position inactivity 608,sensor data 610, movement status 616, and adigital signature 618.Sensor data 610 may periodically include one or more images 612 (e.g., for audit purposes) and may include one ormore images 612 acquired when an unexpected obstacle is detected bymonitor module 256. In an embodiment,images 612 may be obtained in any desired direction aroundrobot 102. -
Robot ID 602 is an identifier that uniquely identifiesrobot 102, such as a unique serial number assigned torobot 102.Timestamp 604 defines the date and time that status 270 was generated bycontrol executive 250, thereby allowing multiple status 270 records to be chronologically sorted to define an activity sequence. Location coordinates 606 define the location ofrobot 102 at the time status 270 was generated, and may for example be GPS coordinates. Position inactivity 608 indicates progress ofrobot 102 throughpath program 122 and/or progress ofrobot 102 alongpath 180.Images 612 may be captured by one ormore imaging sensors 230 ofrobot 102 at the time status 270 is generated and may show the portion ofpath 180 yet to be cleared and the portion ofpath 180 that has been cleared. In one embodiment, the one (or more)imaging sensor 230 is controllable to face any direction aroundrobot 102.Sensor data 610 contains information from any of sensors 230 (e.g., LIDAR, proximity, environmental, etc.), sensed at the time status 270 is created. Movement status 616 includes an indication of current activity ofrobot 102, such as direction and speed of movement, tool activity and status, and so on. Each status 270 may include adigital signature 618 to ensure that communication fromrobot 102 toROC 120 is secure, and cannot be spoofed or altered.ROC 120 may usedigital signature 618 to ensure that status 270 was generated and sent byrobot 102 and not by a malevolent third party. - In one embodiment, status 270 is generated at least once per minute, but normally more frequently. Where connectivity with
ROC 120 is not available, status 270 may be stored within a non-volatile portion ofmemory 304 ofcontroller 202 until communication withROC 120 is available and status 270 is sent toROC 120. In one embodiment, status 270 records are collected withinmemory 304 and collectively sent toROC 120 at regular, but less frequent, intervals. - In one embodiment, communication between
ROC 120 androbot 102 utilizes a sequence number to ensure that messages are not missed or duplicated. For each message received fromrobot 102,ROC 120 first validates the message (e.g., checking one or more ofdigital signature 618, a sequence number being next in sequence, and the message data is checked for integrity errors), thenROC 120 stores the message withinhistory database 350 in association withrobot 102 and optionally in association withservice provider 151 and the third party or the address (site) being serviced, before it is stored persistently inhistory database 350 of ROC 120 (or an alternative “final audit database”). - For example, each communication may involve first collecting the raw data together into a single “packet” along with the packet's monotonically increasing sequence number. Then a hash (message digest) of the packet is computed. This value (due to the properties of cryptographic hashes) is considered to be unique to the packet (like a fingerprint). Finally, the hash is digitally signed by
robot 102 and sent toROC 120. - As known in the art, a digital signature utilizes two encryption keys: a public key and a private key. In order to prevent spoofing of message and forgery, both encryption keys corresponding to
robot 102 are generated byrobot 102 and the private key is never transferred off ofrobot 102. For example, generation of encryption keys occurs as part of the initial configuration process when a customer first receives theirrobot 102. Once the encryption keys have been generated,robot 102 transmits the public key toROC 102 where it is stored in association withrobot 102.ROC 102 also has two encryption keys and transmits its public key torobot 102 and toservice provider 151. Since the private key ofrobot 102 is not accessible by eitherROC 102 orservice provider 151, information withindocumentation 372 cannot be forged or altered since there is only one public key that matches the one private key on the robot. If the private key onrobot 102 is changed or compromised,ROC 120 may detect this change becausedigital signature 618 could not be validated by the public key corresponding torobot 102. - Similarly,
robot 102 may verify communications fromROC 120 using the public key ofROC 120, thusrobot 102 may only be commanded fromROC 120, sincerobot 102 may detect when a command is not fromROC 120 since it cannot be decrypted by the ROC's public key, which was downloaded torobot 102 during configuration. -
Document generator 370 may include a user interface to allowservice provider 151 or the third party to request, in the event of a legal challenge, an audit trail fromhistory database 350 forrobot 102. In one embodiment,dashboard generator 380 generates a dashboard (e.g.,dashboard 382 ofFIG. 9 ) to replay status 270 records fromhistory database 350 forrobot 102, whereinservice provider 151 and/or the third-party view dashboard 382 viaInternet interface 390 to see a replay of activity byrobot 102. -
Digital signature 618 ensures that information within status 270 is not altered in any way after status 270 is generated bycontrol executive 250, and may thereby be used to indicate that the data is authentic, and that the data has not been forged or altered byservice provider 151 and/orROC 120.Digital signature 618 thereby allowsservice provider 151 to provide thatrobot 102 performed the required treatment at the requested time and thus fulfilled a service contract. Further, because ofdigital signature 618, customers ofservice provider 151 are reassured that the evidence of service performed byrobot 102 is true. -
FIG. 12 is a flowchart illustrating oneexemplary method 700 for capturinglocation data 154 definingpath 180 to be treated byrobot 102.Method 700 is for example implemented withinpath capture device 150 ofFIG. 1 . Prior to invokingmethod 700 onpath capture device 150,path capture device 150 is moved to a start point ofpath 180. That is,path capture device 150 is positioned at the point onpath 180 where treatment byrobot 102 is to commence. - In
step 702,method 700 determines a location of the path capture device. In one example ofstep 702,path capture device 150 useslocator 510 to determine a current location ofpath capture device 150. Instep 704,method 700 stores the determined location in location data. In one example ofstep 704,acquirer 550 stores coordinates 560 of the determined location ofstep 702 withinlocation data 154. Instep 706,method 700 stores start point as interesting features in location data. In one example ofstep 706,acquirer 550 stores feature 562 indicating start point withinlocation data 154. - In
step 708,method 700 detects movement along path to be cleared. In one example ofstep 708,acquirer 550 utilizessensors 152 to detect movement ofpath capture device 150 before proceeding to step 710. - Step 710 is a decision. If in
step 710,method 700 determines that an interesting feature has been located,method 700 continues withstep 712; otherwise,method 700 continues withstep 714. In one example ofstep 710,acquirer 550 determines that an interesting feature has been encountered based upon one or both of: receiving input from an operator of thepath capture device 150 indicating a type of interesting feature encountered at a current location; and detecting an interesting feature using one ormore sensors 152. For example,acquirer 550 may detect an interesting feature captured byimager 512 as path capturedevice 150 is moved alongpath 180. Interesting features may be selected from the group including: start point, end point, wall (left, right), curb (left, right), step (up, down), non-grass vegetation (left, right), permanent obstacle (unspecified, like a parked trailer, left, right), mailbox (left, right), drop-off (left, right), column (left, right), and so on. - In
step 712,method 700 stores the interesting feature in location data. In one example ofstep 712,acquirer 550 stores feature 562 withinlocation data 154. Instep 712,acquirer 550 may store additional data fromsensors 152 corresponding to the identified features withinlocation data 154.Method 700 then continues withstep 714. - Step 714 is a decision. If in
step 714,method 700 determines that a directive is received,method 700 continues withstep 716; otherwise,method 700 continues withstep 718. In one example ofstep 714, a user enters a directive topath capture device 150 indicating a direction for cleared snow. - In
step 716,method 700 stores the directive in location data. In one example ofstep 716,acquirer 550 stores directive withinfeature 562 oflocation data 154. For example, the user may indicate that snow is to be cleared to the left, wherein the directive stored withinfeature 562 may indicate an angle of minus thirty degrees forclearing mechanism 214, thus defining the clearing direction for snow until changed by the user. In one example of operation, as the user and path capturedevice 150 are positioned at the start ofpath 180, the user is prompted for an initial clearing direction.Steps clearing mechanism 214 brush on/off and spin direction,treatment applicator 220 activation/deactivation, and so on) to be entered and stored withinlocation data 154. - In
step 718,method 700 determines a location of the path capture device. In one example ofstep 718,acquirer 550 useslocator 510 to determine a current location ofpath capture device 150. Instep 720,method 700 stores the determined location in location data. In one example ofstep 720,acquirer 550 stores coordinates 560 of the determined location ofstep 718 withinlocation data 154. Where afeature 562 has been added tolocation data 154, coordinates 560 and feature 562 may be stored in association with one another withinlocation data 154. Optionally, instep 718,method 700 may also determine an orientation ofpath capture device 150 as indicating a direction of an interesting feature or as a direction for an entered directive, wherein the determined orientation is stored inlocation data 154 in association with the entered feature or directive. - Step 722 is a decision. If, in
step 722,method 700 determines that an end of a portion ofpath 180 to be treated byrobot 102 has been reached,method 700 continues withstep 724; otherwisemethod 700 continues withstep 708. That is, steps 708 through 722 repeat as path capturedevice 150 is moved alongpath 180 over the area to be treated byrobot 102. When the end of the area to be treated is reached, the operator ofpath capture device 150 may provide an input to indicate the end, whereinmethod 700 continues withstep 724. - In
step 724,method 700 sends the location data to the ROC. In one example ofstep 724,acquirer 550 sendslocation data 154 toROC 120 viainterface 520. -
FIG. 13 is a flowchart illustrating oneexemplary method 800 for generating the path program.Method 800 is implemented bypath program generator 310 ofROC 120 for example. - In
step 802,method 800 receives location data. In one example ofstep 802,ROC 120 receiveslocation data 154 frompath capture device 150. - Step 804 is optional. If included, in
step 804,method 800 retrieves geographic data for the area covered by the location data. In one example ofstep 804,path program generator 310 retrieves, for an area corresponding to the area covered bylocation data 154, one or more of satellite imagery, topographic data, building plans, and so on. - In
step 806,method 800 sets the location coordinate to a start point. In one example ofstep 806, a last coordinate variable storing a previous location coordinate in the generated program is initialized to the start location. Instep 808,method 800 reads a next item from location data. In one example ofstep 808,path program generator 310 reads a next item fromlocation data 154 received instep 802. - Step 810 is a decision. If, in
step 810,method 800 determines that the item read instep 808 contains coordinates,method 800 continues withstep 812; otherwise,method 800 continues withstep 816. Instep 812,method 800 computes the direction and distance from the last coordinate to the next coordinate from the last coordinate. In one example ofstep 812,path program generator 310 computes a heading and a distance between the last coordinate and the next coordinate read instep 808. For example,path program generator 310 may determine thatrobot 102 should move two feet in a due west direction. Instep 814,method 800 generates path program travel vector steps including a turn heading and an acceleration value. In one example ofstep 814,path program generator 310 generates a step inpath program 122 with instructions to moverobot 102 two feet in a due west direction by turning −90 degrees from a current heading of due north and accelerating to 1 mph.Method 800 continues withstep 808. - Step 816 is a decision. If, in
step 816,method 800 determines that the item read instep 808 contains feature,method 800 continues withstep 818; otherwise,method 800 continues withstep 824. Instep 818,method 800 validates the current robot directives and controls in view of the identified feature and its location relative to the programmed location ofrobot 102 when moving alongpath 180 to ensure that therobot 102 can physically follow thepath 180 while avoiding obstacles identified during path capture and while directing snow or debris away from tall obstacles such as walls. For example,robot 102 has limitations on turn radius; validation includes verifying that therobot 102 can turn sharply enough to follow turns ofpath 180 without colliding with obstacles. Further, sincerobot 102 has non-zero length, validation includes verifying that all parts ofrobot 102 remain clear of obstacles while performing turns required while followingpath 180. In one example ofstep 818, where the identified feature read instep 808 is a wall on the left side ofpath 180,path program generator 310 validates, based upon previously defined directives and movement stored withinpath program 122, that the direction of snow clearance byclearing mechanism 214 is not towards the wall (i.e., not to the left). In another example ofstep 818, when the feature read instep 808 indicates a curb on a right side ofpath 180,path program generator 310 validates that a programmed speed ofrobot 102 withinpath program 122 is reduced. That is, based upon the feature read instep 808,method 800 may modifypath program 122 to controlrobot 102 to move at a slower speed when near the feature. In another example, based upon the feature read instep 808,method 800 may modifypath program 122 to controlrobot 102 to monitor data fromsensor 230 more frequently to prevent collision with the feature. In another example ofstep 818, when the feature read instep 808 indicates a step inpath 180 thatrobot 102 should traverse,path program generator 310 validates that the speed ofrobot 102 programmed withinpath program 122 is correct for traversing the step, and, if programmed speed is incorrect for traversing the step may adjust the programmed speed of the robot for that step. In particular, when in the vicinity of physical features or obstacles identified during path generation,path program generator 310 may adjust programmed speed of the robot to ensure the robot can navigate the path without marring or colliding with those physical features or obstacles. In certain embodiments, instep 818,method 800 may generate one or more additional directives and movement commands withinpath program 122 to enablerobot 102 to negotiate the feature. - Step 820 is a decision. If, in
step 820,method 800 determines that the robot directives and controls are valid, method continues withstep 808; otherwisemethod 800 continues withstep 822. Instep 822,method 800 generates a path program feature warning. Optionally,step 822 may also generate one or more additional steps withinpath program 122 to correct operation ofrobot 102 in view of the invalid robot directives and controls.Method 800 then continues withstep 808. - Step 824 is a decision. If, in
step 824,method 800 determines that the item read instep 808 contains directive,method 800 continues withstep 826; otherwise,method 800 continues withstep 828. Instep 826,method 800 generates a path program directive step. In one example ofstep 826, when the directive read instep 808 indicates that theclearing mechanism 214 is to be activated,path program generator 310 generates a program step withinpath program 122 to activateclearing mechanism 214. In another example ofstep 826, when the directive read instep 808 indicates that the clearing direction forclearing mechanism 214 should be to the right,path program generator 310 generates a step withinpath program 122 to moveclearing mechanism 214 such that snow is cleared to the right.Method 800 then continues withstep 808. - Step 828 is a decision. If, in
step 828,method 800 determines that an end oflocation data 154 has been reached,path program 122 is complete andmethod 800 terminates; otherwise,method 800 continues withstep 808.Steps 808 through 828 thus repeat to process all data withinlocation data 154.Path program 122 is stored withinROC 120 until requested bycontrol executive 250 whenrobot 102 is about to operate. - As noted above,
ROC 120 may apply encryption and digital signatures topath program 122 to ensure security ofrobot 102 control. -
FIG. 14 is a flowchart illustrating oneexemplary method 900 for autonomous path treatment.Method 900 is implemented bycontrol algorithm 208 ofrobot 102 for example. - In
step 902,method 900 receives the path program from the ROC or from a mobile electronic device such as a smartphone or laptop computer. In one example ofstep 902,control algorithm 208 receivedpath program 122 fromROC 120. - In
step 904,method 900 determines the location of the robot relative to the start point of the path program. In one example ofstep 904,control algorithm 208 utilizessensors 230 to determine a location and orientation ofrobot 102, and then determines its position relative to a start location ofpath program 122. - Step 906 is optional. If included, in
step 906,method 900 controls the robot to move to the start point. Wherestep 906 is not included,robot 102 may be controlled manually (e.g., by an operator using a mobile device communicatively coupled with robot 102) to be positioned at a start point. For example, an operator may use an enabled smart phone running an appropriate app or a laptop computer to communicate with andcontrol robot 102 to move to the start point. Through interaction withrobot 102 and an indicated start point withinpath program 122, the app may indicate whenrobot 102 is at the start point. In one example ofstep 906,control algorithm 208 invokesnavigator 254 to controlrobot 102 to move from its current location to a location at the start ofpath program 122. - In
step 908,method 900 controls the robot to follow a next directive from the path program. In one example ofstep 908,control algorithm 208 reads a next directive frompath program 122 and controlsrobot 102 to follow the directive. - In
step 910,method 900 determines a status of the robot and sends the status to the ROC. In one example ofstep 910,control algorithm 208 determines status 270 ofrobot 102 and sends status 270 toROC 120. - Step 912 is a decision. If, in
step 912,method 900 determines that the end of the path program has been reached,method 900 terminates; otherwise,method 900 continues withstep 914. - Step 914 is a decision. If, in
step 914,method 900 determines that the robot is at a feature of interest,method 900 continues withstep 916; otherwise,method 900 continues withstep 918. In one example ofstep 914, control algorithm determines that a current location ofrobot 102 has an associated feature of interest withinpath program 122 and continues withstep 916. - In
step 916,method 900 adjusts the robot for the feature of interest. In one example ofstep 916,control algorithm 208 applies one or more directives frompath program 122 corresponding to the feature of interest and monitors the feature of interest using one ormore sensors 230. Where necessary,control algorithm 208 generatesadditional directives 260 based upon sensors data fromsensors 230 based upon the detected features and a current position and orientation ofrobot 102. - Step 918 is a decision. If, in
step 918,method 900 determines that an obstacle is detected,method 900 continues withstep 920; otherwise,method 900 continues withstep 908.Steps 908 through 918 thereby repeat provided no unexpected obstacle is encountered byrobot 102. - In
step 920,method 900 stops the robot. In one example ofstep 920,control algorithm 208 stopspropulsion mechanism 212, stopsclearing mechanism 214, and stopstreatment applicator 220. - In
step 922,method 900 captures sensor data of obstacle. In one example ofstep 922,control algorithm 208 captures sensor data fromsensor 230 of the unexpected obstacle. Instep 924,method 900 sends the sensor data to the ROC and, if it is being controlled locally, also to a mobile electronic device such as a smartphone or laptop computer. In one example ofstep 924,control algorithm 208 sends sensor data fromsensors 230 corresponding to the detected obstacle toROC 120. Instep 926,method 900 waits for the obstacle to clear, or for either the ROC or a mobile electronic device such as a smartphone or laptop computer to send directives. In one example ofstep 926,control algorithm 208 utilizessensors 230 to determine when a mobile unexpected obstacle, such as a dog, cat, car, golf cart, or a person, has cleared frompath 180, or waits foradditional directives 260 fromROC 120 or mobile electronic device that instructrobot 102 and that may be executed prior to executing a next directive frompath program 122. For example,ROC 120 may senddirectives 260 to maneuverrobot 102 around or over the unexpected obstacle. For example,ROC 120 may controlrobot 102 to capture and send LIDAR data of the area around and including the obstacle toROC 120.ROC 120 may then generate a three-dimensional model of the object and surrounding area, and generate directives to maneuverrobot 102 around the obstacle based upon the three-dimensional model. -
ROC 120 may also determine and send a directive to set a resume position withinpath program 122 such thatrobot 102 continues with the appropriate command after maneuveringrobot 102 to avoid the obstacle. For example, based upon a determined location ofrobot 102 after being maneuvered around the obstacle, one or more steps ofpath program 122 may be skipped and operation of components ofrobot 102 may be resumed.Method 900 then continues withstep 908. -
FIG. 15 shows oneexemplary method 1000 for providing interactive control ofrobot 102 ofFIG. 1 .Method 1000 is implemented withinsituation analyzer 312 ofROC 120 for example. - In
step 1002,method 1000 receives a status from the robot. In one example ofstep 1002,situation analyzer 312 receives status 270 fromrobot 102. - In
step 1004,method 1000 stores the status within a database. In one example ofstep 1004, situation analyzer 312 stores status 270 withinhistory database 350. -
Step 1006 is a decision. If, instep 1006,method 1000 determines that robot has completed the path program,method 1000 terminates; otherwise,method 1000 continues withstep 1008. -
Step 1008 is a decision. If, instep 1008,method 1000 determines that an unexpected situation has occurred with the robot,method 1000 continues withstep 1010; otherwise,method 1000 continues withstep 1002.Steps 1002 through 1008 repeat until the robot finishes the path program or encounters an unusual situation (e.g., an unexpected obstacle). - In
step 1010,method 1000 analyzes the status to identify the situation. In one example ofstep 1010, situation analyzer 312 processes and matches sensor data within status 270 against previously encountered situations to identify the unexpected situation. -
Step 1012 is a decision. If, instep 1012,method 1000 determines that the robot has encountered a known situation,method 1000 continues withstep 1014; otherwise,method 1000 continues withstep 1016. - In
step 1014,method 1000 generates directives for the robot to resolve the situation. In one example ofstep 1014,situation analyzer 312 generates one ormore directives 260 to controlrobot 102 to resolve the current situation based upon previous success in resolving similar situations. For example,ROC 120 learns from previous handling of a similar situation and may thereby generatedirectives 260 for resolving the current situation based upon success of these previously issued directives.Method 1000 then continues withstep 1018. - In
step 1016,method 1000 interacts with an operator to determinedirectives 260 for resolving the current situation. In one example ofstep 1016,situation analyzer 312 interacts with an operator to determine one ormore directives 260 forrobot 102 to resolve the current situation. For example, the operator may review status 270 and thus sensor data corresponding to an unexpected obstacle, and then enter one ormore directives 260 that instructrobot 102 to move around the obstacle.Method 1000 then continues withstep 1018. - In a particular embodiment, sensor data from cameras is annotated with symbols indicating an effective reach of the
path treatment device 214. - In
step 1018,method 1000 sends the determined directives to the robot. In one example ofstep 1018,situation analyzer 312 sendsdirectives 260 torobot 102. -
Steps 1002 through 1018 thereby repeat to handle any unexpected obstacle or unexpected situation withrobot 102. -
FIG. 16 shows oneexemplary scenario 1100 wheremanagement entity 101 operatesROC 120 to provide simultaneous service to three service providers 151(1)-(3), where eachservice provider 151 utilizes one ormore robots 102. That is,ROC 120 simultaneously controlsmany robots 102 to clear paths at different locations. Specifically,ROC 120 maintainsseparate path programs 122 for eachrobot 102 based upon capturedlocation data 154 for the paths indicated for treatment by that robot. Further,service provider 151 may utilize more than onerobot 102 at aparticular service location 1102, particularly where the path to be cleared is large. In the example ofFIG. 16 , service provider 151(1) has two robots 102(1) and 102(2) that operate at service locations 1102(1) and 1102(2), respectively; service provider 151(2) has two robots 102(3) and 102(4) that operate at service locations 1102(3) and 1102(4), respectively, and two robots 102(5) and 102(6) that operate at service location 1102(5); and service provider 151(3) has one robot 102(7) that operates at service location 1102(6). - Service provider 151(1) views a dashboard 382(1) at a single location/console corresponding to operation of each robot 102(1) and 102(2). Similarly, service provider 151(2) views a dashboard 382(2) at a single location/console corresponding to operation of each of robots 102(3)-(6), and service provider 151(3) views a dashboard 382(3) at a single location/console corresponding to operation of robot 102(7). That is,
ROC 120 simultaneously provides control and monitoring of a plurality ofrobots 102 atdifferent service locations 1102 and under control ofvarious service providers 151.ROC 120 also providesdocumentation 372 indicative of services performed by eachrobot 102, thereby allowing eachservice provider 151 to provide evidence of services provided to eachservice location 1102. -
FIG. 17 is a schematic illustrating a plan view ofrobot 102 in one exemplary embodiment. In the embodiment, ofFIG. 17 power source 210 is an internal combustion engine and an alternator for generating electrical power.Propulsion mechanism 212 includes four wheels with snow tires that driverobot 102 forwards in a direction indicated byarrow 1202.Propulsion mechanism 212 may also be controlled to turnrobot 102.Clearing mechanism 214 is a rotating brush, driven by power frompower source 210.Clearing mechanism 214 is turned, relative to the propulsion direction indicated byarrow 1202, such that cleared snow is thrown to the left, as indicated byarrow 1204. The clearing direction ofclearing mechanism 214 is controllable (e.g., using path program 122) to clear snow to the right ofrobot 102 as indicated byarrow 1206. For example, based upon topography ofpath 180 and its surrounding, clearing direction ofclearing mechanism 214 may be adjusted such that snow is cleared efficiently. - The features and method steps herein described may be present in embodiments in many combinations. Among those combinations are:
- A method designated A for autonomously treating a path, including receiving, within a computer server, coordinates defining the path; generating, based upon the coordinates, a path program for controlling an autonomous path treatment robot to autonomously treat the path; and sending the path program to control the autonomous path treatment robot to treat the path. The server or a handheld device may receive status information from the autonomous path treatment robot during treatment of the path; and the server generates documentation indicative of the path treatment by the autonomous path treatment robot based upon the status information.
- A method designated AA including the method designated A, further including determining, from the status information, when the autonomous path treatment robot has encountered an unexpected obstacle; analyzing sensor data within the status information to identify the unexpected obstacle; generating one or more directives, based upon the identity or type of the unexpected obstacle, to control the autonomous path treatment robot to negotiate the unexpected obstacle; and sending the directives to the autonomous path treatment robot.
- A method designated AB including the method designated A or AA further including receiving, in association with at least one of the coordinates received from the mobile device, a feature indicator indicative of a physical feature of, or around, the path; and the step of generating the path program further includes validating the path program to ensure that the robot is capable of following the path.
- A method designated AC including the method designated A, AA, or AB further including the step of validating further comprising modifying the path program to adjust a speed of the autonomous path treatment robot when proximate the physical feature.
- A method designated ACA including the method designated AC, the step of validating further comprising generating a warning when the robot cannot follow the path because of turn radius and length of the autonomous path treatment robot.
- An autonomous path treatment system designated B, includes a source of coordinates and directions of travel corresponding to a path to be treated which in some embodiments is computer executing mapping and path designation software using an aerial photograph, and in other embodiments is a mobile path recording device having a locator, a processor and a memory storing machine readable instructions executable by the processor to capture, using the locator, a sequence of coordinates and directions of travel of the path to be treated as the mobile device is moved along the path by an operator; The system also includes an autonomous path treatment robot having: a motor for maneuvering the robot along the path; a treatment mechanism for treating the path; and a controller having a processor and memory storing machine readable instructions that when executed by the processor obeys steps of a path program to control the motor and the treatment mechanism to treat the path; and a server configured to generate the path program from recorded sequence of coordinates and instructions, the path program comprising instructions for controlling the autonomous path treatment robot to treat the path based upon the coordinates. The server is configured to: send the path program to the autonomous path treatment robot; receive the status information from the autonomous path treatment robot via the wireless interface as the autonomous path treatment robot treats the path; and generate a dashboard illustrating a status of the autonomous path treatment robot based upon the status information.
- An autonomous path treatment system designated BA including the system designated B, wherein the server further includes a processor and a memory storing machine readable instructions executable by the processor to: receive the coordinates of the path from the mobile device; determine, from the status information, when the autonomous path treatment robot has encountered an unexpected obstacle; analyze sensor data within the status information to identify the unexpected obstacle; generate one or more directives, based upon the identified unexpected obstacle, to control the autonomous path treatment robot to negotiate the unexpected obstacle; and send the directives to the autonomous path treatment robot via the wireless interface. In particular embodiments, the memory storing machine readable instructions is non-transitory.
- An autonomous path treatment system designated BB including the system designated B or BA, the memory of the mobile device further storing machine readable instructions executable by the processor to capture one or more features of the path selected from the group including a curb, a step, a wall, and a drop-off, the memory of the server further storing machine readable instructions executable by the processor to generate the path program to include instructions for controlling the autonomous path treatment robot to treat the path based upon the features.
- An autonomous path treatment system designated BC including the system designated B, BA or BB, the memory of the mobile device further storing machine readable instructions executable by the processor to interact with the operator to receive feature information of the path, the feature information defining a location of one or more of a curb, a wall, and a step, together with its location relative to the path.
- An autonomous path treatment system designated BD including the autonomous path treatment system designated B, BA, BB, or BC, wherein the mobile path recording device is the autonomous path treatment robot.
- An autonomous path treatment robot for treating a path designated C, including a motor driving at least one wheel to maneuver the autonomous path treatment robot along the path; a path treatment device positioned ahead of the motor and wheel for treating the path; a wireless interface for receiving, from a remote server, a path program that includes a sequence of directives; and a controller having a processor and memory storing machine readable instructions that are executed by the processor to cooperatively control the motor and the path treatment device to treat the path based upon the sequence of directives.
- An autonomous path treatment robot designated CA including the robot designated C, further including at least one sensor for sensing an environment of the robot to generate sensor data, the memory further storing instructions that when executed by the processor direct the robot to: detect an unexpected obstacle in the path of the robot based upon the sensor data; pause operation of the robot when the unexpected obstacle is detected; send the sensor data corresponding to the unexpected obstacle to the remote server; receive additional directives from the remote server; control the motor based upon the additional directives to maneuver the robot around the unexpected obstacle; and resume operation of the robot to treat the path.
- An autonomous path treatment robot designated CB including the robot designated C or CB, the memory further storing instructions that are executable by the processor to: store the additional directives within the memory in association with a first identity or type of the unexpected obstacle; match a subsequent unexpected obstacle to the first identify; and control the motor based upon the additional directives to maneuver the robot around the subsequent unexpected obstacle.
- An autonomous path treatment robot designated CC including the robot designated C, CA, or CB, the wireless interface being configured to transmit status information indicative of progress of the autonomous path treatment robot through the sequence of directives.
- An autonomous path treatment robot designated CD including the robot designated C, CA, CB, or CC, the wireless interface being configured to transmit status information indicative of operational status of the autonomous path treatment robot.
- Changes may be made in the above methods and systems without departing from the scope hereof. It should thus be noted that the matter contained in the above description or shown in the accompanying drawings should be interpreted as illustrative and not in a limiting sense. The following claims are intended to cover all generic and specific features described herein, as well as all statements of the scope of the present method and system, which, as a matter of language, might be said to fall therebetween.
Claims (16)
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/808,274 US20180143634A1 (en) | 2016-11-22 | 2017-11-09 | Autonomous path treatment systems and methods |
US16/898,208 US11635760B2 (en) | 2016-11-22 | 2020-06-10 | Autonomous path treatment systems and methods |
US18/150,836 US20230146810A1 (en) | 2016-11-22 | 2023-01-06 | Autonomous path treatment systems and methods |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201662425571P | 2016-11-22 | 2016-11-22 | |
US15/808,274 US20180143634A1 (en) | 2016-11-22 | 2017-11-09 | Autonomous path treatment systems and methods |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US16/898,208 Continuation US11635760B2 (en) | 2016-11-22 | 2020-06-10 | Autonomous path treatment systems and methods |
Publications (1)
Publication Number | Publication Date |
---|---|
US20180143634A1 true US20180143634A1 (en) | 2018-05-24 |
Family
ID=62146926
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US15/808,274 Abandoned US20180143634A1 (en) | 2016-11-22 | 2017-11-09 | Autonomous path treatment systems and methods |
US16/898,208 Active 2038-08-13 US11635760B2 (en) | 2016-11-22 | 2020-06-10 | Autonomous path treatment systems and methods |
US18/150,836 Pending US20230146810A1 (en) | 2016-11-22 | 2023-01-06 | Autonomous path treatment systems and methods |
Family Applications After (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US16/898,208 Active 2038-08-13 US11635760B2 (en) | 2016-11-22 | 2020-06-10 | Autonomous path treatment systems and methods |
US18/150,836 Pending US20230146810A1 (en) | 2016-11-22 | 2023-01-06 | Autonomous path treatment systems and methods |
Country Status (5)
Country | Link |
---|---|
US (3) | US20180143634A1 (en) |
EP (1) | EP3545136B1 (en) |
AU (2) | AU2017363489B2 (en) |
CA (1) | CA3043498A1 (en) |
WO (1) | WO2018097971A1 (en) |
Cited By (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190184569A1 (en) * | 2017-12-18 | 2019-06-20 | Bot3, Inc. | Robot based on artificial intelligence, and control method thereof |
US10417753B2 (en) * | 2016-12-21 | 2019-09-17 | Topcon Corporation | Location identifying device, location identifying method, and program therefor |
US20200063656A1 (en) * | 2018-08-27 | 2020-02-27 | Honda Motor Co., Ltd. | Internal combustion engine with iot connectivity device |
WO2020082180A1 (en) * | 2018-10-23 | 2020-04-30 | Jcai Inc. | Method and apparatus for automated de-icing of aircraft |
US10756603B2 (en) | 2018-08-27 | 2020-08-25 | Honda Motor Co., Ltd. | Internal combustion engine with wireless communications device |
US10785908B2 (en) | 2018-08-27 | 2020-09-29 | Honda Motor Co., Ltd. | Internal combustion engine with integrated connectivity device |
US10810371B2 (en) | 2017-04-06 | 2020-10-20 | AIBrain Corporation | Adaptive, interactive, and cognitive reasoner of an autonomous robotic system |
US10819194B2 (en) | 2018-08-27 | 2020-10-27 | Honda Motor Co., Ltd. | Internal combustion engine with integrated connectivity device |
US10839017B2 (en) | 2017-04-06 | 2020-11-17 | AIBrain Corporation | Adaptive, interactive, and cognitive reasoner of an autonomous robotic system utilizing an advanced memory graph structure |
US10929759B2 (en) | 2017-04-06 | 2021-02-23 | AIBrain Corporation | Intelligent robot software platform |
US10942510B2 (en) * | 2017-11-30 | 2021-03-09 | Lg Electronics Inc. | Mobile robot and method of controlling the same |
US10963493B1 (en) * | 2017-04-06 | 2021-03-30 | AIBrain Corporation | Interactive game with robot system |
EP3816754A1 (en) * | 2019-10-28 | 2021-05-05 | The Raymond Corporation | Systems and methods for transferring routes between material handling vehicles |
US11040449B2 (en) * | 2017-12-27 | 2021-06-22 | Hanwha Co., Ltd. | Robot control system and method of controlling a robot |
US20210240187A1 (en) * | 2020-01-23 | 2021-08-05 | The Toro Company | Nonholonomic robot field coverage method |
US20210276593A1 (en) * | 2020-02-25 | 2021-09-09 | Next Energy, LLC | Automated and interchangeable functional device |
WO2021199254A1 (en) * | 2020-03-31 | 2021-10-07 | 本田技研工業株式会社 | Snow removal system and snow removal method |
US11145204B2 (en) * | 2019-03-07 | 2021-10-12 | Honda Motor Co., Ltd. | Snow removal apparatus operating system and snow removal apparatus operating method |
US11151992B2 (en) | 2017-04-06 | 2021-10-19 | AIBrain Corporation | Context aware interactive robot |
US11193249B2 (en) * | 2019-05-28 | 2021-12-07 | Ari J. Ostrow | Robotic de-icer |
US20210382476A1 (en) * | 2020-06-05 | 2021-12-09 | Scythe Robotics, Inc. | Autonomous lawn mowing system |
US20220039313A1 (en) * | 2020-08-05 | 2022-02-10 | Scythe Robotics, Inc. | Autonomous lawn mower |
US20220048186A1 (en) * | 2020-08-15 | 2022-02-17 | Rapyuta Robotics Co., Ltd. | Dynamically generating solutions for updating plans and task allocation strategies |
US20220382282A1 (en) * | 2021-05-25 | 2022-12-01 | Ubtech North America Research And Development Center Corp | Mobility aid robot navigating method and mobility aid robot using the same |
WO2023102494A1 (en) * | 2021-12-03 | 2023-06-08 | Ariens Company | Brine assembly for a stand-on skid steer vehicle |
US20230259893A1 (en) * | 2019-10-03 | 2023-08-17 | The Toro Company | Site maintenance utilizing autonomous vehicles |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102018217049A1 (en) | 2018-10-05 | 2020-04-09 | Kässbohrer Geländefahrzeug Aktiengesellschaft | Snow grooming vehicle and method for operating a snow grooming vehicle |
CN109375620B (en) * | 2018-10-12 | 2020-06-02 | 深圳市今天国际智能机器人有限公司 | Method and device for controlling steering wheel to return to original point by using single photoelectric sensor |
JP7280759B2 (en) * | 2019-06-20 | 2023-05-24 | ヤンマーパワーテクノロジー株式会社 | Automated driving system for spraying operations |
CN114489072B (en) * | 2022-01-25 | 2022-08-12 | 广东工业大学 | Unmanned-boat-based water-spraying-assisted garbage recycling method and system |
US11993284B2 (en) | 2022-02-23 | 2024-05-28 | Robotic Research Opco, Llc | Autonomous winter service vehicle |
US11678604B1 (en) | 2022-12-21 | 2023-06-20 | Sensori Robotics, LLC | Smart lawnmower with development of mowing policy and system and method for use of same |
US12001182B1 (en) | 2022-12-21 | 2024-06-04 | Sensori Robotics, LLC | Smart lawnmower with realization of mowing policy and system and method for use of same |
Citations (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090281661A1 (en) * | 2008-04-24 | 2009-11-12 | Evolution Robotics | Application of localization, positioning & navigation systems for robotic enabled mobile products |
US20140124004A1 (en) * | 2012-11-02 | 2014-05-08 | Irobot Corporation | Autonomous Coverage Robot |
US20150088310A1 (en) * | 2012-05-22 | 2015-03-26 | Intouch Technologies, Inc. | Social behavior rules for a medical telepresence robot |
US20160201278A1 (en) * | 2015-01-08 | 2016-07-14 | Snowek Oy | Vehicle assisted working device, cleaning system and method |
US20160318516A1 (en) * | 2013-12-19 | 2016-11-03 | Here Global B.V. | An apparatus, method and computer program for enabling control of a vehicle |
US20160325435A1 (en) * | 2014-02-07 | 2016-11-10 | Abb Technology Ltd | Web Browser Access To Robot Cell Devices |
US20170049288A1 (en) * | 2015-08-18 | 2017-02-23 | Nilfisk, Inc. | Mobile robotic cleaner |
US20170129297A1 (en) * | 2014-06-19 | 2017-05-11 | Husqvarna Ab | Improved robotic working tool |
US20170127608A1 (en) * | 2014-06-27 | 2017-05-11 | Robert Bosch Gmbh | Autonomous Work Device |
US20170168499A1 (en) * | 2014-02-03 | 2017-06-15 | Husqvarna Ab | Obstacle detection for a robotic working tool |
US20170265703A1 (en) * | 2014-08-19 | 2017-09-21 | Samsung Electronics Co., Ltd. | Robot cleaner, control apparatus, control system, and control method of robot cleaner |
US20170344024A1 (en) * | 2014-12-23 | 2017-11-30 | Husqvarna Ab | 3d map generation by a robotic work tool |
US20180213717A1 (en) * | 2014-12-23 | 2018-08-02 | Husqvarna Ab | Improved operation of a robotic work tool by adapting the operation to weather conditions |
US20180255705A1 (en) * | 2012-06-15 | 2018-09-13 | Mauno Keski-Luopa | Maintenance and transportation method, system, and apparatus |
US20180327183A1 (en) * | 2015-07-27 | 2018-11-15 | The Heil Co. | Multi-Use Garbage Truck |
US20190033865A1 (en) * | 2017-07-26 | 2019-01-31 | Robert Bosch Gmbh | Control system for an autonomous vehicle |
US10362913B2 (en) * | 2014-01-10 | 2019-07-30 | Diversey, Inc. | Cleaning apparatus data management system and method |
US10433697B2 (en) * | 2013-12-19 | 2019-10-08 | Aktiebolaget Electrolux | Adaptive speed control of rotating side brush |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6173904B1 (en) * | 1996-06-07 | 2001-01-16 | John A. Doherty | Apparatus and system for synchronized application of one or more materials to a surface from a vehicle and control of a vehicle mounted variable position snow removal device |
US7010425B2 (en) | 2003-03-31 | 2006-03-07 | Deere & Company | Path planner and a method for planning a path of a work vehicle |
US8605947B2 (en) * | 2008-04-24 | 2013-12-10 | GM Global Technology Operations LLC | Method for detecting a clear path of travel for a vehicle enhanced by object detection |
US20120173080A1 (en) * | 2010-12-29 | 2012-07-05 | Delphi Technologies, Inc. | System and method for assisting a vehicle operator to parallel park a vehicle |
EP2479346B1 (en) * | 2011-01-19 | 2016-08-17 | Mike Mile Andic | Snow plow assembly |
US9194091B2 (en) * | 2012-08-16 | 2015-11-24 | The Toro Company | Wireless snow plow control |
US10113280B2 (en) * | 2012-12-21 | 2018-10-30 | Michael Todd Letsky | Autonomous robot apparatus and method for controlling the same |
WO2015072897A1 (en) | 2013-11-12 | 2015-05-21 | Husqvarna Ab | Improved navigation for a robotic working tool |
US9720417B2 (en) | 2013-12-19 | 2017-08-01 | Husqvarna Ab | Navigation for a robotic working tool |
US9547989B2 (en) * | 2014-03-04 | 2017-01-17 | Google Inc. | Reporting road event data and sharing with other vehicles |
WO2015153109A1 (en) | 2014-03-31 | 2015-10-08 | Irobot Corporation | Autonomous mobile robot |
KR102527645B1 (en) * | 2014-08-20 | 2023-05-03 | 삼성전자주식회사 | Cleaning robot and controlling method thereof |
US9851718B2 (en) * | 2014-09-26 | 2017-12-26 | Steven R. Booher | Intelligent control apparatus, system, and method of use |
US10849267B2 (en) | 2014-11-26 | 2020-12-01 | Husqvarna Ab | Remote interaction with a robotic vehicle |
WO2016098023A2 (en) * | 2014-12-17 | 2016-06-23 | Husqvarna Ab | Multi-sensor, autonomous robotic vehicle |
US9538702B2 (en) | 2014-12-22 | 2017-01-10 | Irobot Corporation | Robotic mowing of separated lawn areas |
SE540131C2 (en) | 2014-12-24 | 2018-04-10 | Husqvarna Ab | Robotic work tool with trajectory correction |
US10777000B2 (en) | 2014-12-27 | 2020-09-15 | Husqvarna Ab | Garden street view |
US20170329347A1 (en) * | 2016-05-11 | 2017-11-16 | Brain Corporation | Systems and methods for training a robot to autonomously travel a route |
US10274325B2 (en) * | 2016-11-01 | 2019-04-30 | Brain Corporation | Systems and methods for robotic mapping |
-
2017
- 2017-11-09 US US15/808,274 patent/US20180143634A1/en not_active Abandoned
- 2017-11-09 CA CA3043498A patent/CA3043498A1/en active Pending
- 2017-11-09 EP EP17874466.0A patent/EP3545136B1/en active Active
- 2017-11-09 AU AU2017363489A patent/AU2017363489B2/en active Active
- 2017-11-09 WO PCT/US2017/060882 patent/WO2018097971A1/en active Search and Examination
-
2020
- 2020-06-10 US US16/898,208 patent/US11635760B2/en active Active
-
2023
- 2023-01-06 US US18/150,836 patent/US20230146810A1/en active Pending
- 2023-08-16 AU AU2023216822A patent/AU2023216822A1/en active Pending
Patent Citations (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090281661A1 (en) * | 2008-04-24 | 2009-11-12 | Evolution Robotics | Application of localization, positioning & navigation systems for robotic enabled mobile products |
US20150088310A1 (en) * | 2012-05-22 | 2015-03-26 | Intouch Technologies, Inc. | Social behavior rules for a medical telepresence robot |
US20180255705A1 (en) * | 2012-06-15 | 2018-09-13 | Mauno Keski-Luopa | Maintenance and transportation method, system, and apparatus |
US20140124004A1 (en) * | 2012-11-02 | 2014-05-08 | Irobot Corporation | Autonomous Coverage Robot |
US10433697B2 (en) * | 2013-12-19 | 2019-10-08 | Aktiebolaget Electrolux | Adaptive speed control of rotating side brush |
US20160318516A1 (en) * | 2013-12-19 | 2016-11-03 | Here Global B.V. | An apparatus, method and computer program for enabling control of a vehicle |
US10362913B2 (en) * | 2014-01-10 | 2019-07-30 | Diversey, Inc. | Cleaning apparatus data management system and method |
US20170168499A1 (en) * | 2014-02-03 | 2017-06-15 | Husqvarna Ab | Obstacle detection for a robotic working tool |
US20160325435A1 (en) * | 2014-02-07 | 2016-11-10 | Abb Technology Ltd | Web Browser Access To Robot Cell Devices |
US20170129297A1 (en) * | 2014-06-19 | 2017-05-11 | Husqvarna Ab | Improved robotic working tool |
US20170127608A1 (en) * | 2014-06-27 | 2017-05-11 | Robert Bosch Gmbh | Autonomous Work Device |
US20170265703A1 (en) * | 2014-08-19 | 2017-09-21 | Samsung Electronics Co., Ltd. | Robot cleaner, control apparatus, control system, and control method of robot cleaner |
US20170344024A1 (en) * | 2014-12-23 | 2017-11-30 | Husqvarna Ab | 3d map generation by a robotic work tool |
US20180213717A1 (en) * | 2014-12-23 | 2018-08-02 | Husqvarna Ab | Improved operation of a robotic work tool by adapting the operation to weather conditions |
US20160201278A1 (en) * | 2015-01-08 | 2016-07-14 | Snowek Oy | Vehicle assisted working device, cleaning system and method |
US20180327183A1 (en) * | 2015-07-27 | 2018-11-15 | The Heil Co. | Multi-Use Garbage Truck |
US20170049288A1 (en) * | 2015-08-18 | 2017-02-23 | Nilfisk, Inc. | Mobile robotic cleaner |
US20190033865A1 (en) * | 2017-07-26 | 2019-01-31 | Robert Bosch Gmbh | Control system for an autonomous vehicle |
Cited By (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10417753B2 (en) * | 2016-12-21 | 2019-09-17 | Topcon Corporation | Location identifying device, location identifying method, and program therefor |
US10929759B2 (en) | 2017-04-06 | 2021-02-23 | AIBrain Corporation | Intelligent robot software platform |
US11151992B2 (en) | 2017-04-06 | 2021-10-19 | AIBrain Corporation | Context aware interactive robot |
US10963493B1 (en) * | 2017-04-06 | 2021-03-30 | AIBrain Corporation | Interactive game with robot system |
US10810371B2 (en) | 2017-04-06 | 2020-10-20 | AIBrain Corporation | Adaptive, interactive, and cognitive reasoner of an autonomous robotic system |
US10839017B2 (en) | 2017-04-06 | 2020-11-17 | AIBrain Corporation | Adaptive, interactive, and cognitive reasoner of an autonomous robotic system utilizing an advanced memory graph structure |
US10942510B2 (en) * | 2017-11-30 | 2021-03-09 | Lg Electronics Inc. | Mobile robot and method of controlling the same |
US20190184569A1 (en) * | 2017-12-18 | 2019-06-20 | Bot3, Inc. | Robot based on artificial intelligence, and control method thereof |
US11040449B2 (en) * | 2017-12-27 | 2021-06-22 | Hanwha Co., Ltd. | Robot control system and method of controlling a robot |
US10756603B2 (en) | 2018-08-27 | 2020-08-25 | Honda Motor Co., Ltd. | Internal combustion engine with wireless communications device |
US10819194B2 (en) | 2018-08-27 | 2020-10-27 | Honda Motor Co., Ltd. | Internal combustion engine with integrated connectivity device |
US10785908B2 (en) | 2018-08-27 | 2020-09-29 | Honda Motor Co., Ltd. | Internal combustion engine with integrated connectivity device |
US20200063656A1 (en) * | 2018-08-27 | 2020-02-27 | Honda Motor Co., Ltd. | Internal combustion engine with iot connectivity device |
WO2020082180A1 (en) * | 2018-10-23 | 2020-04-30 | Jcai Inc. | Method and apparatus for automated de-icing of aircraft |
US11145204B2 (en) * | 2019-03-07 | 2021-10-12 | Honda Motor Co., Ltd. | Snow removal apparatus operating system and snow removal apparatus operating method |
US11193249B2 (en) * | 2019-05-28 | 2021-12-07 | Ari J. Ostrow | Robotic de-icer |
US20230259893A1 (en) * | 2019-10-03 | 2023-08-17 | The Toro Company | Site maintenance utilizing autonomous vehicles |
US11435749B2 (en) | 2019-10-28 | 2022-09-06 | The Raymond Corporation | Systems and methods for transferring routes between material handling vehicles |
EP3816754A1 (en) * | 2019-10-28 | 2021-05-05 | The Raymond Corporation | Systems and methods for transferring routes between material handling vehicles |
US11762388B2 (en) * | 2020-01-23 | 2023-09-19 | The Toro Company | Nonholonomic robot field coverage method |
US20210240187A1 (en) * | 2020-01-23 | 2021-08-05 | The Toro Company | Nonholonomic robot field coverage method |
US20210276593A1 (en) * | 2020-02-25 | 2021-09-09 | Next Energy, LLC | Automated and interchangeable functional device |
DE112020007015T5 (en) | 2020-03-31 | 2023-01-19 | Honda Motor Co., Ltd. | Snow removal system and snow removal method |
WO2021199254A1 (en) * | 2020-03-31 | 2021-10-07 | 本田技研工業株式会社 | Snow removal system and snow removal method |
JPWO2021199254A1 (en) * | 2020-03-31 | 2021-10-07 | ||
JP7320129B2 (en) | 2020-03-31 | 2023-08-02 | 本田技研工業株式会社 | Snow removal system and snow removal method |
US20210382476A1 (en) * | 2020-06-05 | 2021-12-09 | Scythe Robotics, Inc. | Autonomous lawn mowing system |
US20220039313A1 (en) * | 2020-08-05 | 2022-02-10 | Scythe Robotics, Inc. | Autonomous lawn mower |
US20220048186A1 (en) * | 2020-08-15 | 2022-02-17 | Rapyuta Robotics Co., Ltd. | Dynamically generating solutions for updating plans and task allocation strategies |
US20220382282A1 (en) * | 2021-05-25 | 2022-12-01 | Ubtech North America Research And Development Center Corp | Mobility aid robot navigating method and mobility aid robot using the same |
US12032377B2 (en) * | 2021-05-25 | 2024-07-09 | Ubkang (Qingdao) Technology Co., Ltd. | Mobility aid robot navigating method and mobility aid robot using the same |
WO2023102494A1 (en) * | 2021-12-03 | 2023-06-08 | Ariens Company | Brine assembly for a stand-on skid steer vehicle |
Also Published As
Publication number | Publication date |
---|---|
AU2017363489B2 (en) | 2023-09-14 |
EP3545136B1 (en) | 2023-11-08 |
US20230146810A1 (en) | 2023-05-11 |
EP3545136A4 (en) | 2020-12-09 |
EP3545136A1 (en) | 2019-10-02 |
WO2018097971A1 (en) | 2018-05-31 |
US11635760B2 (en) | 2023-04-25 |
AU2023216822A1 (en) | 2023-09-07 |
CA3043498A1 (en) | 2018-05-31 |
US20200310432A1 (en) | 2020-10-01 |
AU2017363489A1 (en) | 2019-06-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11635760B2 (en) | Autonomous path treatment systems and methods | |
EP3833176B1 (en) | Autonomous machine navigation and training using vision system | |
EP4179400B1 (en) | Autonomous machine navigation using reflections from subsurface objects | |
US20230069475A1 (en) | Autonomous machine navigation with object detection and 3d point cloud | |
EP4066076B1 (en) | Autonomous machine navigation in various lighting environments | |
Eda et al. | Development of autonomous mobile robot “MML-05” based on i-Cart mini for Tsukuba challenge 2015 | |
EP4175455B1 (en) | Autonomous machine having vision system for navigation and method of using same | |
Cho et al. | Development of the integrated control system for an intelligent agricultural vehicle | |
CA3160530A1 (en) | Autonomous machine navigation in various lighting environments |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: LEFT HAND ROBOTICS, INC., COLORADO Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:OTT, MICHAEL JOHN;OTT, CLINTON JAMES;OLKIN, TERRY MICHAEL;AND OTHERS;REEL/FRAME:044085/0493 Effective date: 20171108 |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NON FINAL ACTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |
|
AS | Assignment |
Owner name: THE TORO COMPANY, MINNESOTA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:LEFT HAND ROBOTICS, INC.;REEL/FRAME:056403/0698 Effective date: 20210427 |