Implementations of several GSL methods for ROS.
To use one of the implemented algorithms, simply launch the gsl_actionserver_node
node and create an ActionClient to send a goal with the name of the chosen algorithm (see gsl_server_call.cpp for an example).
Currently available algorithms include:
"PMFS"
(See paper here)"GrGSL"
(See paper: here)"surge_cast"
,"surge_spiral"
,"spiral"
,"particle_filter"
(See paper here)"SemanticPMFS"
,"SemanticGrGSL"
(See paper here)
You can download this package by navigating to your ROS workspace and running:
git clone --recurse-submodules [email protected]:MAPIRlab/Gas-Source-Localization.git GSL
Due to the nature of how ROS code is organized in semi-independent packages, it does not quite make sense for this repository to include other ament packages (which you might already have in the same workspace for something else) as submodules. You will need to install those separately:
There are also some additional, optional dependecies that you might not need, depending on which algorithms you choose to compile (see next section).
- (Optional) Nav-assistant
- (Optional) Gaden
- (Optional) ament_imgui
- (Optional) Voxeland
While this project contains several different GSL algorithms, you might only be interested in using one of them. Since some of these algorithms carry additional dependencies, you might want to completely disable the compilation of algorithms you are not going to use, to avoid having to install their dependencies. You can do that by commenting out the corresponding line in the main CMakeLists.txt
Even if you are compiling all algorithms, there are some dependencies that can just be turned off by disabling the corresponding features.
If you don't want to use Gaden for your experiments you can omit it and set the USE_GADEN
option in the CMakeLists.txt file to OFF
to compile without the corresponding dependency.
Similarly, the dependency with ament_imgui
can be disabled using the USE_GUI
option, and the dependency with Nav-Assistant
can be disabled with USE_NAV_ASSISTANT
in the CMakeLists.txt.