Giter VIP home page Giter VIP logo

stonefish_ros's Introduction

stonefish_ros package for ROS

This package delivers a ROS interface for the Stonefish library. It also includes a standard simulator node, which loads the simulation scenario from a scenario description file (XML). The included parser extends the standard functionality of the Stonefish library to enable ROS style search for files, resolution of arguments as well as a complete message interface.

Installation

  1. Install the open-source Stonefish library (the same version as the ROS package!).
  2. Clone the stonefish_ros package to your catkin workspace.
  3. Compile the workspace.

Launching

To run the standard simulator node you have to include the 'simulator.launch' file in your own launch file, overriding the default arguments. This package does not include any examples of usage. The best way to learn how to use this package is to install the cola2_stonefish package, containing multiple, fully working examples of robots, developed by the CIRS Laboratory (University of Girona, Spain).

Credits

This software was written and is continuously developed by Patryk Cieślak.

If you find this software useful in your research, please cite:

Patryk Cieślak, "Stonefish: An Advanced Open-Source Simulation Tool Designed for Marine Robotics, With a ROS Interface", In Proceedings of MTS/IEEE OCEANS 2019, June 2019, Marseille, France

@inproceedings{stonefish,
   author = {Cie{\'s}lak, Patryk},
   booktitle = {OCEANS 2019 - Marseille},
   title = {{Stonefish: An Advanced Open-Source Simulation Tool Designed for Marine Robotics, With a ROS Interface}},
   month = jun,
   year = {2019},
   doi={10.1109/OCEANSE.2019.8867434}}

Funding

This work was part of a project titled ”Force/position control system to enable compliant manipulation from a floating I-AUV”, which received funding from the European Community H2020 Programme, under the Marie Sklodowska-Curie grant agreement no. 750063. The work was continued under a project titled ”EU Marine Robots”, which received funding from the European Community H2020 Programme, grant agreement no. 731103.

License

This is free software, published under the General Public License v3.0.

stonefish_ros's People

Contributors

dependabot[bot] avatar nilsbore avatar patrykcieslak avatar supremelobster avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

stonefish_ros's Issues

Running example launch file

I am trying to launch the the files within cola2_stonefish, but encountering an error:
resource not found: cola2_lib_ros.

Where can find the package to get this lib?

Broken dependency list

Hi!

First time here! Loved the stonefish.

I have one issue with this repository and a couple of suggestions if I may. That is, for now, for the dependency management.

It is clear that stonefish should be build and installed on the target platform. It is not served by any buildfarms that both ROS and Ubuntu offers. rosdep install --from-paths src --ignore-src can find and install all the dependencies listed in package.xml file if they exist in the rosdep index.

I would simply suggest of removal this line:

<depend>Stonefish</depend>

Another suggestion that I would make is a long short one but it's worthwhile to try, It might have been discussed before hand, pardon me if that's the case.
The stonefish repository looks and feels very much production ready. It could easily be a part of ubuntu package archive. Then the installation process of stonefish could be simple as sudo apt install libstonefish-dev. The same thing can be achieved through PPAs as well. I could hustle with it if the idea is appealing enough but there are not many manhours to put on it.

Thanks!

Vision sensors should use ROS image_transport

Sensors that publish images should use the ROS image_transport API so that they automatically published compressed versions of the image along with the original raw version.

Example:

One of the topics currently published by a simulated FLS sensor is "/fls/display".
By using image_transport there would be, among others, an extra /fls/display/compressed" topic. This would make it easier to record to ROS bags without taking up large amounts of disk space.

Split out Girona500 simulations

Would it be possible to split out the Girona500 simulations into a package that would depend on this? As far as I can tell, that would get rid of all of the dependencies for this package except for cola2_lib. This would make it significantly easier for any outside users that want to use it with just their own AUV, while still allowing them to try the Girona500 and Sparus AUVs uising the other new package.

Missing FOG header in stonefish

I'm trying to compile stonefish_ros and I get the error:

catkin_ws/src/stonefish_ros/include/G500AUVDynamicsManager.h:34:10: fatal error: Stonefish/sensors/scalar/FOG.h: No such file or directory
 #include <Stonefish/sensors/scalar/FOG.h>

Looking at the installed stonefish headers, there is no header named FOG.h in Stonefish/sensors/scalar, not in the repo either.

Unable to start stonefish in Ubuntu 21.04

Hi!

I've followed the same steps to build and run stonefish and I've been able to package it in a docker container. The container works for machines with Ubuntu 22.04 out of the box, but I just found it does not in a Ubuntu 21.04 machine. This is the output in the console log:

process[stonefish_simulator-31]: started with pid [758]
[INFO] Welcome to Stonefish 1.3.                   
[CRITICAL] SDL2: Could not create GL context: BadValue (integer parameter out o$
 range for operation)                           
[stonefish_simulator-31] process has died [pid 758, exit code -6, cmd /opt/ros/$
ola2_ws/devel/lib/stonefish_ros/parsed_simulator /opt/ros/cola2_ws/src/cola2_st$
nefish/data /opt/ros/cola2_ws/src/cola2_stonefish/scenarios/sparus2_tank.scn 30$
.0 1200 800 high __name:=stonefish_simulator __log:=/home/ubuntu/.ros/log/6ac3d$
5e-c7cb-11ec-a76e-b06ebfbc057e/stonefish_simulator-31.log].
log file: /home/ubuntu/.ros/log/6ac3d35e-c7cb-11ec-a76e-b06ebfbc057e/stonefish_$
imulator-31*.log 

The PC I am running it on has an NVIDIA RTX 2070 with 8Gb graphics memory.
This is the output of nvidia-smi

+-----------------------------------------------------------------------------+
| NVIDIA-SMI 470.86       Driver Version: 470.86       CUDA Version: 11.4     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|                               |                      |               MIG M. |
|===============================+======================+======================|
|   0  NVIDIA GeForce ...  Off  | 00000000:01:00.0 Off |                  N/A |
| 23%   28C    P8    26W / 175W |     65MiB /  7973MiB |      0%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+
                                                                               
+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
+-----------------------------------------------------------------------------+

and this is the output of glx-info

$ glxinfo | grep "OpenGL version"
OpenGL version string: 3.1 Mesa 21.0.3

Is there something I am missing? Is the issue with "OpenGL 4.3" being the minimum version supported?

ROS Package relative paths

@patrykcieslak Do you think it would be possible to do some pre-processing of the .scn files to expand package-relative paths, e.g. <file path="$(find my_package_name)/data/mesh.obj"/>? That would make it much easier to define vehicles and scenarios from files located in different packages. If we can find out some way of doing it, I could try to implement it.

stonefish flags not propagated

To get this package to compile, I needed to add the following line in my cmake:

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -DBT_EULER_DEFAULT_ZYX -DBT_USE_DOUBLE_PRECISION")

I guess these flags should get propagated by

add_compile_options(${Stonefish_CFLAGS})

but that does not seem to happen on my computer (Ubuntu 18.04).

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.