visp_ros
is an extension of ViSP library developed by Inria Rainbow team. While ViSP is independent to ROS, in visp_ros
we benefit from ROS features.
visp_ros
is compatible with ROS kinetic, melodic and noetic.
visp_ros
contains a library:
visp_ros
contains also a set of ROS nodes that allow to control specific hardware such as for the moment:
visp_ros
contains also FrankaSim a simulator for a Franka Panda robot using CoppeliaSim. The simulation is a physical simulation with a dynamic model that has been accurately identified from a real Franka robot. paper.
If you are using this simulator we would appreciate that you cite this paper:
Either you can install dependencies from existing packages, either from source.
Install dependencies from packages
Install ros-<distro>-visp
and ros-<distro>-vision_visp
packages that match your ros2 distribution (humble, rolling), as for example:
$ sudo apt-get install ros-humble-visp ros-humble-vision_visp
Note: It may occur that vision_visp
package is not available for your ros2 distro.
Once done, or if the packages are not existing jump to section 1.2.
Install dependencies from source
If you want to use the nodes that allow to control real robots such as Biclops PT head, Viper 650, Viper 850, Afma4, Afma6 or Franka robots, you need to build ViSP from source and install ViSP in /opt/ros/<distro>
in order to overwrite any version that was already installed from packages. There are a couple of tutorials that may help. Below we recall the main instructions
Install first ViSP required dependencies: OpenCV, X11...
$ sudo apt-get install libopencv-dev libx11-dev liblapack-dev libeigen3-dev libv4l-dev \
libzbar-dev libpthread-stubs0-dev libdc1394-dev nlohmann-json3-dev
If you want to simulate Panda robot using FrankaSim as explained in this tutorial, install also Orocos-kdl and PCL
$ sudo apt-get install liborocos-kdl-dev libpcl-dev
If you want to control a real Panda robot equipped with a Realsense camera as explained in this tutorial, you need to follow this tutorial to install libfranka and librealsense
If you want to control a Parrot bebop2 drone follow this tutorial that explain which are the required dependencies
Then clone, build and install ViSP
$ echo "export VISP_WS=$HOME/visp-ws" >> ~/.bashrc
$ source ~/.bashrc
$ mkdir -p $VISP_WS
$ git clone https://github.com/lagadic/visp.git
$ mkdir visp-build; cd visp-build
$ cmake -DCMAKE_INSTALL_PREFIX=/opt/ros/$ROS_DISTRO ../visp
$ make -j4; sudo make install
Create your ros2 workspace and get vision_visp
meta package that contains visp-bridge
package that is a visp_ros
package dependency:
$ mkdir -p $HOME/colcon_ws/src
$ cd $HOME/colcon_ws/src
$ source /opt/ros/<version>/setup.bash
$ git clone https://github.com/lagadic/vision_visp.git -b rolling
Get visp_ros
package:
$ cd $HOME/colcon_ws/src
$ git clone https://github.com/lagadic/visp_ros.git
To build visp_ros
package run:
$ cd $HOME/colcon_ws
$ colcon build --symlink-install --cmake-args -DVISP_DIR=$VISP_WS/visp-build -DCMAKE_BUILD_TYPE=Release