Configuração do Host
Primeiramente coloque o G1 no Debug Mode:
- Com o G1 suspenso e em estado de damping (
L2 + B) - Pressione e segure a combinação
L2 + R2no controle remoto por um longo período. O G1 entrará em modo debug. - Pressione
L2 + Apara entrar em modo de posição (position mode) e assumir uma posição específica de diagnóstico. - Pressione
L2 + Bpara retornar ao estado de damping.
Conectando o Quest ao Host
Instalar adb no host
sudo apt-get install adb
Liste os dispositivos:
sudo adb devices
(Sairá algo semelhante):
List of devices attached
2G0YC5ZG6P005M unauthorized
1. Coloque o Quest 3 enquanto ele está conectado via USB.
2. Procure pelo alerta: _Allow USB debugging_?
3. Selecione _Always allow from this computer_ se disponível.
<img src="/img/guides/teleoperacao/AllowUSBDebugging.png" alt="Conexões cabeadas G1, Host e Quest." width="1500" />
Execute `sudo adb devices` novamente.
Saída esperada:
```text
2G0YC5ZG6P005M device
Inicie o redirecionamento de porta:
sudo adb -s 2G0YC5ZG6P005M reverse tcp:8012 tcp:8012
Verifique o resultado:
sudo adb -s 2G0YC5ZG6P005M reverse --list
Saída esperada:
UsbFfs tcp:8012 tcp:8012
Configuração do Host
Siga as instruções do repositório xr_teleoperate. Siga as instruções de instalação. Embora estejamos usando uv, para o XR teleoperate siga as recomendações do conda:
Baixando mini conda
curl -O https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.sh
source ~/.bashrc
conda --version
Criando um ambiente
conda create -n g1 python=3.10 pinocchio=3.1.0 numpy=1.26.4 -c conda-forge
conda activate g1
Todos os próximos comandos devem ser executados dentro do ambiente g1.
Instalando pacotes Python
Siga a ordem dos comandos pip e git clone; eles foram testados nesta sequência:
# 1. conda
pyenv shell system
conda install -c conda-forge pinocchio -y
# 2. pips
pip install pyngrok==8.1.2
pip install dotvar==0.1.12
pip install waterbear==2.6.8
pip install u-msgpack-python==2.8.0
pip install sshkeyboard==2.3.1
pip install typeguard==4.5.2
pip install casadi
pip install logging_mp
Clonando o repositório de teleoperação e o sdk
mkdir Teleoperacao
cd Teleoperacao
# Sdk
git clone https://github.com/unitreerobotics/unitree_sdk2_python.git
cd unitree_sdk2_python
pip install -e .
# xr-teleoperate
cd ..
git clone https://github.com/unitreerobotics/xr_teleoperate.git
cd xr_teleoperate
git submodule update --init --depth 1
# teleimager e televuer
cd teleop/teleimager
pip install -e .
cd ..
cd televuer
pip install -e .
Correção de bibliotecas sobrescritas
# ordem importa
pip install meshcat
pip install matplotlib
pip install 'rerun-sdk==0.34.1'
pip install 'numpy<2'
pip install 'params_proto==2.13.2'
Configurando os certificados SSL
Permaneça na pasta do televuer e execute os comandos:
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout key.pem -out cert.pem
Desabilite o firewall:
sudo ufw allow 8012
Configurando o caminho dos certificados:
echo 'export XR_TELEOP_CERT="$HOME/Desktop/Teleoperacao/xr_teleoperate/teleop/televuer/cert.pem"' >> ~/.bashrc
echo 'export XR_TELEOP_KEY="$HOME/Desktop/Teleoperacao/xr_teleoperate/teleop/televuer/key.pem"' >> ~/.bashrc
source ~/.bashrc
Adicione ao arquivo ~/Desktop/Teleoperacao/unitree_sdk2_python/unitree_sdk2py/core/channel_config.py:
ChannelConfigAutoDetermine = '''<?xml version="1.0"?>
<CycloneDDS>
<Domain Id="any">
<General>
<Interfaces>
<NetworkInterface autodetermine="true"/>
</Interfaces>
<AllowMulticast>spdp</AllowMulticast>
<DontRoute>true</DontRoute>
</General>
<Discovery>
<Peers>
<Peer Address="192.168.123.161"/>
<Peer Address="192.168.123.164"/>
</Peers>
</Discovery>
</Domain>
</CycloneDDS>'''
Esta configuração é necessária porque o PC tem múltiplas interfaces de rede na mesma sub-rede:
enp194s0 = 192.168.123.2wlp195s0 = 192.168.123.106
Sem a configuração explícita do DDS, a descoberta pode escolher a interface errada ou rotear inconsistentemente.