Skip to content

Merge ign-gazebo6 ➡️ main (part 2) #1631

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 13 commits into from
Aug 9, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .github/ci/packages.apt
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ libxi-dev
libxmu-dev
python3-distutils
python3-pybind11
python3-pytest
qml-module-qt-labs-folderlistmodel
qml-module-qt-labs-settings
qml-module-qtqml-models2
Expand Down
131 changes: 131 additions & 0 deletions Changelog.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,137 @@

## Gazebo Sim 6.x

### Gazebo Sim 6.10.0 (2022-06-24)

1. Expose the ability to stop a server from C++
* [Pull request #1551](https://github.com/gazebosim/gz-sim/pull/1551)

1. Fix various Protobuf Windows warnings
* [Pull request #1299](https://github.com/gazebosim/gz-sim/pull/1299)

1. New service for adding systems to an entity
* [Pull request #1524](https://github.com/gazebosim/gz-sim/pull/1524)

1. Added particle emitters to scene broadcaster
* [Pull request #1516](https://github.com/gazebosim/gz-sim/pull/1516)

1. Use more `sdf::Plugin` instead of `sdf::ElementPtr`
* [Pull request #1352](https://github.com/gazebosim/gz-sim/pull/1352)

1. Depend on common 4.5.1
* [Pull request #1547](https://github.com/gazebosim/gz-sim/pull/1547)

1. Update README links
* [Pull request #1546](https://github.com/gazebosim/gz-sim/pull/1546)

1. Add bounding boxes into the label system plugin
* [Pull request #1040](https://github.com/gazebosim/gz-sim/pull/1040)

1. Odometry publisher: also publish `Pose_V` (TF)
* [Pull request #1534](https://github.com/gazebosim/gz-sim/pull/1534)

1. Fix clang warning from Thruster plugin
* [Pull request #1540](https://github.com/gazebosim/gz-sim/pull/1540)

1. Fix locks in Visualize Lidar GUI plugin
* [Pull request #1538](https://github.com/gazebosim/gz-sim/pull/1538)

1. Bash completion for flags
* [Pull request #1504](https://github.com/gazebosim/gz-sim/pull/1504)

1. Fix sensors battery state test
* [Pull request #1529](https://github.com/gazebosim/gz-sim/pull/1529)

1. Add new `GZ_GUI_RESOURCE_PATH` to help message
* [Pull request #1470](https://github.com/gazebosim/gz-sim/pull/1470)

1. Fix regression with camera sensors not using the background color set in `<scene>`
* [Pull request #1515](https://github.com/gazebosim/gz-sim/pull/1515)

1. Check RGBD camera sensor connection
* [Pull request #1513](https://github.com/gazebosim/gz-sim/pull/1513)

1. Optimize sensor updates
* [Pull request #1480](https://github.com/gazebosim/gz-sim/pull/1480)

1. System inspector GUI widget
* [Pull request #1404](https://github.com/gazebosim/gz-sim/pull/1404)

1. Scene update resource finder
* [Pull request #1508](https://github.com/gazebosim/gz-sim/pull/1508)

1. Updating hydrodynamics plugin description
* [Pull request #1502](https://github.com/gazebosim/gz-sim/pull/1502)

1. Makes thruster stop when battery runs out.
* [Pull request #1495](https://github.com/gazebosim/gz-sim/pull/1495)

1. Fix Documentation Header.
* [Pull request #1501](https://github.com/gazebosim/gz-sim/pull/1501)

1. Adding rssi
* [Pull request #1482](https://github.com/gazebosim/gz-sim/pull/1482)

1. Delete unused gazebo.hh.in
* [Pull request #1490](https://github.com/gazebosim/gz-sim/pull/1490)

1. :books: Fixed broken URL link to gazebo documentation
* [Pull request #1486](https://github.com/gazebosim/gz-sim/pull/1486)

1. View polyline collisions on the GUI
* [Pull request #1481](https://github.com/gazebosim/gz-sim/pull/1481)

1. Extruded 2D polyline geometries
* [Pull request #1456](https://github.com/gazebosim/gz-sim/pull/1456)

1. Fix fuel url
* [Pull request #1479](https://github.com/gazebosim/gz-sim/pull/1479)

1. Camera trigger integration test
* [Pull request #1384](https://github.com/gazebosim/gz-sim/pull/1384)

1. Extend Multicoptor Control system to include nested model inertial params
* [Pull request #1450](https://github.com/gazebosim/gz-sim/pull/1450)

1. Remove dead ign.cc file
* [Pull request #1474](https://github.com/gazebosim/gz-sim/pull/1474)

1. Test case to check if velocity limits are applied to joints
* [Pull request #1445](https://github.com/gazebosim/gz-sim/pull/1445)

1. SceneBroadcaster: Use double for state publish frequency instead of int
* [Pull request #1417](https://github.com/gazebosim/gz-sim/pull/1417)

1. Revert format change
* [Pull request #1468](https://github.com/gazebosim/gz-sim/pull/1468)

1. Fix finding DART on macOS
* [Pull request #1469](https://github.com/gazebosim/gz-sim/pull/1469)

1. Skip serializing nested model with `//pose/@relative_to` attribute
* [Pull request #1454](https://github.com/gazebosim/gz-sim/pull/1454)

1. Fix running simulation with no world specified on the command line
* [Pull request #1463](https://github.com/gazebosim/gz-sim/pull/1463)

1. Add repo specific issue templates
* [Pull request #1461](https://github.com/gazebosim/gz-sim/pull/1461)

1. python: release GIL when running server
* [Pull request #1458](https://github.com/gazebosim/gz-sim/pull/1458)

1. python: remove semicolons
* [Pull request #1459](https://github.com/gazebosim/gz-sim/pull/1459)

1. Bump rendering dependency version
* [Pull request #1455](https://github.com/gazebosim/gz-sim/pull/1455)

1. Improve contact sensor / visualization performance
* [Pull request #1452](https://github.com/gazebosim/gz-sim/pull/1452)

1. Set simulation time to Rendering
* [Pull request #1415](https://github.com/gazebosim/gz-sim/pull/1415)

### Gazebo Sim 6.9.0 (2022-04-14)

1. Add new `RFComms` system
Expand Down
50 changes: 49 additions & 1 deletion include/gz/sim/Conversions.hh
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@
#include <gz/msgs/light.pb.h>
#include <gz/msgs/material.pb.h>
#include <gz/msgs/particle_emitter.pb.h>
#include <gz/msgs/plugin.pb.h>
#include <gz/msgs/plugin_v.pb.h>
#include <gz/msgs/physics.pb.h>
#include <gz/msgs/scene.pb.h>
Expand All @@ -41,7 +42,6 @@
#include <gz/common/Console.hh>
#include <gz/math/AxisAlignedBox.hh>
#include <gz/math/Inertial.hh>
#include <gz/math/Pose3.hh>
#include <sdf/Actor.hh>
#include <sdf/Atmosphere.hh>
#include <sdf/Collision.hh>
Expand Down Expand Up @@ -745,6 +745,54 @@ namespace gz
/// \return Plugin message.
template<>
msgs::Plugin convert(const sdf::Plugin &_in);

/// \brief Generic conversion from an SDF plugins to another type.
/// \param[in] _in SDF plugins.
/// \return Conversion result.
/// \tparam Out Output type.
template<class Out>
Out convert(const sdf::Plugins &/*_in*/)
{
Out::ConversionNotImplemented;
}

/// \brief Specialized conversion from an SDF plugins to a plugin_v message.
/// \param[in] _in SDF plugins.
/// \return Plugin_V message.
template<>
msgs::Plugin_V convert(const sdf::Plugins &_in);

/// \brief Generic conversion from a msgs::Plugin to another type.
/// \param[in] _in msgs::Plugin.
/// \return Conversion result.
/// \tparam Out Output type.
template<class Out>
Out convert(const msgs::Plugin &/*_in*/)
{
Out::ConversionNotImplemented;
}

/// \brief Specialized conversion from a msgs::Plugin to an sdf::Plugin.
/// \param[in] _in msgs::Plugin.
/// \return sdf::Plugin.
template<>
sdf::Plugin convert(const msgs::Plugin &_in);

/// \brief Generic conversion from a msgs::Plugin_V to another type.
/// \param[in] _in msgs::Plugin_V.
/// \return Conversion result.
/// \tparam Out Output type.
template<class Out>
Out convert(const msgs::Plugin_V &/*_in*/)
{
Out::ConversionNotImplemented;
}

/// \brief Specialized conversion from a msgs::Plugin_V to an sdf::Plugins.
/// \param[in] _in msgs::Plugin_V.
/// \return sdf::Plugins.
template<>
sdf::Plugins convert(const msgs::Plugin_V &_in);
}
}
}
Expand Down
19 changes: 18 additions & 1 deletion include/gz/sim/Events.hh
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
#define GZ_SIM_EVENTS_HH_

#include <sdf/Element.hh>
#include <sdf/Plugin.hh>

#include <gz/common/Event.hh>

Expand Down Expand Up @@ -53,10 +54,26 @@ namespace gz
/// \endcode
using Stop = gz::common::EventT<void(void), struct StopTag>;

/// \brief Please use the LoadSdfPlugins event. The LoadPlugins event
/// is deprecrated in Gazebo 7 (Garden). Also make sure to
/// connect to only LoadSdfPlugins or LoadPlugins, and not both events.
///
/// Event used to load plugins for an entity into simulation.
/// Pass in the entity which will own the plugins, and an SDF element for
/// the entity, which may contain multiple `<plugin>` tags.
/// \deprecated Use the `sdf::Plugins` interface.
#ifdef _WIN32
using LoadPlugins =
#else
using LoadPlugins GZ_DEPRECATED(7) =
#endif
common::EventT<void(Entity, sdf::ElementPtr), struct LoadPluginsTag>;

/// \brief Event used to load plugins for an entity into simulation.
/// Pass in the entity which will own the plugins, and an SDF element for
/// the entity, which may contain multiple `<plugin>` tags.
using LoadPlugins = common::EventT<void(Entity, sdf::ElementPtr),
/// Makre sure that you don't also connect to the LoadPlugins event.
using LoadSdfPlugins = common::EventT<void(Entity, sdf::Plugins),
struct LoadPluginsTag>;
}
} // namespace events
Expand Down
3 changes: 3 additions & 0 deletions include/gz/sim/Server.hh
Original file line number Diff line number Diff line change
Expand Up @@ -285,6 +285,9 @@ namespace gz
bool _recursive = true,
const unsigned int _worldIndex = 0);

/// \brief Stop the server. This will stop all running simulations.
public: void Stop();

/// \brief Private data
private: std::unique_ptr<ServerPrivate> dataPtr;
};
Expand Down
46 changes: 39 additions & 7 deletions include/gz/sim/ServerConfig.hh
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
#include <string>
#include <vector>
#include <sdf/Element.hh>
#include <sdf/Plugin.hh>
#include <sdf/Root.hh>
#include <gz/sim/config.hh>
#include <gz/sim/Export.hh>
Expand Down Expand Up @@ -86,12 +87,25 @@ namespace gz
/// \param[in] _name Name of the interface within the plugin library
/// to load.
/// \param[in] _sdf Plugin XML elements associated with this plugin.
public: PluginInfo(const std::string &_entityName,
/// \deprecated Use `sdf::Plugin` interface.
public: GZ_DEPRECATED(7) PluginInfo(const std::string &_entityName,
const std::string &_entityType,
const std::string &_filename,
const std::string &_name,
const sdf::ElementPtr &_sdf);

/// \brief Constructor with plugin information specified.
/// \param[in] _entityName Name of the entity which should receive
/// this plugin. The name is used in conjuction with _entityType to
/// uniquely identify an entity.
/// \param[in] _entityType Entity type which should receive this
/// plugin. The type is used in conjuction with _entityName to
/// uniquely identify an entity.
/// \param[in] _plugin SDF Plugin library information.
public: PluginInfo(const std::string &_entityName,
const std::string &_entityType,
const sdf::Plugin &_plugin);

/// \brief Copy constructor.
/// \param[in] _info Plugin to copy.
public: PluginInfo(const PluginInfo &_info);
Expand Down Expand Up @@ -127,31 +141,49 @@ namespace gz

/// \brief Get the plugin library filename.
/// \return Plugin library filename.
public: const std::string &Filename() const;
/// \deprecated Use `sdf::Plugin` interface.
public: const std::string GZ_DEPRECATED(7) & Filename() const;

/// \brief Set the type of the entity which should receive this
/// plugin. The type is used in conjuction with EntityName to
/// uniquely identify an entity.
/// \param[in] _filename Entity type string.
public: void SetFilename(const std::string &_filename);
/// \deprecated Use `sdf::Plugin` interface.
public: void GZ_DEPRECATED(7) SetFilename(const std::string &_filename);

/// \brief Name of the interface within the plugin library
/// to load.
/// \return Interface name.
public: const std::string &Name() const;
/// \deprecated Use `sdf::Plugin` interface.
public: const std::string GZ_DEPRECATED(7) & Name() const;

/// \brief Set the name of the interface within the plugin library
/// to load.
/// \param[in] _name Interface name.
public: void SetName(const std::string &_name);
/// \deprecated Use `sdf::Plugin` interface.
public: void GZ_DEPRECATED(7) SetName(const std::string &_name);

/// \brief Plugin XML elements associated with this plugin.
/// \return SDF pointer.
public: const sdf::ElementPtr &Sdf() const;
/// \deprecated Use `sdf::Plugin` interface.
public: const sdf::ElementPtr GZ_DEPRECATED(7) & Sdf() const;

/// \brief Set the plugin XML elements associated with this plugin.
/// \param[in] _sdf SDF pointer, it will be cloned.
public: void SetSdf(const sdf::ElementPtr &_sdf);
/// \deprecated Use `sdf::Plugin` interface.
public: void GZ_DEPRECATED(7) SetSdf(const sdf::ElementPtr &_sdf);

/// \brief Get the SDF plugin information.
/// \return The SDF Plugin object.
public: const sdf::Plugin &Plugin() const;

/// \brief Get a mutable version of the SDF plugin information.
/// \return The SDF Plugin object.
public: sdf::Plugin &Plugin();

/// \brief Set the SDF plugin information.
/// \param[in] _plugin The SDF Plugin object to use.
public: void SetPlugin(const sdf::Plugin &_plugin) const;

/// \brief Private data pointer
private: std::unique_ptr<ServerConfig::PluginInfoPrivate> dataPtr;
Expand Down
13 changes: 11 additions & 2 deletions include/gz/sim/SystemLoader.hh
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@
#include <string>

#include <sdf/Element.hh>
#include <sdf/Plugin.hh>

#include <gz/sim/Export.hh>
#include <gz/sim/System.hh>
Expand Down Expand Up @@ -53,19 +54,27 @@ namespace gz
/// \brief Load and instantiate system plugin from an SDF element.
/// \param[in] _sdf SDF Element describing plugin instance to be loaded.
/// \returns Shared pointer to system instance or nullptr.
public: std::optional<SystemPluginPtr> LoadPlugin(
/// \deprecated Use `sdf::Plugin` interface.
public: std::optional<SystemPluginPtr> GZ_DEPRECATED(7) LoadPlugin(
const sdf::ElementPtr &_sdf);

/// \brief Load and instantiate system plugin from name/filename.
/// \param[in] _filename Shared library filename to load plugin from.
/// \param[in] _name Class name to be instantiated.
/// \param[in] _sdf SDF Element describing plugin instance to be loaded.
/// \returns Shared pointer to system instance or nullptr.
public: std::optional<SystemPluginPtr> LoadPlugin(
/// \deprecated Use `sdf::Plugin` interface.
public: std::optional<SystemPluginPtr> GZ_DEPRECATED(7) LoadPlugin(
const std::string &_filename,
const std::string &_name,
const sdf::ElementPtr &_sdf);

/// \brief Load and instantiate system plugin from name/filename.
/// \param[in] _plugin SDF Plugin to be loaded.
/// \returns Shared pointer to system instance or nullptr.
public: std::optional<SystemPluginPtr> LoadPlugin(
const sdf::Plugin &_plugin);

/// \brief Makes a printable string with info about systems
/// \returns A pretty string
public: std::string PrettyStr() const;
Expand Down
Loading