Visual Servoing Platform
version 3.6.1 under development (2024-12-17)
|
This tutorial explains also how to implement a position-based visual-servoing with an UR robot equipped with an Intel Realsense camera. It follows Tutorial: IBVS with a robot from Universal Robots that explains also how to setup the robot.
An example of position-based visual servoing using a robot from Universal Robots equipped with a Realsense camera is available in servoUniversalRobotsPBVS.cpp.
apps/calibration/eMc.yaml
.Now enter in example/servo-universal-robots folder
and run servoUniversalRobotsPBVS
binary using --eMc
to locate the file containing the transformation. Other options are available. Using --help
show them:
$ cd example/servo-universal-robots $ ./servoUniversalRobotsPBVS --help ./servoUniversalRobotsPBVS [--ip <default 192.168.1.1>] [--tag_size <marker size in meter; default 0.12>] \ [--eMc <eMc extrinsic file>] [--quad_decimate <decimation; default 2>] \ [--adaptive_gain] [--plot] [--task_sequencing] [--no-convergence-threshold] \ [--verbose] [--help] [-h]
Run the binary activating the plot and using a constant gain:
$ ./servoUniversalRobotsPBVS --eMc ../../apps/calibration/ur_eMc.yaml --plot
Use the left mouse click to enable the robot controller, and the right click to quit the binary.
At this point the behaviour that you should observe is the following:
You can also activate an adaptive gain that will make the convergence faster:
$ ./servoUniversalRobotsPBVS --eMc ../../apps/calibration/ur_eMc.yaml --plot --adaptive_gain
You can also start the robot with a zero velocity at the beginning introducing task sequencing option:
$ ./servoUniversalRobotsPBVS --eMc ../../apps/calibration/ur_eMc.yaml --plot --task_sequencing
And finally you can activate the adaptive gain and task sequencing:
$ ./servoUniversalRobotsPBVS --eMc ../../apps/calibration/ur_eMc.yaml --plot --adaptive_gain --task_sequencing
To learn more about adaptive gain and task sequencing see Tutorial: How to boost your visual servo control law.