hello-robot / stretch_web_teleop

Remote web teleoperation for the Stretch mobile manipulators from Hello Robot Inc.
Other
13 stars 0 forks source link

Home the robot through the web interface #60

Open hello-binit opened 2 months ago

hello-binit commented 2 months ago

Since some of Stretch's encoders are relative, there's a homing sequence to find zero for those joints when Stretch wakes up. Typically, this would include running the stretch_robot_home.py CLI while SSH-ed into the robot. With the remote teleop capability this repo provides, it would be nice to offer an easy way to home the robot through the web interface. Likely, this would use the /home_the_robot ROS service provided by the driver node (stretch_driver in the Stretch Core pkg) to perform the homing procedure, and the /is_homed topic (std_msgs/Boolean) to check if the robot has been homed.

From a UX perspective, the web interface should disable teleop of all joints that use relative encoders (e.g. arm, lift, wrist yaw, gripper) until the robot has been homed. The button to home the robot should be prominently placed. Other joints (e.g. the mobile base, the head pan/tilt, wrist pitch, and wrist roll) can work normally because their encoders are absolute.

Lastly, but most importantly, the homing procedure involves raising and extending the arm. If the robot is in a narrow area, there's risk that the robot can topple itself or rearrange the environment while it blindly homes the joints. Therefore, the best version of this feature includes a pre-homing scan to confirm that the area immediately surrounding the are is clear of obstacles.

TODOs