/visp_ros

A basket of generic ros nodes based on ViSP library

Primary LanguageC++GNU General Public License v2.0GPL-2.0

visp_ros

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:

  • with new C++ classes (vpROSGrabber, vpROSRobot, vpROSRobotPioneer, vpROSRobotFrankaCoppeliasim) that could be used like usual ViSP classes. They are based on ROS, but to use them there is no need to know so much about ROS;
  • that makes possible to use ROS in a transparent way, either by building classical binaries without catkin, either by building ROS nodes with catkin but without the need to write ROS specific code;
  • where creating a ROS node out of ViSP becomes simple.

visp_ros contains also a set of ROS nodes that allow to control specific hardware such as for the moment:

  • robots that can be controlled only in our lab due to proprietary drivers: Afma6 gantry robot, Biclops PT head, ADEPT Viper 650 and 850 robots described here;
  • other robots that anyone can buy and use with open-source drivers interfaced in ViSP: Pioneer mobile robot, Parrot bebop2 drone.

visp_ros contains also a tutorial that shows how to simulate a Franka Panda robot using CoppeliaSim. The simulation is a physical simulation with a model that has been accurately identified from a real Franka robot. If you are using this simulator we would appreciate that you cite this paper:

C. Gaz, M. Cognetti, A. Oliva, P. Robuffo Giordano, A. De Luca, Dynamic Identification of the Franka Emika Panda Robot With Retrieval of Feasible Parameters Using Penalty-Based Optimization. IEEE RA-L, 2019.

Installation

Prerequisities

Install ros-<version>-visp package that matches your ros distribution (kinetic, melodic, noetic), as for example:

$ sudo apt-get install ros-melodic-visp

If you want to use the nodes that allow to control real robots such as Biclops PT head, Viper 650, Viper 850, Afma4 or Afma6 robots, you need to build ViSP from source and install ViSP in /opt/ros/<version> in order to overwrite the version that was installed using the previous line.

$ cd visp-ws
$ git clone https://github.com/lagadic/visp.git
$ mkdir visp-build-ros; cd visp-build-ros
$ cmake -DCMAKE_INSTALL_PREFIX=/opt/ros/$ROS_DISTRO ../visp
$ make -j4; sudo make install

Get the source

Enter in catkin source folder and source ROS setup:

$ cd ~/catkin_ws/src
$ source /opt/ros/<version>

Get vision_visp stack that contains visp_bridge package:

$ git clone https://github.com/lagadic/vision_visp.git -b $ROS_DISTRO

Get visp_ros package:

$ git clone https://github.com/lagadic/visp_ros.git

Build visp_ros package

$ cd ~/catkin_ws
$ catkin_make -DCMAKE_BUILD_TYPE=Release --pkg visp_ros

Build documentation and tutorials

$ cd ~/catkin_ws
$ rosdoc_lite src/visp_ros

Documentation is available in ~/catkin_ws/doc/html/index.html

Usage

$ source ~/catkin_ws/devel/setup.bash