Two-stage triggering in handheld device

Through the two-stage trigger mechanism of the handheld controller, magnets and magnetic sensors are used to sense the index finger force and provide tactile feedback, which solves the problem of fine motor control in virtual reality/augmented reality and improves the user's control accuracy and realism.

CN120660055APending Publication Date: 2025-09-16CTRL-LABS CORP
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202480009188.8
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2024-03-01
Filing Date
2024-03-04
Publication Date
2025-09-16

AI Technical Summary

Technical Problem

In existing technologies, in virtual reality/augmented reality, users lack fine motor control when interacting with virtual objects, especially insufficient response to index finger pressure, resulting in limited fine manipulation capabilities in the virtual environment.

Method used

A handheld controller was designed, which includes a housing, a thumb pad, a logic board, and a switch assembly. It uses magnets and magnetic sensors to sense the trigger force of the index finger and provides tactile feedback through a two-stage trigger mechanism to achieve fine motor control.

Benefits of technology

Through a two-stage trigger mechanism, it provides conversion between approximately constant force and linearly increasing force, enhancing the fine manipulation ability in the virtual environment and improving the user's sense of reality and manipulation accuracy in the virtual environment.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120660055A_ABST
    Figure CN120660055A_ABST
Patent Text Reader

Abstract

A controller includes a housing, and a handle extends from a portion of the housing. The housing defines an interior cavity. The housing includes a thumb plate, where the thumb plate includes a touchpad, one or more actuators, and / or a joystick. The one or more actuators include a button. The controller includes a logic board including a processor oriented in an internal cavity. The controller includes a switch assembly oriented in the interior cavity and configured to engage with the logic board. The handle includes at least one trigger oriented for movement into the interior cavity. The trigger may include a magnet and a magnetic sensor.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] CROSS-REFERENCE TO RELATED APPLICATIONS

[0002] This application claims the benefit of priority under 35 U.S.C. §119(e) to U.S. Provisional Application No. 63 / 487,916, filed on March 2, 2023. Technical Field

[0003] The present disclosure relates generally to tactile responses in handheld devices and, more particularly, to tactile responses at the index finger in a handheld device. Background Art

[0004] When interacting in virtual reality / augmented reality, the tactile feedback that users experience when interacting with virtual objects can affect the experience. When users try to manually manipulate items, certain actions (e.g., grasping, pinching, and pulling) may be missing. The problem may lie in the system's response to the pressure applied by the index finger. Richer feedback in interactions with the fingers allows for more accurate manipulation of objects and can improve the realism of various applications in virtual environments, including gaming, training, surgery, and simulation as use cases for accurate grasping.

[0005] The present disclosure seeks to at least partially address any or all of the above-mentioned shortcomings and disadvantages. Summary of the Invention

[0006] The subject disclosure provides a controller for an artificial reality environment and related systems and methods. A user is allowed to perform fine motor activities within the artificial reality environment. According to a first aspect of the present disclosure, a controller for interacting with an artificial reality environment is provided, the controller comprising: a housing including a handle, wherein the housing defines an internal cavity; a thumb pad coupled to the housing, the thumb pad including a touch pad, one or more actuators and / or a joystick, wherein the one or more actuators include buttons; a logic board including a processor oriented in the internal cavity; and a switch assembly oriented in the internal cavity and configured to engage with the logic board, wherein the handle includes at least one trigger oriented for movement into the internal cavity, the trigger including a magnet and a magnetic sensor.

[0007] In some embodiments, the controller may further include: a protrusion structure comprising a resilient material; and a pressure plate structure comprising a rigid conductive material, wherein the pressure plate structure may be oriented to engage the logic board.

[0008] In some embodiments, the controller can be configured to generate tactile feedback to the user based on the force applied by the user to the trigger.

[0009] In some embodiments, the controller is configured to generate tactile feedback based on engagement between the switch assembly and the logic board, wherein the force applied by the user exceeds a first inflection point threshold; or the controller is configured to generate tactile feedback based on engagement between the switch assembly and the logic board when the force applied by the user exceeds a first inflection point threshold.

[0010] In some embodiments, the haptic feedback may include an approximately linear relationship between applied force and distance.

[0011] In some embodiments, trigger movement can be configured to cease based on the force applied by the user exceeding a second inflection point threshold.

[0012] In some embodiments, the magnetic sensor may receive and generate electrical signals based on the Hall effect.

[0013] In some embodiments, the controller may be further configured to implement dynamic calibration, wherein a plurality of magnetic sensor measurements may be correlated with a plurality of user-applied measurements from the switch assembly to determine a minimum magnetic sensor value at which the first inflection threshold may be exceeded.

[0014] In some embodiments, the controller can be configured to communicatively pair with a head-mounted display for an artificial reality environment.

[0015] In some embodiments, the controller may include at least one camera.

[0016] In some embodiments, the controller may also include one or more haptic actuators.

[0017] In some embodiments, the control configured to activate a precision pinch may include receiving simultaneous input from a touchpad and at least one trigger.

[0018] According to a second aspect of the present disclosure, there is provided a computer-implemented method for sensing input to a controller configured to interact with an artificial reality environment, the computer-implemented method comprising: determining switch assembly activation from a switch assembly oriented in the controller; receiving a trigger input from a trigger on the controller, wherein the trigger comprises a magnet and a magnetic sensor; determining a magnetic field measurement from the magnetic sensor; determining a force value based on the magnetic field measurement, wherein the force value exceeds a first inflection point threshold; generating tactile feedback for a user in response to the first inflection point threshold being exceeded; generating a virtual interaction based on the trigger input; and causing the virtual interaction to be displayed.

[0019] In some embodiments, the method may include generating a virtual interaction based on movement, actuator input, touchpad input, joystick input, and / or trigger input.

[0020] In some embodiments, the virtual interaction may include one or more of: picking up a virtual object; pressing a virtual button; and / or other fine motor activity.

[0021] In some embodiments, the computer-implemented method may further include receiving an actuator input from an actuator on a thumb pad coupled to a controller; receiving a touch pad input from a touch pad on the thumb pad of the controller; and receiving a joystick input from a joystick on the thumb pad of the controller.

[0022] In some embodiments, the display may be caused by a head mounted display for an artificial reality environment.

[0023] In some embodiments, determining the force value based on the magnetic field measurement may include determining a first noise value associated with the magnetic sensor and a second noise value associated with the analog-to-digital conversion; and determining a gain value based on the first noise value and the second noise value.

[0024] In some embodiments, the computer-implemented method may further include implementing dynamic calibration of the controller, implementing dynamic calibration of the controller including determining a minimum magnetic sensor measurement at which a first inflection point threshold is exceeded; and providing an adjustment to the tactile feedback response to the user based on the minimum magnetic sensor measurement.

[0025] According to a third aspect of the present disclosure, there is provided a system configured to sense input to a controller configured to interact with an artificial reality environment, the system comprising one or more hardware processors configured by machine-readable instructions to: determine activation of a switch assembly from a switch assembly, the switch assembly being oriented in the controller; receive a trigger input from at least one trigger on a handle coupled to the controller; determine a magnetic field measurement from a magnetic sensor; determine a force value based on the magnetic field measurement, wherein the force value exceeds a first inflection point threshold; generate tactile feedback for a user in response to the first inflection point threshold being exceeded; generate a virtual interaction based on the trigger input, wherein the virtual interaction includes fine motor activity; and cause display of the virtual interaction, wherein the display is caused by a head-mounted display for the artificial reality environment, and wherein displaying the virtual interaction comprises presenting a virtual hand performing part or all of the virtual interaction.

[0026] In some embodiments, the machine-readable instructions can also be configured to: implement dynamic calibration of the controller, implementing dynamic calibration of the controller includes: determining the minimum magnetic sensor measurement result at which the first inflection point threshold is exceeded, and providing adjustment to the tactile feedback response based on the minimum magnetic sensor measurement result.

[0027] It will be appreciated that any feature described herein as suitable for incorporation into one or more aspects or embodiments of the present disclosure is intended to be general in any and all aspects and embodiments of the present disclosure. Other aspects of the present disclosure will be apparent to those skilled in the art from the specification, claims, and drawings of the present disclosure. The foregoing general description and the following detailed description are merely exemplary and illustrative and are not intended to limit the claims. BRIEF DESCRIPTION OF THE DRAWINGS

[0028] The accompanying drawings, which are included to provide a further understanding and are incorporated in and constitute a part of this specification, illustrate the disclosed embodiments and, together with the description, serve to explain the principles of the disclosed embodiments. In the drawings:

[0029] Figure 1 is a block diagram illustrating an overview of devices according to one or more embodiments of the present disclosure, on which some embodiments of the disclosed technology may operate.

[0030] Figure 2A is a line diagram of a virtual reality head-mounted display (HMD) according to one or more embodiments of the present disclosure.

