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

Top usability issues from Fall 2022 manipulation projects #18452

Closed
4 of 16 tasks
RussTedrake opened this issue Dec 14, 2022 · 4 comments
Closed
4 of 16 tasks

Top usability issues from Fall 2022 manipulation projects #18452

RussTedrake opened this issue Dec 14, 2022 · 4 comments
Assignees
Labels
component: tutorials Drake's tutorials, examples, and website content priority: low type: usability When a feature is awkward, confusing, or undiscoverable

Comments

@RussTedrake
Copy link
Contributor

RussTedrake commented Dec 14, 2022

I am combing back through the long list of discussions with students this project season, and wanted to call out the hottest hot spots all in one place. I will reference existing issues and am happy to triage these out into new issues, too. But I wanted to provide a wholistic view at least once.

Again, I will try to clean / curate these. But this is a first pass.

@RussTedrake RussTedrake added priority: low component: tutorials Drake's tutorials, examples, and website content labels Dec 14, 2022
@RussTedrake RussTedrake self-assigned this Dec 14, 2022
@buoyancy99
Copy link

buoyancy99 commented Dec 14, 2022

We need more documentation. Having the documentations below shall answer 60% of the student questions.

  • More tutorials explaining the concept in MultibodyPlants, including Diagram, Plant, Context, LeafSystem, Port etc
  • Annotated example code of adding robot, objects, controller, cameras from scratch (AddManipulationStation seems to be a great one, but it's nicer to be made into a tutorial)
  • Annotated example code of adding a few different controllers to robot and chain ports
  • Annotated example of initialize object locations with SetFreeBodyPose after diagram is finalized, example of initialize robot joints such that end effector is at desired initial position after diagram is finalized
  • Annotated example of chaining multiple Systems
  • Annotated example code of adding a LeafSystem (e.g. Planner in clutter picking)
  • When simulation stops due to stability, print links to debugging resources (make sim step smaller, add sphere to corner of cube etc.)
  • High level APIs and documentation for manipulation such as "Planner" class in clutter clearing demo which takes in source and target end-effector positions (and maybe collision bodies in the scene) and output a trajectory (or joint command)
  • After these examples are added, update drake tutorial on website such that we have some page pointing to all MultiBodyPlant/Robotic Manipulation resources

@ggould-tri
Copy link
Contributor

Having spent a couple of days fighting with different obj issues in the meldis pipeline:

  • The biggest issue I had was the lack of error feedback. obj -- especially when accompanied by mtl and png -- is hard to get right, doubly so when it interacts with bazel; when the only error is is Ignoring Meshcat http request -- or just a missing or all-black visualization -- then even when it's because of an invalid file or user error, the user can't remediate it regardless.
  • The error messages are made harder to debug by the design of meldis: Lambdas hung off of hooks means error messages are nonlocal and lack stack traces to the actual logical point of origin (likely on the other end of a network connection). We're definitely missing some error return path or other.
  • Even flagging what process+thread generated the error and what file it was processing when it did so would be helpful.

FYI: glTF can but does not necessarily fix this problem: It has the option for the external data to be included directly inline, but does not require it. Still, it would be an improvement.

@jwnimmer-tri
Copy link
Collaborator

People still saw SystemExit: condition 'Delta >0' failed #14590.

I thought #17557 was supposed to help ...

The #17557 was just a unit-test-only lemma. No user behavior changed.

@RussTedrake
Copy link
Contributor Author

Within reason, I've connected all of the issues on my list above with feature requests or fixes. Will close this roll-up in favor of tracking the individual requests.

RussTedrake added a commit to RussTedrake/drake that referenced this issue May 24, 2023
I've found that even a little nudge to say "your system is probably
unstable" and "no, the discrete-time multibodyplant is not (directly)
to blame, look at the continuous-state parts of your system" can help
them understand/resolve.

Related to RobotLocomotion#18452.
sherm1 pushed a commit that referenced this issue May 24, 2023
I've found that even a little nudge to say "your system is probably
unstable" and "no, the discrete-time multibodyplant is not (directly)
to blame, look at the continuous-state parts of your system" can help
them understand/resolve.

Related to #18452.
RussTedrake added a commit to RussTedrake/drake that referenced this issue Jul 3, 2023
…ion#19481)

I've found that even a little nudge to say "your system is probably
unstable" and "no, the discrete-time multibodyplant is not (directly)
to blame, look at the continuous-state parts of your system" can help
them understand/resolve.

Related to RobotLocomotion#18452.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
component: tutorials Drake's tutorials, examples, and website content priority: low type: usability When a feature is awkward, confusing, or undiscoverable
Projects
None yet
Development

No branches or pull requests

4 participants