Pose initialization optimization for improved localization
In order to operate reliably and effectively, an autonomous vehicle may at least partially rely on accurately determining an initial position and orientation of the vehicle within the environment. Without an accurate localization of the vehicle's location, position, and orientation in an environment, the vehicle's perception and/or planning components may be hindered, thereby reducing the effectiveness and/or safety of the vehicle. Techniques of the disclosure herein are related to initializing a localization component of a vehicle.
1 . A system comprising:
one or more processors; and
a non-transitory memory storing processor-executable instructions that, when executed by the one or more processors, cause the system to perform operations comprising:
detecting a pose initialization trigger event, the pose initialization trigger event causing an error associated with a pose of a vehicle;
determining, based at least in part on first sensor data or a stored pose, an estimated location of the vehicle;
determining, based at least in part on the estimated location, a set of candidate pose initialization locations within a radius distance of the estimated location;
receiving second sensor data indicating environment features of an environment proximate the vehicle;
determining a first confidence score for a first pose initialization location of the set of candidate pose initialization locations, wherein determining the first confidence score comprises:
determining a difference between a portion of the second sensor data and a surface indicated by map data associated with the first pose initialization location, and
determining a percentage of the second sensor data detected as static objects using the second sensor data;
determining that the vehicle is located at the first pose initialization location based at least in part on at least one of determining that the first confidence score meets or exceeds a confidence threshold or that the first confidence score is a maximum confidence score among a set of confidence scores determined for the set of candidate pose initialization locations;
determining, based at least in part on a geolocation and the map data associated with the first pose initialization location and a relative position of the vehicle determined based at least in part on the second sensor data and the map data, an initial pose of the vehicle configured to at least partially mitigate the error; and
controlling the vehicle based at least in part on the initial pose.
2 . The system as recited in claim 1 , wherein determining the set of candidate pose initialization locations based at least in part on the estimated location comprises determining the set of candidate pose initialization locations from among a superset of pose initialization locations based at least in part on one or more of:
determining that the set of candidate pose initialization locations is within a threshold distance of the estimated location, or
determining that the set of candidate pose initialization locations are indicated in a database as being available.
3 . The system as recited in claim 1 , wherein the pose initialization trigger event comprises one or more of:
determining a charge event based at least in part on third sensor data;
determining an impact event based at least in part on the third sensor data;
determining a sensor failure or impairment based at least in part on the third sensor data;
receiving an indication that a reboot event occurred;
receiving an indication that a repair or diagnostic event occurred or receiving an instruction to perform a repair or diagnostic event;
determining a passage of time that exceeds a threshold amount of time based at least in part on the third sensor data;
receiving an indication that a mode of operation of the vehicle changed; or
receiving an instruction to initialize a pose of the vehicle from a remote computing device.
4 . The system as recited in claim 1 , wherein the first sensor data or the second sensor data comprises data attributable to an indicator, the indicator comprising a unique identifier.
5 . The system as recited in claim 4 , wherein the unique identifier comprises one or more of:
a retrievable identification number;
a quick-response (QR) code;
a barcode;
a physical object having physical properties unique to the physical object;
an indication of signal strength from two or more network devices;
data received from one or more emitters; or
a network device transmitted code.
6 . One or more non-transitory computer-readable media storing processor-executable instructions that, when executed by one or more processors, cause the one or more processors to perform operations comprising:
receiving sensor data at a vehicle, the sensor data indicating an error associated with a pose of the vehicle;
determining, based at least in part on the pose, a set of predetermined initialization locations within a first threshold distance of the vehicle;
determining that a first initialization location of the set of predetermined initialization locations is available;
determining, based at least in part on the sensor data and the first initialization location being available, an updated pose of the vehicle configured to at least partially mitigate the error; and
controlling the vehicle based at least in part on the updated pose.
7 . The one or more non-transitory computer-readable media of claim 6 , the operations further comprising determining an estimated location of the vehicle wherein determining the estimated location comprises one or more of:
determining the estimated location of the vehicle based at least in part on a location of the vehicle indicated in the sensor data;
determining a relative position of the vehicle to an indicator identified by the sensor data;
determining a region associated with operation of the vehicle; or
determining that a stored pose is associated with a cessation of a mode or operation of the vehicle at a previous time.
8 . The one or more non-transitory computer-readable media of claim 6 , the operations further comprising determining a difference between a portion of the sensor data and a surface indicated by map data, wherein determining the difference comprises:
determining a portion of the sensor data attributable to static objects;
determining, based at least in part on optimizing the portion of sensor data attributable to static objects with the map data associated with the first initialization location, an optimized representation of the map data; and
determining, based at least in part on the optimized representation of the map data, an average distance between the portion of the sensor data attributable to static objects and the surface indicated by the map data.
9 . The one or more non-transitory computer-readable media of claim 6 , wherein controlling the vehicle based at least in part on the updated pose comprises using the updated pose to at least one of:
track progress of the vehicle in an environment; or
determine a trajectory for controlling the vehicle based at least in part on the updated pose or a subsequent pose of the vehicle determined based at least in part on the updated pose.
10 . The one or more non-transitory computer-readable media of claim 6 , the operations further comprising determining an estimated location of the vehicle, and wherein the set of predetermined initialization locations comprises one or more initialization locations within a threshold radius of the estimated location.
11 . The one or more non-transitory computer-readable media of claim 6 , wherein determining that the vehicle is located within a threshold distance of a first predetermined location from among the set of predetermined initialization locations further comprises:
determining a difference between a portion of the sensor data and a surface indicated by map data associated with the first initialization location of the set of predetermined initialization locations; and
determining that the vehicle is located at the first initialization location based at least in part on determining that at least one of the difference is below a threshold difference or the difference is a minimum difference from among a set of differences determined for the set of predetermined initialization locations.
12 . The one or more non-transitory computer-readable media of claim 6 , further comprising detecting a pose initialization trigger event, the pose initialization trigger event comprising one or more of:
determining a charge event based at least in part on third sensor data;
determining an impact event based at least in part on the third sensor data;
determining a sensor failure or impairment based at least in part on the third sensor data;
receiving an indication that a reboot event occurred;
receiving an indication that a repair or diagnostic event occurred or receiving an instruction to perform a repair or diagnostic event;
determining a passage of time that exceeds a threshold amount of time based at least in part on the third sensor data;
receiving an indication that a mode of operation of the vehicle changed; or
receiving an instruction to initialize a pose of the vehicle from a remote computing device.
13 . The one or more non-transitory computer-readable media of claim 6 , wherein the sensor data comprises an indication of or is used to determine one or more of:
a retrievable identification number;
a quick-response (QR) code;
a barcode;
a physical object having physical properties unique to the physical object;
an indication of signal strength from two or more network devices;
data associated with an indicator;
data received from one or more emitters; or
a network device transmitted code.
14 . The one or more non-transitory computer-readable media of claim 6 , wherein the set of predetermined initialization locations comprises at least one of:
a first location proximate a charging station;
a second location proximate a maintenance depot;
a third location proximate a command or control center;
a parking space;
a fourth location proximate a building having features unique to the building;
a fifth location along a shoulder of a road;
a sixth location proximate a landmark or art installation;
a seventh location proximate a road feature;
a fifth location proximate a physical object having physical properties unique to the physical object; or
a warehouse facility.
15 . A method comprising:
receiving sensor data at a vehicle, the sensor data indicating an error associated with a pose of the vehicle;
determining, based at least in part on the sensor data, that the vehicle is located within a threshold distance of a set of candidate initialization locations;
determining a first initialization location from among the set of candidate initialization locations, the first initialization location comprising a physical object having characteristics unique to the physical object;
determining, based at least in part on the sensor data and the first initialization location, an updated pose of the vehicle configured to at least partially mitigate the error; and
controlling the vehicle based at least in part on the updated pose.
16 . The method of claim 15 , further comprising determining an estimated location of the vehicle, wherein determining the estimated location of the vehicle comprises one or more of:
determining the estimated location of the vehicle based at least in part on a location of the vehicle indicated in the sensor data;
determining a relative position of the vehicle to an indicator identified by the sensor data;
determining a region associated with operation of the vehicle; or
determining that a stored pose is associated with a cessation of a mode or operation of the vehicle at a previous time.
17 . The method of claim 15 , further comprising determining a difference between a portion of the sensor data and a surface indicated by map data, wherein determining the difference comprises:
determining a portion of the sensor data attributable to static objects;
determining, based at least in part on optimizing the portion of sensor data attributable to static objects with the map data associated with the first initialization location, an optimized representation of the map data; and
determining, based at least in part on the optimized representation of the map data, an average distance between the portion of the sensor data attributable to static objects and the surface indicated by the map data.
18 . The method of claim 15 , wherein controlling the vehicle based at least in part on the updated pose comprises using the updated pose to at least one of:
track progress of the vehicle in an environment; or
determine a trajectory for controlling the vehicle based at least in part on the updated pose or a subsequent pose of the vehicle determined based at least in part on the updated pose.
19 . The method of claim 15 , wherein the sensor data comprises an indication of or is used to determine one or more of:
a retrievable identification number;
a quick-response (QR) code;
a barcode;
an indication of signal strength from two or more network devices;
data received from one or more emitters;
a unique identifier; or
a network device transmitted code.
20 . The method of claim 17 , wherein the set of candidate initialization locations comprises at least one of:
a first location proximate a charging station;
a second location proximate a maintenance depot;
a third location proximate a command or control center;
a parking space;
a fourth location proximate a building having features unique to the building;
a fifth location along a shoulder of a road;
a sixth location proximate a landmark or art installation;
a seventh location proximate a road feature;
a fifth location proximate a physical object having physical properties unique to the physical object; or
a warehouse facility.