ENHANCED CARGO DELIVERY SYSTEM

A delivery route to a pickup location to collect cargo and to a delivery location to deliver the cargo is received. The delivery route includes a first location where a carrier route meets the delivery route and a second location where the carrier route diverges from the delivery route. A carrier approaching the first location is identified. A securing apparatus is actuated to engage a port disposed on the carrier when the carrier reaches the first location. The securing apparatus is disengaged from the port when the carrier reaches the second location. A propulsion is controlled to move subsystems a cargo container to the pickup location.

BACKGROUND

Passenger vehicles, including mass transit vehicles, can transport passengers to locations throughout a city. The passenger vehicles are typically dedicated solely to transporting passengers. To deliver cargo, cargo carriers typically use dedicated cargo delivery vehicles to deliver the cargo to cargo recipients. The cargo delivery vehicles follow predetermined delivery routes that may make it difficult to accommodate specific timing needs and/or locations of cargo senders and cargo recipients. Current vehicles lack integrated mechanisms for delivering cargo and transporting passengers.

DETAILED DESCRIPTION

A carrier transports both passengers and cargo to locations throughout a city. The carrier includes a cab that houses passengers and/or cargo. A plurality of cargo containers attach to the carrier to move to a pickup location to receive cargo and to move to a delivery location to deliver cargo. By transporting both passengers and cargo, the carrier reduces the amount of dedicated delivery vehicles to deliver cargo and reduces the energy consumed by the cargo containers to deliver cargo. Furthermore, the cargo sender can request one of the cargo containers to accommodate specific timing needs and/or locations of the cargo sender and the cargo recipient.

As used herein, the term “cargo” refers to any physical object that can be transported by a transportation vehicle as disclosed herein. Cargo can include a “package,” or “packages,” i.e., items that can be sent to a recipient, e.g., a parcel, a box, etc.

FIG. 1illustrates a system100for delivering items of cargo and transporting passengers. A computing device105in a vehicle101. e.g., a carrier101. is programmed to receive collected data115from one or more data collectors110. For example, vehicle101data115may include a location of the vehicle101, a location of a target, etc. Location data may be in a known form, e.g., geo-coordinates such as latitude and longitude coordinates obtained via a navigation system that uses the Global Positioning System (GPS). Further examples of data115can include measurements of vehicle101systems and components, e.g., a vehicle101velocity, a vehicle101trajectory, etc.

The computing device105is generally programmed for communications on a vehicle101network or communications bus, as is known. Via the network, bus, and/or other wired or wireless mechanisms (e.g., a wired or wireless local area network in the vehicle101), the computing device105may transmit messages to various devices in a vehicle101and/or receive messages from the various devices, e.g., controllers, actuators, data collectors, etc., including data collectors110. Alternatively or additionally, in cases where the computing device105actually comprises multiple devices, the vehicle network or bus may be used for communications between devices represented as the computing device105in this disclosure. In addition, the computing device105may be programmed for communicating with the network125, which, as described below, may include various wired and/or wireless networking technologies, e.g., cellular, Bluetooth®, wired and/or wireless packet networks, etc.

The data store106may be of a known type, e.g., hard disk drives, solid state drives, servers, or any volatile or non-volatile media. The data store106may store the collected data115sent from the data collectors110.

Data collectors110may include a variety of devices. For example, as is known, various controllers in a vehicle101may operate as data collectors110to provide data115via the vehicle101network or bus, e.g., data115relating to vehicle speed, acceleration, position, system and/or component status, etc. Further, other data collectors110could include sensors such as cameras, motion detectors, short range radar, long range radar, LIDAR, and/or ultrasonic transducers, etc., i.e., data collectors110to provide data115for evaluating a location of a target, projecting a path of a parking maneuver, evaluating a location of a roadway lane, etc.

Collected data115may include a variety of data collected in a vehicle101. Examples of collected data115are provided above, and moreover, data115are generally collected using one or more data collectors110, and may additionally include data calculated therefrom in the computing device105, and/or at the server130. In general, collected data115may include any data that may be gathered by the data collectors110and/or computed from such data.

