I’ve been working on a laser system within touch, and I’m struggling a bit to get logically consistent behavior. I’ve read the 2008 paper ‘Accurate and Efficient Drawing Method for Laser Projection’ (Abderyim/Halabi/Fujimoto/Chiba), and am starting to implement the Eulerian graph optimization method as well as the angle based method highlighted in that paper.
However, the wiki for the scan & etherdream chops isn’t fully completed, and I have questions on the specific behavior of some of the options.
Question - Scan CHOP - Blanking Count
Is this blanking before each primitive or each point?
Question - Scan CHOP
‘Vertex Repeat’ & ‘limit step size’ only seem to activate when ‘vertex order’ is activated, though maybe it just looks that way with the sop data I’m passing in. Is this the intended functionality?
Question - Etherdream CHOP
On the wiki page, there’s the following paragraph - “The maxrate column of the EtherDream DAT indicates the maximum number of samples per second that can be sent to the EtherDream device, though maxrate is the maximum number of steps that the stepper motors of lasers can take per-second. Large changes in values from sample-to-sample will be smoothed due to this limitation.” What are the specifics of this smoothing? This could potentially undo optimizations done in the scan chop or earlier in the chain.
Bug - Scan CHOP
I’ve found that frequently the SOPs upstream of the scan chop have visual artifacts where in the SOP viewer there’s faint blue lines & points that jump around very quickly, which correspond to where in the SOP the scan chop looking at. No idea what’s going on there, but it doesn’t seem to affect the data.
RFE - Scan CHOP
There’s currently not a good way for me to understand what point modifications are being made by the scan chop for debugging, perhaps just an info channel with number of points after blanking & vertex repeat would be easy to implement? That channel could also feed into optimizations before the scan chop to allow for dynamic modification of point generation before optimization, based on output after modification.