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 <[email protected]>
* [sdf8] Changelog links to BitBucket backup

Signed-off-by: Louise Poubel <[email protected]>

* more fixes, new version of script

Signed-off-by: Louise Poubel <[email protected]>

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

Signed-off-by: Louise Poubel <[email protected]>

* Update some more bitbucket issue references

Signed-off-by: Steven Peters <[email protected]>

Co-authored-by: Steven Peters <[email protected]>
* [sdf9] Changelog links to BitBucket backup

Signed-off-by: Louise Poubel <[email protected]>

* [sdf8] Changelog links to BitBucket backup

Signed-off-by: Louise Poubel <[email protected]>

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

Signed-off-by: Louise Poubel <[email protected]>

* Convert bitbucket links for sdf9

Signed-off-by: Steven Peters <[email protected]>

* Fix link in API documentation

Signed-off-by: Steven Peters <[email protected]>

Co-authored-by: Steven Peters <[email protected]>
For backward compatibility if it is not defined compile the tests

Signed-off-by: Silvio <[email protected]>
* Simplify and fix copy constructors, restructure tests and increase coverage
* Add joint and link tests
* Add changelog

Signed-off-by: Luca Della Vedova <[email protected]>

Co-authored-by: Ian Chen <[email protected]>
Co-authored-by: Steve Peters <[email protected]>
* Also use python3 in test

Signed-off-by: Steve Peters <[email protected]>
Signed-off-by: Steve Peters <[email protected]>
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 <[email protected]>
Signed-off-by: Steve Peters <[email protected]>
* Simplify and fix copy constructors, restructure tests and increase coverage
* Add joint and link tests
* Add changelog

Signed-off-by: Luca Della Vedova <[email protected]>

Co-authored-by: Ian Chen <[email protected]>
Co-authored-by: Steve Peters <[email protected]>
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 <[email protected]>
Signed-off-by: Nate Koenig <[email protected]>

Co-authored-by: Nate Koenig <[email protected]>
Signed-off-by: Nate Koenig <[email protected]>

Co-authored-by: Nate Koenig <[email protected]>
* Also use python3 in test

Signed-off-by: Steve Peters <[email protected]>
Signed-off-by: Louise Poubel <[email protected]>

Co-authored-by: Steve Peters <[email protected]>
Signed-off-by: Louise Poubel <[email protected]>

Co-authored-by: Steve Peters <[email protected]>
Signed-off-by: Steve Peters <[email protected]>
chapulina and others added 15 commits October 21, 2020 10:16
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 <[email protected]>
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 <[email protected]>
Signed-off-by: Ian Chen <[email protected]>

Co-authored-by: Louise Poubel <[email protected]>
Co-authored-by: Steve Peters <[email protected]>
Signed-off-by: Nate Koenig <[email protected]>

Co-authored-by: Nate Koenig <[email protected]>
This reverts part of commit
0e77816.

Signed-off-by: Steve Peters <[email protected]>
* add double sided materail param

Signed-off-by: Ian Chen <[email protected]>

* fix loading param

Signed-off-by: Ian Chen <[email protected]>
Signed-off-by: Steve Peters <[email protected]>
Merge forward sdf8 -> sdf9
Signed-off-by: Louise Poubel <[email protected]>

Co-authored-by: Steve Peters <[email protected]>
Signed-off-by: Louise Poubel <[email protected]>
@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