The vehicle101may include a plurality of subsystems120. The subsystems120control vehicle101components, e.g., a vehicle seat, mirror, tiltable and/or telescoping steering wheel, etc. The subsystems120include, e.g., a steering subsystem, a propulsion subsystem, a brake subsystem, a park assist subsystem, an adaptive cruise control subsystem, etc. The computing device105may actuate the subsystems120to control the vehicle101components, e.g., to stop the vehicle101, to avoid targets, etc. The computing device105may be programmed to operate some or all of the subsystems120with limited or no input from a human operator, i.e., the computing device105may be programmed to operate the subsystems120as a virtual operator. When the computing device105operates the subsystems120as a virtual operator, the computing device105does not use input from the human operator with respect to subsystems120selected for control by the virtual operator, which provides instructions, e.g., via a vehicle101communications bus and/or to electronic control units (ECUs) as are known, to actuate vehicle101components, e.g., to apply brakes, change a steering wheel angle, etc. For example, if the human operator attempts to turn a steering wheel during virtual operator steering operation, the computing device105may ignore the movement of the steering wheel and steer the vehicle101according to its programming.

The system100may further include a network125connected to a server130and a data store135. The computer105may further be programmed to communicate with one or more remote sites such as the server130, via the network125, such remote site possibly including a data store135. The network125represents one or more mechanisms by which a vehicle computer105may communicate with a remote server130. Accordingly, the network125may be one or more of various wired or wireless communication mechanisms, including any desired combination of wired (e.g., cable and fiber) and/or wireless (e.g., cellular, wireless, satellite, microwave, and radio frequency) communication mechanisms and any desired network topology (or topologies when multiple communication mechanisms are utilized). Exemplary communication networks include wireless communication networks (e.g., using Bluetooth, IEEE 802.11, etc.), local area networks (LAN) and/or wide area networks (WAN), including the Internet, providing data communication services.

The system100includes at least one cargo container140. The cargo container140delivers cargo from a cargo sender to a cargo recipient. The cargo container may include a container computing device145. The container computing device145includes a processor and a memory. The container computing device145communicates with cargo container subsystems150to move the cargo container140along a route from the cargo sender to the cargo recipient. The container computing device145communicates with the server130and the carrier computing device105over the network125. The cargo container subsystems150may include, e.g., a propulsion, a brake, etc., and may actuate one or more cargo container components, e.g., a motor, a wheel, etc. For example, the propulsion is connected to the wheels to move the cargo container140,

The server130can receive a request for one of the cargo containers140from a cargo sender. The cargo sender can send the request over the network125via, e.g., an application in a portable device, a website, etc. The request can include a size of the cargo to be delivered, a specific time to pick up the cargo, a location to pick up the cargo, and a location to deliver the cargo. Based on the request, the server130can locate a cargo container140to deliver the cargo according to the request. For example, based on the size of the cargo, the server130can identify a cargo container140that is large enough to deliver the cargo. In another example, the server130can identify one of the cargo containers140closest to the pickup location from the request, i.e., the cargo container140that is a shortest distance to the pickup location. In yet another example, when the cargo is larger than any one of the cargo containers140, the server130can identify a carrier101to receive and deliver the cargo. The server130can receive a plurality of requests to deliver cargo, identify a respective cargo container140and/or carrier101for each request and determine a plurality of delivery routes215to deliver the cargo. The server can identify at least one carrier route230, as shown inFIG. 6, that is along at least a portion of at least some of the delivery routes215. The server130can control one or more of the container subsystems150for one or more of the cargo containers140to attach the cargo containers140assigned to the delivery routes215to a carrier101traveling along the carrier route230.

The server130can assign an alphanumeric code and send the code to the cargo recipient and to the container computing device145. The cargo recipient can input the code to the container computing device145via an access panel210, as shown inFIG. 5. The container computing device115can compare the input code from the cargo recipient to the code sent from the server130. If the input code matches the code sent from the server130, i.e., the input code is the same as the code sent from the server130. the container computing device145can actuate a lock205, as shown inFIG. 5, and allow the cargo recipient to receive the cargo160. The code may be an alphanumeric code, as described above, or may be a known security measure, e.g., 2-step authenticator, a biometric scan, etc. The code can be sent via known security protocols.

FIG. 2illustrates an example carrier101with a plurality of cargo containers140attached to the carrier101. The carrier101includes a cab155. The cab155houses passengers as the carrier101moves along a predetermined path, e.g., a carrier route230as shown inFIG. 6. The cab155may alternatively or additionally to passengers store items of cargo160, e.g., that cannot be accommodated by the cargo containers140due to being larger than a container140, as shown inFIG. 4.

The carrier101includes at least one passenger door165. The passenger door165allows the passengers to enter and exit the cab155. The passenger door165may open when the carrier101reaches a carrier stop, as shown inFIG. 6, to allow passengers to enter and exit the cab155.

