SimulationViSP 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 toolsThere 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 simulatorOgre 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).
Coin simulatorThe 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.
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.
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.
Image projectionThe 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.
Wireframe simulatorThe 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".
The robot simulatorsViSP provides several robot simulators. Some are based on real robots used in the Lagadic group. Robot cameraThis 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 simulatorsThe 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.
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.
The two classes which implement these simulators are vpSimulatorViper850 and vpSimulatorAfma6. The following pictures present the Afma6 simulator next to the real robot.
|
|
|||||||||||||||||||||||||||||||||||||||||||
|
| Lagadic
| Map
| Team
| Publications
| Demonstrations
|
Irisa - Inria - Copyright 2012 © Lagadic Project |