A transport service arrangement system can provide a platform to enable users to request transport services through use of computing devices. For example, a transport service arrangement system can process requests for transport services by determining services providers to perform the transport services for the requesting users based on a plurality of different factors or conditions. However, because a transport service arrangement system can operate on a real-time or on-demand basis, in many cases, a user must plan in advance before actually making a request for a transport service.
Examples described herein provide for a transport service arrangement system to trigger or make a transport request on behalf of a user based on the user's estimated time of arrival (ETA) to a specified location. The system can also determine the ETA of a set of drivers or vehicles to the specified location. In this manner, based on the ETAs, the system can trigger or make a transport request for the user at a certain time (e.g., on behalf of the user), so that a vehicle can be estimated to arrive at the specified location at substantially the same time as the user. This can minimize the amount of time a user has to wait for a vehicle when the user makes a transport request once he or she arrives at a specified location.
According to some examples, the transport service arrangement system can periodically determine or check (i) a first ETA of the user to a specified location data point and (ii) a second ETA of at least a vehicle of a set of vehicles to the specified location data point. The system can periodically compare the first ETA and the second ETA to determine if the first ETA and the second ETA are substantially equal or are within a predetermined amount of time of each other. As described herein, “substantially” means at least nearly a stated amount or quantity, or at least 90% of a stated quantity or expression. When the system determines that the first and the second ETAs are substantially equal or are within a predetermined amount of time of each other, the system can trigger or make a transport request for the user. In one example, the system can select a driver to provide a transport service for the user based, at least in part, on the specified location data point.
Depending on implementation, the first ETA can be determined based on the user's position information (e.g., position information provided by the user's device), map information, and/or transit information associated with the method of transit specified by the user. For example, the user's device can periodically provide its current location data point to the system, and the system can dynamically determine the user's rate of travel based on the location data points. The system can also use transit information, such as routes that a transit vehicle (e.g., a plane, a train, a bus, a light-rail train, a bike, a car, etc.) can travel and/or predefined stops or stations, along with the user's rate of travel to determine the first ETA. Similarly, the second ETA can be determined based on location information of vehicles that are within a predefined distance of the specified location data point and/or map information. As referred herein, a location data point can correspond to a latitude and a longitude coordinate, or another location coordinate using a different mapping system.
Still further, in one example, the system can periodically determine and/or compare the first ETA and the second ETA at the same rate, at different rates, and/or at different instances of time. According to some examples, the system can also dynamically adjust the rate in which the system periodically determines the first ETA and the second ETA. For example, as the difference between the first ETA and the second ETA becomes smaller (e.g., approaches zero or another predetermined value), the system can determine and compare the first and second ETAs more frequently.
Among other benefits and technical effect, some examples described herein provide a mechanism to intelligently determine the appropriate time to make a request for a service on behalf of a user based on data received from the user's computing device. As compared to conventional approaches, by requesting the service for users at a certain times, the system can eliminate the guesswork or speculation by users in attempting to make a request at the right time, and can reduce the overall amount of wait times for users. Still further, the system can obtain data from both user devices and driver devices without user and driver involvement, respectively, and can perform operations without user involvement for a potentially a long period of time, thereby minimizing the inconvenience for the user. In other words, the user does not have to frequently check where he or she is, and similarly, does not have to frequently check the status of the drivers.
According to examples, a transport arrangement system is provided to arrange transport as between drivers and riders (or alternatively “users” “passengers” and variants thereof) in a manner that balances and optimizes the interest of drivers and riders. This is in contrast to conventional approaches, where, for example, transport providers may bunch at one location, or act in a manner that is centric to themselves, as such providers generally lack awareness (e.g., positional awareness) of other drivers. To the extent conventional transport providers utilize dispatches, such dispatchers are generally not able to anticipate transport requests, and information about individual providers may be limited (e.g., geographically course, based on drivers self-reporting location).
Moreover, the transport arrangement services can be provided in an anticipatory manner, specifically to provide a trigger that can time a transport request from a rider before the rider arrives at a pickup location. With implementation of such a trigger, a request for transport can be triggered from the rider (or on behalf of the rider) so that the rider has a minimal wait time when arriving at a pickup location. A remote service further provides an ability to monitor the rider (with rider approval or permission), in order to predict the rider's arrival at the destination without disclosing the location information of the driver. The prediction of the rider's arrival to the pickup location can be made objectively, without influence from the rider, and without sacrificing the rider's privacy. In this regard, the remote transport arrangement service can obtain information that has not been previously been available for use in arranging transport services-specifically, location information and pickup times for riders who intend to receive transport services at a pickup location, but who have yet to make such request (or have transport arranged for them).
In addition to predicting the rider's arrival to the pickup location, a remote transport arrangement service can monitor and determine information affecting the amount of time needed for a provider to drive to the pickup location. Under conventional approaches, such information is unavailable to the riders, as no rider could interface with multiple drivers absent use of technology such as described with examples provided herein.
In contrast to conventional approaches, examples as described monitor for the real-time locations of transport providers and their current status, as well as traffic and roadway congestions affecting the ability of transport providers to drive to a pickup location. As the transport arrangement service can monitor riders who are approaching a pickup location, the transport arrangement service can also anticipate demand for transport providers when a given rider arrives at a pickup location. Such information may not be available to the riders or drivers absent a remotely operated transport arrangement service as described by various examples.
Moreover, examples recognize that, absent a remote service to arrange transport, transport providers, whether operating as individuals or through dispatchers, lack sufficient information and authority over one another to enable optimization of how transport requests are answered. By way of example, drivers lack information corresponding to, for example, the real-time location of other drivers or riders, as well as information indicating status of drivers (e.g., driver has no passengers, has a passenger and is on a trip, or is completing a trip). In contrast, examples include a remotely implemented transport service which that implements an objective selection process that balances the interests of drivers (to field transport requests) and riders to receive transport services with minimal wait times. As described, a remotely implemented transport service can be provided that communicates with mobile computing devices of riders and drivers, in order to determine information for optimizing the rider/service experience of riders and drivers. The remotely implemented transport service can utilize secure communication channels to identify position information of riders before the riders request the transport service, for purpose of predicting the optimal moment when a driver is to be requested (or dispatched) for the rider.
In this regard, examples as described further technology utilized for arranging on-demand services, by aggregating information from multiple sources in a manner that could not previously be done by any one party or individual, for purpose of providing predictive arrival time of riders to pickup location. By enabling such predictive determinations, examples can further optimize the manner in which transport requests are handled, to accommodate interests of both riders and drivers collectively.
As used herein, a client device, a driver device, a computing device, and/or a mobile device refer to devices corresponding to desktop computers, cellular devices or smartphones, personal digital assistants (PDAs), laptop computers, tablet devices, etc., that can provide network connectivity and processing resources for communicating with the system over one or more networks. Client devices and driver devices can each operate a designated service application (e.g., a client application and a driver application, respectively) that is configured to communicate with the transport service arrangement system. A driver device can also correspond to a computing device that is installed in or incorporated with a vehicle, such as part of the vehicle's on-board computing system.
Still further, examples described herein relate to a variety of on-demand services, such as a transport service, a food truck service, a delivery service, an entertainment service, etc. to be arranged between users and service providers. In other examples, the system can be implemented by any entity that provides goods or services for purchase through the use of computing devices and network(s).
One or more examples described herein provide that methods, techniques, and actions performed by a computing device are performed programmatically, or as a computer-implemented method. Programmatically, as used herein, means through the use of code or computer-executable instructions. These instructions can be stored in one or more memory resources of the computing device. A programmatically performed step may or may not be automatic.
One or more examples described herein can be implemented using programmatic modules, engines, or components. A programmatic module, engine, or component can include a program, a sub-routine, a portion of a program, or a software component or a hardware component capable of performing one or more stated tasks or functions. As used herein, a module or component can exist on a hardware component independently of other modules or components. Alternatively, a module or component can be a shared element or process of other modules, programs or machines.
Some examples described herein can generally require the use of computing devices, including processing and memory resources. For example, one or more examples described herein may be implemented, in whole or in part, on computing devices such as servers, desktop computers, cellular or smartphones, personal digital assistants (e.g., PDAs), laptop computers, printers, digital picture frames, network equipment (e.g., routers) and tablet devices. Memory, processing, and network resources may all be used in connection with the establishment, use, or performance of any example described herein (including with the performance of any method or with the implementation of any system).
Furthermore, one or more examples described herein may be implemented through the use of instructions that are executable by one or more processors. These instructions may be carried on a computer-readable medium. Machines shown or described with figures below provide examples of processing resources and computer-readable mediums on which instructions for implementing examples described herein can be carried and/or executed. In particular, the numerous machines shown with examples described herein include processor(s) and various forms of memory for holding data and instructions. Examples of computer-readable mediums include permanent memory storage devices, such as hard drives on personal computers or servers. Other examples of computer storage mediums include portable storage units, such as CD or DVD units, flash memory (such as carried on smartphones, multifunctional devices or tablets), and magnetic memory. Computers, terminals, network enabled devices (e.g., mobile devices, such as cell phones) are all examples of machines and devices that utilize processors, memory, and instructions stored on computer-readable mediums. Additionally, examples may be implemented in the form of computer-programs, or a computer usable carrier medium capable of carrying such a program.
System Description
Depending on implementation, one or more components of the system 100 can be implemented on network side resources, such as on one or more servers. The system 100 can also be implemented through other computer systems in alternative architectures (e.g., peer-to-peer networks, etc.). As an addition or an alternative, some or all of the components of the system 100 can be implemented on client devices, such as through applications that operate on the client devices 180 and/or the driver devices 190. For example, a client service application 181 and/or a driver service application 191 can execute to perform one or more of the processes described by the various components of the system 100. The system 100 can communicate over a network, via a network interface (e.g., wirelessly or using a wireline), to communicate with the one or more client devices 180 and the one or more driver devices 190.
The system 100 can communicate, over one or more networks, with client devices 180 and driver devices 190 using a client device interface 120 and a device interface 130, respectively. The device interfaces 120, 130 can each manage communications between the system 100 and the respective computing devices 180, 190. The client devices 180 and the driver devices 190 can individually operate client service applications 181 and driver service applications 191, respectively, that can interface with the device interfaces 120, 130 to communicate with the system 100. According to some examples, these applications can include or use an application programming interface (API), such as an externally facing API, to communicate data with the device interfaces 120, 130. The externally facing API can provide access to the system 100 via secure access channels over the network through any number of methods, such as web-based forms, programmatic access via restful APIs, Simple Object Access Protocol (SOAP), remote procedure call (RPC), scripting access, etc.
The system 100 can enable users of client devices 180 to request on-demand transport services through use of the client applications 181. According to some examples, typically, a user can make a transport request using the client application 181 on the client device 180 and the client application 181 can transmit the transport request to the system 100. The dispatch 110 can receive the transport request, process the request, select a driver for the user, and send an invitation to the selected driver's device 190. If the selected driver accepts the invitation, the system 100 can provide the information about the selected driver to the client device 180 and inform the user the ETA of the selected driver via the client application 181. In such examples, the user may typically make the transport request at a time when the user is ready to be picked up for transport, as the system 100 begins to process the transport request immediately after receiving the transport request.
According to some examples, the client application 181 can present a user interface to enable a user to select or specify a method of transit, a start location data point, a specified or transfer location data point (e.g., a first destination location point), a final destination location data point (e.g., a second destination location point), a start time, and/or an end time. The client application 181 can provide a selection user interface, for example, in which the user can select one of multiple vehicle types or on-demand services (e.g., a first vehicle type such as a sedan, a different second vehicle type such as an SUV, etc.). The selection user interface, in one instance, can also include a pre-request vehicle type. When the user selects the pre-request vehicle type, the user can provide input to specify the various parameters for making a pre-request (e.g., a request for a later time).
As described herein, a method of transit can correspond to any method of traveling from one point to another, including by bicycle, motorcycle, car, bus, ferry, train, light-rail train, walking, etc. In many cases, a method of transit can also have corresponding transit information. As an example, a user may commute from San Jose, California to San Francisco, California by train, which takes the user from a first train station to a second train station (e.g., from the start location data point at a San Jose train station to a transfer location data point at a San Francisco train station). Once the user gets to the San Francisco train station, the user may want to receive transport service from the San Francisco train station to his or her office two miles away. Accordingly, a user can provide input via the user interface to specify which method of transit the user is taking, where she is, and which location (e.g., station or stop) she is traveling to, for example, and then submit a pre-request 183 that includes such specified information.
As described herein, a pre-request 183 is a request indicating that a transport service is needed at a time in the future (as compared to a time when the pre-request 183 is made) to transport the user from a specified location to another location. A pre-request 183, when received by the system 100, does not cause the dispatch 110 to immediately select a driver for the user (as compared to a typical transport request, as described above), but instead can cause the system 100 trigger or make a transport request for the user at a later time based on the user's ETA to the specified location. When the client application 181 transmits a pre-request 183, the system 100 can be triggered to perform operations in order to determine when to make a transport request on behalf of the user.
In some examples, the pre-request 183 can include information about a method of transit and/or a specified location data point corresponding to a location that the user is traveling to (and subsequently needs a transport service from). The pre-request 183 can also include other information, in some examples, such as the user's identifier, a payment method, a vehicle type. The request proxy 150 can receive the pre-request 183, and in response, can communicate with the client ETA determine 140 and the dispatch 110 to receive ETA information about the user and the ETA information about vehicles, respectively. Depending on implementation, the request proxy 150 can provide the specified location data point to the client ETA determine 140 and cause the client ETA determine 140 to periodically determine the ETA of the user to the specified location data point (referred to herein as the user ETA 143). In another example, the client ETA determine 140 can receive the pre-request 183 via the client device interface 120 and in response, periodically determine the user ETA 143.
When the pre-request 183 is made, the client application 181 can periodically transmit position information 141 of the user to the system 100. The position information 141 can correspond to a current location data point of the user's client device 180 at an instance in time. Such a location data point can be generated by a location detection component of the client device 180 (e.g., a global positioning system (GPS) receiver). In some examples, the client application 181 can transmit the position information 141 even when the client application 181 is closed from being displayed on the client device 180 (e.g., is running in the background), but not shut down entirely. The client ETA determine 140 can periodically receive the user's position information 141 (e.g., every two seconds, every five seconds, etc.) and periodically determine the user ETA 143 based on the user's position information 141 (e.g., every ten minutes, every five minutes, etc.). For example, at an instance in time when determining the user ETA 143, the client ETA determine 140 can compute the user's rate of travel based on the position of the client device 180 at one instance in time and the position of the client device 180 at a previous instance in time. Similarly, three or more positions can be used to determine both speed and/or acceleration of the user (and bearing or direction of travel). The client ETA determine 140 can determine the user ETA 143 based on the user's rate of travel. Accordingly, the user ETA 143 can dynamically change at different instances of time, as the user changes positions and speeds while traveling to the specified location data point.
Depending on implementation, the client ETA determine 140 can also periodically determine the user ETA 143 based on transit information 161 and/or map information 171. The transit information database 160 can include information about one or more methods of transit. For example, for a city bus system, the transit information database 160 can store information about the buses in that system, the bus routes, the times the buses operate on which routes, and/or the bus stop locations. Similarly, in another example, for a train system, the transit information database 160 can stored information about the different trains, the location and paths of the train tracks, the train times, and the train station locations. Although the transit information database 160 is illustrated as a single database, in other example, the system 100 can include or be capable of accessing multiple transit information databases.
The pre-request 183 can include information about the method of transit that the user specifies that he or she will be traveling on to the specified location. Based on the specified method of transit, the client ETA determine 140 can access the corresponding transit information 161 to determine the user ETA 143. In some examples, the user may also input which specific train, bus, ferry, etc., that the user is on or will take. As an example, if the user specified that she is traveling by train to the San Francisco train station, the client ETA determine 140 can determine the schedule of the trains that arrive at that train station, determine when the trains are to arrive at that train station, determine the current location of the user when the pre-request 183 was made, determine the route the trains takes, determine the user's rate of travel, and/or determine the user's direction of travel in order to determine the user ETA 143 to the San Francisco train station. By using transit information 161, in some instances, the client ETA determine 140 may determine the user ETA 143 with better accuracy (e.g., as opposed to just using the user's position information 141).
The client ETA determine 140 can also use map information 171 to determine the user ETA 143. The map database 170 can store map information 171 corresponding to different geographic regions, including information about highways, roads, intersections, points of interest, geographical features, etc. (e.g., as latitude and longitude coordinates). For example, the user may specify that the user's method of transit is walking or biking. Because a user does not typically travel in a straight line from the current location at the time the pre-request 183 was made, for example, to the specified location, the client ETA determine 140 can use map information 171 to determine the approximate distance the user would have to travel by traveling on roads or streets. In another example, map information 171 can also be used in conjunction with transit information 161 to if the user was traveling in another method of transit, such as a vehicle or a bus.
Using the position information 141, transit information 161, and/or map information 171, the client ETA determine 140 can periodically determine the user ETA 143 and provide the user ETA 143 to the request proxy 150. According to other examples, the client ETA determine 140 can access other databases or sources, such as third-party sources, to determine information about traffic, weather conditions, accidents, road closures, etc., in order to periodically determine the user ETA 143. Still further, in some examples, the system 100 can use transit information 161 and/or map information 171 to determine the user's specified location data point by translating or correlating the user-inputted specified transit stop or station (e.g., San Francisco train station) with a location data point (e.g., a coordinate).
In addition to periodically determining the user ETA 143, the system 100 can also periodically determine the ETA of a vehicle (or the ETA corresponding to a set of vehicles) to the specified location data point (referred to herein as the vehicle ETA 143). For example, the vehicle ETA determine 112 of the dispatch 110 can receive (from the client device interface 120 and/or from the request proxy 150) the specified location data point from the pre-request 183. The vehicle ETA determine 112 can identify a set of drivers (or vehicles) that are available to provide transport within a predetermined distance (referred to herein as a dispatch radius) from the specified location data point (or in a predetermined region that includes the specified location data point). In one example, the vehicle ETA determine 112 can identify only the set of drivers that drive vehicles corresponding to a specified vehicle type (as indicated in the pre-request 183).
The vehicle ETA determine 112 can identify the set of drivers by accessing the driver database 175. For example, the driver database 175 can be continuously and periodically updated with the drivers' current locations and availability statuses (e.g., by a driver tracking component that communicates with the driver device interfaces 130, not shown in
Once the individual vehicle ETAs are determined, depending on implementation, the vehicle ETA determine 112 can identify the vehicle ETA 151 as the individual vehicle ETA with the shortest or smallest ETA as compared to the other individual vehicle ETAs of the set of drivers. In another example, the vehicle determine 112 can identify the vehicle ETA 151 as the average ETA of the individual vehicle ETAs of the set of drivers. Still further, in some examples, a user of the system 100 can configure the dispatch 110 to adjust the dispatch radius for identifying the set of vehicles and/or indicate how to determine the vehicle ETA 151. Once the vehicle ETA 151 is determined, the vehicle ETA determine 112 can provide the vehicle ETA 151 to the request proxy 150.
The ETA match of the request proxy 150 can receive or retrieve the user ETA 143 and the vehicle ETA 151, and periodically check or compare the ETAs 143, 151 in order to determine if/when the ETAs 143, 151 substantially match or are within a predetermined amount of time of each other (depending on user configuration). When the ETA match determines that the ETAs 143, 151 substantially match or are within a predetermined amount of time of each other (at the time of comparison), the request proxy 150 can trigger or make a transport request 155 on behalf of the user. In addition, depending on implementation, the request proxy 150 can trigger or make a transport request 155 when the user ETA 143 is larger than the vehicle ETA 151 by a predetermined amount of time of each other (e.g., 1 minute), so that after the dispatch 110 processes the transport request 155, the selected driver can potentially get to the specified location before the user. In another example, the request proxy 150 can trigger or make a transport request 155 when the vehicle ETA 151 is larger than the user ETA 143 by a predetermined amount of time of each other.
As an example, if the user ETA 143 and the vehicle ETA 151 are both 5 minutes, the request proxy 150 can determine that the user and a driver may arrive at the specified location data point at substantially the same time. As such, the request proxy 150 can trigger or transmit the transport request 155 to the dispatch 110 in order to cause the dispatch 110 to begin processing the transport request 155 (similarly as though the user had made the transport request from the client application 181 at this time). The transport request 155 can include a user identifier (ID) or client device ID, and the pickup location as the specified location data point.
According to some examples, the request proxy 150 can determine how, when, and/or how often the system 100 should determine the user ETA 143, determine the vehicle ETA 151, and/or compare the ETAs 143, 151. An administrative user of the system 100 can control the operation of the request proxy 150 by providing user input to change configuration of the request proxy 150. In a first example, the request proxy 150 can periodically determine the ETAs 143, 151 at substantially the same rate or frequency by (i) causing the client ETA determine 140 to determine the user ETA 143 and subsequently receiving the user ETA 143, and (ii) causing the vehicle ETA determine 112 to determine the vehicle ETA 151 and subsequently receiving the vehicle ETA 151. Once the request proxy 150 receives the ETAs 143, 151, the request proxy 150 can then periodically compare the ETAs 143, 151 (e.g., at substantially the same rate as determining the ETAs 143, 151).
In another example, the request proxy 150 can periodically determine the ETAs 143, 151 asynchronously. For example, the request proxy 150 can continue to receive the ETAs 143, 151 every time the client ETA determine 140 periodically determines the user ETA 143 and every time the vehicle ETA determine 112 determines the vehicle ETA 151. As an example, the vehicle ETA determine 112 can periodically determine the vehicle ETA 151 at a first rate (e.g., every three seconds, every five seconds, etc.), while the client ETA determine 140 can periodically determine the user ETA 143 at a different second rate (e.g., every two minutes, every three minutes, etc.). When it is time for the ETA match to compare the ETAs 143, 151, the ETA match can compare the latest ETAs 143, 151 it has received from the client ETA determine 140 and the vehicle ETA determine 112.
Still further in some examples, the request proxy 150 can dynamically change how often to determine the ETAs 143, 151 and/or compare the ETAs 143, 151 (referred to herein as checking the ETAs). The frequency of checking the ETAs can be based on (i) the length of time of the last determined user ETA 143 or vehicle ETA 151, and/or (ii) the difference between the last determined ETAs 143, 151. For example, as the difference between the ETAs 143, 151 approaches zero (e.g., the ETAs are becoming more equal), the request proxy 150 can check the ETAs more frequently. In another example, if the difference becomes greater, the request proxy 150 can check the ETAs less frequently.
As an example, at time t=t1, the request proxy 150 can determine that the user ETA 143 is one hour and that the vehicle ETA 151 is 3 minutes (difference at time t=t1 is 57 minutes). Time t=t1 can correspond to a time just after the request proxy 150 receives the pre-request 183. The first or default rate of checking the ETAs 143, 151 can be every 3 minutes. However, because the difference between the ETAs 143, 151 is greater than or equal to a first threshold (e.g., 20 minutes), the request proxy 150 can check the ETAs 143, 151 every 10 minutes instead (a second rate). The next time to check the ETAs 143, 151 can be at time t=t2 (or t1+10 min). At time t=t2, the user ETA 143 is 51 minutes and the vehicle ETA 151 is 4 minutes. The request proxy 150 can continue to check at the rate of every 10 minutes until the difference is less than the first threshold.
Once the difference is less than the first threshold, the request proxy 150 can check the ETAs 143, 151 every 3 minutes (back to the first rate). If the difference between the ETAs 143, 151 becomes less than a second threshold (e.g., 10 minutes), the request proxy 150 can check the ETAs 143, 151 at a more frequent third rate (e.g., every minute). When the difference is substantially 0 or within a predetermined amount of time (e.g., 10 seconds, 30 seconds, etc.), the request proxy 150 can transmit the transport request 155 to the dispatch 110. In this manner, by changing the frequency of checking the ETAs 143, 151, the system 100 can reduce performing extra computations until necessary.
Referring back to
The third party application 182 can provide a user interface(s) to enable the user to make a pre-request 183, such as described with
In addition, when the user makes the pre-request 183, the system 100b can receive the pre-request 183 or some information from the pre-request 183, such as the user or device ID, the specified location data point, and/or the specified vehicle type. The vehicle ETA determine 112 can periodically determine the vehicle ETA 151 based on the specified location data point, the current positions of the set of available drivers that are within a predetermined distance of the specified location data point, map information 171, real-time traffic information, weather information, and/or road closure information, as described with
The request proxy 150 can periodically receive the user ETA 143 from the client ETA determine 140 and can communicate with the third party application 182 to periodically receive the vehicle ETA 151. Because the third party application 182 can be in communication with both the third party system 100a and the system 100b, the request proxy 150 can periodically check the ETAs 143, 151, as described in
As another alternative, one or more components of the third party system 100a and/or the system 100b can be provided as part of the third party application 182. For example, the request proxy 150 can be implemented as part of the third party application 182 so that the user can input a pre-request 183 using the third party application 182 and the request proxy 150 can schedule a time when to make the transport request 155 for the user. The request proxy 150 can dynamically update this time based on the user ETA 143 and the vehicle ETA 151 that it receives over one or more networks from the third party system 100a and system 100b, respectively. In another example, the client ETA determine 140 can be a part of the third party application 182 so that the third party application 182 periodically determines the user ETA 143 and communicates with the system 100 via the one or more APIs to periodically receive the vehicle ETA 151. Still further, in another example, the third party application 182 can communicate with other sources over one or more networks to receive transit information 161 and/or map information 171.
Methodology
In
According to an example, the user can operate an application (e.g., the client application 181 of
The system 100 can determine the user ETA from the user's current location to the specified location data point (the first ETA, as shown in
For example, for illustrative purposes,
The system 100 can periodically determine the user ETA by determining the user's position information. For example, at one instance in time (illustrated by
For example, the system 100 identified 5 drivers within the dispatch radius, R. The system 100 can determine the ETAs for each of the 5 drivers, D1_ETA (4 minutes), D2_ETA (5 minutes), D3_ETA (4 minutes), D4_ETA (6.5 minutes), and D5_ETA (2.5 minutes). Depending on implementation, the system 100 can determine the vehicle ETA by selecting the shortest ETA (e.g., D5_ETA), selecting the longest ETA (e.g., D4_ETA), averaging all the ETAs (e.g., 4.4 minutes), or averaging a set of the ETAs (e.g., average the three shortest ETAs, so 3.5 minutes), or using other variations.
Referring back to
When the system 100 determines that the ETAs are substantially equal or within a predetermined amount of time of each other, the system 100 can make or trigger a request for transport on behalf of the user (250). The request can include a pickup location, which corresponds to the transfer location data point, as well as other information, such as the user ID. By making or triggering the request for transport, the system 100 can perform the transport service arrangement process by selecting a driver to provide the transport service for the user. The system 100 can then notify the user of the transport service and provide the user with information about the vehicle ETA and/or the location for pickup (e.g., the specified location data point). In this manner, the system 100 can automatically process a request for the user even before the user arrives at the transfer location, as opposed to the user having to make a transport request once she arrives at the San Francisco train station and then having to wait a certain amount of time for a selected driver to arrive.
As an addition or an alternative, the system 100 can also transmit one or more status messages to the application on the client device in order to cause the application to provide updates to the user as to when the transport request will be made for the user. For example, based on the comparison of the ETAs, if the system 100 determines that the difference between the ETAs (the user ETA is 7 minutes and the driver ETA is 3 minutes) has reached a certain pre-configured amount of time (e.g., the difference of 4 minutes), the system 100 can inform the user that the transport request will be made for the user in approximately 4 minutes. In addition, the system 100 can also inform the user that the user is approximately 7 minutes away from the specified location. Still further, if the user has provided the destination location (216), the system 100 can also calculate the estimate time of arrival from the specified location to the destination location (e.g., 15 minutes). The system 100 can inform the user that the user is approximately 22 minutes (7 minutes plus 15 minutes) away from the destination location. Additionally, in some examples, by enabling the user to make a pre-request, the user can tentatively schedule a transport service but have the ability to cancel or prevent the actual request for transport from being made before being notified that the transport service has been made and/or arranged for the user.
According to an example, at every instance when the ETAs are determined, the system 100 can also compare the ETAs to determine if the ETAs are within a first predetermined amount of time of each other (e.g., 5 minutes) (280). If the ETAs are different by more than the first predetermined amount of time (e.g., the user ETA is 20 minutes but the vehicle ETA is 2 minutes), the system 100 can continue to periodically determine the ETAs and/or compare the ETAs at the first rate. If the ETAs is equal to or within the first predetermined amount of time of each other (e.g., the user ETA is 7 minutes but the vehicle ETA is 3 minutes), the system 100 can determine the ETAs (285, 290), and/or compare the ETAs at a second, faster rate (e.g., every 1 minute).
The system 100 can determine whether the ETAs are substantially equal or within a shorter, second predetermined amount of time of each other (e.g., 30 seconds) (295). If not, the system 100 can continue to periodically determine the ETAs and/or compare the ETAs at the second rate. If yes, the system 100 can make or trigger a request for transport on behalf of the user, such as described with
The next time, t=t4, that the system 100 determines and/or compares the ETAs can be 1 minute later. The system 100 can then periodically determine and/or compare the ETAs at the second rate until it determines that the ETAs are within a second threshold amount (e.g., 30 seconds) of each other. When the system 100 determines that the ETAs are within the second threshold amount, the system 100 can trigger or make a request for transport on behalf of the user. Note that the vehicle ETA can change over time as vehicles move and change positions and drivers can change statuses, such as from being available to being unavailable or from being unavailable to available.
Hardware Diagrams
In one implementation, a computer system 500 includes processing resources 510, a main memory 520, a read only memory (ROM) 530, a storage device 540, and a communication interface 550. The computer system 500 includes at least one processor 510 for processing information and the main memory 520, such as a random access memory (RAM) or other dynamic storage device, for storing information and instructions to be executed by the processor 510. The main memory 520 also may be used for storing temporary variables or other intermediate information during execution of instructions to be executed by the processor 510. The computer system 500 may also include the ROM 530 or other static storage device for storing static information and instructions for the processor 510. A storage device 540, such as a magnetic disk or optical disk, is provided for storing information and instructions, including vehicle ETA determine instructions 542, client ETA determine instructions, and request proxy instructions 546.
For example, the processor 510 can execute the vehicle ETA determine instructions 542 to implement logic for periodically determining the vehicle ETA for one or more of a set of vehicles, such as described in
The communication interface 550 can enable the computer system 500 to communicate with one or more networks 580 (e.g., cellular network) through use of the network link (wireless or wireline). Using the network link, the computer system 500 can communicate with one or more other computing devices and/or one or more other servers or datacenters. In some variations, the computer system 500 can receive a pre-request 552 from an application running on a client device of a user via the network link. The pre-request 552 can include the user ID or device ID, a start location, a specified/transfer location, a destination location, information about a method of transit, and/or a vehicle type selection.
The processor 510, through execution of instructions, can determine when the user ETA and the vehicle ETA is substantially equal or within a predetermined amount of time of each other. When this determination is made, the processor 510, through execution of instructions, can make or trigger a request for transport on behalf of the user and transmit a status information 554 to the client device to inform the user that the request has been made, such as described in
The computer system 500 can also include a display device 560, such as a cathode ray tube (CRT), an LCD monitor, or a television set, for example, for displaying graphics and information to a user. One or more input mechanisms 570, such as a keyboard that includes alphanumeric keys and other keys, can be coupled to the computer system 500 for communicating information and command selections to the processor 510. Other non-limiting, illustrative examples of input mechanisms 570 include a mouse, a trackball, touch-sensitive screen, or cursor direction keys for communicating direction information and command selections to the processor 510 and for controlling cursor movement on the display 560.
Examples described herein are related to the use of the computer system 500 for implementing the techniques described herein. According to one embodiment, those techniques are performed by the computer system 500 in response to the processor 510 executing one or more sequences of one or more instructions contained in the main memory 520. Such instructions may be read into the main memory 520 from another machine-readable medium, such as the storage device 540. Execution of the sequences of instructions contained in the main memory 520 causes the processor 510 to perform the process steps described herein. In alternative implementations, hard-wired circuitry may be used in place of or in combination with software instructions to implement examples described herein. Thus, the examples described are not limited to any specific combination of hardware circuitry and software.
The processor 610 can provide a variety of content to the display 630 by executing instructions and/or applications that are stored in the memory resources 620. For example, the processor 610 is configured with software and/or other logic to perform one or more processes, steps, and other functions described with implementations, such as described by
A user can operate the computing device 600 to operate the client application in order to make a pre-request 645 for a transport service. The pre-request 645 can include the method of transit, the start location data point, the specified location data point, and/or a vehicle type selection. In one example, after the pre-request 645 is made, the client application can periodically receive or determine location data point 665 from the GPS component 660 and periodically provide the location data point 665 to the transport arrangement system (not shown in
It is contemplated for examples described herein to extend to individual elements and concepts described herein, independently of other concepts, ideas or system, as well as for examples to include combinations of elements recited anywhere in this application. Although examples are described in detail herein with reference to the accompanying drawings, it is to be understood that the concepts are not limited to those precise examples. Accordingly, it is intended that the scope of the concepts be defined by the following claims and their equivalents. Furthermore, it is contemplated that a particular feature described either individually or as part of an example can be combined with other individually described features, or parts of other examples, even if the other features and examples make no mentioned of the particular feature. Thus, the absence of describing combinations should not preclude having rights to such combinations.
This application is a continuation of U.S. patent application Ser. No. 16/736,520, filed on Jan. 20, 2020; which is a continuation U.S. patent application Ser. No. 15/874,143, filed Jan. 18, 2018 (now U.S. Pat. No. 10,572,964); which is a continuation of U.S. patent application Ser. No. 14/832,782, filed Aug. 21, 2015 (now U.S. Pat. No. 9,911,170), which claims the benefit of priority to U.S. Provisional Patent Application No. 62/040,347, filed Aug. 21, 2014; the aforementioned priority applications being hereby incorporated by reference in their respective entireties.
Number | Name | Date | Kind |
---|---|---|---|
4023753 | Dobler | May 1977 | A |
5953706 | Patel | Sep 1999 | A |
6608566 | Davis | Aug 2003 | B1 |
6756913 | Ayed | Jun 2004 | B1 |
6832092 | Suarez | Dec 2004 | B1 |
7522995 | Nortrup | Apr 2009 | B2 |
7840427 | O'Sullivan | Nov 2010 | B2 |
7970749 | Uhlir | Jun 2011 | B2 |
8412667 | Zhang | Apr 2013 | B2 |
8630987 | Dhuse | Jan 2014 | B2 |
8762048 | Kosseifi | Jun 2014 | B2 |
8775070 | Bhatia | Jul 2014 | B1 |
9070101 | Abhayanker | Jun 2015 | B2 |
9172738 | daCosta | Oct 2015 | B1 |
9534912 | Lord | Jan 2017 | B2 |
9610893 | Lopez-Hinojosa | Apr 2017 | B2 |
9886667 | Lord | Feb 2018 | B2 |
9911170 | Kim | Mar 2018 | B2 |
9939279 | Pan | Apr 2018 | B2 |
10074065 | Jones | Sep 2018 | B2 |
10082793 | Glaser | Sep 2018 | B1 |
10152053 | Smith | Dec 2018 | B1 |
10178890 | Andon | Jan 2019 | B1 |
10197410 | Guo | Feb 2019 | B2 |
10203212 | Mazzella | Feb 2019 | B2 |
10328855 | Lopez-Hinojosa | Jun 2019 | B2 |
10458801 | Lord | Oct 2019 | B2 |
10535271 | Dyer | Jan 2020 | B1 |
10572964 | Kim | Feb 2020 | B2 |
10721327 | Cheng | Jul 2020 | B2 |
11196838 | Cheng | Dec 2021 | B2 |
11551325 | Tolkin | Jan 2023 | B2 |
11553316 | Pena | Jan 2023 | B2 |
11570276 | Demiralp | Jan 2023 | B2 |
11582328 | Cheng | Feb 2023 | B2 |
11599964 | Stumpf | Mar 2023 | B2 |
20010037174 | Dickerson | Nov 2001 | A1 |
20020044186 | Tochihara et al. | Apr 2002 | A1 |
20020099599 | Minassian | Jul 2002 | A1 |
20030058082 | Mallick | Mar 2003 | A1 |
20040158483 | Lecouturier | Aug 2004 | A1 |
20040225520 | Aoki et al. | Nov 2004 | A1 |
20050021227 | Matsumoto | Jan 2005 | A1 |
20050227704 | Ferra | Oct 2005 | A1 |
20050278063 | Hersh | Dec 2005 | A1 |
20050278192 | Cantini et al. | Dec 2005 | A1 |
20060023569 | Agullo | Feb 2006 | A1 |
20060034201 | Umeda | Feb 2006 | A1 |
20060059023 | Mashinsky | Mar 2006 | A1 |
20060155460 | Raney | Jul 2006 | A1 |
20060235739 | Levis | Oct 2006 | A1 |
20060293937 | Sohm | Dec 2006 | A1 |
20070011324 | Mehr | Jan 2007 | A1 |
20070150375 | Yang | Jun 2007 | A1 |
20080014908 | Vasant | Jan 2008 | A1 |
20080027772 | Gernega | Jan 2008 | A1 |
20080033633 | Akiyoshi | Feb 2008 | A1 |
20080177584 | Altaf et al. | Jul 2008 | A1 |
20080195428 | O'Sullivan | Aug 2008 | A1 |
20080208441 | Cheung | Aug 2008 | A1 |
20080270019 | Anderson | Oct 2008 | A1 |
20080277183 | Huang | Nov 2008 | A1 |
20080319644 | Zehler | Dec 2008 | A1 |
20090005963 | Jarvinen | Jan 2009 | A1 |
20090030885 | DePasquale | Jan 2009 | A1 |
20090083111 | Carr | Mar 2009 | A1 |
20090119006 | Silver | May 2009 | A1 |
20090150514 | Davis | Jun 2009 | A1 |
20090156241 | Staffaroni | Jun 2009 | A1 |
20090176508 | Lubeck | Jul 2009 | A1 |
20090192851 | Bishop | Jul 2009 | A1 |
20090216600 | Hill | Aug 2009 | A1 |
20090248587 | Van Buskirk | Oct 2009 | A1 |
20100070168 | Sumcad | Mar 2010 | A1 |
20100074383 | Lee | Mar 2010 | A1 |
20100153279 | Zahn | Jun 2010 | A1 |
20100211498 | Aabye et al. | Aug 2010 | A1 |
20110040603 | Wolfe | Feb 2011 | A1 |
20110099040 | Felt | Apr 2011 | A1 |
20110153628 | Lehmann | Jun 2011 | A1 |
20110225257 | Tilden et al. | Sep 2011 | A1 |
20110238755 | Khan | Sep 2011 | A1 |
20110246246 | Johnson | Oct 2011 | A1 |
20110251951 | Kolkowitz et al. | Oct 2011 | A1 |
20120023294 | Resnick | Jan 2012 | A1 |
20120041675 | Juliver | Feb 2012 | A1 |
20120072249 | Weir et al. | Mar 2012 | A1 |
20120078672 | Mohebbi | Mar 2012 | A1 |
20120203599 | Choi | Aug 2012 | A1 |
20120232943 | Myr | Sep 2012 | A1 |
20120233246 | Guernez | Sep 2012 | A1 |
20120239452 | Trivedi | Sep 2012 | A1 |
20120253548 | Davidson | Oct 2012 | A1 |
20120265580 | Kobayashi | Oct 2012 | A1 |
20120253654 | Sun | Nov 2012 | A1 |
20120290337 | Helmy | Nov 2012 | A1 |
20120290950 | Rapaport | Nov 2012 | A1 |
20120311584 | Gruber | Dec 2012 | A1 |
20130018795 | Kolhatkar et al. | Jan 2013 | A1 |
20130041941 | Tomasic | Feb 2013 | A1 |
20130054281 | Thakkar | Feb 2013 | A1 |
20130073327 | Edelberg | Mar 2013 | A1 |
20130110392 | Kosseifi | May 2013 | A1 |
20130132140 | Amin | May 2013 | A1 |
20130144831 | Atlas | Jun 2013 | A1 |
20130215843 | Diachina | Aug 2013 | A1 |
20130218455 | Clark | Aug 2013 | A1 |
20130226365 | Brozovich | Aug 2013 | A1 |
20130311997 | Gruber | Nov 2013 | A1 |
20140025410 | Churchman et al. | Jan 2014 | A1 |
20140074536 | Meushar | Mar 2014 | A1 |
20140095221 | Lore | Apr 2014 | A1 |
20140129302 | Amin et al. | May 2014 | A1 |
20140129951 | Amin | May 2014 | A1 |
20140149157 | Shaam et al. | May 2014 | A1 |
20140149441 | Wang | May 2014 | A1 |
20140156556 | Lavian | Jun 2014 | A1 |
20140172727 | Abhyanker | Jun 2014 | A1 |
20140173511 | Lehmann | Jun 2014 | A1 |
20140207375 | Lerenc | Jul 2014 | A1 |
20140378118 | Mohebbi | Dec 2014 | A1 |
20140378159 | Dolbakian | Dec 2014 | A1 |
20150032485 | Nelson | Jan 2015 | A1 |
20150055178 | Ishibashi | Feb 2015 | A1 |
20150073645 | Davidsson | Mar 2015 | A1 |
20150081581 | Gishen | Mar 2015 | A1 |
20150100238 | Cai | Apr 2015 | A1 |
20150154810 | Tew | Jun 2015 | A1 |
20150161554 | Sweeney | Jun 2015 | A1 |
20150161563 | Mehrabi | Jun 2015 | A1 |
20150161698 | Jones | Jun 2015 | A1 |
20150176997 | Pursche | Jun 2015 | A1 |
20150178698 | Schulz | Jun 2015 | A1 |
20150161564 | Sweeney | Jul 2015 | A1 |
20150204684 | Rostamian | Jul 2015 | A1 |
20150206267 | Khanna | Jul 2015 | A1 |
20150254581 | Brahme | Sep 2015 | A1 |
20150262430 | Farrelly | Sep 2015 | A1 |
20150294238 | Benque | Oct 2015 | A1 |
20150317568 | Grasso | Nov 2015 | A1 |
20150323327 | Lord | Nov 2015 | A1 |
20150323330 | Lord | Nov 2015 | A1 |
20150323331 | Lord | Nov 2015 | A1 |
20150323335 | Lord | Nov 2015 | A1 |
20150323336 | Lord | Nov 2015 | A1 |
20150324717 | Lord | Nov 2015 | A1 |
20150324718 | Lord | Nov 2015 | A1 |
20150324729 | Lord | Nov 2015 | A1 |
20150325128 | Lord | Nov 2015 | A1 |
20150339923 | Konig | Nov 2015 | A1 |
20150339928 | Ramanujam | Nov 2015 | A1 |
20150352128 | Villa et al. | Nov 2015 | A1 |
20150345951 | Dutta | Dec 2015 | A1 |
20150379437 | Reich | Dec 2015 | A1 |
20160013987 | George | Jan 2016 | A1 |
20160019496 | Gorlin | Jan 2016 | A1 |
20160026936 | Richardson | Jan 2016 | A1 |
20160027306 | Lambert | Jan 2016 | A1 |
20160027307 | Abhyanker | Jan 2016 | A1 |
20160034845 | Hiyama | Feb 2016 | A1 |
20160055605 | Kim | Feb 2016 | A1 |
20160066004 | Lieu | Mar 2016 | A1 |
20160104122 | Gorlin | Apr 2016 | A1 |
20160117610 | Ikeda | Apr 2016 | A1 |
20160132792 | Rosnow | May 2016 | A1 |
20160138928 | Guo | May 2016 | A1 |
20160148167 | Li | May 2016 | A1 |
20160231129 | Erez | Aug 2016 | A1 |
20160301698 | Katara | Oct 2016 | A1 |
20160321771 | Liu | Nov 2016 | A1 |
20160334232 | Zhuang | Nov 2016 | A1 |
20160356615 | Arata | Dec 2016 | A1 |
20160364678 | Cao | Dec 2016 | A1 |
20160364679 | Cao | Dec 2016 | A1 |
20160364812 | Cao | Dec 2016 | A1 |
20160364823 | Cao | Dec 2016 | A1 |
20160370194 | Colijn | Dec 2016 | A1 |
20170083832 | Williams | Mar 2017 | A1 |
20170115125 | Outwater | Apr 2017 | A1 |
20170126837 | Wang | May 2017 | A1 |
20170132540 | Haparnas | May 2017 | A1 |
20170147951 | Meyer | May 2017 | A1 |
20170147959 | Sweeney | May 2017 | A1 |
20170169366 | Klein | Jun 2017 | A1 |
20170169535 | Tolkin | Jun 2017 | A1 |
20170191841 | Marueli | Jul 2017 | A1 |
20170191845 | Marueli | Jul 2017 | A1 |
20170200249 | Ullrich | Jul 2017 | A1 |
20170220966 | Wang | Aug 2017 | A1 |
20170240098 | Sweeney | Aug 2017 | A1 |
20170255881 | Ritch | Sep 2017 | A1 |
20170270794 | Sweeney | Sep 2017 | A1 |
20170272901 | Sweeney | Sep 2017 | A1 |
20170308824 | Lord | Oct 2017 | A1 |
20170344643 | Ramesan | Nov 2017 | A1 |
20170351987 | Liu | Dec 2017 | A1 |
20180005145 | Lo | Jan 2018 | A1 |
20180060838 | Agrawal | Mar 2018 | A1 |
20180071634 | Carvallo | Mar 2018 | A1 |
20180081496 | Bhardwaj | Mar 2018 | A1 |
20180091604 | Yamashita | Mar 2018 | A1 |
20180101925 | Brinig | Apr 2018 | A1 |
20180121835 | Salonen | May 2018 | A1 |
20180121847 | Zhao | May 2018 | A1 |
20180189717 | Cao | Jul 2018 | A1 |
20180211351 | Kim | Jul 2018 | A1 |
20180268329 | Lord | Sep 2018 | A1 |
20180306595 | Marueli | Oct 2018 | A1 |
20180315148 | Luo | Nov 2018 | A1 |
20180321049 | Lim | Nov 2018 | A1 |
20180339714 | Smid | Nov 2018 | A1 |
20180349825 | Yamamoto | Dec 2018 | A1 |
20180356239 | Marco | Dec 2018 | A1 |
20180374350 | Sweeney | Dec 2018 | A1 |
20190052728 | Cheng | Feb 2019 | A1 |
20190109910 | Sweeney | Apr 2019 | A1 |
20190172353 | Chen | Jun 2019 | A1 |
20190205812 | Afzal | Jul 2019 | A1 |
20190206009 | Gibson | Jul 2019 | A1 |
20190212157 | Wu | Jul 2019 | A1 |
20190244318 | Rajcok | Aug 2019 | A1 |
20190265703 | Hicok | Aug 2019 | A1 |
20190311629 | Sierra | Oct 2019 | A1 |
20190340554 | Jaffe | Nov 2019 | A1 |
20190347754 | Dicker | Nov 2019 | A1 |
20200013020 | Yang | Jan 2020 | A1 |
20200041286 | Lord | Feb 2020 | A1 |
20200041291 | Dunnette | Feb 2020 | A1 |
20200104761 | Aich | Apr 2020 | A1 |
20200211070 | Singh | Jul 2020 | A1 |
20200027368 | Bhattacharyya | Aug 2020 | A1 |
20200258344 | Brinig | Aug 2020 | A1 |
20200272957 | Lord | Aug 2020 | A1 |
20200272965 | Tanabe | Aug 2020 | A1 |
20200273337 | Sweeney | Aug 2020 | A1 |
20200322451 | Cheng | Oct 2020 | A1 |
20200334987 | Shoval | Oct 2020 | A1 |
20210010817 | Wu | Jan 2021 | A1 |
20210048300 | Saavreda Roman | Feb 2021 | A1 |
20210121446 | Pan | Jul 2021 | A1 |
20210227049 | Demilrap | Jul 2021 | A1 |
20210248520 | Krishnamurthy | Aug 2021 | A1 |
20210256437 | Stayner | Aug 2021 | A1 |
20210256649 | Stumpf | Aug 2021 | A1 |
20210312338 | Stayner | Oct 2021 | A1 |
20210337047 | Cheng | Oct 2021 | A1 |
20210364300 | Rahematpura | Nov 2021 | A1 |
20210365848 | Lord | Nov 2021 | A1 |
20210407032 | Kim | Dec 2021 | A1 |
20220114501 | Colon | Apr 2022 | A1 |
20220223043 | Sweeney | Jul 2022 | A1 |
20220412748 | Lord | Sep 2022 | A1 |
20230044882 | Lord | Feb 2023 | A1 |
Number | Date | Country |
---|---|---|
2604321 | Oct 2006 | CA |
103856532 | Jun 2014 | CN |
105575103 | May 2016 | CN |
106651728 | May 2017 | CN |
111832788 | Oct 2020 | CN |
10201607712 | Nov 2016 | DE |
2293523 | Mar 2011 | EP |
3046058 | Jul 2016 | EP |
2367979 | Apr 2002 | GB |
2 501 075 | Oct 2013 | GB |
2002-133592 | May 2002 | JP |
2004-192366 | Jul 2004 | JP |
2004-302941 | Oct 2004 | JP |
2004-302942 | Oct 2004 | JP |
2004-362271 | Dec 2004 | JP |
2005-107942 | Apr 2005 | JP |
2006-339810 | Dec 2006 | JP |
2010-286908 | Dec 2010 | JP |
2001-188996 | Jul 2011 | JP |
2012-194687 | Oct 2012 | JP |
2013-175144 | Sep 2013 | JP |
2014-238831 | Dec 2014 | JP |
10-2006-0081193 | Jul 2006 | KR |
10-2011-0132765 | Dec 2011 | KR |
10-2012-0079549 | Jun 2012 | KR |
10-2013-0130978 | Dec 2013 | KR |
10-2014-0023541 | Feb 2014 | KR |
WO 2002000694 | Jan 2002 | WO |
WO 2002006994 | Jan 2002 | WO |
WO 2011069170 | Jun 2011 | WO |
WO 2011-120161 | Oct 2011 | WO |
WO 2017079222 | May 2017 | WO |
Entry |
---|
Fawcett, Supporting human interaction with the Sentient Vehicle, 2002, IEEE. pp. 307-312 (2002). |
Koscher, Experimental Security Analysis of a Modern Automobile, 2010, IEEE, pp. 447-462 (2010). |
Muter, A structured approach to anomaly detection for in-vehicle networks, 2010, IEEE, pp. 92-98 ()2010). |
Rathore, Integrating biometric sensors into automotive Internet of Things, 2014, IEEE pp. 178-181 (2014). |
Office Action in CA 3017638 dated Jun. 22, 2022. |
Office Action in CA 3017822 dated Jun. 1, 2022. |
Search Report in BR112018009779-9 dated Aug. 27, 2020. |
Technical Exam Report in BR112018009779-9 dated Dec. 2, 2020. |
Examination Report No. 1 in AU 2018221432 dated Jan. 31, 2022. |
Technical Exam Report in BR112018009779-9 dated Jul. 27, 2022. |
Yuan, et al., T-Finder: A recommender System for Finding Passengers and Vacant Taxis, IEEE 2013. |
Exam Report No. 1 in AU 2016366687 dated Oct. 6, 2021. |
Office Action in EP 17771000.1 dated Aug. 23, 2021. |
Exam Report No. 2 in AU 2017328067 dated Jan. 22, 2022. |
Office Action in KR 10-2016-7034177 dated Mar. 30, 2022. |
How to request multiple Uber vehicles, Aug. 15, 2013 (https://www.wikihow.com/ Request-Multiple-Uber-Vehicles. |
Fast and Clean, How to book two cabs at the same time in Uber, Jun. 30, 2017 (https://fastandclean.org/ book-two-cabs-time-uber). |
Is it possible to order 2 Ubers at the same time, Jul. 13, 2015 (https://web.archive.org/web/20150801000000*/https://android. Stackexchange.com/questions/114027/is-it- possible-to-order-2-ubers-at-the-same-time. |
Fay et al, Decentralizing routing control for guided transportation systems, 2008 IEEE. |
Vaqar et al, Smart Protocol for Communication in Mobile Ad Hoc Networks of Vehicles, 2007, IEEE, p. 1-6. |
Fay et al, Decentralized control strategies for transportation systems, 2005, IEEE p. 898-903. |
Dessouky, et al, Real-time scheduling rules for demand responsive transit systems, 1998 IEEE pp. 2956-2961. |
Pelzer, et al., “A Partition-Based Match Making Algorithm for Dynamic Ridesharing”, IEEE Transactions on Intelligent Transportation Systems, vol. 16, Issue: 5, pp. 2587-2596 (2015). |
Andrew J. Hawkins, Lyft is now suggesting more convenient pickup locations, because a little walking won't kill you. Jun. 26, 2017 The Verge (www.theverge.com). |
Amey, Utilizing Mobile Phone Technology to Improve Rideshare Services, 2011 Transportation Research Board Annual Meeting. |
Fougeres, A push service for carpooling, 2012 IEEE International Conference on Green Computing and Communications, Conference on Internet of Things, and on Cubler, Physical and Social Computing, 2012. |
Megalingam, Automated Wireless Carpooing System for an Eco-Friendly Travel, 2011 IEEE. |
Dillenburg, The Intelligent Travel Assistant, IEEE 5th International Conference on Intelligent Transportation Systems, Sep. 3-6, 2002, Singapore. |
Guc, Real-time, Scalable Route Planning using a Stream-Processing Infrastructure, 2010 13th International IEEE, Annual Conference on Intelligent Transport Systems, Madeira Island, Portugal ,Sep. 19-22, 2010. |
Lalos, A Framework for dynamic car and taxi pools with the use of Positioning Systems, 2009 Computation World: Future Computing, Service Computation, Congitive, Adaptive, Content, Patterns 2009. |
Shahzada, Dynamic Vehicle Navigation: An A* Algorithm Based Approach Using Traffic and Road Information, 2011 International Conference on Computer Applications and Industrial Electronics, (ICCAIE 2011). |
Boufaied, A Diagnostic Approach for Advanced Tracking of Commercial Vehicles with Time Window Constraints, IEEE Transactions on Intelligent Systems, vol. 14, No. 3, Sep. 2013. |
Vaughan-Nichols, Will Mobile Computing's Future be Location, Location, Location? Industry Trends, IEEE Computer Society, 2009 IEEE. |
ISR/Written Opinion in International Application No. PCT/US2015/046388, dated Nov. 17, 2015. |
EESR in EP Application No. 15833693.3 dated Jan. 18, 2018. |
Office Action dated Sep. 20, 2018 in EP 15833693.3. |
Introducing Scheduled Rides: Plan Your Trip in Advance—Lyft Blog; https://blog.lyft.com/posts/introducing-scheduled-rides, May 23, 2016. |
How does Uber Work? available at https://help.uber.com/h/738d1ff7- 5fe0-4383-b34c-4a2480efd71e (Year: 2016). |
ISR and Written Opinion dated Sep. 14, 2017 in PCT/US2017/036430. |
EESR in 15809070.4 dated Nov. 8, 2017. |
Office Action in EP 15809070.4 dated Sep. 27, 2018. |
EESR in EP 19165275.9 dated Apr. 18, 2019. |
Furuhata, M., “Ridesharing” The State-of-the-Art and Future Directions, Apr. 15, 2013, Elsevier Ltd., Transportation Research Part B 57, pp. 28-46 (2013). |
Huang, Y., Large Scale Real-time Ridesharing with Service Guarantee on Road Networks, Sep. 1-5, 2014, VLDB Endowment, vol. 7, No. 14, pp. 2017-2018 (2014). |
Number | Date | Country | |
---|---|---|---|
20210407032 A1 | Dec 2021 | US |
Number | Date | Country | |
---|---|---|---|
62040347 | Aug 2014 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 16736520 | Jan 2020 | US |
Child | 17474261 | US | |
Parent | 15874143 | Jan 2018 | US |
Child | 16736520 | US | |
Parent | 14832782 | Aug 2015 | US |
Child | 15874143 | US |