Encoderless Gimbal Calibration of Dynamic Multi-Camera Clusters

07/24/2018 ∙ by Christopher L. Choi, et al. ∙ University of Waterloo 0

Dynamic Camera Clusters (DCCs) are multi-camera systems where one or more cameras are mounted on actuated mechanisms such as a gimbal. Existing methods for DCC calibration rely on joint angle measurements to resolve the time-varying transformation between the dynamic and static camera. This information is usually provided by motor encoders, however, joint angle measurements are not always readily available on off-the-shelf mechanisms. In this paper, we present an encoderless approach for DCC calibration which simultaneously estimates the kinematic parameters of the transformation chain as well as the unknown joint angles. We also demonstrate the integration of an encoderless gimbal mechanism with a state-of-the art VIO algorithm, and show the extensions required in order to perform simultaneous online estimation of the joint angles and vehicle localization state. The proposed calibration approach is validated both in simulation and on a physical DCC composed of a 2-DOF gimbal mounted on a UAV. Finally, we show the experimental results of the calibrated mechanism integrated into the OKVIS VIO package, and demonstrate successful online joint angle estimation while maintaining localization accuracy that is comparable to a standard static multi-camera configuration.



There are no comments yet.


page 3

page 6

page 7

This week in AI

Get the week's most popular data science and artificial intelligence research sent straight to your inbox every Saturday.

I Introduction

Multi-camera clusters (MCCs) have emerged as an effective camera configuration for robust vision-based localization and mapping algorithms [1, 2]. In contrast to a standard stereo setup, which exploits the overlap between two forward facing cameras, MCCs use multiple cameras in a wider range of configurations. The increased field-of-view (FOV) available to MCCs facilitates feature tracking over longer durations and larger viewpoint changes in comparison to monocular or stereo configurations, which can lead to improved pose estimates for robotic applications.

MCCs can be set up in two possible configurations: static camera clusters (SCCs) or dynamic camera clusters (DCCs). SCCs have rigidly mounted camera configurations with static extrinsic parameters, while DCCs incorporate a camera mounted to an actuated mechanism, such as a gimbal, allowing the cameras to reconfigure their orientation independent of each other and irrespective of robot motion. Although SCCs have provided promising results thus far, the features observed by this configuration are directly coupled to the motion of the camera cluster. A trajectory where the cameras observe limited features or occlusions can drastically degrade pose estimates, resulting in efforts to solve this problem by placing the entire SCC on a swiveling rig [3, 4]. In contrast to an SCC, DCCs allow for a more general camera configuration with the ability to actively select image viewpoints. This dynamic viewpoint manipulation enhances the tracking ability of interesting and informative features, which can lead to improved localization estimates. The drawback of active DCC viewpoint selection, however, is that the time-varying camera extrinsics must be resolved with sufficient accuracy to perform visual odometry or SLAM without negatively impacting estimation performance.

The authors’ previous work outlines the calibration of time-varying extrinsic parameters for various DCC configurations, such as one static and one actuated camera as well as two actuated cameras [5]. The DCC calibration was also extended to determine optimal gimbal configurations which locally minimize parameter uncertainty using next-best-view [6]. Although the proposed approaches effectively perform DCC calibration, both methods rely on having encoder feedback to extract the position of the gimbal motor, and also require knowledge of the joint angles to determine the kinematic chain between the static and actuated cameras.

In practice, it is not always feasible to have access to the joint angle information of the actuated mechanism, and in some cases, the integration of an encoder may not be desirable due to weight or cost limitations. Many off-the-shelf gimbals found on multirotor Unmanned Aerial Vehicles (UAVs) either do not provide joint angle information, or provide imprecise joint angle measurements which cannot be used to obtain accurate DCC calibration. Manually adding encoders is not always possible, as most commercial gimbals come as integrated units with custom hardware and software which cannot be easily modified. The lack of joint angle feedback also introduces difficulties while performing VIO or SLAM algorithms, as accurate joint angle information is beneficial to resolving the time-varying extrinsics during robot motion.

