DETECTING UNFAVORABLE HAPTIC ENVIRONMENTS

DE112022007898T5Pending Publication Date: 2025-07-24GOOGLE LLC
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
DE112022007898
Authority / Receiving Office
DE · DE
Patent Type
Applications
Current Assignee / Owner
Filing Date
2022-10-10
Publication Date
2025-07-24

Smart Images

  • Figure 00000000_0000_ABST
    Figure 00000000_0000_ABST
Patent Text Reader

Abstract

A computing device may control a haptic device of the computing device to output a haptic precursor signal. The computing device may determine a motion signal associated with outputting the haptic precursor signal. The computing device may determine that the computing device is in an adverse haptic environment based at least in part on the motion signal associated with outputting the haptic precursor signal. The computing device may, in response to determining that the computing device is in an adverse haptic environment, control the haptic device, through the one or more processors, to output an alternative haptic signal in place of the haptic signal.
Need to check novelty before this filing date? Find Prior Art

Description

GENERAL STATE OF THE ART

[0001] A computing device may include a haptic device that applies forces, vibrations, or movements to the computing device to output a haptic signal, which is a vibration response that can be felt by the user of the computing device. For example, a computing device may output a haptic signal that causes the computing device to vibrate when the computing device receives a phone call or notification. Similarly, a computing device may output haptic signals to provide localized vibration feedback when a user interacts with a virtual keyboard displayed by the computing device to enter text using the virtual keyboard. SUMMARY

[0002] In general, aspects of this disclosure are directed to techniques for determining whether a computing device is in an adverse haptic environment, which is an environment in which the computing device, when outputting a haptic signal to provide haptic feedback, is likely to rattle against one or more surfaces to generate undesirable harsh rattling noises. If the computing device determines that the computing device is in such an adverse haptic environment, the computing device may output an alternative haptic signal that may have one or more characteristics that may reduce the magnitude of an undesirable harsh rattling noise generated by the computing device.

[0003] To determine whether the computing device is in an adverse haptic environment, the computing device may output a short-duration haptic test signal having a very low vibration intensity, and the computing device may measure the movement of the computing device as a result of outputting the haptic test signal. The computing device may determine whether the computing device is in an adverse haptic environment based on the movement of the computing device as a result of outputting the haptic test signal. If the computing device determines that the computing device is in an adverse haptic environment, the computing device may output an alternative haptic signal that may have one or more characteristics that may reduce the magnitude of an undesirable harsh rattling noise generated by the computing device.

[0004] The techniques of this disclosure may provide one or more technical advantages and solve one or more technical problems. By detecting whether the computing device is in an adverse haptic environment, the computing device may adaptively select the haptic signal that is output to reduce rattling of the computing device against one or more hard surfaces. Reducing rattling of the computing device against one or more hard surfaces may reduce any harsh, unpleasant rattling noises generated as a result of outputting the haptic signal, but may also prevent potential damage to the computing device and / or components of the computing device (e.g., camera lenses of the computing device) in situations where the computing device is placed on a table with a hard surface (e.g.,scratched or dented) and / or potentially clattering off the table. By reducing the clatter of the computing device against one or more hard surfaces, it may also potentially reduce any unintended or erroneous user input that may be caused by the unexpected harsh clatter and thus sudden movement of the computing device when the user attempts to provide user input to the computing device. In this way, the techniques of this disclosure can reduce the likelihood of damage to the computing device as a result of issuing haptic signals and of erroneous user input to the computing device as a result of issuing haptic signals.

[0005] Furthermore, the techniques of this disclosure may enable computing device 102 to reduce power consumption. Since outputting a haptic signal having a relatively higher vibration intensity may consume more power than outputting a haptic signal having a relatively lower vibration intensity, outputting an alternative haptic signal having a relatively lower vibration intensity when computing device 102 is in an adverse haptic environment, instead of a haptic signal having a relatively higher vibration intensity, may reduce power consumption, thereby extending the battery life of mobile computing devices such as smartphones.

[0006] In some aspects, the techniques described herein relate to a method including: driving, by one or more processors of a computing device, a haptic device of the computing device to output a haptic precursor signal; determining, by the one or more processors, a motion signal associated with outputting the haptic precursor signal; determining, by the one or more processors and based at least in part on the motion signal associated with outputting the haptic precursor signal; and in response to determining that the computing device is in the adverse haptic environment, driving, by the one or more processors, the haptic device to output an alternative haptic signal in place of the haptic signal.

[0007] In some aspects, the techniques described in this document relate to a computing device including: a haptic device; a memory storing instructions; and one or more processors executing the instructions to: drive the haptic device to output a haptic precursor signal; determine a motion signal associated with outputting the haptic precursor signal; determine that the computing device is in an adverse haptic environment based at least in part on the motion signal associated with outputting the haptic precursor signal; and in response to determining that the computing device is in an adverse haptic environment, drive the haptic device to output an alternative haptic signal instead of a haptic signal.

[0008] In some aspects, the techniques described herein relate to a device including means for: driving a haptic device of the computing device to output a haptic precursor signal; means for determining a motion signal associated with outputting the haptic precursor signal; means for determining that the computing device is in an adverse haptic environment based at least in part on the motion signal associated with outputting the haptic precursor signal; and means for driving the haptic device to output an alternative haptic signal instead of a haptic signal in response to determining that the computing device is in the adverse haptic environment.

[0009] In some aspects, the techniques described herein relate to a non-transitory computer-readable storage medium storing instructions that, when executed, cause the one or more processors of a computing device to: drive a haptic device of the computing device to output a haptic precursor signal; determine a motion signal associated with outputting the haptic precursor signal; determine that the computing device is in an adverse haptic environment based at least in part on the motion signal associated with outputting the haptic precursor signal; and in response to determining that the computing device is in the adverse haptic environment, drive the haptic device to output an alternative haptic signal instead of a haptic signal.

[0010] The details of one or more examples of the disclosure are set forth in the accompanying drawings and the description below. Other features, objects, and advantages of the disclosure will become apparent from the description and drawings, and from the claims. BRIEF DESCRIPTION OF THE DRAWINGS Fig. 1 is a conceptual diagram illustrating an example computing device configured to output a haptic signal, according to one or more aspects of the present disclosure. Fig. 2 is a block diagram illustrating an example computing device according to one or more aspects of the present disclosure. Fig. 3 is a conceptual diagram illustrating an example haptic precursor signal output by an example haptic device. Fig. 4 is a conceptual diagram illustrating an example motion sensor response when an example haptic device outputs an example haptic precursor signal in a non-adverse haptic environment. Fig. 5 is a conceptual diagram illustrating an example motion sensor response when an example haptic device outputs an example haptic precursor signal in an adverse haptic environment. Fig. 6 is a conceptual diagram showing the example motion signal from Fig. 4 is illustrated transformed from the time domain to the frequency domain. Fig. 7 is a conceptual diagram showing the example motion signal from Fig. 5 illustrates the transformation from the time domain to the frequency domain. Fig. 8 is a flowchart illustrating example operations of an example computing device configured to output haptic signals, according to one or more aspects of the present disclosure. DETAILED DESCRIPTION

[0011] Fig. 1 is a conceptual diagram illustrating an example computing device 102 configured to output a haptic signal, according to one or more aspects of the present disclosure. As shown in Fig. 1, the computing device 102 is a mobile computing device (e.g., a mobile phone). However, in other examples, the computing device 102 may be a tablet computer, a laptop computer, a desktop computer, a gaming system, a media player, an e-book reader, a television platform, a motor vehicle navigation system, a wearable computing device (e.g., a computerized watch, computerized eyeglasses, computerized gloves), or any other type of mobile or non-mobile computing device.

[0012] The computing device 102 includes a user interface device (UID) 104. The UID 104 of the computing device 102 can function as an input device for the computing device 102 and as an output device for the computing device 102. The UID 104 can be implemented using various technologies. For example, the UID 104 can function as an input device using a presence-sensitive input screen, such as a resistive touchscreen, a surface acoustic wave touchscreen, a capacitive touchscreen, a projective capacitive touchscreen, a pressure-sensitive screen, an acoustic pulse detection touchscreen, or other presence-sensitive display technology. The UID 104 can function as an output device (e.g.,Display device) using any one or more display devices, such as a liquid crystal display (LCD), a dot matrix display, a light emitting diode display (LED), a microLED display, an organic light emitting diode (OLED) display, an e-ink display, or a similar monochrome or color display capable of outputting visible information to a user of the computing device 102.

[0013] The UID 104 of the computing device 102 may include a presence-sensitive display that may receive tactile input from a user of the computing device 102. The UID 104 may receive indications of the tactile input by detecting one or more gestures from a user of the computing device 102 (e.g., when the user touches or points to one or more locations of the UID 104 with a finger or stylus). The UID 104 may present output to a user, for example, on a presence-sensitive display. The UID 104 may present the output as a graphical user interface (e.g., user interface 140) that may be associated with functionality provided by the computing device 102.For example, UID 104 may present various user interfaces of components of a computing platform, operating system, applications, or services executing on or accessible by computing device 102 (e.g., an electronic messaging application, an internet browser application, a mobile operating system, etc.). A user may interact with a respective user interface to cause computing device 102 to perform operations related to a function.

[0014] Computing device 102 also includes a haptic device 114 configured to output haptic signals to provide haptic feedback to a user of computing device 102. A haptic signal is a controlled vibration having one or more vibration frequencies and one or more vibration intensities resulting from forces, vibrations, and / or movements exerted by one or more haptic actuators of haptic device 114.

