hello-robot / stretch_web_teleop

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

TTS: Adaptivity based on whether the robot is speaking #73

Open hello-amal opened 1 month ago

hello-amal commented 1 month ago

64 implements a streaming text-to-speech, where the ROS node receives commands via a topic and executes them. Unfortunately, this means that the node does not return feedback to the web app. There are several UX improvements that could be made if the node returns feedback:

  1. Changing "Play" to "Queue" while to robot is speaking, to make it clear that the text will not be played immediately.
  2. Only showing the "Stop" button while the robot is speaking.
  3. Allowing the operator to see the queue of utterances and where the robot currently is.

For all three, the most straightforward way to do so is to change the ROS interface to an action, so the web app knows when it is done speaking the utterance. The action interface will make it a bit less straightforward to queue utterances, but that should be doable. For the first two, the action interface will allow the web app to know when an utterance is done speaking. Using that information, the web app can maintain its own queue (which should mirror the ROS node's queue) and display that to the user (for the third point).