Skip to content
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

9 ➡️ 10 #458

Merged
merged 45 commits into from
Jan 12, 2021
Merged

9 ➡️ 10 #458

merged 45 commits into from
Jan 12, 2021

Conversation

chapulina
Copy link
Contributor

Merge-forward sdf9 to sdf10, similar to #445.

It looks like there are lots of commits, but that's just because this is the first forward merge PR. Subsequent ones should only have the ported PRs and the merge commit.

This is essentially just porting the heightmap from #388.

traversaro and others added 30 commits April 28, 2020 14:14
… level (#251)

SDFormat 9 requires the use of C++17 in its public headers, however it does not correctly expose this requirement
in its installed imported targets. In particular, at the moment the requirement of C++17 is only documented via adding the
-std=c++17 flag in the `SDFormat_CXX_FLAGS` variable, but this strategy has two problems:
* It does not work unless a user explicitly pass this flags to its compilation targets, and this is definitely not obvious if it is not using directly SDFormat, but he is linking sdformat transitively through Gazebo 11.
* If a different C++ version is set at the CMake level, it is possible that the `-std=c++17` flag is ignored (it depends what is
the order with which the flags are passed to the compiler).

For CMake consumers, a better strategy is to use the target_compile_features and explicitly mark that
that this library requires the `cxx_std_17` feature, as `PUBLIC` because it also required in the public headers.

As the minimum required version of CMake is 3.10, we can use cxx_std_17 as it is available in CMake 3.10, see https://cmake.org/cmake/help/v3.10/prop_gbl/CMAKE_CXX_KNOWN_FEATURES.html#prop_gbl:CMAKE_CXX_KNOWN_FEATURES .

Signed-off-by: Silvio Traversaro <silvio.traversaro@iit.it>
Signed-off-by: Steven Peters <scpeters@openrobotics.org>
* [sdf8] Changelog links to BitBucket backup

Signed-off-by: Louise Poubel <louise@openrobotics.org>

* more fixes, new version of script

Signed-off-by: Louise Poubel <louise@openrobotics.org>

* [sdf7] Changelog links to BitBucket backup (#238)

Signed-off-by: Louise Poubel <louise@openrobotics.org>

* Update some more bitbucket issue references

Signed-off-by: Steven Peters <scpeters@openrobotics.org>

Co-authored-by: Steven Peters <scpeters@openrobotics.org>
* [sdf9] Changelog links to BitBucket backup

Signed-off-by: Louise Poubel <louise@openrobotics.org>

* [sdf8] Changelog links to BitBucket backup

Signed-off-by: Louise Poubel <louise@openrobotics.org>

* [sdf7] Changelog links to BitBucket backup (#238)

Signed-off-by: Louise Poubel <louise@openrobotics.org>

* Convert bitbucket links for sdf9

Signed-off-by: Steven Peters <scpeters@openrobotics.org>

* Fix link in API documentation

Signed-off-by: Steven Peters <scpeters@openrobotics.org>

Co-authored-by: Steven Peters <scpeters@openrobotics.org>
Signed-off-by: Steve Peters <scpeters@openrobotics.org>
For backward compatibility if it is not defined compile the tests

Signed-off-by: Silvio <silvio.traversaro@iit.it>
Signed-off-by: Steve Peters <scpeters@openrobotics.org>
Signed-off-by: Steve Peters <scpeters@openrobotics.org>
Signed-off-by: Steve Peters <scpeters@openrobotics.org>
Signed-off-by: Steve Peters <scpeters@openrobotics.org>
* Simplify and fix copy constructors, restructure tests and increase coverage
* Add joint and link tests
* Add changelog

Signed-off-by: Luca Della Vedova <luca@openrobotics.org>

Co-authored-by: Ian Chen <ichen@osrfoundation.org>
Co-authored-by: Steve Peters <scpeters@openrobotics.org>
* Also use python3 in test

Signed-off-by: Steve Peters <scpeters@openrobotics.org>
Signed-off-by: Steve Peters <scpeters@openrobotics.org>
Nested model elements (`//model/model`) are currently supported in the
SDFormat 1.7 spec, but are not supported by the DOM API or frame
semantics operations in libsdformat 9.2.
Per Amendment 1 of the SDFormat 1.7 proposal
(sdformat.org/tutorials?tut=pose_frame_semantics_proposal#amendment-1-directly-nested-models),
this PR adds support for nested models in the DOM API and frame
semantics (fixing #283) through three steps:

* adding `Model::Model*` methods for accessing nested models via
  the DOM API (047ec96)
* loading nested models in `Model::Load` (b57fea2, step 3 of model parsing
  stages (sdformat.org/tutorials?tut=pose_frame_semantics_proposal#1-model))
* supporting nested models (`//model/model`) in frame semantics as
  opaque frames to match how models in the world scope (`//world/model`)
  are treated (85e0b4f, steps 6-9 of model parsing stages
  (sdformat.org/tutorials?tut=pose_frame_semantics_proposal#1-model))

The first two steps are straightforward, while the 3rd step adds new behavior.
This behavior is added to `libsdformat9` because it is compatible with the
SDFormat 1.7 spec (which supports nested models) and makes the treatment
of models more consistent with regard to frame semantics.
In libsdformat 9.2.0, a `//world/model` supports frame semantics: they have
frames that can be referenced by name with `//pose/@relative_to` and
`//world/frame/@attached_to` values can resolve to a `//world/model`.
This extends that same behavior to nested `//model/model` elements;
they now have their own frames in the frame and pose graphs, and a
`//model/frame` is permitted to attach to a model.

This does not add support for referencing elements within a model via
the `::` syntax in the frame semantics or DOM APIs.
That will be added in SDFormat 1.8 (see #293).

Signed-off-by: Steve Peters <scpeters@openrobotics.org>
Signed-off-by: Steve Peters <scpeters@openrobotics.org>
* Simplify and fix copy constructors, restructure tests and increase coverage
* Add joint and link tests
* Add changelog

Signed-off-by: Luca Della Vedova <luca@openrobotics.org>

Co-authored-by: Ian Chen <ichen@osrfoundation.org>
Co-authored-by: Steve Peters <scpeters@openrobotics.org>
Allow models without links if they have nested models instead.
When building FrameAttachedToGraph, if model has no links
choose the first link of the first nested model as canonical
link instead.

A new private function `Model::CanonicalLinkAndRelativeName`
is added that provides a `Link*` pointer to the canonical link and its
nested name relative to the current model, which is needed
in the FrameAttachedToGraph. This private prevents
duplicate code in `FrameSemantics.cc` and `Model::CanonicalLink`.
The method is private to hide :: syntax from libsdformat9,
at least until there is a compelling reason to make the API
public.

A helper function is added to FrameSemantics.cc as a friend
of Model so that buildFrameAttachedToGraph can call the
private API. That function can't be added directly
as a friend since it uses a `FrameAttachedToGraph&`
as an argument, which isn't defined in Model.hh.

Signed-off-by: Steve Peters <scpeters@openrobotics.org>
Signed-off-by: Nate Koenig <nate@openrobotics.org>

Co-authored-by: Nate Koenig <nate@openrobotics.org>
Signed-off-by: Nate Koenig <nate@openrobotics.org>

Co-authored-by: Nate Koenig <nate@openrobotics.org>
* Also use python3 in test

Signed-off-by: Steve Peters <scpeters@openrobotics.org>
Signed-off-by: Louise Poubel <louise@openrobotics.org>
Signed-off-by: Louise Poubel <louise@openrobotics.org>
Signed-off-by: Silvio Traversaro <silvio.traversaro@iit.it>
Signed-off-by: Steve Peters <scpeters@openrobotics.org>
Signed-off-by: Louise Poubel <louise@openrobotics.org>

Co-authored-by: Steve Peters <scpeters@openrobotics.org>
Signed-off-by: Jose Luis Rivero <jrivero@osrfoundation.org>
Signed-off-by: Louise Poubel <louise@openrobotics.org>

Co-authored-by: Steve Peters <scpeters@openrobotics.org>
Signed-off-by: Steve Peters <scpeters@openrobotics.org>
Signed-off-by: Louise Poubel <louise@openrobotics.org>
Signed-off-by: Louise Poubel <louise@openrobotics.org>
Signed-off-by: Louise Poubel <louise@openrobotics.org>
chapulina and others added 15 commits October 21, 2020 10:16
Signed-off-by: Louise Poubel <louise@openrobotics.org>
Signed-off-by: Louise Poubel <louise@openrobotics.org>
…414)

Signed-off-by: Steve Peters <scpeters@openrobotics.org>
…414)

Signed-off-by: Steve Peters <scpeters@openrobotics.org>
Currently there is a confusing error message if a file is
loaded that finds a folder matching the name of a model to
be included but the folder does not have a model.config file.
This improves the first error message and stops further loading
to prevent additional confusing messages.

Signed-off-by: Steve Peters <scpeters@openrobotics.org>
Currently the addNestedModel function in parser.cc prefixes
link, joint, and frame names with the flattened model name
delimited by "::". This applies the same prefix to the names
of nested models within the flattened model as well.

Signed-off-by: Steve Peters <scpeters@openrobotics.org>
Signed-off-by: Ian Chen <ichen@osrfoundation.org>

Co-authored-by: Louise Poubel <louise@openrobotics.org>
Co-authored-by: Steve Peters <scpeters@openrobotics.org>
Signed-off-by: Nate Koenig <nate@openrobotics.org>

Co-authored-by: Nate Koenig <nate@openrobotics.org>
This reverts part of commit
0e77816.

Signed-off-by: Steve Peters <scpeters@openrobotics.org>
* add double sided materail param

Signed-off-by: Ian Chen <ichen@osrfoundation.org>

* fix loading param

Signed-off-by: Ian Chen <ichen@osrfoundation.org>
Signed-off-by: Steve Peters <scpeters@openrobotics.org>
Merge forward sdf8 -> sdf9
Signed-off-by: Louise Poubel <louise@openrobotics.org>

Co-authored-by: Steve Peters <scpeters@openrobotics.org>
Signed-off-by: Louise Poubel <louise@openrobotics.org>
@github-actions github-actions bot added 🏢 edifice Ignition Edifice 🔮 dome Ignition Dome labels Jan 12, 2021
@scpeters scpeters merged commit 2cf2c8c into sdf10 Jan 12, 2021
@scpeters scpeters deleted the chapulina/9_to_10 branch January 12, 2021 08:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
🔮 dome Ignition Dome 🏢 edifice Ignition Edifice
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants