ViSP
Home
General overview
Download
Install from source
Install SDK
Documentation
FAQ
News
Overview
Visual servoing
Image processing
Computer vision
Simulation
Tools
Development
Third-party libraries
InriaGForge
SVN repository
Testing dashboard
Bug tracker
Support
Forum
Mailing lists
Contact us

Simulation

ViSP provides several tools in order to simulate visual servoing experiments. They can be divided in two main classes : the visualisation tools and the robot simulators. As described below, the first class enables to project 3D scenes into the image of a real or virtual camera. The second class enables to simulate the behavior of robots.


Visualisation tools

There are several classes dedicated to visualisation and projection of 3D scenes into a ViSP image. They can be used easily with the robot simulators.

Ogre simulator

Ogre was introduced in ViSP 2.6.1 to provide more functionalities than those available in Coin simulator. Thus it is for example possible to interface Ogre with a dynamics engine as ODE. Ogre simulation capabilities introduced in ViSP enable to project 3D scenes described thanks to a 3D model into an image. The dedicated ViSP class is named vpAROgre. For details about Ogre3D installation as a third-party click here).

This video shows an augmented reality example based on the vpAROgre class. From the tracking of four dots a pose computation is performed that allows to project in the images a virtual green plane on which a robot evolves. Arrows keyboard keys allow to move the robot on the plane. [source code] This videos presents an augmented reality application using vpAROgre class. The whole painting is tracked in real-time and the pose is used to reproject the team's logo. The second part of the video uses a physical engine to simulate the gravity and create realistic moves.

Coin simulator

The first visualisation tool available in ViSP. It requires Coin3D as a third-party library (for more details about its installation click here). It enables to project 3D scenes described thanks to a 3D model into an image. The dedicated ViSP class is named vpSimulator. As ViSP is developed for visual servoing experiments, it is able to get the view of an internal and an external virtual camera view.

The following pictures show the rendering of an internal and an external view. It is possible to move the external camera with the mouse.

description description
Camera internal and external views provided during simulation of a visual servoing. [source code]

An advantage of this simulator is that you are able to get the internal view in order to apply directly visual servoing algorithms. It is the case in the following video. The points are tracked with the vpDot2 tracker.

Four dots tracking on an image obtained thanks to the vpSimulator class. The left image shows the internal camera view, while the right image shows the tracking of the dots done on the simulator internal image. [source code]

With the Coin library, you can also project complex 3D models (.wrl, .iv). It is mainly used to design augmented reality applications. The vpAR class is dedicated to such experiments. The following videos present cases of use of this class.

Augmented reality application using the vpAR class. The work was made by Amaury Dame. For more details about the pose computation, refer to its own web page. Augmented reality application using the vpAR class.
[source code]

Image projection

The vpImageSimulator class allows to project images into a 3D scene. The depth is managed if more than one image is projected. As it modifies directly a ViSP image, image processing algorithms can be applied on it. The following video gives an idea on the capabilities of this class.

description
Projection of an image sequence. Here the model-based tracker is used in order to find where the images have to be projected. [source code] Example of depth management.

Wireframe simulator

The wireframe simulator enables to project wireframe objects. As for the simulator based on Coin, this simulator provides an internal and an external view. The last one can be modified with the mouse. But its advantage is that it doesn't require a third party library. There are several simple 3D scenes already available in ViSP, but wrl files can also be used. The following video shows a simulation of a visual servoing experiment using the vpWireFrameSimulator class. This example is one of the ViSP examples provided with the library. The name of the file containing the source code is "servoSimu4Points.cpp".

Visual servoing experiments rendered by the wireframe simulator. After an initial convergence a motion is applied to the target.
[source code]


The robot simulators

ViSP provides several robot simulators. Some are based on real robots used in the Lagadic group.

Robot camera

This simulator is pure virtual. Indeed, it represents a free flying camera. There is no joint limit, no singularity. It can be useful to test a new control law and test its convergence. The ViSP class which implements this simulator is named vpRobotCamera.

This simulator has been used to make the video concerning the wireframe simulator. You can find this example in those that are already in ViSP. The name of the file containing the source code is "servoSimu4Points.cpp".

Real robot simulators

The Lagadic group exploit among other an ADEPT Vider s850 six dof arm and an Afma Robotics gantry robot called Afma6. These real robots can also be simulated. During simulation, their behaviors are as closed as possible from the reality as shown in the following video. As the dynamic model is not taken into account here, there is a shift between the velocity of the robot and the velocity of the simulator.

Behavior comparison between the real ADEPT Viper s850 robot and the simulated one.

The visualisation is based on the wireframe Simulator. So it provides an internal view and an external view. The following video presents a simulation of a visual servoing experiment. The internal image is used to compute the control and then bring the camera of the robot from one position to a desired one.

Simulaton of a visual servoing experiment using the ADEPT Viper s850 simulator. [source code]

The two classes which implement these simulators are vpSimulatorViper850 and vpSimulatorAfma6. The following pictures present the Afma6 simulator next to the real robot.

description description
ViSP 2.6.1 latest release
Download
API documentation
Resources
Getting started
ViSP data set


| Lagadic | Map | Team | Publications | Demonstrations |
Irisa - Inria - Copyright 2012 © Lagadic Project