Skip to content

Revo 2 Adaptation for Unitree G1 (Testing & FAQ) ​

Verification & Testing ​

To perform verification testing, launch two separate terminal instances simultaneously:

Terminal 1: Launch Controller Node and Stark Node ​

sh
conda activate g1brainco                    # Activate the conda environment
cd ~/unitree-g1-brainco-hand/brainco_ws     # Navigate to the workspace
./launch/launch_robot.sh                    # Execute the launch script

Verify the terminal outputs:

  • Confirm that the Port, Baudrate, and slave_id are correct for both hands.

  • Check for "serial port opened" to ensure successful serial communication.

  • Check for "Waiting for joint cmd ..." indicating the node is awaiting command inputs. If the above prints do not appear, verify the configurations in your parameters file.

  • Check for "IK initialization done." indicating inverse kinematics setup was successful.

  • When "Request 'configure' to start" is displayed, the system is ready to accept transition requests.

Terminal 2: Launch State Machine Transition Node ​

sh
conda activate g1brainco                    # Activate the conda environment
cd ~/unitree-g1-brainco-hand/brainco_ws     # Navigate to the workspace
./launch/launch_trans.sh                    # Execute the launch script

Triggering State Transitions ​

Terminal 2 will display the current active state, list available transitions, and show their corresponding actions. Type the designated character(s) + Enter to trigger state transitions. Once the system enters the active state, you can append l or r after command characters to control only the left or right hand respectively. Omitting the suffix defaults to controlling both hands simultaneously.


FAQ ​

1. Custom Network Configuration Restricts Internet Access ​

If configuring a custom static IP breaks internet connectivity, delete the default interface gateway routing rule:

sh
sudo ip route del default via 192.168.123.1 dev eth0

2. Colcon Build Displays System Clock Skew Warnings ​

sh
make[2]: warning:  Clock skew detected.  Your build may be incomplete.

This warning occurs when the system time defaults to 1970 due to a lack of network connection for automatic NTP synchronization. Solution:

  1. Remove the default routing rule restricting internet access:
sh
sudo ip route del default via 192.168.123.1 dev eth0
  1. Restart the terminal and verify the system time and synchronization status:
sh
date
timedatectl status
  1. Once the time is successfully synchronized, clean up previous build caches and rebuild the workspace:
sh
rm -rf build install log
colcon build

3. "ros2: command not found" or "Package 'XXX' not found" ​

This indicates that the ROS 2 overlay or underlay environment configurations have not been sourced in the current shell. Make sure to run:

sh
source /opt/ros/foxy/setup.bash
# or source your active workspace's setup script
source install/setup.bash

4. How to Resolve General ROS 2 Execution Failures ​

If you encounter persistent ROS 2 node crashes or runtime exceptions:

  1. Close all active terminal sessions and open clean terminals.
  2. Clean up previous build outputs (rm -rf build install log) and rebuild the workspace.

5. Wi-Fi Card Interface Blocked (RF-Kill Issue) ​

sh
unitree@ubuntu:~$ sudo ifconfig wlan0 up 
# Error: SIOCSIFFLAGS: Operation not possible due to RF-kill

Solution:

  1. Check the hard/soft block status of wireless devices:
sh
unitree@ubuntu:~$ rfkill list
# 0: phy0: Wireless LAN
#         Soft blocked: yes
#         Hard blocked: no
  1. Unblock the Wi-Fi interface using rfkill:
sh
sudo rfkill unblock wifi
  1. Verify that the soft block status has changed to no and bring the interface up:
sh
rfkill list
sudo ifconfig wlan0 up

6. VS Code Fails to Establish SSH Remote Connection ​

Ensure that the host device has internet connectivity. A typical failure is the remote extension host installer failing to download required VS Code plugins due to DNS resolution failures:

sh
Failed to connect to the remote extension host server (Error: ExtensionInstallFailed(ExtensionInstallFailed("Error while installing extensions: getaddrinfo EAI_AGAIN marketplace.visualstudio.com...")

Solution:

  1. Connect to the robot via standard shell SSH:
sh
ssh unitree@192.168.xx.xx
  1. Verify external domain connectivity:
sh
ping marketplace.visualstudio.com
  1. Check active DNS servers:
sh
cat /etc/resolv.conf

If Ubuntu resolves DNS using the systemd-resolved local stub (127.0.0.53) which fails to forward upstream queries, configure static DNS servers. 4. Open the systemd-resolved configuration file:

sh
sudo vim /etc/systemd/resolved.conf

Uncomment and edit the following properties:

ini
[Resolve]
DNS=8.8.8.8 1.1.1.1 
FallbackDNS=114.114.114.114 
DNSStubListener=yes
  1. Save changes and restart systemd-resolved:
sh
sudo systemctl restart systemd-resolved
  1. Verify active status and DNS mappings:
sh
systemd-resolve --status

Ensure 8.8.8.8 and 1.1.1.1 are mapped as active servers. You can now establish VS Code SSH sessions successfully.


Contact & Support ​

For questions or purchase inquiries, contact the BrainCo Dexterous Hand Team or submit a support ticket through the page help entry.

Help