-
Notifications
You must be signed in to change notification settings - Fork 0
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
Homing Button #98
Homing Button #98
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Tested the following conditions on 3030
:
- Home button does not appear when robot is homed. State is maintained on page refresh.
- Home button appears when robot is not homed.
Suggestions for improvement:
- Currently the Home button is implemented the way "global controls" (e.g. movement recorder) are. However, this can be misleading if one of the global controls are enabled (see image below). I recommend implementing the home button as an alert (see
basic_components/Alert.tsx
that appears over the header.
- There's a lot of information when you hover that a novice user will not understand. I don't think we need that information in the interface. However, if you would like to keep it I recommend rewriting it to be simpler and adding a question mark icon that you can hover over or click to see the tooltip. (Note: not all users use devices that can hover a cursor such as a stylus)
- Remove rplidar from launch - Add homing button to static components - Show third global control panel in interface - Add HomeTheRobotCommand interface - Handle homeTheRobot commands in RemoteRobot and ROSLib's Robot - Start docs/tutorial on adding commands/components
- Function provider defined - Function provider instantiated in index.tsx - Layout component defined - Layout component instantiated in Operator.tsx - Corresponding CSS defined - More docs
- Register show func in Operator - Add isHomed and mode providers - Register func providers in index.tsx - Show loading in homing interface - Subscribe to /mode and /is_homed topics - Forward to remote robot
d4e551f
to
6440a4e
Compare
Hey @hello-vinitha, thanks for your suggestions! I've updated the UI to be based on the Alert dialog, instead of the operator panels. I think the resulting UX is better. Here's the flow: |
@hello-vinitha friendly ping! |
@hello-binit I made the following changes in the latest commit and verified that it works as expected on
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Verified PR works on 3030
using both a desktop and tablet.
Sweet, everything works on 3004. Merging! |
Description
This PR adds the ability for a user to "home" the robot through the web interface. Since some of Stretch's encoders are relative, there's a homing sequence to find zero for those joints when Stretch wakes up. This PR addresses some of #60; it provides a way to home the robot, but doesn't grey-out un-homed joints, or implement a pre-scan behavior to give the robot confidence that jogging the joints won't cause the robot to topple itself over (this burden is currently placed on the operator).
The added UI looks like this:
Mousing over the Question Mark shows additional information:
Clicking on the button shows a loader:
Once the homing sequence is complete, the UI disappears.
Testing procedure
stretch_robot_dynamixel_reboot.py
.In your Ament workspace, go to Stretch ROS2 and switch to thebugfix/priority_mode_stall
branch. If PR Fix priority modes stalling main loop execution stretch_ros2#162 is merged, you cangit pull
on the default branch.feature/homing
branch.In the same repo, cherry-pick a numpy fix onto the homing branch. The command isgit cherry-pick -n 6dfcf32e50175dff5cfabaa2c581486660f1d143
, followed bygit reset
. If PR Remove numpy pin in Web Teleop #97 is merged, then this step may be unnecessary (depends on whether I've rebased this branch).colcon build
the Ament workspace as usualThe homing button will appear. Click it and it should disappear after homing is complete.
Before opening a pull request
From the top-level of this repository, run:
pre-commit run --all-files
To merge
Squash & Merge
Additional Screenshots
These screenshots are of the first attempt at this UI. It has since been replaced.