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
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 scriptVerify the terminal outputs:
Confirm that the
Port,Baudrate, andslave_idare 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 Client
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 scriptTriggering 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:
sudo ip route del default via 192.168.123.1 dev eth02. Colcon Build Displays System Clock Skew Warnings
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:
- Remove the default routing rule restricting internet access:
sudo ip route del default via 192.168.123.1 dev eth0- Restart the terminal and verify the system time and synchronization status:
date
timedatectl status- Once the time is successfully synchronized, clean up previous build caches and rebuild the workspace:
rm -rf build install log
colcon build3. "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:
source /opt/ros/foxy/setup.bash
# or source your active workspace's setup script
source install/setup.bash4. How to Resolve General ROS 2 Execution Failures
If you encounter persistent ROS 2 node crashes or runtime exceptions:
- Close all active terminal sessions and open clean terminals.
- Clean up previous build outputs (
rm -rf build install log) and rebuild the workspace.
5. Wi-Fi Card Interface Blocked (RF-Kill Issue)
unitree@ubuntu:~$ sudo ifconfig wlan0 up
# Error: SIOCSIFFLAGS: Operation not possible due to RF-killSolution:
- Check the hard/soft block status of wireless devices:
unitree@ubuntu:~$ rfkill list
# 0: phy0: Wireless LAN
# Soft blocked: yes
# Hard blocked: no- Unblock the Wi-Fi interface using rfkill:
sudo rfkill unblock wifi- Verify that the soft block status has changed to
noand bring the interface up:
rfkill list
sudo ifconfig wlan0 up6. 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:
Failed to connect to the remote extension host server (Error: ExtensionInstallFailed(ExtensionInstallFailed("Error while installing extensions: getaddrinfo EAI_AGAIN marketplace.visualstudio.com...")Solution:
- Connect to the robot via standard shell SSH:
ssh unitree@192.168.xx.xx- Verify external domain connectivity:
ping marketplace.visualstudio.com- Check active DNS servers:
cat /etc/resolv.confIf 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:
sudo vim /etc/systemd/resolved.confUncomment and edit the following properties:
[Resolve]
DNS=8.8.8.8 1.1.1.1
FallbackDNS=114.114.114.114
DNSStubListener=yes- Save changes and restart systemd-resolved:
sudo systemctl restart systemd-resolved- Verify active status and DNS mappings:
systemd-resolve --statusEnsure 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
If you have any questions or purchase inquiries, please contact the BrainCo Dexterous Hand Team or submit a support ticket via the Help portal in the top-right corner of the documentation page.