From 16a0f15ab6012a0bf2439d4b840acffbc424ab0d Mon Sep 17 00:00:00 2001 From: silencht Date: Wed, 29 Oct 2025 16:53:56 +0800 Subject: [PATCH] [update] docs and bump lib version --- CHANGELOG.md | 14 ++++ CHANGELOG_zh-CN.md | 18 +++++ README.md | 14 ++-- README_zh-CN.md | 132 +++++++++++++++++++++++----------- teleop/teleimager | 2 +- teleop/teleop_hand_and_arm.py | 11 ++- teleop/televuer | 2 +- 7 files changed, 138 insertions(+), 55 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b0b2596..8abc4f8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,19 @@ # 🔖 Release Note +## 🏷️ v1.4 + +- The **image server** has been changed to [teleimager](https://github.com/silencht/teleimager). Please refer to the repository README for details. + +- [televuer](https://github.com/silencht/televuer) has been upgraded. Please see the repository README for details. + + > The new versions of [teleimager](https://github.com/silencht/teleimager/commit/ab5018691943433c24af4c9a7f3ea0c9a6fbaf3c) + [televuer](https://github.com/silencht/televuer/releases/tag/v3.0) support transmitting head camera images via **WebRTC**. + +- Enriched the task information parameters in **recording mode**, fixing and improving EpisodeWriter. +- Improved the system’s **state machine** information and IPC mode. +- Added **pass-through mode**, allowing direct viewing of the external environment through a VR device camera (without using the robot’s head camera). +- Added **CPU affinity mode**. If you are not familiar with this mode, you can ignore it. +- Added **motion-switcher** functionality, allowing automatic debug mode entry and exit without using a remote controller. + ## 🏷️ v1.3 - add [![Unitree LOGO](https://camo.githubusercontent.com/ff307b29fe96a9b115434a450bb921c2a17d4aa108460008a88c58a67d68df4e/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4769744875622d57696b692d3138313731373f6c6f676f3d676974687562)](https://github.com/unitreerobotics/xr_teleoperate/wiki) [![Unitree LOGO](https://camo.githubusercontent.com/6f5253a8776090a1f89fa7815e7543488a9ec200d153827b4bc7c3cb5e1c1555/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f2d446973636f72642d3538363546323f7374796c653d666c6174266c6f676f3d446973636f7264266c6f676f436f6c6f723d7768697465)](https://discord.gg/ZwcVwxv5rq) diff --git a/CHANGELOG_zh-CN.md b/CHANGELOG_zh-CN.md index aa75c40..d8467b6 100644 --- a/CHANGELOG_zh-CN.md +++ b/CHANGELOG_zh-CN.md @@ -1,5 +1,23 @@ # 🔖 版本说明 +## 🏷️ v1.4 + +- **图像服务器**变更为 [teleimager](https://github.com/silencht/teleimager),具体请查看仓库README。 + +- 升级 [televuer](https://github.com/silencht/televuer),具体请查看仓库README。 + + > 新版本的 [teleimager](https://github.com/silencht/teleimager/commit/ab5018691943433c24af4c9a7f3ea0c9a6fbaf3c) + [televuer](https://github.com/silencht/televuer/releases/tag/v3.0) 支持通过 **webrtc** 传输头部相机图像 + +- 丰富**录制模式**下的任务信息传递参数,修复和完善 EpisodeWriter。 + +- 完善系统的**状态机信息**、IPC模式。 + +- 新增 **pass-through 模式**,可以通过VR设备摄像头直接透视外界环境(而不借助机器人头部相机) + +- 新增 **affinity CPU 亲和模式**,如果你不了解该模式,那么请无视它。 + +- 新增 **motion-switcher 功能**,无需遥控器即可自动进退 debug 模式。 + ## 🏷️ v1.3 - 添加 [![Unitree LOGO](https://camo.githubusercontent.com/ff307b29fe96a9b115434a450bb921c2a17d4aa108460008a88c58a67d68df4e/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4769744875622d57696b692d3138313731373f6c6f676f3d676974687562)](https://github.com/unitreerobotics/xr_teleoperate/wiki) [![Unitree LOGO](https://camo.githubusercontent.com/6f5253a8776090a1f89fa7815e7543488a9ec200d153827b4bc7c3cb5e1c1555/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f2d446973636f72642d3538363546323f7374796c653d666c6174266c6f676f3d446973636f7264266c6f676f436f6c6f723d7768697465)](https://discord.gg/ZwcVwxv5rq) diff --git a/README.md b/README.md index 45569f1..c431123 100644 --- a/README.md +++ b/README.md @@ -36,15 +36,17 @@ # 🔖[Release Note](CHANGELOG.md) -## 🏷️ v1.3 +## 🏷️ v1.4 -- add [![Unitree LOGO](https://camo.githubusercontent.com/ff307b29fe96a9b115434a450bb921c2a17d4aa108460008a88c58a67d68df4e/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4769744875622d57696b692d3138313731373f6c6f676f3d676974687562)](https://github.com/unitreerobotics/xr_teleoperate/wiki) [![Unitree LOGO](https://camo.githubusercontent.com/6f5253a8776090a1f89fa7815e7543488a9ec200d153827b4bc7c3cb5e1c1555/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f2d446973636f72642d3538363546323f7374796c653d666c6174266c6f676f3d446973636f7264266c6f676f436f6c6f723d7768697465)](https://discord.gg/ZwcVwxv5rq) +- The **image server** has been changed to [teleimager](https://github.com/silencht/teleimager). Please refer to the repository README for details. -- Support **IPC mode**, defaulting to use SSHKeyboard for input control. -- Merged motion mode support for H1_2 robot. -- Merged motion mode support for the G1_23 robot arm. +- [televuer](https://github.com/silencht/televuer) has been upgraded. Please see the repository README for details. -- ··· + > The new versions of [teleimager](https://github.com/silencht/teleimager/commit/ab5018691943433c24af4c9a7f3ea0c9a6fbaf3c) + [televuer](https://github.com/silencht/televuer/releases/tag/v3.0) support transmitting head camera images via **WebRTC**. + +- Improved the system’s **state machine** information and IPC mode. +- Added **pass-through mode**, allowing direct viewing of the external environment through a VR device camera (without using the robot’s head camera). +- ... # 0. 📖 Introduction diff --git a/README_zh-CN.md b/README_zh-CN.md index 87a0e37..ea5d04e 100644 --- a/README_zh-CN.md +++ b/README_zh-CN.md @@ -36,13 +36,17 @@ # 🔖 [版本说明](CHANGELOG_zh-CN.md) -## 🏷️ v1.3 +## 🏷️ v1.4 -- 添加 [![Unitree LOGO](https://camo.githubusercontent.com/ff307b29fe96a9b115434a450bb921c2a17d4aa108460008a88c58a67d68df4e/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4769744875622d57696b692d3138313731373f6c6f676f3d676974687562)](https://github.com/unitreerobotics/xr_teleoperate/wiki) [![Unitree LOGO](https://camo.githubusercontent.com/6f5253a8776090a1f89fa7815e7543488a9ec200d153827b4bc7c3cb5e1c1555/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f2d446973636f72642d3538363546323f7374796c653d666c6174266c6f676f3d446973636f7264266c6f676f436f6c6f723d7768697465)](https://discord.gg/ZwcVwxv5rq) +- **图像服务器**变更为 [teleimager](https://github.com/silencht/teleimager),具体请查看仓库README。 -- 支持 **IPC 模式**,默认使用 SSHKeyboard 进行输入控制。 -- 合并 **H1_2** 机器人新增运动模式支持。 -- 合并 **G1_23** 机械臂新增运动模式支持。 +- 升级 [televuer](https://github.com/silencht/televuer),具体请查看仓库README。 + + > 新版本的 [teleimager](https://github.com/silencht/teleimager/commit/ab5018691943433c24af4c9a7f3ea0c9a6fbaf3c) + [televuer](https://github.com/silencht/televuer/releases/tag/v3.0) 支持通过 webrtc 传输头部相机图像 + +- 完善系统的**状态机**信息、IPC模式。 + +- 新增 **pass-through 模式**,可以通过VR设备摄像头直接透视外界环境(而不借助机器人头部相机) - ··· @@ -57,11 +61,12 @@ 以下是系统示意图:

