Disclosure of Invention
The application aims to provide a bottom layer obstacle avoidance method and device of a mobile robot, electronic equipment and a computer readable storage medium, so that low delay, high precision and high stability of obstacle avoidance of the mobile robot are realized.
The purpose of the application is realized by adopting the following technical scheme:
in a first aspect, the present application provides a bottom obstacle avoidance method for a mobile robot, including: acquiring a plurality of obstacle data of obstacles around the mobile robot; preprocessing the plurality of obstacle data; acquiring positioning information of the obstacles by fusing the preprocessed data of the plurality of obstacles; setting motion strategy information enabling the mobile robot to move so as to avoid the obstacle based on the obtained positioning information of the obstacle; and converting the set motion strategy information of the mobile robot into a control signal so as to control the obstacle avoidance motion of the mobile robot. The technical scheme has the advantages that network transmission delay and data copying delay of sensor data transmission with an upper-layer system can be reduced, so that the mobile robot can quickly respond to avoid obstacles; the instruction execution priority of the transmission motor at the bottom layer can be improved, and the blocking delay controlled by the transmission motor at the bottom layer is reduced; the method can also reduce the business development of the upper layer application and provide obstacle avoidance control completely independent of the upper layer application so as to improve the safety of the mobile robot based on the obstacle avoidance control.
In some optional embodiments, the obtaining the positioning information of the obstacle by fusing the preprocessed plurality of obstacle data includes: and obtaining the contour position, the moving speed and the moving direction of the obstacle by fusing the plurality of obstacle data. The technical scheme has the beneficial effects that the obstacle avoidance method can be used for avoiding the obstacle in real time in the moving process based on the outline, the speed and the direction of the obstacle.
In some optional embodiments, the obtaining the positioning information of the obstacle by fusing the preprocessed plurality of obstacle data includes: obtaining fuzzification output of an overlapping area of the plurality of obstacle data by carrying out fuzzy processing on the plurality of preprocessed obstacle data; and converting the fuzzified output into a refined output so as to obtain the positioning information of the obstacle. The technical scheme has the beneficial effects that the accuracy of the acquired position of the obstacle can be improved through the fuzzy neural network.
In some optional embodiments, obtaining a blurred output of an overlapping area of the plurality of obstacle data by blurring the preprocessed plurality of obstacle data includes: generating membership function values of the plurality of obstacle data by fuzzy division of the plurality of obstacle data to obtain fuzzy output of an overlapping region of the plurality of obstacle data. The technical scheme has the beneficial effects that the accuracy of the acquired position of the obstacle can be improved.
In some optional embodiments, the converting the fuzzified output into a refined output to obtain the location information of the obstacle includes: and converting the fuzzified output into a precise output by carrying out weight operation on the fuzzified output. The technical scheme has the beneficial effects that the accuracy of the acquired position of the obstacle can be improved.
In some optional embodiments, the obtaining the positioning information of the obstacle by fusing the preprocessed plurality of obstacle data includes: and selecting the obstacle data meeting the preset obstacle data fusion condition for fusion according to the time, position and direction information of the plurality of obstacle data. The technical scheme has the advantages that the data which are not in line with the fusion condition can be removed, so that the data fusion processing can be more effectively carried out, and the accuracy of the acquired position of the obstacle is further improved.
In some optional embodiments, the setting, based on the obtained location information of the obstacle, motion strategy information enabling the mobile robot to move while avoiding the obstacle, includes: according to the positioning information of the obstacles, a position relation model of a plurality of data acquisition devices of the mobile robot, which are used for acquiring the data of the plurality of obstacles, and the obstacles is built; and setting the motion strategy information based on the relative distance between each data acquisition device and the obstacle in the position relation model. The technical scheme has the beneficial effects that the obstacle avoidance strategy is set according to the dynamic modeling of the sensor (such as an ultrasonic sensor), so that the mobile robot can avoid the obstacle with the optimal motion track, such as the minimum steering angle, and a good obstacle avoidance effect is achieved.
In some optional embodiments, the pre-processing the plurality of obstacle data comprises: processing filtering, compensating and stacking the plurality of obstacle data; and converting the plurality of obstacle data into formatted data required for fusion processing based on the processing results of the filtering, compensating, and stacking. The technical scheme has the advantages that the data to be fused can be formatted, so that the data fusion processing can be effectively carried out, and the accuracy of the acquired position of the obstacle is further improved.
In some optional embodiments, after setting the motion strategy information of the mobile robot based on the obtained location information of the obstacle, the method further includes: and sending the motion strategy information of the mobile robot to an upper application system of the mobile robot. The technical scheme has the advantages that the broadcasting of the real-time state can be provided for the upper application layer, so that more application functions can be realized.
In a second aspect, the present application provides a bottom obstacle avoidance device for a mobile robot, including: the acquisition module is used for acquiring a plurality of obstacle data of obstacles around the mobile robot; the preprocessing module is used for preprocessing the plurality of obstacle data; the fusion module is used for fusing the preprocessed data of the plurality of obstacles to obtain the positioning information of the obstacles; a setting module configured to set motion strategy information enabling the mobile robot to move while avoiding the obstacle, based on the obtained positioning information of the obstacle; and the control module is used for converting the set motion strategy information of the mobile robot into a control signal so as to control the obstacle avoidance motion of the mobile robot.
In a third aspect, the present application provides an electronic device, where the electronic device includes a memory and a processor, where the memory stores a computer program, and the processor implements the steps of the method for avoiding the obstacle on the bottom layer of any one of the mobile robots when executing the computer program.
In a fourth aspect, the present application provides a computer-readable storage medium, which stores a computer program, and the computer program, when executed by a processor, implements the steps of the method for avoiding an obstacle on the bottom layer of any one of the mobile robots.
Detailed Description
The present application is further described with reference to the accompanying drawings and the detailed description, and it should be noted that, in the present application, the embodiments or technical features described below may be arbitrarily combined to form a new embodiment without conflict.
Referring to fig. 1, an embodiment of the present application provides a bottom obstacle avoidance method for a mobile robot, including: acquiring a plurality of obstacle data of obstacles around the mobile robot (step S1); preprocessing the plurality of obstacle data (step S2); obtaining location information of the obstacle by fusing the preprocessed plurality of obstacle data (step S3); setting motion strategy information enabling the mobile robot to move so as to avoid the obstacle, based on the obtained positioning information of the obstacle (step S4); and converting the set motion strategy information of the mobile robot into a control signal to control the obstacle avoidance motion of the mobile robot (step S5).
Therefore, network transmission delay and data copying delay of data transmission with the ultrasonic sensor of the upper-layer system can be reduced; the instruction execution priority of the transmission motor at the bottom layer (firmware layer) can be improved, and the blocking delay controlled by the transmission motor at the bottom layer is reduced; the method can also reduce the business development of the upper layer application and provide obstacle avoidance control completely independent of the upper layer application so as to improve the safety of the mobile robot based on the obstacle avoidance control.
As shown in fig. 2, step S2 includes: processing of filtering, compensating, and pushing the plurality of obstacle data (step S21); and converting the plurality of obstacle data into formatted data required for fusion processing based on the processing results of the filtering, compensating, and stacking (step S22).
Therefore, data which do not meet the fusion condition can be removed, so that data fusion processing can be more effectively performed, and the accuracy of the acquired obstacle position is further improved.
Step S3 includes: and obtaining the contour position, the moving speed and the moving direction of the obstacle by fusing the plurality of obstacle data.
Therefore, the obstacle avoidance method can be used for avoiding the obstacle in real time in the moving process based on the outline, the speed and the direction of the obstacle.
As shown in fig. 3, step S3 includes: obtaining a blurring output of an overlapping area of the plurality of obstacle data by blurring the plurality of obstacle data after the preprocessing (step S31); and converting the fuzzified output into a refined output to obtain the positioning information of the obstacle (step S32).
Therefore, the accuracy of the acquired position of the obstacle can be improved through the fuzzy neural network.
Step S31 includes: generating membership function values of the plurality of obstacle data by fuzzy division of the plurality of obstacle data to obtain fuzzy output of an overlapping region of the plurality of obstacle data. Thus, the accuracy of the acquired obstacle position can be improved.
Step S32 includes: and converting the fuzzified output into a precise output by carrying out weight operation on the fuzzified output. Thus, the accuracy of the acquired obstacle position can be improved.
Step S3 further includes: and selecting the obstacle data meeting the preset obstacle data fusion condition for fusion according to the time, position and direction information of the plurality of obstacle data.
Therefore, data which do not meet the fusion condition can be removed, so that data fusion processing can be more effectively performed, and the accuracy of the acquired obstacle position is further improved.
As shown in fig. 4, step S4 includes: constructing a position relation model between a plurality of data acquisition devices of the mobile robot for acquiring the plurality of obstacle data and the obstacle according to the positioning information of the obstacle (step S41); and setting the motion strategy information based on the relative distance between each data acquisition device and the obstacle in the positional relationship model (step S42). Therefore, according to the dynamic modeling of the ultrasonic sensor, an ultrasonic obstacle avoidance strategy is set, so that the mobile robot can avoid the obstacle by using an optimal motion track such as a minimum steering angle, and a good obstacle avoidance effect is achieved.
As shown in fig. 5, in the method for avoiding an obstacle in a floor of a mobile robot according to the present embodiment, after step S5, the method further includes: transmitting the motion policy information of the mobile robot to an upper application system of the mobile robot (step S6).
Thus, for the upper application layer, a broadcast of the real-time status can be provided, so that more application functions can be provided, for example, informing the application layer that it is not the failure information, and updating the path plan at the same time.
Referring to fig. 6 to 10, an embodiment of the present application further provides a bottom layer obstacle avoidance device of a mobile robot, where a specific implementation manner of the bottom layer obstacle avoidance device is consistent with the implementation manner and the achieved technical effect described in the foregoing embodiments of the bottom layer obstacle avoidance device, and details are not repeated.
As shown in fig. 6, the floor obstacle avoidance device 1a of the mobile robot includes: an acquisition module 11a, configured to acquire a plurality of obstacle data of obstacles around the mobile robot; a preprocessing module 12a, configured to preprocess the plurality of obstacle data; a fusion module 13a, configured to fuse the preprocessed data of the multiple obstacles to obtain location information of the obstacles; a setting module 14a configured to set motion strategy information enabling the mobile robot to move so as to avoid the obstacle, based on the obtained positioning information of the obstacle; and a control module 15a, configured to convert the set motion strategy information of the mobile robot into a control signal, so as to control obstacle avoidance motion of the mobile robot.
The fusion module 13a may obtain the contour position, the moving speed, and the moving direction of the obstacle by fusing the plurality of obstacle data.
As shown in fig. 7, the fusion module 13a may include: a blurring output unit 101a configured to perform blurring processing on the plurality of obstacle data after the preprocessing to obtain a blurring output of an overlapping area of the plurality of obstacle data; and a converting unit 102a, configured to convert the fuzzified output into a refined output, so as to obtain positioning information of the obstacle.
The fuzzy output unit 101a generates membership function values of the plurality of obstacle data by fuzzy division of the plurality of obstacle data to obtain fuzzy output of an overlapping region of the plurality of obstacle data.
The converting unit 102a converts the fuzzified output into a refined output by performing a weight operation on the fuzzified output.
The fusion module 13a may further include: and the selection unit is used for selecting the obstacle data which accords with the preset obstacle data fusion condition for fusion according to the time, position and direction information of the plurality of obstacle data.
As shown in fig. 8, the preprocessing module 12a includes: a processing unit 111a, configured to perform filtering, compensation, and stacking processing on the plurality of obstacle data; and a formatting unit 112a for converting the plurality of obstacle data into formatted data required for fusion processing based on the processing results of the filtering, compensating, and stacking.
As shown in fig. 9, the setting module 14a includes: a model building unit 104a, configured to build, according to the positioning information of the obstacle, a position relationship model between the obstacle and a plurality of data acquisition devices of the mobile robot, which are used for acquiring the plurality of obstacle data; and a motion strategy setting unit 105a configured to set the motion strategy information based on a relative distance between each of the data acquisition devices in the positional relationship model and the obstacle.
As shown in fig. 10, the obstacle avoidance device 1a of the mobile robot further includes: a sending module 16a, configured to send the motion policy information of the mobile robot to an upper application system of the mobile robot.
Specific examples of the mobile robot and the obstacle avoidance device thereof provided in the embodiments of the present application are described below with reference to fig. 11 to 15.
As shown in fig. 11, the mobile robot 1A includes 8 ultrasonic sensors 102A, a core control board 101A, and a two-wheel differential motor 30A, where the ultrasonic sensors 102A and the core control board 101A constitute an obstacle avoidance device 10A of the mobile robot.
The ultrasonic sensor 102A is used to acquire the relative distance, moving speed, and direction of an obstacle around the mobile robot 1A as data of the obstacle. The core control board 101A is used for fusing data acquired by the 8 ultrasonic sensors, and setting a motion planning strategy of the double-wheel differential motor according to the fused data. The two-wheel differential motor 30A provides a power output source. The core control board 101A controls the operation of the two-wheel differential motor 30A based on the set motion planning strategy, so that the mobile robot body performs moving operations such as forward, backward, stop, steering and the like.
In this embodiment, the ultrasonic sensor, dual drive differential motor and core control board are combined deeply. After the core control board 101A acquires the ultrasonic sensing data, preprocessing such as filtering, compensation, and stacking is performed, so that the ultrasonic sensing data is converted into formatted data required by a fusion algorithm. In addition, the core control board 101A also performs time synchronization of data among the plurality of sensor data, and screens and fuses sensor data that meets the data fusion conditions according to time, position, direction, and the like. And generating the motion planning strategy in real time according to the fused data by a fuzzy obstacle avoidance algorithm.
Because an efficient and stable command control system is arranged between the core control board 101A and the dual-drive differential motor 30A, in the process of obstacle avoidance, the response speed, the execution precision and the feedback delay are greatly higher than those of obstacle avoidance control through an upper application layer. In addition, for the upper application layer, the core control board 101A also provides broadcasting of real-time status in order to develop more rich application functions.
In the process of fusing the data acquired by the 8 ultrasonic sensors 102A, the fuzzy neural network is used for fusing the barrier data sensed by the 8 ultrasonic sensors, so that the precise position of the barrier is more accurately positioned, and a better barrier avoiding effect is obtained.
As shown in fig. 12, the fuzzy neural network includes an input layer (first layer), a membership level layer (second layer), a T-norm layer (third layer), a normalization layer (fourth layer), and an output layer (fifth layer). Obstacle data collected by 8 ultrasonic sensors are input into the fuzzy neural network from an input layer and then are converted into a fuzzy set on a corresponding domain (an overlapping part of detection regions of the ultrasonic sensors), for example, the input data x1 to xr of the ultrasonic sensors are respectively divided into a plurality of fuzzy partitions to generate membership function values, the output of each fuzzy rule is calculated, the output of each N node is further obtained, finally, weighted summation is carried out, the conversion from fuzzy output to accurate output is realized, and the accurate position of an obstacle is output.
And dynamically modeling the ultrasonic sensor according to the obstacle positioning information such as the outline position, the moving speed and the moving direction of the obstacle obtained by the obstacle data fusion. In this specific example, a dynamic modeling algorithm based on 8 ultrasonic sensors is employed. Fig. 13 is a view of the range covered by each ultrasonic sensor, in which the opening angle of each sector is α. The distance relationship measured by the ultrasonic sensor is divided into three types: a) r isA<rBOr rB>rAOr rA(-1)rBOr rB(+1)rAAt this time rB>rAAnd r isB<rA/cos(α);b)rB<<rCOr rc>>>rBOr rB(-2)rCOr rC(+2)rBAt this time rC>rBIs/cos (. alpha.) and rC<rB+rth,rthRepresents a set threshold; c) r isC<<<rDOr rD>>>rCOr rC(-3)rDOr rD(+3)rCAt this time rD<rC+rthWherein r isA,rB,rc,rDRespectively represent the vector of the obstacle sensed by the current ultrasonic sensor relative to the mobile robot, i.e. any point from the origin to the arc edge in fig. 13.
FIG. 14 further illustrates the ultrasonic modeling relationship, where the currently investigated sensor is numbered i, and the 4 sensors in proximity are numbered i, k, l, m, in terms of proximity. There are 4 pairs of relationships between the adjacent 5 measured data, i and j, i and k, j and k, k and m, which are respectively marked as (ij), (ik), (jl), (km). The values of these 4 pairs of relationships are (+/-1), (+/-2), and (+/-3) as described previously.
FIG. 15 is an ultrasound modeling environment fusion map. As shown in FIG. 15, in context fusion, transferThe relationships between sensors i and j, i and k, j and l, k and m are (1), (-2), (-1), (-2), i.e. ri>rj,ri<<rk,rj<rl,rk<rmConnecting the end points of the corresponding sector arcs, numbering the sensors from 1 to 8 starting from 0 DEG anticlockwise, numbering i (5) at present, and rthThe dashed line represents the actual environment and the solid line represents the established model, 1.25.
The ultrasonic obstacle avoidance strategy is set based on the relative distance between each ultrasonic sensor and an obstacle in the dynamic modeling of the ultrasonic sensors. In a general case, when one ultrasonic sensor senses an obstacle, the mobile robot rotates to avoid the obstacle. At this time, the adjacent ultrasonic sensors can sense the obstacle, so that the mobile robot needs to continue to rotate until the next ultrasonic sensor cannot detect the obstacle, and the mobile robot finishes obstacle avoidance operation. According to the dynamic modeling of the ultrasonic sensor in the specific example, an ultrasonic obstacle avoidance strategy is set, so that the mobile robot can bypass the obstacle at the minimum steering angle and does not touch the obstacle, and a good obstacle avoidance effect is achieved.
Preferably, the ultrasonic obstacle avoidance strategy can be set based on the installation position of the ultrasonic sensor, the relative distance between each ultrasonic sensor and the obstacle, and the size of the fan-shaped angle, so that the obstacle avoidance can be performed more accurately, and a better obstacle avoidance effect can be obtained.
The number of the ultrasonic sensors in the above-described specific example is 8, however, it may not be limited to this number, and the number of the ultrasonic sensors may be any number of 2 or more.
According to the specific embodiment of the application, the core control board is directly connected to the ultrasonic sensor, a planning strategy is obtained through data processing and algorithm operation, the command set is directly operated to control the power transmission motor, and the current state is broadcasted to the upper layer application. According to the specific embodiment of the application, the timeliness, the usability and the popularity of obstacle avoidance can be improved. The direct ultrasonic obstacle avoidance of the core control panel has more advantages than the ultrasonic obstacle avoidance applied to the upper layer, and comprises the following five aspects: (1) network transmission delay and data copying delay between data transmission of the ultrasonic sensor can be reduced; (2) the command execution priority of the transmission motor can be improved, and the blocking delay of the control of the transmission motor is reduced; (3) the scheduling delay of the application service can be reduced; (4) the independent function modules can be used by the upper layer application, so that the service development of the upper layer application is reduced; and (5) obstacle avoidance control completely independent of upper application is provided, and the safety of the mobile robot based on the obstacle avoidance control is improved.
A specific example of the obstacle avoidance method for a mobile robot according to the embodiment of the present application is described below with reference to fig. 16.
As shown in fig. 16, the present specific example includes: a sensor driving step S101, a data preprocessing step S102, a data fusion step S103, a strategy planning step S104, a motion control step S105 and a state broadcasting step S106. In the sensor driving step S101, the ultrasonic sensing data may be driven to be acquired in real time; in a data preprocessing step S102, filtering, compensating, stacking, and the like are performed on the acquired ultrasonic sensor data to obtain formatted data; in the data fusion step S103, time synchronization of data is performed among the plurality of sensor data, sensor data that meets the fusion condition is screened according to time, position, direction, and the like, and then data fusion between the plurality of ultrasonic waves is performed, so as to accurately position the position and direction of an obstacle around the mobile robot; in the strategy planning step S104, based on the position and direction of the positioned obstacle, planning the movement direction of the mobile robot and the expected movement of the obstacle and the surrounding environment; in the motion control step S105, directly controlling the transmission attribute of the double-drive differential motor according to an expected motion plan, so that the double-drive differential motor walks according to a strategy plan result; in the status broadcasting step S106, communication status broadcasting with the upper layer software system is performed so that the entire system maintains good online interactive capability.
Fig. 17 shows a more specific flow example of the obstacle avoidance method, in which 8 ultrasonic sensor data are acquired in real time, and the sensor data judged to be valid are subjected to preprocessing operations of formatting, filtering, and stacking, the preprocessed data are fused to perform planning of a motion strategy and motion control, and finally, the state is broadcast to an upper software system.
Referring to fig. 18, an embodiment of the present application further provides an electronic device 200, where the electronic device 200 includes at least one memory 210, at least one processor 220, and a bus 230 connecting different platform systems.
The memory 210 may include readable media in the form of volatile memory, such as Random Access Memory (RAM)211 and/or cache memory 212, and may further include Read Only Memory (ROM) 213.
The memory 210 further stores a computer program, and the computer program can be executed by the processor 220, so that the processor 220 executes the steps of the obstacle avoidance method for the mobile robot in the embodiment of the present application, and a specific implementation manner of the method is consistent with the implementation manner and the achieved technical effect described in the embodiment of the obstacle avoidance method for the mobile robot, and details of some of the method are not repeated.
Memory 210 may also include a utility 214 having at least one program module 215, such program modules 215 including, but not limited to: an operating system, one or more application programs, other program modules, and program data, each of which, or some combination thereof, may comprise an implementation of a network environment.
Accordingly, the processor 220 may execute the computer programs described above, and may execute the utility 214.
Bus 230 may be a local bus representing one or more of several types of bus structures, including a memory bus or memory controller, a peripheral bus, an accelerated graphics port, a processor, or any other type of bus structure.
The electronic device 200 may also communicate with one or more external devices 240, such as a keyboard, pointing device, bluetooth device, etc., and may also communicate with one or more devices capable of interacting with the electronic device 200, and/or with any devices (e.g., routers, modems, etc.) that enable the electronic device 200 to communicate with one or more other computing devices. Such communication may be through input-output interface 250. Also, the electronic device 200 may communicate with one or more networks (e.g., a Local Area Network (LAN), a Wide Area Network (WAN), and/or a public network such as the Internet) via the network adapter 260. The network adapter 260 may communicate with other modules of the electronic device 200 via the bus 230. It should be appreciated that although not shown in the figures, other hardware and/or software modules may be used in conjunction with the electronic device 200, including but not limited to: microcode, device drivers, redundant processors, external disk drive arrays, RAID systems, tape drives, and data backup storage platforms, to name a few.
The embodiment of the present application further provides a computer-readable storage medium, where the computer-readable storage medium is used for storing a computer program, and when the computer program is executed, the steps of the obstacle avoidance method for the mobile robot in the embodiment of the present application are implemented, and a specific implementation manner of the method is consistent with the implementation manner and the achieved technical effect described in the embodiment of the obstacle avoidance method for the mobile robot, and some contents are not described again.
Fig. 19 shows a program product 300 for implementing the obstacle avoidance method for the mobile robot according to the present embodiment, which may employ a portable compact disc read only memory (CD-ROM) and include program codes, and may be executed on a terminal device, such as a personal computer. However, the program product 300 of the present invention is not so limited, and in this application, a readable storage medium may be any tangible medium that can contain, or store a program for use by or in connection with an instruction execution system, apparatus, or device. Program product 300 may employ any combination of one or more readable media. The readable medium may be a readable signal medium or a readable storage medium. A readable storage medium may be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any combination of the foregoing. More specific examples (a non-exhaustive list) of the readable storage medium include: an electrical connection having one or more wires, a portable disk, a hard disk, a Random Access Memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing.
A computer readable storage medium may include a propagated data signal with readable program code embodied therein, for example, in baseband or as part of a carrier wave. Such a propagated data signal may take many forms, including, but not limited to, electro-magnetic, optical, or any suitable combination thereof. A readable storage medium may also be any readable medium that can communicate, propagate, or transport the program for use by or in connection with the instruction execution system, apparatus, or device. Program code embodied on a readable storage medium may be transmitted using any appropriate medium, including but not limited to wireless, wireline, optical fiber cable, RF, etc., or any suitable combination of the foregoing. Program code for carrying out operations for aspects of the present invention may be written in any combination of one or more programming languages, including an object oriented programming language such as Java, C + + or the like and conventional procedural programming languages, such as the C language or similar programming languages. The program code may execute entirely on the user's computing device, partly on the user's device, as a stand-alone software package, partly on the user's computing device and partly on a remote computing device, or entirely on the remote computing device or server. In the case of a remote computing device, the remote computing device may be connected to the user computing device through any kind of network, including a Local Area Network (LAN) or a Wide Area Network (WAN), or may be connected to an external computing device (e.g., through the internet using an internet service provider).
The foregoing description and drawings are only for purposes of illustrating the preferred embodiments of the present application and are not intended to limit the present application, which is, therefore, to the contrary, the intention is to cover all modifications, equivalents, and alternatives falling within the spirit and scope of the present application.