Autonomous Vehicles – Sarbajit K. Rakshit, Shilpa S. SHETTY, International Business Machines Corp

Abstract for “Vehicle positioning within a parking area”

“Vehicle positioning is achieved by gathering vehicle information about vehicles for positioning in the park area. Next, based on the recognition of a vehicle movement event (i.e. actual or expected arrival of an arriving vehicle to position in the area or (ii. actual or anticipated departure from a departing car leaving the parking lot), positioning one or more of the vehicles in accordance with the optimized layout. Positioning includes automatically controlling movement of at most one autonomous vehicle and repositioning any vehicle that is different than the departing or arriving vehicle.

Background for “Vehicle positioning within a parking area”

“Vehicles come in many different sizes and types, so their dimensions can vary from relatively small to very large. Different vehicle sizes require different sized, shaped, and dimensioned parking spaces. Parking different-sized vehicles in the same parking space can lead to inefficient parking and a large amount of parking space that is not being used. This is especially true if vehicles arrive and depart at different times, and the vehicle positioning is done by multiple unrelated operators rather than being coordinated and overseen by one entity.

“Shortcomings in the prior art have been overcome, and additional benefits are provided by the provision of computer-implemented methods that include obtaining vehicle information for a plurality, the plurality, for positioning in a park area, and vehicle information comprising vehicle dimensions and driving directions; identifying occupied parking areas and comparing them to a total parking area size to identify unutilized spaces in the area; positioning one or several vehicles according to the optimized layout; the positioning comprises automatically controlling movement of at most one autonomous vehicle and repositioning vehicle

Further, a computer program product is provided that can be read by a processor. It also contains instructions for execution. This method includes: obtaining vehicle data of a plurality, including information about vehicle dimensions and driving directions; identifying occupied parking areas and comparing them to a total parking area size to determine unutilized parking spaces; positioning one or several vehicles according to the optimized layout. The positioning will include automatically controlling movement of at most one autonomous vehicle and repositioning any vehicle that is different than the departing or arriving vehicle

“Yet another, a computer system that includes a memory is provided. The processor is in communication with the memory. The computer system can perform the following functions: obtaining vehicle data of a plurality, including position for each vehicle within the parking lot, vehicle orientation, and vehicle departure from the parking lot.

The concepts discussed herein provide additional features and benefits.

“The facilites described herein allow vehicles to be positioned, including repositioned, in a parking lot. Although examples are given herein in relation to cars and trucks, they can also be used for other motorized vehicles like buses, motorbikes, recreational vehicles (RVs), snowmobiles, boats, all-terrain vehicle, snowmobiles or any other type of motorized transportation device.

“Aspects discussed herein can be used, in certain embodiments, with autonomous cars (sometimes referred as driverless, self driving, or robotic cars), though it is not always the case that they operate in a driverless fashion. In the future autonomous vehicles could be ubiquitous, offering an opportunity to maximize parking space utilization in an autonomous car ecosystem.

“FIG. “FIG. Vehicles 1 through 7 are currently parked in parking area 104, environment 100. Parking area 104 in environment 100 currently holds vehicles labeled 1 through 7. This is due to the inefficient placement of vehicles 1 through 7. The parking area cannot accommodate an arriving vehicle 8. Unutilized parking space can be partly due to different sizes of vehicles being parked in one parking space (e.g. Although vehicles 5 and 6 may be smaller than vehicles 7, they occupy the same parking space as vehicle 7.

The aspects described herein allow for automatic parking positioning/layout. In situations where the vehicles include, or perhaps consist entirely of, autonomous vehicles, the positioning/repositioning of the autonomous vehicle(s) can be controlled in part of in whole by a controller (such as a cloud server) to automatically position the vehicle(s) without requiring human vehicle drivers to position the vehicles.”

Software installed on a cloud (a server connected with a local area network or wide area network such as the internet), may identify the parking areas occupied by vehicles. This information can be compared to the total parking space available in the parking lot to determine the unutilized parking spaces in that area. Software installed on a cloud server can assess whether an arriving vehicle?one that has already arrived?is able to park in the area. It may also reposition one or more vehicles currently parked in it. The software can also be used to assess the position of vehicles in the parking lot to determine if optimization is possible.

No matter whether a vehicle arrives or departs, it is possible to optimize the layout by repositioning in response to actual or expected vehicle movements. The cloud server software can determine whether there are any vehicles that are already parked in the parking area and should be moved to make it more suitable for the arrival vehicle.

“Repositioning vehicle(s), in the parking lot may depend on a variety of factors such as the predicted departure time and position of a vehicle parked there, the size of the arriving vehicle and any vehicle(s), the dimensions of the vehicle(s), to be repositioned and unutilized parking spaces, etc.

Software installed on the cloud server can temporarily move or direct the movement other vehicles in order to reposition the vehicle in a more efficient manner.

“FIG. 2A shows the arrival of a vehicle, which is to be parked in the area. Repositioning vehicles based upon the arrival of the vehicle, and the determination of an optimal layout are performed in accordance herewith. As in FIG. 1: Vehicle 8 refers to an arriving vehicle that is to be parked in environment 100’s parking area 104. Environment 100 also contains a remote server 110B, which is connected to and in communication via communications link 110B with network 112. Vehicle 8 is connected to network 112 via communication link 110A. Vehicle 8 may be associated with or includes a computer system that connects to network 112 via wireless communication link 110A. This could be a Wi-Fi, cellular or other wireless connection. Communications links 110A or 11B can be used to transmit data via any suitable wireless or wired communication link. Some embodiments allow vehicle 8 to connect to network 112 via proxy using a mobile device. As an example, a mobile device such as a smartphone of an occupant in vehicle 8 can be connected to network 112. This could be via a Wi-Fi or cellular connection. One or more vehicles 1-7 could also be communicating with remote servers via network 112 (or another network).

“The vehicle 8 (or any computer system associated with it, such as a smartphone belonging to an occupant) transmits vehicle information about vehicle 8 via network 112 over communications links 110A,110B. Remote server 108 may use vehicle information to optimize the parking area 104 layout. This information can include, for example, vehicle dimensions (e.g. As an example, the dimensions of the vehicle, footprint and shape, along with driving direction. The driving direction determines which direction is for forward and reverse movement. The server can determine the forward and reverse driving directions for the vehicle by using the driving direction information. This information can be used to properly orient the vehicle since vehicles are usually driven in the forward direction. This information can be useful for queuing vehicles for departure. It will allow the vehicle to egress in the forward driving directions and not the reverse. The engine’s position relative to the front and rear wheels can be used as an indicator for driving direction.

“The remote server108 receives vehicle information for vehicle 8, including its dimensions. Based on this information, remote server108 determines whether/how parking area 104 can be repositioned to accommodate vehicle 8. This layout includes both the layout of existing vehicles in parking area 104 and the position of the arriving vehicle, assuming that it can be accommodated. FIG. FIG. Vehicle 5 and 6 should be placed so that they are in front of each other. This means that vehicle 6 will leave the parking area prior to vehicle 5. (Examples are given below). Vehicle 6 then moves forward to make room for vehicle 5. The vehicle 8 can then park in the spot occupied by FIG. 2A.”

“FIG. “FIG. 2A is in accordance to the following aspects. Autonomous vehicles can be repositioned automatically by computers. This means that the vehicle’s movement and repositioning may be controlled via one or more computers. The remote server 108 (FIG. 2A or a computer system acting for, or responding to, remote server108 commands can control an autonomous vehicle. This includes repositioning the vehicle, parking it (if it is an arriving vehicle) and pulling the vehicle from the parking area 104 (if it is a departing vehicle). An operator may drive and position vehicles that aren’t automatically controlled in accordance to the optimized layout as specified by the remote server.

FIG. 2B: Vehicle 5 was moved to vehicle 6’s former position, so that it can sit behind vehicle 6. It is now in its new location in front of vehicle 5. In the meantime, vehicle 8 arrived in its former position. A vehicle’s position includes its orientation as well as the area within which it is parked. Based on vehicle 8’s arrival, the layout can determine both the location of the vehicle and its orientation. This will also dictate the position that vehicle 8 should occupy in the parking lot. FIG. FIG.

“FIGS. 3A and 3B show an additional scenario with additional vehicle movement events. FIG. FIG. 3A shows a departure of a vehicle from the parking lot, along with the arrival of two vehicles. The repositioning of the vehicles is based on arrivals and departures, as well as determining an optimal layout. Vehicle 6 will leave the parking lot 104 and vehicles 9-10 will be placed in the parking lot. The remote server 108, or another computer system, receives information about vehicle 6 and information about vehicle 9 and 10. Also information about vehicle 6 is received. The system then calculates an optimized layout to account for both vehicle 6’s departure and arrival at vehicles 9 or 10. As shown in FIGS. 3A and 3B show how several vehicles can be repositioned to make space for vehicle 9, and vehicle 10. Vehicles 2A and 3 will be reoriented, including a rotation of 90 degrees. This will allow vehicle 4 to move closer to vehicles 2A and 3. This frees up space in vehicle 4 for vehicle 9. Vehicle 6 leaves, and vehicle 5 is moved and repositioned in front of vehicles 4 & 9, making room for vehicle 10. This layout can be adjusted to account for predicted or expected departure times. If vehicle 5 is expected to depart before vehicles 4, 9, and 9, then vehicle 5 could be placed in front of vehicle 9.

“FIG. 3B shows the positioning of vehicles in the parking area as a result of vehicle arrivals and departures. In accordance with the following aspects, 3A. Vehicles 9 & 10 are positioned in their respective spaces so that they can pull out of the parking lot 104 when it is clear. Vehicle 5 is parked in front of vehicles 4 & 9 and is free to exit.

According to the above, the remote server will determine the best parking layout. This dynamic determination can be made and all vehicles within the parking area can participate (not only those arriving or departing). If necessary, any vehicle within the parking area could be repositioned if needed. You can optimize the layout to maximize the amount of vehicles that can fit in the area, and/or reduce the space used. The system allows for the adjustment of the relative positions and orientations of different vehicles when there is a vehicle movement event. This will allow the system to accommodate as many vehicles as possible in the parking area. Parking layout (i.e. The parking layout, i.e., the relative locations, relative directions and relative orientations can all be dynamically reallocated according to vehicle movement events. This corresponds to the updated parking demand. Examples of vehicle movement events are arrival, predicted arrival and departure.

A holistic approach is preferred to focusing only on the location of an arriving vehicle, and ignoring the movement required by the vehicles proximate. The optimized layout is determined in accordance with the following aspects. This means that all vehicles, not just those closest to the destination of an arriving vehicle, may be considered for possible repositioning in order for maximum parking space. FIGS. FIGS. 3A and 3B are above the areas where vehicles 9 and 10 arrive and require space. Vehicle 6 is leaving the area. Optimized layout places vehicle 3 in front and behind vehicle 2. This is based on the predicted departure time from the parking lot. It also allows vehicle 2 to leave the area with minimal disruption. For example, vehicle 1 can move forward while vehicle 2 can leave without disturbing any other vehicles. In this example, vehicle 3 is not proximate to vehicles 2 and 3.

“Another thing is that the parking location for vehicle 5 has changed. This is not in close proximity to vehicles 9 and 10. Based on the re-positioning/orientation of vehicles 2, 3, 4 and 5, space for vehicles 9 and 10 has been created. This optimization goes beyond the vehicle’s front, back, or side.

“Repositioning vehicles, even temporarily, to allow a blocked vehicle egress is time-consuming. Optimizing the layout can reduce the overall disturbance to the parking area by positioning vehicles in the right spots. To optimize parking space usage and arrival/departure timing, predictive analysis can be done. The monitoring of individual actions to arrive at the parking lot and then occupy the vehicle leaving the area can help predict the departure time of a vehicle. These actions can include the behavior of an individual as well as information about the individual such as their proximity to the parking lot. You can track movement and see where they are in relation to certain processes (such as shopping at the grocery store) or examine historical behavior, such as the tendency to leave work at 5:05 PM each day to arrive at the parking lot at 5:15 pm.

The monitoring can be location-based. For example, it may identify that an individual is standing near a billing counter. The system can predict the time the user will arrive at the parking area after they have paid the bill. Alternately, the system can also detect any activity or behavior of the user and determine the time it will take to get to the parking lot. The system can detect if a payment has been made and determine the user’s arrival time at the parking lot. Another example of location-based predictions is when the system senses that the user is approaching a parking area via proximity, GPS or other sensors. The use of historical information about an individual is another example of behavior-based predictions. The system can predict how long the user spends at a particular task, such as watching a movie or eating out. It can also predict when they will arrive at the parking lot to park their car and leave.

“Predicted departure times can be used to prepare the vehicle (potentially reposition it) for egress in an order that minimizes disruption to other vehicles. It also helps when positioning the vehicle to arrive or to meet another vehicle. FIG. 3A and 3B show that vehicle 5 is more prepared to egress than vehicles 4, 9 and 10, based on the fact that vehicle 5 will depart before vehicles 9 and 4.

The optimization could also be based on anticipated arrival times. Predictions of arrival times can be made based on specific requests or predicted arrival times. The system can either request a spot in advance or predict when the vehicle will arrive. The implicit/assumed requests may also be used to predict arrival times. Implicit requests can be based on past behavior. For example, the tendency for the same vehicle arriving at the same time and on the same schedule over a period of time (e.g. Monday through Friday, 8:35 am It may also be necessary to identify the dimensions of the vehicle in order to optimize.

“Vehicles that are expected to leave earlier than others may be placed in front of or made more accessible by the redesign of the parking layout. Alternately, the parking location and direction of vehicles in the lot can be changed dynamically based on vehicle movements and available space. You can arrange the new vehicle’s parking location based on the predicted departure/arrival time of the person to occupy the departing vehicle. This prediction can be made based on historical input and real-time data. The current actions of the user, such as paying a bill, and the predicted arrival time for a vehicle. A user can request a parking spot before they arrive at the parking lot. The system will then trigger a vehicle movement event that causes re-optimization based on the updated information. Based on future vehicle movements (e.g. ”

A cloud server can dynamically calculate the best parking layout for all vehicles within the parking area based on vehicle dimensions, driving directions, and available space. This ensures that there is enough room for as many vehicles as possible. You can change the relative positions and directions of different vehicles based on changing scenarios. This allows the system to accommodate as many vehicles as possible.

“An example of an implementation of the aspects described herein is now available, which involves autonomous vehicles. Vehicle parameters, such as dimensions, height, driving direction and engine position, are initially stored by the vehicle. Each autonomous vehicle maintains vehicle metadata which is shared with a remote server (cloud). The cloud server determines the area of the parking lot and then identifies the vehicles parked in it. It will also identify any unutilized spaces in the parking lot.

Each vehicle can be identified by its owner/operator. The cloud server, or another component associated with it, can track the location of that individual to predict when they will depart. It can, for example, determine the time an individual is coming to the vehicle and use historical pattern analysis to predict when they will be arriving. The cloud server is able to predict when an individual will request the autonomous car for departure.

“When an autonomous vehicle arrives and requests a parking spot in the parking lot, it can communicate to the cloud server to share information about the vehicle, such as its dimensions (includes height, width, length), driving directions, and any other relevant or requested information. The cloud server can collect data to determine how vehicles are positioned in the parking lot and which vehicle is most efficient. The cloud server can run different combinations and permutations to position different vehicles in the best possible way. This might include repositioning vehicles that are not blocking or occupying space for the arriving vehicle. The optimization function, or one or more of the definable and modifiable parameters or constraints that can be used to optimize the layout, is an example. Different situations may require different optimizations and/or weightings of different factors. For example, maximising the number of vehicles that can fit in the parking space may be more important than minimizing the time it takes to clear a path for exit when leaving.

The cloud server can also determine how to minimize disturbance (temporary positioning) of vehicles to park arriving vehicles. It can also make predictions about when vehicles will leave the parking area. These factors can be taken into account by the cloud server when optimizing the layout.

Software can determine the optimal layout and identify any vehicles that need to be repositioned. The cloud server allows the autonomous vehicle(s), to be controlled so they are in their correct spots within the parking area. The cloud server can also communicate the location to the arriving vehicle so that it can direct the vehicle to the right spot in the parking lot.

“Accordingly, FIG. FIG. 4 shows an example of vehicle positioning in a designated parking area. It is in keeping with the aspects discussed herein. The process shown in FIG. The process of FIG. 4 can be performed by one or several computer systems, such as remote servers in communication with one of a plurality vehicle. The process starts by gathering vehicle information (402), the plurality vehicles to be positioned in a parking space, and vehicle information including vehicle dimensions and driving directions. To identify parking spaces that are not being used, the process continues by identifying parking areas and comparing them to the total parking area (404).

“A vehicle movement event occurs at some point (406). A vehicle movement event can be described as: (i) the actual or expected arrival of an arriving vehicle to park in the area; or (ii) the departure or actual arrival of a departing vehicle from the area. The process is based on the recognition of the vehicle movement event and determines the optimal layout for each vehicle (408). The optimized layout will include the vehicle position, including the vehicle orientation and position within the parking area.

“The process involves positioning one or more vehicles from the plurality to conform to the optimized layout (410). In the case of an autonomous vehicle, the positioning can include sending commands or other communications that cause the vehicle’s movement to follow a specified pattern. Non-autonomous vehicles can be positioned by providing directions to the operator or component of the vehicle to indicate where/how to place the vehicle in the parking lot. Positioning can also involve repositioning of a vehicle from the parking area that is different than the arriving or departing vehicle.

The optimized layout must take into account anticipated arrival vehicles, associated arrival times, as well as anticipated departure vehicles and associated departure times. The optimized layout may include new positions for any of the vehicles that are positioned (see FIG. 410). 4) to reduce the need for repositioning after the arrival of the anticipated arriving vehicle and the departure of the anticipated departing vehicle.

“The optimization of the layout may consider the possibility of repositioning all vehicles within the parking area. Not just those that need to move to vacate the space where an arriving vehicle is to park.”

“The optimization of the layout can be determined by changing the orientation of at most some or all of the vehicles within the parking area. For instance, the reorientation shown in FIGS. 2 and 3 illustrates this. 3A, 3B. 3A, 3B. In some cases, the repositioning at least one vehicle involves changing its orientation or location.

“The optimization of a parking area can be done by maximizing the amount of parking space that is left after multiple vehicles have been positioned in a way that conforms to the optimized layout.”

“A vehicle movement event could include the anticipated departure of a departing car (i.e. A vehicle that is expected to depart in the near future. This scenario can also include anticipating the departure time of the departing car. It might involve monitoring the actions of an individual who arrives at the parking lot and occupies the departing car. The vehicle movement event is triggered at a time before the expected departure time to determine the optimal layout. The optimization process can also include determining the new location for the departing car that minimizes impact on the vehicles in the parking lot. The new position of the departing vehicle could be one that allows for easier egress and less disruption to nearby vehicles. This involves repositioning one or more vehicles in the parking area before the expected departure time.

A vehicle movement event could include the anticipated arrival of an arriving car. This scenario can also include an anticipated arrival of an arriving vehicle. It might be triggered by an express or assumed request for parking in the area for the arriving car. The optimal layout may also include determining the position that the arriving vehicle will be parked in the area.

The process can take into account the vehicle dimensions and driving directions of the arriving car. An optimized layout is then determined based on these factors. In this case, the arriving vehicle’s orientation when it occupies the designated parking space is determined based on its driving direction. The orientation may allow the vehicle to be able to egress the parking area from forward without having to reverse it.

The optimal layout can be determined by the anticipated departure times of the first and second vehicles. An optimized layout positions the anticipated earlier departing vehicle from the first or second vehicles in a more accessible position to exit/egress the parking area than the anticipated later departing vehicle from the second or first vehicles. The position of one or more vehicles places the anticipated earlier departing car in a position that is easier to access.

“In some cases, the plurality is made up of autonomous vehicles. The movement of these vehicles can be controlled by one or more computers, such as the computer system in FIG. 4 for example, a remote system.

“The procedures described herein can be performed either singly or together by one or more computers systems, such the computer system(s), described below with reference FIG. 5. This computer system could be or include remote cloud servers in some embodiments. A computer system that performs aspects described herein could also be a mobile device such as a smartphone or embedded in a vehicle such as an autonomous car.

“FIG. “FIG.5” 5 illustrates one type of computer system that incorporates or uses the aspects described herein. A computer system can also be called a processing device/system, computing device/system, computer or just a computer. Computer system 500 can be built on any one of the many system architectures, such as those offered at International Business Machines Corporation (Armonk (N.Y.), USA) and Intel Corporation (Santa Clara (Calif., USA), for example.

“Computer system 500 can store and/or execute program code. It includes at least one processor 502 that is directly or indirectly coupled to memory 504 via, e.g. a system bus520. The processor(s), 502, obtain instructions from memory 504 for execution. Memory 504 can include local memory used during execution of program code, bulk storage and cache memories that provide temporary storage to at least some program codes in order reduce the number times code must be retrieved via bulk storage during code execution. Memory 504 may include a hard drive, random access memory (RAM), an erasable programmeable read-only (EPROM) or Flash memory, an optical fiber, a portable compact disk read-only (CDROM), an optical storage or magnetic device, and any combination thereof. Memory 504 can include an operating system 505 as well as one or more computer program 506, which may be used to perform the aspects described in this article.

“Input/Output devices (I/O), devices 512, 514 (includes but not limited displays, microphones and speakers, accelerometers. magnetometers. light sensors. proximity sensors. GPS devices, cameras., etc.) You can either connect directly to the system or via I/O controllers 610.

“Computer System 500 can be connected to storage 516 (e.g. a non-volatile area such as magnetic disk drives or optical disk drives, etc. One or more databases. Storage 516 can contain an internal storage device, or attached or network-accessible storage. The storage 516 computer programs can be loaded into memory 504 by a processor 502 according to the art.

“The computer system 500 could include fewer components that are illustrated, additional components, or a combination of the components illustrated with additional components. Computer system 500 can include any computing device that is known to the art. This includes a mainframe or server, personal computer workstation, laptop, desktop, mobile computer, tablet and telephony device. It also may include a storage controller, virtualization device, storage device, storage controller and network appliance (such an edge appliance).

Referring to FIG. “Referring to FIG.

The present invention can be described as a system, method and/or computer program product. It may also include any technical detail level of integration. A computer-readable storage medium or media may be included in the computer program product. It may contain computer-readable program instructions that allow a processor to execute aspects of this invention.

A computer-readable storage medium is a tangible device that stores instructions and can be used by an instruction execution machine. A computer readable storage medium could include, but not be limited to, an electronic storage media, a magnetic storage media, an optical storage material, an electromagnetic storage apparatus, a semiconductor storage system, or any combination thereof. The following are some examples of computer-readable storage media. As used herein, a computer readable storage medium is not intended to contain transitory signals such as radio waves or other freely propagating electromagnetic wave, electromagnetic waves propagating though a waveguide, or any other transmission media (e.g. light pulses passing through fiber-optic cables), or electrical signals transmitted via a wire.

The computer-readable program instructions described in this document can be downloaded to the respective computing/processing device from a computer-readable storage medium, to an external computer, or via an external storage device via a network. This could include the Internet, a wide area network, a local network, and/or wireless networks. The network can include copper transmission cables, optical transmission fibres, wireless transmission and routers, firewalls switches, gateway computers, edge servers, and/or switches. Each computing/processing devices have a network adapter card, or network interface. This receives computer-readable program instructions from the network. It then stores the instructions in a computer-readable storage medium.

“Computer readable program instructions for carrying out operations of the present invention may be assembler instructions, instruction-set-architecture (ISA) instructions, machine instructions, machine dependent instructions, microcode, firmware instructions, state-setting data, configuration data for integrated circuitry, or either source code or object code written in any combination of one or more programming languages, including an object oriented programming language such as Smalltalk, C++, or the like, and procedural programming languages, such as the ?C? programming language or similar programming languages. Computer-readable program instructions can be executed entirely on the user?s computer, partially on their computer as a standalone software package, partly or completely on the remote computer. The remote computer can be connected to the user’s machine through any network, such as a local network (LAN), a wide-area network (WAN), or to an external computer via the Internet (Internet Service Provider). Some embodiments allow electronic circuitry to execute computer-readable program instructions using state information from the computer-readable program instructions. This allows the user to personalize electronic circuitry to accomplish aspects of the invention.

“Aspects” of the invention are described in detail with reference to block diagrams and/or flowcharts of methods, apparatuses and computer program products as per embodiments. Each block in the flowchart illustration and/or block schematics can be executed by computer-readable program instructions.

These computer-readable program instructions can be given to a processor of general purpose computers, special purpose computers, or any other programmable device processing apparatus to create a machine. The instructions, which execute via a processor of the computer and other programmable apparatus, create means to implement the functions/acts described in the flowchart block/blocks. These computer-readable program instructions can also be stored on a computer-readable storage medium that allows a computer, a programmeable data processing device, or other devices to perform a specific function. The instructions contained in the computer readable medium include instructions that implement certain aspects of the function/act described in the flowchart block/blocks.

“The computer-readable program instructions can also be loaded onto a computer or another programmable data processing device or device to cause a series or operational steps to be performed by the computer or other programmable apparatus to produce a computer implemented procedure. The instructions that execute on the device, computer, or other programmable device implement the functions/acts described in the block diagram and/or flowchart block.

“The Figures show the architecture, functionality, operation, and design of various implementations of methods, systems, and computer programs according to different embodiments of the invention. Each block in the block diagrams or flowcharts could be a block, segment, or section of instructions that contains one or more executable instructions to implement the specified logical function. Alternate implementations may allow the functions to be executed in a different order than the one shown in Figures. Depending on the functionality, blocks can sometimes be executed in reverse order. For example, two blocks could be executed simultaneously. You will also notice that every block in the flowchart illustration and/or block diagrams can be executed by special purpose hardware-based system that performs the specified functions, acts, or executes combinations of special purpose computer instructions.

“The terminology used in this document is intended to describe particular embodiments and is not meant to limit. The singular forms?a,?an, and?the? are used herein. The singular forms?a?,?an???? and?the?? are intended to include the plural forms. Unless the context indicates otherwise, the plural forms of?the? and?the? are to be used together. Further, the terms “comprises” and/or “comprising?” are intended to include plural forms unless otherwise stated. When used in this specification, the terms?comprises? and/or ‘comprising? indicate the presence of specified features, integers and steps, operations, components and/or elements. However, they do not preclude the addition or presence of other features, integers and steps, elements, components or groups thereof.

“The claims below include the corresponding structures, materials and acts of all means or function elements. If any, they are meant to cover any structure, material or act that performs the function with other elements as claimed. Although the description of one or more embodiments is intended for illustration and description purposes, it is not intended as exhaustive or to limit the disclosure. Regular skill in the art will recognize many modifications and variations. This embodiment was selected and described to explain the various aspects and their practical application. It also allows others with ordinary skill in art to comprehend the various embodiments with different modifications that are appropriate for the specific use.

Summary for “Vehicle positioning within a parking area”

“Vehicles come in many different sizes and types, so their dimensions can vary from relatively small to very large. Different vehicle sizes require different sized, shaped, and dimensioned parking spaces. Parking different-sized vehicles in the same parking space can lead to inefficient parking and a large amount of parking space that is not being used. This is especially true if vehicles arrive and depart at different times, and the vehicle positioning is done by multiple unrelated operators rather than being coordinated and overseen by one entity.

“Shortcomings in the prior art have been overcome, and additional benefits are provided by the provision of computer-implemented methods that include obtaining vehicle information for a plurality, the plurality, for positioning in a park area, and vehicle information comprising vehicle dimensions and driving directions; identifying occupied parking areas and comparing them to a total parking area size to identify unutilized spaces in the area; positioning one or several vehicles according to the optimized layout; the positioning comprises automatically controlling movement of at most one autonomous vehicle and repositioning vehicle

Further, a computer program product is provided that can be read by a processor. It also contains instructions for execution. This method includes: obtaining vehicle data of a plurality, including information about vehicle dimensions and driving directions; identifying occupied parking areas and comparing them to a total parking area size to determine unutilized parking spaces; positioning one or several vehicles according to the optimized layout. The positioning will include automatically controlling movement of at most one autonomous vehicle and repositioning any vehicle that is different than the departing or arriving vehicle

“Yet another, a computer system that includes a memory is provided. The processor is in communication with the memory. The computer system can perform the following functions: obtaining vehicle data of a plurality, including position for each vehicle within the parking lot, vehicle orientation, and vehicle departure from the parking lot.

The concepts discussed herein provide additional features and benefits.

“The facilites described herein allow vehicles to be positioned, including repositioned, in a parking lot. Although examples are given herein in relation to cars and trucks, they can also be used for other motorized vehicles like buses, motorbikes, recreational vehicles (RVs), snowmobiles, boats, all-terrain vehicle, snowmobiles or any other type of motorized transportation device.

“Aspects discussed herein can be used, in certain embodiments, with autonomous cars (sometimes referred as driverless, self driving, or robotic cars), though it is not always the case that they operate in a driverless fashion. In the future autonomous vehicles could be ubiquitous, offering an opportunity to maximize parking space utilization in an autonomous car ecosystem.

“FIG. “FIG. Vehicles 1 through 7 are currently parked in parking area 104, environment 100. Parking area 104 in environment 100 currently holds vehicles labeled 1 through 7. This is due to the inefficient placement of vehicles 1 through 7. The parking area cannot accommodate an arriving vehicle 8. Unutilized parking space can be partly due to different sizes of vehicles being parked in one parking space (e.g. Although vehicles 5 and 6 may be smaller than vehicles 7, they occupy the same parking space as vehicle 7.

The aspects described herein allow for automatic parking positioning/layout. In situations where the vehicles include, or perhaps consist entirely of, autonomous vehicles, the positioning/repositioning of the autonomous vehicle(s) can be controlled in part of in whole by a controller (such as a cloud server) to automatically position the vehicle(s) without requiring human vehicle drivers to position the vehicles.”

Software installed on a cloud (a server connected with a local area network or wide area network such as the internet), may identify the parking areas occupied by vehicles. This information can be compared to the total parking space available in the parking lot to determine the unutilized parking spaces in that area. Software installed on a cloud server can assess whether an arriving vehicle?one that has already arrived?is able to park in the area. It may also reposition one or more vehicles currently parked in it. The software can also be used to assess the position of vehicles in the parking lot to determine if optimization is possible.

No matter whether a vehicle arrives or departs, it is possible to optimize the layout by repositioning in response to actual or expected vehicle movements. The cloud server software can determine whether there are any vehicles that are already parked in the parking area and should be moved to make it more suitable for the arrival vehicle.

“Repositioning vehicle(s), in the parking lot may depend on a variety of factors such as the predicted departure time and position of a vehicle parked there, the size of the arriving vehicle and any vehicle(s), the dimensions of the vehicle(s), to be repositioned and unutilized parking spaces, etc.

Software installed on the cloud server can temporarily move or direct the movement other vehicles in order to reposition the vehicle in a more efficient manner.

“FIG. 2A shows the arrival of a vehicle, which is to be parked in the area. Repositioning vehicles based upon the arrival of the vehicle, and the determination of an optimal layout are performed in accordance herewith. As in FIG. 1: Vehicle 8 refers to an arriving vehicle that is to be parked in environment 100’s parking area 104. Environment 100 also contains a remote server 110B, which is connected to and in communication via communications link 110B with network 112. Vehicle 8 is connected to network 112 via communication link 110A. Vehicle 8 may be associated with or includes a computer system that connects to network 112 via wireless communication link 110A. This could be a Wi-Fi, cellular or other wireless connection. Communications links 110A or 11B can be used to transmit data via any suitable wireless or wired communication link. Some embodiments allow vehicle 8 to connect to network 112 via proxy using a mobile device. As an example, a mobile device such as a smartphone of an occupant in vehicle 8 can be connected to network 112. This could be via a Wi-Fi or cellular connection. One or more vehicles 1-7 could also be communicating with remote servers via network 112 (or another network).

“The vehicle 8 (or any computer system associated with it, such as a smartphone belonging to an occupant) transmits vehicle information about vehicle 8 via network 112 over communications links 110A,110B. Remote server 108 may use vehicle information to optimize the parking area 104 layout. This information can include, for example, vehicle dimensions (e.g. As an example, the dimensions of the vehicle, footprint and shape, along with driving direction. The driving direction determines which direction is for forward and reverse movement. The server can determine the forward and reverse driving directions for the vehicle by using the driving direction information. This information can be used to properly orient the vehicle since vehicles are usually driven in the forward direction. This information can be useful for queuing vehicles for departure. It will allow the vehicle to egress in the forward driving directions and not the reverse. The engine’s position relative to the front and rear wheels can be used as an indicator for driving direction.

“The remote server108 receives vehicle information for vehicle 8, including its dimensions. Based on this information, remote server108 determines whether/how parking area 104 can be repositioned to accommodate vehicle 8. This layout includes both the layout of existing vehicles in parking area 104 and the position of the arriving vehicle, assuming that it can be accommodated. FIG. FIG. Vehicle 5 and 6 should be placed so that they are in front of each other. This means that vehicle 6 will leave the parking area prior to vehicle 5. (Examples are given below). Vehicle 6 then moves forward to make room for vehicle 5. The vehicle 8 can then park in the spot occupied by FIG. 2A.”

“FIG. “FIG. 2A is in accordance to the following aspects. Autonomous vehicles can be repositioned automatically by computers. This means that the vehicle’s movement and repositioning may be controlled via one or more computers. The remote server 108 (FIG. 2A or a computer system acting for, or responding to, remote server108 commands can control an autonomous vehicle. This includes repositioning the vehicle, parking it (if it is an arriving vehicle) and pulling the vehicle from the parking area 104 (if it is a departing vehicle). An operator may drive and position vehicles that aren’t automatically controlled in accordance to the optimized layout as specified by the remote server.

FIG. 2B: Vehicle 5 was moved to vehicle 6’s former position, so that it can sit behind vehicle 6. It is now in its new location in front of vehicle 5. In the meantime, vehicle 8 arrived in its former position. A vehicle’s position includes its orientation as well as the area within which it is parked. Based on vehicle 8’s arrival, the layout can determine both the location of the vehicle and its orientation. This will also dictate the position that vehicle 8 should occupy in the parking lot. FIG. FIG.

“FIGS. 3A and 3B show an additional scenario with additional vehicle movement events. FIG. FIG. 3A shows a departure of a vehicle from the parking lot, along with the arrival of two vehicles. The repositioning of the vehicles is based on arrivals and departures, as well as determining an optimal layout. Vehicle 6 will leave the parking lot 104 and vehicles 9-10 will be placed in the parking lot. The remote server 108, or another computer system, receives information about vehicle 6 and information about vehicle 9 and 10. Also information about vehicle 6 is received. The system then calculates an optimized layout to account for both vehicle 6’s departure and arrival at vehicles 9 or 10. As shown in FIGS. 3A and 3B show how several vehicles can be repositioned to make space for vehicle 9, and vehicle 10. Vehicles 2A and 3 will be reoriented, including a rotation of 90 degrees. This will allow vehicle 4 to move closer to vehicles 2A and 3. This frees up space in vehicle 4 for vehicle 9. Vehicle 6 leaves, and vehicle 5 is moved and repositioned in front of vehicles 4 & 9, making room for vehicle 10. This layout can be adjusted to account for predicted or expected departure times. If vehicle 5 is expected to depart before vehicles 4, 9, and 9, then vehicle 5 could be placed in front of vehicle 9.

“FIG. 3B shows the positioning of vehicles in the parking area as a result of vehicle arrivals and departures. In accordance with the following aspects, 3A. Vehicles 9 & 10 are positioned in their respective spaces so that they can pull out of the parking lot 104 when it is clear. Vehicle 5 is parked in front of vehicles 4 & 9 and is free to exit.

According to the above, the remote server will determine the best parking layout. This dynamic determination can be made and all vehicles within the parking area can participate (not only those arriving or departing). If necessary, any vehicle within the parking area could be repositioned if needed. You can optimize the layout to maximize the amount of vehicles that can fit in the area, and/or reduce the space used. The system allows for the adjustment of the relative positions and orientations of different vehicles when there is a vehicle movement event. This will allow the system to accommodate as many vehicles as possible in the parking area. Parking layout (i.e. The parking layout, i.e., the relative locations, relative directions and relative orientations can all be dynamically reallocated according to vehicle movement events. This corresponds to the updated parking demand. Examples of vehicle movement events are arrival, predicted arrival and departure.

A holistic approach is preferred to focusing only on the location of an arriving vehicle, and ignoring the movement required by the vehicles proximate. The optimized layout is determined in accordance with the following aspects. This means that all vehicles, not just those closest to the destination of an arriving vehicle, may be considered for possible repositioning in order for maximum parking space. FIGS. FIGS. 3A and 3B are above the areas where vehicles 9 and 10 arrive and require space. Vehicle 6 is leaving the area. Optimized layout places vehicle 3 in front and behind vehicle 2. This is based on the predicted departure time from the parking lot. It also allows vehicle 2 to leave the area with minimal disruption. For example, vehicle 1 can move forward while vehicle 2 can leave without disturbing any other vehicles. In this example, vehicle 3 is not proximate to vehicles 2 and 3.

“Another thing is that the parking location for vehicle 5 has changed. This is not in close proximity to vehicles 9 and 10. Based on the re-positioning/orientation of vehicles 2, 3, 4 and 5, space for vehicles 9 and 10 has been created. This optimization goes beyond the vehicle’s front, back, or side.

“Repositioning vehicles, even temporarily, to allow a blocked vehicle egress is time-consuming. Optimizing the layout can reduce the overall disturbance to the parking area by positioning vehicles in the right spots. To optimize parking space usage and arrival/departure timing, predictive analysis can be done. The monitoring of individual actions to arrive at the parking lot and then occupy the vehicle leaving the area can help predict the departure time of a vehicle. These actions can include the behavior of an individual as well as information about the individual such as their proximity to the parking lot. You can track movement and see where they are in relation to certain processes (such as shopping at the grocery store) or examine historical behavior, such as the tendency to leave work at 5:05 PM each day to arrive at the parking lot at 5:15 pm.

The monitoring can be location-based. For example, it may identify that an individual is standing near a billing counter. The system can predict the time the user will arrive at the parking area after they have paid the bill. Alternately, the system can also detect any activity or behavior of the user and determine the time it will take to get to the parking lot. The system can detect if a payment has been made and determine the user’s arrival time at the parking lot. Another example of location-based predictions is when the system senses that the user is approaching a parking area via proximity, GPS or other sensors. The use of historical information about an individual is another example of behavior-based predictions. The system can predict how long the user spends at a particular task, such as watching a movie or eating out. It can also predict when they will arrive at the parking lot to park their car and leave.

“Predicted departure times can be used to prepare the vehicle (potentially reposition it) for egress in an order that minimizes disruption to other vehicles. It also helps when positioning the vehicle to arrive or to meet another vehicle. FIG. 3A and 3B show that vehicle 5 is more prepared to egress than vehicles 4, 9 and 10, based on the fact that vehicle 5 will depart before vehicles 9 and 4.

The optimization could also be based on anticipated arrival times. Predictions of arrival times can be made based on specific requests or predicted arrival times. The system can either request a spot in advance or predict when the vehicle will arrive. The implicit/assumed requests may also be used to predict arrival times. Implicit requests can be based on past behavior. For example, the tendency for the same vehicle arriving at the same time and on the same schedule over a period of time (e.g. Monday through Friday, 8:35 am It may also be necessary to identify the dimensions of the vehicle in order to optimize.

“Vehicles that are expected to leave earlier than others may be placed in front of or made more accessible by the redesign of the parking layout. Alternately, the parking location and direction of vehicles in the lot can be changed dynamically based on vehicle movements and available space. You can arrange the new vehicle’s parking location based on the predicted departure/arrival time of the person to occupy the departing vehicle. This prediction can be made based on historical input and real-time data. The current actions of the user, such as paying a bill, and the predicted arrival time for a vehicle. A user can request a parking spot before they arrive at the parking lot. The system will then trigger a vehicle movement event that causes re-optimization based on the updated information. Based on future vehicle movements (e.g. ”

A cloud server can dynamically calculate the best parking layout for all vehicles within the parking area based on vehicle dimensions, driving directions, and available space. This ensures that there is enough room for as many vehicles as possible. You can change the relative positions and directions of different vehicles based on changing scenarios. This allows the system to accommodate as many vehicles as possible.

“An example of an implementation of the aspects described herein is now available, which involves autonomous vehicles. Vehicle parameters, such as dimensions, height, driving direction and engine position, are initially stored by the vehicle. Each autonomous vehicle maintains vehicle metadata which is shared with a remote server (cloud). The cloud server determines the area of the parking lot and then identifies the vehicles parked in it. It will also identify any unutilized spaces in the parking lot.

Each vehicle can be identified by its owner/operator. The cloud server, or another component associated with it, can track the location of that individual to predict when they will depart. It can, for example, determine the time an individual is coming to the vehicle and use historical pattern analysis to predict when they will be arriving. The cloud server is able to predict when an individual will request the autonomous car for departure.

“When an autonomous vehicle arrives and requests a parking spot in the parking lot, it can communicate to the cloud server to share information about the vehicle, such as its dimensions (includes height, width, length), driving directions, and any other relevant or requested information. The cloud server can collect data to determine how vehicles are positioned in the parking lot and which vehicle is most efficient. The cloud server can run different combinations and permutations to position different vehicles in the best possible way. This might include repositioning vehicles that are not blocking or occupying space for the arriving vehicle. The optimization function, or one or more of the definable and modifiable parameters or constraints that can be used to optimize the layout, is an example. Different situations may require different optimizations and/or weightings of different factors. For example, maximising the number of vehicles that can fit in the parking space may be more important than minimizing the time it takes to clear a path for exit when leaving.

The cloud server can also determine how to minimize disturbance (temporary positioning) of vehicles to park arriving vehicles. It can also make predictions about when vehicles will leave the parking area. These factors can be taken into account by the cloud server when optimizing the layout.

Software can determine the optimal layout and identify any vehicles that need to be repositioned. The cloud server allows the autonomous vehicle(s), to be controlled so they are in their correct spots within the parking area. The cloud server can also communicate the location to the arriving vehicle so that it can direct the vehicle to the right spot in the parking lot.

“Accordingly, FIG. FIG. 4 shows an example of vehicle positioning in a designated parking area. It is in keeping with the aspects discussed herein. The process shown in FIG. The process of FIG. 4 can be performed by one or several computer systems, such as remote servers in communication with one of a plurality vehicle. The process starts by gathering vehicle information (402), the plurality vehicles to be positioned in a parking space, and vehicle information including vehicle dimensions and driving directions. To identify parking spaces that are not being used, the process continues by identifying parking areas and comparing them to the total parking area (404).

“A vehicle movement event occurs at some point (406). A vehicle movement event can be described as: (i) the actual or expected arrival of an arriving vehicle to park in the area; or (ii) the departure or actual arrival of a departing vehicle from the area. The process is based on the recognition of the vehicle movement event and determines the optimal layout for each vehicle (408). The optimized layout will include the vehicle position, including the vehicle orientation and position within the parking area.

“The process involves positioning one or more vehicles from the plurality to conform to the optimized layout (410). In the case of an autonomous vehicle, the positioning can include sending commands or other communications that cause the vehicle’s movement to follow a specified pattern. Non-autonomous vehicles can be positioned by providing directions to the operator or component of the vehicle to indicate where/how to place the vehicle in the parking lot. Positioning can also involve repositioning of a vehicle from the parking area that is different than the arriving or departing vehicle.

The optimized layout must take into account anticipated arrival vehicles, associated arrival times, as well as anticipated departure vehicles and associated departure times. The optimized layout may include new positions for any of the vehicles that are positioned (see FIG. 410). 4) to reduce the need for repositioning after the arrival of the anticipated arriving vehicle and the departure of the anticipated departing vehicle.

“The optimization of the layout may consider the possibility of repositioning all vehicles within the parking area. Not just those that need to move to vacate the space where an arriving vehicle is to park.”

“The optimization of the layout can be determined by changing the orientation of at most some or all of the vehicles within the parking area. For instance, the reorientation shown in FIGS. 2 and 3 illustrates this. 3A, 3B. 3A, 3B. In some cases, the repositioning at least one vehicle involves changing its orientation or location.

“The optimization of a parking area can be done by maximizing the amount of parking space that is left after multiple vehicles have been positioned in a way that conforms to the optimized layout.”

“A vehicle movement event could include the anticipated departure of a departing car (i.e. A vehicle that is expected to depart in the near future. This scenario can also include anticipating the departure time of the departing car. It might involve monitoring the actions of an individual who arrives at the parking lot and occupies the departing car. The vehicle movement event is triggered at a time before the expected departure time to determine the optimal layout. The optimization process can also include determining the new location for the departing car that minimizes impact on the vehicles in the parking lot. The new position of the departing vehicle could be one that allows for easier egress and less disruption to nearby vehicles. This involves repositioning one or more vehicles in the parking area before the expected departure time.

A vehicle movement event could include the anticipated arrival of an arriving car. This scenario can also include an anticipated arrival of an arriving vehicle. It might be triggered by an express or assumed request for parking in the area for the arriving car. The optimal layout may also include determining the position that the arriving vehicle will be parked in the area.

The process can take into account the vehicle dimensions and driving directions of the arriving car. An optimized layout is then determined based on these factors. In this case, the arriving vehicle’s orientation when it occupies the designated parking space is determined based on its driving direction. The orientation may allow the vehicle to be able to egress the parking area from forward without having to reverse it.

The optimal layout can be determined by the anticipated departure times of the first and second vehicles. An optimized layout positions the anticipated earlier departing vehicle from the first or second vehicles in a more accessible position to exit/egress the parking area than the anticipated later departing vehicle from the second or first vehicles. The position of one or more vehicles places the anticipated earlier departing car in a position that is easier to access.

“In some cases, the plurality is made up of autonomous vehicles. The movement of these vehicles can be controlled by one or more computers, such as the computer system in FIG. 4 for example, a remote system.

“The procedures described herein can be performed either singly or together by one or more computers systems, such the computer system(s), described below with reference FIG. 5. This computer system could be or include remote cloud servers in some embodiments. A computer system that performs aspects described herein could also be a mobile device such as a smartphone or embedded in a vehicle such as an autonomous car.

“FIG. “FIG.5” 5 illustrates one type of computer system that incorporates or uses the aspects described herein. A computer system can also be called a processing device/system, computing device/system, computer or just a computer. Computer system 500 can be built on any one of the many system architectures, such as those offered at International Business Machines Corporation (Armonk (N.Y.), USA) and Intel Corporation (Santa Clara (Calif., USA), for example.

“Computer system 500 can store and/or execute program code. It includes at least one processor 502 that is directly or indirectly coupled to memory 504 via, e.g. a system bus520. The processor(s), 502, obtain instructions from memory 504 for execution. Memory 504 can include local memory used during execution of program code, bulk storage and cache memories that provide temporary storage to at least some program codes in order reduce the number times code must be retrieved via bulk storage during code execution. Memory 504 may include a hard drive, random access memory (RAM), an erasable programmeable read-only (EPROM) or Flash memory, an optical fiber, a portable compact disk read-only (CDROM), an optical storage or magnetic device, and any combination thereof. Memory 504 can include an operating system 505 as well as one or more computer program 506, which may be used to perform the aspects described in this article.

“Input/Output devices (I/O), devices 512, 514 (includes but not limited displays, microphones and speakers, accelerometers. magnetometers. light sensors. proximity sensors. GPS devices, cameras., etc.) You can either connect directly to the system or via I/O controllers 610.

“Computer System 500 can be connected to storage 516 (e.g. a non-volatile area such as magnetic disk drives or optical disk drives, etc. One or more databases. Storage 516 can contain an internal storage device, or attached or network-accessible storage. The storage 516 computer programs can be loaded into memory 504 by a processor 502 according to the art.

“The computer system 500 could include fewer components that are illustrated, additional components, or a combination of the components illustrated with additional components. Computer system 500 can include any computing device that is known to the art. This includes a mainframe or server, personal computer workstation, laptop, desktop, mobile computer, tablet and telephony device. It also may include a storage controller, virtualization device, storage device, storage controller and network appliance (such an edge appliance).

Referring to FIG. “Referring to FIG.

The present invention can be described as a system, method and/or computer program product. It may also include any technical detail level of integration. A computer-readable storage medium or media may be included in the computer program product. It may contain computer-readable program instructions that allow a processor to execute aspects of this invention.

A computer-readable storage medium is a tangible device that stores instructions and can be used by an instruction execution machine. A computer readable storage medium could include, but not be limited to, an electronic storage media, a magnetic storage media, an optical storage material, an electromagnetic storage apparatus, a semiconductor storage system, or any combination thereof. The following are some examples of computer-readable storage media. As used herein, a computer readable storage medium is not intended to contain transitory signals such as radio waves or other freely propagating electromagnetic wave, electromagnetic waves propagating though a waveguide, or any other transmission media (e.g. light pulses passing through fiber-optic cables), or electrical signals transmitted via a wire.

The computer-readable program instructions described in this document can be downloaded to the respective computing/processing device from a computer-readable storage medium, to an external computer, or via an external storage device via a network. This could include the Internet, a wide area network, a local network, and/or wireless networks. The network can include copper transmission cables, optical transmission fibres, wireless transmission and routers, firewalls switches, gateway computers, edge servers, and/or switches. Each computing/processing devices have a network adapter card, or network interface. This receives computer-readable program instructions from the network. It then stores the instructions in a computer-readable storage medium.

“Computer readable program instructions for carrying out operations of the present invention may be assembler instructions, instruction-set-architecture (ISA) instructions, machine instructions, machine dependent instructions, microcode, firmware instructions, state-setting data, configuration data for integrated circuitry, or either source code or object code written in any combination of one or more programming languages, including an object oriented programming language such as Smalltalk, C++, or the like, and procedural programming languages, such as the ?C? programming language or similar programming languages. Computer-readable program instructions can be executed entirely on the user?s computer, partially on their computer as a standalone software package, partly or completely on the remote computer. The remote computer can be connected to the user’s machine through any network, such as a local network (LAN), a wide-area network (WAN), or to an external computer via the Internet (Internet Service Provider). Some embodiments allow electronic circuitry to execute computer-readable program instructions using state information from the computer-readable program instructions. This allows the user to personalize electronic circuitry to accomplish aspects of the invention.

“Aspects” of the invention are described in detail with reference to block diagrams and/or flowcharts of methods, apparatuses and computer program products as per embodiments. Each block in the flowchart illustration and/or block schematics can be executed by computer-readable program instructions.

These computer-readable program instructions can be given to a processor of general purpose computers, special purpose computers, or any other programmable device processing apparatus to create a machine. The instructions, which execute via a processor of the computer and other programmable apparatus, create means to implement the functions/acts described in the flowchart block/blocks. These computer-readable program instructions can also be stored on a computer-readable storage medium that allows a computer, a programmeable data processing device, or other devices to perform a specific function. The instructions contained in the computer readable medium include instructions that implement certain aspects of the function/act described in the flowchart block/blocks.

“The computer-readable program instructions can also be loaded onto a computer or another programmable data processing device or device to cause a series or operational steps to be performed by the computer or other programmable apparatus to produce a computer implemented procedure. The instructions that execute on the device, computer, or other programmable device implement the functions/acts described in the block diagram and/or flowchart block.

“The Figures show the architecture, functionality, operation, and design of various implementations of methods, systems, and computer programs according to different embodiments of the invention. Each block in the block diagrams or flowcharts could be a block, segment, or section of instructions that contains one or more executable instructions to implement the specified logical function. Alternate implementations may allow the functions to be executed in a different order than the one shown in Figures. Depending on the functionality, blocks can sometimes be executed in reverse order. For example, two blocks could be executed simultaneously. You will also notice that every block in the flowchart illustration and/or block diagrams can be executed by special purpose hardware-based system that performs the specified functions, acts, or executes combinations of special purpose computer instructions.

“The terminology used in this document is intended to describe particular embodiments and is not meant to limit. The singular forms?a,?an, and?the? are used herein. The singular forms?a?,?an???? and?the?? are intended to include the plural forms. Unless the context indicates otherwise, the plural forms of?the? and?the? are to be used together. Further, the terms “comprises” and/or “comprising?” are intended to include plural forms unless otherwise stated. When used in this specification, the terms?comprises? and/or ‘comprising? indicate the presence of specified features, integers and steps, operations, components and/or elements. However, they do not preclude the addition or presence of other features, integers and steps, elements, components or groups thereof.

“The claims below include the corresponding structures, materials and acts of all means or function elements. If any, they are meant to cover any structure, material or act that performs the function with other elements as claimed. Although the description of one or more embodiments is intended for illustration and description purposes, it is not intended as exhaustive or to limit the disclosure. Regular skill in the art will recognize many modifications and variations. This embodiment was selected and described to explain the various aspects and their practical application. It also allows others with ordinary skill in art to comprehend the various embodiments with different modifications that are appropriate for the specific use.

Click here to view the patent on Google Patents.

How to Search for Patents

A patent search is the first step to getting your patent. You can do a google patent search or do a USPTO search. Patent-pending is the term for the product that has been covered by the patent application. You can search the public pair to find the patent application. After the patent office approves your application, you will be able to do a patent number look to locate the patent issued. Your product is now patentable. You can also use the USPTO search engine. See below for details. You can get help from a patent lawyer. Patents in the United States are granted by the US trademark and patent office or the United States Patent and Trademark office. This office also reviews trademark applications.

Are you interested in similar patents? These are the steps to follow:

1. Brainstorm terms to describe your invention, based on its purpose, composition, or use.

Write down a brief, but precise description of the invention. Don’t use generic terms such as “device”, “process,” or “system”. Consider synonyms for the terms you chose initially. Next, take note of important technical terms as well as keywords.

Use the questions below to help you identify keywords or concepts.

  • What is the purpose of the invention Is it a utilitarian device or an ornamental design?
  • Is invention a way to create something or perform a function? Is it a product?
  • What is the composition and function of the invention? What is the physical composition of the invention?
  • What’s the purpose of the invention
  • What are the technical terms and keywords used to describe an invention’s nature? A technical dictionary can help you locate the right terms.

2. These terms will allow you to search for relevant Cooperative Patent Classifications at Classification Search Tool. If you are unable to find the right classification for your invention, scan through the classification’s class Schemas (class schedules) and try again. If you don’t get any results from the Classification Text Search, you might consider substituting your words to describe your invention with synonyms.

3. Check the CPC Classification Definition for confirmation of the CPC classification you found. If the selected classification title has a blue box with a “D” at its left, the hyperlink will take you to a CPC classification description. CPC classification definitions will help you determine the applicable classification’s scope so that you can choose the most relevant. These definitions may also include search tips or other suggestions that could be helpful for further research.

4. The Patents Full-Text Database and the Image Database allow you to retrieve patent documents that include the CPC classification. By focusing on the abstracts and representative drawings, you can narrow down your search for the most relevant patent publications.

5. This selection of patent publications is the best to look at for any similarities to your invention. Pay attention to the claims and specification. Refer to the applicant and patent examiner for additional patents.

6. You can retrieve published patent applications that match the CPC classification you chose in Step 3. You can also use the same search strategy that you used in Step 4 to narrow your search results to only the most relevant patent applications by reviewing the abstracts and representative drawings for each page. Next, examine all published patent applications carefully, paying special attention to the claims, and other drawings.

7. You can search for additional US patent publications by keyword searching in AppFT or PatFT databases, as well as classification searching of patents not from the United States per below. Also, you can use web search engines to search non-patent literature disclosures about inventions. Here are some examples:

  • Add keywords to your search. Keyword searches may turn up documents that are not well-categorized or have missed classifications during Step 2. For example, US patent examiners often supplement their classification searches with keyword searches. Think about the use of technical engineering terminology rather than everyday words.
  • Search for foreign patents using the CPC classification. Then, re-run the search using international patent office search engines such as Espacenet, the European Patent Office’s worldwide patent publication database of over 130 million patent publications. Other national databases include:
  • Search non-patent literature. Inventions can be made public in many non-patent publications. It is recommended that you search journals, books, websites, technical catalogs, conference proceedings, and other print and electronic publications.

To review your search, you can hire a registered patent attorney to assist. A preliminary search will help one better prepare to talk about their invention and other related inventions with a professional patent attorney. In addition, the attorney will not spend too much time or money on patenting basics.

Download patent guide file – Click here