27 July 2018 Rapid telescope pointing calibration: a quaternion-based solution using low-cost hardware
Author Affiliations +
A telescope control system relies on a pointing model to determine the gimbal angles that aim the telescope toward a desired target. High-accuracy telescope pointing models include parameters that describe the mount/telescope orientation as well as common mechanical effects. For professional telescopes, calibrating the pointing model requires careful initial alignment around a nominal orientation (e.g., leveling) followed by sightings of dozens to hundreds of stars to fit the model parameters. While this approach is effective for observatories, applications such as transportable optical ground stations for communications, space situational awareness, or astronomy using low-cost telescope networks can benefit from a more rapid calibration approach. We formulate a quaternion-based pointing model that utilizes measurements from an externally mounted star camera to compromise between calibration speed and accuracy. A key aspect of this formulation is that it is completely agnostic to the orientation of the telescope/mount so that no manual prealignment is required. We derive angle and rate commands for telescope pointing and tracking based on the model. We present results from a 15-min calibration procedure on a very low-cost telescope that demonstrated pointing to an accuracy of 53 arc sec RMS in azimuth and 66 arc sec RMS between 20-deg and 70-deg altitude.
Riesing, Yoon, and Cahoy: Rapid telescope pointing calibration: a quaternion-based solution using low-cost hardware



High-accuracy telescope pointing and tracking is required for many applications, such as astronomy, space situational awareness, and optical communication. A telescope control system relies on a pointing model to determine the gimbal angles to point toward a desired target. The pointing model is at the core of the “virtual telescope” concept. This concept was proposed in the 1970s by the designers of the Anglo-Australian Telescope,1,2 and it allows for modular and user-friendly control system software. A “virtual telescope” module behaves as a perfect telescope and the messy transformations and corrections needed to point the physical telescope are contained within it. High-accuracy telescope pointing models include parameters that describe the mount/telescope orientation as well as common static and dynamic mechanical effects.

The block diagram in Fig. 1 summarizes the basic pointing problem. The inputs to the pointing model are the current time, location, target vector in the inertial frame, and the desired target vector in the detector frame. Though the astrometric and detector models that go into producing the target vectors are nontrivial, they are not the focus of this work and we assume that the appropriate target vectors have been calculated. The pointing model consists of a series of rotations that relate the inertial frame to the detector frame, and the gimbal angles appear within these rotations. If a trajectory is desired, gimbal rates can be determined by differentiating the pointing model equations.

Fig. 1

Block diagram showing the basic telescope pointing problem of how to generate gimbal angles. The current time, location of the telescope, target vector in the inertial frame, and target vector in the detector frame are taken as inputs. The pointing model consists of a series of rotations that relate the inertial frame to the detector frame. Contained within these rotations are the desired gimbal angles.


There are two mathematically different approaches to developing the pointing model. A simple approach is to determine the gimbal angles for an ideal telescope and then apply small additive corrections to generate the commanded gimbal angles. A more rigorous approach is to pose the full problem in matrix/vector form and solve these equations for the commanded gimbal angles.3 The simplified approach is sufficient for small corrections but ignores the coupling between corrective terms.

The original TPOINT developer Wallace1 proposed a condensed seven-term pointing model.3 While prior models had many terms, in which each applied a linear correction [ΔAz,ΔEl] to the commanded mount angles, the revised model is based on a more rigorous matrix/vector formulation. Wallace4 also provided a very simple pointing model that produces linear corrections based on the seven terms. The pointing model for the Massachusetts Institute of Technology (MIT) 37-m diameter Haystack antenna, which predates TPOINT, also used a seven-term model with a slightly different formulation.5 A six-term model (excluding a term for vertical deflection of the telescope) has been proposed that can be calibrated with star sightings or with an autocollimator and precision calibrated gimbal setup.6

Professional software such as TPOINT is effective for fixed telescopes in observatories. However, for some applications, faster calibration is desirable, such as portable telescopes for optical communications.7 Additionally, many low-cost telescopes have incremental rather than absolute encoders. These telescopes require recalibration after every power cycle as the zero position is reset. They commonly have a built-in calibration procedure that requires sighting a few stars, but it is insufficient for applications, where better than several arc min of accuracy is required. Improving the pointing and tracking accuracy of low-cost hardware enables its use for applications in space situational awareness and astronomy. Low-cost hardware is particularly valuable to enable large-telescope networks.