The carrier101may include a plurality of cargo containers140. The cargo containers140store items of cargo160. The cargo containers140may be attached to a side of the carrier101, as described below. The cargo containers140may attach to the carrier101along a delivery route to reduce the energy consumed by the cargo containers140to deliver the cargo160.FIGS. 2 and 5show the cargo containers140storing packages of cargo160for delivery. As shown inFIGS. 3-4, the cargo containers140may attach to more than one side of the carrier101. Furthermore, the cargo containers140may have more than one size, i.e., one of the cargo containers140may be larger than another one of the cargo containers140. Thus, different sizes of cargo160may be transported by the cargo containers140.

Each of the cargo containers140may include a plurality of securing apparatuses180. The securing apparatuses180secure the cargo container140to the carrier101. The securing apparatuses180may be, e.g., flanges, pins, etc. The carrier101includes a plurality of ports185arranged to receive the securing apparatuses180. The ports185may be disposed on an exterior of the cab155. The securing apparatuses180may include a movable element to securably engage the ports185, e.g., the securing apparatuses180may include a movable latch (not shown.) that secures the securing apparatus180to the port185. The container computing device145can actuate the securing apparatuses180to attach to the ports185, securing the cargo container140to the carrier101.

FIG. 3illustrates a top view of the carrier101. The carrier101, includes a plurality of passenger benches170. The passenger benches170may be attached to a side of the cab155. The passenger benches170allow the passengers to sit while riding the carrier101. As shown inFIG. 4, the passenger benches170may be folded from a deployed state, where passengers may sit on the passenger benches170, to a stowed state, where the passenger benches170are moved toward the side of the cab155to allow an item of cargo160to be placed in the cab155.

FIG. 4illustrates a rear view of the carrier101. Here, the carrier101includes an item of cargo160larger than the cargo containers140, and thus the cargo160must be stored in the cab155. A rear door175may open to allow access to the cab, and the passenger benches170may be folded to the stowed position to allow room for the cargo160.

FIG. 4further illustrates one of the containers140disengaging from the side of the carrier101. As described below, the container140may attach to the carrier101to move along at least a portion of the delivery route. When the route of the carrier101leaves the route of the container140, the container140may disengage from the carrier101., e.g., at a stop along the route of the carrier101. As shown inFIG. 4, the container computing device145can instruct the securing apparatuses180to detach from the ports185, moving away from the carrier101and onto a curb190. in addition, when the cargo container140is attached to the exterior of the cab155and is not adjacent the curb190, the cargo container140may detach from the carrier101and move along a roadway to the curb190, e.g., to a curb cut, a ramp, etc.

FIG. 5illustrates an example cargo container140. The cargo container140delivers cargo160from the cargo sender to the cargo recipient. The cargo container140includes a door195enclosing a chamber200. The door195protects the cargo160and allows access to the chamber200. The chamber200stores the cargo160.

The cargo container140may include a lock205. The lock205secures the door195to the sides of the cargo container140. The lock205prevents users other than the cargo sender and the cargo recipient from accessing the cargo160stored in the chamber200. The lock205may be, e.g., a combination lock, an electronic lock, etc.

The cargo container140may include an access panel210. The access panel210allows the cargo recipient to input a code sent from the server130to release the lock205and access the cargo160in the chamber200. As described above, the cargo recipient and the container computing device115receive the code assigned by the server130. The container computing device145may receive inputs from the access panel210to determine whether the input matches the assigned code. If the input code matches the assigned code, the container computing device145releases the lock205. The access panel210may be, e.g., a touchscreen, an alphanumeric keypad, etc.

The cargo container140may include one or more subsystems150that are anti-theft device150. The anti-theft device150may be a subsystem150that prevents unauthorized access to the cargo160in the cargo container140. The container computing device145may be programmed to actuate the anti-theft device150When the user inputs an incorrect code. The container computing device145may be further programmed to allow the user more than one attempt at inputting the code before actuating the anti-theft device150. The anti-theft device150may be, e.g., a siren, a horn, etc. The anti-theft device150may send a notification to, e.g., a user device, a law enforcement officer, etc. The anti-theft device150may further capture an image of the user and upload the image to a secured server using known security protocols. The cargo container140may further include a battery (not shown) to power the subsystems150, the lock205, and the access panel210.

FIG. 6illustrates an example route215that the cargo container140travels. The server130may determine the route215from the location of the cargo container140to a pickup location220and to a delivery location225. The pickup location220is the location of a cargo sender that will load the cargo160into the cargo container140. The delivery location225is the location of a cargo recipient that will receive the cargo160from the cargo container140. The route215may be divided into a pickup route215aand a delivery route215b.The pickup route215astarts at the initial location of the cargo container140and ends at the pickup location220. The delivery route215bstarts at the pickup location220and ends at the delivery location225.

