Football Table Simulation Visualization Tool: Difference between revisions
Line 3: | Line 3: | ||
== Information == | == Information == | ||
== | ==Gazebo== | ||
<p>A simulator is developed to easily test new algorithms without depending on the actual robot. In has been developed using [http://gazebosim.org/ gazebo] (w/o the use of ROS), a so-called ''physics abstraction layer'', which employs [http://www.ode.org/ ODE] combined with [http://www.ogre3d.org/ OGRE] for rendering. The environment/robots are described in the [http://gazebosim.org/sdf/dev.html SDF] format, which in this case is combined with Collada (*.dae) renderings for more complex geometry. A previous attempt was created using [http://www.openrobots.org/wiki/morse MORSE], however this did not allow good tuning of the physics.</p> | |||
<p>A simulator is developed to easily test new algorithms without depending on the actual robot. | ==Inter-process Communication== | ||
<p> | <p> | ||
This simulation communicates with Matlab Simulink using Interprocess Communication (IPC) wrapper library for the POSIX libraries. This library uses mutexes and condition variables enabling a thread-safe, synchronized, causal communication between two processes e.g. Gazebo and Simulink. This allows us to use the Gazebo simulator as a plant in our simulink control loop. More on this library and how it is used, can be found [http://cstwiki.wtb.tue.nl/ here *EDIT*]. | |||
</p> | </p> | ||
Revision as of 09:31, 10 September 2013
Author: Rein Appeldoorn
Information
Gazebo
A simulator is developed to easily test new algorithms without depending on the actual robot. In has been developed using gazebo (w/o the use of ROS), a so-called physics abstraction layer, which employs ODE combined with OGRE for rendering. The environment/robots are described in the SDF format, which in this case is combined with Collada (*.dae) renderings for more complex geometry. A previous attempt was created using MORSE, however this did not allow good tuning of the physics.
Inter-process Communication
This simulation communicates with Matlab Simulink using Interprocess Communication (IPC) wrapper library for the POSIX libraries. This library uses mutexes and condition variables enabling a thread-safe, synchronized, causal communication between two processes e.g. Gazebo and Simulink. This allows us to use the Gazebo simulator as a plant in our simulink control loop. More on this library and how it is used, can be found here *EDIT*.
External Documentation
- Report: Development of a Simulation and Visualization Tool for an Autonomous Football Table - Rein Appeldoorn
- MORSE Installation Guide with Yarp support - Ubuntu 10.04 LTS x86
Structure
Data flow
The current network-structure of the project is shown in Figure 1. In order to create a link between these subsystems, three connections are needed:
• Control ←→ Simulator (Actuators/Sensors)
• Simulator ←→ GUI (Visualization)
• Control ←→ GUI (Visualization)
Middleware
This data-communication is established with use of the Yarp Server (which is integrated in the GUI). It creates the link between the multiple subsystems. Further information about this communication can be found in the report.
Tool
The tool contains two elements: Visualization and Simulation. It communicates with the real football table or simulator to visualize the sensor data during a work-out. Starting simulations with use of this tool is not yet possible but can be implemented in the future. For now, the simulations has to be started with use of the MORSE simulator and after that, a connection can be established to visualize the sensor-data of the simulator.
Graphical User Interface
The GUI is created with use of two main elements: QT (UI Framework) and OGRE (3D Graphics Engine). With use of the visualization, the user can see what information the robot obtains during a work-out. This part of the GUI visualizes the sensor data that comes from the real table or simulator. Updating this visualization and receiving data is done at a frequency of 50 hertz. This provides a smooth playback of the sensor data of the (simulated) robot to the user.
Simulation
The simulation is build with use of MORSE. This robot simulator is based on Blender's Gamelogic module (Module for game-creation). This module is entirely scriptable with use of Python. These python-scripts can interact with the simulated environment.
The MORSE addition to this module makes it possible to communicate with these python scripts with use of middlewares or simple sockets. Local variables of these scripts can be modified or read; which results in a control of the simulated environment with use of an external client.
The report contains detailed information of the creation of this simulation-model and its interactions with the external client. It also gives an overview of the MORSE workflow which gives more insight in the working principle of the MORSE simulator.
Info
Hardware
Software
Repository