System and method for haptic navigation
12203770 ยท 2025-01-21
Assignee
Inventors
Cpc classification
G01C21/3652
PHYSICS
G08B6/00
PHYSICS
G01B7/30
PHYSICS
International classification
G08B6/00
PHYSICS
G01B7/30
PHYSICS
Abstract
A haptic navigation system is disclosed, comprising a haptic navigation device with one or more sensors, including an angular sensor, to detect the angle between the device's orientation and a target. The system also includes a vibration motor that generates haptic feedback based on mapped patterns derived from the device's orientation relative to the target. A central processing unit (CPU) interprets the angular data from the sensor, translates it into dynamic haptic patterns, and controls the vibration motor accordingly. The system further includes a memory to store the mapping of the dynamic haptic patterns and a graphic user interface (GUI) to interact with the haptic feedback. This haptic navigation system provides users with tactile guidance and enhances their interaction with electronic devices.
Claims
1. A haptic navigation device configured to be communicatively coupled to a target comprising: one or more sensors including at least an angular sensor, the angular sensor configured to detect angular data of an angle between an orientation of the haptic navigation device and the target; a vibration motor, the vibration motor configured to generate haptic feedback based on mapped patterns based on the orientation of the haptic navigation device relative to the target; a central processing unit (CPU) configured to: execute instructions to implement the haptic navigation device to interpret the angular data that is output from the angular sensor; translate the angular data to form a mapping of dynamic haptic patterns; and control the vibration motor of the haptic navigation device to correspond to the mapping of the dynamic haptic patterns; a memory, the memory to store the mapping of the dynamic haptic patterns; and a graphic user interface (GPI) configured to interact with the haptic feedback.
2. The haptic navigation device of claim 1, wherein the memory is configured to store a predetermined haptic parameter values.
3. The haptic navigation device of claim 1, wherein the angular data is mapped using one or more mapping algorithms.
4. The haptic navigation device of claim 1, wherein the haptic feedback is a vibration output.
5. The haptic navigation device of claim 4, wherein the vibration output is a frequency change.
6. The haptic navigation device of claim 4, wherein the vibration output is an amplitude change.
7. The haptic navigation device of claim 4, wherein the vibration output is intermittent.
8. The haptic navigation device of claim 4, wherein the vibration output is continuous.
9. The haptic navigation device of claim 4, wherein the vibration output has a range of about 0 Hz to about 1000 Hz.
10. The haptic navigation device of claim 4, wherein the vibration output has a gradient transition from a substantially low intensity to a substantially high intensity according to the orientation determined by the angular data.
11. The haptic navigation device of claim 4, further comprising: an adaptive control algorithm to dynamically adjust parameters in real-time.
12. The haptic navigation device of claim 1, wherein the one or more sensors include at least one of geolocation, a gyroscope, and an accelerometer.
13. A method of implementing a haptic navigation device configured to be communicatively coupled to a target, comprising: providing the haptic navigation device; rendering a generation of haptic feedback to provide a cue to a user; and rendering a mapping pattern, using one or more algorithms, corresponding to a haptic response with varying degrees of deviation in orientation of the haptic navigation device implementing the haptic navigation device from the target, comprising: measuring angle measurements of the orientation of the haptic navigation device in relation to the target, using at least one sensor of a gyroscope and an accelerometer; interpreting, using one or more algorithms, the angle measurements; and translating the angle measurements, using the one or more algorithms, into corresponding the haptic feedback.
14. The method of claim 13, wherein the haptic feedback is a vibration output.
15. The method of claim 14, wherein the vibration output is a frequency change.
16. The method of claim 14, wherein the vibration output is an amplitude change.
17. The method of claim 14, wherein the vibration output is intermittent.
18. The method of claim 14, wherein the vibration output is continuous.
19. The method of claim 14, wherein the vibration output has a range of about 0 Hz to about 1000 Hz.
20. The method of claim 14, further comprising: dynamically adjusting parameters in real-time using an adaptive control algorithm.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
(1)
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
(11)
(12)
(13)
(14)
(15)
(16)
(17)
(18)
(19)
(20)
(21)
(22)
(23)
(24)
(25)
(26)
(27)
(28)
(29)
(30)
(31)
(32)
(33)
(34)
(35)
(36)
(37)
(38)
(39)
DESCRIPTION OF THE PREFERRED EMBODIMENTS
(40) The preferred embodiments of the present invention will now be described with reference to the drawings. Identical elements in the various figures are identified with the same reference numerals.
(41) Reference will now be made in detail to each embodiment of the present invention. Such embodiments are provided by way of explanation of the present invention, which is not intended to be limited thereto. In fact, those of ordinary skill in the art may appreciate upon reading the present specification and viewing the present drawings that various modifications and variations can be made thereto.
(42) As used herein, the term haptics refers to the perception of objects by touch, like the vibrations in a mobile device.
(43) As used herein, the term computer refers to a machine, apparatus, or device that is capable of accepting and performing logic operations from software code. The term application, software, software code or computer software refers to any set of instructions operable to cause a computer to perform an operation. Software code may be operated on by an engine or processor. Thus, the methods and systems of the present invention may be performed by a computer or computing device having a processor based on instructions received by computer applications and software.
(44) The term haptic navigation device, electronic device, mobile device, or client device, as used herein is a type of computer comprising circuitry and configured to generally perform functions such as recording audio, photos, videos and handwritten notes; displaying or reproducing audio, photos, videos and handwritten notes; storing, retrieving, or manipulation of electronic data; providing electrical communications and network connectivity; or any other similar function. Non-limiting examples of electronic devices include: personal computers (PCs), workstations, laptops, tablet PCs, cell phones, digital music players, digital notepads, digital pens or any electronic device capable of running computer software and displaying information to a user, memory cards, other memory storage devices, digital cameras, external battery packs, external charging devices, and the like. Certain types of electronic devices which are portable and easily carried by a person from one location to another may sometimes be referred to as a portable electronic device or portable device. Some non-limiting examples of portable devices include: cell phones, smartphones, tablet computers, laptop computers, wearable computers such as smartwatches, fitness rings, fitness trackers, etc.
(45) The term computer readable medium as used herein refers to any medium that participates in providing instructions to the processor for execution. A computer readable medium may take many forms, including but not limited to, non-volatile media, volatile media, and transmission media. Non-volatile media includes, for example, optical, magnetic disks, and magneto-optical disks, such as the hard disk or the removable media drive. Volatile media includes dynamic memory, such as the main memory. Transmission media includes coaxial cables, copper wire and fiber optics, including the wires that make up the bus. Transmission media may also take the form of acoustic or light waves, such as those generated during radio wave and infrared data communications.
(46) As used herein the term data network or network shall mean an infrastructure capable of connecting two or more computers such as client devices either using wires or wirelessly allowing them to transmit and receive data. Non-limiting examples of data networks may include the internet or wireless networks or (e.g., a wireless network) which may include WIFI and cellular networks. For example, a network may include a local area network (LAN), a wide area network (WAN) (e.g., the Internet), a mobile relay network, a metropolitan area network (MAN), an ad hoc network, a telephone network (e.g., a Public Switched Telephone Network (PSTN)), a cellular network, a Zigby network, or a voice-over-IP (VOIP) network.
(47) As used herein, the term database or DB shall generally mean a digital collection of data or information. A database may be stored on a remote server and accessed by a client device through the Internet (e.g., the database is in the cloud) or alternatively in some embodiments the database may be stored on the client device or remote computer itself (e.g., local storage). A data store as used herein may contain or comprise a database (e.g., information and data from a database may be recorded into a medium on a data store).
(48) A computer system configured to implement a method for providing a Haptic Line is depicted in
(49) The computing device 104 of
(50) The computing device 104 may also comprise one or more processors, one or more memories, and one or more computer-readable hardware storage devices, which will be described further herein with regards to
(51) For example, the user 102 may interact with the haptic creative studio 114 to create, save, and share haptics (e.g., Haptic Lines) or Haptic Line collections with others. Specifically, the user 102 may interact with the haptic creative studio 114 to easily draw, save, and edit the Haptic Lines. The user 102 may then engage the haptic creative studio 114 to assign the Haptic Lines created to notifications (e.g., calendar alerts, reminders, etc.) on the computing device 104.
(52) When the user 102 engages the haptic creative studio 114, the user 102 may be prompted to login using an email address 105 and a password 118 or may be prompted to sign up 120 to utilize the service, as shown in
(53) Once the Haptic Line engine 108 verifies an identity of the user 102, the user 102 may be directed to a welcome or home screen, as shown in
(54)
(55)
(56)
(57)
(58) Further, in some examples, a scrubber line may be displayed via the GUI 112 to show visually what portion of the Haptic Line is playing. It should be appreciated that the scrubber line movement will dictated by the duration and that the user 102 may drag his/her fingers to move the scrubber line manually. The Haptic Line will output in correspondence to the scrubber line location.
(59) As such, once the Haptic Line is drawn in portrait or landscape mode, the Haptic Line is converted into a haptic file format for computing device 104, the WAYBAND, or another smart device that allows for playback of the Haptic Line over the user-customized duration in vibrations that the user 102 can feel from the computing device 104 or directly from the WAYBAND.
(60) Further, once customized, the Haptic Line may be saved to the computing device 104 or the database 106 (e.g., via a save haptic box 148 of
(61)
(62)
(63)
(64)
(65)
(66) In some embodiments, at least an angular sensor is provided. The angular sensor is configured to detect angular data of an angle between an orientation of the electronic device 3710 and a target. The CPU is configured to execute instructions to implement the haptic navigation system 3700 to interpret the angular data that may be output from the angular sensor. Translation of the angular data is configured to form a mapping of dynamic haptic patterns. Control of the vibration motor 3712 of the electronic device 3710 may be implemented to correspond to the mapping of the dynamic haptic patterns.
(67) In some embodiments, the memory 3714 may be configured to store a predetermined haptic parameter values. In some embodiments, the angular data may be mapped using one or more mapping algorithms. In some embodiments, the haptic feedback may be a vibration output. In some embodiments, the vibration output may be a frequency change. In some embodiments, the vibration output may be an amplitude change.
(68) In some embodiments, the vibration output may be intermittent. In some embodiments, the vibration output may be continuous. In some embodiments, the vibration output may include a range of about 0 Hz to about 1000 Hz. In some embodiments, the vibration output may include a gradient transition from a substantially low intensity to a substantially to high according to the orientation determined by the angular data. In some embodiments, the haptic navigation system 3700 may include an adaptive control algorithm to dynamically adjust parameters in real-time. In some embodiments, at least one of geolocation, a gyroscope, and an accelerometer.
(69)
(70) In some embodiments, at 3840, the rendering may include measuring angle measurements of the orientation of the haptic navigation device in relation to the target, using at least one sensor of a gyroscope and an accelerometer. At 3850, the rendering may include interpreting, using one or more algorithms, the angle measurements. At 3860, the rendering may include translating the angle measurements, using the one or more algorithms, into corresponding the haptic feedback.
(71) In some embodiments, the haptic feedback may be a vibration output. In some embodiments, the vibration output may be a frequency change. In some embodiments, the vibration output may be an amplitude change. In some embodiments, the vibration output may be intermittent. In some embodiments, the vibration output may be continuous. In some embodiments, the vibration output may have a range of about 0 Hz to about 1000 Hz. In some embodiments, the method may include dynamically adjusting parameters in real-time using an adaptive control algorithm.
(72) The Haptic Navigation system may include vibration output, either through alterations in frequency or amplitude, presenting either rhythmic beats or a seamless, continuous haptic sensation. In an embodiment, the haptic output ranges broadly from 0 to 1000 Hz and works in conjunction with a suite of sensors tied to orientation, including geolocation, gyroscope, accelerometer, and similar sensors commonly present in smartphones (typically operating within a general range of 150 to 180 Hz). Further, the strength modulation of the haptic feedback correlates with the movement of the haptic navigation device including, but not limited to, a smartphone and/or a wearable device. In a first case, no vibration occurs when the haptic navigation device is facing the correct direction, and the vibration is gradually intensifying to the highest vibration when facing the wrong direction. In a second case, the highest vibration may be felt when the haptic navigation device is oriented correctly at which the target object and/or location is substantially coplanar with the haptic navigation device. Thus, reducing to no vibration when facing the wrong direction. The transition between these states forms a smooth gradient based on sensor-derived orientation data.
(73) Moreover, when the haptic navigation device is aligned in the correct direction, a distinctive heartbeat pulse haptic feedback is generated to signify the correct orientation. This pulsation may be adjusted within a frequency range of 0 to 5 seconds, functioning as a tempo indicator.
(74) In an embodiment, the Android version incorporates a specific haptic customization interface known as the Haptic Wheel. This interface offers similar functionalities to the Haptic Line but is designed differently, providing users with practical functions to tailor their haptic navigation experience according to their preferences and orientation needs.
(75)
(76) Concurrently, sound feedback is employed to offer supplementary guidance. Audio cues, delivered through headphones or bone conduction devices, complement the haptic feedback. These auditory signals could include spoken instructions or tones representing various directions and alerts, synchronized with the haptic cues. For example, a voice prompt might say, Turn left in 50 meters, while a distinct sound could indicate the presence of a critical obstacle. The synchronization of haptic and sound feedback may provide a seamless and intuitive navigation experience. The system mat dynamically adjust the frequency, intensity, and combination of haptic vibrations and audio signals based on real-time changes in the running environment, ensuring the runner receives timely and relevant guidance. Moreover, the system may offer options for users to personalize feedback preferences based on their comfort, sensitivity, and individual needs. Accessibility features, such as compatibility with screen readers or support for multiple languages, contribute to making the navigation system inclusive for individuals with varying abilities.
(77) In an embodiment of the haptic wheel navigation system, the process of mapping patterns involves correlating distinct haptic responses with varying degrees of deviation in orientation from a specified target. This mapping procedure is commonly established through a predefined set of rules or algorithms. This mapping may occur when the system first measures the angle or deviation of the user's orientation concerning the target, using sensors such as gyroscopes, accelerometers, and/or similar orientation sensors. Subsequently, a mapping algorithm interprets these angular measurements and translates them into corresponding haptic patterns. This algorithm defines the relationship between the measured angle and the parameters governing haptic feedback, including intensity, duration, and delay. Based on the mapped angular measurements, the system dynamically adjusts various parameters of the haptic feedback. These parameters encompass intensity, determining the strength of the haptic feedback based on the degree of deviation, duration specifying the time for each haptic pulse or vibration, delay indicating the interval between successive haptic pulses, and pulse width defining the shape or duration of each haptic pulse.
(78) Users may customize these parameters through sliders or controls, enabling them to fine-tune intensity, delay, and pulse width in alignment with their preferences or specific requirements. Furthermore, the system continually generates real-time haptic feedback as the user's orientation changes concerning the target. This immediate feedback provides tactile cues, guiding the user toward the desired orientation or target. The mapping process involves interpreting angular measurements via algorithms to ascertain haptic feedback parameters. This enables the system to generate suitable tactile sensations corresponding to the user's orientation concerning the specified target.
(79) Various algorithms can be employed within a haptic navigation system to enhance user interaction and aid navigation. These algorithms encompass Angular Mapping, which interprets orientation sensor data to create corresponding haptic patterns based on the user's orientation in relation to a target. Obstacle Detection algorithms identify obstacles, offering haptic guidance for circumnavigation. Pathfinding algorithms calculate optimal routes and provide directional cues through haptic feedback. Machine Learning or AI-based algorithms adapt feedback based on user behavior or environmental changes. Adaptive Control algorithms dynamically adjust parameters in real-time for consistent feedback. Tactile Pattern Recognition algorithms interpret received haptic patterns for meaningful cues, and Feedback Stability algorithms maintain the reliability and comfort of the haptic experience. Each algorithm contributes to improving the system's ability to provide informative and intuitive haptic guidance during navigation.
(80) In the context of haptic navigation or haptic systems, rendering refers to the creation or generation of tactile or haptic feedback. This feedback is rendered in the form of physical sensations or vibrations that users perceive through touch. In the haptic navigation system, various elements might be rendered or generated to provide tactile cues to the user. For instance, the system could render vibrations, pulses, or patterns corresponding to different navigational instructions or environmental conditions. These rendered sensations are felt by the user, providing tactile guidance or information about their surroundings, directions, obstacles, or other relevant cues to aid in navigation or interaction with the system. Rendering involves the creation or generation of specific tactile sensations or patterns that users can feel and interpret through their sense of touch as part of the haptic feedback provided by the system.
(81) The identification of the haptic line system's direction and/or orientation involves the use of computer vision through a camera combined with sensors, to ascertain the positioning and/or directional aspect of the users. This alignment with haptic technology aims to establish control over guiding individuals or enhancing haptic encounters. Integrating computer vision, AR, and VR settings, whether with or without geo/orientation sensors, allows for outputting sequential haptic cues. These cues serve the purpose of identifying and maintaining the user's intended path and/or offering supplementary navigational guidance.
(82) In some aspects, the techniques described herein relate to a haptic navigation device configured to be communicatively coupled to a target including, but not limited to an object, a user, and/or an individual. The haptic navigation device may include: one or more sensors including at least an angular sensor, the angular sensor configured to detect angular data of an angle between an orientation of the haptic navigation device and the target; a vibration motor, the vibration motor configured to generate haptic feedback based on mapped patterns based on the orientation of the haptic navigation device relative to the target; a central processing unit (CPU) configured to: execute instructions to implement the haptic navigation device to interpret the angular data that is output from the angular sensor; translate the angular data to form a mapping of dynamic haptic patterns; and control the vibration motor of the haptic navigation device to correspond to the mapping of the dynamic haptic patterns; a memory, the memory to store the mapping of the dynamic haptic patterns; and a graphic user interface (GPI) configured to interact with the haptic feedback.
(83) In some aspects, the techniques described herein relate to a haptic navigation device, wherein the memory is configured to store a predetermined haptic parameter values.
(84) In some aspects, the techniques described herein relate to a haptic navigation device, wherein the angular data is mapped using one or more mapping algorithms.
(85) In some aspects, the techniques described herein relate to a haptic navigation device, wherein the haptic feedback is a vibration output.
(86) In some aspects, the techniques described herein relate to a haptic navigation device, wherein the vibration output is a frequency change.
(87) In some aspects, the techniques described herein relate to a haptic navigation device, wherein the vibration output is an amplitude change.
(88) In some aspects, the techniques described herein relate to a haptic navigation device, wherein the vibration output is intermittent.
(89) In some aspects, the techniques described herein relate to a haptic navigation device, wherein the vibration output is continuous.
(90) In some aspects, the techniques described herein relate to a haptic navigation device, wherein the vibration output has a range of about 0 Hz to about 1000 Hz.
(91) In some aspects, the techniques described herein relate to a haptic navigation device, wherein the vibration output has a gradient transition from a substantially low intensity to a substantially to high according to the orientation determined by the angular data.
(92) In some aspects, the techniques described herein relate to a haptic navigation device, further including: an adaptive control algorithm to dynamically adjust parameters in real-time.
(93) In some aspects, the techniques described herein relate to a haptic navigation device, wherein the one or more sensors include at least one of geolocation, a gyroscope, and an accelerometer.
(94) In some aspects, the techniques described herein relate to a method of implementing a haptic navigation device configured to be communicatively coupled to a target, including: providing the haptic navigation device; rendering a generation of haptic feedback to provide a cue to a user; and rendering a mapping pattern, using one or more algorithms, corresponding to a haptic response with varying degrees of deviation in orientation of the haptic navigation device implementing the haptic navigation device from the target, including: measuring angle measurements of the orientation of the haptic navigation device in relation to the target, using at least one sensor of a gyroscope and an accelerometer; interpreting, using one or more algorithms, the angle measurements; and translating the angle measurements, using the one or more algorithms, into corresponding the haptic feedback.
(95) In some aspects, the techniques described herein relate to a method, wherein the haptic feedback is a vibration output.
(96) In some aspects, the techniques described herein relate to a method, wherein the vibration output is a frequency change.
(97) In some aspects, the techniques described herein relate to a method, wherein the vibration output is an amplitude change.
(98) In some aspects, the techniques described herein relate to a method, wherein the vibration output is intermittent.
(99) In some aspects, the techniques described herein relate to a method, wherein the vibration output is continuous.
(100) In some aspects, the techniques described herein relate to a method, wherein the vibration output has a range of about 0 Hz to about 1000 Hz.
(101) In some aspects, the techniques described herein relate to a method, further including: dynamically adjusting parameters in real-time using an adaptive control algorithm.
(102) Computer System
(103) In some embodiments, the present invention may be a computer system, a method, and/or the computing device 116 (of
(104) In the basic configuration 232 of the computing device 222 of
(105) Depending on the desired configuration, the processor 234 may be of any type, including, but not limited to, a microprocessor (uP), a microcontroller (uC), and a digital signal processor (DSP), or any combination thereof. Further, the processor 234 may include one more levels of caching, such as a level cache memory 236, a processor core 238, and registers 240, among other examples. The processor core 238 may include an arithmetic logic unit (ALU), a floating point unit (FPU), and/or a digital signal processing core (DSP Core), or any combination thereof. A memory controller 242 may be used with the processor 234, or, in some implementations, the memory controller 242 may be an internal part of the memory controller 242.
(106) Depending on the desired configuration, the system memory 224 may be of any type, including, but not limited to, volatile memory (such as RAM), and/or non-volatile memory (such as ROM, flash memory, etc.), or any combination thereof. The system memory 224 includes an operating system 226, one or more engines, such as the Haptic Line engine 108, and program data 230. The system memory 224 may also include a storage engine 228 that may store any information disclosed herein.
(107) Moreover, the computing device 222 may have additional features or functionality, and additional interfaces to facilitate communications between the basic configuration 232 and any desired devices and interfaces. For example, a bus/interface controller 248 is used to facilitate communications between the basic configuration 232 and data storage devices 246 via a storage interface bus 250. The data storage devices 246 may be one or more removable storage devices 252, one or more non-removable storage devices 254, or a combination thereof. Examples of the one or more removable storage devices 252 and the one or more non-removable storage devices 254 include magnetic disk devices (such as flexible disk drives and hard-disk drives (HDD)), optical disk drives (such as compact disk (CD) drives or digital versatile disk (DVD) drives), solid state drives (SSD), and tape drives, among others.
(108) In some embodiments, an interface bus 256 facilitates communication from various interface devices (e.g., one or more output devices 280, one or more peripheral interfaces 272, and one or more communication devices 264) to the basic configuration 232 via the bus/interface controller 256. Some of the one or more output devices 280 include a graphics processing unit 278 and an audio processing unit 276, which are configured to communicate to various external devices, such as a display or speakers, via one or more A/V ports 274.
(109) The one or more peripheral interfaces 272 may include a serial interface controller 270 or a parallel interface controller 266, which are configured to communicate with external devices, such as input devices (e.g., a keyboard, a mouse, a pen, a voice input device, or a touch input device, etc.) or other peripheral devices (e.g., a printer or a scanner, etc.) via one or more I/O ports 268.
(110) Further, the one or more communication devices 264 may include a network controller 258, which is arranged to facilitate communication with one or more other computing devices 262 over a network communication link via one or more communication ports 260. The one or more other computing devices 262 include servers, the database, mobile devices, and comparable devices.
(111) The network communication link is an example of a communication media. The communication media are typically embodied by the computer-readable instructions, data structures, program modules, or other data in a modulated data signal, such as a carrier wave or other transport mechanism, and include any information delivery media. A modulated data signal is a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. By way of example, and not limitation, the communication media may include wired media (such as a wired network or direct-wired connection) and wireless media (such as acoustic, radio frequency (RF), microwave, infrared (IR), and other wireless media). The term computer-readable media, as used herein, includes both storage media and communication media.
(112) It should be appreciated that the system memory 224, the one or more removable storage devices 252, and the one or more non-removable storage devices 254 are examples of the computer-readable storage media. The computer-readable storage media is a tangible device that can retain and store instructions (e.g., program code) for use by an instruction execution device (e.g., the computing device 222). Any such, computer storage media is part of the computing device 222.
(113) The computer readable storage media/medium can be a tangible device that can retain and store instructions for use by an instruction execution device. The computer readable storage media/medium may be, for example, but is not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, and/or a semiconductor storage device, or any suitable combination of the foregoing. A non-exhaustive list of more specific examples of the computer readable storage media/medium includes the following: a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), a static random access memory (SRAM), a portable compact disc read-only memory (CD-ROM), a digital versatile disk (DVD), a memory stick, a floppy disk, and/or a mechanically encoded device (such as punch-cards or raised structures in a groove having instructions recorded thereon), and any suitable combination of the foregoing. A computer readable storage medium, as used herein, is not to be construed as being transitory signals per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through a waveguide or other transmission media (e.g., light pulses passing through a fiber-optic cable), or electrical signals transmitted through a wire.
(114) Aspects of the present invention are described herein regarding illustrations and/or block diagrams of methods, computer systems, and computing devices according to embodiments of the invention. It will be understood that each block in the block diagrams, and combinations of the blocks, can be implemented by the computer-readable instructions (e.g., the program code).
(115) The computer-readable instructions are provided to the processor 234 of a general purpose computer, special purpose computer, or other programmable data processing apparatus (e.g., the computing device 222) to produce a machine, such that the instructions, which execute via the processor 234 of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the block diagram blocks. These computer-readable instructions are also stored in a computer-readable storage medium that can direct a computer, a programmable data processing apparatus, and/or other devices to function in a particular manner, such that the computer-readable storage medium having instructions stored therein comprises an article of manufacture including instructions, which implement aspects of the functions/acts specified in the block diagram blocks.
(116) The computer-readable instructions (e.g., the program code) are also loaded onto a computer (e.g. the computing device 222), another programmable data processing apparatus, or another device to cause a series of operational steps to be performed on the computer, the other programmable apparatus, or the other device to produce a computer implemented process, such that the instructions, which execute on the computer, the other programmable apparatus, or the other device, implement the functions/acts specified in the block diagram blocks.
(117) Computer readable program instructions described herein can also be downloaded to respective computing/processing devices from a computer readable storage medium or to an external computer or external storage device via a network (e.g., the Internet, a local area network, a wide area network, and/or a wireless network). The network may comprise copper transmission cables, optical transmission fibers, wireless transmission, routers, firewalls, switches, gateway computers, and/or edge servers. A network adapter card or network interface in each computing/processing device receives computer readable program instructions from the network and forwards the computer readable program instructions for storage in a computer readable storage medium within the respective computing/processing device.
(118) 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. The computer readable program instructions may execute entirely on the user's computer/computing device, partly on the user's computer/computing device, as a stand-alone software package, partly on the user's computer/computing device and partly on a remote computer/computing device or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider). In some embodiments, electronic circuitry including, for example, programmable logic circuitry, field-programmable gate arrays (FPGA), or programmable logic arrays (PLA) may execute the computer readable program instructions by utilizing state information of the computer readable program instructions to personalize the electronic circuitry, in order to perform aspects of the present invention.
(119) Aspects of the present invention are described herein with reference to block diagrams of methods, computer systems, and computing devices according to embodiments of the invention. It will be understood that each block and combinations of blocks in the diagrams, can be implemented by the computer readable program instructions.
(120) The block diagrams in the Figures illustrate the architecture, functionality, and operation of possible implementations of computer systems, methods, and computing devices according to various embodiments of the present invention. In this regard, each block in the block diagrams may represent a module, a segment, or a portion of executable instructions for implementing the specified logical function(s). In some alternative implementations, the functions noted in the blocks may occur out of the order noted in the Figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block and combinations of blocks can be implemented by special purpose hardware-based systems that perform the specified functions or acts or carry out combinations of special purpose hardware and computer instructions.
(121) Another embodiment of the invention provides a method that performs the process steps on a subscription, advertising, and/or fee basis. That is, a service provider can offer to assist in the method steps described herein. In this case, the service provider can create, maintain, and/or support, etc. a computer infrastructure that performs the process steps for one or more customers. In return, the service provider can receive payment from the customer(s) under a subscription and/or fee agreement, and/or the service provider can receive payment from the sale of advertising content to one or more third parties.
(122) The descriptions of the various embodiments of the present invention have been presented for purposes of illustration, but are not intended to be exhaustive or limited to the embodiments disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the described embodiments. The terminology used herein was chosen to best explain the principles of the embodiments, the practical application or technical improvement over technologies found in the marketplace, or to enable others or ordinary skill in the art to understand the embodiments disclosed herein.
(123) When introducing elements of the present disclosure or the embodiments thereof, the articles a, an, and the are intended to mean that there are one or more of the elements. Similarly, the adjective another, when used to introduce an element, is intended to mean one or more elements. The terms including and having are intended to be inclusive such that there may be additional elements other than the listed elements.
(124) Although this invention has been described with a certain degree of particularity, it is to be understood that the present disclosure has been made only by way of illustration and that numerous changes in the details of construction and arrangement of parts may be resorted to without departing from the spirit and the scope of the invention.