[0015] The haptic device 114 may include one or more haptic actuators, such as linear resonant actuators, eccentric rotating mass vibration motors, piezoelectric transducers, electromechanical devices, and / or other vibrotactile actuators, and drive electronics coupled to the one or more haptic actuators. The drive electronics may cause the one or more haptic actuators to output a haptic signal that, when the haptic device 114 is rigidly coupled to the housing 108 of the computing device 102, induces a vibratory response in at least a portion of the computing device 102.

[0016] Computing device 102 also includes a motion sensor 106. Motion sensor 106 is an input component that acquires motion information of computing device 102, such as information about tilting, shaking, rotating, and / or swinging of computing device 102. For example, motion sensor 106 may include a gyroscope, a magnetometer, and / or one or more accelerometers, such as one or more multi-axis accelerometers and the like. Motion sensor 106 is referred to as an inertial measurement unit (IMU) in some examples.

[0017] Computing device 102 may control haptic device 114 to output haptic signals to alert the user of computing device 102 to the occurrence of events on computing device 102. For example, computing device 102 may control haptic device 114 to output a haptic signal in response to computing device 102 receiving a phone call or text message, in response to a payment transaction being accepted or declined, in response to an alarm or reminder occurring, and the like. Computing device 102 may, in response to determining that an event has occurred, control haptic device 114 to output a haptic signal to alert the user of computing device 102 to the occurrence of the event.

[0018] In some examples, the physical housing 108 of the computing device 102 may include uneven surfaces that may cause the computing device 102 to have a poor mechanical connection between the computing device 102 and the immediate environment. In the example where the computing device 102 is a mobile computing device, such as a smartphone, the physical housing 108 of the computing device 102 may include a camera bump 120 protruding from the back surface 130 of the physical housing 108 of the computing device 102, which may prevent the computing device 102 from being laid flat on the back surface 130 against a hard surface 150, such as the surface of a table made of a hard material such as wood, steel, glass, or plastic. The computing device 102 may include a camera bump 102 to protect the camera hardware (e.g., image sensors, lenses, mirrors, etc.).) of the computing device 102 while reducing the thickness of the other portions of the physical housing 108 of the computing device 102.

[0019] However, when the computing device 102 is placed on the hard surface 150, the camera bump 120 may cause the computing device 102 to be positioned such that the computing device 102 may only contact the hard surface 150 at contact points 140A and 140B of the computing device 102, which are narrow and unbalanced contact surfaces that provide a weak mechanical connection to the hard surface 150. Thus, when the computing device 102 vibrates, such as when the haptic device 114 of the computing device 102 outputs a haptic signal that causes the computing device 102 to vibrate, the force of such vibrations may be focused by the unstable contact surfaces of the contact points 140A and 140B, which may cause the hard surface 150 to effectively push back against the contact points 140A and 140B, thereby causing the computing device 102 to physically impact the hard surface 150 (i.e.,rattles) to produce a harsh, unpleasant noise.

[0020] An environment that causes the computing device 102 to rattle against one or more surfaces when outputting a haptic signal to generate a harsh, unpleasant noise and / or generate sufficient vibration to cause the computing device 102 to physically impact a hard surface, such as the hard surface 150, may be referred to as an adverse haptic environment. For example, an adverse haptic environment may be an environment in which the computing device 102 is placed against a hard surface, such as a surface made of wood, steel, glass, or plastic that has at least a defined material hardness. Conversely, an environment that does not cause the computing device 102 to generate a harsh, unpleasant noise may be referred to as a non-adverse haptic environment.For example, if the computing device 102 is disposed on a soft surface, such as a cushion or a pillow, such a soft surface may absorb a large portion of the energy generated by the computing device 102 as a result of outputting a haptic signal, thereby preventing the computing device 102 from generating a harsh, unpleasant noise as a result of outputting a haptic signal.

[0021] A harsh, unpleasant noise, in some examples, may be a noise caused by the computing device 102 rattling against a hard surface as a result of the computing device 102 issuing a haptic signal. For example, an unpleasant noise may be a noise (e.g., one or more tones) caused by a disturbance from the immediate environment (e.g., a hard surface) pressing against the computing device 102 that is much louder than the audio volume caused solely by vibrations of the computing device 102 resulting from the issuing of a haptic signal, such as two or more times louder than the sound intensity of the noise generated by the computing device 102 issuing the haptic signal.

[0022] To prevent the computing device 102 from generating a harsh, unpleasant noise as a result of outputting a haptic signal, or to reduce the noise generated by the computing device 102, the computing device 102 may limit the vibration intensity of any haptic signal output by the haptic device 114 and / or reduce, if not eliminate, vibration frequencies that may resonate with haptic signals output by the haptic device 114.While haptic signals having such limited vibration intensities and / or vibration frequencies may reduce the strength of the resulting vibrations of computing device 102 and thus prevent computing device 102 from generating a harsh, unpleasant noise as a result of outputting a haptic signal, such haptic signals may also reduce the perceptibility of the haptic signal output by haptic device 114. That is, haptic signals having such limited vibration intensities and / or vibration frequencies may generate vibrations of computing device 102 that may be too weak to be perceptible by users of computing device 102 when computing device 102 is located in a non-adverse haptic environment.

[0023] According to aspects of this disclosure, when computing device 102 determines to output a haptic signal, such as a haptic signal having a vibration intensity strong enough to cause computing device 102 to rattle against one or more hard surfaces in an adverse haptic environment, producing a harsh, unpleasant rattling sound, computing device 102 may determine whether computing device 102 is in an adverse haptic environment. If computing device 102 determines that computing device 102 is in a non-adverse haptic environment, haptic device 114 may output the haptic signal.If the computing device 102 determines that the computing device is in an adverse haptic environment, the haptic device 114 may output an alternative haptic signal in place of the haptic signal, where the alternative haptic signal may have one or more characteristics, such as a reduced vibration intensity compared to the haptic signal, that may make it less likely that the computing device 102 will rattle against one or more hard surfaces to produce a harsh, unpleasant rattling sound as a result of outputting the alternative haptic signal.

[0024] To determine whether the computing device 102 is in an adverse haptic environment, the haptic device 114 may output a haptic precursor signal. The haptic precursor signal may have a very low vibration intensity, and the haptic device 114 may output the haptic precursor signal for a very short period of time, such that the haptic precursor signal may be imperceptible or barely perceptible to the user of the computing device 102.

[0025] While the haptic device 114 outputs the haptic precursor signal, the computing device 102 may use the motion sensor 106 to measure movement of the computing device 102 to determine whether the computing device 102 is in an adverse haptic environment. If the motion sensor 106 and the haptic device 114 are rigidly coupled to the same housing, such as when the motion sensor 106 and the haptic device 114 are located within the computing device 102, the motion sensor 106 may be capable of detecting movement of the actuator within the haptic device 114 when the haptic device 114 is controlled to output a haptic signal, such as the haptic precursor signal. More specifically, the motion sensor 106 may be capable of detecting motion that is a combination of the actuator movement and disturbances from the immediate environment.Such disturbances may be caused by physical movement of the computing device 102 itself, such as movement of the computing device 102 while it is in a pocket while the user of the computing device 102 is walking.

[0026] Such disturbances may also be caused by reflections or follow-on forces caused by the actuator of the haptic device 114 and / or by the immediate environment. For example, the forces of the actuator of the haptic device 114 against the hard surface 150 may cause the hard surface 150 to effectively push back against the computing device 102, and the weak mechanical connections provided by the contact points 140A and 140B may cause the computing device 102 to physically impact or even bounce off the hard surface 150. The motion sensor 106 may detect such forces. Conversely, a soft surface (e.g., a cushion or pillow) may absorb much of the energy generated by the computing device 102 outputting a haptic signal, and the motion sensor 106 may detect a diminished or "filtered" signal.

[0027] As such, the motion sensor 106 of the computing device 102 may measure the motion of the computing device 102 while the haptic device 114 outputs the haptic precursor signal to generate a motion signal associated with the output of the haptic precursor signal. That is, while the haptic device 114 outputs the precursor signal, the motion sensor 106 may measure the motion of the computing device 102 to generate the motion signal.

[0028] Computing device 102 may determine whether computing device 102 is in an adverse haptic environment based at least in part on the motion signal associated with outputting the haptic precursor signal. For example, computing device 102 may compare the motion signal associated with outputting the haptic precursor signal with a motion signal generated in a non-adverse haptic environment to determine whether the motion signal associated with outputting the haptic precursor signal indicates that computing device 102 is in an adverse haptic environment.

[0029] Computing device 102, in response to determining that the computing device is not in an adverse haptic environment, may control haptic device 114 to output a haptic signal that may have one or more characteristics, such as a high vibration intensity, that may cause computing device 102 to generate a harsh, unpleasant rattling sound when in an adverse haptic environment. Conversely, in response to determining that the computing device is in an adverse haptic environment, computing device 102 may control haptic device 114 to output an alternative haptic signal in place of the haptic signal.Such an alternative haptic signal may be a haptic signal having one or more characteristics, such as a relatively low vibration intensity, that, when output by the haptic device 114, may not cause the computing device 102, when located in an adverse haptic environment, to rattle against one or more hard surfaces to produce a harsh, unpleasant rattling sound.

[0030] While described with respect to motion sensor 106, one or more other sensors of computing device 102 may perform or assist in detecting whether computing device 102 is in an adverse haptic environment. In some examples, computing device 102 may use one or more microphones alone or in combination with motion sensor 106 and / or other sensors of computing device 102 to determine whether computing device 102 is in an adverse haptic environment.

[0031] Fig. 2 is a block diagram illustrating an example computing device 202 according to one or more aspects of the present disclosure. The computing device 202 of Fig. 2 is an example of the computing device 102 of Fig. 1A. The computing device 202 is only a concrete example of the computing device 102 of Fig. 1A and many other examples of the computing device 102 may be used in other cases. In the example of Fig. 2, the computing device 202 may be a mobile computing device (e.g., a smartphone) or any other computing device. The computing device 202 of Fig. 2 may include a subset of the components included in the exemplary computing device 202 or may include additional components included in Fig. 2 components not shown.

