# Visual servoing

Visual servoing, also known as vision-based robot control and abbreviated VS, is a technique which uses feedback information extracted from a vision sensor (visual feedback) to control the motion of a robot. One of the earliest papers that talks about visual servoing was from the SRI International Labs in 1979.

## Visual servoing taxonomy

There are two fundamental configurations of the robot end-effector (hand) and the camera:
* Eye-in-hand, or end-point open-loop control, where the camera is attached to the moving hand and observing the relative position of the target.
* Eye-to-hand, or end-point closed-loop control, where the camera is fixed in the world and observing the target and the motion of the hand.
Visual Servoing control techniques are broadly classified into the following types:
* Image-based (IBVS)
* Position/pose-based (PBVS)
* Hybrid approach
IBVS was proposed by Weiss and Sanderson. The control law is based on the error between current and desired features on the image plane, and does not involve any estimate of the pose of the target. The features may be the coordinates of visual features, lines or moments of regions. IBVS has difficulties with motions very large rotations, which has come to be called camera retreat.
PBVS is a model-based technique (with a single camera). This is because the pose of the object of interest is estimated with respect to the camera and then a command is issued to the robot controller, which in turn controls the robot. In this case the image features are extracted as well, but are additionally used to estimate 3D information (pose of the object in Cartesian space), hence it is servoing in 3D.
Hybrid approaches use some combination of the 2D and 3D servoing. There have been a few different approaches to hybrid servoing
* 2-1/2-D Servoing
* Motion partition-based
* Partitioned DOF Based

## Survey

The following description of the prior work is divided into 3 parts
* Survey of existing visual servoing methods.
* Various features used and their impacts on visual servoing.
* Error and stability analysis of visual servoing schemes.

### Survey of existing visual servoing methods

