Skip to content

[WIP] Documentation #124

Open
hello-vinitha wants to merge 6 commits intomasterfrom
feature/docs
Open

[WIP] Documentation #124
hello-vinitha wants to merge 6 commits intomasterfrom
feature/docs

Conversation

@hello-vinitha
Copy link
Copy Markdown
Collaborator

@hello-vinitha hello-vinitha commented Apr 23, 2025

Description

Added mkdocs that compiles documentation from various sources. The goal is for the documentation is contain all the necessary information to launch, use and develop stretch web teleop.

To Do

  • Tutorial on how to add a customizable component
  • Troubleshooting Instructions
  • Remote use instructions (ngrok)
  • Redo rendering logic figure
  • Tutorial on how to use customization features
  • Contributing guidelines
  • Links to relevant publications
  • Acknowledgments for main contributors

How to Run

  • cd stretch-web-teleop-docs
  • mkdocs serve (if on local machine) or mkdocs serve -a 0.0.0.0:8000 (if on remote machine)
  • Navigate to http://127.0.0.1:8000/ in browser to view docs

Before opening a pull request

From the top-level of this repository, run:

  • pre-commit run --all-files

To merge

  • Squash & Merge

Copy link
Copy Markdown
Contributor

@hello-william hello-william left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

very nice! LGTM

hello-william and others added 2 commits April 25, 2025 12:43
Add brief note on using MkDocs to read documentation.
Copy link
Copy Markdown
Contributor

@hello-robot-shehab hello-robot-shehab left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is awesome documentation @hello-vinitha, thank you!

Maybe adding a link to these docs in the README would be useful. People forget to check the docs sometimes.

There's a TODO in the docs we should update, and the repo has merge conflicts, otherwise looks good. I know it's a WIP PR, but i think there's plenty here to merge, and incrementally add more if you'd like. Thanks!


## Setup & Installation

The interface is compatible with the Stretch RE1, RE2 and SE3. It currently only supports Ubuntu 22.04 and ROS2 Humble. All Stretch SE3's arrive with the interface pre-installed. For Stretch RE1 and RE2, upgrade your operating system if necessary ([instructions](https://docs.hello-robot.com/0.3/installation/robot_install/)) and create/update the Stretch ROS2 Humble workspace ([instructions](https://docs.hello-robot.com/0.3/installation/ros_workspace/)). This will install all package dependencies and install the web teleop interface.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I recommend changing "It currently only supports Ubuntu 22.04 and ROS2 Humble" to only mentioning "ROS2 is required to run this package." so that we don't have to come back and update this doc for future ROS2 and Ubuntu upgrades, thanks!


This file wraps the logic for receiving and transmitting commands, sensor streams, etc. over the WebRTC channels in a nice API for the operator browser. You can think of `RemoteRobot` as the bridge between the operator browser and the robot. The interface creates a single instance of `RemoteRobot` and uses it for the duration of the session that it is connected to the robot. On the other end, the robot browser is listening for commands from / transmitting data to `RemoteRobot`. The robot-side logic can be found in `src/pages/robot/tsx/index.tsx`, which is described [at this section](#indextsx).

Adding new capabilities to the web interface will involve adding functionality to the `RemoteRobot` class. Let's take homing the robot for example. We add a method to the class like so:
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Beautiful architecture 💚


#### `audiostreams.tsx` and `videostreams.tsx`

These files are not needed to add homing functionality. TODO: document these files elsewhere and link to it.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remove the TODO here. Replacement suggestion:

audiostreams.tsx handles creating a browser MediaStream object to play audio in the browser.

videostreams.tsx handles updating an HTML canvas from a ROSCompressedImage object with draw rate handled by requestAnimationFrame

@hello-robot-shehab
Copy link
Copy Markdown
Contributor

hello-robot-shehab and others added 2 commits June 17, 2025 19:44
…uded results from real tests (#132)

* Added a document explaining how to measure WebTeleop Latency and results from my tests

* Moved the images out of the markdown file so that github can display them online

* Changed the webteleop_video_components.jpg to have less text in the image

* Linting pass
added file extension
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.

3 participants