[0032] As in the example from Fig. 2, the computing device 202 includes a user interface device 204 ("UID 204"), one or more processors 240, one or more input devices 242, one or more communication units 244, one or more output devices 246, one or more storage devices 248, one or more sensors 280, and the haptic device 214. The storage devices 248 of the computing device 202 also include non-adverse motion signal data 270, an operating system 254, an adverse haptic environment model 256, and a haptic module 210.

[0033] Communication channels 250 may interconnect each of components 240, 242, 244, 246, 248, 204, 280, and 214 for communication between the components (physically, communicatively, and / or operationally). In some examples, communication channels 250 may include a system bus, a network connection, a data structure for interprocess communication, or any other method for data communication.

[0034] One or more input devices 242 of the computing device 202 may be configured to receive input. Examples of input include tactile input, audio input, and video input. The input devices 242 of the computing device 202 include, in one example, a presence-sensitive display, a touch-sensitive screen, a mouse, a keyboard, a voice-activated system, a video camera, a microphone, or any other type of device for detecting human or machine input.

[0035] One or more output devices 246 of the computing device 202 may be configured to generate outputs. Examples of output include tactile output, audio output, and video output. The output devices 246 of the computing device 202 include, in one example, a presence-sensitive organic light-emitting diode (OLED) display, a sound card, a video graphics adapter card, a speaker, a monitor, a presence-sensitive liquid crystal display (LCD), or any other type of device for generating output to a human or machine.

[0036] One or more communication units 244 of computing device 202 may be configured to communicate with external devices over one or more wired and / or wireless networks by sending and / or receiving network signals on the one or more networks. Examples of communication units 244 include a network interface card (such as an Ethernet card), an optical transceiver, a radio frequency transceiver, a GPS receiver, or any other type of device capable of sending and / or receiving information. Other examples of communication units 244 may include shortwave radios, cellular data radios, wireless network radios, and Universal Serial Bus (USB) controllers.

[0037] In some examples, the UID 204 of the computing device 202 may include functionality of the input devices 242 and / or the output devices 246. In the example of Fig. 2, the UID 204 may be or may include a presence-sensitive input device. In some examples, a presence-sensitive input device may detect an object on and / or near a screen. As an example range, a presence-sensitive input device may detect an object, such as a finger or a stylus, that is within 2 inches or less of the screen. The presence-sensitive input device may determine a location (e.g., an (x,y) coordinate) of a screen where the object was detected. In another example range, a presence-sensitive input device may detect an object six inches or less from the screen, and other ranges are also possible.The presence-sensitive input device may determine the location of the screen selected by a user's finger using capacitive, inductive, and / or optical sensing techniques. In some examples, a presence-sensitive input device also provides output to a user using tactile, auditory, or visual stimuli as described with respect to output device 246, e.g., at a display. In the example of FIG. Fig. 2, the UID 204 can present a user interface.

[0038] While illustrated as an internal component of computing device 202, UID 204 also represents an external component that shares a data path with computing device 202 for sending and / or receiving inputs and outputs. For example, in one example, UID 204 represents an integrated component of computing device 202 that is located within and physically connected to the external packaging of computing device 202 (e.g., a display on a mobile phone). In another example, UID 204 represents an external component of computing device 202 that is located outside and physically separate from the packaging of computing device 202 (e.g., a monitor, a projector, etc., that shares a wired and / or wireless data path with a tablet computer).

[0039] One or more sensors 280 of computing device 202 may include any input component configured to obtain environmental information about the circumstances surrounding computing device 202. In some examples, a sensor may be an input component that obtains physical position, movement, and / or location information of computing device 202. For example, one or more sensors 280 may include a location sensor (e.g., Global Positioning System sensors), a temperature sensor, a pressure sensor (e.g., a barometer), an ambient light sensor, a microphone, a camera, an infrared proximity sensor, a hygrometer, a heart rate sensor, a glucose sensor, a hygrometer sensor, an odor sensor, a compass sensor, a pedometer sensor, to name a few other non-limiting examples.

[0040] In some examples, one or more sensors 280 include a motion sensor 206, which is an example of a motion sensor 106 of Fig. 1. The motion sensor 206 may include one or more multi-axis accelerometers (e.g., a three-axis accelerometer, a six-axis accelerometer, etc.), one or more gyroscopes, one or more magnetometers, and / or any other sensor configured to obtain motion information regarding the computing device 202.

[0041] The haptic device 214 of the computing device 202 is an example of the haptic device 114 of Fig. 1 and may be configured to output haptic signals, such as vibrations and / or other forms of tactile, haptic feedback. The haptic device 214 outputting a haptic signal may cause the computing device 202 to vibrate such that the vibrations of the computing device 202 caused by the haptic device 214 outputting the haptic signal may be both tactile and audible to the user of the computing device 202. For example, a haptic signal output by the haptic device 214 may be felt by users of the computing device 202 who hold the computing device 202 and / or touch an external surface of the housing of the computing device 202, and may also be heard by a user of the computing device 202. The haptic device 214 includes one or more haptic actuators 262 and drive electronics 264.

[0042] One or more haptic actuators 262 may include one or more linear resonant actuators, one or more eccentrically rotating mass vibration motors, one or more piezoelectric transducers, one or more electromechanical devices, and / or other vibrotactile actuators capable of generating movement (e.g., vibrating) to convey information to the user of computing device 202 through the user's sense of touch. For example, a linear resonant actuator may vibrate by reciprocating a mass through a magnetic voice coil.

[0043] In some examples, one or more haptic actuators 262 may be an x-axis linear resonant actuator, where the mass moves along a long axis of the actuator. In the example where the computing device 202 is a smartphone, the mass in an x-axis linear resonant actuator may move along an axis parallel to the plane of the display of the smartphone. In some examples, one or more haptic actuators 262 may be a z-axis linear resonant actuator, where the mass moves along a short axis of the actuator. In the example where the computing device 202 is a smartphone, the mass in a z-axis linear resonant actuator may move along an axis perpendicular to the plane of the display of the smartphone.A z-axis linear resonant actuator may typically be smaller than an x-axis linear resonant actuator, but may be more prone to causing an annoying rattling effect when outputting a haptic signal because the z-axis linear resonant actuator may typically apply force in a direction perpendicular to a surface on which the computing device 202 is placed, thereby pushing the computing device 202 away from that surface and potentially creating a resonance at the contact points of the computing device 202 and the surface.

[0044] The control electronics 264 may be circuitry-coupled to one or more haptic actuators 262 to cause one or more haptic actuators 262 to vibrate (e.g., output a haptic signal) to induce a selected vibration response in at least a portion of the computing device 202, thereby providing a tactile sensation and / or an auditory sensation to a user of the computing device 202. The control electronics 264 may, in response to the haptic device 214 receiving an indication of a control signal (e.g., from one or more processors 240), control one or more haptic actuators 262 to vibrate to output a haptic signal.That is, the control electronics 264 may control one or more haptic actuators 262 at the frequency and vibration intensities specified or otherwise associated with the control signal to output a haptic signal.

[0045] One or more storage devices 248 within the computing device 202 may store information for processing during operation of the computing device 202. In some examples, the storage device 248 is temporary storage, meaning that long-term storage is not a primary purpose of the storage device 248. The storage devices 248 on the computing device 202 may be configured as volatile memory for short-term storage of information, and stored contents are therefore not retained upon power-off. Examples of volatile memory include random access memory (RAM), dynamic random access memory (DRAM), static random access memory (SRAM), and other forms of volatile memory known in the art.

[0046] The storage devices 248, in some examples, also include one or more computer-readable storage media. The storage devices 248 may be configured to store larger amounts of information than volatile memory. The storage devices 248 may be further configured for long-term storage of information as non-volatile storage, where information is retained across power-on / off cycles. Examples of non-volatile memory include magnetic hard drives, optical disks, floppy disks, flash memory, or forms of electrically programmable memories (EPROM) or electrically erasable and programmable memories (EEPROM). The storage devices 248 may store program instructions and / or information (e.g.,Data) associated with the haptic module 210, the non-adverse motion signal data 270, the adverse haptic environment model 256, and the operating system 254.

[0047] One or more processors 240 may implement functionality and / or execute instructions within the computing device 202. For example, the processors 240 on the computing device 202 may receive and execute instructions stored by storage devices 248 that implement the functionality of the haptic module 210, the adverse haptic environment model 256, and the operating system 254. These instructions executed by the processors 240 may, for example, cause the haptic device 214 of the computing device 202 to output a haptic signal.

[0048] The haptic module 210 and the operating system 254 are described below as executing on one or more processors 240. It should be understood that one or more processors 240 are configured to execute a haptic module and an operating system 254 to perform the functionality of the haptic module 210 and the operating system 254 described below. That is, one or more processors 240 are configured to execute the instructions of the haptic module 210 and the operating system 254 to perform the functionality of the haptic module 210 and the operating system 254 described below.

[0049] The operating system 254 may be executed on one or more processors 240 to determine to issue a haptic signal in response to the occurrence of an event. In some examples, for a variety of event types, the operating system 254 may associate a respective haptic signal with each event type. For example, the operating system 254 may associate a haptic signal with receiving a call (e.g., receiving a voice and / or video call) and a haptic signal with receiving a notification. Thus, in response to the computing device 202 receiving a voice or video call, the operating system 254 may determine to issue a haptic signal associated with receiving a call.Similarly, in response to the computing device 202 receiving a notification, the operating system 254 may determine to output a haptic signal associated with receiving a notification.

