Functional Architecture

Physical System

The functional architecture depicts the process flow of the Auto-Park for Social Robots with the inputs on the left, outputs on the right, and the internal functions of the system in the center box.  The direction of arrows represents the flow of material, energy and information from one function to another.  The purple box represents the process when a vehicle parks and the blue box represents the process when a vehicle returns.

func_arch

Functional Architecture

 

The inputs to the system are a pre-loaded map, the “Park” command from the user, and the “Return” command from the user.  The outputs from the system are the “Car Parked” and “Car Returned” notifications to the user.The entire flow can be divided into two phases: Park and Return.  The structure of the flow diagram is based on the “Sense-Plan-Act” design.

In the Park phase, the vehicle receives a “Park” command from the user via the Android app and navigates to the entry queue, continuously localizing itself in the environment.  It queries other vehicles in the parking lot for information needed to plan its route to the optimal spot.  On selecting the best spot based on this data, it plans its route to the spot and starts navigation.  Localization data is needed to continuously update the path planner and if obstacles are encountered along the way, the path is modified accordingly.  Upon reaching the spot, the vehicles parks in the designated spot, sends a “Car Parked” notification to the user, and waits for the return command from the user.

In the Return phase, upon receiving the “Return” command from the user, the vehicle plans the optimal route to the exit based on its current location and the data provided by other cars regarding the conditions in the parking lot.  It starts navigating towards the exit, sensing obstacles along the way and sending a notification to the user once it reaches the exit queue.

Simulation System

Selection_099

 

The simulation system is initiated whenever a vehicle enters the parking lot in the visualization. The new car is added to a queue and the rendering engine queries the global planner regarding which spot should be designated to the new entrant. The global planner receives information regarding the current state of the all the spots in the lot and uses this information to update the cost of each spot in the parking lot.

After this update, the global planner queries the local planner regarding costs of specific spots. This query is needed to take into account the cost to reach a spot given the current condition of the parking lot. The local planner returns the cost associated with the spot and the global planner uses this to find the best spot in the parking lot. This information is relayed to the rendering engine.

The rendering engine, having received the spot the car in the queue should park at, queries the local planner for a path to reach that spot. The local planner returns a path to the rendering engine which is used to park the car in the designated spot. When a car queries the simulation system, the rendering engine queries the local planner for a path from the current location of the car to the exit.