Roboty Unitree z wysyłką z Włoch · wsparcie po angielsku

Prices Find the right robot Financing
About us Book a call
Unitree Go2 EDU, platforma do pracy z ROS 2

ROS 2 · Programowanie

ROS 2 na robotach Unitree: od zera do pierwszego topicu

W skrócie: roboty Unitree komunikują się przez DDS, czyli ten sam middleware, którego używa ROS 2. Z oficjalnym pakietem unitree_ros2, ROS 2 Humble na Ubuntu 22.04 i CycloneDDS wiadomości robota stają się topicami ROS 2 bez żadnego mostu. Potrzebujesz robota w wersji EDU, kabla Ethernet i komputera w podsieci 192.168.123.x.

ROS 2 na robotach Unitree działa bez inżynierii wstecznej i bez węzłów tłumaczących: robot publikuje swoje dane przez DDS (CycloneDDS), a ROS 2 używa DDS jako warstwy komunikacji. Oficjalny pakiet unitree_ros2 zawiera definicje wiadomości i skrypty środowiska. Ten przewodnik streszcza procedurę z oficjalnego README i wskazuje miejsca, w których najczęściej pojawiają się problemy.

Które roboty Unitree obsługują ROS 2

Tworzenie własnego oprogramowania jest przewidziane tylko w wersjach dla deweloperów. W przypadku Go2 oficjalna karta produktu podaje rozwój własnego oprogramowania w wersji EDU, a nie w Air i Pro. To samo dotyczy G1: potrzebny jest G1 EDU.

RobotWiadomości w unitree_ros2Przykłady ROS 2 w repozytorium
Go2 EDUunitree_gosport client, stand, stan robota, low-level
B2 / B2Wunitree_golow-level, odczyt stanu
G1 EDUunitree_hgg1_low_level_example
H2folder z przykładami h2dostępne w repozytorium
H1 / H1-2unitree_go / unitree_hglow-level H1-2

Dla R1 i A2 w październiku 2026 unitree_sdk2 zawiera dedykowane przykłady w C++, ale unitree_ros2 nie ma jeszcze przykładów dla tych modeli. Jeśli kupujesz robota do projektu opartego wyłącznie na ROS 2, najpierw sprawdź aktualny stan repozytorium.

Produkty wymienione w artykuleRoboty EDU do badań

Wymagania: Ubuntu i wersja ROS 2

README pakietu unitree_ros2 podaje dwie przetestowane kombinacje:

  • Ubuntu 22.04 + ROS 2 Humble, oznaczona jako zalecana;
  • Ubuntu 20.04 + ROS 2 Foxy.

Według tabeli wydań ROS 2 wsparcie dla Foxy zakończyło się 20 czerwca 2023, Humble jest wspierany do maja 2027, a Jazzy do maja 2029. Dla projektu, który startuje dziś, praktycznym wyborem jest Humble; Jazzy nie ma wśród kombinacji przetestowanych przez Unitree. ROS 2 Humble instaluje się z pakietów Debiana zgodnie z oficjalną instrukcją.

Instalacja unitree_ros2 krok po kroku

1. Sklonuj repozytorium i zainstaluj zależności (przy Humble zamień foxy na humble):

git clone https://github.com/unitreerobotics/unitree_ros2
sudo apt install ros-humble-rmw-cyclonedds-cpp
sudo apt install ros-humble-rosidl-generator-dds-idl
sudo apt install libyaml-cpp-dev

2. Tylko przy Foxy: skompiluj CycloneDDS 0.10.x w przestrzeni roboczej cyclonedds_ws, w terminalu, w którym ROS 2 nie został załadowany. Robot używa CycloneDDS 0.10.2; przy Humble ten krok nie jest potrzebny.

3. Skompiluj pakiety wiadomości (unitree_go, unitree_hg, unitree_api):

cd ~/unitree_ros2/cyclonedds_ws
source /opt/ros/humble/setup.bash
colcon build

Sieć i CycloneDDS

Połącz komputer z robotem kablem Ethernet. W ustawieniach interfejsu wybierz ręczną konfigurację IPv4, adres 192.168.123.99, maskę 255.255.255.0, tak jak podaje README. Poleceniem ifconfig lub ip a sprawdź nazwę interfejsu (na przykład enp3s0) i wpisz ją w ~/unitree_ros2/setup.sh:

#!/bin/bash
source /opt/ros/humble/setup.bash
source $HOME/unitree_ros2/cyclonedds_ws/install/setup.bash
export RMW_IMPLEMENTATION=rmw_cyclonedds_cpp
export CYCLONEDDS_URI='<CycloneDDS><Domain><General><Interfaces>
  <NetworkInterface name="enp3s0" priority="default" multicast="default" />
</Interfaces></General></Domain></CycloneDDS>'

Kluczowa jest linia RMW_IMPLEMENTATION=rmw_cyclonedds_cpp: domyślny middleware w Humble jest inny i bez tej zmiennej komputer nie widzi robota. Dokumentacja ROS 2 wyjaśnia, jak wybrać middleware DDS. Bez podłączonego robota możesz użyć setup_local.sh, który działa na interfejsie loopback.

Pierwszy topic

source ~/unitree_ros2/setup.sh
ros2 topic list
ros2 topic echo /sportmodestate

Na Go2 i B2 /sportmodestate podaje pozycję, prędkość i rodzaj chodu, a /lowstate stan silników, IMU i akumulatora. Aby skompilować i uruchomić przykłady:

cd ~/unitree_ros2/example
colcon build
./install/unitree_ros2_example/bin/read_motion_state

README pokazuje też, jak wyświetlić chmurę punktów z LiDAR-u Go2 w RViz2, na topicu utlidar/cloud z ramką utlidar_lidar.

Sterowanie: wysoki i niski poziom

  • Wysoki poziom (Go2, B2): żądania na /api/sport/request z wiadomościami unitree_api, generowane przez klasę SportClient z przykładów. Robot korzysta z własnego sterowania ruchem.
  • Niski poziom: polecenia pozycji, prędkości, momentu i wzmocnień na /lowcmd. Najpierw trzeba wyłączyć wbudowaną usługę ruchu, inaczej polecenia będą się nakładać. Na robotach humanoidalnych tryb debug włącza się kombinacją L2+R2, gdy robot jest zawieszony: pełna procedura jest w przewodniku programowanie G1.

Symulacja przed sprzętem

unitree_mujoco to oficjalny symulator oparty na MuJoCo: przyjmuje programy napisane z unitree_sdk2, unitree_sdk2_python i unitree_ros2, z tymi samymi wiadomościami niskiego poziomu co prawdziwy robot. Zalecany sposób pracy: rozwój w symulacji na loopbacku, a potem ten sam kod na robocie, ze zmienionym interfejsem sieciowym. Do polityk lokomocji służy unitree_rl_gym (Go2, G1, H1, H1-2).

Najczęstsze błędy

  • Brak topiców: nieustawione RMW, zły interfejs w setup.sh albo komputer poza podsiecią. README zaleca też ponowne uruchomienie komputera po pierwszej konfiguracji.
  • Nieudana kompilacja CycloneDDS na Foxy: terminal miał już załadowany /opt/ros/foxy/setup.bash. Zakomentuj tę linię w ~/.bashrc i otwórz terminal ponownie.
  • Kilka instalacji ROS na jednym komputerze: nie dodawaj setup.sh do ~/.bashrc, tylko ładuj go ręcznie, kiedy jest potrzebny.

Laboratoriom uczelnianym Abra Robotics dostarcza modele EDU z gamy Unitree w Polsce, ze wsparciem po angielsku, a szkolenia i rozwój oprogramowania z SDK oferuje jako osobne usługi: zobacz Uczelnie i badania oraz Oprogramowanie. Karty wersji dla deweloperów to Go2 EDU i G1 EDU.

Najczęściej zadawane pytania

Której wersji ROS 2 używać z robotami Unitree?

Humble na Ubuntu 22.04: tę kombinację Unitree zaleca w README pakietu unitree_ros2. Foxy na Ubuntu 20.04 jest przetestowany, ale jego wsparcie zakończyło się 20 czerwca 2023. Humble jest wspierany do maja 2027.

Czy Go2 Air lub Pro można używać z ROS 2?

Nie. W oficjalnej tabeli Go2 rozwój własnego oprogramowania jest przewidziany w wersji EDU; Air i Pro go nie obejmują. Do ROS 2 potrzebny jest Go2 EDU.

Czy trzeba instalować most między SDK a ROS 2?

Nie. Robot i ROS 2 używają DDS, więc z unitree_ros2 i middleware CycloneDDS wiadomości robota pojawiają się bezpośrednio jako topici ROS 2, bez węzłów tłumaczących.

Dlaczego ros2 topic list nie pokazuje topiców robota?

Najczęstsze przyczyny są trzy: RMW_IMPLEMENTATION nie jest ustawione na rmw_cyclonedds_cpp, w setup.sh jest zła nazwa interfejsu sieciowego albo komputer nie jest skonfigurowany w podsieci 192.168.123.x. Sprawdź ponownie setup.sh i wyślij ping do robota.

Czy można używać ROS 2 bez podłączonego robota?

Tak. unitree_ros2 zawiera setup_local.sh, który korzysta z interfejsu loopback, a unitree_mujoco symuluje robota z tymi samymi wiadomościami: możesz rozwijać i testować kod w symulacji, zanim dotkniesz sprzętu.

Źródła

  1. Unitree, unitree_ros2, README i przykłady: github.com/unitreerobotics/unitree_ros2
  2. Unitree, unitree_sdk2: github.com/unitreerobotics/unitree_sdk2
  3. Unitree, unitree_mujoco: github.com/unitreerobotics/unitree_mujoco
  4. Unitree, unitree_rl_gym: github.com/unitreerobotics/unitree_rl_gym
  5. Unitree, karty produktów Go2 i G1 (rozwój własnego oprogramowania tylko w EDU): unitree.com/go2 · unitree.com/g1
  6. Unitree Document Center, sekcja dla deweloperów: support.unitree.com/home/en/developer
  7. ROS 2 Documentation, dystrybucje i daty końca wsparcia: docs.ros.org/en/humble/Releases.html
  8. ROS 2 Documentation, instalacja Humble z pakietów Debiana: docs.ros.org
  9. ROS 2 Documentation, middleware DDS i RMW: docs.ros.org

Potrzebujesz robota EDU do laboratorium?

Dostarczamy skonfigurowane Go2 EDU, G1 EDU i B2, a szkolenie z SDK i ROS 2 oferujemy jako osobną usługę.

Roboty EDU dla uczelni i badańPoproś o wycenę