[0031] Figure 2B is a line diagram of a mixed reality HMD system including a mixed reality HMD and a core processing component according to one or more embodiments of the present disclosure.

[0032] Figure 3A and Figure 3B Different views of an example controller are shown according to one or more embodiments of the present disclosure.

[0033] Figure 4 A side cross-sectional view of a controller in an inactive state is shown, according to one or more embodiments of the present disclosure.

[0034] Figure 5 A side cross-sectional view of a controller device in a second activation state is shown, according to one or more embodiments of the present disclosure.

[0035] Figure 6 A side cross-sectional view of a controller in a third activation state according to one or more embodiments of the present disclosure is shown.

[0036] Figure 7 A force-distance graph detailing the transition between the first and second phases is depicted in accordance with one or more embodiments of the present disclosure.

[0037] Figure 8A system configured for sensing input to a controller configured for interacting with an artificial reality environment is shown in accordance with one or more embodiments of the present disclosure.

[0038] Figure 9 An example flow chart for sensing input to a controller configured to interact with an artificial reality environment is shown, according to one or more embodiments of the present disclosure.

[0039] Figure 10 is a block diagram illustrating an example computer system (eg, representing both a client and a server) with which one or more embodiments of the subject technology may be implemented. DETAILED DESCRIPTION

[0040] In the following detailed description, numerous specific details are set forth to provide a thorough understanding of the present disclosure. However, it will be apparent to one of ordinary skill in the art that the various embodiments of the present disclosure can be practiced without some of these specific details. In other instances, well-known structures and techniques are not shown in detail to avoid obscuring the present disclosure.

[0041] With existing artificial reality systems, users may have limited ability to manipulate virtual objects within an artificial reality environment. For example, a user may be able to use a handheld controller to perform gross manual actions, such as pushing open a door or "grabbing" a hammer with a virtual hand. However, existing technologies cannot facilitate fine motor actions within an artificial reality environment. Fine motor actions, or fine motor activities, can involve synchronizing a user's hands and fingers by coordinating small muscles with the user's eyes during movement.

[0042] The various embodiments described herein are intended to measure the approximate force applied between the index finger and thumb and transmit this approximate force to a virtual reality (VR) application that wishes to create a virtual simulation of fine manipulation, squeezing, or destruction of an object with relatively low force. A two-stage embodiment is an innovation in which force sensing is derived from an existing index finger trigger mechanism, which requires negligible cost and provides more robust performance. The system may include a sensing mechanism for determining the trigger position of the forefinger (index finger). The major portion of the trigger stroke has a constant force, and the minor portion of the stroke introduces a compressible spring element (rubber, foam, and metal coils are some possible embodiments) that has a linearly increasing force. Therefore, a relationship between the forces applied in the second stage can be derived from the existing position sensing mechanism and transmitted to the simulation in the virtual environment to allow force-based interaction and fine manipulation.

[0043] Several embodiments are discussed in more detail below with reference to the accompanying drawings. Figure 1 is a block diagram showing an overview of devices on which or with which some embodiments of the disclosed technology may run. These devices may include hardware components of a computing system 100 that can create, manage, and provide multiple interaction modes for an artificial reality collaborative work environment. In various embodiments, the computing system 100 may include a single computing device 103 or multiple computing devices (e.g., computing device 101, computing device 102, and computing device 103) that communicate via a wired channel or a wireless channel to distribute processing and share input data. In some embodiments, the computing system 100 may include a standalone head-mounted viewer (headset) that is capable of providing a computer-created or enhanced experience to a user without the need for external processing or external sensors. In other embodiments, the computing system 100 may include multiple computing devices, such as a head-mounted viewer and a core processing component (e.g., a console, a mobile device, or a server system), where some processing operations are performed on the head-mounted viewer and other processing operations are transferred to the core processing component. The following is combined with Figure 2A and Figure 2B An example head-mounted view (HMD) is described. In some embodiments, location data and environmental data may be collected solely by sensors incorporated into the HMD device, while in other embodiments, one or more of the non-HMD computing devices may include sensor components that can track environmental data or location data.

[0044] Computing system 100 may include one or more processors 110 (e.g., a central processing unit (CPU), a graphics processing unit (GPU), a holographic processing unit (HPU), etc.). Processor 110 may be a single processing unit or multiple processing units, which are located in one device or distributed across multiple devices (e.g., distributed across two or more computing devices among computing devices 101 to 103).

[0045] The computing system 100 may include one or more input devices 120 that provide input to the processor 110, thereby informing the processor of actions. These actions may be communicated by a hardware controller that interprets signals received from the input devices and transmits information to the processor 110 using a communication protocol. For example, each input device 120 may include a mouse, a keyboard, a touch screen, a touchpad, a wearable input device (e.g., a tactile glove, a bracelet, a ring, an earring, a necklace, a watch, etc.), a camera (or other light-based input device, such as an infrared sensor), a microphone, or other user input device.

[0046] The processor 110 can be coupled to other hardware devices, for example, by using an internal bus or an external bus, such as a Peripheral Component Interconnect (PCI) bus, a Small Computer System Interface (SCSI) bus, or a wireless connection. The processor 110 can communicate with the hardware controller of each device (e.g., the display 130). The display 130 can be used to display text and graphics. In some embodiments, the display 130 includes an input device, such as when the input device is a touch screen or the input device is equipped with an eye movement direction monitoring system, the input device is part of the display. In some embodiments, the display is separate from the input device. Examples of display devices include: a liquid crystal display (LCD) display screen; a light emitting diode (LED) display screen; a projection display; a holographic display; or an augmented reality display (e.g., a head-up display device or a head-mounted device), etc. Other input / output (I / O) devices 140 may also be coupled to the processor, such as a network chip or card, a video chip or card, an audio chip or card, a Universal Serial Bus (USB), FireWire or other external devices, a camera, a printer, speakers, a compact disc read-only memory (CD-ROM) drive, a digital video disc (DVD) drive, a disk drive, etc.

[0047] The computing system 100 may include a communication device capable of communicating wirelessly or wired with other local computing devices or network nodes. The communication device may communicate with another device or server over a network, for example, using the TCP / IP protocol. The computing system 100 may utilize the communication device to distribute operations across multiple network devices.

[0048] The processor 110 can access a memory 150, which can be included in one of the computing devices of the computing system 100, or can be distributed across one of the computing devices of the computing system 100, or across multiple other external devices. Memory includes one or more hardware devices for volatile storage or non-volatile storage, and can include both read-only memory and writable memory. For example, memory can include one or more of the following: random access memory (RAM), various cache memories, CPU registers, read-only memory (ROM), and writable non-volatile memory (such as flash memory, hard drives, floppy disks, compact disks (CDs), DVDs, magnetic storage devices, and tape drives). Memory is not a propagating signal that is separated from the underlying hardware; therefore, memory is non-transitory. Memory 150 can include program memory 160 that stores programs and software, such as an operating system 162, an artificial reality (XR) working system 164, and other applications 166. Memory 150 may also include data storage 170 , which may include information to be provided to program storage 160 , or to any element in computing system 100 .

[0049] Some embodiments may operate with many other computing system environments or configurations. Examples of computing systems, environments, and / or configurations suitable for use with the technology include, but are not limited to, XR headsets, personal computers, server computers, handheld or laptop devices, cellular phones, wearable electronic devices, game consoles, tablet devices, multiprocessor systems, microprocessor-based systems, set-top boxes, programmable consumer electronic devices, network personal computers (PCs), minicomputers, mainframe computers, or distributed computing environments that include any of the foregoing.

[0050] Figure 2A2 is a line diagram of a virtual reality head-mounted display (HMD) 200, according to some embodiments. HMD 200 includes a front rigid body 205 and a strap 210. Front rigid body 205 includes one or more electronic display elements of an electronic display 245, an inertial motion unit (IMU) 215, one or more position sensors 220, a localizer 225, and one or more computing units 230. Position sensors 220, IMU 215, and computing unit 230 may be located internal to HMD 200 and may not be visible to the user. In various embodiments, IMU 215, position sensors 220, and localizer 225 may track the movement and position of HMD 200 in the real world and in a virtual environment with three degrees of freedom (3DoF) or six degrees of freedom (6DoF). For example, localizer 225 may emit infrared beams that create light spots on real objects around HMD 200. As another example, the IMU 215 may include: one or more accelerometers; one or more gyroscopes; one or more magnetometers; one or more other non-camera-based position, force, and orientation sensors; or a combination thereof. One or more cameras (not shown) integrated with the HMD 200 may detect light points. The computing unit 230 in the HMD 200 may use the detected light points to infer the position and movement of the HMD 200 and recognize the shape and position of real objects around the HMD 200.

