Embodiments described herein relate to determining arrangement information of a moving lighting fixture.
Systems and methods described herein relate to rendering lighting visuals in a virtual reality or augmented reality interactive environment as a way to allow a user to experiment with and discover the lighting visuals (e.g., a light beam, a lighting transition, a follow spot, etc.) available for a given venue and/or lighting fixture arrangement. Three-dimensional models of the potential locations of lighting beams for given lighting fixtures are created and made available in the interactive environment. These models include three-dimensional representations of lighting beams and other lighting visuals, or the models can be used as a three-dimensional model space bounding the possible lighting beam destinations for a given lighting fixture in the real world. In some embodiments, the user directs one or more lighting fixtures with the aid of a user device by indicating a desired lighting beam destination.
One component of accurately rendering and controlling lighting visuals in an interactive environment is having accurate information regarding the lighting fixtures. Particularly, the arrangement information (e.g., the position and orientation) of each lighting fixture should be known with accuracy. For example, one inch of discrepancy between the position data and the real-world position of the lighting fixture can cause the projected lighting beam to be multiple feet away from the intended lighting beam destination. Similarly, a discrepancy of a few degrees between the orientation data and the real-world orientation of the lighting fixture can cause a similar inconsistency.
Currently, a user must make precise measurements to accurately determine the position of a lighting fixture. To determine orientation, the user must also have specific knowledge of the lighting fixture and its current hanging position. Because lighting fixtures can be mounted to rafters, scaffolding, pipes, or any other structure in any number of ways, this technique requires significant time and effort to complete. Additionally, the user must be experienced and/or technically trained in order to properly use the measurement tools and techniques. A specialized technician is often required. Also, these techniques are prone to human error, which can only be detected when a user attempts to control the one or more lighting fixtures according to a desired lighting visual. Once the discrepancy is discovered, which can be at a late hour in the setup process at a venue, the user must perform the entire measurement process again for the incorrectly calibrated light. If a specialized technician was contracted, the same or another specialized technician may need to perform the process on short notice. Because the time of the event at the venue often has a firm deadline, this process can be stressful, inconvenient, and expensive.
Also currently, directing and focusing a light on a specific location in a venue requires a lighting programmer to adjust the lighting fixture's pan and tilt until the correct location of the lighting beam is achieved. This process requires a skilled user and can be time consuming due to the large number of lights at many venues. An example of the time and effort involved includes setting up one or more focus palettes. Focus palettes are used in lighting design to define a specific set of positions upon which multiple moving lighting fixtures focus. Creating and updating focus palettes can be very monotonous and can take a considerable amount of time. For example, a touring band will tour with hundreds of moving lighting fixtures and the show will require focus palettes for each band member's multiple positions on stage throughout the show. At each new venue of the tour, every moving lighting fixture must be moved and focused for at least one of the focus palettes. This setup process takes significant time during setup, which can be stressful for the user, expensive, and prone to human errors.
To address the above concerns, embodiments described herein provide systems and methods for determining the arrangement information of a lighting fixture. Embodiments described herein determine the pertinent details about a lighting fixture's arrangement information (e.g., location, mounting style, etc.) without requiring expensive measuring tools, expert knowledge, or a significant amount of time.
Embodiments described herein also provide systems and methods for directing a lighting fixture in a venue to greatly reduce the amount of time to set up and adjust lighting fixtures for tasks, such as creating focus palettes and following a mark on a stage, without requiring expert knowledge.
Methods are described herein for determining arrangement information of a lighting fixture. The method includes directing a lighting beam from a lighting fixture to each of at least three discrete locations on a reference surface and changing an angular position of the lighting fixture to vary a direction of the lighting beam from the lighting fixture among each of the at least three discrete locations on the reference surface. An electronic processor stores angular change data of the lighting fixture in memory each time the direction of the lighting beam is varied between each of the at least three discrete locations on the reference surface. The electronic processor determines coordinate data of each of the at least three discrete locations on the reference surface and stores the coordinate data. The electronic processor determines a position of the lighting fixture based on the coordinate data and the angular change data.
In some embodiments, the electronic processor determines an orientation of the lighting fixture based on the coordinate data and the angular change data.
In some embodiments, the position of the lighting fixture is determined using perspective inversion.
In some embodiments, the determining of the position of the lighting fixture includes determining a perspective inversion solution for each group of three discrete locations to return a length estimation of a distance between the lighting fixture and each of the at least three discrete locations.
In some embodiments, the electronic processor trilaterates the position of the lighting fixture based on the length estimation of the distance between the lighting fixture and each of the at least three discrete locations.
In some embodiments, the electronic processor determines spherical coordinates of the at least three discrete locations relative to the lighting fixture.
In some embodiments, the electronic processor transforms the position of the lighting fixture into spherical coordinates of the lighting fixture relative to a reference plane formed by the at least three discrete locations.
In some embodiments, the electronic processor extracts yaw, pitch, and roll information about an orientation of the lighting fixture relative to the reference plane.
In some embodiments, the electronic processor outputs the position and orientation of the lighting fixture relative to the reference plane.
Systems are described herein for determining arrangement information of a lighting fixture. The system includes a controller having an electronic processor and a memory coupled to the electronic processor. The memory stores instructions that when executed by the electronic processor configure the controller. The controller is configured to direct a lighting beam from a lighting fixture to each of at least three discrete locations on a reference surface, change an angular position of the lighting fixture to vary a direction of the lighting beam from the lighting fixture among each of the at least three discrete locations on the reference surface, and store angular change data of a lighting fixture each time a direction of a lighting beam from the lighting fixture is varied among each of at least three discrete locations on a reference surface. The controller is also configured to determine coordinate data of each of the at least three discrete locations on the reference surface, store the coordinate data in a memory, and determine a position of the lighting fixture based on the coordinate data and the angular change data.
In some embodiments, the controller is further configured to determine an orientation of the lighting fixture based on the coordinate data and the angular change data.
In some embodiments, the position of the lighting fixture is determined using perspective inversion.
In some embodiments, the determining of the position of the lighting fixture includes determining a perspective inversion solution for each group of three discrete locations to return a length estimation of a distance between the lighting fixture and each of the at least three discrete locations.
In some embodiments, the controller is further configured to trilaterate the position of the lighting fixture based on the length estimation of the distance between the lighting fixture and each of the at least three discrete locations.
In some embodiments, the controller is further configured to determine spherical coordinates of the at least three discrete locations relative to the lighting fixture.
In some embodiments, the controller is further configured to transform the position of the lighting fixture into spherical coordinates of the lighting fixture relative to a reference plane formed by the at least three discrete locations.
In some embodiments, the controller is further configured extract yaw, pitch, and roll information about an orientation of the lighting fixture relative to the reference plane.
In some embodiments, the controller is further configured to output the position and orientation of the lighting fixture relative to the reference plane.
Systems are described herein for determining arrangement information of a lighting fixture. The system includes a controller including an electronic processor and a memory coupled to the electronic processor. The memory stores instructions that when executed by the electronic processor configure the controller. The controller is configured to determine angular change data of the lighting fixture each time a direction of a lighting beam from the lighting fixture is varied between at least three locations on a surface, determine coordinate data of the lighting beam for each of the at least three locations on a surface. The controller is also configured to calculate a respective distance between the lighting fixture and each of the at least three locations based on the angular change data and the coordinate data, determine a position of the lighting fixture based on the respective distances, and output positional data indicating the position of the lighting fixture.
In some embodiments, the controller is further configured to determine relative spherical coordinates for the at least three locations on a surface relative to a lighting beam axis of the lighting fixture, designate one of the at least three locations on the surface as a reference point for determining absolute spherical coordinates, transform the relative spherical coordinates of the at least three locations on the surface into absolute spherical coordinates, and output orientation data indicating an absolute orientation of the lighting fixture. The output orientation data is independent of how the lighting fixture is mounted.
In some embodiments, the systems include at least one camera configured to detect light from the lighting fixture on the surface. The controller is further configured to determine a centroid of the lighting beam at each of the at least three locations.
In some embodiments, the controller is further configured to transmit a signal to actuate at least one motor associated with the lighting fixture to move the lighting fixture such that the lighting beam moves to the at least three locations.
Before any embodiments are explained in detail, it is to be understood that the embodiments are not limited in its application to the details of the configuration and arrangement of components set forth in the following description or illustrated in the accompanying drawings. The embodiments are capable of being practiced or of being carried out in various ways. Also, it is to be understood that the phraseology and terminology used herein are for the purpose of description and should not be regarded as limiting. The use of “including,” “comprising,” or “having” and variations thereof are meant to encompass the items listed thereafter and equivalents thereof as well as additional items. Unless specified or limited otherwise, the terms “mounted,” “connected,” “supported,” and “coupled” and variations thereof are used broadly and encompass both direct and indirect mountings, connections, supports, and couplings.
In addition, it should be understood that embodiments may include hardware, software, and electronic components or modules that, for purposes of discussion, may be illustrated and described as if the majority of the components were implemented solely in hardware. However, one of ordinary skill in the art, and based on a reading of this detailed description, would recognize that, in at least one embodiment, the electronic-based aspects may be implemented in software (e.g., stored on non-transitory computer-readable medium) executable by one or more processing units, such as a microprocessor and/or application specific integrated circuits (“ASICs”). As such, it should be noted that a plurality of hardware and software-based devices, as well as a plurality of different structural components, may be utilized to implement the embodiments. For example, “servers” and “computing devices” described in the specification can include one or more processing units, one or more computer-readable medium modules, one or more input/output interfaces, and various connections (e.g., a system bus) connecting the components.
Other aspects of the embodiments will become apparent by consideration of the detailed description and accompanying drawings.
Embodiments described herein relate to accurately determining arrangement information of one or more lighting fixtures and accurately focusing one or more lighting fixtures on a lighting beam destination. Both of these tasks conventionally require skilled technicians, precise and expensive measuring tools, and significant time. These tasks are achieved by acquiring arrangement information and subsequently controlling lighting fixtures based on the arrangement information.
For example,
The user input device 106A-106D is configured to communicatively connect to the server 114 through the network 112 and provide information to, or receive information from, the server 114 related to the control or operation of the system 100. The user input device 106A-106D is also configured to communicatively connect to the control board 108 to provide information to, or receive information from, the control board 108. The connections between the user input device 106A-106D and the control board 108 or network 112 are, for example, wired connections, wireless connections, or a combination of wireless and wired connections. Similarly, the connections between the server 114 and the network 112, the control board 108 and the lighting fixtures 102, or the control board 108 and the cameras 110 are wired connections, wireless connections, or a combination of wireless and wired connections.
The network 112 is, for example, a wide area network (“WAN”) (e.g., a TCP/IP based network), a local area network (“LAN”), a neighborhood area network (“NAN”), a home area network (“HAN”), or personal area network (“PAN”) employing any of a variety of communications protocols, such as Wi-Fi, Bluetooth, ZigBee, etc. In some implementations, the network 112 is a cellular network, such as, for example, a Global System for Mobile Communications (“GSM”) network, a General Packet Radio Service (“GPRS”) network, a Code Division Multiple Access (“CDMA”) network, an Evolution-Data Optimized (“EV-DO”) network, an Enhanced Data Rates for GSM Evolution (“EDGE”) network, a 3GSM network, a 4GSM network, a 4G LTE network, a 5G New Radio, a Digital Enhanced Cordless Telecommunications (“DECT”) network, a Digital AMPS (“IS-136/TDMA”) network, or an Integrated Digital Enhanced Network (“iDEN”) network, etc.
In the embodiment illustrated in
The controller 200 includes a plurality of electrical and electronic components that provide power, operational control, and protection to the components and modules within the controller 200 and/or the system 100. For example, the controller 200 includes, among other things, a processing unit 208 (e.g., a microprocessor, a microcontroller, or another suitable programmable device), a memory 210, input units 212, and output units 214. The processing unit 208 includes, among other things, a control unit 216, an arithmetic logic unit (“ALU”) 218, and a plurality of registers 220 (shown as a group of registers in
The memory 210 is a non-transitory computer readable medium and includes, for example, a program storage area and a data storage area. The program storage area and the data storage area can include combinations of different types of memory, such as a ROM, a RAM (e.g., DRAM, SDRAM, etc.), EEPROM, flash memory, a hard disk, an SD card, or other suitable magnetic, optical, physical, or electronic memory devices. The processing unit 208 is connected to the memory 210 and executes software instructions that are capable of being stored in a RAM of the memory 210 (e.g., during execution), a ROM of the memory 210 (e.g., on a generally permanent basis), or another non-transitory computer readable medium such as another memory or a disc. Software included in the implementation of the system 100 and controller 200 can be stored in the memory 210 of the controller 200. The software includes, for example, firmware, one or more applications, program data, filters, rules, one or more program modules, and other executable instructions. The controller 200 is configured to retrieve from the memory 210 and execute, among other things, instructions related to the control processes and methods described herein. In other embodiments, the controller 200 includes additional, fewer, or different components.
The user interface 204 is included to provide user control of the system 100, the lighting fixtures 102, and/or the cameras 110. The user interface 204 is operably coupled to the controller 200 to control, for example, control or drive signals provided to the lighting fixtures 102 and/or control or drive signals provided to the cameras 110. The user interface 204 can include any combination of digital and analog input devices required to achieve a desired level of control for the system 100. For example, the user interface 204 can include a computer having a display and input devices, a touch-screen display, a plurality of knobs, dials, switches, buttons, faders, or the like. In the embodiment illustrated in
The controller 200 is configured to work in combination with the control board 108 to provide direct control or drive signals to the lighting fixtures 102 and/or the cameras 110. As described above, in some embodiments, the controller 200 is configured to provide direct control or drive signals to the lighting fixtures 102 and/or the cameras 110 without separately interacting with the control board 108 (e.g., the control board 108 includes the controller 200). The direct drive signals that are provided to the lighting fixtures 102 and/or the cameras 110 are provided, for example, based on a user input received by the controller 200 from the user interface 204. The controller 200 is also configured to receive one or more signals from the cameras 110 related to image or scan data.
As shown in
With reference to the system 100 and/or the system 100A,
With reference to
To determine the discrete locations 302 where the lighting beam 300 contacts the surface 304 without user input information regarding the locations, the controller 200 is configured to determine a centroid of the lighting beam through scan data provided by the camera 110. An example of the scan of the surface 304 that the camera 110 may perform is shown in
Because the lighting fixture 102 control is paired with the controller 200, the controller 200 is able to quantify the change in angle each time the lighting fixture 102 moves. Although this change in angle is known to the controller 200 as a relative angle of the lighting fixture 102 from one position to another and not an absolute angle relative to the surface 304, the absolute angles can be found through mathematical calculations using a perspective inversion solution described generally below.
To calculate the position of the lighting fixture 102 relative to the stage surface 304, the perspective inversion solution uses the length of each side of a triangle that is traced by the lighting beam 300 on the stage surface 304 and the changes in angle of the lighting fixture 102 that created that triangle. The length of the sides of the triangle can be found with the at least three locations 302 coordinate data input and/or calculation as described above. The angles are known by virtue of the controller 200 controlling the lighting fixture 102, as described above.
Because there can be a degree of uncertainty present when calculating the position of the lighting fixture 102 based on only three discrete locations 302A, 302B, and 302C, some embodiments include a fourth discrete location 302D. With four discrete locations 302A, 302B, 302C, 302D, the controller 200 is configured to sequentially determine sets of three discrete locations (e.g., 302A, 302B, and 302C first, 302B, 302C, and 302D second, 302A, 302C, and 302D third, etc.) and is configured to return a value for the lengths of the lighting beam 300 as it existed when it was directed to each of the discrete locations 302A, 302B, 302C, 302D. The controller 200 is then configured to compare these results as they overlap in order to calculate the values with greater certainty. Other embodiments include more than the four discrete locations 302. Such embodiments add even further accuracy to the calculation. Once the length of the lighting beam 300 from the lighting fixture 102 to each individual discrete location 302A, 302B, 302C, 302D is found, the controller 200 is configured to, for example, trilaterate or quadrilaterate the location of the lighting fixture 102. The point at which the spheres of possible solutions for the discrete locations 302A, 302B, 302C, 302D cross is designated as the location of the lighting fixture 102. This calculation actually returns two results—one above the stage surface 304 and one below the stage surface 304. The controller 200 is configured to discard the result below the stage surface 304.
In some embodiments of the system 100 and/or the system 100A, the controller 200 is further configured to run an optimizer operation with the possible positions of the lighting fixture 102. Because the measurements could be off slightly or the control feedback may have noise in the signal, an optimizer operation can more accurately determine the position of the lighting fixture 102 (e.g., improve accuracy of the position of the lighting fixture). The optimizer runs calculations using the law of cosines with the values it has from previously running the perspective inversion solution. The optimizer takes the length of the lighting beam 300 from the lighting fixture 102 to each individual discrete location 302A, 302B, 302C, 302D, combines that data with the known changes in angle of the lighting fixture 102, and determines possible values for the distances on the stage surface 304 between the discrete locations 302A, 302B, 302C, 302D. Because these distances are known through measurement or other methods described above, the optimizer compares these known distances with the determined distances to gauge the accuracy of the results from the perspective inversion solution.
An example of an appropriate optimizer operation is a limited memory Broyden-Fletcher-Goldfarb-Shanno (“LBFGS”) optimizer, although other optimizer operations may be used. If the optimizer operation returns results that converge to a value, that particular value is determined to be more accurate than the initial value. If the results do not converge to a value and instead scatter, the initial value is returned as accurate enough to continue without further attempting the optimizer operation. After these steps, the location of the lighting fixture 102 is again trilaterated (or quadrilaterated). This location is then output as the most accurate estimation of the position of the lighting fixture 102 relative to the stage surface 304 (or the reference points 306).
After the controller 200 has determined the position of the lighting fixture 102, the controller 200 is configured to determine the orientation of the lighting fixture 102 relative to the stage surface 304. In some embodiments, however, the position calculation for the lighting fixture 102 and the orientation calculation for the lighting fixture 102 are both accomplished with the optimizer operation.
The controller 200 uses any three of the discrete locations 302 on the stage surface 304 and the corresponding relative angular change information from the control of the lighting fixture 102. The relative angular change information includes pan, tilt, or both pan and tilt. The controller 200 determines spherical coordinates of the discrete locations 302 receiving the lighting beam 300 as the lighting fixture 102 is oriented in each position. These spherical coordinates are relative spherical coordinates, in that they include pan and tilt angles of the lighting fixture 102 relative to the axis of the lighting beam 300, and the origin is the position of the lighting fixture 102 (i.e., the focal point of the lighting beam 300).
The controller 200 is configured to translate the known Cartesian coordinates of the found position of the lighting fixture 102 and the known discrete locations 302 relative to the reference points 306 into real-world spherical coordinates with the lighting fixture 102 as the origin. Some embodiments include the reference points 306 being one of the known discrete locations 302 in this calculation.
The controller 200 is then configured to perform a matrix transformation utilizing both the relative spherical coordinates and the real-world spherical coordinates to translate the relative spherical coordinates of the orientation of the lighting fixture 102 at each position into real-world spherical coordinates (e.g. relative to a reference plane, which may be referred to as absolute spherical coordinates). Once this relationship is determined, the yaw, pitch, and roll information of the orientation of the lighting fixture 102 relative to the stage surface 304 is extracted. In some embodiments, the yaw, pitch, and roll may be referred to as absolute angles of the lighting fixture 102 with reference to the surface 304, which includes a plane of the discrete locations 302A, 302B, 302C, and 302D. This information is the absolute orientation of the lighting fixture 102 regardless of mounting methods.
After the above calculations have been completed, the controller 200 is configured to present the results as the indicated position and orientation of the lighting fixture 102 (e.g., the controller 200, or a user device 106A-106D is paired with the three-dimensional model space of the venue). With this information, the controller 200 can alter image data relating to the lighting fixture 102 and the lighting beam 300 in an interactive environment and control the lighting fixture 102. Once the lighting fixtures 102 in the venue 104 have been identified, classified, and located, the above calculated information can be used to implement transitions of various styles.
With continued reference to
In some embodiments, the indication of the locations 308 is made on a touchscreen of the user device 106A-106D utilizing an augmented reality interface (through, for instance, an application interface screen 600 as shown in
Once the real-world position of the destination 308 on the surface 304 is determined, the controller 200 is configured to send a control signal to one or more motors to actuate movement of the lighting fixture 102. The lighting fixture 102 moves to the appropriate orientation to project the lighting beam 300 at the destination 308. For example, the controller 200 is configured to translate the real-world Cartesian coordinates of the destination 308 into the altered control string described above to operate the lighting fixture 102 such that the lighting beam 300 moves appropriately in the three-dimensional model space.
In some embodiments of the system 100, 100A, the indication of the desired destination 308 for the lighting beam 300 on the surface 304 at the venue 104 can be made by aiming the center of the capture view of the camera 110 at the destination 308. As described above, the controller 200 is configured to convert this center of the capture view into an equivalent position of the destination 308 on the actual surface 304. In this configuration, the indication of the desired destination 308 may be actuated by a distinct command, such as a voice command, the press of a button, or the like. Additionally or alternatively, the indication of the desired destination 308 is switched to a continual or continuous mode, such that the desired destination 308 moves simultaneously or with some delay relative to the changing capture view of the camera 110 as the camera 110 is moved throughout the venue 104. In some embodiments, this mode can be used as a follow spot control.
In some embodiments of the system 100, 100A, the indication of the desired destination 308 of the lighting beam 300 on the surface 304 at the venue 104 is made by pointing an end of the user device 106A-106D in a direction with the camera view of the camera 110 pointing in an orthogonal direction. With a smartphone 106D, for instance, a user could point the top end of the smartphone 106d at the desired location 308 while the camera 110 is directed toward the surface 304. In this configuration, the lighting beam destination 308 may be set at a constant distance, potentially designated by the user, from the end of the smartphone 106D or from the center of the capture view of the camera 110 in an orthogonal direction from the direction of the capture view. In some embodiments, the user device 106A-106D determines the location of the desired destination 308 by pointing the end of the user device 106A-106D to the desired destination 308, and using the known location (coordinates) of the user device 106A-106D in the venue along with a tilting angle of the device 106A-106D relative to the surface 304 (e.g., determined using internal IMUs of the device 106A-106D) to determine the location of the of the desired destination 308 in the venue 104.
In some embodiments of the system 100, 100A, the indication of the desired destination 308 of the lighting beam 300 is set as the location of the user device 106A-106D itself. The controller 200 determines the location of the user device 106A-106D based on the capture data from the camera 110. This data is processed to calculate the location relative to one or more reference points 306. The controller 200 is configured to designate the current location of the user device 106A-106D relative to the reference points 306 as the destination 308. As described above, the indication of the desired destination 308 as the location of the user device 106A-106D can be actuated by a distinct command. Additionally or alternatively, the indication of the user device 106A-106D as the destination 308 may be switched to a continuous or continual mode.
As shown in
The user then focuses the lighting fixture 102 at each of the four discrete locations 302A, 302B, 302C, 302D and saves the resulting angular change values for the pan and tilt of the lighting fixture (STEP 702). Next, either the controller 200 or the user selects any three of the four discrete locations 302A, 302B, 302C, 302D and the corresponding angular changes the lighting fixture 102 made to direct the lighting beam 300 to each of the respective selected discrete locations 302A, 302B, 302C, 302D (STEP 703).
A perspective inversion solution is used to solve for the distances from the discrete locations 302A, 302B, 302C, 302D on the surface 304 to the lighting fixture 102 (STEP 704). Once all the values for the distances have been determined, the position of the lighting fixture 102 is trilaterated (STEP 705).
The controller 200 then determines whether all of the possible combinations of three of the discrete locations 302A, 302B, 302C, 302D and corresponding angular changes have been calculated with the perspective inversion solution (STEP 706). If not all possible combinations have been calculated, the method 700 returns to STEP 703 to complete the other possible combinations.
If, at STEP 706, all possible combinations have been calculated, the process 700 proceeds to compute an error of each possible solution found (STEP 707). Next, the controller 200 saves the solution with the fewest errors as the best initial solution for the position of the lighting fixture 102 (STEP 708). The best initial solution is then used as an input to attempt to optimize (e.g., improve accuracy of) the result by running calculations using the law of cosines (STEP 709). The controller 200 then determines whether the optimization operation converged on a solution (STEP 710).
If the optimization operation converged on a solution, the optimal solution is returned as the solution for the length of the light beam 300 from each of the discrete locations 302A, 302B, 302C, 302D to the lighting fixture 102 (STEP 711A) instead of the previous best initial solution from STEP 708. If the optimization operation did not converge on a solution, the controller 200 ignores the optimization operation and returns the best initial solution from STEP 708 (STEP 711B). The controller 200 then determines the position of the lighting fixture 102 through trilateration with the best available lengths (STEP 712).
Now that the position of the lighting fixture 102 has been determined, the controller 200 selects one set of three of the discrete locations 302 and the corresponding changes in angle of the lighting fixture 102 (STEP 713). The spherical coordinates of the discrete locations 302 are found with the lighting fixture 102 serving as the point of origin (STEP 714). Then, the known Cartesian coordinates of the discrete locations 302 and the lighting fixture 102 are converted to real-world spherical coordinates (STEP 715) with the lighting fixture 102 as the origin. A matrix transformation is performed to translate the relative spherical coordinates of the lighting fixture 102 into absolute spherical coordinates (STEP 716). The yaw, pitch, and roll information of the lighting fixture 102 is then determined and extracted (STEP 717). The controller 200 then returns the position and orientation of the lighting fixture 102 relative to the surface 304 and the reference point 306 (STEP 718).
Although STEPS 713-717 were described above, some embodiments of the method 700 includes the position calculation for the lighting fixture 102 and the orientation calculation for the lighting fixture 102 both being accomplished during the optimization step (STEP 709) and proceeding from STEP 712 directly to STEP 718.
With reference to
The method 800 then moves to STEP 805, where the error of each possible solution is calculated. The controller 200 saves the solution with the least errors as the best initial solution for the position of the lighting fixture 102 (STEP 806). The best initial solution is used as an input to attempt to optimize the result by running calculations using the law of cosines (STEP 807). The controller 200 then determines whether the initial solution (after optimization) for the position of the lighting fixture 102 is known with enough accuracy to be below an error threshold (STEP 808).
If the position error is not less than the error threshold at STEP 808, the controller 200 determines whether the number of discrete locations 302 recorded by a positions counter is above a threshold value (STEP 809). The threshold positions value may be any appropriate number including, for instance, ten discrete locations 302. If, at STEP 809, the positions counter is less than the threshold value, the controller 200 moves the lighting fixture 102 to a new angular position (STEP 810) and increases the value stored in the positions counter by one. Next, the controller 200 captures data corresponding to another discrete location 302 (STEP 811). After capturing the data corresponding to another discrete location 302 (STEP 811), the method 800 returns to STEP 803 to recalculate the distances from the discrete locations 302 to the lighting fixture 102. The method 800 continues through STEPS 804-807.
This portion of the method 800 loops until either the initial solution (after optimization) is found within the error threshold or the number stored in the positions counter is above the threshold value. In some embodiments, the addition of the fourth discrete location 302D makes the initial solution fall within the error threshold. In other embodiments, five or more discrete locations 302 are used. In other embodiments, only the initial three discrete locations 302A, 302B, and 302C are used to get an initial solution that is within the error threshold. If, at STEP 808, position error is less than or equal to the error threshold, the method 800 continues to STEP 812. Similarly, if the new initial solution found at STEP 806 is sufficiently accurate after optimization and after the method 800 has continued through the loop of STEPS 807-811 and 803-808, the method 800 continues to STEP 812. Further, if the initial solution found at STEP 806 and optimized at STEP 807 is not within the error threshold but the positions counter has a value that is above the positions threshold, the method 800 continues to STEP 812 without trying further discrete locations 302.
The controller 200 then determines whether the optimization operation converged on a solution (STEP 812). If the optimization operation converged on a solution, the optimal solution is returned as the solution for the lengths of the light beam 300 from each of the discrete locations 302 to the lighting fixture 102 (STEP 813A) instead of the previous best initial solution from STEP 806. If the optimization operation did not converge on a solution, the controller 200 ignores the optimization operation and returns the best initial solution from STEP 806 (STEP 813B). The controller 200 then calculates the position of the lighting fixture 102 for a final time through trilateration with the best available values for the lengths from the discrete locations 302 to the lighting fixture 102 (STEP 814).
With the position of the lighting fixture 102 determined, the controller 200 selects one set of three of the discrete locations 302 and the corresponding changes in angle of the lighting fixture 102 (STEP 815). The spherical coordinates of the discrete locations 302 are found with the lighting fixture 102 serving as the point of origin (STEP 816). Then, the known Cartesian coordinates of the discrete locations 302 and the lighting fixture 102 are converted to real-world spherical coordinates (STEP 817) with the lighting fixture 102 as the origin. A matrix transformation is performed to translate the relative spherical coordinates of the lighting fixture 102 into absolute spherical coordinates (STEP 818). The yaw, pitch, and roll information of the lighting fixture 102 is then found and extracted (STEP 819). The controller 200 then determines the position and orientation of the lighting fixture 102 relative to the surface 304 and the reference point 306 (STEP 820).
Although STEPS 815-819 were described above, some embodiments of the method 800 include the position calculation for the lighting fixture 102 and the orientation calculation for the lighting fixture 102 both being accomplished during the optimization step (STEP 807) and proceeding from STEP 814 directly to STEP 820.
With reference to
The method 900 also includes the controller 200 indicating a lighting beam destination 308 (STEP 902). The lighting beam destination 308 may be designated in, for instance, one of the ways described above. The lighting beam destination 308 is located relative to the capture view of the camera 110. Once the lighting beam destination 308 has been indicated, the method 900 includes the controller 200 converting the destination indicated by the user device 106 into coordinates at the venue 104 in the three-dimensional model space (STEP 903). This conversion is made based on the earlier gathered data about the orientation and position of the user device 106A-106D.
After this conversion has been made, the method 900 includes the controller 200 interpreting the coordinates at the venue 104 for the lighting beam destination 308 relative to lighting fixture arrangement (e.g., positions and orientations), and determining a corresponding lighting fixture 102 arrangement (e.g., using process 700 or process 800) that directs the lighting beam 300 appropriately to the lighting beam destination 308 (STEP 904). The method 900 then includes the controller 200 controlling actuation of at least one motor coupled to or associated with the lighting fixture 102 to move the lighting fixture 102 according to the determined lighting fixture 102 orientation such that the lighting beam 300 is directed to the lighting beam destination 308 (STEP 905).
Thus, embodiments described herein provide methods and systems for determining arrangement information of a lighting fixture. Various features and advantages of some embodiments are set forth in the following claims.
This application is a continuation application of U.S. Non-Provisional patent application Ser. No. 16/708,796, filed on Dec. 10, 2019, which claims the benefit of U.S. Provisional Patent Application No. 62/777,455, filed on Dec. 10, 2018, each of which is hereby incorporated by reference in its entirety.
Number | Date | Country | |
---|---|---|---|
62777455 | Dec 2018 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 16708796 | Dec 2019 | US |
Child | 17689248 | US |