Laser beam position using galvanometer

In 3D printing techniques like SLA and SLS use lasers for solidifying a cross section / layer of the model that is printed. These machines, as far as I know, use XY laser scanners to project the laser beam onto the build platform, and thereby print each layer of the model.

I was wondering how one compute the configuration of the two galvanometers to project the laser beam onto a desired position in the 2D plane / build surface of the printer?

I hope someone can refer me to some literature on this topic.

• The word "galvanometers" is odd in this context. From the context, I think that the phrase "electrically steerable mirrors" might get you better results. A galvanometer (even mirror galvanometers) are typically thought of as current measurement devices rather than control mechanism. – Edward Jan 10 '14 at 12:02
• @Edward He is using galvanometers to mean steerable mirrors, which is standard practice in the optics community. I'm assuming the term originates from how the original devices worked. See for example this product from Edmund optics – Chris Mueller Jan 12 '14 at 19:19

Working in the 4x4 case the quantity of interest is a 4x1 vector whose first two components describe the position and angle of a ray within the beam, with respect to the optical axis, and whose second two components describe the position and angle of the optical axis itself. The 4x4 matrices describe how this 4x1 vector transforms under interaction with an optical system. For your case you only need the two most basic matrices, the translation operator and flat mirror reflection operator, given by $$T(d)= \begin{bmatrix} 1 & d & 0 & 0\\ 0 & 1 & 0 & 0\\ 0 & 0 & 1 & 0\\ 0 & 0 & 0 & 1 \end{bmatrix} \qquad M(\epsilon)= \begin{bmatrix} 1 & 0 & 0 & 0 \\ 0 & 1 & 0 & -2\epsilon\\ 0 & 0 & 1 & 0\\ 0 & 0 & 0 & 1 \end{bmatrix},$$ where $d$ is the distance of propagation and $\epsilon$ is the misalignment of the mirror in units of slope.
In your case you know the position and angle of the optical axis at the start, and you want to run the beam through a system with three translations and two reflections. Recall that matrix multiplication is not commutative so the final matrix is given by $$T(d_3)M(\epsilon_2)T(d_2)M(\epsilon_1)T(d_1)= \begin{bmatrix} 1 & d_1+d_2+d_3 & 0 & -2(d_2\epsilon_1+d_3(\epsilon_1+\epsilon_2))\\ 0 & 1 & 0 & -2(\epsilon_1+\epsilon_2)\\ 0 & 0 & 1 & 0\\ 0 & 0 & 0 & 1 \end{bmatrix}.$$ The two terms in the upper right of the matrix describe how the position and angle of the optical axis changes with respect to the original. One final piece of information; all of this takes place within the paraxial approximation so be careful when dealing with large misalignments.
So, the final result is that the angle and position of the optical axis will be given at a distance $d_3$ downstream of the second mirror by $$x=-2(d_2\epsilon_1+d_3(\epsilon_1+\epsilon_2)) \qquad \theta=-2(\epsilon_1+\epsilon_2).$$ In this relatively simple example we could have figured this out with straightforward geometry; the position change caused by the first mirror is $-2(d_2+d_3)\epsilon_1$ and the position change caused by the second mirror is $-2d_3\epsilon_2$. The change in angle of the beam is simply the sum of the two angles of the mirrors. The minus signs are due simply to an arbitrary definition of which way the mirror turns when $\epsilon$ is positive.