[0050] In some examples, the operating system 254 may be executing on one or more processors 240 to determine to output a haptic signal to generate haptic feedback that can be felt by a user interacting with a presence-sensitive input screen of the UID 204. For example, the operating system 254 may be executing on one or more processors 240 to determine, in response to the UID 204 receiving user input to select a button in a user interface displayed on the UID 204, to output a haptic signal that generates a haptic effect associated with selecting the button.

[0051] Different haptic signals may have different properties, such as different vibration frequencies and / or vibration intensities. For example, a haptic signal associated with receiving a call may have a different vibration frequency and / or vibration intensity than a haptic signal associated with receiving a notification. In some examples, the operating system 254 may associate different haptic signals with different contacts of the user of the computing device 202. For example, a haptic signal associated with receiving a call from one contact of the user may have a different vibration frequency and / or vibration intensity than a haptic signal associated with a different contact of the user.

[0052] In response to determining to output a haptic signal, such as a haptic signal associated with an occurrence of an event, the operating system 254 may determine whether the computing device 202 is in an adverse haptic environment. By determining whether the computing device 202 is in an adverse haptic environment, the operating system 254 may determine whether to output the haptic signal or whether to output an alternative haptic signal.

[0053] In some examples, in response to determining to output a haptic signal, the operating system 254 may refrain from determining whether the computing device 202 is in an adverse haptic environment. The operating system 254 may refrain from determining whether the computing device 202 is in an adverse haptic environment if the characteristics of the computing device 202 indicate that it is unlikely that the computing device 202 is in an adverse haptic environment. For example, if the operating system 254 determines, such as based on sensor data generated by one or more sensors 280, that the computing device 202 is moving, the operating system 254 may determine that it is unlikely that the computing device 202 is in an adverse haptic environment.In another example, if the operating system 254 determines, such as based on sensor data generated by one or more sensors 280 or based on user interactions received by the UID 204, that a user is actively interacting with the computing device 202, the operating system 254 may determine that the computing device 202 is unlikely to be in an adverse haptic environment.

[0054] In response to determining to output a haptic signal, the operating system 254 may determine whether the computing device 202 is in an adverse haptic environment only if one or more characteristics of the computing device 202 indicate that the computing device 202 is likely to be in an adverse haptic environment. For example, if the operating system 254 determines, such as based on sensor data generated by one or more sensors 280, that the computing device 202 is not moving and / or has not moved for a defined period of time (e.g., in the last minute, in the last two minutes, etc.), the operating system 254 may determine that the computing device 202 is likely to be in an adverse haptic environment.In another example, if the operating system 254 determines, such as based on the screen of the computing device 202 turning off or based on a lack of user interactions received by the UID 204 for a defined period of time (e.g., in the last minute), that a user is not actively interacting with the computing device 202, the operating system 254 may determine that the computing device 202 is likely located in an adverse haptic environment.

[0055] In some examples, in response to determining to output a haptic signal, the operating system 254 may only determine whether the computing device 202 is in an adverse haptic environment if the haptic signal that the operating system 254 has determined to output has a vibration intensity greater than a vibration intensity threshold and / or a duration longer than a duration threshold. That is, the operating system 254 may only determine whether the computing device 202 is in an adverse haptic environment if the haptic signal, when output by the haptic device 214, is likely to produce a harsh rattling effect.As such, the operating system 254 may be executed on one or more processors 240 to determine whether the haptic signal has a duration greater than a duration threshold and whether the vibration intensity of the haptic signal is greater than a vibration intensity threshold. If the operating system 254 determines that the haptic signal has a duration greater than a duration threshold and whether the vibration intensity of the haptic signal is greater than a vibration intensity threshold, the operating system 254 may be executed on one or more processors 240 to determine whether the computing device 202 is in an adverse haptic environment.

[0056] In some cases, in latency-sensitive situations, the operating system 254 may forgo determining whether the computing device 202 is in an adverse haptic environment. For example, if the haptic device 214 outputs haptic signals to generate haptic feedback to a user while the user is interacting with a virtual keyboard displayed at the UID 204 to enter text, any delay in generating such haptic feedback may diminish the user experience when entering text using the virtual keyboard. In such a latency-sensitive situation, the operating system 254 may forgo determining whether the computing device 202 is in an adverse haptic environment before driving the haptic device 214 to output haptic signals to generate haptic feedback to the user.

[0057] To determine whether the computing device 202 is in an adverse haptic environment, according to the techniques of this disclosure, the haptic module 210 may be executed on one or more processors 240 to determine whether the computing device 202 is in an adverse haptic environment. As part of determining whether the computing device 202 is in an adverse haptic environment, the haptic module 210 may be executed on one or more processors 240 to drive the haptic device 214 to output a haptic precursor signal. That is, the haptic module 210 may be executed on one or more processors 240 to send a signal to the drive electronics 264 via one or more communication channels 250. The signal may define one or more characteristics of the haptic precursor signal, such as the frequency and / or vibration intensities of the precursor signal.The control electronics 264, in response to receiving the signal, may control one or more haptic actuators 262 to vibrate to output a haptic precursor signal at the frequency and / or at one or more vibration intensities specified or otherwise associated with the signal to output the haptic precursor signal.

[0058] The haptic precursor signal may be a haptic signal emitted over a short duration that is barely perceptible to the user of the computing device 202, but strong enough to elicit a clattering response from the computing device 202. The haptic precursor signal may have an extremely low amplitude (i.e., vibration intensity) emitted by the haptic device 214 over a short duration. For example, the amplitude of the haptic precursor signal may have an amplitude that is approximately 5-10% of the amplitude of a haptic signal emitted for a notification (e.g., a haptic signal associated with an event type), and the haptic device 214 may be configured to emit the haptic precursor signal for less than one second, less than half a second, less than 100 milliseconds, less than 50 milliseconds, less than 20 milliseconds, and the like.

[0059] Fig. 3 is a conceptual diagram illustrating an example haptic precursor signal output by an example haptic device. Fig. 3 is merely illustrative in connection with the computing device 202 of Fig. 2, but may be implemented with respect to any type of computing device listed in this disclosure.

[0060] As described above, the haptic device 214 of the computing device 202 may output a haptic precursor signal in a manner that elicits a rattle response that may be measured by a motion sensor of the computing device 202, but may not be perceived or nearly so (audibly or tactilely) by the user of the computing device. As in Fig. As shown in Figure 3, an example of a haptic precursor signal 300 may be an extremely low-amplitude sinusoidal chirp signal of 300 Hertz (Hz) with a duration of approximately 18 milliseconds (ms). The combination of low amplitude, frequency rise, and short duration may result in the haptic precursor signal 300 being nearly undetectable audibly and / or tactilely by the user of the computing device 202, while still being capable of eliciting a clatter response from the computing device 202.

[0061] The motion sensor 206 may be configured to detect the motion of the computing device 202 while the haptic device 214 outputs at least a portion of the haptic precursor signal. That is, the motion sensor 206 may be capable of detecting motion caused by the vibrations of the haptic precursor signal output by the haptic device 214. Such motion caused by the vibrations of the haptic precursor signal output by the haptic device 214 may include the force response to the haptic precursor signal output by the haptic device 214 and may also include motion caused by environmental disturbances, such as reflections and resonance, as a result of the haptic device 214 outputting the haptic precursor signal.

[0062] In some examples, motion sensor 206 may be configured to detect motion of computing device 202 in one or more directions. For example, if motion sensor 206 includes a multi-axis motion sensor, motion sensor 206 may be configured to detect motion of computing device 202 along at least one of the multiple axes of the accelerometer. In some examples, motion sensor 206 may detect motion along at least one axis of motion sensor 206 that corresponds to an axis of a linear haptic actuator (e.g., one or more haptic actuators 262) of haptic device 214 along which a mass of haptic device 214 moves to output the haptic precursor signal.That is, the motion sensor 206 may be configured to detect at least the movement along the axis parallel to the primary axis of movement of the one or more haptic actuators 262.

[0063] The haptic module 210 may be executed on one or more processors 240 to determine a motion signal associated with outputting the haptic precursor signal based at least in part on the motion of the computing device 202 detected by the motion sensor 206. Specifically, the haptic module 210 may be executed on one or more processors 240 to determine a motion signal corresponding to the motion detected by the motion sensor 206 along the axis parallel to the primary axis of motion of the one or more haptic actuators 262. Thus, if one or more haptic actuators 262 are an x-axis linear resonant actuator, the haptic module 210 may determine a motion signal corresponding to the motion detected by the motion sensor 206 along the x-axis.

[0064] Fig. 4 is a conceptual diagram illustrating an example motion sensor response when an example haptic device outputs an example haptic precursor signal in a non-adverse haptic environment. Fig. 4 is merely illustrative in connection with the computing device 202 of Fig. 2, but may be implemented with respect to any type of computing device listed in this disclosure.

[0065] If, as in Fig. 4, the haptic device 214 of the computing device 202 receives a haptic precursor signal, such as that shown in Fig. 3, in a non-adverse haptic environment, the motion sensor 206 of the computing device 202 may detect motion caused by the haptic device 214 outputting a haptic precursor signal, and the haptic module 210 may be executable on one or more processors 240 to generate a motion signal 400 corresponding to the motion detected by the motion sensor 206 caused by the haptic device 214 outputting the haptic precursor signal. Because the motion signal 400 corresponds to motion caused by the haptic device 214 outputting the haptic precursor signal in a non-adverse haptic environment, the motion signal 400 may be referred to as a non-adverse motion signal in some examples.