To enable rapid calibration while maintaining high accuracy, we formulate a quaternion-based pointing model that utilizes measurements from an externally mounted star camera. Star cameras are used frequently in spacecraft to determine their orientation. By taking an image of a portion of the sky and comparing the relative positions of observed stars against a catalog of known stars, the observed stars can be identified to provide a unique orientation solution. The solution is typically in the form of a quaternion. Quaternions are a useful representation of orientation that avoids the possibility of a mathematical singularity known as gimbal lock (refer to Appendix for more detail on quaternions).

The calibration builds-off of the work in Ref. 8 and is augmented to include additional pointing model terms that account for gimbal nonperpendicularity and vertical deflection of the telescope. These additional terms improve calibration residuals by 70%, from 150 arc sec root-mean-square (RMS)8 to 45 arc sec RMS, on the telescope setup described in Sec. 4. A key aspect of our formulation is that it is completely agnostic to the initial orientation of the telescope/mount so that no manual alignment (e.g., leveling) is needed. Even the type of mount (e.g., equatorial) does not need to be specified to the software, as long as it is has two nominally perpendicular gimbal axes. The quaternion-based formulation provides a rigorous approach that enables direct use of star camera measurements.

There are three key benefits of the pointing model formulation presented in this work as compared to existing approaches: (1) the 10-parameter model is tailored for use with a star camera to greatly speed up calibration while maintaining accuracy, (2) the pointing model makes no assumptions about the mount type or orientation, which minimizes manual set up time, and (3) the gimbal angle and rate commands are derived analytically from the pointing model for completeness.

We describe the approach to calibrate the pointing model using a star camera. We present the analytically derived angle and rate commands for telescope pointing and tracking. We present results from a 15-min calibration procedure on a low-cost telescope that demonstrated an accuracy of 85 arc sec RMS on 15 stars between 20-deg to 70-deg altitude. This procedure demonstrates the algorithm’s functionality in practice, but the pointing performance depends heavily on the quality of the telescope and hardware. The results are meant to serve as an example but not as a lower or upper bound for algorithm performance.


Pointing Model

In this section, we present the pointing model formulation and how the pointing model can be applied to generate gimbal angle and rate commands. The calibration of the terms in the pointing model is covered in Sec. 3.


Reference Frames

The reference frames relevant to the derivation of the pointing model are defined in this section. They are presented in the order in which they are applied in the pointing model. Azimuth and altitude descriptors are used from this point on, but for other mount types, simply replace them with “roll” and “pitch” or other descriptors.

  • J2000 (J2K) frame: The J2000 frame is an Earth-centered inertial frame. The fundamental plane of this frame is the equator, and the X axis points toward the vernal equinox. The Z axis points through the north pole, and the Y axis forms a right-handed set 90 deg east of the X axis. These directions are fixed with the mean equator and equinox at 12:00 Terrestrial Time on January 1, 2000.

  • East-north-up (ENU) frame: The east-north-up (ENU) frame provides local horizontal coordinates. It is centered at the telescope site. The X axis is defined as east, the Y axis as north, and the Z axis forms a right-handed set toward zenith.

  • Mount (MNT) frame: The Y axis is defined by the azimuth gimbal rotation axis at time t0 when the telescope is powered on. The Z axis is defined as the cross-product between the altitude and azimuth gimbal axes at time t0. The X axis forms a right-handed set.

  • Gimbaled (GIM) frame: The gimbaled frame (GIM) is the mount frame (MNT) rotated through gimbal azimuth ψ and altitude α as read by the encoders. Note that a nonperpendicularity between the azimuth and altitude axes of the gimbals is allowed.

  • Star camera nominal (ST) frame: The X axis is defined by the horizontal direction in the star camera mounted externally to the telescope. The Y axis is defined by the vertical direction in the star camera mounted externally to the telescope. The Z axis is defined by the star camera boresight, which is assumed to be perpendicular to the focal plane.

  • Observed (OBS) frame: This frame is the star camera nominal frame (ST) rotated about a vector defined by the cross-product of zenith and the telescope boresight. This contains the vertical deflection of the telescope due to gravity as well as the effect of atmospheric refraction.



