Vehicle collaboration and sensor enhancement
The technology provides enhanced localization approaches using vehicle-obtained information in place of or to enhance global positioning information to localize a user's position. Such information can be shared with the user's client device in real-time prior to pickup or meeting at a selected location. This can supplement or replace inaccurate localization information available at the client device, and can be done as needed when the user is within a threshold range of one or more autonomous vehicles. A client device of a user can compute its position using the vehicle positioning information. The vehicle positioning approach may be performed when the user is within a certain range of one or more vehicles. Vehicle localization information may also be used to correct the client device's localization information. Here, using hyper-accurate vehicle positioning, one or more vehicles can compute pseudorange errors for each “visible” satellite in a global positioning service.
1 . A method, comprising:
determining, by one or more processors, that a first type of signal from a client device of a user is detected by a vehicle assigned to pick up the user at a selected pickup location;
responsive to determining that the first type of signal is detected by the vehicle, issuing, by the one or more processors to the client device, a request to transmit a second type of signal that is different from the first type of signal;
obtaining, by the one or more processors, a location for the vehicle at a point in time;
obtaining, by the one or more processors using the second type of signal transmitted by the client device, a distance between the vehicle and the client device at the point in time;
determining, by the one or more processors, a position of the client device based on the location for the vehicle and the distance between the vehicle and the client device;
obtaining, by the one or more processors based on the position of the client device, an updated pickup location that differs from the selected pickup location; and
causing the vehicle to drive to the updated pickup location in an autonomous driving mode.
2 . The method of claim 1 , further comprising:
determining, using the first type of signal, when the client device is within a threshold distance of the vehicle; and
only responsive to determining that the client device is within the threshold distance, obtaining the location for the vehicle and the distance between the vehicle and the client device.
3 . The method of claim 1 , further comprising:
obtaining an updated location for the vehicle at another point in time; and
obtaining an updated distance between the vehicle and the client device at the other point in time;
wherein determining the position of the client device is further based on the updated location and the updated distance.
4 . The method of claim 1 , wherein the vehicle is a first vehicle of a fleet of vehicle, and the method further comprises:
obtaining, by one or more processors, a location for a second vehicle of the fleet of vehicles at the point in time; and
obtaining, by the one or more processors, a distance between the second vehicle and the client device at the point in time,
wherein determining the position includes performing triangulation according to the location for the first vehicle, the location for the second vehicle, the distance between the first vehicle and the client device, and the distance between the second vehicle and the client device.
5 . The method of claim 1 , wherein obtaining the location for the vehicle includes:
determining an estimated location for the vehicle according to one or more localization inputs; and
applying a set of sensor information obtained from a set of vehicle sensors as a correction to the estimated location for the vehicle.
6 . The method of claim 5 , wherein the one or more localization inputs includes global positioning information.
7 . The method of claim 5 , wherein the one or more localization inputs includes lidar sensor information matched to a set of map features.
8 . The method of claim 7 , wherein the set of sensor information includes vehicle inertial information.
9 . The method of claim 8 , wherein applying the set of sensor information as the correction includes performing an interpolation between matches of the lidar sensor information and the set of map features.
10 . The method of claim 1 , further comprising differentiating the vehicle from at least one other vehicle positioned at the updated pickup location.
11 . The method of claim 1 , wherein the one or more processors are processors of the vehicle.
12 . The method of claim 1 , wherein the one or more processors are processors of a computing device remote from the client device and the vehicle.
13 . The method of claim 1 , wherein:
the first type of signal has a first accuracy, and
the second type of signal has a second accuracy that is greater than the first accuracy.
14 . The method of claim 13 , wherein the second accuracy is at least an order of magnitude greater than the first accuracy.
15 . A method, comprising:
determining, by one or more processors of a vehicle configured to operate in an autonomous driving mode, a current position of the vehicle;
identifying, by the one or more processors, visibility at the current position with a set of satellites of a global positioning service;
determining, by the one or more processors, a set of pseudorange errors that includes a pseudorange error for each visible satellite of the set of satellites;
providing, by the one or more processors to a client device of a user, the set of pseudorange errors, wherein the user is to be picked up by the vehicle;
receiving, by the one or more processors from the client device, a corrected location of the client device based upon a geolocation correction according to the set of pseudorange errors;
identifying, by the one or more processors, an alternative pickup location for the user based on the corrected location of the client device; and
causing, by the one or more processors, the vehicle to drive toward the alternative pickup location in the autonomous driving mode.
16 . The method of claim 15 , further comprising storing, by the one or more processors, the set of pseudorange errors in memory of the vehicle.
17 . The method of claim 15 , further comprising updating, by the one or more processors, the set of pseudorange errors as the vehicle travels to pick up the user.
18 . A method, comprising:
receiving from one or more first processors of a vehicle configured to operate in an autonomous driving mode, by one or more second processors of a client device of a user, a set of pseudorange errors including a pseudorange error for each satellite of a set of satellites of a global positioning service that is visible to the vehicle at a point in time, the set of pseudorange errors being determined by the one or more first processors;
identifying, by the one or more second processors, visibility with the set of satellites;
receiving, by the one or more second processors, pseudorange information for each visible satellite;
determining, by the one or more second processors based on corrections to the pseudorange information according to the set of pseudorange errors, a corrected location of the client device;
providing, by the one or more second processors, the corrected location of the client device to the one or more first processors;
receiving, by the one or more second processors from the one or more first processors, an update to a pickup location; and
generating, by the one or more second processors for presentation to the user, an indication of the update to the pickup location.
19 . The method of claim 18 , wherein determining the corrected location includes:
discarding any pseudorange errors from the set of pseudorange errors for any satellites not currently visible to the client device.
20 . The method of claim 18 , wherein determining the corrected location includes:
comparing timestamps of the set of pseudorange errors with timestamps of the received pseudorange information to match timestamps occurring within a selected time window; and
applying the corrections according to any matched timestamps.