# US 12,601,609 B2 · Method of controlling an autonomous device

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 12,601,609 B2
- Document ID: US12601609B2
- Status: Granted
- Kind: B2
- Application number: 18/430,959
- Filed: 2024-02-02
- Published: 2024-07-25
- Granted: 2026-04-14
- Earliest claimed: 2019-07-10
- Assignees: DEKA Products Limited Partnership
- Applicants: DEKA Products Limited Partnership
- Inventors: Dirk A. Van Der Merwe; Arunabh Mishra; Christopher C. Langenfeld; Michael J. Slate; Christopher J. Principe; Gregory J. Buitkus; Justin M. Whitney; Raajitha Gummadi; Derek G. Kane; Emily A. Carrigg; Patrick Steele; Benjamin V. Hersh; FNU G. Siva Perumal; David Carrigg; Daniel F. Pawlowski; Yashovardhan Chaturvedi; Kartik Khanna
- Web page: https://patentgrep.com/patent/US12601609B2

## CPC

- G01C 21/3811: {Point data, e.g. Point of Interest [POI]}
- B62D 15/025: {Active steering aids, e.g. helping the driver by actively influencing the steering system after environment evaluation (B62D1/28 takes precedence)}
- B62D 61/12: with variable number of ground engaging wheels, e.g. with some wheels arranged higher than others, or with retractable wheels (for manoeuvring purposes only B60S)
- G01C 21/20: Instruments for performing navigational calculations (G01C21/24, G01C21/26 take precedence)
- G01C 21/3826: {Terrain data}
- G05D 1/0223: {involving speed control of the vehicle (vehicle fittings for automatically controlling, i.e. preventing speed from exceeding an arbitrarily established velocity or maintaining speed at a particular velocity, as selected by the vehicle operator B60K31/00)}
- G05D 1/0248: {in combination with a laser (lasers per se H01S)}
- G05D 1/0274: {using mapping information stored in a memory device (navigation using map-matching G01C21/30)}
- G05D 1/225: operated by off-board computers
- G05D 1/228: Command input arrangements located on-board unmanned vehicles
- G05D 1/247: using signals provided by artificial sources external to the vehicle, e.g. navigation beacons
- G05D 1/249: from positioning sensors located off-board the vehicle, e.g. from cameras
- G05D 1/617: Safety or protection, e.g. defining protection zones around obstacles or avoiding hazards (arrangements for controlling the position or course of two or more vehicles for avoiding collisions therebetween G05D1/693; arrangements for reacting to or preventing system or operator failure G05D1/80)
- G06V 10/764: using classification, e.g. of video objects
- G06V 20/56: exterior to a vehicle by using sensors mounted on the vehicle
- G06V 10/44: Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components
- G01C: MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY (measuring liquid level G01F; radio navigation, determining distance or velocity by use of propagation effects, e.g. Doppler effects, propagation time, of radio waves, analogous arrangements using other waves G01S)
- B62D: MOTOR VEHICLES; TRAILERS (steering, or guiding on a desired track, of agricultural machines or implements A01B69/00; wheels, castors, axles, increasing wheel adhesion B60B; vehicle tyres, tyre inflation or tyre changing B60C; connections between vehicles of a train or the like B60D; vehicles for use on rail and road, amphibious or convertible vehicles B60F; suspension arrangements B60G; heating, cooling, ventilating or other air treating devices B60H; windows, windscreens, non-fixed roofs, doors or similar devices, protective coverings for vehicles not in use B60J; propulsion plant arrangements, auxiliary drives, transmissions, controls, instrumentation or dashboards B60K; electric equipment or propulsion of electrically-propelled vehicles B60L; power supply for electrically-propelled vehicles B60M; passenger accommodation not otherwise provided for B60N; adaptations for load transportation or to carry special loads or objects B60P; arrangement of signalling or lighting devices, the mounting or supporting thereof or circuits therefor, for vehicles in general B60Q; vehicles, vehicle fittings or vehicle parts not otherwise provided for B60R; servicing, cleaning, repairing, supporting, lifting, or manoeuvring, not otherwise provided for, B60S; brake arrangements, brake control systems or parts thereof B60T; air-cushion vehicles B60V; motor-cycles, accessories therefor B62J, B62K; testing of vehicles G01M)
- G05D: SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G06V: IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING

## Abstract

An autonomous vehicle having sensors advantageously varied in capabilities, advantageously positioned, and advantageously impervious to environmental conditions. A system executing on the autonomous vehicle that can receive a map including, for example, substantially discontinuous surface features along with data from the sensors, create an occupancy grid based upon the map and the data, and change the configuration of the autonomous vehicle based upon the type of surface on which the autonomous vehicle navigates. The device can safely navigate surfaces and surface features, including traversing discontinuous surfaces and other obstacles.

## Claims

### Claim 1

Method of controlling an autonomous device comprising:
locating a first position of an autonomous device;
when the autonomous device moves to a second position associated with a global occupancy grid and a local occupancy grid:
updating the global occupancy grid with an occupied probability value associated with the first position;
updating the global occupancy grid with a surface having a drivable surface classification, defining a drivable surface, associated with the local occupancy grid;
updating the global occupancy grid with a classification confidence value associated with the drivable surface classification;
updating the global occupancy grid with logodds of the occupied probability value using a first Bayesian function; and
adjusting the logodds based on characteristics associated with the second position; and
when the autonomous device remains in the first position and the global occupancy grid and the local occupancy grid are co-located:
updating the global occupancy grid with the drivable surface associated with the local occupancy grid;
updating the global occupancy grid with the classification confidence value associated with the drivable surface;
updating the global occupancy grid with the logodds of the occupied probability value using a second Bayesian function;
adjusting the logodds based on characteristics associated with the second position; and
navigating the autonomous device based on the updated global occupancy grid.