[0051] The electronic display 245 can be integrated with the front rigid body 205 and can provide image light to the user as directed by the computing unit 230. In various embodiments, the electronic display 245 can be a single electronic display or multiple electronic displays (e.g., one display for each eye of the user). Examples of the electronic display 245 include: a liquid crystal display (LCD), an organic light-emitting diode (OLED) display, an active-matrix organic light-emitting diode display (AMOLED), a display including one or more quantum dot light-emitting diode (QOLED) sub-pixels, a projector unit (e.g., micro-LED, laser, etc.), some other display, or some combination thereof.

[0052] In some embodiments, the HMD 200 can be coupled to a core processing component, such as a personal computer (PC) (not shown), and / or one or more external sensors (not shown). The external sensors can monitor the HMD 200 (e.g., via light emitted from the HMD 200), which the PC can use in conjunction with outputs from the IMU 215 and the position sensor 220 to determine the position and movement of the HMD 200.

[0053] Figure 2B 2 is a line diagram of a mixed reality HMD system 250 that includes a mixed reality HMD 252 and a core processing component 254. The mixed reality HMD 252 and the core processing component 254 can communicate via a wireless connection (e.g., a 60 GHz link) as indicated by link 256. In other embodiments, the mixed reality system 250 includes only a head-mounted view device without an external computing device, or includes other wired or wireless connections between the mixed reality HMD 252 and the core processing component 254. The mixed reality HMD 252 includes a see-through display 258 and a frame 260. The frame 260 can house various electronic components (not shown), such as light projectors (e.g., LASERs, LEDs, etc.), cameras, eye tracking sensors, microelectromechanical systems (MEMS) components, networking components, etc.

[0054] The projector can be coupled to a see-through display 258, for example, via optical elements, to display media to the user. These optical elements can include one or more waveguide assemblies, one or more reflectors, one or more lenses, one or more mirrors, one or more collimators, one or more gratings, etc. for directing light from the projector to the user's eyes. Image data from the core processing component 254 can be transmitted to the HMD 252 via link 256. The controller in the HMD 252 can convert the image data into a plurality of light pulses from the projector, which can be transmitted as output light to the user's eyes via the optical elements. The output light can be mixed with the light passing through the display 258, allowing the output light to present virtual objects as if they existed in the real world.

[0055] Similar to the HMD 200, the HMD system 250 may also include motion and position tracking units, cameras, light sources, etc., which allow the HMD system 250 to track itself, for example, with 3DoF or 6DoF, track multiple parts of the user (e.g., hands, feet, head, or other body parts), draw virtual objects to appear stationary when the HMD 252 is in motion, and make virtual objects react to gestures and other real-world objects.

