RobotLocomotion / drake

Model-based design and verification for robotics.
https://drake.mit.edu
Other
3.35k stars 1.27k forks source link

[geometry] Documentation to inform user-facing decisions discoverable #13314

Closed SeanCurtis-TRI closed 2 years ago

SeanCurtis-TRI commented 4 years ago

Problem

There are, ultimately, design issues in the API that affect end users decisions. Many of these have been documented in the code. In some case, they've been included in the documentation for private or internal APIs. As such, the information is not discoverable through doxygen. This is part of a larger trend.

Examples:

Solution

We need to scrub through the geometry code and distill the documentation into a better user guide. Through the use of tags and anchors, documentation for internal APIs can call back to that documentation so that it doesn't get duplicated.

Complexity

There are several issues that makes this harder than one might think at first. Taking parsing as an example:

So, the goal would be to document behavior once such that it serves both developer and user without introducing entropy (needlessly).

DamrongGuoy commented 3 years ago

Thank you for explanation. It took me a while to understand. It is indeed tricky to maintain the balance of users and developers.

rpoyner-tri commented 2 years ago

As a warmup, I searched for @anchor tags that are defined within a namespace internal block. Here are the results:

So, the broken-link problems are covered by #14107. Next is to try to discover the full set of drake: extensions to SDF/URDF and their documentation.

rpoyner-tri commented 2 years ago

Here are all of the potential element/attribute names found, within multibody/parsing.

Summary: nothing is documented in any renderable place, much is undocumented. Several language definition questions need resolving.

rpoyner-tri commented 2 years ago

Boxes are checked. Of course it's not all perfect, but I think good enough to declare victory here. Closing.