Skip to content

Reset Workspace Walls When Customizing Configurations #139

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

Merged
merged 1 commit into from
May 11, 2024

Conversation

amalnanavati
Copy link
Contributor

@amalnanavati amalnanavati commented May 9, 2024

Describe this pull request. Link to relevant GitHub issues, if any.

As of ada_feeding#181, the robot code exposes an action to recompute workspace walls based on the currently-used robot arm configurations. This PR modifies the web app to call that action every time a configuration parameter is saved. This enables users to customize configurations without worrying about it leading the robot to be in collision with the workspace walls.

Explain how this pull request was tested, including but not limited to the below checkmarks.

  • Launch the code in real: python3 src/ada_feeding/start.py
  • Expected Behavior Test:
    • In the web app, start with the default preset, and then create a new preset.
    • Customize the staging configuration to have the arm clearly collides with the right wall (e.g., rotate joint 1 to the right).
    • Verify that the workspace walls update.
    • Verify that the robot is able to move above the plate.
    • Eat an entire bite with this configuration.
  • Stress Test 1:
    • Go back to customizing the staging configuration. Hit multiple teleop buttons one after the other. Verify that the workspace walls update as expected, and there aren't issues from calling the action may times one-after-the-other.
  • Stress Test 2:
    • Customize the above plate, resting, and staging configurations. Verify that a whole bite still works.
  • If all of the above works, try to use the web app interface to find a "staging + resting" pair that shortens the motion the arm takes to the staging configuration.
    • (If the above is difficult, use it to motivate improvements to the UX.)

Future Work

  • The main issues with customizing all the configurations to get "short" robot arm motions was: (a) wrench thresholds exceeded, particularly if we did a full rotation of the arm; and (b) rosbridge / ros2 not reliably sending messages. Nothing dangerous happened as a result of this, but it sometimes slowed progress and it was unclear what to do.
  • Currently, the customization page does quite a few things "silently" e.g., saving the parameters, activating the cartesian controller, recomputing workspace walls. Because the invokation of these services/actions are silent, their failures are also silent, which can led to unintuitive behaviors. Find a way to visually capture this silent information, for increased transparency.

Before creating a pull request

  • Format React code with npm run format
  • Format Python code by running python3 -m black . in the top-level of this repository
  • Thoroughly test your code's functionality, including unintended uses.
  • Fully test the responsiveness of the feature as documented in the Responsiveness Testing Guidelines. If you deviate from those guidelines, document above why you deviated and what you did instead.
  • Consider the user flow between states that this feature introduces, consider different situations that might occur for the user, and ensure that there is no way for the user to get stuck in a loop.

Before merging a pull request

  • Squash all your commits into one (or Squash and Merge)

@amalnanavati amalnanavati merged commit cde96aa into main May 11, 2024
4 checks passed
@amalnanavati amalnanavati deleted the amaln/workspace_walls branch May 11, 2024 02:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant