diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index b8dea2d..c7130c3 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -34,17 +34,17 @@ jobs: git config --global user.name "${{ github.actor }}" git config --global user.email "${{ github.actor }}@users.noreply.github.com" - - run: uv run --extra doc mike deploy -b gh-pages latest --push - if: "github.ref == 'refs/heads/main'" + - run: uv run --extra doc mike deploy -b gh-pages dev --push + if: github.ref == 'refs/heads/main' - - if: "startsWith(github.ref, 'refs/heads/docs')" + - if: startsWith(github.ref, 'refs/heads/docs') id: check-version uses: samuelcolvin/check-python-version@v4.1 with: version_file_path: 'src/aact/__about__.py' skip_env_check: true - - run: uv run --extra doc mike deploy -b gh-pages ${{ steps.check-version.outputs.VERSION_MAJOR_MINOR }} latest --update-aliases --push - if: "startsWith(github.ref, 'refs/heads/docs') && !fromJSON(steps.check-version.outputs.IS_PRERELEASE)" + - run: uv run --extra doc mike deploy -b gh-pages ${{ steps.check-version.outputs.VERSION }} latest --update-aliases --push + if: startsWith(github.ref, 'refs/heads/docs') && !fromJSON(steps.check-version.outputs.IS_PRERELEASE) env: - PYDANTIC_VERSION: v${{ steps.check-version.outputs.VERSION }} + AACT_VERSION: v${{ steps.check-version.outputs.VERSION }} diff --git a/docs/applications/robot-teleoperation.md b/docs/applications/robot-teleoperation.md new file mode 100644 index 0000000..05bb98d --- /dev/null +++ b/docs/applications/robot-teleoperation.md @@ -0,0 +1,64 @@ +# Teleoperating Robots with AAct, Quest, and Stretch + +The latency of the AAct system is low enough to allow for teleoperating robots in real-time. This is a powerful capability that can be used for a variety of applications, such as teleoperating a robot to perform a task in a remote location, collecting ego-centric (or together with exocentric) data for training robotics models, or deploying and evaluating models in the real world. + +In this demo (live demoed at CoRL 2024), we are going to use Meta Oculus Quest 3 / Pro and Stretch 3 mobile manipulator. + +## Prerequisites + +### Hardware + +- Meta Quest 3 / Pro. +- Stretch 3 mobile manipulator or Stretch 2R with upgraded webcam. + +### Software + +- Python 3.10. + +## Steps + +The overall steps are: + +- Launch Stretch control loop. +- Launch AAct nodes on Stretch. +- Launch AAct nodes on a local machine. +- Build and launch app on Meta Quest. + +### Launch Stretch control loop + +Before running nodes on stretch, please do these: + +1. Homing: `python -m teleop.stretch_home` +2. Running deamon control loop in a tmux or nohup or screen: `python -m teleop.stretch_control_loop` + +### Launch AAct nodes on Stretch + +You can easily launch the AAct nodes on Stretch by running the following command: + +```bash +aact run-dataflow dataflows/examples/stretch_zmq_streaming.toml +``` + +### Launch AAct nodes on a local machine + +Before this step, please get the IP of your Oculus Quest. And change line 40 in `dataflows/examples/quest_local_redis.toml` to your IP. + +Then, you can launch the AAct nodes on a local machine by running the following command: +```bash +aact run-dataflow dataflows/examples/quest_local_redis.toml +``` + +### Build and launch app on Meta Quest + +We provide the APK file for the app. You can install it on your Meta Quest by running the following command: + +```bash +adb install -r app.apk +``` + +But you can also build the app manually, by building the Unity Project. + + +## Demo + + diff --git a/mkdocs.yml b/mkdocs.yml index 9cffa30..675eb1f 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -80,6 +80,9 @@ nav: - Messages: api/messages.md - AAct CLI: - Commands: api/cli.md +- Applications: + - Robotics: + - Robot Teleoperation: applications/robot-teleoperation.md plugins: - social