Just trying out visual servoing - without using any third part visual servoing pkg - creating my own...
Working branch: plug_pick_insert_bt
The repository depends on Fanuc ROS2 Driver package for read robot control.
The implementation of this visual servoing packages was done using the reference from the following papers:
-
Visual servo control, Part I: Basic approaches: Link
-
Other visual servoing papers can be found here: Inria - ViSP
-
Config: Contains calibrated transforms for camera (intrinsic and extrinsic).
Here are some resource to perform calibration:
-
Scripts: Contains ROS2 vision nodes for image acquisition and processing for different objects like Aruco, Extension Box, Plug Holder. It also contains some other testing py files.
Simple Object Pose using YOLO and PnP can be found here: ObjectPose-simple
-
visual_servoing_pkg: Contains ROS2 visual servoing nodes for different approachs like IBVS, and PBVS. The servoing node can be found for different objects like aruco, n-points, and extension box.
-
vs_bt: Contains Py-Trees implemenation for visual servoing + pick and place task sequence. It contains difference behaviours like aruco servoing, socket servoing, insertion subtree, and picking substree.
- main_tree.py has the logic to connect different behaviours to form tree to perform sequential execution.
- visualServoing_BT.py has the background logic to perform high frequency visual servoing. This is a main ROS2 node that communicates with behaviours in the py-trees and commands the real robotic arm.