Visual servo systems, also called servoing, have been around since the early 1980s , although the term visual servo itself was only coined in 1987. Visual Servoing is, in essence, a method for robot control where the sensor used is a camera (visual sensor). Servoing consists primarily of two techniques, one involves using information from the image to directly control the degrees of freedom (DOF) of the robot, thus referred to as Image Based Visual Servoing (IBVS). While the other involves the geometric interpretation of the information extracted from the camera, such as estimating the pose of the target and parameters of the camera (assuming some basic model of the target is known). Other servoing classifications exist based on the variations in each component of a servoing system , e.g. the location of the camera, the two kinds are eye-in-hand and hand–eye configurations. Based on the control loop, the two kinds are end-point-open-loop and end-point-closed-loop. Based on whether the control is applied to the joints (or DOF) directly or as a position command to a robot controller the two types are direct servoing and dynamic look-and-move. Being one of the earliest works the authors proposed a hierarchical visual servo scheme applied to image-based servoing. The technique relies on the assumption that a good set of features can be extracted from the object of interest (e.g. edges, corners and centroids) and used as a partial model along with global models of the scene and robot. The control strategy is applied to a simulation of a two and three DOF robot arm.
Feddema et al. introduced the idea of generating task trajectory with respect to the feature velocity. This is to ensure that the sensors are not rendered ineffective (stopping the feedback) for any the robot motions. The authors assume that the objects are known a priori (e.g. CAD model) and all the features can be extracted from the object. The work by Espiau et al. discusses some of the basic questions in visual servoing. The discussions concentrate on modeling of the interaction matrix, camera, visual features (points, lines, etc..). In an adaptive servoing system was proposed with a look-and-move servoing architecture. The method used optical flow along with SSD to provide a confidence metric and a stochastic controller with Kalman filtering for the control scheme. The system assumes (in the examples) that the plane of the camera and the plane of the features are parallel., discusses an approach of velocity control using the Jacobian relationship s˙ = Jv˙ . In addition the author uses Kalman filtering, assuming that the extracted position of the target have inherent errors (sensor errors). A model of the target velocity is developed and used as a feed-forward input in the control loop. Also, mentions the importance of looking into kinematic discrepancy, dynamic effects, repeatability, settling time oscillations and lag in response.
Corke poses a set of very critical questions on visual servoing and tries to elaborate on their implications. The paper primarily focuses the dynamics of visual servoing. The author tries to address problems like lag and stability, while also talking about feed-forward paths in the control loop. The paper also, tries to seek justification for trajectory generation, methodology of axis control and development of performance metrics.
Chaumette in provides good insight into the two major problems with IBVS. One, servoing to a local minima and second, reaching a Jacobian singularity. The author show that image points alone do not make good features due to the occurrence of singularities. The paper continues, by discussing the possible additional checks to prevent singularities namely, condition numbers of J_s and Jˆ+_s, to check the null space of ˆ J_s and J^T_s . One main point that the author highlights is the relation between local minima and unrealizable image feature motions.
Over the years many hybrid techniques have been developed. These involve computing partial/complete pose from Epipolar Geometry using multiple views or multiple cameras. The values are obtained by direct estimation or through a learning or a statistical scheme. While others have used a switching approach that changes between image-based and position-based on a Lyapnov function. The early hybrid techniques that used a combination of image-based and pose-based (2D and 3D information) approaches for servoing required either a full or partial model of the object in order to extract the pose information and used a variety of techniques to extract the motion information from the image. used an affine motion model from the image motion in addition to a rough polyhedral CAD model to extract the object pose with respect to the camera to be able to servo onto the object (on the lines of PBVS).
2-1/2-D visual servoing developed by Malis et al. is a well known technique that breaks down the information required for servoing into an organized fashion which decouples rotations and translations. The papers assume that the desired pose is known a priori. The rotational information is obtained from partial pose estimation, a homography, (essentially 3D information) giving an axis of rotation and the angle (by computing the eigenvalues and eigenvectors of the homography). The translational information is obtained from the image directly by tracking a set of feature points. The only conditions being that the feature points being tracked never leave the field of view and that a depth estimate be predetermined by some off-line technique. 2-1/2-D servoing has been shown to be more stable than the techniques that preceded it. Another interesting observation with this formulation is that the authors claim that the visual Jacobian will have no singularities during the motions. The hybrid technique developed by Corke and Hutchinson, popularly called portioned approach partitions the visual (or image) Jacobian into motions (both rotations and translations) relating X and Y axes and motions related to the Z axis. outlines the technique, to break out columns of the visual Jacobian that correspond to the Z axis translation and rotation (namely, the third and sixth columns). The partitioned approach is shown to handle the Chaumette Conundrum discussed in. This technique requires a good depth estimate in order to function properly. outlines a hybrid approach where the servoing task is split into two, namely main and secondary. The main task is keep the features of interest within the field of view. While the secondary task is to mark a fixation point and use it as a reference to bring the camera to the desired pose. The technique does need a depth estimate from an off-line procedure. The paper discusses two examples for which depth estimates are obtained from robot odometry and by assuming that all features are on a plane. The secondary task is achieved by using the notion of parallax. The features that are tracked are chosen by an initialization performed on the first frame, which are typically points. carries out a discussion on two aspects of visual servoing, feature modeling and model-based tracking. Primary assumption made is that the 3D model of the object is available. The authors highlights the notion that ideal features should be chosen such that the DOF of motion can be decoupled by linear relation. The authors also introduce an estimate of the target velocity into the interaction matrix to improve tracking performance. The results are compared to well known servoing techniques even when occlusions occur.

### Various features used and their impacts on visual servoing