As described above, one or more carriers101may travel one or more predetermined carrier routes230. The carrier routes230may include a plurality of carrier stops235. The carrier101may collect passengers at the carrier stops235. The carrier routes230may follow the route215, allowing the cargo container140to attach to one of the carriers101to move along the route215. The server130may determine a first carrier stop235athat is closest to the cargo container140and a second carrier stop235bthat is closest to one of the pickup location220and the delivery location225. That is, the second carrier stop235bis where the carrier route230leaves the route215. The cargo container140may attach to one of the carriers101at the first carrier stop235aand detach from the carrier101at the second carrier stop235b.Thus, the cargo container140may move along the route215while reducing energy consumption, and the carrier101can transport, passengers and the cargo container140. The cargo container140may attach to more than one carrier101along the route215.

For example, the server130may determine the pickup route215a,including the first and second carrier stops235a,235b.The server130may send the pickup route215ato the container computing device145. The container computing device145may actuate the securing apparatuses180to attach to the carrier101at the first carrier stop235a.The carrier101then moves the cargo container140along the carrier route230until reaching the second carrier stop235b.The server130can identify more than one carrier route230between the location of the cargo container140and the pickup location220and identify a respective carrier101for each carrier route230. The server130can identify a respective attachment location and detachment location for each carrier route. The attachment location indicates where the container140attaches to the carrier101on the carrier route230, e.g., the first carrier stop235a.The detachment location indicates where the cargo container140detaches from the carrier101on the carrier route230, e.g., the second carrier stop235b.The server130can instruct the container computing device145to control the container propulsion150to move the cargo container140from one of the detachment locations to one of the attachment locations to attach to another carrier101. The container computing device145may actuate the securing apparatus180to detach from the carrier101and actuate container subsystems150to move to the pickup location220. At the pickup location220, the cargo sender places the cargo160in the chamber200and secures the lock205.

The server130may then determine the delivery route215b,including a third carrier stop235cand a fourth carrier stop235d,and send the delivery route215bto the container computing device145. The container computing device145may actuate the securing apparatuses180to attach to another carrier101at the third carrier stop235c.The carrier101then moves along the carrier route230until reaching the fourth carrier stop235d,where the container computing device145may actuate the securing apparatus180to detach from the carrier101. The container computing device145may actuate container subsystems150to move the cargo container140to the delivery location225. At the delivery location225, the cargo recipient may input a code sent by the server to the cargo recipient and to the container computing device145. If the code input by the cargo recipient matches the code sent by the server130, then the container computing device145may disengage the lock205and allow the cargo recipient to open the door195and collect the cargo from the chamber200. If the code input by the cargo recipient differs from the code sent by the server130, the container computing device145may actuate one or more anti-theft devices150.

FIG. 7illustrates an example process700for picking up and delivering items of cargo160. The process700begins in a block705, where the server130receives a request for transportation of cargo160. As described above, the request includes the cargo160to be delivered, including a cargo size, a pickup location220, and a delivery location225. The request may further include a preferred time for the cargo container140to arrive at the pickup location220and/or the delivery location225.

Next, in a block710, the server130locates a cargo container140closest to the pickup location220that is sized to receive the cargo. The server130may compare location data115of a plurality of cargo containers140to the pickup location220and determine that the location data115of one of the cargo containers140is closest to the pickup location220.

Next, in a block715, the server130determines a route215from the location of the cargo container140to the delivery location225and assigns a code identifying the cargo recipient. The route215may include a pickup route215afrom the location of the cargo container140to the pickup location220and a delivery route215bfrom the pickup location220to the delivery location225. Alternatively, the server130can determine the pickup route215aupon identifying the cargo container140and determine the delivery route215bwhen the cargo container140reaches the pickup location220. The server130can identify locations along the route215where the container140can attach to a carrier101, e.g., carrier stops235. The server130can assign a code and send the code to a cargo recipient and to the container computing device145. The cargo recipient can input the code with the access panel210to unlock the lock205and receive the cargo160.

Next, in a block720, the server130instructs the cargo container140to actuate cargo container components150to move to the pickup location220to receive the cargo160. Upon arriving at the pickup location220, the cargo sender places the package in the chamber200and actuates the lock205. As described below and shown inFIG. 8, the cargo container140may attach to one or more carriers101to move along the pickup route215ato the pickup location220

Next, in a block725, the server130instructs the cargo container140to move to the delivery location225to deliver the cargo160. As described below, the cargo container140may attach to one or more carriers101to move along the delivery route215bfrom the pickup location220to the delivery location225.

Next, in a block730, the cargo container140receives an input from the access panel210from the cargo recipient to unlock the cargo container140and deliver the cargo160. As described above, the input can be an alphanumeric code assigned by the server130and previously sent to the container computing device145and to the cargo recipient.

