Wheelchair ramps are often used to allow wheelchair access to elevated structures that would otherwise require steps, stairs, an elevator, or a lift to access. Examples of such structures include decks, platforms, houses, modular buildings, trailer-style buildings, or any other elevated structure. Most of these structures are raised from ground level such that there is a first “lower” or “ground access” level and a second “upper” or “destination” level, with the levels being of different elevations such that steps or a ramp are needed to advance from the first level to the second level.
In public places in the United States, a wheelchair ramp must meet American with Disability Act (ADA) standards. For instance, the ramp must have a certain rise or vertical dimension compared to the run or horizontal dimension of the ramp (the “rise-over-run ratio”). According to ADA requirements, if the slope of a ramp is between 1:12 and 1:16, the maximum rise shall be 30 inches (760 mm) and the maximum horizontal run shall be 30 feet (9 m). Ramps in other countries may have other required rise-over-run ratios. For instance, the ramp must have a slope of 1:8 to meet International Residential Code (IRC) requirements. Moreover, residential ramps may need to meet other rise-over-run ratios, for instance, depending on the intended use of the resident or the physical constraints of the location.
Components of a ramp run typically include a level landing (the second surface) at the top of the ramp, the surface of the ramp, and a level landing (the first surface) at the bottom of the ramp, among other components. When assembled, the components of the ramp run must typically meet the necessary or desired rise-over-run ratio, among other requirements.
Aspects of the present disclosure are directed to improved systems and methods for building a graphical depiction of an accessibility system, such as a wheelchair ramp.
Disclosed are systems, apparatuses, methods, computer readable medium, and circuits for processing instructions to build an accessibility system. According to at least one example, a method includes: receiving an input to build a run having a desired ratio of an accessibility system; receiving a selection of one or more components of the accessibility system; and generating feedback data indicating whether the one or more components of the accessibility system create the run having the desired ratio. For example, the computing device receives an input to build a run having a desired ratio of the accessibility system; receives a selection of one or more components of an accessibility system; and generates feedback data indicating whether the one or more components of the accessibility system create the run having the desired ratio.
In another example, a computing device for processing instructions to build an accessibility system is provided that includes a storage (e.g., a memory configured to store data, such as virtual content data, one or more images, etc.) and one or more processors (e.g., implemented in circuitry) coupled to the memory and configured to execute instructions and, in conjunction with various components (e.g., a network interface, a display, an output device, etc.), cause the computing device to: receive an input to build a run having a desired ratio of an accessibility system; receive a selection of one or more components of the accessibility system; and generate feedback data indicating whether the one or more components of the accessibility system create the run having the desired ratio.
This summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This summary is not intended to identify key features of the claimed subject matter, nor is it intended to be used as an aid in determining the scope of the claimed subject matter.
The novel features of the invention are set forth with particularity in the appended claims. A better understanding of the features and advantages of the present invention will be obtained by reference to the following detailed description that sets forth illustrative embodiments, in which the principles of the invention are utilized, and the accompanying drawings of which:
FIGS. A-HHH show color screen shots of exemplary GUI displays of a computing device for use with the systems and methods described herein.
The patent or application file contains at least one drawing executed in color. Copies of this patent or patent application publication with color drawing(s) will be provided by the Office upon request and payment of the necessary fee.
The present disclosure provides exemplary embodiments of a system and method for building a graphical depiction of an accessibility system, such as a wheelchair ramp. For instance, the systems and methods described herein may be used to create a computer-aided drawing (CAD) and/or model of a layout of an accessibility system, which may graphically display all the components necessary to quote and build a complete accessibility system. In that regard, the system and method for building a graphical depiction of an accessibility system may include a software platform on a computing device that allows a user to select components for the desired accessibility system and generate feedback data regarding whether the selected components can be used to effectively and/or safely build the desired accessibility system.
Although exemplary embodiments of a system and method for building a graphical depiction of an accessibility system will be hereinafter described with reference to building a wheelchair ramp or similar, it should be appreciated that the systems and methods described herein may be adapted for use with other types of applications, such as building stage setups, transport systems, etc.
The example computer system 100 includes a processor 105, a memory 110, a graphical device 115, a network device 120, an interface 125, and a storage device 130 that are connected to operate via a bus 135. The processor 105 causes machine instructions (e.g., reduced instruction set (RISC), complex instruction set (CISC), etc.) that are loaded into the memory 110 via a bootstrapping process and executes an operating system (OS) for executing application within frameworks provided by the OS. For example, the processor 105 may execute the client application 102 provided by a graphical framework such as Winforms, Windows Presentation Foundation (WPF), Windows User Interface (WinUI), or a cross platform user interface such as Xamarin or QT. In other examples, the processor 105 may execute an application that is written for a sandbox environment such as a web browser.
The processor 105 controls the memory 110 to store instructions, user data, OS content, and other content that cannot be stored within the processor 105 internally (e.g., within the various caches). The processor 105 may also control a graphical device 115 (e.g., a graphical processor) that outputs graphical content to a display 140. In some example, the graphical device 115 may be integral within the processor 105. In yet another example, the display 140 may be integral with the computer system 100 (e.g., a laptop, a tablet, a phone, etc.).
The graphical device 115 may be optimized to perform floating point operations such as graphical computations, and it may be configured to execute other operations in place of the processor 105. For example, it may be controlled by instructions to perform mathematical operations optimized for floating point math. For example, the processor 105 may allocate instructions to the graphical device 115 for operations that are optimized for the graphical device 115. For instance, the graphical device 115 may execute operations related to artificial intelligence (AI), natural language processing (NLP), vector math, etc. The results may be returned to the processor 105. In another example, the application executing in the processor 105 may provide instructions to cause the processor 105 to request the graphical device 115 to perform the operations. In other examples, the graphical device 115 may return the processing results to another computer system (i.e., distributed computing).
The processor 105 may also control a network device 120 that transmits and receives data using a plurality of wireless channels 145 and at least one communication standard (e.g., Wi-Fi (i.e., 802.11ax, 802.11e, etc.), Bluetooth®, various standards provided by the 3rd Generation Partnership Project (e.g., 3G, 4G, 5G), or a satellite communication network (e.g., Starlink). The network device 120 may wirelessly connect to a network 150 to connect to servers 155 or other service providers. The network device 120 may also be connected to the network 150 via a physical (i.e., circuit) connection. The network device 120 may also directly connect to local electronic device 160 using a point-to-point (P2P) or a short-range radio connection.
The processor 105 may also control an interface 125 that connects with an external device 170 for bidirectional or unidirectional communication. The interface 125 is any suitable interface that forms a circuit connection and can be implemented by any suitable interface (e.g., universal serial bus (USB), Thunderbolt, and so forth). The external device 170 can receive data from the interface 125 to process the data or perform functions for different applications executing in the processor 105. For example, the external device 170 may be another display device, a computer interface device (e.g., a keyboard, a mouse, etc.), an audio device (e.g., an analog-to-digital converter (ADC), a digital-to-analog converter (DAC)), a storage device for storing content, an authentication device, an external network interface (e.g., a 5G hotspot), a printer, and so forth.
As noted above, the example computer system 100 may execute a client application 102 configured for building a graphical depiction of an accessibility system. The client application 102 may be accessed by a user of the computer system 100 or by a user of another computing device in communication with the computer system 100 over the network 150. In that regard, the client application 102 of the example computer system 100 may be a Web-based platform (for example, a cloud platform) capable of being accessed over the network 150. In other example embodiments, a remote plug-in that uses cloud-based APIs (Application Program Interfaces) may be utilized to connect and extract the information from the example computer system 100. The client application 102 may be individualized to a specific group of users, such as accessibility system dealers. Moreover, reference to the “computer system 100” may instead or additionally include any other computing device in communication with the network 150.
Although the client application 102 is herein described as a single client application, it should be appreciated that in some instances the functionality of the client application 102 may be carried out across multiple platforms, such as multiple Web-based platforms. Accordingly, the description and illustrations provided herein should not be seen as limiting.
In general, the client application 102 may receive inputs from a user regarding a selection of components for a desired accessibility system. Upon processing those inputs, the client application 102 graphically depicts the components in a 2-D computer aided drawing, a 3-D model, etc. Moreover, the client application 102 may generate feedback data regarding whether the selected components can be used to effectively and/or safely build the desired accessibility system. After building a graphical depiction of the accessibility system, the client application 102 may generate an electronic document or file used to facilitate a quote building process for the accessibility system that can be used by a dealer, distributor, manufacturer, customer, etc. (the “user”), to quote a cost, parts, etc., for the desired accessibility system. Further, the electronic document or file may be used to facilitate building of the accessibility system (e.g., it may act as a blueprint, design plan, technical drawing, etc. for assembly and installation).
In a first aspect, the client application 102 may include a login module 174 configured to facilitate secure login and access to the client application 102. The login module 174 may facilitate login and access into the client application 102 in any suitable manner now know or later developed.
Once the client application 102 is accessed by the user through, for example, the login module 174, the client application 102 may run a slope input module 178 configured to enable selection of a desired slope or rise-over-run ratio for the accessibility system (hereinafter simply “slope” or “ratio”). As described above, a ramp slope of an accessibility system must often meet certain slope requirements for commercial or residential use. For instance, the ADA recommends a 1:12 slope for a commercial ramp system, which means that for every 1 inch of vertical rise, at least 1 foot (12 inches) of ramp length (5 degrees of incline) is required. The IRC may have other required slope requirements. In residential applications, the residential user may have yet other accessibility system slope needs. Using the slope input module 178, the user may select the desired slope for the accessibility system, either from, for instance, a dropdown menu with different options (e.g., ADA (1:12) or IRC (1:8), etc.). In addition or in the alternative, the user may input a custom slope for the system through, for instance, a text box.
For instance,
After selecting a desired slope, the user may begin using the client application 102 to build a graphical depiction of an accessibility system, or the user may instead first access a tutorial through a tutorial module 182. In the exemplary screen shot 400 of
If the tutorial is chosen, the tutorial may display various exemplary screen shots (not shown) that may act to guide the user through the process of graphically building an accessibility system. For instance, the tutorial module 182 may display some or all of the screen shots shown in
After completing some or all of the tutorial and/or skipping the tutorial, a stencil design module 186 may be accessed by the client application 102 to build a graphical depiction of an accessibility system. In general, the stencil design module 186 may be used to select various parts from a list of available parts and/or to create a custom part using, for instance, various input parameters. The selected parts are overlaid onto a graphical canvas or background image that can be used to organize and display the accessibility system graphically built by the user.
For instance,
In the first side container window 520, the user can select a high-level menu option for creating/editing aspects of the graphically depicted accessibility system. For instance, in the first side container window 520, the user can toggle through various main menu items of the stencil design module 186, such as “Object Inspector”, “Part Category”, “Options”, “Settings”, “Addons”, “Graphics”, “Tools”, “Add Notes”, “Drafting Mode”, and “Drawing Tools”. It should be appreciated that any other list of actions/functions may instead be provided. Upon selecting (e.g., clicking on) a specific menu item, the images/links in the second side container window 540 update to correspond to the menu item chosen.
In the exemplary screenshot 500 depicted in
For instance, as shown in
In the exemplary screenshot 500 shown, a 4×4 platform 544 has been selected for display on the canvas. In addition, a 3×2 ramp 548 has been selected for display (after selecting the category “Ramps” in the second side container window 540). In the exemplary screenshot 600 shown in
The selected parts displayed on the canvas can be moved into any desired location on the canvas, for instance, to appropriately position each part next to other parts. The selected parts can also be rotated, deleted, copied, etc., using standard graphical editing tools and functions well known in the art.
Once all the parts have been selected and moved into the appropriate position, a user may proceed to finalize the graphical depiction of the accessibility system by clicking on a “Finish” or “Let's Go” button (or similar) in a third side container window 542/642, which may be located beneath the second side container window 540/640. Before proceeding to describe a finalization step(s) of the accessibility system, however, a brief description of other menu items displayed for selection in the first side container window will be briefly described with reference to
The exemplary screen shot 600 shown in
In a next step, the client application 102 runs a stencil checkup module 190 (see
If the user wants to add the recommended parts, the user can click the “X” button and go back to the menu item “Parts” in the first side container window 1620 and “Transitions” at the top of the second side container window 1640 in order to display the various parts in the second side container window 1640, as shown in the exemplary screen shot 1600 of
After selecting the “Let's Go” button, the client application 102 may re-run the stencil checkup module 190 to determine if one or more required components are missing from the designed accessibility system. If no parts are found to be missing, the client application 102 may run a handrail builder module 194 (see
As an example,
In the depicted exemplary embodiment, the user has the option to close the window and add the recommended parts or continue without the parts (but with the warning that they were missing). If the user wants to add the recommended parts, the user can click the “Exit to Editor” button or similar and go to the first side container window 1720, which now displays a menu item “RailBuilder” at the top. Upon selecting “RailBuilder” in the first side container window 1720, handrail builder features are displayed in the second side container window 1740. For instance, to proceed with the handrail builder module 194, the user must select a component (such as a platform, ramp, or stairs) on which handrails or other safety features (such as treads) may be added.
As an example, and referring to the exemplary screen shot 1800 of
The handrail builder module 194 may generate feedback data (such as in the second side container window 1940) indicating that the selected position is not compatible with the run 1924. For instance, an error may be generated and displayed if a top handrail was chosen for platform 1944 because a top handrail would prevent access to the platform 1944. The handrail builder module 194 may also present an option to alter the treads of the component in the second side container window or change or add any other safety feature.
Referring to the exemplary screen shot 2000 of
Referring to the exemplary screen shot 2100 of
In a first step, the run builder module 198 displays an option to “Add New Run” by clicking a button in the second side container window 2140 in the exemplary screen shot 2100 of
In a next step shown in the exemplary screen shot 2300 of
In other aspects, the run builder module 198 may be configured to generate an error or feedback if stairs are included in the primary run, if stairs and a ramp are in the same run, if the run includes different sized ramps (as described below with regards to a connections module 202), if the components are ordered incorrectly in the run, and/or if the run length is too long and a resting platform is needed.
In a next step, the user may input an end/bottom height for the run, as shown in the exemplary screenshot 2500 in
In a next step shown in the exemplary screenshot 2600 in
In the exemplary screenshot 2600 depicted in
The run builder module 198 displays this resultant information in the second side container window 2640 so that, if desired, the user can go back and modify the stencil design to achieve the desired ratio. In that regard, the user can select either a “Back” button, a “Finish” button, a “Cancel” button, or the like in the third side container window 2642 to either fix the ratio of the run or to continue with the run as currently designed (knowing the ratio is different than what was intended).
If the “Back” or “Cancel” button is selected, the client application 102 may direct the user back to the beginning of the run builder module 198 to enter a different start/end height, to select different parts for the run, etc. The run builder module 198 can then analyze the slope ratio of the updated run and display the results in the second side container window 2640, as shown in the exemplary screenshot 2700 depicted in
If the user continues with the run as currently designed, the overall results of the run builder module 198 may be displayed in the second side container window 2840, such as shown in the exemplary screenshot 2800 of
In the exemplary screenshot 3200 depicted in
In response to the feedback, a height of 0 inches is instead entered into a text box for the end/bottom height, as shown in the exemplary screenshot 3300 depicted in
The exemplary screen shot 5800 of
The exemplary screen shot 5900 of
The exemplary screen shot 5000 of
In another example shown in
Stairs and ramps not allowed in same run
Parts have different sized ramp widths
A 45 degree platform cannot start a run
A 45 degree platform cannot connect to standard platforms
A starter ramp must be at the end of a run (such as for a commercial run)
A run cannot have a part with child rails and a part without child rails (such as for a commercial run)
Any other errors may also be generated by the run builder module 198.
Turning back to the exemplary screen shot 3600 of
For instance, in a first step, the connections module 202 displays an option to “Assign Entrances and Exits” to the system by clicking a slide button in the second side container window 3640. After clicking on “Entrances”, for instance, the user may assign an entrance(s) for the system. Text in the second side container window 3640 may indicate that an entrance may be defined at any entry point at the top of the system to give guidance to the user.
Potential entrances may be marked by an initial indicator (such as an “X” or similar), and a user can click on the initial indicator to define it as an entrance. For instance, as shown in the exemplary screen shot 3600 of
Referring to the exemplary screen shot 3900 of
Potential exits may be marked by an initial indicator (such as an “X” or similar), and a user can click on the initial indicator to define it as an exit (see the second initial indicator 3964′ provided as a potential exit for the system). In the exemplary screen shot 3900 of
In some examples, the connections module 202 may generate feedback data indicating where certain components should be closed off for safety. For instance, in the exemplary screen shot 6100 of
As noted above, the connections module 202 may also be configured to generate feedback data if one or more components is incompatible with any adjacent component(s) in the run. In that regard, the connections module 202 may generate feedback data regarding the connectability of adjacent components of the accessibility system.
For instance, the connections module 202 may receive a location placement selection of a component of the accessibility system relative to a location of at least one other component, and the connections module 202 may generate feedback data indicating whether the component can be placed in the selected location relative to the at least one other component. Referring to the exemplary screen shots 3600, 3800, and 3900 of
In addition, the connections module 202 may display a first indicator between components having a proper connection and a second indicator between components having an improper connection. For instance, and as may best be seen by referring to
In another instance, and as may best be seen by referring to the exemplary screen shot 5200 of
If an improper connection is detected between the first and second components, a different part or component may be selected, and/or the components may be moved relative to each other to define a proper connection. For instance, in the exemplary screenshot 5200 of
As another example, the exemplary screen shot 5000 of
If the error message or improper connection indicator was instead generated because the components were not positioned correctly relative to each other, one or both of the components may be moved (i.e., dragged across the canvas into another location) such that a proper connection may be defined between the components.
Referring to the exemplary screen shot 4000 of
For instance, in the second side container window 4040, the various legs automatically added to the system may be categorized as: (1) activated, where the leg may be removed by clicking a corresponding highlighted marker (or the like) on the stencil design displayed on the canvas; (2) empty, where no leg is added to the system but can be added by clicking on an empty corner pocket indicator (or the like); and (3), uneditable, of which legs added to the system are locked from being removed because they are necessary to support the system. Beneath this legs categorization displayed in the second side container window 4040, the part identifier (e.g., number, name, and/or short description) of the system and the corresponding number of legs may be displayed for reference.
The legs module 206 may provide the option to disable auto-generation of legs for the system, for instance, by clicking on a toggle button within the second side container window 4040.
In another exemplary screen shot 6200 shown in
Referring to the exemplary screen shot 4100 of
For instance, in the second side container window 4140, the angle bracing is automatically added to the system for components more than 36 inches above another surface, and cross bracing is automatically added to the system for components more than 72 inches above another surface. For each type of bracing, the bracing may be removed by clicking a corresponding highlighted marker (or the like) on the system stencil displayed on the canvas. In some embodiments, certain bracing structure may be uneditable, meaning the bracing added to the system is locked from being removed because it is necessary to support the system. Beneath this bracing categorization displayed in the second side container window 4140, the corresponding number of angle or cross bracings used may be displayed for reference.
The bracing module 210 may provide the option to disable auto-generation of bracing for the system, for instance, by clicking on a toggle button within the second side container window 4140.
Referring to the exemplary screen shot 4200 of
Specifically, the final system checkup module 214 may re-run the run builder module 198, the connections module 202, the legs module 206, and/or the bracing module 210. Upon re-running some or all these modules, an item checklist of the recommended components for the accessibility system may be displayed in the second side container window 4240. For instance, in the exemplary screen shot 4200 of
Referring to the exemplary screen shot 4300 of
In that regard, in a next step, the client application 102 may run a quote building module 216 (see
When closing the browser tab, the quote building module 216 may navigate back to a dealer portal (or another third-party website or computer system) to the send/accept the quote. For instance, the quote building module 216 may automatically generate a file or upload a file on a computer system of a dealer or another third party for processing the quote.
The electronic document may be used to facilitate a physical build of the accessibility system. More specifically, the electronic document may be used to order the necessary parts for the accessibility system. Once the parts are ordered and on site, the electronic document may act as a blueprint, design plan, technical drawing, etc. for building the accessibility system.
It should be appreciated that the warnings, results, etc. (“feedback”), produced by the modules of the client application 102 may instead be generated in any other suitable manner. For instance, instead of displaying feedback in the second side container window, feedback may instead be displayed in one or more of the other container windows. Other forms of visual feedback may alternatively or additionally be used. For example, one or more of the components of the system may flash red or otherwise be highlighted to the user as having a warning. Further, instead of visual feedback, other forms of feedback may alternatively or additionally be used, such as audible warnings (e.g., a sound when a warning pops up) or tactile warnings (e.g., a vibration of the computing device or input device). Thus, it should be appreciated that feedback may be provided to the user in any suitable manner. Moreover, as noted above, some or all the modules of the client application 102 may be run in parallel and/or in the background of any other module being used, and any necessary warnings may be displayed in one or more of the side container windows or in the main container window of the screen shot currently displayed.
The screen shots of exemplary GUI displays shown in
The ornamental designs include any and all parts, portions, elements, and/or combinations thereof of the exemplary GUI displays shown in the FIGS. The designs may also include any part, portion, element, and/or combination thereof of the disclosed designs, including a design that replaces any solid line with a broken line to disclaim any part, portion, element and/or combination thereof of the disclosed design, or to replace any broken line with a solid line to claim any part, portion, element and/or combination thereof of the disclosed designs.
Any thin solid lines that are now shown in the FIGS. or later added may represent contours only and will not necessarily illustrate an ornamentation of decoration on the surface of an article.
According to some embodiments, the method includes receiving an input to build a run having a desired ratio at block 6302. For example, the processor 105 illustrated in
According to some embodiments, the method includes receiving a selection of one or more components of an accessibility system at block 6304. For example, the processor 105 illustrated in
According to some embodiments, the method includes generating feedback data indicating whether the one or more components of the accessibility system create a run having the desired ratio at block 6306. For example, the processor 105 illustrated in
According to some embodiments, the method includes generating additional feedback data indicating whether the selection of the one or more components form a complete accessibility system at block 6310. For example, the processor 105 illustrated in
According to some embodiments, the method includes generating additional feedback data if one of the one or more components is incompatible with the other of the one or more components in the run at block 6320. In that regard, the processor 105 illustrated in
According to some embodiments, the method includes displaying a first indicator between components indicative of a proper connection and a second indicator between components indicative of an improper connection at block 6328. For example, the processor 105 illustrated in
According to some embodiments, the method includes displaying a first graphical icon on a first component and a second graphical icon on a second component, the first and second graphical icons overlapping and defining a darkened area indicative of a proper connection between the first and second components. For example, in the exemplary screenshot 3700 depicted in
According to some embodiments, the method includes displaying a first graphical icon on a first component and a second graphical icon on a second component, the first and second graphical icons overlapping and defining an open area indicative of an improper connection between the first and second components. For example, in the exemplary screenshot 5200 depicted in
According to some embodiments, the method includes generating additional feedback data regarding improper order of the one or more components in the run at block 6332. For example, the processor 105 illustrated in
According to some embodiments, the method includes receiving a handrail position selection of a component of the accessibility system and generating feedback data indicating whether the handrail position is compatible with the component at block 6336. The method may also include generating feedback data indicating whether a component is missing a recommended handrail at block 6336. For example, the processor 105 illustrated in
According to some embodiments, the method may include (optionally automatically) selecting at least one of legs and bracing for each component of the accessibility system at block 6340. The method may include selecting at least one of legs and bracing for each component of a predetermined height. For instance, bracing may be automatically added at component heights of 36 inches and 72 inches with the option to remove and/or modify some or all the bracing.
In that regard, the processor 105 illustrated in
According to some embodiments, the method includes receiving at least one entry selection and at least one exit selection for the run of the accessibility system and generating feedback data indicating whether the at least one entry selection and the at least one exit selection can be used with the run at block 6344. For example, the processor 105 illustrated in
According to some embodiments, the method includes generating a list of part names for the one or more components selected for the accessibility system and/or an electronic document that graphically depicts the accessibility system at block 6348. For example, the processor 105 illustrated in
In some examples, the methods described herein (e.g., method 6301, and/or other methods and process described herein) may be performed by a computing device or apparatus, such as the computer system 100.
The computing device can include any suitable device, such as a mobile device (e.g., a mobile phone), a desktop computing device, a tablet computing device, an extended reality (XR) device or system (e.g., a VR headset, an AR headset, AR glasses, or other XR device or system), a wearable device (e.g., a network-connected watch or smartwatch, or other wearable device), a server computer or system, a vehicle or computing device of a vehicle (e.g., an autonomous vehicle), a robotic device, a television, and/or any other computing device with the resource capabilities to perform the processes described herein, including the method 6301. In some cases, the computing device or apparatus may include various components, such as one or more input devices, one or more output devices, one or more processors, one or more microprocessors, one or more microcomputers, one or more cameras, one or more sensors, and/or other component(s) that are configured to carry out the steps of processes described herein. In some examples, the computing device may include a display, a network interface configured to communicate and/or receive the data, any combination thereof, and/or other component(s). The network interface may be configured to communicate and/or receive Internet Protocol (IP) based data or other type of data.
The components of the computing device can be implemented in circuitry. For example, the components can include and/or can be implemented using electronic circuits or other electronic hardware, which can include one or more programmable electronic circuits (e.g., microprocessors, graphics processing units (GPUs), digital signal processors (DSPs), central processing units (CPUs), and/or other suitable electronic circuits), and/or can include and/or be implemented using computer software, firmware, or any combination thereof, to perform the various operations described herein.
The method 6301 is illustrated as a logical flow diagram, the operation of which represents a sequence of operations that can be implemented in hardware, computer instructions, or a combination thereof. In the context of computer instructions, the operations represent computer-executable instructions stored on one or more computer-readable storage media that, when executed by one or more processors, perform the recited operations. Generally, computer-executable instructions include routines, programs, objects, components, data structures, and the like that perform particular functions or implement particular data types. The order in which the operations are described is not intended to be construed as a limitation, and any number of the described operations can be combined in any order and/or in parallel to implement the processes. Further, some of the described operations can be omitted from the method 6301.
Additionally, the method 6301 and/or other methods or processes described herein may be performed under the control of one or more computer systems configured with executable instructions and may be implemented as code (e.g., executable instructions, one or more computer programs, or one or more applications) executing collectively on one or more processors, by hardware, or combinations thereof. As noted above, the code may be stored on a computer-readable or machine-readable storage medium, for example, in the form of a computer program comprising a plurality of instructions executable by one or more processors. The computer-readable or machine-readable storage medium may be non-transitory.
Although the example method 6301 depicts a particular sequence of operations, the sequence may be altered without departing from the scope of the present disclosure. For example, some of the operations depicted may be performed in parallel or in a different sequence that does not materially affect the function of the method 6301. Further, as noted above, some of the described operations can be omitted from the method 6301. In other examples, different components of an example device or system that implements the method 6301 may perform functions at substantially the same time or in a specific sequence.
Aspects of the systems and methods described herein may use certain artificial intelligence (AI) platforms to process data, which may be carried out on one or more (cloud-based) computing devices, such as one or more of the servers 155 shown in
An artificial neural network attempts to replicate, using computer technology, logical reasoning performed by the biological neural networks that constitute animal brains. Deep neural networks, such as convolutional neural networks, are widely used for numerous applications, such as object detection, object classification, object tracking, big data analysis, among others.
The neural network 6410 reflects the architecture 6400 defined in the neural network description 6401. In this example, the neural network 6410 includes an input layer 6402, which may include a desired slope ratio of the accessibility system, a predefined footprint of the accessibility system, etc. In one illustrative example, the input layer 6402 can include data representing a portion of input media data such as a patch of data or pixels (e.g., a 128×128 patch of data) in an image corresponding to the input media data. The input media data may include a digital image of the area (e.g., a building and its exterior leading up to an entrance) in which the accessibility system will be used.
The neural network 6410 includes hidden layers 6404A through 6404N (collectively “6404” hereinafter). The hidden layers 6404 can include n number of hidden layers, where n is an integer greater than or equal to one. The number of hidden layers can include as many layers as needed for a desired processing outcome and/or rendering intent. The neural network 6410 further includes an output layer 6406 that provides an output (e.g., feedback) resulting from the processing performed by the hidden layers 6404. In one illustrative example, the output layer 6406 can provide feedback regarding a recommended part or combination of parts that may be used for the accessibility system (as defined in the input layer 6402, such as a desired slope ratio of the accessibility system, a predefined footprint of the accessibility system, a digital image of the area, etc.)
The neural network 6410 in this example is a multi-layer neural network of interconnected nodes. Each node can represent a piece of information. Information associated with the nodes is shared among the different layers and each layer retains information as information is processed. In some cases, the neural network 6410 can include a feed-forward neural network, in which case there are no feedback connections where outputs of the neural network are fed back into itself. In other cases, the neural network 6410 can include a recurrent neural network, which can have loops that allow information to be carried across nodes while reading in input.
Information can be exchanged between nodes through node-to-node interconnections between the various layers. Nodes of the input layer 6402 can activate a set of nodes in the first hidden layer 6404A. For example, as shown, each of the input nodes of the input layer 6402 is connected to each of the nodes of the first hidden layer 6404A. The nodes of the hidden layer 6404A can transform the information of each input node by applying activation functions to the information. The information derived from the transformation can then be passed to and can activate the nodes of the next hidden layer (e.g., 6404B), which can perform their own designated functions. Example functions include convolutional, up-sampling, data transformation, pooling, and/or any other suitable functions. The output of the hidden layer (e.g., 6404B) can then activate nodes of the next hidden layer (e.g., 6404N), and so on. The output of the last hidden layer can activate one or more nodes of the output layer 6406, at which point an output is provided. In some cases, while nodes (e.g., nodes 6408A, 6408B, 6408C) in the neural network 6410 are shown as having multiple output lines, a node has a single output and all lines shown as being output from a node represent the same output value.
In some cases, each node or interconnection between nodes can have a weight that is a set of parameters derived from training the neural network 6410. For example, an interconnection between nodes can represent a piece of information learned about the interconnected nodes. The interconnection can have a numeric weight that can be tuned (e.g., based on a training dataset), allowing the neural network 6410 to be adaptive to inputs and able to learn as more data is processed.
The neural network 6410 can be pre-trained to process the features from the data in the input layer 6402 using the different hidden layers 6404 in order to provide the output through the output layer 6406. In an example in which the neural network 6410 is used to provide a recommended part(s) for the accessibility system, the neural network 6410 can be trained using training data that includes example images and object features of real world environments. For instance, training images can be input into the neural network 6410, which can be processed by the neural network 6410 to generate outputs which can be used to tune one or more aspects of the neural network 6410, such as weights, biases, etc.
In some cases, the neural network 6410 can adjust weights of nodes using a training process called backpropagation. Backpropagation can include a forward pass, a loss function, a backward pass, and a weight update. The forward pass, loss function, backward pass, and parameter update is performed for one training iteration. The process can be repeated for a certain number of iterations for each set of training media data until the weights of the layers are accurately tuned.
For a first training iteration for the neural network 6410, the output can include values that do not give preference to any particular class due to the weights being randomly selected at initialization. For example, if the output is a vector with probabilities that the object includes different features, the probability value for each of the different object features may be equal or at least very similar (e.g., for ten possible object features, each class may have a probability value of 0.1). With the initial weights, the neural network 6410 is unable to determine low level features and thus cannot make an accurate determination of what the classification of the object might be. A loss function can be used to analyze errors in the output. Any suitable loss function definition can be used.
The loss (or error) can be high for the first training dataset (e.g., images) since the actual values will be different than the predicted output. The goal of training is to minimize the amount of loss so that the predicted output comports with a target or ideal output. The neural network 6410 can perform a backward pass by determining which inputs (weights) most contributed to the loss of the neural network 6410, and can adjust the weights so that the loss decreases and is eventually minimized.
A derivative of the loss with respect to the weights can be computed to determine the weights that contributed most to the loss of the neural network 6410. After the derivative is computed, a weight update can be performed by updating the weights of the filters. For example, the weights can be updated so that they change in the opposite direction of the gradient. A learning rate can be set to any suitable value, with a high learning rate including larger weight updates and a lower value indicating smaller weight updates.
The neural network 6410 can include any suitable neural or deep learning network. One example includes a convolutional neural network (CNN), which includes an input layer and an output layer, with multiple hidden layers between the input and out layers. The hidden layers of a CNN include a series of convolutional, nonlinear, pooling (for downsampling), and fully connected layers. In other examples, the neural network 6410 can represent any other neural or deep learning network, such as an autoencoder, a deep belief nets (DBNs), a recurrent neural networks (RNNs), etc.
In some embodiments, an initial dataset will be built using the neural network architecture 6400, and further data from system usage is fed back into the corresponding models by using practical secure aggregation. As such, the models can be encrypted in such a way that a (cloud) server responsible for aggregating the models will be unable to decrypt the learnings of each model.
In one example, a data lake is used to receive data from an application of a network device. Sensitive data will be anonymized, reprocessed, or aggregated before being sent to the data lake. All the data can be stored on the data lake as is. Accordingly, the system can return to original data after applying a data transformation. In another example, a data versioning system is used. The data versioning system (e.g., Pachyderm) stores and versions data in a format that is directly consumable by the AI tools and pipelines. The data versioning system can also version the artifacts (models and code) that are produced by the pipelines and that should be sent in an update procedure. Note that the data acquired will be encrypted while in transit and will be stored fully disconnected from any network devices (e.g., the computer system 100) to ensure the data is properly isolated.
It should be appreciated that any other suitable AI platforms and AI models now known or later developed may be used to accomplish the systems and methods described herein.
While the concepts of the present disclosure are susceptible to various modifications and alternative forms, specific embodiments thereof have been shown by way of example in the drawings and will be described herein in detail. It should be understood, however, that there is no intent to limit the concepts of the present disclosure to the particular forms disclosed, but on the contrary, the intention is to cover all modifications, equivalents, and alternatives consistent with the present disclosure and the appended claims.
References in the specification to “one embodiment,” “an embodiment,” “an exemplary embodiment,” etc., indicate that the embodiment described may include a particular feature, structure, or characteristic, but every embodiment may or may not necessarily include that particular feature, structure, or characteristic. Moreover, such phrases are not necessarily referring to the same embodiment. Further, when a particular feature, structure, or characteristic is described in connection with an embodiment, it is submitted that it is within the knowledge of one skilled in the art to affect such feature, structure, or characteristic in connection with other embodiments whether or not explicitly described. Additionally, it should be appreciated that items included in a list in the form of “at least one A, B, and C” can mean (A); (B); (C); (A and B); (B and C); (A and C); or (A, B, and C). Similarly, items listed in the form of “at least one of A, B, or C” can mean (A); (B); (C); (A and B); (B and C); (A and C); or (A, B, and C).
As described herein, the system and method for building a graphical depiction of an accessibility system may include a software platform on a computing device that allows a user to select components for the desired accessibility system and generate feedback data regarding whether the selected components can be used to effectively and/or safely build the desired accessibility system. Various forms of “feedback data” are described herein. It should be appreciated that any other suitable forms of feedback data may instead be used, such as audible feedback data, tactile feedback data, other forms of visual feedback data, a combination of various types of feedback data, etc. Accordingly, the descriptions and illustrations provided herein should not be seen as limiting.
The present disclosure provides exemplary embodiments of a system and method for building a graphical depiction of an accessibility system. The term “graphical depiction” may refer to a computer-aided drawing (CAD) and/or model of a layout of an accessibility system, which may graphically display all the components necessary to quote and build a complete accessibility system. Language such as “computer-aided drawing (CAD)”; “model of an accessibility system”, “graphical depiction of an accessibility system”, “accessibility system”, “system layout”, “stencil design”, “run”, “system”, etc., may be used interchangeably and should not be seen as limiting.
Language such as “up”, “down”, “left”, “right”, “first”, “second”, etc., in the present disclosure is meant to provide orientation for the reader with reference to the drawings and is not intended to be the required orientation of the components or graphical images or to impart orientation limitations into the claims.
In the drawings, some structural or method features may be shown in specific arrangements and/or orderings. However, it should be appreciated that such specific arrangements and/or orderings may not be required. Rather, in some embodiments, such features may be arranged in a different manner and/or order than shown in the illustrative FIGS. Additionally, the inclusion of a structural or method feature in a particular FIG. is not meant to imply that such feature is required in all embodiments and, in some embodiments, it may not be included or may be combined with other features.
As used herein, the terms “about”, “approximately,” etc., in reference to a number, is used herein to include numbers that fall within a range of 10%, 5%, or 1% in either direction (greater than or less than) the number unless otherwise stated or otherwise evident from the context (except where such number would exceed 100% of a possible value).
Where electronic or software components are described as being “configured to” perform certain operations, such configuration can be accomplished, for example, by designing electronic circuits or other hardware to perform the operation, by programming programmable electronic circuits (e.g., microprocessors, or other suitable electronic circuits) to perform the operation, or any combination thereof.
The phrase “coupled to” refers to any component that is physically connected to another component either directly or indirectly, and/or any component that is in communication with another component (e.g., connected to the other component over a wired or wireless connection, and/or other suitable communication interface) either directly or indirectly.
Headings of sections provided in this patent application and the title of this patent application are for convenience only and are not to be taken as limiting the disclosure in any way.
While preferred embodiments of the present invention have been shown and described herein, it will be apparent to those skilled in the art that such embodiments are provided by way of example only. Numerous variations, changes, and substitutions will now occur to those skilled in the art without departing from the invention. Various alternatives to the embodiments of the invention described herein may be employed in practicing the invention. It is intended that the following claims define the scope of the invention and that methods and structures within the scope of these claims and their equivalents be covered thereby.