In this work, we present two main contributions. First, we develop an encoderless DCC calibration approach which eliminates the requirement of joint angle measurements from the actuated mechanism. Our approach estimates the DCC calibration parameters in conjunction with the joint angles of the actuated mechanism for each configuration of the collected measurement set. By eliminating the need for joint angle information, this calibration can be performed on any actuated mechanism, allowing for visual SLAM algorithms to be run on any off-the-shelf DCC. Second, we extend the Visual Inertial Odometry (VIO) algorithm developed in [7] and incorporate the calibrated DCC parameters in order to simultaneously estimate the gimbal joint angles and the VIO localization state. We obtain experimental results using a gimbal based DCC mounted on a custom quadrotor platform, and evaluate the relative performance of SCCs and DCCs in a large outdoor environment with a variety of static and gimballed camera configurations. We show that our overall pose estimate using a DCC is comparable to those obtained using an SCC configuration without significant change in performance.

Ii Related Works

DCC calibration requires the estimation of parameters which define the extrinsic transformation between a static camera and a camera mounted to an actuated mechanism, such as a robot manipulator or gimbal. Since DCC calibration involves characterizing the kinematic parameters of the actuated mechanism, it is closely related to other calibration problems such as hand-in-eye [8, 9], hand-to-eye [10], head-to-eye [11] and kinematic calibration [12]. These methods, however, do not solve the problem of a camera to camera calibration through an actuated mechanism, which is essential to resolve measurements from multiple cameras when performing visual odometry and SLAM. The calibration of the time-varying extrinsics for a DCC was achieved by Das and Waslander [5]; this approach uses the Denavit-Hartenberg (DH) parameters [13] to model the forward kinematics of the actuated link as a serial manipulator, and then estimates the calibration parameters using overlapping viewpoints of a fiducial target. The work in [5] was later extended to perform fully automatic viewpoint selection and calibration using a locally optimal next-best-view approach [6]. Although the existing DCC approaches provide good calibration results, the proposed methods require accurate measurements of the mechanism’s joint angles. In many practical cases, accurate joint angle measurements are not accessible, thus an encoderless joint angle estimation approach is required.

Existing encoderless approaches found in literature mainly attempt to perform joint motor control without the use of velocity and position sensors mounted on the motor shaft. Kawamura et al. [14] propose augmenting the motor control signal of a manipulator joint with a high frequency component, then measuring the changes in the motor’s back-EMF. This approach estimates the joint angle positions through the use of a known dynamic model for the motor and external measurements of the end-effector position. Baik et al. [15]

suggest a method to perform motor angle estimation of a Switched Reluctance Motor (SRM) using a neural network. Using a temporary external reference system, the system is trained to estimate the motor angle using the measured motor flux and current as inputs to the network. Since a typical off-the-shelf gimbal system does not provide measurements of the motor back-EMF and motor flux, these existing approaches are not suitable to apply to our joint angle estimation problem. The work of Kormushev et al. 

[16] demonstrates a learning algorithm capable of positioning the end-effector of a manipulator without the knowledge of joint angles or the robot’s kinematic parameters. By generating random control signals and observing the end-effector, they show that the local kinodynamics of the manipulator can be approximated and the required control signal for end effector positioning can be estimated. Although their approach is able to perform accurate positioning of the end-effector without joint angle measurements, the proposed learning algorithm requires occasional exploratory motions of the end-effector in order to calculate the local kinodynamics. Application of the learning algorithm to our gimbal joint angle estimation problem is impractical, as the required exploratory motions would interrupt the calibration or localization process.

Joint angle estimation can also be thought of as an online calibration problem; once the DCC is calibrated, the mechanism’s joint angles still need to be estimated simultaneously with the vehicle’s localization state as the mechanism changes configurations. Existing online calibration approaches generally augment the state estimate with calibration parameters in order to resolve or refine extrinsic sensor relationships. For example, the camera to IMU extrinsic calibration [17, 18, 19] and IMU to body frame calibration [20], can be successfully refined during online operation, provided the IMU experiences sufficient excitation. Kümmerle et al. [21] present an approach that simultaneously performs calibration, mapping, and localization using a graph-based nonlinear least squares framework. Although accurate calibration performance was achieved, the mapping formulation includes information from a 3D laser scanner which greatly simplifies scale recovery for the solution. For MCCs performing online calibration, the camera extrinsics are only known up to scale, and the true scale cannot be resolved without additional knowledge of the environment or motion of the camera cluster [22]. The work most related to ours is by Warren et al. [23], who present an online method to refine the extrinsic calibration of a stereo camera. In their approach, the scale of the solution is maintained by assuming that the baseline distance between the stereo pair will never vary significantly from the original or any subsequent calibration. Conversely, in our online joint angle estimation problem, we do not assume that the extrinsic calibration will be a small perturbation as the DCC may assume any valid configuration within the mechanism’s configuration space.

