Visual Servoing Platform
version 3.6.1 under development (2024-10-15)
|
Here you will find a list of third-parties libraries that could be installed to extend ViSP capabilities.
These are the optional computer vision 3rd-parties supported by ViSP.
We highly recommend to install OpenCV, one of the optional 3rd parties supported by ViSP core: Core module, io: I/O module, gui: Graphical user interface module, detection: Detection module, klt: Kanade Lucas tracker module, vision: Computer vision module and mbt: Model-based tracker module modules.
ViSP uses OpenCV in order to provide vpImage to cv::Mat image converters (see vpImageConvert class), an vpImage renderer (see vpDisplayOpenCV class), as well as a KLT keypoint tracker (see vpKltOpencv class), and keypoint point matching classes (vpKeyPoint class).
$ sudo apt-get install libopencv-dev
$ su -c "yum install opencv-devel"
$ brew install opencv
These are the optional 3rd-parties supported by ViSP for linear algebra operations.
Note that installing one of the following third-parties dedicated to linear algebra can speed up operations on matrices. See Which BLAS/LAPACK 3rd-party for basic operations section to identify section to identify the best 3rd-party for your application.
Installation instructions are provided in Tutorial: Basic linear algebra operations.
Installation instructions are provided in Tutorial: Basic linear algebra operations.
Installation instructions are provided in Tutorial: Basic linear algebra operations.
Installation instructions are provided in Tutorial: Basic linear algebra operations.
Installation instructions are provided in Tutorial: Basic linear algebra operations.
Eigen3 is used as an alternative to Blas/Lapack for linear algebra operations in ViSP.
$ sudo apt-get install libeigen3-dev
$ brew install eigen
These are the optional 3rd-parties supported by ViSP in io: I/O module for image I/O operations.
$ sudo apt-get install libjpeg-dev
$ su -c "yum install libjpeg-devel"
$ sudo apt-get install libpng-dev
$ su -c "yum install libpng-devel"
The following optional third-parties are used in robot: Robot module to enable the robot arms usage supported by ViSP.
ur_rtde C++ interface is an optional 3rd party that you can install to control Universal Robots thanks to vpRobotUniversalRobots class.
Installation instructions are given in Install ur_rtde 3rd party section.
There are 2 tutorials that explain how to control an Universal Robot with ViSP: Tutorial: IBVS with a robot from Universal Robots and Tutorial: PBVS with a robot from Universal Robots.
libfranka is the SDK that allows to control the Franka Emika Panda robot in its research configuration. Installing this third-party allows to control a Panda robot thanks to vpRobotFranka class.
Installation instructions are provided in Install Franka library section.
There are also 2 tutorials that may be useful to start with this robot in ViSP: Tutorial: IBVS with Panda 7-dof robot from Franka Emika and Tutorial: PBVS with Panda 7-dof robot from Franka Emika. If you want to simulate this robot using ViSP and ROS there is also this other tutorial: Tutorial: FrankaSim a Panda 7-dof robot from Franka Emika simulator.
All the Kinova assistive robotic arms are supported by ViSP using vpRobotKinova, an interface over Kinova Jaco Gen2 SDK that allows to control Gen2 4, 6 and 7 DoF arm.
Installation instructions are provided for Ubuntu and Windows.
All the FLIR Pan Tilt Units are supported by ViSP using vpRobotFlirPtu class, an interface over FLIR PTU SDK.
Installation instructions are provided in Install FLIR PTU SDK section.
The Tutorial: Visual servoing with FLIR Pan Tilt Unit could be also useful.
The Parrot Bebop2 drone is supported by ViSP using vpRobotBebop2, an interface over Parrot ARDroneSDK3.
Installation instructions are provided On Ubuntu and On Mac OSX.
The Tutorial: Visual-servoing with Parrot Bebop 2 drone could be also useful.
Aria is the third-party that allows to control a Pioneer P3DX through vpRobotPioneer class.
$ sudo apt-get install libaria-dev
The MavLink protocol is supported by ViSP to communicate with drones or small mobile robots equipped with a Pixhawk. To this end you need to install MavSDK 3rd party library.
Installation instructions are provided in Software section.
The Tutorial: Image-based visual-servoing on a drone equipped with a Pixhawk could be also useful.
These are the optional 3rd-parties supported by ViSP in sensor: Sensor module to interface F/T devices.
If you have an ATI F/T sensor you can use vpForceTorqueAtiSensor class to get access to the measurements. This wrapper uses Comedi 3rd party.
$ sudo apt-get install libcomedi-dev
$ su -c "yum install comedilib-devel"
These are the optional 3rd-parties supported by ViSP in sensor: Sensor module to interface depth cameras.
All Intel Realsense depth camera devices are supported in ViSP thanks to vpRealSense2 class, a wrapper over librealsense.
All Occipital devices are supported in ViSP thanks to vpOccipitalStructure class, a wrapper over Occipital Structure SDK.
If you have a Microsoft Kinect 1, you can use vpKinect class to get data. This class requires libfreenect
3rd party.
$ sudo apt-get install libfreenect-dev $ sudo adduser $USER video
$ brew install libfreenect
These are the optional 3rd-parties supported by ViSP in sensor: Sensor module to interface RGB cameras.
Industrial cameras from IDS are also supported in ViSP thanks to vpUeyeGrabber class, a wrapper over uEye SDK.
Industrial cameras from Basler are also supported in ViSP thanks to vpPylonGrabber class, a wrapper over Pylon SDK.
Industrial cameras from FLIR are supported in ViSP thanks to vpFlyCaptureGrabber class, a wrapper over FlyCapture SDK.
Generic firewire 1394 cameras are supported in ViSP using vp1394TwoGrabber class after installing libdc1394
3rd party.
$ sudo apt-get install libdc1394-dev
$ sudo apt-get install libdc1394-22-dev
Cameras compatible with Video 4 Linux (webcam, laptop embedded camera) are supported in ViSP using vpV4l2Grabber class after installing libv4l 3rd party
$ sudo apt-get install libv4l-dev
If you have the Qualisys Motion Capture System you can stream data using vpMocapQualisys class, a wrapper over qualisys_cpp_sdk.
If you have rather the Vicon Motion Capture System you can stream data using vpMocapVicon class, a wrapper over Vicon Datastream SDK.
These are the optional 3rd-parties supported by ViSP that can bring helpful tools.
Since ViSP 3.6.0 we introduced JSON serialization capabilities that may be helpful to load and save parameters from a YAML file.
To this end, JSON for modern C++ is supported by ViSP and can be used to load and save JSON representations of ViSP objects.
Thus installing this 3rd-party allows serialization of vpMbGenericTracker, vpCameraParameters, vpPoseVector, vpHomogeneousMatrix, and vpPolygon3D objects to load/save internal data or settings from/to JSON files.
$ sudo apt-get install nlohmann-json3-dev
$ sudo dnf install nlohmann-json-devel
$ sudo yum install json-devel
$ brew install nlohmann-json
Windows installation
To install JSON on windows, follow JSON 3rd party installation instructions.
Installation from source
If the package is not available for your distribution, you can install JSON from source:
$ cd $VISP_WS/3rdparty $ git clone https://github.com/nlohmann/json.git $ cd json && mkdir build && cd build $ cmake .. $ make -j$(nproc) && sudo make install
Point Cloud Library can optionnally be installed to extend vpRealSense2 capabilities to acquire a point cloud. It could be also used to consider a point cloud as depth feature in the generic model-based tracker when using vpMbGenericTracker class. If you don't have an Intel Realsense Depth camera (SR300 or D400 series) or if you are not interested in model-based tracking using depth as feature, installing PCL is not recommended.
$ sudo apt-get install libpcl-dev
$ sudo dnf install pcl-devel
$ brew install pclOn MacOS, if ViSP is not able to detect PCL, follow instructions described in Unable to build with pcl 1.12.1 known issue.
Windows installation
To install PCL on windows, follow PCL 3rd party installation instructions.