DL.2 Position feedback / simulation of movement ?

Hi,

Is there a way to get feedback from a DL.2 about its current position while it moves ?

I plan to use a DL2 to in an interactive system, much like a computer game. Graphical objects (characters of the game) shall be projected onto different surfaces of a room (they move based on a user's behavior). I have a DL.2 for the projection. The program I design will both render the object (the DL.2 projects that image as it is connected to the VGA output of the computer) and control the projector's motion via ArtNet.
While this setup works fine, the system does not work as expected when the character is projected while the DL.2 moves.
This is of course due to the fact that the projector has a considerable mass and can not turn to its new position instantly. Therefor it is necessary for my application to know where the projector is pointing at at any given moment (every 1/60 second, as I'm rendering 60 frames per second). Only this way the object can be rendered in the correct place within the projected image so that it gets projected in the correct spot while the projector moves.

There are basically three options for me:

1. There is a way for the fixture to give feedback to the controlling computer about how far it has come since the command to change to a new position was sent and somebody lets me know how to get this information.

2. I could simulate the fixture's motion, as I know the position value I sent to it as well as the previous positions. This however requires some knowledge about how the controller inside of the device controls its motors, how it accelerates and decelerates, what the maximum speed is etc.
It can be very tedious to figure that out by trial and error, not to mention that it may not be accurate enough this way. It certainly would help to hear from a Highend Systems engineer how they control the DL.2's motors. I just hope that is not considered a classified trade secret.

3. I would have to build some hardware device that measures the position changes (eg. by following the signals on the stepper motors) or a completely new controller for the DL2's pan and tilt function.


For obvious reasons I would like to avoid option three, especially the more drastic approach of replacing and redesigning the controller.

I also am not optimistic that there is a way to get the feedback from the device, as I have searched a lot for it and this feature simply doesn't seem to be necessary for the usual applications.

So I'm really hoping to get some information that may help me to simulate the motion of the fixture accurately.

Regards,

Jochen
  • Jochen,

    As you surmised, there is no way to read out the current position of the fixture.

    In your situation I would suggest using the M-Speed channel for the Motion. This will allow you to specify the time that it makes the move in. The best thing to do is pick a time that is a bit slower than what the fixture can actually move in that way it will then slow down to match the time you have specified. This makes the calculations much much easier for you.

    Otherwise predicting our motion time gets a lot more complicated as we have different accel and decel curve profiles for different situations.
  • Hi Scott,

    thanks for you reply. Do I understand you correctly that you mean that I should limit the speed, so that the system (after a short acceleration period) moves at a constant speed (until it decelerates again shortly before the goal position is reached) ?

    This would let the device move at a constant speed while it is at its speed limit and only the acceleration/deceleration would cause some inaccuracies. Of course the effect of acceleration and deceleration would be minimal if the speed is minimal (speed value 4, 252.68 sec duration for the move). Unfortunately that would make the system much too slow.

    You write that I should set the speed a bit slower than what the fixture can actually move. For once that would mean that it has to accelerate/ decelerate to/from near the maximum speed. Consequently the accel and decel curves would have nearly the same effect as it would actually run at its maximum speed. And further more, how do I know the maximum speed, or the amount of time a rotation around x degrees takes for the pan and tilt motors ? I obviously would need this information to find a M-Speed value that corresponds to a slightly longer period.

    Another reason why I don't want to limit the speed is that I usually will not know where the projector has to point to a long time in advance. As these game characters move dependent on their programmed behavior, which may depend on user interaction, they may want to move in one direction at one time and into another direction a moment later. While their motion won't be so fast that the projector couldn't move fast enough, their goal position will be updated quite frequently (more than once a second) and in small steps. If I set the M-Speed to a very slow value, it effectively means that it would take a looong time for the device to reach this small step ahead.
    In other words, I think I will rarely send some position updates to the projector that would accelerate the device too its maximum speed, instead I would probably mostly keep the projector in the range of acceleration and deceleration.

    Therefor it would be good to know something about how the system accelerates and decelerates.

    If I was to design such a system, I would probably base it on the following assumptions:

    1 There is a maximum speed that the stepper motors permit

    2 There is a maximum acceleration that the stepper motors can generate

    3 In order to generate a smooth motion, the location, the speed, the acceleration and probably the first derivative of the acceleration have to be continuous.

    This may be a quite naive approach, as I don't have the years of experience you have in designing these things, but I hope I'm not too far off. I therefor was wondering if you could let me know the maximum speed and acceleration you use for the motors. Also, are these the same for both pan and tilt ?

    You mentioned different acceleration/deceleration curves used in different situations can you elaborate on that ?
    How did you get to these curves? What situations ? I'm basically interested in the fastest mode of the system (M-Speed = 0), so I would not need any curves for situations in which the system is slowed down (M-Speed >= 04).

    You may not know these details yourself. In that case is there someone at Highend Systems whom I might contact for such information. I would sign a NDA if that is a requirement, although I do not think that this would be information that would help a possible competitor to build a similar device as much as the wiring diagrams of the different controller boards and how they are connected, which is available for download on your website.

    Regards,

    Jochen
  • Jochen,

    My best reccommendation would be to get your hands on a unit and do some experimentation directly as that will give you the most info. Slowing the M-Speed down just a bit should help make the system a bit more predictable overall.

    The Accel/Decel curves can be complicated as there are many variables involved, using the M-Speed will eliminate some of that.

    Unfortunately, I don't have precise numbers to provide as we do not develop based on that directly. Internally the max accel/velocity are just a unitless hex value that don't directly coorespond to real-world units.

    Scott
  • Hi Scott,

    first of all, sorry for my late reply, I didn't get an email notification after your second reply and as I was busy with some other work, I didn't look into the forum for a while.

    I will try it out and see how far I can get by trial and error.

    About the max acceleration/velocity values just being internal hex values:
    That doesn't really matter. I assumed that you would work with individual steps of the stepper motors as base unit. Also, the pan and tilt angles are provided as a 16 bit value each. Maybe these even are numbers of steps?
    Anyway I could do my simulation on any of these "units", as long as I know about them.

    Thanks,

    Jochen