Active vision algorithms [24] are a primary application of DCCs, as active approaches perform viewpoint manipulation in order to extract useful information from the environment. Existing active vision approaches either use a monocular configuration or perform viewpoint manipulation of a complete SCC; these approaches do not estimate a time varying extrinsic calibration between cameras [25, 26, 27, 3]. Gimballed cameras, which are typically found on UAVs for image stabilization, are strong candidates for active vision tasks. Recently, Playle [26] developed an active viewpoint selection policy for a gimballed camera to improve the localization accuracy of a visual SLAM method. Playle’s approach, however, also used a monocular camera configuration and therefore did not require a dynamic camera calibration. Our proposed approach to solve DCC calibration and estimate the time-varying camera extrinsic relationship will allow for viewpoint manipulation algorithms to be applied to any dynamic multi-camera cluster by removing the limitation of fixed camera extrinsic relationships.

Iii Background

General Rigid Body Transformation: Let a 3D point in coordinate frame be denoted as . We express a rigid body transformation from frame to as , where , and

is the parameter vector used to construct the transformation. The first three components

represent 3-2-1 Euler angle rotations, while represent translation values along the respective axes. Although this work uses Euler angles, the rotations can be represented using other conventions, such as quaternions or rotation matrices.

Image Projections of 3D Points: The projection function , defined as , maps a point in camera frame to a pixel location on the 2D image plane. Here and are the pixel coordinates of the projected point along the and dimensions respectively.

Denavit-Hartenberg Parameterization: We use the Denavit-Hartenberg (DH) convention to assign coordinate frames to the links of the actuated mechanism, which is modelled as a serial manipulator with rotational joints. The homogeneous rigid body transformation from one frame to another, to , can be described by the DH parameters , where and . We distinguish between and the rest of the DH parameters by defining . For a detailed summary of the DH convention, the reader is referred to [13].

Iv Problem Formulation

In this section, we present the calibration of a dynamic multi-camera cluster with one static camera, , and one dynamic camera, , mounted to an actuated mechanism with L joints. We use a static fiducial marker of known size and assign to it a coordinate frame . We first summarize the authors’ previous DCC calibration approach [5] which incorporates encoder measurements, and then describe our proposed method which performs the calibration of the DCC without the use of encoder feedback. Finally, we illustrate how a VIO algorithm can be adapted to simultaneously perform online estimation of the unknown mechanism joint angles and the VIO localization state.

Iv-a DCC Calibration With Encoder Feedback

The aim of the calibration process is to determine the rigid body transformation from the static camera frame, , to the dynamic camera frame, , where is the set of estimated kinematic parameters used to build the rigid body transform and , defined as , is the set of measured parameters available from either known inputs to the mechanism, or measured encoder feedback. For the calibration, the transformation between cameras has the form , where defines the transformation from the static camera to the mechanism base frame, defines the transformation from the base frame of the mechanism to the end effector frame, and defines the transformation from the end effector frame to the dynamic camera frame. Note that is a chain of transforms through the mechanism’s links computed using its forward kinematics, and is a function of its DH parameters and control inputs. A DCC consisting of a 2-DOF gimbal is depicted in Fig. 1.

Fig. 1: Frame diagram of a 2-DOF gimbal based DCC. Frames , , , represent the static camera, dynamic camera, mechanism base, and mechanism end-effector frames respectively. An IMU is mounted to the back of the dynamic camera which is used for image stabilization of the gimbal and for estimating approximate joint angles to initialize the encoderless calibration.

For each instance where both the static and dynamic cameras capture measurements from the fiducial target, the pose of each camera with respect to the marker frame, , , is determined by solving the Perspective-n-Point (PnP) problem [28]. For an L joint mechanism, we define the th measurement set as , where , are the set of corresponding marker point positions defined in the static and dynamic camera frames respectively, and are easily computed by passing the known target points through the target to camera transformation . The set of pixel measurements for the target points, as observed by the static and dynamic cameras, are denoted by and , respectively, and is the set of known joint angles for the mechanism at snapshot .