[0066] While motion sensor 206 may be configured to detect motion in multiple axes, motion signal 400 corresponds to motion detected by motion sensor 206 along the axis parallel to the primary axis of motion of one or more haptic actuators 262. As such, motion signal 400 may be the acceleration measured over time in an axis of an accelerometer that is parallel to the primary axis of motion of one or more haptic actuators 262. If one or more haptic actuators 262 are a z-axis linear resonant actuator, motion signal 400 may be a motion signal corresponding to motion in the z-axis detected by motion sensor 206.

[0067] Samples of the motion signal 400 before 2368 and after 2420 are the noise floor for the motion sensor 206. The intermediate samples of the motion signal 400 (the portion of the motion signal 400 between 2368 and 2420) include four peaks that represent the force response to the precursor haptic signal output by the haptic device 214 and may also represent environmental disturbances such as reflections and resonance.

[0068] Fig. 5 is a conceptual diagram illustrating an example motion sensor response when an example haptic device outputs an example haptic precursor signal in an adverse haptic environment. Fig. 5 is merely for illustration purposes in connection with the computing device 202 of Fig. 2, but may be implemented with respect to any type of computing device listed in this disclosure.

[0069] If, as in Fig. 5, the haptic device 214 receives a precursor signal, such as that shown in Fig. 3, in an adverse haptic environment, the motion sensor 206 may detect the motion caused by the haptic device 214 outputting a haptic precursor signal, and the haptic module 210 may be executed on one or more processors 240 to generate a motion signal 500 corresponding to the motion detected by the motion sensor 206. Because the motion signal 500 corresponds to a motion caused by the haptic device 214 outputting the haptic precursor signal in an adverse haptic environment, the motion signal 500 may be referred to as an adverse motion signal in some examples.

[0070] While motion sensor 206 may be configured to detect motion in multiple axes, motion signal 500 corresponds to motion detected by motion sensor 206 along the axis parallel to the primary axis of motion of one or more haptic actuators 262. As such, motion signal 500 may be the acceleration measured over time in an axis of an accelerometer that is parallel to the primary axis of motion of one or more haptic actuators 262. If one or more haptic actuators 262 are a z-axis linear resonant actuator, motion signal 500 may be a motion signal corresponding to motion in the z-axis detected by motion sensor 206.

[0071] As can be seen, the motion signal 500 has a larger average amplitude and a larger peak amplitude compared to the motion signal 400. In addition, the motion signal 500 may also have a longer resonance output (e.g., approximately 10 cycles versus 4 cycles) compared to the motion signal 400. To better distinguish between a non-adverse motion signal (e.g., the motion signal 400) and an adverse motion signal (e.g., the motion signal 500), non-adverse motion signals and adverse motion signals may be transformed to extract data that may be more conducive to algorithmically discriminating between adverse and non-adverse haptic environments. Specifically, non-adverse motion signals and adverse motion signals may be better distinguished in a frequency range than those in Fig. 4 and Fig. 5 time domain examples shown.

[0072] Fig. 6 is a conceptual diagram illustrating the exemplary motion signal 400 of Fig. 4 is illustrated transformed from the time domain to the frequency domain. Fig. 6 is merely illustrative in connection with the computing device 202 of Fig. 2, but may be implemented with respect to any type of computing device listed in this disclosure.

[0073] As in Fig. 6, the motion signal 600 is the motion signal 400 from Fig. 4, which is transformed from the time domain to the frequency domain (e.g. via FFT). The peak of the motion signal 600 is at 260 Hz, which is different from the Fig. 3 due to transmission interference between the motion sensor 206 and one or more haptic actuators 262 of the haptic device 214.

[0074] Fig. 7 is a conceptual diagram illustrating the exemplary motion signal 500 of Fig. 5 illustrates the transformation from the time domain to the frequency domain. Fig. 7 is merely illustrative in connection with the computing device 202 of Fig. 2 described.

[0075] As in Fig. 7, the motion signal 700 is the motion signal 500 from Fig. 5, which is transformed from the time domain to the frequency domain (e.g., via FFT). The peak of motion signal 700 is at approximately 160 Hz, which differs from the 260 Hz peak of motion signal 600. The peak of motion signal 700 is much larger than the peak of motion signal 600. The peak of motion signal 600 is also observed in motion signal 700 at 260 Hz.

[0076] The haptic module 210 may be executed on one or more processors 240 to determine whether the computing device 202 is in an adverse haptic environment based at least in part on the motion signal associated with outputting the haptic precursor signal. Specifically, the haptic module 210 may be executed on one or more processors 240 to compare the motion signal associated with outputting the haptic precursor signal with a motion signal corresponding to a non-adverse haptic environment.

[0077] A motion signal corresponding to a non-adverse haptic environment may be a motion signal corresponding to a movement caused by a haptic device (e.g., haptic device 214) that outputs the haptic precursor signal in a non-adverse haptic environment. An example of such a motion signal is the Fig. 4 illustrated motion signal 400 and the one in Fig. 6. One or more storage devices 248 may include non-adverse motion signal data 270, which is data indicative of a non-adverse motion signal (i.e., a motion signal corresponding to a non-adverse haptic environment), an example of which is the non-adverse motion signal shown in Fig. 4 shown motion signal 400 and / or the one in Fig. 6. In some examples, non-adverse motion signal data 270 may be installed on one or more storage devices 248 during manufacturing of the computing device 248 or as part of the operating system 254. In some examples, one or more processors 240 may be configured to determine non-adverse motion signal data during operation of the computing device 202.

[0078] The haptic module 210 may therefore be executed on one or more processors 240 to compare the motion signal associated with outputting the precursor signal with a non-adverse motion signal indicated by non-adverse motion signal data 270. As discussed above with respect to Fig. 6 and Fig. 7, one or more processors 240 may be capable of algorithmically better distinguishing between motion signals in adverse and non-adverse haptic environments in a frequency domain. Thus, to compare the motion signal associated with outputting the precursor signal with a non-adverse motion signal, the haptic module 210 may be implemented on one or more processors 240 to transform the motion signal associated with outputting the precursor signal from a time domain to a frequency domain.For example, the haptic module 210 may be executable on one or more processors 240 to perform a Fourier transform, such as a fast Fourier transform (FFT), on the motion signal associated with outputting the precursor signal in a time domain to transform the motion signal associated with outputting the precursor signal into a frequency domain.

[0079] In some examples, the non-adverse motion signal indicated by the non-adverse motion signal data 270 may already be in a frequency domain. In examples where the non-adverse motion signal indicated by the non-adverse motion signal data 270 is in a time domain, the haptic module 210 may be executable on one or more processors 240 to transform the non-adverse motion signal indicated by the non-adverse motion signal data 270 into a frequency domain, such as by performing an FFT on the non-adverse motion signal indicated by the non-adverse motion signal data 270 to transform the non-adverse motion signal from a time domain to a frequency domain.

[0080] As above in Fig. 6 and Fig. As illustrated in Figure 7, an unfavourable motion signal in one frequency range (e.g. the one in Fig. 7) have a much larger peak amplitude than the peak amplitude of a non-unfavorable motion signal in the frequency domain (e.g. the one shown in Fig. 6). Further, the peak amplitude of the adverse motion signal may occur at a lower harmonic frequency in the frequency domain compared to the peak amplitude of the non-adverse motion signal in the frequency domain. Thus, a motion signal associated with outputting a precursor signal may indicate that the computing device 202 is in an adverse haptic environment if the peak amplitude of the motion signal is much larger (e.g., two times or more) than the peak amplitude of a non-adverse motion signal and if the peak amplitude of the adverse motion signal in the frequency domain occurs at a lower harmonic frequency compared to the peak amplitude of the non-adverse motion signal in the frequency domain.

[0081] As such, in some examples, the haptic module 210 may be executed on one or more processors 240 to compare the magnitude of the peak amplitude of the motion signal associated with the output of the precursor signal in the frequency domain with the magnitude of the peak amplitude of the non-adverse signal in the frequency domain. The haptic module 210 may also be executed on one or more processors 240 to compare the frequency at which the peak amplitude of the motion signal associated with the output of the precursor signal occurs in the frequency domain with the frequency at which the peak amplitude of the non-adverse motion signal occurs in the frequency domain.

[0082] In some examples, the haptic module 210 may be executed on one or more processors 240 to determine that the computing device 202 is in an adverse haptic environment when the peak amplitude of the motion signal associated with outputting the precursor signal is greater in the frequency domain than the peak amplitude of the non-adverse motion signal in the frequency domain. In some examples, the haptic module 210 may be executed on one or more processors 240 to determine that the computing device is in an adverse haptic environment when the peak amplitude of the motion signal associated with outputting the precursor signal is significantly greater in the frequency domain, such as at least 2.5 times greater, and the like, than the peak amplitude of the non-adverse motion signal in the frequency domain.

[0083] In some examples, the haptic module 210 may be executed on one or more processors 240 to determine that the computing device 202 is in an adverse haptic environment when the peak amplitude of the motion signal associated with outputting the precursor signal is greater in the frequency domain (e.g., at least two times greater) than the peak amplitude of the non-adverse motion signal associated with outputting the precursor signal in the frequency domain, and when the peak amplitude of the motion signal associated with outputting the precursor signal occurs at a lower harmonic frequency in the frequency domain compared to the peak amplitude of the non-adverse motion signal in the frequency domain.In this way, the haptic module 210 may use non-adverse motion data as a template against which the motion signal associated with outputting the precursor signal may be compared in the frequency domain to determine whether the motion signal associated with outputting the precursor signal indicates that the computing device 202 is in an adverse haptic environment.