Each star camera image yields a quaternion rotation between the J2000 frame and the observed frame (OBS). A star camera measurement at time t is given by


where qn is the star camera measurement noise and the notation qBA is used to represent a quaternion rotation from frame B to frame A. The definition of the quaternion multiplier and other details on quaternions can be found in Appendix. The rotation from the J2000 to ENU frame, qJ2KENU(t), can be calculated using the International Earth Rotation and Reference Systems Service model.9 The other rotations each contain unknown calibration parameters, which will be defined.

The rotation from the ENU frame to the MNT frame, qENUMNT, is unknown and must be estimated fully. The rotation from the MNT frame to the GIM frame is given by a rotation through the known azimuth and altitude gimbal angles, ψ(t) and α(t), which can be read out from the encoders. A nonperpendicularity between the gimbal axes is accounted for by introducing a rotation angle θNP in the XY plane of the MNT frame. Overall, the rotation from the MNT frame to the GIM frame is given by



The azimuth rotation is given by



The altitude rotation is given by



The nonperpendicularity between the gimbal axes is given by



Equations (2)–(5) define the rotation from the MNT frame to the GIM frame, which contains one unknown, θNP.

The next rotation is from the GIM frame to the ST frame, qGIMST. This unknown is particularly relevant for a telescope with incremental encoders because the zero position of the telescope is arbitrary upon startup. This rotation is unknown and must be estimated fully.

The rotation from the ST frame to the OBS frame is given by a small vertical deflection that describes the sag of the telescope. We introduce an unknown vertical deflection coefficient, ad. Additionally, we introduce the vector vd(t), which is the axis about which vertical deflection occurs defined in the OBS frame. It is given by the normalized cross-product of zenith and the telescope boresight:


where rtel|OBS is the telescope boresight vector as observed in the star camera. This vector is determined by an intercamera alignment procedure described in Sec. 3.1. It contains two degrees of freedom determined by the (x,y) location of boresight on the star camera. The rotation from the ST frame to the OBS frame is described by



In summary, the unknowns that must be estimated are qENUMNT, θNP, qGIMST, and ad. This results in a total of eight unknown parameters, plus two parameters from intercamera alignment, resulting in a total of 10 parameters in the overall model.


Gimbal Angle and Rate Commands

The primary goal of the pointing model is to determine how to provide angle and rate inputs to the mount to look at a desired target, which we derive in this section. Let rpnt|J2K be the unit pointing vector from the telescope to the target in the J2000 frame. This unit pointing vector is given by


where rtarg|J2K is the target in the J2000 frame and rgs|J2K is the ground station in the J2000 frame.

The pointing model can be applied to image a target in the primary detector (the detector behind the telescope) as follows:



The gimbal angles appear in both q^STOBS, which determines the vertical deflection of the telescope, and q^MNTGIM, which executes the gimbal rotation. A simplifying assumption is made that q^STOBS can be evaluated based on the target azimuth and altitude, which can be determined from rpnt|ENU. This assumption states that the vertical deflection from the undeflected position is approximately the same as the vertical deflection would be at the desired location. Since the deflection should be less than a degree in altitude and deflection is proportional to the cosine of the altitude angle, this is justified.

This assumption allows the problem to be simplified greatly. The gimbal angles only appear in the q^MNTGIM transformation, so Eq. (9) can be simplified as follows:


where rpnt|GIM and rpnt|MNT are determined by multiplying the appropriate transformations.

Combining Eqs. (2) and (10) and rearranging yields:



For notational simplicity, let





Using the definitions from Eqs. (3)–(5) to multiply out Eq. (11) gives the set of equations:






where ai denotes the i’th element of vector a and likewise with vector b.

To solve for the gimbal angles, we first provide a general relationship that can be applied to Eqs. (14)–(16). Given an equation of the form:


by applying the Pythagorean trigonometric substitution for sin(θ), rearranging, squaring the equation, and applying the quadratic formula, we arrive at two solutions for cos(θ):



Equation (14) is in the form of Eq. (17), so cos(ψ) can be calculated with Eq. (18). This yields four possible solutions for the azimuth angle ψ. Multiplying Eq. (15) with cos(α) and subtracting Eq. (16) multiplied by sin(α) yields an equation in the form of Eq. (17), which can be solved for cos(α), with u, v, and w given by