Using the measurement set and the transformation between camera frames, we can now define the reprojection error between the measured marker point in the static camera frame and the corresponding measured point in the dynamic camera frame as


where is the measurement of point , observed in the dynamic camera, and is the 3D position of point j as observed from the static camera. Since both the actuated and static camera observe the same marker at each snapshot, we can similarly compute the error for points observed in the actuated frame and projected into the static frame as


where is the measurement of point observed in the static camera, and is the 3D position of point j as observed from the dynamic camera. The total squared reprojection error as a function of the estimation parameters, over all of the collected measurement sets, , is defined as


Finally, an unconstrained optimization of (3) is performed in order to find the optimal calibration parameters, , which minimize the total reprojection error over the set of collected measurements,


Note that in (4), the kinematic parameter vector, , consists of the parameters required to define the transformation from the static camera frame to the base frame of the manipulator, the DH parameters of the actuated mechanism, and finally the parameters corresponding to the transformation from the end effector frame to the moving camera frame. The calibration process can also be formulated using a constrained optimization technique, and can be extended to perform a DCC calibration between any combination of static and dynamic camera pairs [5].

Iv-B DCC Calibration Without Encoder Feedback

In order to calibrate the DCC without the use of encoder feedback, the angles are added to the optimization as part of the estimated parameters. As a result, the size of the estimation parameters increases by with each new measurement. In addition to estimating the kinematic parameters, , we now simultaneously estimate the joint angles for each measurement configuration. We denote the estimated joint angles for the measurement set as . For the measurement set, we can write the full transformation from the static to the dynamic camera as


The estimated joint angles for the mechanism, are required in order to determine the full transformation between cameras. Given a total of measurement sets, let us define the complete set of estimated joint angles as . The total squared reprojection error over the entire measurement set is then calculated as


An unconstrained optimization is then performed on (6) to determine the optimal kinematic calibration parameters, , and optimal joint angle values, , which minimize the total reprojection error,


As a result of optimizing over both the kinematic parameters and the joint angles from each of the measurement set configurations, a DCC calibration with joints will have estimation parameters as opposed to estimation parameters for the calibration case with known encoder angles [5]. In order to prevent (7) from converging to local minima, sufficiently accurate initialization values for the estimated kinematic and joint angle parameters are required. In practice, we have found that the kinematic parameters can be sufficiently initialized using approximate, hand-measured values, and the joint angles can be sufficiently initialized using approximate angles obtained from an IMU, as demonstrated in Section III. Finally, it should be noted that while the joint angle values for the entire measurement set are estimated during the calibration of the DCC, the optimized joint angle values are not explicitly used afterwards when performing VIO or SLAM, and must be computed online as part of the VIO localization process.

Iv-C Visual Inertial Odometry using a DCC

In order to perform VIO using a DCC, the unknown joint angles of the mechanism need to be estimated as the dynamic cluster is reconfigured. To that end, we extended OKVIS, the VIO implementation in [7], to accommodate a DCC. OKVIS is an indirect, nonlinear optimization-based algorithm which is capable of online estimation of time-varying camera extrinsics by minimizing reprojection error. However, the original implementation models the extrinsics between cameras as a general transformation, and considers only small changes modeled by a Gaussian process, such as thermal expansion. Our extension incorporates the gimballed extrinsics model of (5), and is capable of estimating joint angles with quick and unmodelled mechanism motion.

We now briefly explain the approach presented in [7]. Let us define the IMU and world frames as and , respectively. The VIO state vector for the robot, , is estimated at every time-step of the algorithm, and is given by


where denotes the position vector of the IMU frame of the cluster with respect to the world frame, is the quaternion which defines the rotation between the IMU and world frame, is the velocity of the IMU expressed in the IMU frame, and and are the bias states of the IMU’s gyroscope and accelerometer, respectively. Let be the rigid body transformation matrix composed using and , and be a 3D landmark point, estimated through keyframe triangulation. Then, the point reprojection error term for the cluster camera is defined as


where is the pixel measurement in camera of landmark , and is the extrinsic calibration between the IMU sensor and camera . The reprojection error term from (9) is combined with additional IMU and keyframe error terms, in order to optimize both the robot and landmark states.

In order to perform estimation of the mechanism joint angles, we augment the localization state vector with joint angles to be estimated at time


where are the joint angles of the mechanism to be optimized. When using a DCC, the extrinsics between the dynamic camera and IMU, , can be decomposed as