- - Watch the Document + + Watch the Document

+ 以下是本仓库目前支持的设备类型: @@ -126,14 +131,42 @@ (tv) unitree@Host:~$ cd xr_teleoperate # 浅克隆子模块 (tv) unitree@Host:~/xr_teleoperate$ git submodule update --init --depth 1 +``` + +```bash # 安装 televuer 模块 (tv) unitree@Host:~/xr_teleoperate$ cd teleop/televuer (tv) unitree@Host:~/xr_teleoperate/teleop/televuer$ pip install -e . # 生成 televuer 模块所需的证书文件 +# 1. 如果您使用 pico / quest 等 xr 设备 (tv) unitree@Host:~/xr_teleoperate/teleop/televuer$ openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout key.pem -out cert.pem +# 2. 如果您使用 apple vision pro 设备 +(tv) unitree@Host:~/xr_teleoperate/teleop/televuer$ openssl genrsa -out rootCA.key 2048 +(tv) unitree@Host:~/xr_teleoperate/teleop/televuer$ openssl req -x509 -new -nodes -key rootCA.key -sha256 -days 365 -out rootCA.pem -subj "/CN=xr-teleoperate" +(tv) unitree@Host:~/xr_teleoperate/teleop/televuer$ openssl genrsa -out key.pem 2048 +(tv) unitree@Host:~/xr_teleoperate/teleop/televuer$ openssl req -new -key key.pem -out server.csr -subj "/CN=localhost" + ## 创建 server_ext.cnf 文件,输入以下内容(IP.2 地址应与您的 主机 IP 地址匹配,假设此处地址为 192.168.123.2。可以使用 `ifconfig` 等类似命令查询) +(tv) unitree@Host:~/xr_teleoperate/teleop/televuer$ vim server_ext.cnf +subjectAltName = @alt_names +[alt_names] +DNS.1 = localhost +IP.1 = 192.168.123.164 +IP.2 = 192.168.123.2 +(tv) unitree@Host:~/xr_teleoperate/teleop/televuer$ openssl x509 -req -in server.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -out cert.pem -days 365 -sha256 -extfile server_ext.cnf +(tv) unitree@Host:~/xr_teleoperate/teleop/televuer$ ls +build cert.pem key.pem LICENSE pyproject.toml README.md rootCA.key rootCA.pem rootCA.srl server.csr server_ext.cnf src test +# 开启防火墙 +(tv) unitree@Host:~/xr_teleoperate/teleop/televuer$ sudo ufw allow 8012 +# 通过 AirDrop 将 rootCA.pem 复制到 Apple Vision Pro 并安装它 +``` + +```bash # 安装 dex-retargeting 模块 (tv) unitree@Host:~/xr_teleoperate/teleop/televuer$ cd ../robot_control/dex-retargeting/ (tv) unitree@Host:~/xr_teleoperate/teleop/robot_control/dex-retargeting$ pip install -e . +``` + +```bash # 安装本仓库所需的其他依赖库 (tv) unitree@Host:~/xr_teleoperate/teleop/robot_control/dex-retargeting$ cd ../../../ (tv) unitree@Host:~/xr_teleoperate$ pip install -r requirements.txt @@ -174,6 +207,8 @@ ## 2.1 📥 环境配置 +> v1.4 版本仿真部署暂未上线,请暂时使用 v1.3 进行测试 + 首先,请安装 [unitree_sim_isaaclab](https://github.com/unitreerobotics/unitree_sim_isaaclab)。具体安装步骤,可参考该仓库 README 文档。 其次,启动 unitree_sim_isaaclab 仿真环境。假设使用 G1(29 DoF) 和 Dex3 灵巧手配置进行仿真,则启动命令示例如下: @@ -208,20 +243,28 @@ - 基础控制参数 -| ⚙️ 参数 | 📜 说明 | 🔘 目前可选值 | 📌 默认值 | -| :---------: | :----------------------------------------------: | :------------------------------------------------------: | :------: | -| `--xr-mode` | 选择 XR 输入模式(通过什么方式控制机器人) | `hand`(**手势跟踪**)
`controller`(**手柄跟踪**) | `hand` | -| `--arm` | 选择机器人设备类型(可参考 0. 📖 介绍) | `G1_29`
`G1_23`
`H1_2`
`H1` | `G1_29` | -| `--ee` | 选择手臂的末端执行器设备类型(可参考 0. 📖 介绍) | `dex1`
`dex3`
`inspire1`
`brainco` | 无默认值 | +| ⚙️ 参数 | 📜 说明 | 🔘 目前可选值 | 📌 默认值 | +| :-----------: | :----------------------------------------------: | :------------------------------------------------------: | :------: | +| `--frequency` | 设置录制和控制的 FPS | 任意浮点数 | 30.0 | +| `--xr-mode` | 选择 XR 输入模式(通过什么方式控制机器人) | `hand`(**手势跟踪**)
`controller`(**手柄跟踪**) | `hand` | +| `--arm` | 选择机器人设备类型(可参考 0. 📖 介绍) | `G1_29`
`G1_23`
`H1_2`
`H1` | `G1_29` | +| `--ee` | 选择手臂的末端执行器设备类型(可参考 0. 📖 介绍) | `dex1`
`dex3`
`inspire1`
`brainco` | 无默认值 | - 模式开关参数 -| ⚙️ 参数 | 📜 说明 | -| :----------: | :----------------------------------------------------------: | -| `--record` | 【启用**数据录制**模式】
按 **r** 键进入遥操后,按 **s** 键可开启数据录制,再次按 **s** 键可结束录制并保存本次 episode 数据。
继续按下 **s** 键可重复前述过程。 | -| `--motion` | 【启用**运动控制**模式】
开启本模式后,可在机器人运控程序运行下进行遥操作程序。
**手势跟踪**模式下,可使用 [R3遥控器](https://www.unitree.com/cn/R3) 控制机器人正常行走;**手柄跟踪**模式下,也可使用[手柄摇杆控制机器人行走](https://github.com/unitreerobotics/xr_teleoperate/blob/375cdc27605de377c698e2b89cad0e5885724ca6/teleop/teleop_hand_and_arm.py#L247-L257)。 | -| `--headless` | 【启用**无图形界面**模式】
适用于本程序部署在开发计算单元(PC2)等无显示器情况 | -| `--sim` | 【启用[**仿真模式**](https://github.com/unitreerobotics/unitree_sim_isaaclab)】 | +| ⚙️ 参数 | 📜 说明 | +| :---------------: | :----------------------------------------------------------: | +| `--motion` | 【启用**运动控制**模式】
开启本模式后,可在机器人运控程序运行下进行遥操作程序。
**手势跟踪**模式下,可使用 [R3遥控器](https://www.unitree.com/cn/R3) 控制机器人正常行走;**手柄跟踪**模式下,也可使用[手柄摇杆控制机器人行走](https://github.com/unitreerobotics/xr_teleoperate/blob/375cdc27605de377c698e2b89cad0e5885724ca6/teleop/teleop_hand_and_arm.py#L247-L257)。 | +| `--headless` | 【启用**无图形界面**模式】
适用于本程序部署在开发计算单元(PC2)等无显示器情况 | +| `--sim` | 【启用[**仿真模式**](https://github.com/unitreerobotics/unitree_sim_isaaclab)】 | +| `--ipc` | 【进程间通信模式】
可通过进程间通信来控制 xr_teleoperate 程序的状态切换,此模式适合与代理程序进行交互 | +| `--pass-through` | 【透视模式】
在 VR 头显中使用透视模式直接观察外部环境(而不是使用机器人头部相机视频流) | +| `--img-server-ip` | 设置图像服务器的 IP 地址,用于接收图像服务流、配置 WebRTC 信令服务地址 | +| `--affinity` | 【CPU亲和模式】
设置 CPU 核心亲和性。如果你不知道这是什么,那么请不要设置它。 | +| `--record` | 【启用**数据录制**模式】
按 **r** 键进入遥操后,按 **s** 键可开启数据录制,再次按 **s** 键可结束录制并保存本次 episode 数据。
继续按下 **s** 键可重复前述过程。 | +| `--task-*` | 此类参数可配置录制的文件保存路径,任务目标、描述、步骤等信息 | + + ------ @@ -303,10 +346,12 @@ > 注意1:录制的数据默认存储在 `xr_teleoperate/teleop/utils/data` 中。数据使用说明见此仓库: [unitree_IL_lerobot](https://github.com/unitreerobotics/unitree_IL_lerobot/blob/main/README_zh.md#%E6%95%B0%E6%8D%AE%E9%87%87%E9%9B%86%E4%B8%8E%E8%BD%AC%E6%8D%A2)。 > > 注意2:请在录制数据时注意您的硬盘空间大小。 +> +> 注意3: v1.4 及以上版本,record image窗口取消。 ## 2.3 🔚 退出 -要退出程序,可以在终端窗口(或 'record image' 窗口)中按下 **q** 键。 +要退出程序,可以在终端窗口中按下 **q** 键。 @@ -318,35 +363,39 @@ 仿真环境中已经自动开启了图像服务。实物部署时,需要针对自身相机硬件类型,手动开启图像服务。步骤如下: -将 `xr_teleoperate/teleop/image_server` 目录中的 `image_server.py` 复制到宇树机器人(G1/H1/H1_2 等)的 **开发计算单元 PC2**。 +1. 在宇树机器人(G1/H1/H1_2 等)的 **开发计算单元 PC2** 中安装图像服务程序 ```bash -# 提醒:可以通过scp命令将image_server.py传输到PC2,然后使用ssh远程登录PC2后执行它。 -# 假设开发计算单元PC2的ip地址为192.168.123.164,那么传输过程示例如下: -# 先ssh登录PC2,创建图像服务器的文件夹 -(tv) unitree@Host:~$ ssh unitree@192.168.123.164 "mkdir -p ~/image_server" -# 将本地的image_server.py拷贝至PC2的~/image_server目录下 -(tv) unitree@Host:~$ scp ~/xr_teleoperate/teleop/image_server/image_server.py unitree@192.168.123.164:~/image_server/ +# ssh登录PC2,下载图像服务程序仓库 +(base) unitree@PC2:~$ cd ~ +(base) unitree@PC2:~$ git clone https://github.com/silencht/teleimager +# 根据 teleimager 仓库的 https://github.com/silencht/teleimager/blob/main/README.md 文档说明来配置环境 ``` -并在 **PC2** 上执行以下命令: +2. 在**本地主机**上执行以下命令: ```bash -# 提醒:目前该图像传输程序支持OpenCV和Realsense SDK两种读取图像的方式,请阅读image_server.py的ImageServer类的注释以便您根据自己的相机硬件来配置自己的图像传输服务。 -# 现在位于宇树机器人 PC2 终端 -unitree@PC2:~/image_server$ python image_server.py -# 您可以看到终端输出如下: -# {'fps': 30, 'head_camera_type': 'opencv', 'head_camera_image_shape': [480, 1280], 'head_camera_id_numbers': [0]} -# [Image Server] Head camera 0 resolution: 480.0 x 1280.0 -# [Image Server] Image server has started, waiting for client connections... +# 将本地主机 xr_teleoperate/teleop/televuer 路径下在 1.1 节配置的 key.pem 和 cert.pem 文件拷贝到 PC2 对应路径 +(tv) unitree@Host:~$ scp ~/xr_teleoperate/teleop/televuer/key.pem ~/xr_teleoperate/teleop/televuer/cert.pem unitree@192.168.123.164:~/teleimager ``` -在图像服务启动后,您可以在 **主机** 终端上使用 `image_client.py` 测试通信是否成功: +3. 在**开发计算单元 PC2** 中按照 teleimager 文档配置 cam_config.yaml 并启动图像服务程序 ```bash -(tv) unitree@Host:~/xr_teleoperate/teleop/image_server$ python image_client.py +# 假设使用 conda 创建环境 +(teleimager) unitree@PC2:~/image_server$ sudo $(which python) image_server.py ``` +4. 在**本地主机**上执行以下命令订阅图像: + +```bash +(tv) unitree@Host:~$ cd ~/xr_teleoperate/teleop/teleimager/src +(tv) unitree@Host:~/xr_teleoperate/teleop/teleimager/src$ python -m teleimager.image_client +# 如果设置了 WebRTC 图像流,那么可以在浏览器中通过 https://192.168.123.164:60001 打开网址,随后点击 Start 按钮进行测试 +``` + + + ## 3.2 ✋ Inspire 手部服务(可选) > 注意1:如果选择的机器人配置中没有使用 Inspire 系列灵巧手,那么请忽略本节内容。 @@ -396,8 +445,7 @@ sudo ./brainco_hand --id 127 --serial /dev/ttyUSB2 > > 1. 所有人员必须与机器人保持安全距离,以防止任何潜在的危险! > 2. 在运行此程序之前,请确保至少阅读一次 [官方文档](https://support.unitree.com/home/zh/Teleoperation)。 -> 3. 没有开启**运动控制**模式(`--motion`)时,请务必确保机器人已经进入 [调试模式(L2+R2)](https://support.unitree.com/home/zh/G1_developer/remote_control),以停止运动控制程序发送指令,这样可以避免潜在的指令冲突问题。 -> 4. 如果要开启**运动控制**模式遥操作,请提前使用 [R3遥控器](https://www.unitree.com/cn/R3) 确保机器人进入主运控模式。 +> 3. 如果要开启**运动控制**模式遥操作,请提前使用 [R3遥控器](https://www.unitree.com/cn/R3) 确保机器人进入主运控模式。 > 5. 开启**运动控制**模式(`--motion`)时: > - 右手柄按键 `A` 为遥操作**退出**功能按键; > - 左手柄和右手柄的两个摇杆按键同时按下为软急停按键,机器人会退出运控程序并进入阻尼模式,该功能只在必要情况下使用 @@ -430,9 +478,7 @@ xr_teleoperate/ ├── hardware [存储 3D 打印模组] │ ├── teleop -│ ├── image_server -│ │ ├── image_client.py [用于从机器人图像服务器接收图像数据] -│ │ ├── image_server.py [从摄像头捕获图像并通过网络发送(在机器人板载计算单元PC2上运行)] +│ ├── teleimager [全新的图像服务库,支持多种特性] │ │ │ ├── televuer │ │ ├── src/televuer @@ -454,6 +500,9 @@ xr_teleoperate/ │ │ ├── episode_writer.py [用于记录模仿学习的数据] │ │ ├── weighted_moving_filter.py [用于过滤关节数据的滤波器] │ │ ├── rerun_visualizer.py [用于可视化录制数据] +│ │ ├── ipc.py [用于和代理程序进行进程间通信] +│ │ ├── motion_switcher.py [用于切换运控状态] +│ │ ├── sim_state_topic.py [用于仿真部署] │ │ │ │──teleop_hand_and_arm.py [遥操作的启动执行代码] ``` @@ -477,3 +526,4 @@ xr_teleoperate/ 7. https://github.com/zeromq/pyzmq 8. https://github.com/Dingry/BunnyVisionPro 9. https://github.com/unitreerobotics/unitree_sdk2_python +10. https://github.com/ARCLab-MIT/beavr-bot diff --git a/teleop/teleimager b/teleop/teleimager index 7b10e99..ab50186 160000 --- a/teleop/teleimager +++ b/teleop/teleimager @@ -1 +1 @@ -Subproject commit 7b10e99ffce23dfed31ec9a46b46ce3b1a4dde8a +Subproject commit ab5018691943433c24af4c9a7f3ea0c9a6fbaf3c diff --git a/teleop/teleop_hand_and_arm.py b/teleop/teleop_hand_and_arm.py index b311269..0eded0c 100644 --- a/teleop/teleop_hand_and_arm.py +++ b/teleop/teleop_hand_and_arm.py @@ -75,9 +75,8 @@ def get_state() -> dict: if __name__ == '__main__': parser = argparse.ArgumentParser() - parser.add_argument('--frequency', type = float, default = 30.0, help = 'save and control \'s frequency') - # basic control parameters + parser.add_argument('--frequency', type = float, default = 30.0, help = 'control and record \'s frequency') parser.add_argument('--xr-mode', type=str, choices=['hand', 'controller'], default='hand', help='Select XR device tracking source') parser.add_argument('--arm', type=str, choices=['G1_29', 'G1_23', 'H1_2', 'H1'], default='G1_29', help='Select arm controller') parser.add_argument('--ee', type=str, choices=['dex1', 'dex3', 'inspire1', 'brainco'], help='Select end effector controller') @@ -85,10 +84,10 @@ if __name__ == '__main__': parser.add_argument('--motion', action = 'store_true', help = 'Enable motion control mode') parser.add_argument('--headless', action='store_true', help='Enable headless mode (no display)') parser.add_argument('--sim', action = 'store_true', help = 'Enable isaac simulation mode') - parser.add_argument('--affinity', action = 'store_true', help = 'Enable high priority and set CPU affinity mode') parser.add_argument('--ipc', action = 'store_true', help = 'Enable IPC server to handle input; otherwise enable sshkeyboard') parser.add_argument('--pass-through', action='store_true', help='Enable passthrough mode (use real-world view in XR device)') - parser.add_argument('--img-server-ip', type=str, default='127.0.0.1', help='IP address of image server') + parser.add_argument('--img-server-ip', type=str, default='192.168.123.164', help='IP address of image server') + parser.add_argument('--affinity', action = 'store_true', help = 'Enable high priority and set CPU affinity mode') # record mode and task info parser.add_argument('--record', action = 'store_true', help = 'Enable data recording mode') parser.add_argument('--task-dir', type = str, default = './utils/data/', help = 'path to save data') @@ -206,8 +205,8 @@ if __name__ == '__main__': loco_wrapper = LocoClientWrapper() else: motion_switcher = MotionSwitcher() - status, result = motion_switcher.Enter_Debug_Mode() - logger_mp.info(f"Enter debug mode: {status}, {result}") + # status, result = motion_switcher.Enter_Debug_Mode() + # logger_mp.info(f"Enter debug mode: {status}, {result}") # record + headless / non-headless mode if args.record: diff --git a/teleop/televuer b/teleop/televuer index 3d4aea5..740b2bd 160000 --- a/teleop/televuer +++ b/teleop/televuer @@ -1 +1 @@ -Subproject commit 3d4aea5a34eab987135675b64487adf66f44c94b +Subproject commit 740b2bdb173b7cab52e9a888ce73976f59be7a59