[0084] In some examples, one or more processors 240 may be configured to use the adverse haptic environment model 256 to compare the motion signal associated with outputting the precursor signal with the non-adverse motion signal to determine whether the computing device 202 is in an adverse haptic environment. The adverse haptic environment model 256 may take as input the motion signal associated with outputting the precursor signal and the non-adverse motion signal and may output an indication of whether the computing device 202 is in an adverse haptic environment.In some examples, the adverse haptic environment model 256 may output one or more probabilities, such as a probability that the computing device 202 is located in an adverse haptic environment and / or a probability that the computing device 202 is located in a non-adverse haptic environment. In some examples, the adverse haptic environment model 256 may classify the computing device 202 as being located in either an adverse haptic environment or a non-adverse haptic environment.

[0085] The adverse haptic environment model 256 may be a machine-trained model trained via machine learning to distinguish between motion signals generated by computing devices in adverse haptic environments and motion signals generated by computing devices in non-adverse haptic environments. In some examples, the adverse haptic environment model 256 may include one or more of convolutional neural networks, recurrent neural networks, or any other suitable artificial neural network. In some examples, the adverse haptic environment model 256 may be a classification tree algorithm trained using decision tree learning.

[0086] The adverse haptic environment model 256 may be trained via supervised machine learning. For example, the adverse haptic environment model 256 may be trained using training data that includes motion signals labeled as being in adverse haptic environments and non-adverse haptic environments to generate an adverse haptic environment model 256 that may be capable of distinguishing between a motion signal in an adverse haptic environment and a motion signal in a non-adverse haptic environment.

[0087] The haptic module 210 may be executed on one or more processors 240 to, in response to determining that the computing device 202 is in an adverse haptic environment, drive the haptic device 214 to output an alternative haptic signal instead of the haptic signal. The haptic signal may be a haptic signal that the haptic device 214 would have output if the computing device 202 were in a non-adverse haptic environment. For example, if the haptic module 210 determines whether the computing device 202 is in an adverse haptic environment in response to the computing device 202 receiving a telephone call, the haptic signal may have been associated by the operating system 254 with an event type of the computing device 202 receiving a telephone call.

[0088] Such a haptic signal may include a vibration pattern associated with a vibration frequency (i.e., the number of vibrations emitted by the haptic device 214 within a defined period of time) and a pattern of vibration intensities that defines the intensities of the vibrations emitted by the haptic device. The alternative haptic signal emitted instead of a haptic signal may include a vibration intensity that is less than the vibration intensity of the haptic signal. For example, the alternative haptic signal may include a peak vibration intensity that is less than the peak vibration intensity of the haptic signal. In some examples, the alternative haptic signal may also not include one or more resonant frequencies that may cause the computing device 202 to generate a harsh rattle in an adverse haptic environment.

[0089] In some examples, the alternative haptic signal may have the same vibration pattern as the haptic signal, but with reduced vibration intensities. For example, the alternative haptic signal may have the same vibration frequencies as the corresponding haptic signal, but with a lower vibration intensity compared to the corresponding haptic signal.

[0090] A haptic signal may have an amplitude that corresponds to the vibration intensity of the haptic signal. For example, the amplitude of the alternative haptic signal may correspond to the vibration intensity of the alternative haptic signal, and the amplitude of the haptic signal may correspond to the vibration intensity of the haptic signal. Therefore, an alternative haptic signal may have an amplitude that is smaller than the amplitude of the haptic signal.

[0091] The amplitude of the alternative haptic signal may be a value that reduces the amount of rattling of the computing device 202 on a solid surface caused by the haptic device 214 outputting a haptic signal. For example, the alternative haptic signal may have an amplitude that is 50% of the amplitude of the haptic signal. In some examples, the alternative haptic signal may have an amplitude that is between 30% and 70% of the amplitude of the haptic signal. In some examples, the alternative haptic signal may have a peak amplitude that is less than the peak amplitude of the haptic signal, such as 50% of the peak amplitude of the haptic signal, between 30% and 70% of the peak amplitude of the haptic signal, and the like.

[0092] When the haptic device 214 outputs a haptic signal, the haptic device 214 may generate a noise due to vibrations of the haptic device 214 as well as vibrations of the computing device 202 caused by the haptic device 214 outputting the haptic signal. Such a noise generated as a result of the haptic device 214 outputting a haptic signal may be referred to as an audio portion of the haptic signal. Since an alternative haptic signal may have an amplitude much smaller than the amplitude of the haptic signal, the audio portion of the alternative haptic signal may also be much smaller than the audio portion of the haptic signal.That is, the sound generated by computing device 202 as a result of haptic device 214 outputting an alternative haptic signal may be significantly quieter than the sound generated by computing device 202 as a result of haptic device 214 outputting the haptic signal. The audio portion of the alternative haptic signal, which is much smaller than the audio portion of the haptic signal, may cause some users of computing device 202 to fail to notice that computing device 202 is attempting to alert the user to the occurrence of a particular event by outputting the alternative haptic signal.

[0093] As such, in some examples, in addition to outputting an alternative haptic signal, computing device 202 may also output audio through one or more audio output devices (e.g., speakers) of computing device 202 that is more audible (e.g., at a higher volume) than the audio portion of the alternative haptic signal. In some examples, computing device 202 may output such audio even when audio notifications (e.g., ringtones) are muted, such as when computing device 202 is set to a silent mode or a vibration-only mode.

[0094] For example, one or more processors 240 may be configured to also output, via one or more audio output devices of one or more output devices 246, an audio signal corresponding to the audio portion of a haptic signal having a greater vibration intensity than the alternative haptic signal, while driving the haptic device 214 to output an alternative haptic signal. For example, one or more processors 240 may be configured to output, via one or more audio devices, an audio signal corresponding to the audio generated by a computing device as a result of outputting a haptic signal in a non-adverse haptic environment.

[0095] Such an audio signal may be pre-recorded and stored in one or more storage devices 248 or generated by one or more processors 240. When such an audio signal is generated by one or more processors 240, the operating system 254 may enable user adjustments to the audio signal, such as adjusting the volume of the audio signal or changing other characteristics of the audio signal.

[0096] In some examples, one or more processors 240 may be configured to synchronize the playback of the audio signal with the output of the alternative haptic signal such that the amplitude of the audio signal is correlated with the alternative haptic signal. By synchronizing the playback of the audio signal with the output of the alternative haptic signal, it may be ensured that any audible sound generated by the haptic device 214 as a result of the output of the alternative haptic signal does not conflict with the audio signal output via one or more output devices 246.

[0097] In some examples, when one or more output devices 246 includes a plurality of audio output devices, such as a plurality of speakers, positioned in different areas of the computing device 202, one or more processors 240 may be configured to select a subset (i.e., less than all) of the plurality of speakers to output the audio signal when the haptic device 214 outputs the alternative haptic signal. In some examples, one or more processors 240 may be configured to select one or more audio devices closest to the haptic device 214 from a plurality of audio output devices to output the audio signal when the haptic device 214 outputs the alternative haptic signal.

[0098] Fig. 8 is a flowchart illustrating example operations of an example computing device configured to output haptic signals, according to one or more aspects of the present disclosure. For illustrative purposes only, the example operations associated with the computing device 202 of Fig. 2 described.

[0099] As in Fig.8, one or more processors 240 of computing device 202 may control a haptic device 214 of computing device 202 to output a haptic precursor signal (802). One or more processors 240 may determine a motion signal associated with outputting the haptic precursor signal (804). One or more processors 240 may determine, based at least in part on the motion signal of the computing device, that computing device 202 is in an adverse haptic environment (806). One or more processors 240 may, in response to determining that computing device 202 is in an adverse haptic environment, control haptic device 214 to output an alternative haptic signal in place of the haptic signal (808).

[0100] In some examples, the computing device 202 includes a motion sensor 206 configured to detect movement of the computing device 202 while the haptic device 214 is outputting at least a portion of the haptic precursor signal, and when the motion signal associated with outputting the haptic precursor signal is to be determined, one or more processors 240 may determine the motion signal associated with outputting the haptic precursor signal based at least in part on the movement of the computing device 202 detected by the motion sensor.

[0101] In some examples, to detect the movement of the computing device 202, the motion sensor 206 may detect the movement of the computing device 202 along an axis of the motion sensor 206 that corresponds to an axis of a linear resonant actuator of the haptic device 214 along which a mass of the haptic device 214 moves to output the haptic precursor signal.

[0102] To determine that the computing device 202 is in the adverse haptic environment based at least in part on the motion signal of the computing device 202, in some examples, the one or more processors 240 may determine that the computing device 202 is in the adverse haptic environment based at least in part on comparing the motion signal of the computing device 202 to a non-adverse motion signal.

[0103] To compare the motion signal of the computing device 202 with the non-adverse motion signal, in some examples, the one or more processors 240 may compare a magnitude of a peak amplitude of the motion signal in a frequency domain with a magnitude of a peak amplitude of the non-adverse motion signal in the frequency domain to determine that the computing device 202 is in the adverse haptic environment.

[0104] To compare the peak amplitude of the motion signal in the frequency domain to the peak amplitude of the non-adverse motion signal in the frequency domain to determine that the computing device 202 is in the adverse haptic environment, in some examples, the one or more processors 240 may determine that the peak amplitude of the motion signal in the frequency domain is greater than the peak amplitude of the non-adverse motion signal in the frequency domain, and in response to determining that the peak amplitude of the motion signal in the frequency domain is greater than the peak amplitude of the non-adverse motion signal in the frequency domain, the one or more processors 240 may determine that the computing device 202 is in the adverse haptic environment.

[0105] To determine that the computing device 202 is located in the adverse haptic environment, in some examples, the one or more processors 240 may determine that the peak amplitude of the motion signal in the frequency domain occurs at a lower harmonic frequency compared to the peak amplitude of the motion signal, and in response to determining that the magnitude of the peak amplitude of the motion signal in the frequency domain is greater than the magnitude of the peak amplitude of the non-adverse motion signal in the frequency domain and that the peak amplitude of the motion signal in the frequency domain occurs at a lower harmonic frequency compared to the peak amplitude of the motion signal, the one or more processors 240 may determine that the computing device 202 is located in the adverse haptic environment.