where is the transformation from IMU to static camera, which can be computed offline [29]. Using (11), the reprojection error for the dynamic camera can be written as


Our extended implementation of OKVIS uses the modified reprojection error term from (12), along with the original IMU and keyframe error terms from the original implementation to estimate the augmented robot state vector , which includes the mechanism joint angles. To perform the optimization, we analytically compute the Jacobian


which describes how the modified reprojection error from Equation 12 is affected by small changes in the joint angles, .

V Experimental Validation

To validate our proposed approach, we perform two sets of experiments. In the first set, we demonstrate the successful encoderless calibration of a 2-DOF gimbal both in simulation and on physical hardware. In the second set of experiments, we perform visual inertial odometry using the calibrated gimbal, and show that our gimballed DCC VIO configuration performs comparably to a standard SCC setup.

V-a Encoderless Gimbal DCC Calibration

Simulation: The encoderless calibration approach outlined in Section IV-B

is first validated in simulation. We generate a DCC consisting of a 2-DOF gimbal and collect synthetic measurements of a 9x7 chessboard fiducial target. Zero-mean error with 0.4 pixel standard deviation is added to the pixel measurements to simulate real-world image noise. To perform the calibration, we collect a calibration set of 81 independent image pairs from a wide range of gimbal configurations. In order to ensure sufficient configuration excitation for the calibration, we collect measurement sets using approximate uniform sampling of the 2-DOF joint angle space. An approach similar to 

[6] would optimize the required number of images to achieve adequate coverage of the configuration space. Prior to optimization, we initialize the kinematic and joint angle estimates with noisy measurements of the true value; this error is characterized as zero-mean noise with a standard deviation of 0.03 m and 10 degrees for the translation and rotation parameters, respectively.

In order to verify the calibration, we independently collect a validation set of 81 image pairs where the measurements of the fiducial target are taken at random angles within the 2-DOF joint angle space. Once the calibration is completed using the calibration set, we verify the results by performing a process similar to the description in Section IV-B, except the kinematic parameters are held static at their calibrated values and only the joint angles are estimated. Using the estimated joint angle values, the reprojection error over the entire validation set is then computed. Table I presents the average reprojection error for the calibration and validation sets. Since the error for both cases is low, at approximately 0.39 pixels, it is evident that our encoderless calibration procedure is able to perform a high quality fitting of the kinematic and joint angle parameters to the image data.

For the simulation study, both the true kinematic parameters and true joint angle values for each measurement set configuration are known. Thus, we also evaluate the error between these estimated parameters and their true values. Table II presents the average estimation error for the two joints from the simulated 2-DOF gimbal, while Table III gives a summary of the average parameter error of the kinematic parameters. The errors are presented separately for the translation parameters of the calibration (the translation components from and the DH and values for each link), and the rotation parameters of the calibration (the rotation components from and the DH value for each link). For both the kinematic and joint angle parameters, the resultant low estimation error demonstrates the ability of our proposed approach to estimate the required parameters with high accuracy. For this simulated case, it is apparent that the estimated parameters are observable, however, a full observability and degeneracy analysis for the encoderless DCC calibration problem is left as an area of future work.

Dataset Calibration Validation
Number of images 81 81
Average reprojection error (pixels) 0.3858 0.3854
Standard deviation (pixels) 0.0183 0.0172
TABLE I: Reprojection error statistics of the simulated gimbal
Dataset Calibration Validation
Joint 1 average error (rad)
Joint 1 standard deviation (rad)
Joint 2 average error (rad)
Joint 2 standard deviation (rad)
TABLE II: Estimation error statistics of joint 1 and joint 2 (roll and pitch axes) of the simulated gimbal
Dataset Calibration
Translation Parameter Average Error (m)
Translation Parameter Error Standard Deviation (m)
Rotation Parameter Average Error (rad)
Rotation Parameter Error Standard Deviation (rad)
TABLE III: Translation and rotation parameter error statistics of the DCC calibration

Physical Gimbal: The proposed calibration approach is experimentally validated using a DCC consisting of a 2-DOF gimbal and two PointGrey Firefly MV cameras, which are software triggered at 15 fps and have a resolution of 640x480. The gimbal is controlled by an Alexmos SimpleBGC 32-bit gimbal motor controller, and the DCC is mounted onto a custom built quadrotor. The SCC and DCC configurations both have a baseline of approximately 10 cm. The 2-DOF gimbal, along with the labelled frames, is depicted in Fig. 1, and the quadrotor is depicted in Fig. 2.

