Performance adjustment of AR-based personal mobility systems
By integrating AR wearable devices with the PM system, physical obstacle detection and real-time adjustment of PM system performance are achieved, solving the problems of lack of performance feedback and safety risks in the PM system and improving user experience and safety.
Patent Information
- Application Number
- CN202280066072.9
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2021-09-30
- Filing Date
- 2022-09-28
- Publication Date
- 2025-09-19
- Estimated Expiration
- 2042-09-28
AI Technical Summary
Existing personal mobility systems (PM systems) lack performance feedback indicators and obstacle detection systems during operation, resulting in increased operational challenges and safety risks for users, especially when used in urban environments, leading to frequent accidents.
By integrating AR wearable devices with PM systems, the sensors of AR wearable devices are used to detect physical obstacles and provide performance adjustment instructions. Combined with the sensor data of the PM system, real-time performance adjustment and safety warnings can be achieved.
It reduces the user's cognitive burden, improves the operational safety and efficiency of the PM system, and reduces the accident rate.
Smart Images

Figure CN118020052B_ABST
Abstract
Description
[0001] Priority claim
[0002] This application claims the benefit of priority to U.S. patent application serial number 17 / 490,915, filed on September 30, 2021, which is incorporated herein by reference in its entirety. Technical Field
[0003] The present disclosure generally relates to personal mobility systems ("PM systems") and wearable devices with augmented or virtual reality displays ("AR wearable devices"). More specifically, the present disclosure relates to interaction between personal mobile devices and head-mounted augmented reality devices. Background Art
[0004] In addition to ride-sharing platforms, the growing interest in the development of alternative modes of transportation has led to a surge in the diversity and availability of personal mobility systems. PM systems include all powered personal transportation modes that can transport users (and sometimes passengers) from one place to another. Powered personal transportation vehicles include, but are not limited to, powered scooters, bicycles, skateboards, unicycles, kayaks, paddleboards, and surfboards. Electric-powered bicycles and scooters are sometimes referred to as e-bikes and e-scooters, respectively. Powered personal transportation vehicles can also include cars, trucks, motorcycles, and boats. In addition to the physical flexibility and agility required to operate them, electric scooters, electric scooters, and self-balancing electric scooters (e.g., Ninebot also presents operational challenges and safety risks, requiring a higher level of user focus and ability to operate safely. The dramatic increase in PM system density in urban environments, coupled with a general lack of user training and a highly chaotic and dynamic operating environment, has led to a sharp increase in accidents and hospitalizations.
[0005] Traditionally, PM systems have been designed with few controls, few or very limited performance feedback indicators (e.g., LED or LCD battery or speed indicators), and no obstacle detection or avoidance systems. Due to the basic nature of PM systems, incorporating additional controls or performance indicators may not be feasible or safe.
[0006] On the other hand, AR wearable devices can be implemented with transparent or semi-transparent displays through which the user can view the surrounding environment. Such devices enable the user to look through the transparent or semi-transparent display to view the surrounding physical environment, and also enable the user to see objects (e.g., virtual objects such as 3D renderings, images, videos, text, etc.) generated for the display to appear as part of the physical environment and / or overlaid on the physical environment. This is generally referred to as "augmented reality."
[0007] AR wearables can completely obscure the user's field of view and display a virtual environment through which the user can move or be moved. This is often referred to as "virtual reality." As used herein, the term "augmented reality" or "AR" refers to both augmented reality and virtual reality as they are traditionally understood, unless the context indicates otherwise. BRIEF DESCRIPTION OF THE DRAWINGS
[0008] In the accompanying drawings, which are not necessarily drawn to scale, similar reference numerals may describe similar components in different views. To easily identify the discussion of any particular element or action, the most significant digit or digits in a reference numeral refer to the figure in which the element is first introduced. Some non-limiting examples are shown in the figures of the accompanying drawings, in which:
[0009] Figure 1 are perspective diagrams of wearable devices according to some examples.
[0010] Figure 2 Shows a user's perspective according to some examples Figure 1 Another view of the augmented reality wearable device.
[0011] Figure 3 is a side view of a personal mobility system according to some examples.
[0012] Figure 4 A suitable network environment for operating an AR wearable device and a personal mobile system according to some examples is shown.
[0013] Figure 5 is based on an example by showing in Figure 1 The AR elements on the glasses' display enhance the view of the outdoor environment.
[0014] Figure 6 is a view of the handlebars of a scooter in an outdoor environment according to one example, where the scooter is augmented with AR elements.
[0015] Figure 7 is based on an example by showing in Figure 1 The AR elements on the glasses' display enhance the view of the outdoor environment.
[0016] Figure 8 According to another example, Figure 1 The AR elements on the glasses' display enhance the view of the outdoor environment.
[0017] Figure 9 is a flow chart 900 illustrating the operation of the network environment 400 according to one example.
[0018] Figure 10is a block diagram illustrating a networked device 1002 including details of the glasses 100 and the scooter 300 , according to some examples.
[0019] Figure 11 is a block diagram illustrating a software architecture in which the present disclosure may be implemented, according to some examples.
[0020] Figure 12 is a diagrammatic representation of a machine in the form of a computer system according to some examples within which a set of instructions may be executed, for causing the machine to perform any one or more of the methodologies discussed. DETAILED DESCRIPTION
[0021] The following description describes the system, method, technology, instruction sequence and computing machine program product of the example illustrating this theme. In the following description, for the purpose of explanation, many specific details are set forth, so that the understanding of the various examples of this theme is provided. However, it will be apparent to those skilled in the art that the example of this theme can be put into practice without some or other details in these specific details. Example only represents possible variation. Unless otherwise clearly stated, structure (e.g., structural component, such as module) is optional and can be combined or broken down, and operation (e.g., in process, algorithm or other functions) can change in order or be combined or broken down.
[0022] The integration of AR wearables with PM systems can improve the user experience and reduce safety risks by reducing the cognitive burden on users. AR wearables can not only aggregate and display telemetry data and navigation information into the user's field of view, but can also detect physical obstacles or interact with virtual objects to adjust the performance of the PM system. AR wearables can detect and highlight obstacles, traffic control devices, and hazards to alert the user of their presence. AR wearables can also use sensors included in the PM system to further inform or modify the information being perceived by the user and the performance characteristics of the PM system.
[0023] PM systems, such as powered scooters and electric vehicles, typically include a power source (e.g., battery), a propulsion source (e.g., motor or engine), user controls, an independent braking system, and a management system. Some PM systems may also include a radio communication system (e.g., cellular, and The PM systems described herein may also include sensing technologies such as cameras, sonar sensors, radar sensors, laser sensors, lidar sensors, heart rate sensors, and inertial measurement units ("IMUs," such as accelerometers, gyroscopes, and magnetometers).
[0024] Some PM systems include a braking system that may be connected to the management system and is intended to bring the PM system to a safe stop during an emergency, in addition to braking during normal operation. The braking system may also be part of a regenerative braking system that includes a propulsion source, a management system, and a power supply.
[0025] Typical operation of a PM system involves sending inputs made by a user on user controls to a management system, which then controls the transfer of power from the power source to the propulsion source to achieve the desired action made by the user.
[0026] On the other hand, AR wearable devices, such as AR goggles or AR glasses, include a transparent or translucent display that enables a user to look through the transparent or translucent display to view the surrounding environment. Additional information or objects (e.g., virtual objects such as 3D renderings, images, videos, text, etc.) are displayed on the display and appear as part of the surrounding environment and / or overlaid on the surrounding environment to provide the user with an augmented reality experience. The display may, for example, include a waveguide that receives a light beam from a projector, but any suitable display for presenting augmented or virtual content to the wearer may be used. As with PM systems, AR wearable devices may also include a radio communication system (e.g., cellular, and transponders) and positioning systems (such as GPS), cameras and IMU sensors.
[0027] As referred to herein, the phrase "augmented reality experience" includes or refers to various image processing operations corresponding to image modification, filtering, media overlays, transformations, and the like, as further described herein. In some examples, these image processing operations provide an interactive experience of a real-world environment in which objects, surfaces, backgrounds, lighting, and the like in the real world are augmented by computer-generated perceptual information. In this context, an "augmented reality effect" includes the collection of data, parameters, and other assets required to apply a selected augmented reality experience to an image or video feed. In some examples, augmented reality effects are provided by Snap Inc. under the registered trademark LENSES.
[0028] The rendering of virtual objects by the AR wearable head-mounted device system can be based on the position of the AR wearable device relative to the physical object or relative to a fixed reference frame (external to the AR wearable device) so that the virtual object appears correctly in the display. As an example, the AR wearable device can render a virtual object associated with a physical object so that the virtual object can be perceived by the user as appearing to be aligned with the physical object. In another example, graphics (e.g., graphical elements containing information, instructions, and guidance) appear to be attached to or overlaid on the physical object of interest. To do this, the AR wearable device detects the physical object and tracks the posture of the AR wearable device relative to the position of the physical object. The posture identifies the position and orientation of the AR wearable device relative to the reference frame or relative to another object.
[0029] In some cases, user interaction with the AR wearable device can be provided through voice commands, input to an associated device such as a smartphone, gestures detected by the AR wearable device's camera, or a touchpad provided on the AR wearable device, which can be used to provide xy touch and tap input to the AR wearable device.
[0030] In the integration of a PM system and an AR wearable device, the PM system and the AR wearable device communicate with each other. The PM system and the AR wearable device can also communicate with each other, individually or through each other, with other devices (such as mobile phones) or a network containing other devices (such as servers). The PM system can provide telemetry information such as speed, acceleration, control position, user position and posture, and battery level to the AR wearable device. The PM system can also provide information from cameras and other sensors. The AR wearable device can then provide performance-related commands (for example, limiting or adjusting the maximum speed, acceleration, braking force) or non-performance-related commands (for example, turning lights on and off or honking the horn). The AR wearable device can also provide telemetry data collected only by the AR wearable device to the PM system (for example, speed calculated by GPS, user position and posture). Similarly, the AR wearable device can receive telemetry data and sensor data from the PM system.
[0031] In some examples, an augmented reality effect includes augmented reality content that is configured to modify or transform image data presented in some manner within a graphical user interface (“GUI”) of an AR wearable device. For example, AR effect data can be used to make complex additions or transformations to the appearance of the environment in the field of view of the AR wearable device: highlighting, animating, or transforming traffic control signals, roads, buildings, and vehicles; adding enhancements to landmarks in a scene being viewed on the AR wearable device; or many other such transformations. This includes both real-time modifications that modify an image as it is captured using a camera associated with the AR wearable device or some other device in communication with the AR wearable device (e.g., a PM system), and modifications to stored content (e.g., a video clip in a gallery that can be modified using an AR effect), which is then displayed by the AR wearable device with the AR effect modification. Similarly, real-time video capture can be used with AR effects to show a user of the AR wearable device how the video image currently being captured by the device's sensors will modify the captured data. Such data may be simply displayed on the screen without being stored in memory, content captured by the device sensors may be recorded and stored in memory with or without AR effect modification (or both), or content captured by the device sensors may be sent over a network to a server or another device with AR effect modification.
[0032] Thus, AR effects and associated systems and modules for modifying content using AR effects can involve: detection of objects (e.g., faces, hands, bodies, cats, dogs, surfaces, objects, etc.), tracking of such objects as they leave, enter, and move around the field of view in a video frame, and modification or transformation of such objects as they are tracked. In various examples, different methods for implementing such transformations can be used. Some examples can involve generating a 3D mesh model of one or more objects and implementing the transformation using transformations and animated textures of the models within a video. In other examples, tracking of points on an object can be used to place an image or texture (which can be two-dimensional or three-dimensional) at the tracked location. In another example, neural network analysis of a video frame can be used to place an image, model, or texture in content (e.g., an image or video frame). Thus, AR effect data can include both the images, models, and textures used to create the transformation in the content, as well as the additional modeling and analysis information required to implement such transformations using object detection, tracking, and placement.
[0033] Virtual objects displayed to a user of an AR wearable device may affect performance characteristics of a PM system. In one example, a method of controlling a personal mobility system is provided, including: displaying a virtual object on an augmented reality wearable device, the virtual object being located in a position corresponding to a position in the real world in a field of view of the augmented reality device; detecting proximity of the personal mobility system or a user of the personal mobility system to the position in the real world; and modifying a performance characteristic of the personal mobility system in response to detecting the proximity.
[0034] Modifications to the performance characteristics may include changes to the maximum speed or maximum power of the personal mobility system. Modifications to the performance characteristics may occur within a predetermined time based on parameters of the virtual object.
[0035] The real-world position may be a location in a reference frame fixed to at least a portion of the personal mobility system, or a location in a reference frame of an environment in which the personal mobility system is located.
[0036] In one example, the method may also include, in response to detecting proximity of the personal mobility system or a user of the personal mobility system to a location in the real world, removing a virtual object from a display of the augmented reality wearable device from a position of the virtual object in the field of view of the augmented reality device that corresponds to the location in the real world.
[0037] The method may also include, in response to detection of proximity, transferring the virtual object from a position in a reference frame in the environment to a position in a reference frame fixed to at least a portion of the personal mobility system, and delaying modifying the performance characteristics of the personal mobility system until an intersection of the user of the personal mobility system and the position in the reference frame fixed to at least a portion of the personal mobility system is detected.
[0038] In another example, a non-transitory computer-readable storage medium is provided, the computer-readable storage medium including instructions that, when executed by a computer, cause the computer to perform operations for controlling a personal mobility system, including but not limited to the above-described method. In another example, a computing system is provided, the computing system including a processor and a memory storing instructions that, when executed by the processor, configure the computing system to perform operations for controlling a personal mobility system, including but not limited to the above-described method.
[0039] For example, operations may include: displaying a virtual object on an augmented reality wearable device, the virtual object being located in a location in the field of view of the augmented reality device that corresponds to a location in the real world; detecting proximity of the personal mobility system or a user of the personal mobility system to the location in the real world; and modifying performance characteristics of the personal mobility system in response to detection of the proximity.
[0040] Other technical features may be apparent to those skilled in the art from the drawings, description and claims.
[0041] Figure 1 1 is a perspective view of an AR wearable device (e.g., glasses 100) according to some examples. The glasses 100 may include a frame 102 made of any suitable material, such as plastic or metal (including any suitable shape memory alloy). In one or more examples, the frame 102 includes a front piece 104, which includes a first or left optical element holder 114 (e.g., a display or lens holder) and a second or right optical element holder 120 connected by a bridge 110. The front piece 104 also includes a left end 112 and a right end 118. A first or left optical element 116 and a second or right optical element 122 can be disposed within the respective left optical element holder 114 and right optical element holder 120. Each of the left optical element 116 and the right optical element 122 can be a lens, a display, a display assembly, or a combination of the foregoing. Any of the display assemblies disclosed herein can be disposed in the glasses 100.
[0042] The frame 102 also includes a left temple piece 106 (i.e., a left arm) and a right temple piece 108 (i.e., a right arm), the left temple piece 106 and the right temple piece 108 being coupled to the respective left end 112 and right end 118 of the front piece 104 by any suitable means, such as hinges (not shown), so as to be coupled to the front piece 104, or being rigidly or securely fixed to the front piece 104 so as to be integral with the front piece 104. In one or more implementations, each of the left temple piece 106 and the right temple piece 108 includes a first arm 124 and any suitable second arm 126, the first arm 124 being coupled to the respective left end 112 and right end 118 of the front piece 104, and the second arm 126 being for coupling to the ear of the user. In one example, the front piece 104 can be formed from a single piece of material so as to have a unitary or one-piece construction. In one example, as Figure 1 As shown in , the entire frame 102 can be formed from a single piece of material so as to have a unitary or one-piece construction.
[0043] The eyeglasses 100 can include a computing device, such as a computer 128, which can be of any suitable type to be carried by the frame 102 and, in one or more examples, can be of a suitable size and shape to be at least partially disposed in one of the left temple piece 106 and the right temple piece 108. In one or more examples, as Figure 1, the computer 128 is sized and shaped to be similar in size and shape to the right temple piece 108 (or left temple piece 106), and is therefore almost completely (if not completely) disposed within the structure and scope of such right temple piece 108. In one or more examples, the computer 128 is disposed in both the right temple piece 108 and the left temple piece 106. The computer 128 may include one or more processors and memories, wireless communication circuitry, sensors and associated circuitry, and a power supply. As discussed below, the computer 128 includes low-power circuitry, high-speed circuitry, and a display processor. Various other examples may include these elements in different configurations or integrated together in different ways. As shown by the glasses 100 discussed below, details of other aspects of the computer 128 may be implemented.
[0044] The computer 128 also includes a battery 130 or other suitable portable power supply. In one example, the battery 130 is disposed in one of the left temple piece 106 and the right temple piece 108, or multiple batteries 130 are located in each temple piece. Figure 1 In the glasses 100 shown in FIG, a battery 130 is shown disposed in the left temple piece 106 and electrically coupled to the computer 128 via electrical conductors disposed within the front piece 104. The glasses 100 may include a connector or port (not shown) accessible from the exterior of the frame 102 for charging the battery 130. The glasses 100 may also include a wireless receiver, transmitter, or transceiver (not shown), or a combination of these devices, inertial measurement sensors, and other sensors disposed within the front piece 104, the left temple piece 106, and the right temple piece 108.
[0045] In one or more implementations, the glasses 100 include one or more cameras 132. Although two cameras are depicted, other examples contemplate the use of a single or additional (i.e., more than two) cameras 132. In one or more examples, the glasses 100 include any number of sensors or peripherals in addition to the cameras 132. For example, the glasses 100 can include a sonar sensor, a radar sensor, a laser sensor, a lidar sensor, and an inertial measurement unit (e.g., an accelerometer, a gyroscope, and a magnetometer).
[0046] The front piece 104 is provided with an outwardly, forwardly facing front or outer surface 134, and an opposite, inwardly, rearwardly facing rear or inner surface 136, with the front or outer surface 134 facing forward or away from the user when the eyeglasses 100 are placed on the user's face, and the rear or inner surface 136 facing the user's face when the eyeglasses 100 are placed on the user's face. Such sensors may include an inwardly facing video sensor or digital imaging module, for example, which may be mounted on or disposed within the inner surface 136 of the front piece 104 or mounted or disposed elsewhere on the frame 102 so as to face the user, and an outwardly facing video sensor or digital imaging module (e.g., camera 132), which may be mounted on or disposed within the outer surface 134 of the front piece 104 or mounted or disposed elsewhere on the frame 102 so as to face away from the user. Such sensors, peripherals, or peripheral devices may also include biometric sensors, location sensors (e.g., GPS), or any other such sensors.
[0047] In one or more implementations, the glasses 100 include input sensors, such as touchpads or buttons (not shown). The touchpad can be mounted to or integrated with one or both of the left temple piece 106 and the right temple piece 108. In one example, the touchpad is typically arranged vertically, approximately parallel to the user's temple. As used herein, typically vertically aligned means that the touchpad is at least more vertical than horizontal, but preferably more vertical than horizontal. Additional user input can be provided by one or more buttons. One or more touchpads and buttons provide a means by which the glasses 100 can receive input from the user of the glasses 100. The glasses 100 can include a microphone to receive verbal commands from the user and monitor other sounds. Similarly, the glasses 100 can include speakers to provide auditory feedback to the user or allow the user to play music.
[0048] Figure 2 The glasses 100 are shown from the wearer's perspective. Figure 1 Many of the components shown in Figure 1 As stated in Figure 2 The eyeglasses 100 shown in FIG. 1 include a left optical element 116 and a right optical element 122 secured within a left optical element holder 114 and a right optical element holder 120, respectively.
[0049] The glasses 100 include a right front optical assembly 202 including a right projector 204 and a right near-eye display 206 , and a left front optical assembly 208 including a left projector 210 and a left near-eye display 212 .
[0050] In one example, the near-eye display is a waveguide. The waveguide includes a reflective or diffractive structure (e.g., a grating and / or an optical element, such as a mirror, lens, or prism). Right projected light 214 emitted by right projector 204 encounters the diffractive structure of the waveguide of right near-eye display 206, which directs the light toward the user's right eye to provide an image on or in right optical element 122, which overlays the view of the real world seen by the user. Similarly, left projected light 216 emitted by left projector 210 encounters the diffractive structure of the waveguide of left near-eye display 212, which directs the light toward the user's left eye to provide an image on or in left optical element 116, which overlays the view of the real world seen by the user.
[0051] However, it should be understood that other display technologies or configurations can be provided that can display images to the user in the forward field of view. For example, instead of the right projector 204 or the left projector 210 and the waveguide, an LCD, LED or other display panel or surface can be provided instead.
[0052] In use, information, content, AR effects, virtual objects, and various user interfaces are presented to the wearer of the glasses 100 on the near-eye display. As described in more detail below, the user can then use a touchpad and / or buttons (not shown), gestures within the camera's field of view, and through associated devices (e.g., Figure 10 The glasses 100 may be interacted with by providing voice input or touch input on a client device 404 shown in FIG.
[0053] Figure 3 is a side view of a personal mobility system according to some examples. Figure 3 In the examples, scooter 300 is used as an example personal mobility system. It should be understood that other personal mobility systems can be used in the examples described herein. Scooter 300 includes a body 302, wherein at least two wheels (i.e., a front wheel 306 and a rear wheel 308) are mounted to the body 302. The body 302 provides a platform for at least a single user to stand (or sit using a seat fixed to the body 302). The scooter 300 also includes a steering column 304 coupled to at least one of the wheels (e.g., the front wheel 306). In some examples, each of the front wheel 306 and the rear wheel 308 includes a hub, spokes, a rim, and a tire. The steering column 304 is rotatably coupled to the body 302 to allow steering of the front wheel 306.
[0054] The steering column 304 also includes a handlebar 310 extending from the steering column 304 in a substantially vertical orientation, wherein the handlebar 310 is positioned at a height that facilitates steering the scooter 300 while riding. The handlebar 310 may include a left grip 312 and a right grip 314. The left grip 312 includes an acceleration control 316 and a brake control 318 that are operably connected to a brake of at least one of the front wheel 306 and the rear wheel 308. As will be discussed in further detail below, each of the acceleration control 316 and the brake control 318 is operably connected to a management system 324.
[0055] Scooter 300 also includes a power source 320 , a propulsion source 322 , a management system 324 , and a forward-looking sensor 326 .
[0056] The power source 320 and the propulsion source 322 are each independently operably connected to a management system 324. The acceleration control 316 and the brake control 318 are also each independently operably connected to the management system 324, although in some cases the brake control 318 may only be physically coupled to the manual braking system. In operation, a user provides input to the management system 324 via the acceleration control 316 and the brake control 318 to start, maintain, change, and stop the movement of the scooter 300. In addition, regenerative braking can be provided via the acceleration control 316. As will be discussed further below, the user can also provide input via at least one of the glasses 100 and the client device 404. The management system 324 directs energy from the power source 320 to the propulsion source 322.
[0057] The propulsion source 322 also includes a motor, a power linkage to a management system 324, and a mechanical linkage to at least one of the front wheel 306 and the rear wheel 308, so that the propulsion source 322 can drive at least one of the wheels. For clarity, the motor can drive the wheel directly or indirectly via a chain / sprocket / drive shaft / transmission / or other indirect drive means. In some implementations, the brakes and propulsion source can be disposed within the hub of at least one of the front wheel 306 and the rear wheel 308. Figure 3 In the implementation shown in , propulsion source 322 is located in front wheels 306. The brakes may include front and rear drum or disc brakes operably connected to brake controls 318. Other types of brakes may also be used, such as cantilever brakes and V-brakes.
[0058] The power source 320 can be disposed within the body 302 and can be charged by a management system 324, which in turn receives power from an external power source via a connector 328. In some implementations, the power sources 320 are removable to allow a user to swap power sources 320 and charge each power source 320 away from the scooter 300.
[0059] Additionally, the management system 324 is operationally connected to a forward-looking sensor 326 and a visual feedback element 332. The forward-looking sensor 326 is housed within the sensor housing 330 and mounted to the steering column 304, providing an unobstructed view of the direction of travel of the scooter 300. The forward-looking sensor 326 may include sensing technologies such as cameras, sonar sensors, radar sensors, laser sensors, and lidar sensors; as well as safety features such as lights or horns. The visual feedback element 332 faces the user and provides information to the user (e.g., power status, speed, location, and other data received from the management system 324). The visual feedback element 332 may also include a communication module (e.g., a Bluetooth transducer, an antenna) operably connected to the management system 324. Additional components of the scooter 300 will be discussed in further detail below with respect to the networked device 1002. In some implementations, the components of the management system 324 are integrated into the networked device 1002.
[0060] Figure 4 1 is a network diagram illustrating a network environment 400 suitable for operating an AR wearable device (e.g., glasses 100) and a personal mobility system (e.g., scooter 300), according to some examples. The network environment 400 includes glasses 100, scooter 300, client devices 404, and server 410, which are communicatively coupled to each other directly or via a network 408. Glasses 100, scooter 300, client devices 404, and server 410 can each be implemented in whole or in part in a computer system, as described below with respect to FIG. Figure 12 The server 410 may be part of a network-based system. For example, the network-based system may be or include a cloud-based server system that provides additional information, such as geolocation information or virtual content (e.g., a three-dimensional model of a virtual object), to the glasses 100, the scooter 300, and the client device 404.
[0061] The client device 404 can be a smartphone, tablet, phablet, laptop, access point, or any other such device capable of connecting to the glasses 100 and scooter 300 using both low-power wireless connections and high-speed wireless connections. The client device 404 is connected to a server 410 and a network 408. The network 408 can include any combination of wired and wireless connections. The server 410 can be one or more computing devices that are part of a service or network computing system. The client device 404 and any elements of the server 410 and network 408 can use Figure 11 and Figure 12 The details of the software architecture 1102 or machine 1200 described in are implemented.
[0062] User 402 operates glasses 100 and scooter 300. User 402 can be a human user (e.g., a human), a machine user (e.g., a computer configured by a software program to interact with glasses 100 and scooter 300), or any suitable combination thereof (e.g., a person assisted by a machine or a machine supervised by a person). User 402 is not part of network environment 400, but is associated with glasses 100, scooter 300, and client device 404.
[0063] although Figure 4 The AR wearable device in FIG4 is shown as glasses 100, but the AR wearable device can be a computing device with a display, such as a smartphone, tablet, or other wearable computing device. The computing device can be handheld or removably mounted to the head of the user 402. In one example, the display is a screen that displays content captured by the camera of the computing device. In another example, the display of the device can be transparent, such as one or both of the left optical element 116 and the right optical element 122 of the glasses 100.
[0064] The user 402 interacts with an application running on the glasses 100 or the client device 404, or a combination thereof. The application may include an AR application configured to provide the user 402 with an experience associated with a physical object 406 (e.g., a two-dimensional physical object (e.g., a picture), a three-dimensional physical object (e.g., a statue, a car, a person), a specific location (e.g., a landmark), or any reference (e.g., a perceived furniture or corner of a wall)) in a real-world physical environment 412.
[0065] In addition to presenting information provided by the scooter 300, the AR application can also provide the user 402 with experiences associated with the operation of the scooter 300. For example, the user 402 can point to the camera 132 of the glasses 100, which captures an image or video feed of a physical object 406 (e.g., a stop sign, a traffic light, a pothole). The content of the image or video feed is tracked and recognized in the glasses 100 using the local context recognition dataset module of the AR application of the glasses 100. The local context recognition dataset module may include a library of virtual objects or machine learning models associated with real-world physical objects or references. The AR application then generates additional information related to the image or video feed (e.g., a three-dimensional model, visual effects, an overlay of text or symbolic information) and presents the additional information in the display of the glasses 100 in response to recognizing features in the image or video feed. If the content of the video feed or image is not recognized locally at the glasses 100, the glasses 100 can download additional information (e.g., a three-dimensional model or a machine learning model) from a database of the server 410 via the network 408, or can provide the image or video feed to an associated device (e.g., the client device 404 or the server system 1008) for processing.
[0066] In one example, server 410 can be configured to detect and identify physical object 406 based on sensor data (e.g., image and depth data, positioning) from glasses 100 or scooter 300, and determine a position or pose of at least one of glasses 100, scooter 300, and physical object 406 based on the sensor data. Server 410 can also retrieve or generate virtual object 414 based on the pose and position of glasses 100, scooter 300, physical object 406, and, in some implementations, client device 404. Server 410 or client device 404 transmits virtual object 414 to glasses 100, which can then display virtual object 414 to user 402 at an appropriate time. Alternatively, data comprising the virtual object can be stored in local memory on client device 404 or glasses 100. Object recognition, tracking, virtual object generation, and AR rendering can be performed on glasses 100, scooter 300, client device 404, server 410, or a combination thereof.
[0067] Figure 4 Any of the machines, databases, or devices shown in the may be implemented in a general-purpose computer that is modified (e.g., configured or programmed) by software to be a special-purpose computer to perform one or more of the functions described herein for that machine, database, or device. Figure 11 and Figure 12Computer systems capable of implementing any one or more of the methods described herein are discussed. As used herein, a "database" is a data storage resource and may store data structured as a text file, a table, a spreadsheet, a relational database (e.g., an object-relational database), a triple store, a hierarchical data store, or any suitable combination thereof. Additionally, Figure 4 Any two or more of the machines, databases, or devices shown in the may be combined into a single machine, and the functionality described herein for any single machine, database, or device may be subdivided among multiple machines, databases, or devices.
[0068] The network 408 can be any network that enables communication between or among machines (e.g., server 410), databases, and devices (e.g., glasses 100). Thus, the network 408 can be a wired network, a wireless network (e.g., a mobile or cellular network), or any suitable combination thereof. The network 408 can include one or more components that constitute a private network, a public network (e.g., the Internet), or any suitable combination thereof.
[0069] Figure 5 1 is a view of an outdoor environment 502 augmented with AR elements displayed on the display 1016 of glasses 100, according to one example. In this example, a user is riding a scooter 300 along a street or path 504 in the environment 502, which includes buildings 506, trees 508, people 510, and the like. The pose of the glasses 100 relative to the environment 502 has been determined and is continuously updated using known AR positioning and tracking techniques, including, for example, through vision processing techniques such as simultaneous localization and mapping (SLAM). By comparing the SLAM data with an existing point cloud model of the environment 502 stored on a server 410 or downloaded to the glasses 100, client device 404, or scooter 300, the pose of the glasses 100 can be refined, and the specific identity and characteristics of the environment can be further determined. Additionally, the location of the glasses 100, scooter 300, or client device 404 can be determined based on GPS coordinates or by these devices sharing positioning information with each other.
[0070] The pose of the glasses 100 allows virtual objects to be displayed to the user within the context of the environment. That is, virtual objects such as a power-up 512 (illustrated as a mushroom) and a power-down 514 (illustrated as a banana) can be displayed with the glasses 100 at a fixed position on the path 504. As the user turns their head or approaches one of the virtual objects, its apparent position on the path 504 is maintained, and the virtual objects scale appropriately as the user approaches or moves away from the virtual object. The positions of the virtual objects 414 can be predefined for specific locations (e.g., along popular routes) or can be intermittently positioned by the AR application. In one example, the positions and identities of the virtual objects 414 are defined in an environment map that is stored on the client device 404 or server 410 and accessed by the AR application based on the pose and position of the glasses 100. Similarly, data defining each virtual object 414 (including their appearance and performance change characteristics) is stored in a database hosted on the server 410 or locally on the client device 404.
[0071] Because the user's location in environment 502 is known (be it the location of scooter 300, glasses 100, or client device 404), and the locations of virtual objects 414 in environment 502 are known, the user can interact with virtual objects by riding over or through them as perceived by the user. The effect of such interactions will depend on the nature of the virtual objects. For example, when scooter 300 is detected passing through (the location of) power-up 512, the maximum power available for use of scooter 300 may be increased, or the maximum speed of the scooter may be increased, typically within a predetermined amount of time associated with the particular virtual object. Similarly, when scooter 300 is detected passing through power-down 514, the maximum power available for use of scooter 300 may be decreased, or the maximum speed of the scooter may be decreased, typically within a predetermined amount of time, or the scooter 300 may be stopped entirely, again within a predetermined amount of time associated with the particular virtual object.
[0072] Adjusting the characteristics of the scooter in response to the detection of the user at the location of the virtual object 414 is typically performed by sending corresponding instructions from the glasses 100 or client device 404 to the scooter 300, the corresponding instructions being triggered by the glasses 100 or client device detecting that the user's position (as represented by the position of the scooter 300, glasses 100, or client device 404) corresponds to the position of the virtual object. In this way, interaction with the virtual object can affect the behavior or characteristics of a real device such as the scooter 300. It will be understood, of course, that the scooter 300 itself does not actually ride the virtual object 414, but rather the glasses 100, client device 404, or scooter 300 detects the position of the scooter 300 at the perceived location of the virtual object 414.
[0073] In another example, with a virtual object (e.g., Figure 5 The interaction of powering up 512 shown in FIG. 5 may result in the acquisition of a virtual object 414 by the user for use at a later time, in which case the virtual object may be transferred to and positioned in the reference frame of the glasses 100 or scooter 300, as described below with reference to FIG. Figure 6 In such cases, as discussed above, further user interaction with the virtual object is required to trigger a change in the behavior or characteristics of the scooter 300. The user can thus acquire a power-up 512 or other virtual object and choose to use it at a time of their choosing.
[0074] Figure 6 is a view of the handlebars 310 of a scooter 300 in an outdoor environment 502 according to one example, wherein the scooter 300 has been augmented with AR elements. In this case, virtual objects, such as power-up 602, energy-saving mode 604, and sports mode 606, are displayed to the user 402 by the glasses 100 in the reference frame of the scooter 300. In this example, the virtual objects are shown floating directly above the handlebars 310 of the scooter 300. As the user 402 turns their head or moves closer to or further away from one of the virtual objects, their position on the handlebars 310 is maintained, and the virtual objects are scaled appropriately as the user moves closer to or further away from the virtual objects.
[0075] Figure 6 The virtual objects shown in may persist in the reference frame of scooter 300, e.g., virtual objects for energy saving mode 604 and sport mode 606 may represent features or adjustments to scooter operation that are always available during operation of scooter 300. In this way, the available control features of the scooter may be expanded beyond those available using physical controls on the scooter.
[0076] Figure 6 The virtual objects 414 shown in FIG may also appear and disappear during operation of the scooter, e.g., they may appear for use as they become available and then may disappear after use. In one instance, when the scooter is ridden over a vehicle such as Figure 5 When power up 512 is shown in FIG, power up 512 disappears from path 504 and is displayed as power up 602 in the reference frame of scooter 300, as shown in FIG. Figure 6 As discussed below, this may occur if, when scooter 300 arrives at a location in the real world corresponding to the location of power-up 512, the performance-modifying effect of power-up 512 does not occur immediately, but is delayed until such time as the user decides to activate it. Power-up 512 has effectively been acquired rather than activated by the passage of scooter 300.
[0077] To facilitate positioning Figure 6 The handlebars 310 are detected by the glasses 100 or the client device 404 within the field of view of the camera 132 of the glasses 100 using object detection techniques applied to the video feed from the camera 132. Using 3D reconstruction techniques, the relative position and orientation between the glasses 100 and the handlebars 310 can be determined by the glasses 100 or the client device 404, thereby allowing for correct placement of the virtual object over the handlebars 310 as the relative position between the handlebars 310 and the glasses 100 changes due to movement of the user or the handlebars.
[0078] In another example, the relative position and orientation of the scooter 300 and the glasses 100 can be determined by comparing their respective poses in a common local or global reference frame. In such a case, for the scooter 300, it would be necessary to provide data related to the angle of rotation of the handlebars in order to fix the virtual object to the handlebars 310 in the user's field of view. Alternatively, the virtual object can be fixed with reference to the body 302 or steering column 304 so as to float above the handlebars 310 or (other parts of the personal mobility system) in a fixed orientation regardless of the orientation of the handlebars 310.
[0079] exist Figure 6 In the example use shown in , gesture detection or other visual object intersection techniques are used to detect the intersection of a user's hand or finger with one of the virtual objects (power up 512, energy save mode 604, motion mode 606) in the video feed from one or both of the cameras 132. In response to such detection, instructions are provided by the glasses 100 or client device 404 to appropriately modify the behavior of the scooter 300 based on the particular virtual object with which the user has interacted.
[0080] Figure 7 1 is a view of an outdoor environment 702 augmented by AR elements displayed on the display 1016 of the glasses 100, according to one example. As previously described, the user is riding a scooter 300 through the outdoor environment 702. The pose of the glasses 100 relative to the environment 702 has been determined and is continuously updated using known AR positioning and tracking techniques, including, for example, through vision processing techniques such as simultaneous localization and mapping (SLAM). By comparing the SLAM data with an existing point cloud model of the environment 702 stored on the server 410 or downloaded to the glasses 100, the client device 404, or the scooter 300, the pose of the glasses 100 can be refined, and the specific identity and characteristics of the environment can be further determined. Additionally, the location of the glasses 100, the scooter 300, or the client device 404 can be determined based on GPS coordinates or by these devices sharing location information with each other.
[0081] In this example, environment 702 includes a pedestrian path 704, a bicycle path 706, a street 710, and traffic cones 712 positioned on bicycle path 706 to indicate hazards within bicycle path 706. In this example, the personal mobility system is not permitted to be used on pedestrian path 704, but only on bicycle path 706. To help the user navigate the environment, one or more virtual objects 414 are placed in the user's field of view, as displayed by glasses 100. In this example, a colored AR overlay 708 is positioned on bicycle path 706 to highlight the path the user is permitted to take, thereby promoting proper cycling etiquette. Alternatively, prohibited areas (e.g., pedestrian path 704) or more dangerous areas (e.g., streets with traffic 710) can be provided with an overlay instead of or in addition to AR overlay 708 on 706. Different colors or effects can be used to distinguish between proper paths or areas that can be traversed by scooter 300 and prohibited or dangerous areas.
[0082] As with the examples discussed above, interacting with the AR overlay 708 by the proximity of the scooter 300 to the location of the AR overlay 708 in the environment can affect the behavior and features of the scooter. In the case of the AR overlay 708, positioning the scooter on the bicycle path 706 (i.e., on the AR overlay 708 as perceived by the user) can enable operation at the full capabilities of the scooter 300, while driving off the bicycle path 706 (or off the AR overlay 708 as perceived by the user) may result in reduced functionality of the scooter 300. Additional effects can also be provided to prompt the user to use the correct path, such as by changing the color or other effects (e.g., flashing or pulsing) of the AR overlay 708 as displayed by the glasses 100 when the scooter leaves the bicycle path 706. Alternatively, if an overlay or other virtual object 414 is provided on the pedestrian path 704 or street 710, positioning the scooter 300 on the overlay or intersecting the scooter 300 with the virtual object may trigger a reduction in functionality of the scooter 300, which would not change when the scooter 300 is positioned on the bicycle path 706.
[0083] The AR application running on the glasses 100 or client device 404 may also scan the environment 702 for relevant physical objects or features using known object detection and recognition techniques. Figure 7 , a traffic cone 712 may be detected by the glasses 100 or client device 404 as an indicator of a possible hazard in the bicycle path 706. A virtual object 414 may then be displayed by the glasses 100 to highlight the traffic cone. For example, a pulsing or flashing high-contrast AR overlay may be placed on or around the traffic cone 712 in the scene as viewed by the user through the glasses 100.
[0084] Physical objects 406 , including crosswalks, signs, warning strips, etc., may be used in this manner to highlight any hazards, identify hazards, or provide other relevant information to a rider of a personal mobility system.
[0085] In addition to emphasizing physical objects, the behavior of the personal mobility system can be altered in response to proximity to danger. For example, when user 402 approaches danger, as before, the brakes can be applied or the maximum speed or power can be reduced.
[0086] Figure 8 1 is a view of an outdoor environment 802 enhanced with AR elements displayed on the display 1016 of the glasses 100 according to another example. As before, the user is riding the scooter 300 through the outdoor environment 802. Also as before, the environment 802 includes a walking path 704, a bicycle path 706, and a street 710. Figure 7 In the discussed environment 702, an AR overlay 708 may be provided to highlight the bicycle path 706, but for clarity, the Figure 8 This feature is omitted.
[0087] In this example, an AR application running on glasses 100 or client device 404 detects an otherwise unmarked hazard (pothole 804) in environment 702 using known object detection and recognition techniques. In one example, object detection and recognition is performed using context- or location-specific ML models of potential obstacles or objects loaded into the memory of client device 404 or glasses 100. This reduces the data processing burden because glasses 100 or client device 404 only needs to search for potential obstacles or warning signs that may exist in that context or at that location. For example, if user 402 is riding on a mountain bike trail, the context-specific ML model will not include road signs.
[0088] exist Figure 7 In the example of FIG, in response to detecting a pothole 804, a virtual traffic cone 806 is displayed by the glasses 100 at the perceived location of the pothole 804 in the field of view of the glasses 100. Various effects may be applied. For example, a pulsing or flashing high-contrast AR overlay may be placed on or around the virtual traffic cone 806 in the scene as viewed by the user through the glasses 100.
[0089] Any physical object 406 that can be used in this manner to highlight a hazard, identify a hazard, or provide other relevant information to a rider of the personal mobility system includes crosswalks, signs, potholes, sinkholes, trenches, ditches, etc. In addition to or in place of virtual traffic cones 806, other virtual signs (e.g., a sign with "Danger Ahead") can be placed above or in front of a physical hazard (e.g., a pothole 804 in the field of view of the glasses 100).
[0090] In addition to emphasizing physical objects, the behavior of the personal mobility system may be altered in response to proximity to the virtual traffic cone 806. For example, as before, the brakes may be applied or the maximum speed or power may be reduced.
[0091] Figure 9 is a flow chart 900 illustrating the operation of the network environment 400 according to one example. Figure 9 The operations shown in FIG900 will generally be performed on a combination of the client device 404 and the glasses 100, but these operations can be performed exclusively in the glasses 100 or in a combination of the glasses 100 and one or all of the client device 404, the scooter 300, and the server 410. Various implementations are of course possible. In one example, the operations are performed jointly between the glasses 100, which provides a video feed from at least one of its cameras 132 and position information from its IMU and GPS receiver to an AR application running on the client device 404 for processing. The AR application processes the video feed, performs any required 3D reconstruction and tracking, and generates an AR effect including a virtual object 414 and sends the AR effect to the glasses 100 for display to the user 402. For clarity, flowchart 900 is discussed herein with reference to such an example.
[0092] Before the start of flowchart 900, the positioning and tracking of glasses 100 has already begun and is ongoing. Therefore, the glasses 100 and the AR applications running on the client device 404 know the pose of the glasses and their position in the environment 502. In addition, if necessary, the positioning and pose of related devices (such as the scooter 300 or the client device 404) are determined and transmitted between the glasses 100, the scooter 300 and the client device 404 as needed.
[0093] In the case of a virtual object 414 whose existence and position are known, e.g. Figure 5 In the example, a map of the environment including the positioning of the virtual object 414 has been downloaded from the server 410 to the client device 404 or is available for downloading from the server 410 to the client device 404. In the case of detecting a hazard (including an identifier of the hazard), e.g. Figure 7 or Figure 8, the client device 404 has performed object detection and recognition techniques and continues to perform object detection and recognition techniques to identify and locate hazards within the field of view of the glasses 100. Once a hazard is identified, a corresponding virtual object 414 is placed at a corresponding location in the environment map or in the reference frame of the glasses 100.
[0094] The method begins at operation 902, which compares the positioning and field of view of the glasses 100 with the positioning of any nearby virtual objects 414. The purpose of this comparison is twofold. First, any visible virtual objects 414 are displayed in the display of the glasses 100, fixed to an appropriate reference frame (e.g., Figure 7 The global real-world reference frame shown in or Figure 6 ), and secondly, determining any intersection or proximity between the user and a virtual object 414 fixed in the real-world reference frame (e.g., powered off 514 or powered on 512). For the latter purpose, the positioning of any of the devices (glasses 100, scooter 300, or client device 404) can be used as a proxy for the user's positioning, as they will essentially be collocated with the user 402 for purposes of this method.
[0095] In block 904, any visible virtual objects 414 are rendered by the glasses 100 using conventional AR techniques. In some cases, nearby virtual objects in the line of sight of the glasses 100 may not be visible due to intervening virtual objects or physical objects as determined by a 3D model of the environment, such as based on an existing 3D point cloud model of the area or 3D reconstruction techniques performed by the glasses 100 or the client device 404 on a video feed from the camera 132. From block 904, the method returns to operation 902, and the loop continues repeatedly to ensure that any movement made by the user (as reflected by movement of one or more of the glasses 100, the scooter 300, and the client device 404) and the appearance of new or current virtual objects 414 in the field of view of the user 402 are correctly displayed to the user 402 by the glasses 100.
[0096] From operation 902, the method also proceeds to decision block 906, where a determination is made as to whether the user 402 (or a portion of the user 402) is positioned proximate to the virtual object 414. This may be due to the glasses 100, scooter 300, or client device 404 reaching the real-world location of the virtual object 414, or due to visually detecting the intersection of the user 402's hand or other body part with the virtual object 414. How close the user 402 and the virtual object 414 need to be to conclude that the user is proximate to the object will depend on the specific virtual object and its associated implementation. For either power-up 512 or power-down 514, the proximity will be close enough to bring the user 402 and the virtual object 414 into substantial juxtaposition. For virtual objects that will trigger a warning or a change in performance characteristics, such as a virtual traffic cone, or for virtual objects that will approach or leave the AR overlay 708, the proximity may be appropriately large to provide sufficient warning before the scooter actually reaches the hazard or exits the authorized path. An intersection between the user 402 and the virtual object 414 need not be a visual intersection in all cases—sufficient proximity to satisfy the test for a particular virtual object may be considered an intersection with respect to that particular virtual object.
[0097] If no intersection is detected in decision block 906, the method returns to operation 902 and continues therefrom. If an intersection is detected in decision block 906, then at block 908, the virtual object 414 is updated as appropriate. For example, a power-up 512 or power-down 514 may disappear from its location and thus be unavailable for reuse by the user 402 or other riders. This disappearance may be temporary, or may last until the process is restarted. On the other hand, objects such as virtual traffic cones or AR overlays 708 may be persistent.
[0098] The method then proceeds to block 910 where parameters associated with the virtual object 414 are processed to determine an appropriate action to be taken by the glasses 100 or client device 404. The action taken in response to the intersection with the virtual object 414 will depend on the specific characteristics of the virtual object 414. The parameters associated with the virtual object will define whether there are any sounds or visuals associated with the intersection with the virtual object 414, the nature and extent of the associated change in the available or current performance characteristics of the scooter 300 (or other personal mobility system), the duration of the change in performance characteristics (permanently, for a specific amount of time, for as long as the scooter 300 is sufficiently close to the location of the virtual object 414, etc.), and the timing of the change (immediately, delayed, delayed until activated by the user 402, delayed until another condition is met, etc.).
[0099] For the virtual object 414 associated with the immediate change in performance, the method continues at block 912 where an instruction or signal is sent from the client device 404 or glasses 100 to the scooter 300 to alter the performance characteristics of the scooter 300 based on the characteristics of the virtual object 414. The method then returns to operation 902 and continues from there.
[0100] For the virtual object 414 associated with the delayed performance change, the method continues at block 914 where the virtual object is transferred to a new location, typically in the local reference frame of the glasses 100 or scooter 300, where input can be received from the user 402 to activate, at a time of the user's choosing, the performance-changing characteristic corresponding to the virtual object 414. The user thus effectively acquires the virtual object 414.
[0101] When a selection of a virtual object is received in block 916 (e.g., as described above with reference to Figure 6 In block 918, a command or signal is sent from the client device 404 or glasses 100 to the scooter 300 to modify the performance characteristics of the scooter 300 based on the characteristics of the virtual object 414. The command or signal, including relevant parameters such as the nature, amount, and duration of the performance characteristic modification, is received and processed by the management system 324 of the scooter 300 to implement the specific performance characteristic modification. The method then returns to operation 902 and continues therefrom.
[0102] Figure 10 is a block diagram 1000 illustrating a networked device 1002 including details of glasses 100 and a scooter 300 , according to some examples.
[0103] The networked device 1002 (e.g., glasses 100, scooter 300, client device 404) is communicatively coupled to at least one second networked device 1004 and a server system 1008. The distinction between the networked device 1002 and the second networked device 1004 is made solely for the purpose of distinguishing between the two different devices. It should be understood that the description herein of the networked device 1002 equally describes the second networked device 1004.
[0104] Networked device 1002 can be communicatively coupled to a second networked device 1004 using a low-power wireless connection 1010 and a high-speed wireless connection 1012. Second networked device 1004 is connected to server system 1008 via network 1006. Network 1006 can include any combination of wired and wireless connections. Server system 1008 can be one or more computing devices that are part of a service or network computing system. Second networked device 1004 and any elements of server system 1008 and network 1006 can use Figure 11 and Figure 12 The details of the software architecture 1102 or machine 1200 described in are implemented.
[0105] The networked device 1002 may include a data processor 1014, a display 1016, one or more cameras 1018, input / output elements 1020, and additional sensors 1022. The input / output elements 1020 may include a microphone, an audio speaker, a biometric sensor, or an additional display element (e.g., a visual feedback element 332) integrated with the data processor 1014. In some implementations, the input / output elements 1020 (e.g., a speaker, a horn, a tactile generator, a display, and a headlight / signal / indicator light) are used to prompt the user of the networked device 1002 of the safety issue, visually, audibly, or tactilely warning the rider of the safety issue. Figure 11 and Figure 12 Examples of input / output elements 1020 are further discussed. For example, input / output elements 1020 may include any of the I / O components 1202 including output component 1204, motion component 1206, etc. Figure 1 and Figure 2 Examples of displays 1016 are discussed in In the particular examples described herein, displays 1016 include a display for each of the user's left and right eyes.
[0106] Sensors 1022 may include optical sensors (e.g., photoresistors, lidar, infrared), radio frequency sensors (e.g., radar), mechanical wave sensors (e.g., sonar, pressure), and inertial sensors (e.g., accelerometers, gyroscopes, magnetometers). Networked device 1002 may use some or all of the foregoing to detect physical objects or determine the position or posture of networked device 1002. For example, inertial sensors may provide information about the roll, yaw, and pitch of networked device 1002. Networked device 1002 may use this information to detect an accident or other impact and notify a user of the accident or other impact, detect uphill travel to increase power to a propulsion source (e.g., propulsion source 322), or detect downhill travel to establish system braking or power recovery to prevent networked device 1002 (or a second networked device 1004) from exceeding safe speeds and accelerations. Combining accelerometer / speedometer data also provides networked device 1002 with valuable data for detection, intervention, and sending commands to drive propulsion (e.g., via management system 324 to propulsion source 322) and braking performance.
[0107] The data processor 1014 includes an image processor 1024 (eg, a video processor), a GPU and display driver 1026, a tracking module 1028, low power circuitry 1030, and high speed circuitry 1032. The components of the data processor 1014 are interconnected by a bus 1034.
[0108] Data processor 1014 also includes an interface 1036. Interface 1036 refers to any source of user commands provided to data processor 1014. In one or more examples, interface 1036 is a physical button that, when pressed, transmits a user input signal from interface 1036 to low-power processor 1038. Low-power processor 1038 can process pressing such a button and then immediately releasing it as a request to capture a single image, or vice versa. Low-power processor 1038 can process pressing such a button for a first period of time as a request to capture video data while the button is pressed and to stop video capture when the button is released, with the video captured while the button is pressed being stored as a single video file. Alternatively, pressing the button for a longer period of time can capture a still image. In other examples, interface 1036 can be any mechanical switch or physical interface capable of accepting user input associated with a data request from camera 1018. In other examples, interface 1036 can have a software component or be associated with a command received wirelessly from another source, such as client device 404.
[0109] The image processor 1024 includes circuitry for receiving signals from the camera 1018 and processing those signals from the camera 1018 into a format suitable for storage in the memory 1044 or for transmission to the client device 404. In one or more examples, the image processor 1024 (e.g., a video processor) includes a microprocessor integrated circuit (IC) customized for processing sensor data from the camera 1018, and volatile memory used by the microprocessor in operation.
[0110] The low power circuitry 1030 includes a low power processor 1038 and a low power wireless circuitry 1040. These elements of the low power circuitry 1030 may be implemented as separate elements or may be implemented on a single IC as part of a single system on a chip. The low power processor 1038 includes logic for managing the other elements of the networked device 1002. As described above, for example, the low power processor 1038 may accept user input signals from the interface 1036. The low power processor 1038 may also be configured to receive input signals or instruction communications from the client device 404 via the low power wireless connection 1010. The low power wireless circuitry 1040 includes circuit elements for implementing a low power wireless communication system. Bluetooth TM Smart, also known as Bluetooth TM Low power consumption is a standard implementation of a low power wireless communication system that can be used to implement the low power wireless circuit system 1040. In other examples, other low power communication systems can be used.
[0111] High-speed circuitry 1032 includes a high-speed processor 1042, memory 1044, and high-speed wireless circuitry 1046. High-speed processor 1042 can be any processor capable of managing high-speed communications and operations of any general-purpose computing system required by data processor 1014. High-speed processor 1042 includes the processing resources required to manage high-speed data transmission over high-speed wireless connection 1012 using high-speed wireless circuitry 1046. In some examples, high-speed processor 1042 executes an operating system such as the LINUX operating system or a program such as the UNIX operating system. Figure 11 The high-speed processor 1042, which executes the software architecture of the data processor 1014, manages data transmission with the high-speed wireless circuit system 1046, in addition to any other responsibilities. In a specific example, the high-speed wireless circuit system 1046 is configured to implement the Institute of Electrical and Electronics Engineers (IEEE) 802.11 communication standard, which is also referred to herein as Wi-Fi. In other examples, the high-speed wireless circuit system 1046 can implement other high-speed communication standards.
[0112] The memory 1044 includes any storage device capable of storing camera data generated by the camera 1018 and the image processor 1024. Although the memory 1044 is shown as being integrated with the high-speed circuitry 1032, in other examples, the memory 1044 can be a separate, independent element of the data processor 1014. In certain such examples, electrical wiring can provide a connection from the image processor 1024 or the low-power processor 1038 to the memory 1044 through a chip that includes the high-speed processor 1042. In other examples, the high-speed processor 1042 can manage addressing of the memory 1044 so that the low-power processor 1038 will direct the high-speed processor 1042 whenever a read or write operation involving the memory 1044 is required.
[0113] The tracking module 1028 estimates the pose of the networked device 1002. For example, the tracking module 1028 uses image data and corresponding inertial data from the camera 1018 and the position component 1208, as well as GPS data, to track the position and determine the pose of the networked device 1002 relative to a reference frame (e.g., a real-world environment). The tracking module 1028 continuously collects and uses updated sensor data describing the movement of the networked device 1002 to determine an updated three-dimensional pose of the networked device 1002, which indicates changes in relative position and orientation relative to physical objects in the real-world environment.
[0114] In the glasses 100 implementation of the networked device 1002, the tracking module 1028 allows for visual placement of virtual objects relative to physical objects within the user's field of view via the display 1016 by the networked device 1002. The GPU and display driver 1026 can use the pose of the networked device 1002 or the second networked device 1004 to generate frames of virtual content or other content to be presented on the display 1016 when the networked device 1002 is operating in a traditional augmented reality mode. In this mode, the GPU and display driver 1026 generate updated frames of virtual content based on the updated three-dimensional pose of the networked device 1002 and / or the second networked device 1004 that reflect changes in the user's position and orientation relative to physical objects in the user's real-world environment.
[0115] One or more functions or operations described herein may also be performed in an application resident on the networked device 1002, the second networked device 1004, or the server system 1008. For example, one or more functions or operations described herein may be performed by one of the applications 1106, such as the messaging application 1108.
[0116] Figure 11 11 is a block diagram 1100 illustrating a software architecture 1102 that can be installed on any one or more of the devices described herein. The software architecture 1102 is supported by hardware, such as a machine 1110, which includes a processor 1112, memory 1114, and I / O components 1116. In this example, the software architecture 1102 can be conceptualized as a stack of layers, each of which provides specific functionality. The software architecture 1102 includes layers such as an operating system 1104, libraries 1118, frameworks 1120, and applications 1106. In operation, the applications 1106 invoke API calls 1122 through the software stack and receive messages 1124 in response to the API calls 1122.
[0117] The operating system 1104 manages hardware resources and provides common services. The operating system 1104 includes, for example, a kernel 1126, services 1128, and drivers 1130. The kernel 1126 serves as an abstraction layer between the hardware and other software layers. For example, the kernel 1126 provides functions such as memory management, processor management (e.g., scheduling), component management, networking, and security settings. Services 1128 can provide other common services to other software layers. Drivers 1130 are responsible for controlling or interfacing with the underlying hardware. For example, drivers 1130 may include display drivers, camera drivers, or Low-power drivers, Flash drivers, serial communication drivers (e.g., Universal Serial Bus (USB) drivers), drivers, audio drivers, power management drivers, etc.
[0118] The libraries 1118 provide a low-level common infrastructure used by the applications 1106. The libraries 1118 may include system libraries 1132 (e.g., C standard libraries) that provide functions such as memory allocation functions, string manipulation functions, mathematical functions, etc. In addition, the libraries 1118 may include API libraries 1134, such as media libraries (e.g., libraries for supporting presentation and manipulation of various media formats, such as Moving Picture Experts Group-4 (MPEG4), Advanced Video Coding (H.264 or AVC), Moving Picture Experts Group Layer-3 (MP3), Advanced Audio Coding (AAC), Adaptive Multi-Rate (AMR) audio codec, Joint Photographic Experts Group (JPEG or JPG), or Portable Network Graphics (PNG)), graphics libraries (e.g., OpenGL framework for rendering graphical content on a display in two dimensions (2D) and three dimensions (3D), database libraries (e.g., SQLite providing various relational database functions), web libraries (e.g., WebKit providing web browsing functions), etc. The library 1118 may also include various other libraries 1136 to provide many other APIs to the application 1106 .
[0119] The framework 1120 provides a high-level common infrastructure used by the applications 1106. For example, the framework 1120 provides various graphical user interface (GUI) functions, advanced resource management, and advanced positioning services. The framework 1120 can provide a wide range of other APIs that can be used by the applications 1106, some of which may be specific to a particular operating system or platform.
[0120] In an example, the applications 1106 may include a home application 1138, a contacts application 1140, a browser application 1142, a book reader application 1144, a location application 1146, a media application 1148, a messaging application 1108, a game application 1150, and a variety of other applications such as third-party applications 1152. The applications 1106 are programs that perform functions defined in the program. Various programming languages may be used to create one or more of the applications 1106 structured in various ways, such as an object-oriented programming language (e.g., Objective-C, Java, or C++) or a procedural programming language (e.g., C or assembly language). In a specific example, the third-party applications 1152 (e.g., those written by entities other than the vendor of a particular platform using ANDROID) may be used to create a third-party application 1152. TM or IOS TM Software Development Kit (SDK) can be used to develop applications on platforms such as IOS TM ANDROID TM 、 Mobile software running on the mobile operating system of the phone or another mobile operating system. In this example, the third party application 1152 can call the API call 1122 provided by the operating system 1104 to facilitate the functions described in this article.
[0121] Figure 12 The present invention is a diagrammatic representation of a machine 1200 in which instructions 1210 (e.g., software, programs, applications, applet, apps, or other executable code) may be executed that cause the machine 1200 to perform any one or more of the methodologies discussed herein. For example, the instructions 1210 may cause the machine 1200 to perform any one or more of the methodologies described herein. The instructions 1210 transform a general-purpose, unprogrammed machine 1200 into a specialized machine 1200 that is programmed to perform the functions described and illustrated in the manner described. The machine 1200 may operate as a standalone device or may be coupled (e.g., networked) to other machines. In a networked deployment, the machine 1200 may operate in the capacity of a server or a client machine in a server-client network environment, or as a peer machine in a peer-to-peer (or distributed) network environment. The machine 1200 may include, but is not limited to, a server computer, a client computer, a personal computer (PC), a tablet computer, a laptop computer, a netbook, a set-top box (STB), a PDA, an entertainment media system, a cellular phone, a smart phone, a mobile device, an AR wearable device (e.g., a smart watch), a smart home device (e.g., a smart appliance), other smart devices, a web appliance, a network router, a network switch, a network bridge, or any machine capable of executing, sequentially or otherwise, the instructions 1210 specifying actions to be taken by the machine 1200. Furthermore, while only a single machine 1200 is shown, the term "machine" shall also be taken to include a collection of machines that individually or jointly execute the instructions 1210 to perform any one or more of the methodologies discussed herein.
[0122] The machine 1200 may include a processor 1212, a memory 1214, and an I / O component 1202 that may be configured to communicate with each other via a bus 1216. In an example, the processor 1212 (e.g., a central processing unit (CPU), a reduced instruction set computing (RISC) processor, a complex instruction set computing (CISC) processor, a graphics processing unit (GPU), a digital signal processor (DSP), an ASIC, a radio frequency integrated circuit (RFIC), other processors, or any suitable combination thereof) may include, for example, a processor 1218 that executes instructions 1210 and a processor 1220. The term "processor" is intended to include a multi-core processor that may include two or more independent processors (sometimes referred to as "cores") that may execute instructions concurrently. Although Figure 12 Multiple processors 1212 are shown, but the machine 1200 may include a single processor with a single core, a single processor with multiple cores (e.g., a multi-core processor), multiple processors with a single core, multiple processors with multiple cores, or any combination thereof.
[0123] The memory 1214 includes a main memory 1222, a static memory 1224, and a storage unit 1226, all of which are accessible by the processor 1212 via the bus 1216. The main memory 1214, the static memory 1224, and the storage unit 1226 store instructions 1210 that implement any one or more of the methods or functions described herein. During execution of the instructions 1210 by the networked device 1002, the instructions 1210 may also reside, in whole or in part, within the main memory 1222, within the static memory 1224, within the machine-readable medium 1228, within the storage unit 1226, within at least one of the processors 1212 (e.g., within a cache memory of the processor), or within any suitable combination thereof.
[0124] The I / O components 1202 may include various components for receiving input, providing output, generating output, sending information, exchanging information, capturing measurements, etc. The specific I / O components 1202 included in a particular machine will depend on the type of machine. For example, a portable machine such as a mobile phone may include a touch input device or other such input mechanism, while a headless server machine may not include such a touch input device. It is understood that the I / O components 1202 may include Figure 121 and 2. In various examples, the I / O components 1202 may include output components 1204 and input components 1230. The output components 1204 may include visual components (e.g., displays such as plasma display panels (PDPs), light-emitting diode (LED) displays, liquid crystal displays (LCDs), projectors, or cathode ray tubes (CRTs)), acoustic components (e.g., speakers), tactile components (e.g., vibration motors, resistance mechanisms), other signal generators, and the like. The input components 1230 may include alphanumeric input components (e.g., keyboards, touch screens configured to receive alphanumeric input, optical keyboards, or other alphanumeric input components), point-based input components (e.g., mice, touch pads, trackballs, joysticks, motion sensors, or other pointing instruments), tactile input components (e.g., physical buttons, touch screens that provide location and / or force of touch or touch gestures, or other tactile input components), audio input components (e.g., microphones), and the like.
[0125] In another example, the I / O component 1202 may include a biometric component 1232, a motion component 1206, an environment component 1234, or a position component 1208, as well as various other components. For example, the biometric component 1232 includes a component for detecting expressions (e.g., hand expressions, facial expressions, voice expressions, body postures, or eye tracking), measuring biosignals (e.g., blood pressure, heart rate, body temperature, sweat, or brain waves), identifying people (e.g., voice recognition, retinal recognition, facial recognition, fingerprint recognition, or electroencephalogram-based recognition), etc. The motion component 1206 includes an acceleration sensor component (e.g., an accelerometer), a gravity sensor component, a rotation sensor component (e.g., a gyroscope), etc. The environment component 1234 includes, for example, an illumination sensor component (e.g., a photometer), a temperature sensor component (e.g., one or more thermometers that detect ambient temperature), a humidity sensor component, a pressure sensor component (e.g., a barometer), an acoustic sensor component (e.g., one or more microphones that detect background noise), a proximity sensor component (e.g., an infrared sensor that detects nearby objects), a gas sensor (e.g., a gas detection sensor that detects the concentration of hazardous gases for safety or measures pollutants in the atmosphere), or other components that can provide indications, measurements, or signals corresponding to the surrounding physical environment. The location component 1208 includes a location sensor component (e.g., a GPS receiver component), an altitude sensor component (e.g., an altimeter or barometer that detects air pressure that can provide altitude), an orientation sensor component (e.g., a magnetometer), etc.
[0126] A variety of technologies can be used to achieve communication. I / O component 1202 also includes a communication component 1236 that is operable to couple networked device 1002 to network 1238 or device 1240 via coupling 1242 and coupling 1244, respectively. For example, communication component 1236 may include a network interface component or another suitable device that interfaces with network 1238. In other examples, communication component 1236 may include a wired communication component, a wireless communication component, a cellular communication component, a near field communication (NFC) component, Components (e.g. Low power consumption), Device 1240 may be another machine or any of a variety of peripheral devices (eg, a peripheral device coupled via USB).
[0127] In addition, the communication component 1236 can detect an identifier or include a component operable to detect an identifier. For example, the communication component 1236 can include a radio frequency identification (RFID) tag reader component, an NFC smart tag detection component, an optical reader component (e.g., an optical sensor for detecting the following: a one-dimensional barcode, such as a universal product code (UPC) barcode; a multi-dimensional barcode, such as a Quick Response (QR) code, an Aztec code, a data matrix, a data glyph, a MaxiCode, a PDF417, a Hypercode, a UCC RSS-2D barcode, and other optical codes), or an acoustic detection component (e.g., a microphone for identifying an audio signal of a tag). In addition, various information can be obtained via the communication component 1236, such as location via Internet Protocol (IP) geolocation, location information via Positioning via signal triangulation, positioning via detection of NFC beacon signals that can indicate a specific position, etc.
[0128] Various memories (e.g., memory 1214, main memory 1222, static memory 1224, and / or memory of processor 1212) and / or storage unit 1226 may store one or more sets of instructions and data structures (e.g., software) implemented or used by any one or more of the methods or functions described herein. These instructions (e.g., instructions 1210), when executed by processor 1212, cause various operations to implement the disclosed examples.
[0129] Instructions 1210 may be sent or received over network 1238 via a network interface device (e.g., a network interface component included in communications component 1236) using a transmission medium and using any of a number of well-known transmission protocols (e.g., Hypertext Transfer Protocol (HTTP)). Similarly, instructions 1210 may be sent or received to device 1240 via coupling 1244 (e.g., a peer-to-peer coupling) using a transmission medium.
[0130] "Carrier signal" refers to any intangible medium that can store, encode, or carry instructions for execution by a machine and includes digital or analog communication signals or other intangible media to facilitate communication of such instructions. Instructions may be sent or received over a network using a transmission medium via a network interface device.
[0131] "Client Device" refers to any machine that interfaces with a communications network to obtain resources from one or more server systems or other client devices. A client device may be, but is not limited to, a mobile phone, desktop computer, laptop computer, portable digital assistant (PDA), smartphone, tablet computer, ultrabook, netbook, laptop computer, multiprocessor system, microprocessor-based or programmable consumer electronics, game console, set-top box, or any other communications device that a user may use to access a network.
[0132] "Communications network" means one or more parts of a network, which may be an ad hoc network, an intranet, an extranet, a virtual private network (VPN), a local area network (LAN), a wireless LAN (WLAN), a wide area network (WAN), a wireless WAN (WWAN), a metropolitan area network (MAN), the Internet, a part of the Internet, a part of the Public Switched Telephone Network (PSTN), a Plain Old Telephone Service (POTS) network, a cellular telephone network, a wireless network, The coupling may be a network, another type of network, or a combination of two or more such networks. For example, the network or a portion of the network may include a wireless network or a cellular network, and the coupling may be a code division multiple access (CDMA) connection, a global system for mobile communications (GSM) connection, or other type of cellular or wireless coupling. In this example, the coupling may implement any of various types of data transmission technologies, such as single carrier radio transmission technology (1xRTT), evolution data optimized (EVDO) technology, general packet radio service (GPRS) technology, enhanced data rates for GSM evolution (EDGE) technology, the third generation partnership project (3GPP) including 3G, fourth generation wireless (4G) networks, universal mobile telecommunications system (UMTS), high speed packet access (HSPA), world wide interoperability for microwave access (WiMAX), long term evolution (LTE) standards, other data transmission technologies defined by various standards setting organizations, other long distance protocols, or other data transmission technologies.
[0133] "Component" refers to a device, physical entity or logic with boundaries defined by function or subroutine calls, branch points, APIs or other technologies provided for partitioning or modularizing specific processing or control functions. A component can be connected to other components via its interface to perform machine processing. A component can be a packaged functional hardware unit designed for use with other components, and is generally part of a program that performs a specific function of the associated function. A component can constitute a software component (e.g., a code implemented on a machine-readable medium) or a hardware component. A "hardware component" is a tangible unit that can perform certain operations and can be configured or arranged in a certain physical manner. In various examples, one or more computer systems (e.g., an independent computer system, a client computer system or a server computer system) or one or more hardware components (e.g., a processor or a processor group) of a computer system can be configured to operate to perform certain operations as described herein by software (e.g., an application or an application part). Hardware components can also be implemented mechanically, electronically or in any suitable combination thereof. For example, a hardware component can include a dedicated circuit system or logic that is permanently configured to perform certain operations. The hardware component can be a special-purpose processor, such as a field programmable gate array (FPGA) or an application-specific integrated circuit (ASIC). The hardware component can also include a programmable logic or circuit system that is temporarily configured to perform certain operations by software. For example, the hardware component can include software executed by a general-purpose processor or other programmable processor. Once configured by such software, the hardware component becomes a specific machine (or specific component of a machine) that is uniquely customized to perform the configured function, rather than a general-purpose processor. It will be understood that the decision to mechanically implement the hardware component in a dedicated and permanently configured circuit system or in a temporarily configured (e.g., configured by software) circuit system can be driven due to cost and time considerations. Accordingly, the phrase "hardware component" (or "hardware-implemented component") should be understood to include tangible entities, i.e., entities that are physically constructed, permanently configured (e.g., hardwired) or temporarily configured (e.g., programmed) to operate in some way or perform certain operations described herein. Considering an example in which a hardware component is temporarily configured (e.g., programmed), each of the hardware components does not need to be configured or instantiated at any one time. For example, in the case where a hardware component includes a general-purpose processor that is configured by software to become a special-purpose processor, the general-purpose processor can be configured into different special-purpose processors (e.g., including different hardware components) at different times. The software configures one or more specific processors accordingly, such as to constitute a specific hardware component at one time and to constitute different hardware components at different times. Hardware components can provide information to other hardware components and receive information from other hardware components. Therefore, the described hardware components can be considered to be communicatively coupled.In the case of having multiple hardware components at the same time, communication can be achieved by signal transmission (for example, by appropriate circuits and buses) between two or more hardware components or among two or more hardware components. In the example that multiple hardware components are configured or instantiated at different times, the communication between such hardware components can be achieved, for example, by storing information in a memory structure that multiple hardware components can access and retrieving information in the memory structure. For example, a hardware component can perform an operation, and the output of the operation is stored in a memory device coupled to its communication ground. Then, other hardware components can access the memory device at a subsequent time to retrieve the stored output and process it. The hardware component can also initiate communication with an input device or an output device, and can operate on resources (for example, the collection of information). The various operations of the example methods described herein can be performed at least in part by temporary configuration (for example, by software) or permanently configured to perform one or more processors of the related operations. Whether it is temporary configuration or permanent configuration, such a processor can constitute a processor-implemented component that operates to perform one or more operations or functions described herein. As used herein, "processor-implemented component" refers to a hardware component implemented using one or more processors. Similarly, the method described herein can be implemented at least in part by a processor, wherein specific one or more processors are examples of hardware. For example, at least some of the operation of the method can be performed by one or more processors or the parts implemented by the processor. In addition, one or more processors can also operate to support the execution of related operations in a "cloud computing" environment or operate as "software as a service" (SaaS). For example, at least some of the operation can be performed by a group of computers (as an example of a machine including a processor), wherein these operations can be accessed via a network (for example, the Internet) and via one or more appropriate interfaces (for example, API). The execution of certain operations in the operation can be distributed between processors, not only resides in a single machine, but also deployed across multiple machines. In some examples, a processor or the parts implemented by the processor can be located in a single geographic location (for example, in a home environment, an office environment or a server cluster). In other examples, a processor or the parts implemented by the processor can be distributed across multiple geographic locations.
[0134] "Computer-readable media" refers to both machine storage media and transmission media. Thus, these terms include both storage devices / media and carrier / modulated data signals. The terms "machine-readable medium," "computer-readable medium," and "device-readable medium" mean the same thing and are used interchangeably in this disclosure.
[0135] An "ephemeral message" is a message that can be accessed for a limited duration. An ephemeral message can be text, an image, a video, or the like. The access period for an ephemeral message can be set by the sender. Alternatively, the access period can be a default setting or a setting specified by the recipient. Regardless of the setting technique, the message is ephemeral.
[0136] “Machine storage medium” refers to a single or multiple storage devices and / or media (e.g., a centralized or distributed database, and / or associated caches and servers) that store executable instructions, routines, and / or data. Thus, the term should be taken to include, but is not limited to, solid-state memory and optical and magnetic media, including memory internal or external to the processor. Specific examples of machine storage media, computer storage media, and / or device storage media include: non-volatile memory, including, for example, semiconductor memory devices such as erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), FPGAs, and flash memory devices; magnetic disks, such as internal hard disks and removable disks; magneto-optical disks; and CD-ROM and DVD-ROM disks. The terms “machine storage medium,” “device storage medium,” and “computer storage medium” mean the same thing and may be used interchangeably in this disclosure. The terms “machine storage medium,” “computer storage medium,” and “device storage medium” expressly exclude carrier waves, modulated data signals, and other such media, at least some of which are encompassed by the term “signal media.”
[0137] A "processor" refers to any circuit or virtual circuit (a physical circuit emulated by logic executed on an actual processor) that manipulates data values according to control signals (e.g., "commands," "opcodes," "machine code," etc.) and produces corresponding output signals that are applied to operate a machine. For example, a processor may be a central processing unit (CPU), a reduced instruction set computing (RISC) processor, a complex instruction set computing (CISC) processor, a graphics processing unit (GPU), a digital signal processor (DSP), an application-specific integrated circuit (ASIC), a radio frequency integrated circuit (RFIC), or any combination thereof. A processor may also be a multi-core processor having two or more independent processors (sometimes referred to as "cores") that can execute instructions simultaneously.
[0138] "Signal medium" refers to any intangible medium that can store, encode, or carry instructions for execution by a machine, and includes digital or analog communication signals or other intangible media to facilitate the communication of software or data. The term "signal medium" should be construed to include any form of modulated data signal, carrier wave, etc. The term "modulated data signal" means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. The terms "transmission medium" and "signal medium" mean the same thing and may be used interchangeably in this disclosure.
[0139] Changes and modifications may be made to the disclosed examples without departing from the scope of the present disclosure. These and other changes or modifications are intended to be included within the scope of the present disclosure as expressed in the following claims.
Claims
1. A method for controlling a personal mobility system, comprising: displaying a virtual object on a wearable augmented reality device, the virtual object being located in a position in a field of view of the augmented reality device that corresponds to a position in the real world, wherein the position in the real world is positioned in a reference frame in an environment in which the personal mobility system is located; detecting proximity of the personal mobility system or a user of the personal mobility system to the location in the real world; and responsive to said detection of proximity, modifying a performance characteristic of said personal mobility system, The method further comprises: responsive to the detection of proximity, transferring the virtual object from the position in the reference frame in the environment to a position in a reference frame fixed to at least a portion of the personal mobility system; and Modifying the performance characteristic of the personal mobility system is delayed until an intersection of the user of the personal mobility system and the position in the reference frame fixed to at least a portion of the personal mobility system is detected.
2. The method according to claim 1, wherein Modifications to the performance characteristics include changes to the maximum speed or maximum power of the personal mobility system.
3. The method according to claim 1, wherein The modification of the performance characteristic occurs within a predetermined time based on a parameter of the virtual object.
4. The method according to claim 1, further comprising: In response to detecting proximity of the personal mobility system or the user of the personal mobility system to the location in the real world, removing the virtual object from the display of the augmented reality device from a position of the virtual object in the field of view of the augmented reality device that corresponds to the location in the real world.
5. A non-transitory computer-readable storage medium comprising instructions that, when executed by a computer, cause the computer to perform operations for controlling a personal mobility system, the operations comprising: displaying a virtual object on a wearable augmented reality device, the virtual object being located in a position in a field of view of the augmented reality device that corresponds to a position in the real world, wherein the position in the real world is positioned in a reference frame in an environment in which the personal mobility system is located; detecting proximity of the personal mobility system or a user of the personal mobility system to the location in the real world; and responsive to said detection of proximity, modifying a performance characteristic of said personal mobility system, The operations further include: responsive to the detection of proximity, transferring the virtual object from the position in the reference frame in the environment to a position in a reference frame fixed to at least a portion of the personal mobility system; and Modifying the performance characteristic of the personal mobility system is delayed until an intersection of the user of the personal mobility system and the position in the reference frame fixed to at least a portion of the personal mobility system is detected.
6. The computer-readable storage medium according to claim 5, wherein: Modifications to the performance characteristics include changes to the maximum speed or maximum power of the personal mobility system.
7. The computer-readable storage medium according to claim 5, wherein: The modification of the performance characteristic occurs within a predetermined time based on a parameter of the virtual object.
8. A computing system comprising: processor; as well as a memory storing instructions that, when executed by the processor, configure the computing system to perform operations for controlling a personal mobility system, the operations comprising: displaying a virtual object on a wearable augmented reality device, the virtual object being located in a position in a field of view of the augmented reality device that corresponds to a position in the real world, wherein the position in the real world is positioned in a reference frame in an environment in which the personal mobility system is located; detecting proximity of the personal mobility system or a user of the personal mobility system to the location in the real world; and responsive to said detection of proximity, modifying a performance characteristic of said personal mobility system, The operations further include: responsive to the detection of proximity, transferring the virtual object from the position in the reference frame in the environment to a position in a reference frame fixed to at least a portion of the personal mobility system; and Modifying the performance characteristic of the personal mobility system is delayed until an intersection of the user of the personal mobility system and the position in the reference frame fixed to at least a portion of the personal mobility system is detected.
9. The computing system of claim 8, wherein: Modifications to the performance characteristics include changes to the maximum speed or maximum power of the personal mobility system.
10. The computing system of claim 8, wherein: The modification of the performance characteristic occurs within a predetermined time based on a parameter of the virtual object.
11. The computing system of claim 8, wherein: The instructions further configure the computing system to: In response to detecting proximity of the personal mobility system or the user of the personal mobility system to the location in the real world, removing the virtual object from the display of the augmented reality device from a position of the virtual object in the field of view of the augmented reality device that corresponds to the position of the virtual object in the real world.
Citation Information
Patent Citations
Method and apparatus for identifying driving lane
CN109584578A
Determining coordinate frames in a dynamic environment
EP3137975A1