Skip to content

parser_urdf: ReduceSDFExtension*FrameReplace functions are broken in libsdformat10+ #746

@scpeters

Description

@scpeters

Environment

  • OS Version: tested on macOS 10.15 but I expect it's a problem on Ubuntu as well
  • Source or binary build? both source and binary for any version newer than 10.0.0

Description

While attempting to merge forward #500 from 9 -> 10 (follow-up to #741), I found that the test added in #500 was failing. The test passes on the sdf6 and sdf9 branches, which use tinyxml, but was failing in my first merge attempt to sdf10, which uses tinyxml2. I manually forward-ported a portion of the test for the ReduceSDFExtensionPluginFrameReplace function in parser_urdf.cc in #745 and noticed a problem in the use of the tinyxml2 API in all the ReduceSDFExtension*FrameReplace functions.

  • Expected behavior: ReduceSDFExtension*FrameReplace functions should take effect on blocks of SDFormat contained in links that are consolidated via fixed-joint reduction.
  • Actual behavior: These functions are not taking effect since the tinyxml2 migration occurred in Migrate to using TinyXML2 #264

Steps to reproduce

  1. Add relevant SDFormat blocks to a test URDF like fixed_joint_reduction_plugin_frame_extension.urdf such that the name of the child link to be consolidated is listed in a bodyName field (for fixed_joint_reduction_plugin_frame_extension.urdf, this would be link2).
  2. Convert the file to SDFormat using ign sdf -p
  3. Expect the bodyName field to be changed to the name of the parent link (for fixed_joint_reduction_plugin_frame_extension.urdf, this would be base_link).

Output

Functions that need a test and fix:

Metadata

Metadata

Assignees

No one assigned

    Labels

    URDFURDF parsingbugSomething isn't workinggood first issueGood for newcomers

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions