Releases: patrykcieslak/stonefish
More control and flexibility, fixes to annoying problems
It was a long time since the last release and many things got extended or improved. One of the bigger updates is the possibility to use a more general multi-body physics algorithm that supports closed kinematic chains, instead of the standard Featherstone's implementation, which, by the way, still remains the default option, due to its high stability, accuracy and performance. Many different problems across the simulator were fixed. Finally, I have restructured some of the core classes, which turned out to be necessary when developing the new ROS2 interface package. I decided that the release of the ROS2 package is a good excuse to finally release the new version of the_Stonefish_ library! Please check the changelog and documentation, because some of the changes in code are breaking (in italics).
Cheers!
Changelog:
- Restructured the SimulationApp class and its children to support the new ROS2 interface
- Reimplemented Robot definition to allow for two different algorithms: the Featherstone's algorithm and a general constraint solving algorithm; the general algorithm allows for kinematic loops in the robot structure
- Added origin definition to standard obstacle solids to enable local transformations
- Updated definition of accelerometer, gyroscope and IMU sensors, including parser support
- Extended DVL model, with water layer velocity measurement and new noise models, including parser support
- Added easy access to the parameters of the constraint solver, including parser support
- Implemented an INS combining internal gyroscopes and accelerometers with external sensors like DVL and GPS, including parser support
- Implemented methods which enable live updates of sensor and actuator frames
- Implemented magnetic interaction between materials to enable simulation of permanent magnets
- Implemented parsing of mathematical expressions in scenario files
- Improved support for console simulations
- Improved support for non-realitime simulations
- Separated underwater and above water rendering paths
- Eliminated precomputation of atmospheric scattering (loaded from resources)
- Improved ocean reflections
- Reimplemented XML parser logging mechanism
- Significantly improved XML parser error and warning messages (easier location of errors)
- Extended implementation of velocity fields to facilitate online updates
- Added optional functionality to embed internal resources in the library binary
- Fixed spline interpolation of trajectories with subsequent overlapping points
- Fixed measurement of accelerations
- Fixed unstable multibody joint position control
- Fixed computation of moments of inertia
- Fixed trackball implementation - better zoom and translation of the main 3D view
- Fixed mouse issues in the main 3D view
Animated bodies, improved flexibility and parser functionality
This release brings a lot of new functionality, from which the biggest is the introduction of animated bodies. This kind of bodies follow a predefined trajectory and can be used, for example, to enable fully repeatable sensor simulations. Another use of animated bodies is when object dynamics are not possible to be accurately simulated but its motion is known or was recorded. Thanks to improved parser and small changes in library architecture, it is now possible to easily attach sensors to different types of bodies, not only robotic links and joints. Moreover, many sensors got some improvements in their modelling and functionality. Finally, a bunch of small rendering problems were solved. Please check the changelog and documentation, because some of the changes in code are breaking (in italics).
Cheers!
Changelog:
- Animated bodies - bodies moving according to a predefined trajectory
- Trajectory generators for animated bodies (piece-wise linear and spline interpolation)
- Sensors can now be attached to all kinds of bodies, as well as the world frame
- New implementation of the 3-axis gyroscope, with a measurement bias
- IMU implementation extended with yaw angle drift and per channel characteristics
- Noise definition for sonars and the depth camera
- Sonar output reduced to 8 bit, to better reflect real sensors
- Lights can now be easily attached to any kind of body, as well as the world frame
- New XML syntax for defining lights
- Communication devices can now be attached to all kinds of bodies, as well as the world frame
- Fixed beam occlusion testing for acoustic comms and introduced option to disable it
- New implementation of the USBL, including measurement resolution
- Looks are now parsed from the included files
- "Shift" key can be used to move the main window camera faster
- Display of keymap in the GUI (press 'K')
- Sun light shadows on ocean surface
- Screen-space reflections quality settings
- Fixed reflections on ocean surface
- Fixed horizon rendering problems
- Fixed particle motion
- Fixed cascaded shadow mapping
- Fixed depth camera minimum range
Easier installation and optimizations
Starting from this release it is not needed anymore to install Bullet Physics library system-wide!
Different build configurations of Bullet can cause conflicts in the system, e.g., when using tools like Gazebo.
Therefore, the parts of Bullet that are used by Stonefish were copied directly to the source tree.
Moreover, the mathematical models of the thruster and the propeller actuators were revised and corrected.
Please keep in mind that it may be needed to adjust the thrust coefficients and direction of the thrusters in your setups.
Finally, computation of hydrodynamics was rewritten to use single precision numbers, which is a step forward to highly parallel GPU implementation in the future.
Enjoy!
Changelog:
- Removed external dependence on the Bullet Physics Library and included necessary parts in the source tree
- Updated the mathematical models of the thruster and the propeller actuators
- Optimized computation of the geometry-based hydrodynamics/aerodynamics
- Implemented new visualization of underwater currents (water velocity field)
- Fixed crashes when trying to create marine actuators in a simulation without ocean
First major release of the Stonefish library!
This is the first major release of the Stonefish library!
The library has now a new beautiful documentation generated with Sphinx!
I also fixed some minor errors, improved parser functionality, and finished implementing all base features.
Cheers!
Changelog:
- Fully GPU-based simulation of mechanical scanning imaging sonar (MSIS)
- Improvements in all sonar simulations
- Significant improvement to DVL performance when heightfield terrain is used
- Heightfield terrain now supports 16 bit heightmaps
- New syntax for loading ocean and atmosphere definitons using the XML parser
- Support for arguments passed to the included files
- New, complete, beautiful documentation generated with Sphinx
First official release of the Stonefish library!
The Stonefish library has reached enough maturity to give it a version number!
Huge portion of the graphics pipeline was rewritten and modernized to follow the OpenGL 4.3+ specification.
Light absorption and scattering in water is now based on commonly used Jerlov measurements.
Photo-realistic sky and sunlight as well as artificial lights are implemented.
Stonefish has gained real-time simulation of forward-looking and side-scanning sonars, thanks to the use of compute shaders.
Normal mapping was implemented to give an opportunity to specify surface details.
Dozens of bugs were killed all over the code.
Enjoy!
Changelog:
- Moved to the OpenGL 4.3 functionality (compute shaders)
- Complete rewrite of the ocean/underwater rendering pipeline
- Light absorption and scattering in water based on Jerlov measurements
- Full support of photo-reallistic sky and sunlight as well as point and spot lights
- New, linear tree based, automatic LOD algorithm
- New automatic exposure (histogram based) and anti-aliasing (FXAA) algorithms
- Logarythmic depth buffer for planet scale rendering without precision issues
- Fully GPU-based simulation of forward-looking sonar (FLS)
- Fully GPU-based simulation of side-scan sonnar (SSS)
- Normal mapping to enable high resolution surface details
- Faster download of data from the GPU memory
- Scheduling of the rendering of multiple views
- Reallistic measurement of the drawing time
- Interactive selection outline in 3D view
- OpenGL function handlers provided through GLAD (dropped outdated GLEW)
- General cleaning of code and refactoring
- Dozens of bug fixes