Fig. 2: Custom quadrotor hardware with 2-DOF gimbal based DCC mounted on bottom. Frames , , denote the static camera, IMU, and GPS frames, respectively.

Encoderless calibration of the gimballed DCC is performed using the method outlined in Section IV-B. To perform calibration, a calibration set of 83 independent image pairs is collected. Similar to the simulation study, the gimbal configurations are sampled uniformly over the 2-DOF joint angle space. An AprilGrid is used as the fiducial target for calibration, as accurate detection of this target is more robust to large viewpoint changes and partial target observations in comparison to a chessboard [29]. For validation of the gimbal calibration, an independent verification set of 70 image pairs is collected, also using the AprilGrid fiducial target. For both the calibration and validation set, we ensure that there is overlap of the fiducial target between the static and gimbal camera. Initialization of the joint angle values are provided by the gimbal IMU that is used for camera stabilization. Due to the gimbal geometry, the estimated roll and pitch values reported by the gimbal IMU roughly correspond to the gimbal joint angle rotation. The results for the calibration and verification sets are summarized in Table IV.

Dataset Calibration Validation
Number of images 83 70
Average reprojection error (pixels) 1.5234 1.7933
Standard deviation (pixels) 0.8487 1.1934
TABLE IV: Reprojection error statistics of the physical gimbal

We see that the average reprojection error for the calibration set is approximately 1.5 pixels, which indicates a good quality calibration was achieved. The average error of the validation set is comparable to the result from the calibration set, at approximately 1.8 pixels, which corroborates the accuracy of the calibrated kinematic parameters. Note that this reprojection error is highly dependent on the quality of the intrinsic calibration, which can be reduced through the use of higher quality lenses.

V-B VIO using Gimbal DCC




Fig. 3: Estimated trajectories with (a) Dynamic Camera Cluster, (b) Monocular, and (c) Static Camera Cluster configurations. For all flight scenarios, the quadrotor starts at (0,0) and then flies two rectangular loops.
Fig. 4: Example frames from the two datasets. fig:photo_static The static configuration, with one camera above the other. fig:photo_gimbal The dynamic configuration, with the gimbal pointed down.
Normalized translation
RMSE (%)
Normalized rotation
RMSE (rad/m)
TABLE V: Translation and rotation error of the three camera configurations, normalized by total distance travelled

To demonstrate our solution, we ran our extended OKVIS offline on a dataset collected using the quadrotor setup from Fig. 2. The vehicle flew in the rectangular loop depicted in Fig. 3, which is approximately 180 m in length. During the flight the gimbal DCC was pre-programmed to point towards features in the environment we deemed would benefit the VIO estimation. The effectiveness of gimbal viewpoint selection to improve pose estimation was not evaluated and is left as future work. We used Kalibr [29] to find the static transformation between the quadrotor IMU frame, , and the static camera frame, . The physical relationship between these frames is depicted in Fig. 2.

For validation, we compare three sets of results: (a) stereo VIO using the DCC shown in Fig. 1, (b) monocular VIO using only the static camera from the DCC flight test, and (c) stereo VIO using a separate dataset with static cameras. These two flights followed approximately the same trajectory, and sample images from the two datasets are presented in Fig. 4. Ground truth of the trajectory is collected using the DJI N3 Autopilot GPS, which has an accuracy of approximately 2 m standard deviation.

The three tested configurations all expectedly experience trajectory drift compared to the GPS ground truth solution. We hypothesize the drift observed could be due to experimental factors, such as the high altitude of the flown trajectory and the lack of IMU excitation. The quadrotor’s flight altitude of 10 m in conjunction with the small camera baseline results in inaccurate feature depth initialization and a high average feature distance, which in turn causes poor scale observability. In addition to this, the constant-velocity trajectory executed by the quadrotor inhibits IMU excitation, which could be another factor contributing to poor scale recovery. The relative performance of each configuration is consistent, as shown in Table V, which reports the RMSE of the trajectory normalized by the total distance flown.