[0056] Figure 3A and Figure 3B 1 shows different views of an example self-tracking controller 300 according to one or more embodiments. The controller 300 may be configured to interact with an artificial reality environment. The controller 300 may be configured to interact with a head mounted display (e.g., Figure 2A HMD 200 and / or Figure 2B Controller 300 may be one of a pair of controllers configured for simultaneous use (eg, one controller for each hand of the user).

[0057] The controller 300 may include a housing 302. The housing 302 may include at least one sensor 304. The one or more sensors 304 may be configured to collect information for determining the position and / or motion of the controller. The information may include optical information (e.g., visible light, infrared light, etc.), spatial information (e.g., laser radar (LIDAR) output), motion information (e.g., MEMS output), biometric information (e.g., whether the user is holding the controller 300), and / or other types of information. The one or more sensors 304 may be located on at least one side of the housing 302. The one or more sensors 304 may include at least one camera. In some embodiments, the controller 300 may include a first sensor 304 and a second sensor 304 located on different sides of the housing 302. The field of view of the first sensor 304 may overlap with the field of view of the second sensor 304.

[0058] The one or more sensors 304 can be configured for self-tracking movement of the controller 300. In other words, the one or more sensors 304 can be configured to facilitate determining the position and / or motion of the controller 300 without external sensors. Because no external sensors are required, the controller 300 can have an unlimited tracking volume (or at least a tracking volume that is not limited by the placement of external sensors).

[0059] The controller 300 may include a thumb pad 306 coupled to the housing 302. The thumb pad 306 may include a touch pad 308, one or more actuators 310, a joystick 312, and / or other components. The touch pad 308 may be configured to contact a user's thumb. The user may provide input to the touch pad 308 with their thumb by touching different locations on the touch pad 308, moving their thumb across the touch pad 308, applying pressure to the touch pad 308, and / or other thumb gestures. The one or more actuators 310 may include buttons and / or other binary input devices. The joystick 312 may be configured to move linearly (e.g., up, down, left, right, diagonally, etc.), circumferentially (e.g., clockwise, counterclockwise, etc.), and / or in other motions. In some embodiments, the joystick 312 may be configured to be pressed (e.g., a binary button press).

[0060] The housing 302 of the controller 300 may include a handle 314. The controller 300 may be configured for use with the right hand (e.g., Figure 3A ) or left hand (e.g., Figure 3B ). The handle 314 can be configured to be held by a user by grasping the handle 314 with three or more fingers. The handle 314 can include one or more actuators 310 and / or one or more triggers 316. When the user is holding the controller 300, the user's index finger can be aligned with the trigger 316a and / or the user's thumb can be aligned with the trigger 316b. The thumb pad 306 can be positioned so that when the user is holding the handle 314 of the controller 300 with one hand, the user's thumb can be placed on the thumb pad 306 and / or apply a normal force to the thumb pad 306. The controller 300 can be configured to activate the precision pinch function based on input received from the touch pad 308 and / or the at least one trigger 316. For example, the precision pinch function can be based at least in part on simultaneous input received from the touch pad and the at least one trigger.

[0061] The controller 300 may include one or more haptic actuators 318. The one or more haptic actuators 318 may be configured to provide tactile feedback to a user holding the controller 300. The one or more haptic actuators 318 may be configured to provide tactile feedback to a user performing fine motor activities. The tactile feedback may provide a touch experience by applying one or more of vibration, force, motion, and / or other tactile feedback. Examples of the one or more tactile actuators 318 may include one or more of the following: an eccentric rotating mass (ERM) actuator; a linear resonant actuator (LRA); a piezoelectric actuator; a servo motor; and / or other tactile actuators. In some embodiments, the tactile feedback is located at one or more different locations on the controller 300. For example, in some embodiments, the controller 300 includes a first tactile actuator 318 disposed at the trigger 316. The controller 300 may include a second tactile actuator 318 disposed at the thumb pad 306. Thus, haptic feedback may be selectively applied to the user's index finger, the user's thumb, the user's palm, and / or other locations.

[0062] Triggers 316 may be oriented on a side surface of housing 302. The housing may define an internal cavity such that squeezing the triggers causes a portion of trigger 316 to enter cavity 330. Triggers 316 may comprise a material having sufficient thickness to transfer force from a finger to internal components of controller 300. One or more triggers 316 may have variable resistance when pulled by a user. That is, the resistance a user experiences when squeezing trigger 316 may vary at different times. The variable resistance may be determined in response to and / or based on the fine motor activity performed by the user. For example, when the index finger and / or thumb of a virtual hand controlled by controller 300 makes contact with a virtual object (e.g., when picking up a virtual object), the trigger resistance may increase. This increase in resistance may give the user the sensation of "touching" the virtual object. According to some embodiments, one or more triggers 316 may be configured with a long swing (e.g., a travel of more than one centimeter) or a short swing (e.g., a travel of less than one centimeter).

[0063] In an embodiment, Figures 4 to 6 As depicted, the controller 300 may include components that can further simulate a realistic gripping experience in a virtual reality / augmented reality environment using a two-stage trigger implementation. Figures 4 to 6As shown, applying force to the trigger 316 can cause the trigger to rotate about the pivot point 320. As the finger squeezes the trigger, the trigger angle (θ) will increase. The trigger may include a spring 322. In an embodiment, the spring may be a torsion spring. When no force is applied, the spring 322 may be biased to keep the trigger outside the cavity of the housing 302. In an embodiment, the force applied by the gripping action may contribute to the first stage of the force / distance interaction. The trigger 316 may include a magnet and a magnetic sensor (not shown). For example, the magnetic sensor may be a Hall effect sensor (HES), which is configured to detect the presence and / or magnitude of a magnetic field by utilizing the Hall effect. The HES provides an analog output proportional to the detected magnetic field. When the magnet embedded in the trigger changes position, the output of the HES will reflect the change. The HES dynamic range (mTesla (mT)) can be derived from the magnet strength, the HES position, and the total measurable trigger swing. HES noise, along with analog-to-digital-conversion (ADC) noise, determines the necessary processing gain (which affects bandwidth) to achieve the desired effective resolution.

[0064] The controller 300 may include a switch assembly 326 configured to initiate a change in the tactile response experienced by the user from a first stage of approximately constant force response to a second stage of linear force-distance response (e.g., Figure 7 ). The switch assembly 326 can be engaged by the trigger 316 (particularly the plunger 324). The plunger 324 can be oriented on a surface of the trigger 316, wherein rotation of the trigger about the pivot point 320 causes the plunger 324 to engage the switch assembly, thereby transmitting the force applied by the user to the switch assembly. The switch assembly 326 can include a protrusion 328. In an embodiment, the protrusion 328 can include a resilient material, such as an elastomeric member. The resilient properties of the protrusion 328 allow the protrusion to deform in proportion to the applied force and then return to its original shape when the force is removed. For example, the protrusion 328 can include rubber or silicone.

[0065] Similar to the protrusion 328, the pressure plate 332 can be a protrusion-like structure having a volume that can be oriented between the protrusion 328 and the logic board 334. The logic board 334 can be oriented in the cavity of the controller and include a processor for generating electrical signals and performing calibration on the controller. The pressure plate 332 can include a more rigid structure (e.g., a carbon composite material) while having conductive properties. When force is transmitted to the pressure plate 332 through the protrusion 328, the pressure plate 332 can act as a switch because the pressure plate 332 engages the logic board 334 at electrical contacts located on the logic board 334. The engagement between the pressure plate and the logic board generates an electrical signal that indicates that the force response has transitioned from a first stage (constant force) to a second stage (linearly increasing force) (e.g., Figure 7 During the first phase, the protrusion 328 will deform to the material's elastic limit; thereafter, force can be applied more directly to the stiffer pressure plate 332, thereby engaging the pressure plate with the logic board 334. The engagement of the pressure plate on the logic board can be represented by an inflection point 702, which transitions the force-distance interaction to the second phase, as shown in FIG. Figure 7 Depicted. In an embodiment, the pressure plate 332 may comprise a conductive carbon impregnated rubber pressure plate. Two sets of electrically isolated exposed contacts may be oriented on the bottom of the carbon pressure plate. When a minimum actuation force is applied to the transmission assembly 326, the carbon pressure plate will short-circuit these contacts, thereby providing a signal to the logic board 334 to indicate a transition to the second phase - the force sensing phase. In the second phase, the variable force presented by the protrusion 328 comprising an elastic material (e.g., a silicone stop) allows the measured HES value (after some calibration) to be representative of the force applied by the user.

[0066] like Figure 5 and Figure 6 As shown, the height (Hp) dimension decreases due to the deflection of the axial force applied by the plunger 324 to the switch assembly 326. The distance between the magnet and the magnetic sensor on the circuit board 334 can be correlated with the measurement results at the switch assembly 326. In the second stage (e.g., after the first inflection point 702), the HES value can be used to calibrate the linear increase in force with respect to the distance to define the slope in the second stage. Figure 7 As depicted, during the exemplary first stage of deflection, the force applied by the user transitions the trigger from zero deflection to a deflection of approximately 6 mm. Figure 7As represented by the x-axis on the graph, plunger 324 transmits force to protrusion 328, causing the protrusion to deform, thereby reducing its height (Hp) dimension. Furthermore, a deflection of approximately 6 mm can be derived from the angle (θ) associated with the rotation of trigger 316 in response to the applied force. For example, during the first stage, before reaching the elastic limit of protrusion 328, this angle measures 16 degrees. When the deflection exceeds 6 mm, the system may enter the second stage, represented by a first inflection point 702 in force transmission / deflection. Because pressure plate 332 comprises more material that increases in stiffness under compression, it will not deflect at the same rate as elastomeric protrusion 328. The force transmitted to pressure plate 332 will provide a different electrical indicator. For example, in a simulated environment, pulling trigger 316 in the first stage may represent an instance of grasping an egg in one's hand with minimal force. As force deflection enters the second stage at first inflection point 702, the linear increase in force adjusts the tactile response perceived by the user. In the augmented reality (AR) / VR space, adjustments to the haptic response in trigger 316 may represent a linearly increasing force required to break an egg.In both the first and second phases, calibration values ​​may be used to map the force range of the controller.

[0067] In an embodiment, the controller 300 based on the processor can implement dynamic calibration to adjust the first inflection point 702 (first threshold) to the second stage. Dynamic recalibration is intended to establish a minimum HES value at the first inflection point, which transitions the first stage to the second stage. Determining the minimum HES value is necessary because the HES value may drift over time due to wear and tear that changes the relationship between various components in the subsystem. To start calibration, a factory-calibrated version of this HES value can be stored as a baseline. During dynamic calibration, the HES reading can be timestamped. In addition, the switch general purpose input / output (GPIO) signal generated on the logic board 334 can be associated with an interrupt request (IRQ) to temporarily interrupt processor operation. The timestamp of the HES reading and the GPIO / IRQ event can be used to calculate an estimate of the HES value during the IRQ event. The HES reading can be correlated with the force reading determined from the switch component 326. Based on this correlation, a minimum HES value can be established that correlates to when the pressure plate 332 engages the logic board 334 to indicate when the force-distance relationship enters the second stage 702 and the tactile feedback changes from a constant force-distance relationship to an approximately linear force-distance relationship (e.g., as shown in FIG. Figure 73. As depicted, the slope is approximately 4 N-mm. In embodiments, dynamic calibration can be used to determine a force value associated with a second inflection point threshold 704 at which the second phase ends. The second phase ends at a hard stop, where the trigger becomes physically restrained by the engagement of the trigger plunger 324 with the switch assembly 326, such that the trigger cannot continue to move into the cavity 330.

[0068] Figure 8 Shown is a system 800 configured to sense input to a controller according to one or more embodiments, the controller being configured to interact with an artificial reality environment. In some embodiments, the system 800 may include one or more computing platforms 802. The one or more computing platforms 802 may be configured to communicate with one or more remote platforms 804 according to a client / server architecture, a peer-to-peer architecture, and / or other architectures. The one or more remote platforms 804 may be configured to communicate with other remote platforms via the one or more computing platforms 802 and / or according to a client / server architecture, a peer-to-peer architecture, and / or other architectures. A user may access the system 800 via the one or more computing platforms 802 and / or the one or more remote platforms 804.

[0069] One or more computing platforms 802 may be configured with machine-readable instructions 806. The machine-readable instructions 806 may include one or more instruction modules. The one or more instruction modules may include computer program modules. The one or more instruction modules may include one or more of the following: a sensor input receiving module 808; an actuator input receiving module 810; a joystick input receiving module 812; a trigger input receiving module 814; a movement determination module 816; an interaction generation module 818; a display causing module 820; and / or other instruction modules.

[0070] The sensor input receiving module 808 can be configured to receive sensory input from sensors (e.g., one or more sensors 304) on the controller housing 302, which are used for self-tracking movement of the controller. The sensor input receiving module 808 can be configured to receive touchpad input from a touchpad (e.g., touchpad 308) on a thumbpad (e.g., thumbpad 306) of the controller.

[0071] The actuator input receiving module 810 may be configured to receive actuator input from an actuator (eg, one or more actuators 310 ) on a thumb paddle coupled to the base of the controller.

[0072] The joystick input receiving module 812 may be configured to receive joystick input from a joystick on a thumbpad of the controller (eg, joystick 312 ).

[0073] The trigger input receiving module 814 can be configured to receive a trigger input from a trigger (e.g., trigger 316a and / or trigger 316b) on a handle (e.g., handle 314) that is coupled to the base of the controller. The trigger input can be a force measurement result determined based on the switch assembly 326 and the logic board 334. The trigger input can also include a measurement result from a magnetic sensor. The trigger input can be used to determine the transition between the first stage of constant force and the second stage of linear increase in force with respect to distance. In an embodiment, the trigger input receiving module can be configured to implement dynamic calibration to adjust the tactile response experienced by the user. During dynamic calibration, the timestamp measurement result from the Hall effect sensor can be used to determine a calibration adjustment value. This adjustment value can help the controller maintain accurate tactile response during long-term use of the controller.

[0074] The movement determination module 816 may be configured to determine movement of the controller by sensing input.

[0075] The interaction generation module 818 can be configured to generate virtual interactions based on one or more of the following: movement; actuator input; touchpad input; joystick input; and / or trigger input. The virtual interaction can simulate pointing (e.g., using an index finger) and / or pinching (e.g., using an index finger and thumb). The virtual interaction can provide the ability to discern the force applied. As non-limiting examples, the virtual interaction can include one or more of the following: picking up a virtual object; pressing a virtual button; and / or other fine motor activities.

[0076] The display causing module 820 may be configured to cause a display of a virtual interaction. The display may be caused by a head mounted display (e.g., HMD 200 and / or HMD 252) for an artificial reality environment. Displaying the virtual interaction may include presenting a virtual hand that performs part or all of the virtual interaction.

[0077] In some embodiments, one or more computing platforms 802, one or more remote platforms 804, and / or external resources 822 can be operably linked via one or more electronic communication links. For example, such electronic communication links can be established at least in part via a network (e.g., the Internet and / or other networks). It will be appreciated that this is not intended to be limiting, and the scope of the present disclosure includes embodiments in which one or more computing platforms 802, one or more remote platforms 804, and / or external resources 822 can be operably linked via some other communication medium.

[0078] A given remote platform 804 may include one or more processors configured to execute computer program modules. These computer program modules may be configured to enable an expert or user associated with a given remote platform 804 to interact with the system 800 and / or external resources 822, and / or to provide other functionality attributed herein to one or more remote platforms 804. As non-limiting examples, a given remote platform 804 and / or a given computing platform 802 may include one or more of the following: a server; a desktop computer; a laptop computer; a handheld computer; a tablet computing platform; a netbook; a smartphone; a gaming console; an augmented reality system (e.g., a mixed reality HMD system 250); a head-mounted display (e.g., HMD 200 and / or HMD 252); a handheld controller (e.g., controller 300); and / or other computing platforms.

[0079] External resources 822 may include information sources external to system 800, external entities participating in system 800, and / or other resources. In some implementations, some or all of the functionality attributed herein to external resources 822 may be provided by resources included in system 800.

[0080] The one or more computing platforms 802 may include electronic storage 824, one or more processors 826, and / or other components. The one or more computing platforms 802 may include communication links or ports to enable information exchange with a network and / or other computing platforms. Figure 8 The illustration of one or more computing platforms 802 in FIG. 8 is not intended to be limiting. The one or more computing platforms 802 may include multiple hardware components, software components, and / or firmware components operating together to provide the functionality attributed herein to the one or more computing platforms 802. For example, the one or more computing platforms 802 may be implemented as a cloud of computing platforms that operate together with the one or more computing platforms 802.

[0081] Electronic storage 824 may include non-transitory storage media that electronically stores information. The electronic storage media of electronic storage 824 may include one or both of system storage devices, which may be integrally provided with one or more computing platforms 802 (i.e., substantially non-removable), and / or removable storage devices, which may be removably connected to one or more computing platforms 802 via, for example, a port (e.g., a USB port, a FireWire port, etc.) or a drive (e.g., a disk drive, etc.). Electronic storage 824 may include one or more of the following: optically readable storage media (e.g., optical disks, etc.); magnetically readable storage media (e.g., magnetic tape, a magnetic hard drive, a floppy disk drive, etc.); charge-based storage media (e.g., electronically erasable read-only memory (EEPROM), random access memory (RAM), etc.); solid-state storage media (e.g., a flash drive, etc.); and / or other electronically readable storage media. Electronic storage 824 may include one or more virtual storage resources (e.g., cloud storage, a virtual private network, and / or other virtual storage resources). Electronic storage 824 may store software algorithms, information determined by processor(s) 826, information received from computing platform(s) 802, information received from remote platform(s) 804, and / or other information that enables computing platform(s) 802 to function as described herein.

[0082] The one or more processors 826 may be configured to provide information processing functionality within the one or more computing platforms 802. In this regard, the one or more processors 826 may include one or more of the following: a digital processor; an analog processor; a digital circuit designed to process information; an analog circuit designed to process information; a state machine; and / or other mechanisms for electronically processing information. Figure 8808, 810, 812, 814, 816, 818, and / or 820, and / or other modules. The one or more processors 826 may be configured to execute modules 808, 810, 812, 814, 816, 818, and / or 820, and / or other modules through the following: software; hardware; firmware; some combination of software, hardware, and / or firmware; and / or other mechanisms for configuring processing capabilities on the one or more processors 826. As used herein, the term "module" may refer to any component or group of components that performs the functions attributed to the module. This may include one or more physical processors, processor-readable instructions, circuitry, hardware, storage media, or any other component during the execution of processor-readable instructions.

[0083] It should be appreciated that although modules 808, 810, 812, 814, 816, 818, and / or 820 are Figure 8 808, 810, 812, 814, 816, 818, and / or 820 may be implemented remotely from other modules. The description of the functionality provided by the different modules 808, 810, 812, 814, 816, 818, and / or 820 described below is for illustrative purposes and is not intended to be limiting, as any of the modules 808, 810, 812, 814, 816, 818, and / or 820 may provide more or less functionality than described. For example, one or more of the modules 808, 810, 812, 814, 816, 818, and / or 820 may be eliminated, and some or all of their functionality may be provided by other modules in the modules 808, 810, 812, 814, 816, 818, and / or 820. As another example, the one or more processors 826 may be configured to execute one or more additional modules that may perform some or all of the functionality attributed below to one of the modules 808, 810, 812, 814, 816, 818, and / or 820.

[0084] In certain embodiments, one or more objects (e.g., content or other types of objects) of a computing system may be associated with one or more privacy settings. The one or more objects may be stored on or associated with any suitable computing system or application, such as a social networking system, a client system, a third-party system, a social networking application, a messaging application, a photo sharing application, or any other suitable computing system or application. Although the examples discussed herein are in the context of an online social network, these privacy settings may be applied to any other suitable computing system. The privacy settings (or "access settings") of an object may be stored in any suitable manner (e.g., associated with the object, as an index on an authorization server, in another suitable manner, or in any suitable combination of these manners). The privacy settings of an object may specify how the object (or specific information associated with the object) may be accessed, stored, or otherwise used (e.g., viewed, shared, modified, copied, executed, presented, or identified) within an online social network. When the privacy settings of an object allow a particular user or other entity to access the object, the object may be described as being "visible" to that user or other entity. By way of example and not limitation, users of an online social network may specify privacy settings for user profile pages that identify a group of users who may access work experience information on the user profile pages, thereby denying other users access to that information.

[0085] In certain embodiments, the privacy settings for an object may specify a "blocked list" of users or other entities that should not be allowed to access certain information associated with the object. In certain embodiments, the blocked list may include third-party entities. The blocked list may specify one or more users or entities to whom the object is invisible. By way of example, and not limitation, a user may specify a group of users that cannot access a photo album associated with the user, thereby blocking these users from accessing the album (while also potentially allowing certain users outside the specified group to access the album). In certain embodiments, privacy settings may be associated with specific social graph elements. The privacy settings for a social graph element (e.g., a node or edge) may specify how the social graph element, information associated with the social graph element, or objects associated with the social graph element may be accessed using an online social network. By way of example, and not limitation, a specific concept node corresponding to a specific photo may have a privacy setting that specifies that only the user tagged in the photo and the user's friends can access the photo. In certain embodiments, privacy settings may allow users to choose whether or not to have their content, information, or actions stored / recorded by the social networking system or shared with other systems (e.g., third-party systems). Although this disclosure describes using particular privacy settings in particular ways, this disclosure contemplates using any suitable privacy settings in any suitable way.

[0086] In certain embodiments, privacy settings may be based on one or more nodes or edges of a social graph. Privacy settings may be specified for one or more edges or edge types of a social graph, or for one or more nodes or node types of a social graph. A privacy setting applied to a specific edge connecting two nodes may control whether the relationship between the two entities corresponding to those nodes is visible to other users of the online social network. Similarly, a privacy setting applied to a specific node may control whether the user or concept corresponding to that node is visible to other users of the online social network. By way of example, and not limitation, a first user may share an object with a social networking system. The object may be associated with a concept node connected to the first user's user node via an edge. The first user may specify privacy settings that apply to a specific edge connected to the concept node of the object, or may specify privacy settings that apply to all edges connected to the concept node. By way of another example, and not limitation, the first user may share a group of objects of a specific object type (e.g., a group of images). The first user may specify privacy settings for all of the first user's objects associated with that specific object type to have a specific privacy setting (e.g., specifying that all images posted by the first user are visible only to the first user's friends and / or users tagged in the images).

[0087] In a specific example, the social networking system may present a "privacy wizard" to the first user (e.g., within a webpage, module, one or more dialog boxes, or any other suitable interface) to assist the first user in specifying one or more privacy settings. The privacy wizard may display instructions, appropriate privacy-related information, current privacy settings, one or more input fields for receiving one or more inputs from the first user to change or confirm the specified privacy settings, or any suitable combination thereof. In a specific embodiment, the social networking system may provide the first user with a "control panel" function that may display the first user's current privacy settings to the first user. The control panel function may be displayed to the first user at any suitable time (e.g., after input from the first user invoking the control panel function, after a specific event or triggering action occurs). The control panel function may allow the first user to modify one or more of the first user's current privacy settings at any time and in any suitable manner (e.g., redirecting the first user to the privacy wizard).

[0088] The privacy settings associated with an object can specify any suitable granularity at which access is allowed or denied. By way of example and not limitation, access or denial of access can be specified for: specific users (e.g., only me, my roommate, my boss), users within a specific degree of separation (e.g., friends, friends of friends), user groups (e.g., a gaming club, my family), user networks (e.g., employees of a specific employer, students or alumni of a specific university), all users ("public"), no users ("private"), users of third-party systems, specific applications (e.g., third-party applications, external websites), other suitable entities, or any suitable combination of the above. Although this disclosure describes specific granularity at which access is allowed or denied, this disclosure contemplates any suitable granularity at which access is allowed or denied.

[0089] In certain embodiments, one or more servers may be authorization servers / privacy servers for enforcing privacy settings. In response to a request from a user (or other entity) for a particular object stored in a data repository, the social networking system may send a request for the object to the data repository. The request may identify the user associated with the request, and the request may only be sent to the user (or the user's client system) if the authorization server determines that the user is authorized to access the object based on the privacy settings associated with the object. If the requesting user is not authorized to access the object, the authorization server may prevent the requested object from being retrieved from the data repository or may prevent the requested object from being sent to the user. In the context of a search query, an object may only be provided as a search result if the querying user is authorized to access the object (e.g., if the privacy settings for the object allow the object to be revealed to the querying user, allowed to be discovered by the querying user, or allowed to be otherwise visible to the querying user). In certain embodiments, the object may represent content visible to the user through the user's news feed. By way of example and not limitation, one or more objects may be visible to the user's "Trending" page. In certain embodiments, the object may correspond to a specific user. The object may be content associated with the particular user, or may be the particular user's account or information stored on a social networking system or other computing system. By way of example and not limitation, a first user may view one or more second users of an online social network through the "People You May Know" feature of the online social network or by viewing the first user's friend list. By way of example and not limitation, a first user may specify that they do not want to see objects associated with a particular second user in their news feed or friend list. If the object's privacy settings do not allow it to be presented to the user, discovered by the user, or visible to the user, the object may be excluded from the search results. Although this disclosure describes implementing privacy settings in a particular manner, this disclosure contemplates implementing privacy settings in any suitable manner.

[0090] In certain embodiments, different objects of the same type associated with a user may have different privacy settings. Different types of objects associated with a user may have different types of privacy settings. By way of example and not limitation, a first user may specify that the first user's status updates are public, but any images shared by the first user are visible only to the first user's friends on an online social network. By way of another example and not limitation, a user may specify different privacy settings for different types of entities (e.g., individual users, friends of friends, followers, user groups, or business entities). By way of another example and not limitation, a first user may specify a group of users that may view videos posted by the first user while preventing these videos from being visible to the first user's employer. In certain embodiments, different privacy settings may be provided for different user groups or user guests. By way of example and not limitation, a first user may specify that other users at the same university as the first user may view the first user's photos, but other users who are family members of the first user may not view these same photos.

[0091] In certain embodiments, the social networking system may provide one or more default privacy settings for each object of a particular object type. The default privacy setting for an object can be changed by the user associated with the object. By way of example and not limitation, all images posted by a first user may have a default privacy setting that is visible only to the first user's friends, and for a particular image, the first user may change the privacy setting of the image to be visible only to friends and friends of friends.

[0092] In certain embodiments, privacy settings may allow a first user to specify (e.g., by opting out or not opting in) whether the social networking system may receive, collect, record, or store specific objects or information associated with the user for any purpose. In certain embodiments, privacy settings may allow a first user to specify whether specific applications or processes may access, store, or use specific objects or information associated with the user. Privacy settings may allow a first user to opt in or opt out of having objects or information accessed, stored, or used by specific applications or processes. The social networking system may access such information to provide specific functionality or services to the first user, but the social networking system may not access the information for any other purpose. Before accessing, storing, or using such objects or information, the social networking system may prompt the user to provide a privacy setting that specifies which applications or processes, if any, may access, store, or use the objects or information before allowing any such action. By way of example, and not limitation, a first user may send a message to a second user via an application associated with an online social network (e.g., a messaging application) and may specify a privacy setting that the social networking system should not store such information.

[0093] In certain embodiments, a user may specify whether certain types of objects or information associated with a first user may be accessed, stored, or used by the social networking system. By way of example, and not limitation, the first user may specify that images sent by the first user via the social networking system may not be stored by the social networking system. By way of another example, and not limitation, the first user may specify that messages sent from the first user to a particular second user may not be stored by the social networking system. By way of yet another example, and not limitation, the first user may specify that all objects sent via a particular application may be saved by the social networking system.

[0094] In certain embodiments, privacy settings may allow a first user to specify whether specific objects or information associated with the first user can be accessed from specific client systems or third-party systems. Privacy settings may allow the first user to opt in or opt out of having objects or information accessed from specific devices (e.g., the phone book on the user's smartphone), from specific applications (e.g., messaging applications), or from specific systems (e.g., email servers). The social networking system may provide default privacy settings for each device, system, or application, and / or may prompt the first user to specify specific privacy settings for each context. By way of example and not limitation, the first user may utilize a location services feature of the social networking system to provide recommendations for restaurants or other places near the user. The first user's default privacy settings may specify that the social networking system may use location information provided from the first user's client system to provide location-based services, but the social networking system may not store the first user's location information or may not provide the first user's location information to any third-party systems. The first user may then update the privacy settings to allow third-party image sharing applications to use location information to geotag photos.

[0095] In certain embodiments, privacy settings may allow a user to specify one or more geographic locations where an object can be accessed. Access to or denial of access to an object may depend on the geographic location of the user attempting to access the object. By way of example, and not limitation, a user may share an object and specify that only users in the same city may access or view the object. By way of another example, and not limitation, a first user may share an object and specify that the object is visible to a second user only when the first user is in a particular location. If the first user leaves the particular location, the object may no longer be visible to the second user. By way of another example, and not limitation, the first user may specify that an object is only visible to second users within a threshold distance of the first user. If the first user subsequently changes location, the original second users who had access to the object may lose access, while a new set of second users may gain access when they come within the threshold distance of the first user.

[0096] In certain embodiments, changes to privacy settings may take effect retroactively, affecting the visibility of objects and content shared before the change. By way of example and not limitation, a first user may share a first image and specify that the first image is public to all other users. Later, the first user may specify that any images shared by the first user should be visible only to a first group of users. The social networking system may determine that this privacy setting also applies to the first image and make the first image visible only to the first group of users. In certain examples, changes to privacy settings may only take effect going forward. Continuing with the above example, if the first user changes the privacy setting and then shares a second image, the second image may be visible only to the first group of users, while the first image may remain visible to all users. In certain embodiments, the social networking system may also prompt the user to indicate whether they want the change to the privacy setting to apply retroactively in response to the user's action to change the privacy setting. In certain embodiments, a user's change to the privacy setting may be a one-time change specific to a single object. In certain embodiments, a user's change to the privacy setting may be a global change for all objects associated with the user.

[0097] In certain embodiments, a social networking system may determine that a first user may want to change one or more privacy settings in response to a triggering action associated with a first user. A triggering action may be any suitable action on an online social network. By way of example and not limitation, a triggering action may be a change in the relationship between a first user and a second user of an online social network (e.g., "un-friending" a user, changing the relationship status between users). In certain embodiments, upon determining that a triggering action has occurred, the social networking system may prompt the first user to change privacy settings regarding the visibility of objects associated with the first user. The prompt may redirect the first user to a workflow process for editing privacy settings regarding one or more entities associated with the triggering action. Privacy settings associated with the first user may only be changed in response to explicit input from the first user and may not be changed without the first user's approval. By way of example and not limitation, the workflow process may include providing a first user with current privacy settings regarding a second user or a group of users (e.g., untagging the first user or the second user from a particular object, changing the visibility of a particular object relative to the second user or a group of users), and receiving an indication from the first user to change the privacy settings or to maintain the existing privacy settings based on any of the methods described herein.

[0098] In certain embodiments, a user may be required to provide verification of their privacy settings before being allowed to perform certain actions on an online social network, or may be required to provide verification before changing certain privacy settings. Upon performing a certain action or changing a certain privacy setting, a prompt may be presented to the user, reminding the user of their current privacy settings and requesting verification of the privacy settings for the specific action. Furthermore, before performing a certain action, the user may be required to provide confirmation, double-check, authentication, or other suitable types of verification, and the action may not be completed until such verification is provided. By way of example, and not limitation, a user's default privacy settings may indicate that a person's relationship status is visible to all users (i.e., "public"). However, if the user changes their relationship status, the social networking system may determine that such an action may be sensitive and may prompt the user to confirm that their relationship status should remain public before proceeding. By way of another example, and not limitation, a user's privacy settings may specify that the user's posts are visible only to the user's friends. However, if the user changes the privacy setting of their posts to public, the social networking system may prompt the user with a reminder that the user's posts are currently visible only to friends, and a warning that this change will make all of the user's past posts visible to the public. The user may then be required to provide a second verification, enter authentication credentials, or provide other types of verification before changes to the privacy settings are made. In certain embodiments, the user may be required to provide verification of the privacy settings on a periodic basis. Prompts or reminders may be sent to the user periodically based on elapsed time or the number of user actions. By way of example and not limitation, the social networking system may send a reminder to the user every six months or after every ten photo posts to confirm his or her privacy settings. In certain embodiments, privacy settings may also allow the user to control access to objects or information on a per-request basis. By way of example and not limitation, the social networking system may notify the user each time a third-party system attempts to access information associated with the user and require the user to provide verification that access should be allowed before proceeding.

[0099] The techniques described herein may be implemented as one or more methods performed by one or more physical computing devices; may be implemented as one or more non-transitory computer-readable storage media storing instructions that, when executed by one or more computing devices, cause the one or more methods to be performed; or may be implemented as one or more physical computing devices that are specifically configured with a combination of hardware and software that causes the one or more methods to be performed.

[0100] Figure 9 An example flow chart (e.g., process 900) is shown for sensing input to a controller configured to interact with an artificial reality environment in accordance with certain embodiments of the present disclosure. Figures 1 to 8 To describe the example process 900. Further for the purpose of explanation, the steps of the example process 900 are described herein as being performed serially or linearly. However, multiple instances of the example process 900 can be performed in parallel. For the purpose of explaining the subject technology, reference will be made to Figures 1 to 8 Let's discuss process 900.

[0101] At step 902, process 900 may include determining switch assembly activation from a switch assembly oriented in a controller. At step 904, process 900 may include receiving a trigger input from a trigger on the controller, wherein the trigger includes a magnet and a magnetic sensor. At step 906, process 900 may include determining a magnetic field measurement from the magnetic sensor. At step 908, process 900 may include determining a force value based on the magnetic field measurement, wherein the force value exceeds a first inflection point threshold. At step 910, process 900 may include generating tactile feedback for a user in response to the first inflection point threshold being exceeded. At step 912, process 900 may include generating a virtual interaction based on the trigger input. At step 914, process 900 may include generating a virtual interaction based on movement, actuator input, touchpad input, joystick input, and / or trigger input. At step 916, process 900 may include causing display of the virtual interaction.

[0102] Figure 10 1 is a block diagram illustrating an exemplary computer system 1000, which can be used to implement various embodiments of the subject technology. In an embodiment, the computer system 1000 can be implemented using a combination of hardware or software and hardware, and the hardware or software and hardware combination is in a dedicated server, integrated into another entity, or distributed across multiple entities. The computer system 1000 (e.g., a server and / or client) includes a bus 1008 or other communication mechanism for transmitting information, and a processor 1002 coupled to the bus 1008 for processing information. As an example, the computer system 1000 can be implemented using one or more processors 1002. The processor 1002 can be a general-purpose microprocessor, a microcontroller, a digital signal processor (DSP), an application-specific integrated circuit (ASIC), a field programmable gate array (FPGA), a programmable logic device (PLD), a controller, a state machine, gate logic, a discrete hardware component, or any other suitable entity that can perform calculations or other information operations.

[0103] In addition to the hardware, the computer system 1000 may also include code that creates an execution environment for the computer program in question, such as code constituting processor firmware, a protocol stack, a database management system, an operating system, or a combination of one or more thereof, which is stored in the included memory 1004, such as random access memory (RAM), flash memory, read-only memory (ROM), programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), registers, hard disk, removable disk, CD-ROM, DVD, or any other suitable storage device, coupled to the bus 1008 for storing information and instructions to be executed by the processor 1002. The processor 1002 and the memory 1004 may be supplemented by, or incorporated in, special purpose logic circuitry.

[0104] Instructions may be stored in memory 1004 and may be implemented in one or more computer program products (i.e., one or more modules of computer program instructions) encoded on a computer-readable medium for execution by computer system 1000 or for controlling the operation of the computer system, and according to any method known to those skilled in the art, including but not limited to computer languages ​​such as data-oriented languages ​​(e.g., SQL, dBase), system languages ​​(e.g., C, Objective-C, C++, Assembly), structured languages ​​(e.g., Java, .NET), and application languages ​​(e.g., PHP, Ruby, Perl, Python). The instructions may also be implemented in computer languages ​​such as array languages, aspect-oriented languages, assembly languages, authoring languages, command line interface languages, compiled languages, concurrent languages, curly-bracket languages, data flow languages, data structured languages, declarative languages, esoteric languages, extension languages, fourth generation languages, functional languages, interactive mode languages, interpreted languages, iterative languages, list-based languages, little languages, logic-based languages, machine languages, macro languages, metaprogramming languages, multiparadigm languages, numerical analysis, non-English-based languages, class-based object-oriented languages, prototype-based object-oriented languages, off-side rule languages, procedural languages, reflective languages, rule-based languages, scripting languages, stack-based languages, synchronous languages, syntax handling languages, visual languages, wirth languages, and XML-based languages. Memory 1004 may also be used for storing temporary variables or other intermediate information during execution of instructions to be executed by processor 1002 .

[0105] As discussed herein, computer programs do not necessarily correspond to files in a file system. A program may be stored in a portion of a file (e.g., one or more scripts stored in a markup language document) that holds other programs or data, in a single file dedicated to the program in question, or in multiple collaborative files (e.g., files storing one or more modules, subroutines, or partial codes). A computer program may be deployed to execute on one or more computers that are located at a site or distributed across multiple sites and interconnected through a communication network. The processes and logic flows described in this specification may be performed by one or more programmable processors that execute one or more computer programs to perform a function by operating on input data and generating output.

[0106] Computer system 1000 also includes a data storage device 1006, such as a magnetic disk or optical disk, coupled to bus 1008 for storing information and instructions. Computer system 1000 can be coupled to various devices via input / output module 1010. Input / output module 1010 can be any input / output module. Exemplary input / output module 1010 includes a data port, such as a USB port. Input / output module 1010 is configured to connect to communication module 1012. Exemplary communication module 1012 includes a network interface card, such as an Ethernet card and a modem. In an embodiment, input / output module 1010 is configured to connect to multiple devices, such as input devices 1014 and / or output devices 1016. Exemplary input devices 1014 include a keyboard and a pointing device (e.g., a mouse or trackball), through which a user can provide input to computer system 1000. Other types of input devices 1014 (e.g., tactile input devices, visual input devices, audio input devices, or brain-computer interface devices) can also be used to provide interaction with the user. For example, the feedback provided to the user can be any form of sensory feedback, such as visual feedback, auditory feedback, or tactile feedback, and any form of input from the user can be received, including sound input, voice input, tactile input, or brainwave input. Exemplary output device 1016 includes a display device for displaying information to the user, such as a liquid crystal display (LCD) monitor.

[0107] According to one or more embodiments of the present disclosure, the gaming system described above can be implemented using computer system 1000 in response to processor 1002 executing one or more sequences of one or more instructions contained in memory 1004. Such instructions can be read into memory 1004 from another machine-readable medium (such as, data storage device 1006). The execution of the sequence of instructions contained in main memory 1004 causes processor 1002 to perform the process steps described herein. One or more processors in a multi-processing arrangement can also be used to execute the sequence of instructions contained in memory 1004. In alternative embodiments, hard-wired circuitry can be used to replace software instructions, or hard-wired circuitry can be used in combination with software instructions to implement various embodiments of the present disclosure. Therefore, the various embodiments of the present disclosure are not limited to any specific combination of hardware circuitry and software.

[0108] Various embodiments of the subject matter described in this specification can be implemented in a computing system that includes a back-end component (e.g., a data server), or includes a middleware component (e.g., an application server), or includes a front-end component (e.g., a client computer with a graphical user interface or a web browser through which a user can interact with an implementation of the subject matter described in this specification), or various embodiments of the subject matter described in this specification can be implemented in any combination of one or more of such back-end components, middleware components, or front-end components. The components of the system can be interconnected by digital data communication (e.g., a communication network) in any form or medium. The communication network can include, for example, any one or more of the following: a local area network (LAN); a wide area network (WAN), and the Internet. In addition, the communication network can include, but is not limited to, any one or more of the following network topologies: these network topologies include a bus network, a star network, a ring network, a mesh network, a star bus network, or a tree or hierarchical network. The communication module can be, for example, a modem or an Ethernet card.

[0109] Computer system 1000 includes a client and a server. Client and server are usually remote from each other and usually interact through a communication network. The relationship between client and server is produced by means of a computer program that runs on respective computers and has a client-server relationship between each other. Computer system 1000 can be, for example, but not limited to, a desktop computer, a laptop computer or a tablet computer. Computer system 1000 can also be embedded in another device, such as, but not limited to, a mobile phone, a personal digital assistant (PDA), a mobile audio player, a global positioning system (GPS) receiver, a video game console and / or a TV set-top box.

[0110] As used herein, the term "machine-readable storage medium" or "computer-readable medium" refers to any medium or media that participates in providing instructions to processor 1002 for execution. Such media can take many forms, including, but not limited to, non-volatile media, volatile media, and transmission media. Non-volatile media include, for example, optical or magnetic disks, such as data storage device 1006. Volatile media include dynamic memory, such as memory 1004. Transmission media include coaxial cables, copper wire, and optical fiber, including the wires that make up bus 1008. Common forms of machine-readable media include, for example, floppy disks, flexible disks, hard disks, magnetic tape, any other magnetic medium, CD-ROMs, DVDs, any other optical medium, punch cards, paper tape, any other physical medium with a pattern of holes, RAM, PROMs, EPROMs, FLASH EPROMs, any other memory chip or cartridge, or any other medium from which a computer can read. The machine-readable storage medium can be a machine-readable storage device, a machine-readable storage substrate, a memory device, a composition of matter effecting a machine-readable propagated signal, or a combination of one or more of them.

[0111] When the computer system 1000 reads game data and provides a game, information may be read from the game data and stored in a memory device (e.g., memory 1004). Additionally, data from a memory 1004 server accessed via a network, bus 1008, or data storage device 1006 may be read and loaded into memory 1004. Although data is described as being found in memory 1004, it will be understood that the data need not be stored in memory 1004 and may be stored in other memory (e.g., data storage device 1006) accessible to the processor 1002 or distributed across several media.

[0112] As used herein, the phrase "at least one of" following a list of items, together with the terms "and" or "or" used to separate any of those items, modifies the list as a whole, rather than modifying each member of the list (i.e., each item). The phrase "at least one of" does not require selection of at least one item; rather, the phrase is meant to include at least one of any of the items, and / or at least one of any combination of the items, and / or at least one of each of the items. As an example, the phrase "at least one of A, B, and C" or "at least one of A, B, or C" each refers to: only A, only B, or only C; any combination of A, B, and C; and / or at least one of each of A, B, and C.

[0113] To the extent the terms "including," "having," and the like are used in this specification or the claims, such terms are intended to be open ended in a manner similar to how the term "comprising" is interpreted as "including" when used as a transitional word in the claims. The word "exemplary" is used herein to mean "serving as an example, instance, or illustration." Any embodiment described herein as "exemplary" is not necessarily to be construed as preferred or advantageous over other embodiments.

[0114] Unless otherwise specified, reference to an element in the singular is not intended to mean "one and only one," but rather "one or more." All structural and functional equivalents to the elements of the various configurations described throughout this disclosure that are known or later come to be known to those of ordinary skill in the art are expressly incorporated herein by reference and are intended to be encompassed by the subject technology. In addition, nothing disclosed herein is intended to be dedicated to the public, regardless of whether such disclosure is explicitly stated in the above description.

[0115] Although this specification contains many details, these details should not be interpreted as limitations on the scope of what may be claimed, but rather as descriptions of specific implementations of the subject matter. Certain features described in the context of different embodiments of the present invention may also be implemented in combination in a single embodiment. Conversely, various features described in the context of a single embodiment may also be implemented individually or in any suitable sub-combination in multiple embodiments. Furthermore, although features may be described above as working in certain combinations, and even initially claimed as such, in some cases, one or more features from a claimed combination may be removed from the combination, and a claimed combination may be directed to a sub-combination or a variation of a sub-combination.

[0116] The subject matter of this specification has been described in terms of specific aspects and embodiments, but other aspects and / or embodiments may be implemented and are within the scope of the appended claims. For example, although the operations are depicted in a particular order in the drawings, this should not be interpreted as requiring that the operations be performed in the particular order shown or in a continuous order, or that all of the illustrated operations be performed to achieve the desired result. The actions recited in the claims can be performed in a different order and still achieve the desired result. As an example, the processes depicted in the drawings do not necessarily require the particular order shown or the continuous order to achieve the desired result. In some cases, multitasking and parallel processing may be advantageous. In addition, the separation of the various system components in the above-mentioned aspects and embodiments should not be understood as requiring such separation in all aspects and embodiments, but it should be understood that the described program components and systems can generally be integrated together in a software product or packaged in multiple software products. Other variations are within the scope of the claims.

Claims

1. A controller for interacting with an artificial reality environment, comprising: a housing including a handle, wherein the housing defines an interior cavity; a thumbpad coupled to the housing, the thumbpad comprising a touchpad, one or more actuators, and / or a joystick, wherein the one or more actuators comprise a button; a logic board including a processor oriented within the internal cavity; and a switch assembly oriented within the interior cavity and configured to engage the logic board, Wherein, the handle includes at least one trigger oriented for movement into the interior cavity, the trigger including a magnet and a magnetic sensor.

2. The controller according to claim 1, comprising: a protrusion structure comprising an elastic material; as well as a platen structure comprising a rigid conductive material, Wherein, the pressure plate structure is oriented to engage with the logic board.

3. The controller according to claim 1 or 2, wherein: The controller is configured to generate tactile feedback to the user based on a force applied by the user to the trigger; and preferably, wherein the controller is configured to generate tactile feedback based on engagement between the switch assembly and the logic board, wherein the force applied by the user exceeds a first inflection point threshold.

4. The controller according to claim 3, wherein: The tactile feedback includes an approximately linear relationship between applied force and distance; and / or wherein trigger movement is configured to cease based on the user-applied force exceeding a second inflection point threshold.

5. A controller according to any one of the preceding claims, wherein: The magnetic sensor is capable of receiving and generating electrical signals based on the Hall effect.

6. A controller according to any one of the preceding claims, further configured to implement dynamic calibration, wherein: A plurality of magnetic sensor measurements are correlated with a plurality of user-applied measurements from the switch assembly to determine a minimum magnetic sensor value at which a first inflection threshold is exceeded.

7. A controller according to any one of the preceding claims, wherein: The controller is configured to communicatively pair with a head mounted display for an artificial reality environment; And / or, wherein the controller comprises: at least one camera; and / or one or more tactile actuators.

8. A controller according to any one of the preceding claims, wherein: The controller configured to activate a precision pinch includes receiving simultaneous input from the touchpad and at least one trigger.

9. A computer-implemented method for sensing input to a controller configured to interact with an artificial reality environment, the computer-implemented method comprising: determining switch assembly activation from a switch assembly, the switch assembly being oriented in the controller; receiving a trigger input from a trigger on the controller, wherein the trigger comprises a magnet and a magnetic sensor; determining a magnetic field measurement from the magnetic sensor; determining a force value based on the magnetic field measurement result, wherein the force value exceeds a first inflection point threshold; generating tactile feedback to a user in response to the first inflection point threshold being exceeded; generating a virtual interaction based on the trigger input; and Causing display of the virtual interaction.

10. The computer-implemented method of claim 9, wherein: The virtual interaction includes one or more of: picking up a virtual object; pressing a virtual button; and / or other fine motor activities; And / or, wherein the display is caused by a head mounted display for an artificial reality environment.

11. The computer-implemented method of claim 9 or 10, further comprising: receiving an actuator input from an actuator on a thumb paddle coupled to the controller; receiving touchpad input from a touchpad on the thumbpad of the controller; as well as A joystick input is received from a joystick on the thumb pad of the controller.

12. The computer-implemented method of any one of claims 9 to 11, wherein: Determining the force value based on the magnetic field measurement result includes: determining a first noise value associated with the magnetic sensor and a second noise value associated with analog-to-digital conversion; and A gain value is determined based on the first noise value and the second noise value.

13. The computer-implemented method of any one of claims 9 to 12, further comprising: Implementing dynamic calibration of the controller, implementing dynamic calibration of the controller includes: determining a minimum magnetic sensor measurement result at which the first inflection point threshold is exceeded; and An adjustment to a haptic feedback response is provided to the user based on the minimum magnetic sensor measurement.

14. A system configured to sense input to a controller configured to interact with an artificial reality environment, the system comprising: One or more hardware processors configured by machine-readable instructions to: determining switch assembly activation from a switch assembly, the switch assembly being oriented in the controller; receiving a trigger input from at least one trigger on a handle coupled to the controller; determining a magnetic field measurement from a magnetic sensor; determining a force value based on the magnetic field measurement result, wherein the force value exceeds a first inflection point threshold; generating tactile feedback to a user in response to the first inflection point threshold being exceeded; generating a virtual interaction based on the trigger input, wherein the virtual interaction includes fine motor activity; and Display of the virtual interaction is caused, wherein the display is caused by a head-mounted display for an artificial reality environment, and wherein displaying the virtual interaction includes presenting a virtual hand performing part or all of the virtual interaction.

15. The system according to claim 14, wherein: The machine-readable instructions are further configured to: Implementing dynamic calibration of the controller, implementing dynamic calibration of the controller includes: determining a minimum magnetic sensor measurement result at which the first inflection point threshold is exceeded, and Adjustments to a haptic feedback response are provided based on the minimum magnetic sensor measurement.