Equation (21) depends on the azimuth angle ψ, which has four possible solutions. This yields eight possible solutions for cos(α) and 16 possible solutions for the altitude angle α. If there are angle restrictions, such as 0<α<π/2, they can be applied to reduce the solution set. The correct solution for the gimbal angles can be determined by testing each solution against Eq. (11).

By differentiating Eqs. (14)–(16), the desired gimbal rates can be determined to track a target. This applies to both celestial objects and noncelestial objects such as satellites. It is assumed that r˙pnt|MNT has been calculated by taking into account the motion of the target and Earth rotation. The rate of change of the target in the primary detector can be specified in calculating r˙tel|GIM. Setting r˙tel|GIM=0 will maintain the target in a fixed location in the primary detector (assuming a nonrotating field). The equations resulting from this differentiation are as follows:







Equation (22) can be solved for the azimuth gimbal rate:



Multiplying Eq. (23) by cos(α) and subtracting Eq. (24) multiplied by sin(α) yields a solution for the altitude gimbal rate:



Using Eqs. (25) and (26), the mount can be commanded to follow a target trajectory.


Calibration with Star Camera

This section covers the three steps that are required to calibrate the parameters of the pointing model. These steps consist of an intercamera alignment procedure, a coarse calibration parameter fit, and a fine calibration parameter fit.


Intercamera Alignment

The purpose of the intercamera alignment procedures is to identify the location of the telescope boresight in the star camera. This allows calibration with the star camera to be used to guide a signal through the primary aperture. A distant source (e.g., a bright terrestrial light or a star) is centered in the primary detector and also captured with the star camera. The centroid of the target in the star camera provides a unit vector in the ST frame, rtel|OBS, which represents the boresight of the telescope.


Coarse Calibration

Coarse calibration provides an initial state estimate for fine calibration. It utilizes a series of star camera measurements as modeled in Eq. (1). For coarse calibration, several assumptions are made. Measurement noise is ignored, vertical deflection is ignored (i.e., the deflection coefficient ad is assumed to be zero), and the rotation axis nonperpendicularity θNP is assumed to be zero, such that qMNTGIM(t) is known from the encoder output. Under these assumptions, the remaining unknowns in Eq. (1) are qGIMST and qENUMNT, which must be estimated.

The i’th star camera measurement in the form of qJ2K,iOBS is multiplied by known transformations into the form qENU,iST. Given an i’th and j’th measurement, they can be used to estimate qGIMST with the following:



Using the quaternion property in Eq. (51), Eq. (27) can be written as follows:



By pairing star camera measurements to calculate the quaternions in Eq. (28), the problem transforms into one of attitude determination given a set of vector measurements. A method of determining attitude from vector measurements such as QUEST10 can then be applied to estimate qGIMST.

Similarly, qENUMNT can be estimated from



These coarse estimates of qGIMST and qENUMNT are used to proceed to fine calibration.


Fine Calibration

Fine calibration uses a least squares approach with the initial state supplied by coarse calibration. There are eight unknown parameters to be estimated. The error state is given by



The vector portion of the error quaternion of the star camera measurements from Eq. (1) can be approximated to first order as follows:



In Eq. (31), δQGIMST and δQENUMNT are components of the state, but δQST,iOBS and δQMNT,iGIM must be related back to the state components.

Equations (2)–(5) define the rotation between the MNT and the GIM. With these equations and utilizing the quaternion property in Eq. (51), the error quaternion δqMNT,iGIM is given by



The vector portion of the error quaternion from Eq. (32) can be approximated to first order as follows:



Finally, δqNP must be related to δθNP from the state. To first order, the vector portion of δqNP can be approximated as follows:



Combining this result with Eq. (33) yields the overall approximation:



Returning to Eq. (31), δQST,iOBS must be related to the state components. Equations (6) and (7) describe the rotation from the ST to the OBS. The error quaternion from the star camera to the OBS at the i’th measurement is as follows:


where αobs,i is the measured altitude from the i’th star camera image. The vector component is approximated as follows:



Overall, combining Eqs. (31), (35), and (37) yields a linearization of the form:


where Hi is a matrix of partial derivatives and δxi is the state correction. The matrix Hi is composed of


with partial derivatives given by









Multiple measurements can be combined into an iterative nonlinear least squares process. For n measurements, the measurement errors are related to state errors as follows:



This equation is of the form:


where k is the iteration number and the covariance of ω is a diagonal matrix R which corresponds with the measurement noise covariance. Using iterative least squares, the state update is given by



The quaternions q^GIMST and q^ENUMNT are updated with a quaternion product and the state components θ^NP and a^d are updated additively. Iterations continue until the estimate converges on a solution.



This section covers results from testing the pointing model and calibration approach developed in Secs. 2 and 3 on a very low-cost telescope. Pointing performance is strongly dependent on hardware, so these results are meant to be taken as an example application rather than as a lower or upper bound on performance. Figure 2 shows the steps that take the telescope from a state of storage to ready-to-track in less than 30 min.

Fig. 2

Block diagram showing the steps from telescope deployment to ready-to-track. Manual steps are shown in blue and automated steps are shown in green. The calibration steps take 15  min plus an additional 10 min to set up a low-cost telescope. The telescope is ready-to-track in less than 30 min.




We tested the calibration algorithm on the Portable Telescope for Lasercom,7 as shown in Fig. 3. The hardware consists of a telescope with an externally mounted star camera and a camera behind the telescope. The telescope is a Celestron CPC1100, a popular hobbyist telescope with an 11” (28 cm) aperture and an altazimuth mount. The star camera mounted to the telescope is a low-cost iNova PLB-Mx2 CMOS camera. A 35-mm focal length lens with a 25-mm aperture is paired with the camera, resulting in a field-of-view (FoV) of 7.8deg×5.9deg and a plate scale of 22  arcsec/pixel. The camera behind the telescope is a Sensors Unlimited Micro SWIR 320CSX. It is an InGaAs camera with an 4.0×3.2  mm2 active area. Coupled with the telescope, the full FoV of the detector is 591×473  arcsec2 and the plate scale is 0.92  arcsec/pixel. The telescope, star camera, and back-end camera are controlled from a Dell Precision M4800 laptop. A graphical user interface developed in Visual Studio is used to control the session, and the software is implemented in a combination of C, C++, and C#. During setup, no effort is put toward leveling the telescope or setting the start position, as these parameters are determined in software.

Fig. 3

Portable Telescope for Lasercom (PorTeL) deployed on the roof of MIT building 37 in Cambridge, Massachusetts. The star camera can be seen mounted on top of the telescope.



Calibration Results

The results presented in this section were acquired on February 14, 2018, between the hours of 23:48 to 23:59 UTC from the roof of an MIT building, as shown in Fig. 3. The calibration procedure took a total of 11 min. To calibrate the pointing model, 24 star camera images were taken at points equidistributed across the sky above 20-deg altitude. Figure 4 shows the locations of the calibration points on a 2-D projection of the sky.

Fig. 4

The 24 calibration points projected on a bird’s-eye view of a unit hemisphere. The calibration points are calculated to be approximately equidistributed above 20-deg altitude. The points are numbered in the order in which they are executed.


Images were taken with 300-ms exposure and star identification (ID) was performed on each image using a correlation-based pattern matching algorithm developed by Yoon et al.11,12 An image is excluded from the calibration set if fewer than six stars are identified or if the ID score, as described in Ref. 12, is below a threshold of 30, determined empirically.

Table 1 summarizes the results of the star camera images. The azimuth and altitude from the telescope encoders are listed, followed by the number of stars identified and the star ID RMS residual. Once the stars are identified, their vector is known in the J2000 frame from a star catalog. The vectors in the star camera frame are determined from the image, and QUEST10 is used to estimate a rotation between the two frames. Using this estimate, the predicted vectors in the star camera are compared to the measured star vectors to calculate the residuals. The RMS of the residuals provides a metric to assess the accuracy of each image measurement, which ranges from 2 to 8 arc sec within this dataset.

Table 1

Results from star camera images for pointing model calibration taken on February 14, 2018, between the hours of 23:48 to 23:59 UTC. Azimuth and altitude are listed for each calibration image followed by the number of stars identified, the residual of the star identification, and the azimuth and altitude residuals in the pointing model calibration.