The results suggest that the DCC result exhibits a slightly larger normalized translation error compared to the mono and SCC trials. This can be attributed to some of the required modifications to the OKVIS implementation. OKVIS includes a 3D-2D RANSAC step which selects landmark measurements based on their predicted motion, which relies on the camera extrinsics. In the case of the dynamic camera, however, the measurements filtered out by RANSAC are precisely those required to estimate the joint angles for the time-varying extrinsics. Therefore, we disabled the 3D-2D RANSAC step for the dynamic camera. A possible future refinement would be a two-stage approach: first optimizing without rejecting outliers to obtain the dynamic camera extrinsics, then re-optimizing with the updated extrinsics for an improved motion estimate. Despite the slightly larger error for the DCC trial, it is evident that all configurations performed comparably, which verifies that the integration of the DCC did not significantly change the localization performance of the algorithm.

Fig. 5 compares the estimated gimbal joint angles to the values obtained using encoders mounted on the gimbal for ground truth collection, and Table VI reports the RMSE of the estimated joint angles. We see that as the gimbal changes configuration, our extended VIO algorithm is able to accurately estimate the joint angles. It is important to state that no motion model or input from the gimbal IMU was used for the estimation, and only visual data from the camera images were used. A component of the errors reported in Table VI are due to a noticeable time lag in the joint angle estimation, which can be improved through hardware synchronization in the DCC.

RMSE (rad)
Roll angle
Pitch angle
TABLE VI: Roll and Pitch RMSE for the DCC configuration.
Fig. 5: Estimated gimbal joint angles compared to ground truth provided by the gimbal encoders.

Vi Conclusion

