Hi all, I am trying to build a DMX moving head control patch as a basis for controlling multiple moving heads with MoCap data. (beam following a physical tracker as a first test). I’ve managed to get one fixture in the centra of the scene working perfectly fine (with the use of the example provided in this old thread: Need Help! SHARPY PAN/TILT control in 3d space - #6 by sssslamin cleverly using the atan function for converting x and y coordinates into the two rotational values needed for a moving head)
I’m now figuring out how to translate the lightsource to a different location in the room and still have the rotation values calculated to aim the beam directly on the tracker. But I find my math knowledge seriously lacking… I am adding the position coordinates of the source to the angle calculation, to calculate for the offset of the source. This works perfectly fine for one axis. I can put the source anywhere along the x-axis, and the calculation still gets the beam on the tracked spot. However, when I alter the Z position, the angle calculation just doesn’t follow along. The light beam is still following the tracked spot, only with a constant offset. I can’t seem to find a way to correct this. Hope that someone can look into my patch and give me a hint on how to get this second axis working too! Thanks in advance!
Hi Markus, thanks a lot for clearing this up for me… I found the stackoverflow post you mention during my initial research, but my math understanding couldn’t grasp it at the time, so I decided on the trial and error workflow (always a bad idea). Your division and cleaning up of the calculation Component helped me make more sense of the underlying math (still a bit behind on that…). Will try and calibrate with the physical Moving heads next week when I’m back in the studio. There’s probably gonna be some need for matching the physical and virtual coordinate systems onto each other (direction of the fixture, the max and min rotation values - the DMX PAN is 540deg over a 256 range, max tilt angles are just over 90deg both sides…) but with this as a basis, and some step by step calibration that’ll probably pan out pretty easily (pun intended).
Hello There!
Many thanks for your advices and research! We were currently breaking our heads to find a way to convert 3 axis data into a pan-tilt system, this solution seems like a very good start, good job!
We’re currently trying to find a way to adapt the system to different kind of spaces, allowing us to place more beams and specific spots and creating a tactile interface allowing to control the beams.
Did you figure out how to rotate the moving head? In the setup we are developing, the moving heads will be placed horizontally - and we guess it will change every calculations, but we have no insights on how to change it.
Also, as JvN mentionned, the min-max tilt and pan angles change on most fixtures, but we don’t really find a way to adapt it.
If it’s not possible to do so, we were thinking about developing the system in a different way - calibrate the pan, then the tilt, and adapting the values to the 3D system, but I guess it would be way less precise and would take a lot of time if we have many different sources.
Does anyone has an idea to go further? Would be a pleasure to share the final file if it works properly! lyres-td.21.toe (18.5 KB)
since the coordinate system for the moving head doesn’t change when hanging it sideways, imagine that you have to transform the target coordinate relative to the movinghead. To simplify it, I would try to set the fixture position to 0,0,0 and transform the target position as if looked at from a sideways mounted fixture. Does that make sense?
For the actual fixture movement, I guess you would clamp the values or loop them over the legal range?
Hi Markus!
Great! We tried to calibrate it from the position 0 and it works well. We’re still trying to improve it - maybe try to work with a replicator to adapt it procedurally to different numbers of lights. When everything works well we will share the file
Many thanks for your answer!