[0106] In some examples, the computing device includes one or more audio output devices configured to output an audio signal corresponding to an audio portion of the haptic signal while at least a portion of the alternative haptic signal is output by the haptic device 214.

[0107] In some examples, the alternative haptic signal has a lower vibration intensity compared to the haptic signal.

[0108] To drive the haptic device 214 of the computing device 202 to output the haptic precursor signal, in some examples, the one or more processors 240 may determine that one or more characteristics of the computing device indicate a likelihood that the computing device 202 is located in the adverse haptic environment, and in response to determining that the one or more characteristics of the computing device 202 indicate the likelihood that the computing device 202 is located in the adverse haptic environment, drive the haptic device 214 to output the haptic precursor signal.

[0109] This disclosure includes the following examples:

[0110] Example 1. A method comprising: driving, by one or more processors of a computing device, a haptic device of the computing device to output a haptic precursor signal; determining, by the one or more processors, a motion signal associated with outputting the haptic precursor signal; determining, by the one or more processors and based at least in part on the motion signal associated with outputting the haptic precursor signal; and in response to determining that the computing device is in an adverse haptic environment, driving, by the one or more processors, the haptic device to output an alternative haptic signal instead of a haptic signal.

[0111] Example 2. The method of Example 1, wherein determining the motion signal associated with outputting the haptic precursor signal further comprises: detecting, by a motion sensor of the computing device, motion of the computing device while the haptic device is outputting at least a portion of the haptic precursor signal; and determining, by the one or more processors, the motion signal associated with outputting the haptic precursor signal based at least in part on the motion of the computing device detected by the motion sensor.

[0112] Example 3. The method of Example 2, wherein detecting the movement of the computing device further comprises: detecting, by the motion sensor of the computing device, the movement of the computing device along an axis of the motion sensor that corresponds to an axis of a linear resonant actuator of the haptic device along which a mass of the haptic device moves, to output the haptic precursor signal.

[0113] Example 4. The method of any of Examples 1-3, wherein determining that the computing device is in the adverse haptic environment based at least in part on the computing device motion signal further comprises: determining, by the one or more processors and at least in part based on comparing the computing device motion signal to a non-adverse motion signal, that the computing device is in the adverse haptic environment.

[0114] Example 5. The method of Example 4, wherein comparing the motion signal of the computing device with the non-adverse motion signal further comprises: comparing, by the one or more processors, a magnitude of a peak amplitude of the motion signal in a frequency domain with a magnitude of a peak amplitude of the non-adverse motion signal in the frequency domain to determine that the computing device is in the adverse haptic environment.

[0115] Example 6. The method of Example 5, wherein comparing the peak amplitude of the motion signal in the frequency domain with the peak amplitude of the non-adverse motion signal in the frequency domain to determine that the computing device is in the adverse haptic environment further comprises: determining, by the one or more processors, that the peak amplitude of the motion signal in the frequency domain is greater than the peak amplitude of the non-adverse motion signal in the frequency domain; and in response to determining that the peak amplitude of the motion signal in the frequency domain is greater than the peak amplitude of the non-adverse motion signal in the frequency domain, determining, by the one or more processors, that the computing device is in the adverse haptic environment.

[0116] Example 7. The method of Example 6, wherein determining that the computing device is in the adverse haptic environment further comprises: determining, by the one or more processors, that the peak amplitude of the motion signal in the frequency domain occurs at a lower harmonic frequency compared to the peak amplitude of the motion signal; and in response to determining that the magnitude of the peak amplitude of the motion signal in the frequency domain is greater than the magnitude of the peak amplitude of the non-adverse motion signal in the frequency domain and that the peak amplitude of the motion signal in the frequency domain occurs at a lower harmonic frequency compared to the peak amplitude of the motion signal, determining, by the one or more processors, that the computing device is in the adverse haptic environment.

[0117] Example 8. The method of any of Examples 1-7, further comprising: while at least a portion of the alternative haptic signal is output by the haptic device, outputting, by one or more audio output devices of the computing device, an audio signal corresponding to an audio portion of the haptic signal.

[0118] Example 9. The method of any one of examples 1-8, wherein the alternative haptic signal has a lower vibration intensity compared to the haptic signal.

[0119] Example 10. The method of any of Examples 1-9, wherein driving the haptic device of the computing device to output the haptic precursor signal further comprises: determining, by the one or more processors, that one or more characteristics of the computing device indicate a likelihood that the computing device is located in the adverse haptic environment; and in response to determining that the one or more characteristics of the computing device indicate the likelihood that the computing device is located in the adverse haptic environment, driving, by the one or more processors, the haptic device to output the haptic precursor signal.

[0120] Example 11. A computing device comprising: a haptic device; a memory storing instructions; and one or more processors executing the instructions to: drive the haptic device to output a haptic precursor signal; determine a motion signal associated with outputting the haptic precursor signal; determine that the computing device is in an adverse haptic environment based at least in part on the motion signal associated with outputting the haptic precursor signal; and in response to determining that the computing device is in an adverse haptic environment, drive the haptic device to output an alternative haptic signal instead of a haptic signal.

[0121] Example 12. The computing device of Example 11, wherein the computing device further includes a motion sensor configured to detect motion of the computing device while the haptic device outputs at least a portion of the haptic precursor signal, and wherein the one or more processors executing the instructions to determine the motion signal associated with outputting the haptic precursor signal further execute the instructions to: determine the motion signal associated with outputting the haptic precursor signal based at least in part on the motion of the computing device detected by the motion sensor.

[0122] Example 13. The computing device of Example 12, wherein the motion sensor configured to detect motion of the computing device is further configured to: detect motion of the computing device along an axis of the motion sensor that corresponds to an axis of a linear resonant actuator of the haptic device along which a mass of the haptic device moves, to output the haptic precursor signal.

[0123] Example 14. The computing device of any of Examples 11-13, wherein the one or more processors that execute the instructions to determine that the computing device is in the adverse haptic environment based at least in part on the motion signal of the computing device further execute the instructions to: determine that the computing device is in the adverse haptic environment based at least in part on comparing the motion signal of the computing device to a non-adverse motion signal.

[0124] Example 15. The computing device of Example 14, wherein the one or more processors executing instructions to compare the motion signal of the computing device to the non-adverse motion signal further execute instructions to: compare a magnitude of a peak amplitude of the motion signal in a frequency domain to a magnitude of a peak amplitude of the non-adverse motion signal in the frequency domain to determine that the computing device is in the adverse haptic environment.

[0125] Example 16. The computing device of Example 15, wherein the one or more processors executing the instructions to compare the peak amplitude of the frequency-domain motion signal to the peak amplitude of the non-adverse frequency-domain motion signal to determine that the computing device is in the adverse haptic environment further execute the instructions to: determine that the peak amplitude of the frequency-domain motion signal is greater than the peak amplitude of the non-adverse frequency-domain motion signal; and in response to determining that the peak amplitude of the frequency-domain motion signal is greater than the peak amplitude of the non-adverse frequency-domain motion signal, determine that the computing device is in the adverse haptic environment.

[0126] Example 17. The computing device of Example 16, wherein the one or more processors executing the instructions to determine that the computing device is in the adverse haptic environment further execute the instructions to: determine that the peak amplitude of the motion signal in the frequency domain occurs at a lower harmonic frequency compared to the peak amplitude of the motion signal; and in response to determining that the magnitude of the peak amplitude of the motion signal in the frequency domain is greater than the magnitude of the peak amplitude of the non-adverse motion signal in the frequency domain and that the peak amplitude of the motion signal in the frequency domain occurs at a lower harmonic frequency compared to the peak amplitude of the motion signal, determine that the computing device is in the adverse haptic environment.

[0127] Example 18. The computing device of any of Examples 11-17, wherein the computing device includes one or more audio output devices configured to: while at least a portion of the alternative haptic signal is being output by the haptic device, output an audio signal corresponding to an audio portion of the haptic signal.

[0128] Example 19. The computing device of any of examples 11-18, wherein the alternative haptic signal has a lower vibration intensity compared to the haptic signal.

[0129] Example 20. A non-transitory computer-readable storage medium storing instructions that, when executed, cause the one or more processors of a computing device to: drive a haptic device of the computing device to output a haptic precursor signal; determine a motion signal associated with outputting the haptic precursor signal; determine that the computing device is in an adverse haptic environment based at least in part on the motion signal associated with outputting the haptic precursor signal; and in response to determining that the computing device is in an adverse haptic environment, drive, by the one or more processors, the haptic device to output an alternative haptic signal instead of a haptic signal.

[0130] In one or more examples, the described functions may be implemented in hardware, software, firmware, or any combination thereof. When implemented in software, the functions may be stored or transmitted on a computer-readable medium as one or more instructions or as code and executed by a hardware-based processing unit. Computer-readable media may include computer-readable storage media corresponding to a tangible medium, such as data storage media, or communications media including any medium that facilitates transfer of a computer program from one location to another, e.g., according to a communications protocol. In this way, computer-readable media may generally correspond to (1) tangible computer-readable storage media that is non-transitory, or (2) a communications medium, such as a signal or carrier wave.Data storage media may be any available media accessible by one or more computers or one or more processors to retrieve instructions, code, and / or data structures for implementing the techniques described in this disclosure. A computer program product may include a computer-readable medium.