This section discusses the work done in the field of visual servoing. We try to track the various techniques in the use of features. Most of the work has used image points as visual features. The formulation of the interaction matrix in assumes points in the image are used to represent the target. There has some body of work that deviates from the use of points and use feature regions, lines, image moments and moment invariants. In, the authors discuss an affine based tracking of image features. The image features are chosen based on a discrepancy measure, which is based on the deformation that the features undergo. The features used were texture patches. One of key points of the paper was that it highlighted the need to look at features for improving visual servoing. In the authors look into choice of image features (the same question was also discussed in in the context of tracking). The effect of the choice of image features on the control law is discussed with respect to just the depth axis. Authors consider the distance between feature points and the area of an object as features. These features are used in the control law with slightly different forms to highlight the effects on performance. It was noted that better performance was achieved when the servo error was proportional to the change in depth axis. provides one of the early discussions of the use of moments. The authors provide a new formulation of the interaction matrix using the velocity of the moments in the image, albeit complicated. Even though the moments are used, the moments are of the small change in the location of contour points with the use of Green’s theorem. The paper also tries to determine the set of features (on a plane) to for a 6 DOF robot. In discusses the use of image moments to formulate the visual Jacobian. This formulation allows for decoupling of the DOF based on type of moments chosen. The simple case of this formulation is notionally similar to the 2-1/2- D servoing. The time variation of the moments (m˙ij) are determined using the motion between two images and Greens Theorem. The relation between m˙ij and the velocity screw (v) is given as m˙_ij = L_m_ij v. This technique avoids camera calibration by assuming that the objects are planar and using a depth estimate. The technique works well in the planar case but tends to be complicated in the general case. The basic idea is based on the work in [4] Moment Invariants have been used in. The key idea being to find the feature vector that decouples all the DOF of motion. Some observations made were that centralized moments are invariant for 2D translations. A complicated polynomial form is developed for 2D rotations. The technique follows teaching-by-showing, hence requiring the values of desired depth and area of object (assuming that the plane of camera and object are parallel, and the object is planar). Other parts of the feature vector are invariants R3, R4. The authors claim that occlusions can be handled. and build on the work described in. The major differ- ence being that the authors use a technique similar to, where the task is broken into two (in the case where the features are not parallel to the cam- era plane). A virtual rotation is performed to bring the featured parallel to the camera plane. consolidates the work done by the authors on image moments.

### Error and stability analysis of visual servoing schemes

Espiau in showed from purely experimental work that image based visual servoing (IBVS) is robust to calibration errors. The author used a camera with no explicit calibration along with point matching and without pose estimation. The paper looks at the effect of errors and uncertainty on the terms in the interaction matrix from an experimental approach. The targets used were points and were assumed to be planar.
A similar study was done in where the authors carry out experimental evaluation of a few uncalibrated visual servo systems that were popular in the 90’s. The major outcome was the experimental evidence of the effectiveness of visual servo control over conventional control methods. Kyrki et al. analyze servoing errors for position based and 2-1/2-D visual servoing. The technique involves determining the error in extracting image position and propagating it to pose estimation and servoing control. Points from the image are mapped to points in the world a priori to obtain a mapping (which is basically the homography, although not explicitly stated in the paper). This mapping is broken down to pure rotations and translations. Pose estimation is performed using standard technique from Computer Vision. Pixel errors are transformed to the pose. These are propagating to the controller. An observation from the analysis shows that errors in the image plane are proportional to the depth and error in the depth-axis is proportional to square of depth. Measurement errors in visual servoing have been looked into extensively. Most error functions relate to two aspects of visual servoing. One being steady state error (once servoed) and two on the stability of the control loop. Other servoing errors that have been of interest are those that arise from pose estimation and camera calibration. In, the authors extend the work done in by considering global stability in the presence of intrinsic and extrinsic calibration errors. provides an approach to bound the task function tracking error. In, the authors use teaching-by-showing visual servoing technique. Where the desired pose is known a priori and the robot is moved from a given pose. The main aim of the paper is to determine the upper bound on the positioning error due to image noise using a convex- optimization technique. provides a discussion on stability analysis with respect the uncertainty in depth estimates. The authors conclude the paper with the observation that for unknown target geometry a more accurate depth estimate is required in order to limit the error. Many of the visual servoing techniques implicitly assume that only one object is present in the image and the relevant feature for tracking along with the area of the object are available. Most techniques require either a partial pose estimate or a precise depth estimate of the current and desired pose.

## Software

* Matlab toolbox for visual servoing.
* Java-based visual servoing simulator.
* ViSP (ViSP states for "Visual Servoing Platform") is a modular software that allows fast development of visual servoing applications.