Skip to content
Davide Conzon edited this page Dec 1, 2019 · 5 revisions

This repository contains the source code of the OSGi dependency bundles used both by Gazebo SM and Stage SM. It contains the following projects:

be.iminds.iot.ros.api

This bnd OSGI API project, in the ROS-OSGi project defines a set of ROS function-related interfaces to be implemented by the following be.iminds.iot.ros.core project. Besides, it exposes the OSGI services to compile and launch a ROS-based simulation by starting an external process from within the OSGi bundle. These services are used by Simulation Managers.

CPSwarm extension: compared with the original ROS-OSGi version, the bundle has been extended to expose the OSGi services to build and launch ROS packages and add them in Felix GoGo shell.

be.iminds.iot.simulator.gazebo

This project implements the be.iminds.iot.simulator.api project, interfaces it wraps the Gazebo simulator, registers the Gazebo as a type of simulator service and add some Gazebo-specific commands in Felix console after Gazebo simulator startup by calling some ROS services provided by the Gazebo ROS control plugin. User can use those commands to remotely control the simulation process.

CPSwarm extension: removed the usage of a ROS service /gazebo/spawn_gazebo_model because it doesn’t exist in the Gazebo 7x version.

be.iminds.iot.simulator.vrep

This project implements the ROS-OSGi simulator intterface , it wraps the V-REP simulator by using the client-side APIs from the coppelia bundle, it registers the V-REP as a type of simulator service and add some V-REP-specific commands in Felix Gogo console after V-REP simulator startup. User can use these commands to control the simulation process. The V-REP Simulation Manager (see section 6.5) uses the exposed OSGI services to compile and launch a simulation.

CPSwarm extension: added an OSGi service used by the V-REP SM to start V-REP.

it.ismb.pert.cpswarm.simulation.manager

This is the bundle that implements the SM API in XMPP and it is used to interconnect the SMs to all the other components of the CPSwarm Simulation and Optimization Environment.

it.ismb.pert.cpswarm.mqttLib

This is an utility bundle used to publish MQTT events, through an client, it is used by the SMs to publish the fitness scores calculated during the optimization processes.

org.ros.rosjava_messages.gazebo_msgs

This is a dependency bundle of the be.iminds.iot.simulator.gazebo project, it contains a set of the java messages automatically generated through ros:generate command, based on the ROS messages provided by Gazebo. These classes are used to send messages to the specific Gazebo topics/services from OSGI bundle to control the simulation process.

CPSwarm extension: these classes have been generated form the services provided by Gazebo 7.x version and replace the one of the original bundle that are not compatible with this version of Gazebo.

org.ros.rosjava_messages.trajectory_srvs

This is a dependency bundle of the be.iminds.iot.simulator.gazebo project, it contains a set of the java classes to retrieve the trajectory in Gazebo, automatically generated through ros:generate command, based on the ROS messages provided by Gazebo.

CPSwarm extension: these classes have been generated form the services provided by Gazebo 7.x version and replace the one of the original bundle that are not compatible with this version of Gazebo.

How to use the bundles

You can follow this guide to setup the environment and this one to import them in the IDE and modify them. Finally, this guide explains how to deploy the libraries after an update.

Clone this wiki locally