### Claim 2 (depends on 1)

Method of claim 1 further comprising:
receiving sensor data from sensors associated with the device;
creating the local occupancy grid based on the sensor data and having local occupancy grid cells;
when the device has moved to the second area, then
accessing historical data associated with the second area;
creating a static grid based on the historical data;
moving the global occupancy grid to maintain the device in a central position of the global occupancy grid;
updating the moved global occupancy grid based on the static grid;
marking as unoccupied one of the global occupancy grid cells that coincides with a location of the device;
for each of the local occupancy grid cells,
calculating a position of the local occupancy grid cell on the global occupancy grid;
accessing a first occupied probability from the global occupancy grid cell at the position;
accessing a second occupied probability from the local occupancy grid cell at the position; and
computing a new occupied probability at the position on the global occupancy grid based on the first occupied probability and the second occupied probability.

### Claim 3 (depends on 1)

Method of claim 1 further comprising:
transforming sensor measurements to a frame of reference associated with the device;
creating a time-stamped measurement occupancy grid;
publishing the time-stamped measurement occupancy grid as the local occupancy grid;
creating a plurality of local occupancy grids;
creating a static occupancy grid based on surface characteristics in a repository, the surface characteristics associated with a position of the device;
moving a global occupancy grid associated with the position of the device to maintain the device and the local occupancy grid approximately centered with respect to the global occupancy grid;
adding information from the static occupancy grid to the global occupancy grid;
marking an area in the global occupancy grid currently occupied by the device as unoccupied;
for each of at least one cell in each local occupancy grid,
determining a location of the at least one cell in the global occupancy grid;
accessing a first value at the location;
determining a second value at the location based on a relationship between the first value and a cell value at the at least one cell in the local occupancy grid;
comparing the second value against a pre-selected probability range; and
setting the global occupancy grid with the new value if a probability value is within the pre-selected probability range.

### Claim 4 (depends on 1)

System configured for the method of claim 1 comprising:
a plurality of local grid creation nodes configured for creating the local occupancy grid associated with a position of the device comprising a cell;
a global occupancy grid manager configured for:
accessing the local occupancy grid;
creating in a repository a static occupancy grid based on surface characteristics associated with the position of the device,
moving a global occupancy grid associated with the position of the device to maintain the device and a local occupancy grid approximately centered with respect to the global occupancy grid;
adding information from the static occupancy grid to the global occupancy grid;
marking an area in the global occupancy grid currently occupied by the device as unoccupied;
for each cell in each local occupancy grid,
determining a location of the cell in the global occupancy grid;
accessing a first value at the location;
determining a second value at the location based on a relationship between the first value and a cell value at the cell in the local occupancy grid;
comparing the second value against a probability range; and
setting the global occupancy grid with the new value if a probability value is within the probability range.

### Claim 5 (depends on 1)

Method of claim 1 further comprising:
when the device has moved to a new position, updating the global occupancy grid with information from a static grid associated with the new position;
analyzing surfaces at the new position;
if the surfaces are drivable, updating the surfaces and updating the global occupancy grid with the updated surfaces; and
updating the global occupancy grid with values from a repository of static values, the static values being associated with the new position.

### Claim 6 (depends on 5)

Method of claim 5 wherein said updating the surfaces comprises:
accessing a local occupancy grid associated with the new position;
for each cell in the local occupancy grid,
accessing a local occupancy grid surface classification confidence value and a local occupancy grid surface classification;
if the local occupancy grid surface classification is the same as a global surface classification in the global occupancy grid in the cell, then adding a global surface classification confidence value in the global occupancy grid to the local occupancy grid surface classification confidence value to form a sum, and updating the global occupancy grid at the cell with the sum;
else if the local occupancy grid surface classification is not the same as the global surface classification in the global occupancy grid in the cell, then subtracting the local occupancy grid surface classification confidence value from the global surface classification confidence value in the global occupancy grid to form a difference, and updating the global occupancy grid with the difference;
if the difference is less than zero, then updating the global occupancy grid with the local occupancy grid surface classification.

### Claim 7 (depends on 1)

Method of claim 1 further comprising:
creating a map in non-real time based on prior surface features and an occupancy grid and comprising a location associated with a surface feature associated with a surface classification and a mode;
determining current surface features as the device travels;
updating the occupancy grid in real-time with the current surface features; and
determining a path the device can travel to traverse the at least one surface feature.

### Claim 8 (depends on 1)

Method of claim 1 further comprising:
receiving environmental data;
determining a surface type based at least on the environmental data;
determining a mode based on the surface type and a first configuration;
determining a second configuration based on the mode and the surface type;
determining movement commands based on the second configuration; and
controlling the configuration of the device by using the movement commands to change the device from the first configuration to the second configuration.

### Claim 9 (depends on 1)

System configured for the method of claim 1 further comprising:
a device processor configured for:
receiving real-time environmental data surrounding the device;
determining a surface type based at least on the environmental data;
determining a mode based on the surface type and a first configuration; and
determining a second configuration based on the mode and the surface type; and
a powerbase processor configured for:
determining movement commands based on the second configuration; and
controlling the configuration of the device with the movement commands to change the device from the first configuration to the second configuration.