Next, in a block735, the container computing device145determines whether the input code matches the assigned code received from the server130, as described above. If the input code from the cargo recipient matches the code assigned by the server130, the process700continues in a block745. Otherwise, the process700continues in a block740. The container computing device145may allow the cargo recipient to submit more than one input code before proceeding to the block740to allow the cargo recipient to correct a mistaken input code.

In the block740, the container computing device145actuates the anti-theft device150, as described above, and the process700ends. For example, the container computing device145may actuate a siren, send a notification to the cargo sender, etc.

In the block745, the container computing device145releases the lock205, and the process700ends. Releasing the lock205allows the cargo recipient to open the door195and collect the cargo160, e.g., the package.

FIG. 8illustrates a process800for moving the cargo container140along the route215. Alternatively, the process800may be used to move the cargo container140along one of the pickup route215aand the delivery route215b.The process800starts in a block805, where the container computing device145receives the route215from the server130, including the pickup location220, the delivery location225, and the carrier stops235where the cargo container140can attach to one of the carriers101.

Next, in a block810, the container computing device145identifies the next location in the route215to which the cargo container140must travel. The location may be, e.g., the pickup location220. the delivery location225, etc. For example, if the cargo container110is at the pickup location220, the container computing device145may determine that the next location is the delivery location225. In another example, the server130can identify a carrier stop235between the initial location of the cargo container140and the pickup location220, At the carrier stop235identified by the server130, the cargo container140detaches from a first carrier101and attaches to a second carrier101. The container computing device145can identify the carrier stop235identified by the server130as the next location. That is, the next location in the route215can be defined by the container computing device145as the subsequent location on the route215that requires at most one carrier101to reach.

Next, in a block815, the container computing device145determines whether the cargo container140will require one of the carriers101to reach the next location. For example, if one of the carrier routes230follows the route215between the current location of the cargo container140and the next location, the container computing device145may determine that one of the carriers101is required to move to the next location. Alternatively, the server130may compare the route215to the carrier routes230and instruct the container computing device145that one of the carriers101is required to move to the next location. In another example, the next location may be closer than the nearest carrier stop235, and the container computing device145can determine that one of the carriers101is not required. If the container computing device145determines that the cargo container140requires one of the carriers101to reach the next location on the route215, the process800continues in a block820. Otherwise, the process800continues in a block835.

In the block820, the container computing device145identifies the carrier101that can move the cargo container140to the next location. The container computing device145may identify the carrier101based on data115from the server130regarding the carrier routes230and schedules. That is, upon determining the carrier route230that allows the cargo container140to move toward the next location, the container computing device145may compare an estimated time of arrival of the carriers101that travel along the carrier route230to an estimated time of arrival of the cargo container140at one of the carrier stops235and identify a specific carrier101that may transport the cargo container140.

Next, in a block825, the container computing device145moves to the carrier stop235and actuates the securing apparatuses180to attach to the ports185on the side of the carrier101. As described above, the container computing device145may actuate the securing apparatuses180to move with the carrier101along the carrier route230, reducing the energy consumption of the cargo container140. For example, as shown. inFIG. 6, the cargo container140may attach to the carrier101at the first carrier stop235a.

Next, in a block830, the container computing device145releases the securing apparatuses180from the ports185upon determining that the carrier101has reached the carrier stop235where the route215of the cargo container140diverges from the carrier route230. For example, as described above and shown inFIG. 6, the cargo container140may detach from the carrier101at the second carrier stop235b.

In the block835, the container computing device145actuates the container subsystems150to move to the location. For example, the container computing device145can actuate a container propulsion, brake, etc.

Next, in a block840, the container computing device145determines whether the cargo container140has completed the route215upon arriving at the location. For example, upon reaching the pickup location220, the container computing device145may determine that the route215has not completed, i.e., the cargo container140still has to go to the delivery location225. In another example, the cargo container may complete the route215upon reaching the delivery location225. If one or more locations remain in the route215, the process800returns to the block810to identify the next location. Otherwise, the process800ends.

With regard to the media, processes, systems, methods, etc. described herein, it should be understood that, although the steps of such processes, etc. have been described as occurring according to a certain ordered sequence, such processes could be practiced with the described steps performed in an order other than the order described herein. It further should be understood that certain steps could be performed simultaneously, that other steps could be added, or that certain steps described herein could be omitted. For example, in the process800, one or more of the steps could be omitted, or the steps could be executed in a different order than shown inFIG. 8. In other words, the descriptions of systems and/or processes herein are provided for the purpose of illustrating certain embodiments, and should in no way be construed so as to limit the disclosed subject matter.