This work presents a method to perform encoderless calibration of a dynamic camera cluster. Our approach simultaneously estimates kinematic parameters of the DCC, as well as the joint angles of the mechanism for each measurement of a fiducial target. We demonstrate successful calibration of a 2-DOF gimbal DCC both in simulation and using physical hardware. The calibrated values are then used to perform VIO on a custom quadrotor, using an extended implementation of OKVIS which also performs online estimation of the gimbal joint angles. We demonstrate that the extended VIO is able to successfully estimate the joint angles, and that it performs comparably to a VIO solution using a standard static camera configuration. Future work will include testing on a wider range of actuated mechanisms, degeneracy analysis of both the encoderless calibration and online gimbal joint angle estimation, as well as incorporating the calibration into an active Visual SLAM framework.


  • [1] M. J. Tribou, A. Harmat, D. W. Wang, I. Sharf, and S. L. Waslander, “Multi-camera parallel tracking and mapping with non-overlapping fields of view,” The International Journal of Robotics Research, vol. 34, no. 12, pp. 1480–1500, 2015.
  • [2] L. Heng, G. H. Lee, and M. Pollefeys, “Self-calibration and visual slam with a multi-camera system on a micro aerial vehicle,” Autonomous Robots, vol. 39, no. 3, pp. 259–277, 2015.
  • [3] T. Manderson, F. Shkurti, and G. Dudek, “Texture-aware slam using stereo imagery and inertial information,” in Conference on Computer and Robot Vision (CRV), pp. 456–463, 2016.
  • [4] S. Frintrop and P. Jensfelt, “Attentional landmarks and active gaze control for visual slam,” IEEE Transactions on Robotics, vol. 24, no. 5, pp. 1054–1065, 2008.
  • [5] A. Das and S. L. Waslander, “Calibration of a dynamic camera cluster for multi-camera visual slam,” in IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS), pp. 4637–4642, 2016.
  • [6] J. Rebello, A. Das, and S. L. Waslander, “Autonomous active calibration of a dynamic camera cluster using next-best-view,” in IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS), 2017.
  • [7] S. Leutenegger, S. Lynen, M. Bosse, R. Siegwart, and P. Furgale, “Keyframe-based visual–inertial odometry using nonlinear optimization,” The International Journal of Robotics Research, vol. 34, no. 3, pp. 314–334, 2015.
  • [8] R. Horaud and F. Dornaika, “Hand-eye calibration,” The International Journal of Robotics Research, vol. 14, no. 3, pp. 195–210, 1995.
  • [9] S. Remy, M. Dhome, J.-M. Lavest, and N. Daucher, “Hand-eye calibration,” in IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS), vol. 2, pp. 1057–1065, 1997.
  • [10] C. Chen and Y. F. Zheng, “A new robotic hand/eye calibration method by active viewing of a checkerboard pattern,” in IEEE International Conference on Robotics and Automation (ICRA), pp. 770–775, 1993.
  • [11]

    S.-J. Kim, M.-H. Jeong, J.-J. Lee, J.-Y. Lee, K.-G. Kim, B.-J. You, and S.-R. Oh, “Robot head-eye calibration using the minimum variance method,” in

    IEEE International Conference on Robotics and Biomimetics (ROBIO), pp. 1446–1451, 2010.
  • [12] V. Pradeep, K. Konolige, and E. Berger, “Calibrating a multi-arm multi-sensor robot: A bundle adjustment approach,” in Experimental Robotics, pp. 211–225, Springer, 2014.
  • [13] R. S. Hartenberg and J. Denavit, Kinematic synthesis of linkages. McGraw-Hill, 1964.
  • [14] A. Kawamura, M. Tachibana, S. Yamate, and S. Kawamura, “Encoderless robot motion control using vision sensor and back electromotive force,” in IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS), pp. 1609–1615, 2014.
  • [15] W.-S. Baik, M.-H. Kim, N.-H. Kim, and D.-H. Kim, “Position sensorless control system of srm using neural network,” in IEEE 35th Annual Power Electronics Specialists Conference, vol. 5, pp. 3471–3475, 2004.
  • [16] P. Kormushev, Y. Demiris, and D. G. Caldwell, “Encoderless position control of a two-link robot manipulator,” in IEEE International Conference on Robotics and Automation (ICRA), pp. 943–949, 2015.
  • [17] M. Li and A. I. Mourikis, “3-d motion estimation and online temporal calibration for camera-imu systems,” in IEEE International Conference on Robotics and Automation (ICRA), pp. 5709–5716, 2013.
  • [18] C. Jia and B. L. Evans, “Online calibration and synchronization of cellphone camera and gyroscope,” in IEEE Global Conference on Signal and Information Processing (GlobalSIP), pp. 731–734, 2013.
  • [19] S. Weiss, M. W. Achtelik, S. Lynen, M. Chli, and R. Siegwart, “Real-time onboard visual-inertial state estimation and self-calibration of mavs in unknown environments,” in IEEE International Conference on Robotics and Automation (ICRA), pp. 957–964, 2012.
  • [20] V. Joukov, J. F.-S. Lin, and D. Kulic, “Generalized hebbian algorithm for wearable sensor rotation estimation,” in IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS), 2017.
  • [21] R. Kümmerle, G. Grisetti, and W. Burgard, “Simultaneous parameter calibration, localization, and mapping,” Advanced Robotics, vol. 26, no. 17, pp. 2021–2041, 2012.
  • [22] G. Carrera, A. Angeli, and A. J. Davison, “Slam-based automatic extrinsic calibration of a multi-camera rig,” in IEEE International Conference on Robotics and Automation (ICRA), pp. 2652–2659, 2011.
  • [23] M. Warren, D. McKinnon, and B. Upcroft, “Online calibration of stereo rigs for long-term autonomy,” in IEEE International Conference on Robotics and Automation (ICRA), pp. 3692–3698, 2013.
  • [24] R. Bajcsy, “Active perception,” Proceedings of the IEEE, vol. 76, no. 8, pp. 966–1005, 1988.
  • [25] C. S. Sharp, O. Shakernia, and S. S. Sastry, “A vision system for landing an unmanned aerial vehicle,” in IEEE International Conference on Robotics and Automation (ICRA), vol. 2, pp. 1720–1727, 2001.
  • [26] N. Playle, “Improving the performance of monocular visual simultaneous localisation and mapping through the use of a gimballed camera,” Master’s thesis, University of Toronto (Canada), 2015.
  • [27] A. Borowczyk, D.-T. Nguyen, A. Phu-Van Nguyen, D. Q. Nguyen, D. Saussié, and J. Le Ny, “Autonomous landing of a quadcopter on a high-speed ground vehicle,” Journal of Guidance, Control, and Dynamics, 2017.
  • [28] M. A. Fischler and R. C. Bolles, “Random sample consensus: a paradigm for model fitting with applications to image analysis and automated cartography,” Communications of the ACM, vol. 24, no. 6, pp. 381–395, 1981.
  • [29] P. Furgale, J. Rehder, and R. Siegwart, “Unified temporal and spatial calibration for multi-sensor systems,” in IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS), pp. 1280–1286, 2013.