Can anyone explain Image based visual servoing for robotic arm through example?

I can understand Position based based visual servoing like this,


there is an object and estimating it 6D Pose relative to camera using feature points(ex. using algorithm like PnP) and give this Pose to controller directly for pick...


but what about Image based servoing?




  • $\begingroup$ Where did you see image based visual servoing for robotic arms referenced? $\endgroup$ – holmeski Apr 13 '19 at 13:12
  • $\begingroup$ i want to know the difference between visual servo and visual guide $\endgroup$ – user23482 Jul 24 '19 at 13:47

The problem in both cases is to move the robot tool to some pose relative to an object. Let's assume the camera is attached to the end of a robot arm (eye in hand case) so we will consider this a problem in moving the camera. The tool will always be at a fixed relative pose to the camera.

In PBVS we uses a geometric model of the object, plus known camera parameters, to estimate the pose of the object relative to the camera. If we know the desired pose of the object relative to the camera it is straightforward to compute the error in pose and then plan a robot motion to correct it.

In IBVS we do not use or need a geometric model of the object, but we do need to be able to find some features in the camera's image of the object. The features can be the coordinates of points, parameters of lines or ellipses, moments etc. Let's take the simple example of point features. The position of the points in the image depends, in a complex way, on the relative pose between the camera and the object, ie. if you move the camera the points on the object move in the image. IBVS requires that we know where the point features are in the camera image when the camera is at the desired pose -- the desired point features. If the camera is not at the desired pose then the point features will be at different places in the camera image. IBVS takes the currently observed point features and directly computes the desired velocity of the camera that will move the points to the desired location in the image, and implicitly drive the camera to the desired relative pose.

There are a ton of caveats and extra details, but this is the gist of the difference between PBVS and IBVS.

  • $\begingroup$ thank you for the answer. $\endgroup$ – user22120 Apr 14 '19 at 12:27
  • $\begingroup$ But Can I call this(detecting object pose by algorithm like SolvePnp and tell robot to pick at that pose) as visual servoing(PBVS)? or is it case of open loop robot control? I am confused. $\endgroup$ – user22120 Apr 14 '19 at 13:01
  • $\begingroup$ If you just estimate object pose, then move to that pose, it is not visual serving, that's look then move. Visual serving means you keep repeating the pose estimation with incremental motion toward the object. That way you can somewhat reduce the effect of errors as well as handle object motion. $\endgroup$ – Peter Corke Apr 15 '19 at 7:19
  • $\begingroup$ robotics.stackexchange.com/questions/18569/… $\endgroup$ – user22120 Apr 15 '19 at 7:32
  • $\begingroup$ i got confused because someone told me that it is visual servoing in my above question. but now i understand what am I doing is not visual servoing. it is just estimate pose and sent command to controller to pick at that pose. $\endgroup$ – user22120 Apr 15 '19 at 7:34

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.