[0131] By way of example, but not limitation, such computer-readable storage media may include RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, flash memory, or any other media that can be used to store the desired program code in the form of instructions or data structures and that can be accessed by a computer. Furthermore, each combination is properly referred to as a computer-readable medium.For example, if instructions are transmitted from a website, server, or other remote source using a coaxial cable, fiber optic cable, twisted pair cable, digital subscriber line (DSL), or wireless technology such as infrared, radio, and microwaves, then the coaxial cable, fiber optic cable, twisted pair cable, DSL, or wireless technology such as infrared, radio, and microwaves are included in the definition of medium. However, it is understood that computer-readable storage media and data storage media do not include connections, carrier waves, signals, or other transient media, but instead refer to non-transitory, tangible storage media.In this context, disk and disc include compact disc (CD), laser disc, optical disc, digital versatile disc (DVD), floppy disk, and Blu-ray Disc. Disks typically reproduce data magnetically, while discs reproduce data optically using lasers. Combinations of the foregoing are also intended to be included within the scope of computer-readable media.

[0132] Instructions may be executed by one or more processors, such as one or more digital signal processors (DSPs), general-purpose microprocessors, application-specific integrated circuits (ASICs), field-programmable logic arrays (FPGAs), or other equivalent integrated or discrete logic circuits. Accordingly, the term "processor" as used herein may refer to any of the foregoing structures or any other structure suitable for implementing the techniques described in this document. Furthermore, the functionality described in this document may, in some aspects, be provided in dedicated hardware and / or software modules. Furthermore, the techniques could be implemented entirely in one or more circuits or logic elements.

[0133] The techniques of this disclosure may be implemented in a wide variety of devices or devices, including a wireless handset, an integrated circuit (IC), or a set of ICs (e.g., a chipset). Various components, modules, or units are described in this disclosure to highlight functional aspects of devices configured to perform the disclosed techniques, but do not necessarily require implementation by different hardware units. Rather, as described above, various units may be combined into one hardware unit or provided by a collection of interoperable hardware units, including one or more processors, as described above in conjunction with suitable software and / or firmware.

[0134] Various examples of the disclosure have been described. Any combination of the described systems, acts, or functions is contemplated. These and other examples are within the scope of the following claims.

Claims

[1] Method comprising: driving a haptic device of a computing device by one or more processors of the computing device to output a haptic precursor signal; determining, by the one or more processors, a motion signal associated with outputting the haptic precursor signal; Determining, by the one or more processors and based at least in part on the motion signal associated with outputting the haptic precursor signal, that the computing device is in an adverse haptic environment; and in response to determining that the computing device is in the adverse haptic environment, driving the haptic device, by the one or more processors, to output an alternative haptic signal instead of a haptic signal. [2] The method of claim 1, wherein determining the motion signal associated with outputting the haptic precursor signal further comprises: detecting a movement of the computing device by a motion sensor of the computing device while the haptic device outputs at least a portion of the haptic precursor signal; and Determining, by the one or more processors, the motion signal associated with outputting the haptic precursor signal based at least in part on the motion of the computing device detected by the motion sensor. [3] The method of claim 2, wherein detecting the movement of the computing device further comprises: Detecting, by the motion sensor of the computing device, the movement of the computing device along an axis of the motion sensor corresponding to an axis of a linear resonant actuator of the haptic device along which a mass of the haptic device moves to output the haptic precursor signal. [4] The method of any of claims 1-3, wherein determining that the computing device is in the adverse haptic environment based at least in part on the motion signal of the computing device further comprises: Determining, by the one or more processors and based at least in part on comparing the motion signal of the computing device with a non-adverse motion signal, that the computing device is in the adverse haptic environment. [5] The method of claim 4, wherein comparing the motion signal of the computing device with the non-adverse motion signal further comprises: Comparing, by the one or more processors, a magnitude of a peak amplitude of the motion signal in a frequency domain with a magnitude of a peak amplitude of the non-adverse motion signal in the frequency domain to determine that the computing device is in the adverse haptic environment. [6] The method of claim 5, wherein comparing the peak amplitude of the motion signal in the frequency domain with the magnitude of the peak amplitude of the non-adverse motion signal in the frequency domain to determine that the computing device is in the adverse haptic environment further comprises: Determining, by the one or more processors, that the magnitude of the peak amplitude of the motion signal in the frequency domain is greater than the magnitude of the peak amplitude of the non-adverse motion signal in the frequency domain; and in response to determining that the magnitude of the peak amplitude of the motion signal in the frequency domain is greater than the magnitude of the peak amplitude of the non-adverse motion signal in the frequency domain, determining, by the one or more processors, that the computing device is in the adverse haptic environment. [7] The method of claim 6, wherein determining that the computing device is in the adverse haptic environment further comprises: Determining, by the one or more processors, that the peak amplitude of the motion signal in the frequency domain occurs at a lower harmonic frequency compared to the peak amplitude of the motion signal; and in response to determining that the magnitude of the peak amplitude of the motion signal in the frequency domain is greater than the magnitude of the peak amplitude of the non-adverse motion signal in the frequency domain and that the peak amplitude of the motion signal in the frequency domain occurs at a lower harmonic frequency compared to the peak amplitude of the motion signal, determining, by the one or more processors, that the computing device is in the adverse haptic environment. [8] A method according to any one of claims 1-7, further comprising: while at least a portion of the alternative haptic signal is output by the haptic device, outputting an audio signal corresponding to an audio portion of the haptic signal by one or more audio output devices of the computing device. [9] The method of any of claims 1-8, wherein the alternative haptic signal has a lower vibration intensity compared to the haptic signal. [10] The method of any of claims 1-9, wherein driving the haptic device of the computing device to output the haptic precursor signal further comprises: Determining, by the one or more processors, that one or more characteristics of the computing device indicate a likelihood that the computing device is in the adverse haptic environment; and in response to determining that the one or more characteristics of the computing device indicate the likelihood that the computing device is located in the adverse haptic environment, driving the haptic device, by the one or more processors, to output the haptic precursor signal. [11] Computing device comprising: a haptic device; a memory that stores instructions; and one or more processors that execute instructions to: driving the haptic device to output a haptic precursor signal; Determining a motion signal associated with outputting the haptic precursor signal; Determining that the computing device is in an adverse haptic environment based at least in part on the motion signal associated with outputting the haptic precursor signal; and in response to determining that the computing device is in the adverse haptic environment, driving the haptic device to output an alternative haptic signal instead of a haptic signal. [12] The computing device of claim 11, wherein the computing device further includes a motion sensor configured to detect movement of the computing device while the haptic device outputs at least a portion of the haptic precursor signal, and wherein the one or more processors executing the instructions to determine the motion signal associated with outputting the haptic precursor signal further execute the instructions to: Determining the motion signal associated with outputting the haptic precursor signal based at least in part on the motion of the computing device detected by the motion sensor. [13] The computing device of claim 12, wherein the motion sensor configured to detect the movement of the computing device is further configured to: Detecting movement of the computing device along an axis of the motion sensor corresponding to an axis of a linear resonant actuator of the haptic device along which a mass of the haptic device moves to output the haptic precursor signal. [14] The computing device of any of claims 11-13, wherein the one or more processors that execute the instructions to determine that the computing device is in the adverse haptic environment based at least in part on the motion signal of the computing device further execute the instructions to: Determining that the computing device is in the adverse haptic environment based at least in part on comparing the motion signal of the computing device with a non-adverse motion signal. [15] The computing device of claim 14, wherein the one or more processors that execute the instructions to compare the computing device motion signal with the non-adverse motion signal further execute the instructions to: Comparing a magnitude of a peak amplitude of the motion signal in a frequency domain with a magnitude of a peak amplitude of the non-adverse motion signal in the frequency domain to determine that the computing device is in the adverse haptic environment. [16] The computing device of claim 15, wherein the one or more processors that execute the instructions to compare the peak amplitude of the frequency-domain motion signal with the magnitude of the peak amplitude of the non-adverse frequency-domain motion signal to determine that the computing device is in the adverse haptic environment further execute the instructions to: Determining that the magnitude of the peak amplitude of the motion signal in the frequency domain is greater than the magnitude of the peak amplitude of the non-adverse motion signal in the frequency domain; and in response to determining that the magnitude of the peak amplitude of the motion signal in the frequency domain is greater than the magnitude of the peak amplitude of the non-adverse motion signal in the frequency domain, determining that the computing device is in the adverse haptic environment. [17] The computing device of claim 16, wherein the one or more processors that execute the instructions to determine that the computing device is in the adverse haptic environment further execute the instructions to: Determining that the peak amplitude of the motion signal in the frequency domain occurs at a lower harmonic frequency compared to the peak amplitude of the motion signal; and in response to determining that the magnitude of the peak amplitude of the motion signal in the frequency domain is greater than the magnitude of the peak amplitude of the non-adverse motion signal in the frequency domain and that the peak amplitude of the motion signal in the frequency domain occurs at a lower harmonic frequency compared to the peak amplitude of the motion signal, determining that the computing device is in the adverse haptic environment. [18] The computing device of any of claims 11-17, wherein the computing device includes one or more audio output devices configured to: while at least a portion of the alternative haptic signal is output by the haptic device, outputting an audio signal corresponding to an audio portion of the haptic signal. [19] The computing device of any of claims 11-18, wherein the alternative haptic signal has a lower vibration intensity compared to the haptic signal. [20] A non-transitory computer-readable storage medium that stores instructions that, when executed, cause one or more processors of a computing device to: driving a haptic device of the computing device to output a haptic precursor signal; Determining a motion signal associated with outputting the haptic precursor signal; Determining that the computing device is in an adverse haptic environment based at least in part on the motion signal associated with outputting the haptic precursor signal; and in response to determining that the computing device is in the adverse haptic environment, driving the haptic device, by the one or more processors, to output an alternative haptic signal instead of a haptic signal.