#Azi (deg)Alt (deg)Stars ID’dID RMS res. (arc sec)Calibration res.
Azi (arc sec)Alt (arc sec)
Overall RMS2737


Excluded due to low star identification score.

The final two columns of Table 1 show the azimuth and altitude residuals of each image within the overall pointing model following the approach described in Sec. 3. Three images (#7, #9, and #11) are excluded from the pointing model calibration due to low star ID scores. Image #8 appears to be an outlier, but it has a strong identification score and it is more likely that the calibration is skewed slightly by the exclusion of images #7 and #9 near it (see Fig. 4). The accuracy of the overall calibration was 27 arc sec RMS in azimuth and 37 arc sec RMS in altitude.

Residuals from the 21 images included from calibration are shown in Fig. 5. A trend can be seen between altitude and rotation about the star camera Z-axis (rotation around boresight), but otherwise the residuals do not contain any clear trends. Rotation of the star camera about the Z-axis only has a small coupling to the telescope line-of-sight (if the star camera and telescope were coaligned perfectly, there would be no coupling), so residuals in the Z-axis are of less importance than the other axes.

Fig. 5

Residuals from pointing model calibration in the star camera frame plotted against azimuth and altitude. Data acquired on February 14, 2018 between the hours of 23:48 to 23:59 UTC.


The pointing model parameters determined from the calibration are summarized in Table 2. The parameters indicate that the initial telescope setup was imperfect: the starting altitude was 1.24  deg and the mount was misleveled by 1.06 deg. These errors can be conveniently identified and corrected in software rather than manually.

Table 2

Pointing model parameter values as calculated from calibration. Data acquired on February 14, 2018, between the hours of 23:48 to 23:59 UTC.

q^GIMST[0.003650.01020.99990.0052]Rotation between GIM and ST determines telescope “zero” position, which is at an ENU azimuth of 298.8 deg and altitude of 1.24  deg
q^ENUMNT[0.16700.68770.68340.1794]Rotation between MNT and ENU frame, indicating that the mount is misleveled by 1.06 deg
a^d8.59×104Vertical deflection coefficient resulting in maximum deflection of 177 arc sec on horizon
θ^NP0.19 degGimbal axis nonperpendicularity

The vertical deflection coefficient is negative, indicating that the telescope tends to pitch up when it is near the horizon. This is likely due to a mass imbalance caused by instrumentation on the back of the telescope, which exacerbates an imbalance already observed with no instrumentation. A counterbalancing weight has been added to the front of the telescope but this approach is imprecise. The calibration also shows that there is a nonperpendicularity of 0.19 deg between the gimbal axes. While a single calibration set is presented here, the calibration procedure has been conducted with this telescope 14 times with similar results and stable estimates for the nonperpendicularity.


Star Pointing Results

To test the accuracy of the calibration procedure, 15 bright stars were measured through the main aperture between 00:14 and 00:42 UTC on the same night. Table 3 lists the pointing accuracy for these stars based on their location in the primary detector behind the telescope. The telescope tracked the stars at sidereal rate for each measurement. We consider pointing accuracy rather than tracking accuracy because the observations were less than a minute each. The accuracy was 53 arc sec RMS in azimuth and 66 arc sec RMS in altitude. As expected, these errors are worse than the 27 arc sec RMS and 37 arc sec RMS error of the calibration procedure. A penalty is paid for calibrating with the star camera rather than the primary aperture.

Table 3

Star pointing results acquired between the times of 00:14 to 00:42 UTC on February 15, 2018.

#Star nameAzi err. (arc sec)Alt err. (arc sec)
14Rho Persei−64−101
Overall RMS5366

In Fig. 6, the errors for each star are plotted against the ENU azimuth and altitude of the observation. A linear trend can be seen between the altitude error and the ENU azimuth. This could indicate a small error in fitting the calibration parameters. There could also be a shift in the mount orientation over time due to the fact that it is not rigidly mounted on a concrete pier, for example. The pointing accuracy is good for this class of telescope, and the primary benefit of this approach is rapid setup that avoids manual prealignment. In comparison, the built-in calibration procedure for the CPC1100 tested on a different night with careful manual deployment yielded accuracies from 100 to 900  arcsecforeachstar.

Fig. 6

Star pointing error plotted against ENU azimuth and altitude of the observation. Data acquired between the times of 00:14 to 00:42 UTC on February 15, 2018.


While using a star camera allows for fast calibration, there are disadvantages to not using the primary aperture. Any misalignment between the star camera and telescope boresight as a function of attitude is ignored in our procedure. For very precise pointing, this will limit the performance. If additional precision is desired, a combination of star camera measurements and measurements from the camera behind the telescope can be used to fit the pointing model. This will increase the time required to calibrate for each additional measurement, but it still retains the benefit of eliminating assumptions about nominal orientation.



In telescope pointing calibration, there is a tradeoff between speed and accuracy. Most pointing models also make assumptions about the nominal orientation of the telescope, which requires manual correction and recalibration if the telescope is too far off of nominal. To enable rapid calibration while maintaining high accuracy, we presented a quaternion-based pointing model tailored for use with a star camera. The calibration approach is completely agnostic to the initial orientation of the telescope/mount so that no manual alignment (e.g., leveling) is needed and even the type of telescope (e.g., altazimuth or equatorial) does not need to be specified. The gimbal angle and rate commands to track a target were derived analytically from the pointing model.

The calibration procedure was tested using a very low-cost telescope. Pointing model parameters were fit from a series of star camera images taken during the 15-min calibration procedure. Results of the calibration were presented, indicating that there were multiple “errors” in the deployment of the telescope: the mount was misleveled by 1.06 deg, had a zero-altitude position 1.24 deg below the horizon, and the gimbal axes showed a 0.19 deg nonperpendicularity. These errors were compensated for in software and the pointing model accuracy was tested by pointing at 15 stars across the sky. The overall star pointing accuracy was 53 arc sec RMS in azimuth and 66 arc sec RMS in altitude. The results support the utility of the calibration approach developed in this work that compromises between speed and accuracy, particularly for low-cost telescopes.



Quaternion Conventions

This appendix defines the quaternion conventions, notation, and relevant equations used in the pointing model derivation. Reference 13 provides additional detail on quaternions.

Any rigid-body rotation in three-dimensional space can be represented by a single rotation of angle θ about a fixed axis v known as the Euler axis. A quaternion can be defined from these terms as follows:



The vector and scalar components of a quaternion q are represented as follows:


with the vector component Q appearing before the scalar component q.

With this convention, multiplication of quaternion p by quaternion q is given by



The notation used for the direction cosine matrix corresponding to a quaternion is A(q), which can be calculated by



A relationship between two quaternions p and q that is frequently used in this work is given by



The current estimate of a quaternion has an error of δq, such that the true quaternion q is given by


where q^ is the quaternion estimate.

Quaternions are generally written to explicitly note the reference frames as qBA, which represents a rotation from frame B to frame A.


K. M. R. would like to acknowledge support from the NASA Space Technology Research Fellowship under Grant No. #NNX14AL61H. This work was also funded by an Innovation Grant from the MIT Deshpande Center. Finally, we would like to thank Ewan Douglas and Emily Clements for helpful feedback and clarifying discussions.


1. J. O. Straede and P. T. Wallace, “The Anglo-Australian 3.9-meter telescope: software controlled slewing, setting, and tracking,” Publ. Astron. Soc. Pac. 88, 792–802 (1976).PASPAU0004-6280 https://doi.org/10.1086/130026 Google Scholar

2. J. Bailey and R. Prestage, “The portable telescope control system project,” Proc. SPIE 3112, 124–131 (1997).PSISDG0277-786X https://doi.org/10.1117/12.278818 Google Scholar

3. P. Wallace, “A rigorous algorithm for telescope pointing,” Proc. SPIE 4848, 125–136 (2002).PSISDG0277-786X https://doi.org/10.1117/12.460914 Google Scholar

4. P. T. Wallace, “Concise telescope pointing algorithm using IAU 2000 precepts,” Proc. SPIE 7019, 701908 (2008).PSISDG0277-786X https://doi.org/10.1117/12.788712 Google Scholar

5. M. L. Meeks, J. A. Ball and A. B. Hull, “The pointing calibration of the Haystack antenna,” IEEE Trans. Antennas Propag. 16(6), 746–751 (1968).IETPAK0018-926X https://doi.org/10.1109/TAP.1968.1139287 Google Scholar

6. A. K. Rue, “Calibration of precision gimbaled pointing systems,” IEEE Trans. Aerosp. Electron. Syst. 6(5), 697–706 (1970).IEARAX0018-9251 https://doi.org/10.1109/TAES.1970.310072 Google Scholar

7. K. Riesing, H. Yoon and K. Cahoy, “A portable optical ground station for low-earth orbit satellite communications,” in Proc. of IEEE Int. Conf. on Space Optical Systems and Applications (2017). https://doi.org/10.1109/ICSOS.2017.8357219 Google Scholar

8. H. Yoon, K. Riesing and K. Cahoy, “Satellite tracking system using amateur telescope and star camera for portable optical ground station,” in Proc. of AIAA/USU Conf. on Small Satellites (2016). Google Scholar

9. G. Petit and B. Luzum, “IERS conventions (2010),” IERS Technical Note 36, Verlag des Bundesamts für Kartographie und Geodäsie (2010). Google Scholar

10. M. D. Shuster and S. D. Oh, “Three-axis attitude determination from vector observations,” J. Guid. Control 4(1), 70–77 (1981).JGCODS0162-3192 https://doi.org/10.2514/3.19717 Google Scholar

11. H. Yoon, Y. Lim and H. Bang, “New star-pattern identification using a correlation approach for spacecraft attitude determination,” J. Spacecr. Rockets 48(1), 182–186 (2011).JSCRAG0022-4650 https://doi.org/10.2514/1.49675 Google Scholar

12. H. Yoon et al., “New star pattern identification with vector pattern matching for attitude determination,” IEEE Trans. Aerosp. Electron. Syst. 49(2), 1108–1118 (2013).IEARAX0018-9251 https://doi.org/10.1109/TAES.2013.6494402 Google Scholar

13. M. J. Sidi, Spacecraft Dynamics and Control: A Practical Engineering Approach, Cambridge University Press, Cambridge (1997). Google Scholar


Kathleen M. Riesing is a PhD candidate in aeronautics and astronautics at MIT specializing in estimation and control applied to space systems. She received her BSE degree in mechanical and aerospace engineering from Princeton University (2013) and an SM degree in aeronautics and astronautics from MIT (2015). Her graduate work has focused on pointing, acquisition, and tracking of ground-based and space-based laser communication systems.

Hyosang Yoon is an attitude determination and control engineer at Planet. He received his BS (2008) and MS (2010) degrees in aerospace engineering from Korea Advanced Institute of Science and Technology (KAIST), and his PhD (2017) degree in aeronautics and astronautics from MIT. Prior to MIT, he worked at the commercial satellite company Satrec Initiative as an attitude control engineer for 5 years. He has an extensive experience in satellite attitude control, including onboard Kalman filter design and implementation, controller design and tuning, sensor and actuator testing, and on-orbit sensor-payload alignment calibration.

Kerri L. Cahoy is an associate professor in the Department of Aeronautics and Astronautics at MIT. She received her BS (2000) degree in electrical engineering from Cornell University, and her MS (2002) and PhD (2008) degrees in electrical engineering from Stanford University working with the Radio Science Team on Mars Global Surveyor. She joined the MIT faculty in July 2011 and leads the Space Telecommunications, Astronomy, and Radiation Laboratory (STAR Lab).

© The Authors. Published by SPIE under a Creative Commons Attribution 3.0 Unported License. Distribution or reproduction of this work in whole or in part requires full attribution of the original publication, including its DOI.
Kathleen M. Riesing, Kathleen M. Riesing, Hyosang Yoon, Hyosang Yoon, Kerri L. Cahoy, Kerri L. Cahoy, } "Rapid telescope pointing calibration: a quaternion-based solution using low-cost hardware," Journal of Astronomical Telescopes, Instruments, and Systems 4(3), 034002 (27 July 2018). https://doi.org/10.1117/1.JATIS.4.3.034002 . Submission: Received: 8 March 2018; Accepted: 29 June 2018
Received: 8 March 2018; Accepted: 29 June 2018; Published: 27 July 2018


Back to Top