Unitree-robotar levererade från Italien · support på engelska

Prices Find the right robot Financing
About us Book a call
Unitree Go2 EDU, piattaforma per sviluppo ROS 2

ROS 2 · Utveckling

ROS 2 på Unitree-robotar: från noll till första topic

I korthet: Unitrees robotar kommunicerar via DDS, samma mellanprogramvara som ROS 2 använder. Med det officiella paketet unitree_ros2, ROS 2 Humble på Ubuntu 22.04 och CycloneDDS blir robotens meddelanden ROS 2-topics utan någon brygga. Det som behövs är en EDU-version av roboten, en Ethernetkabel och en dator på subnätet 192.168.123.x.

ROS 2 på Unitrees robotar fungerar utan reverse engineering och utan översättningsnoder: roboten publicerar sina data över DDS (CycloneDDS), och ROS 2 använder DDS som kommunikationslager. Det officiella paketet unitree_ros2 innehåller meddelandedefinitionerna och miljöskripten. Den här guiden sammanfattar proceduren i den officiella README-filen och tar upp de ställen där man oftast kör fast.

Vilka Unitree-robotar stöder ROS 2

Mjukvaruutveckling är bara möjlig på utvecklarversionerna. För Go2 anger det officiella produktbladet sekundär utveckling på EDU-versionen, inte på Air och Pro. Detsamma gäller G1 med G1 EDU.

RobotMeddelanden i unitree_ros2ROS 2-exempel i repositoriet
Go2 EDUunitree_gosport client, stå, robotstatus, low-level
B2 / B2Wunitree_golow-level, läsa status
G1 EDUunitree_hgg1_low_level_example
H2exempelmappen h2finns i repositoriet
H1 / H1-2unitree_go / unitree_hglow-level H1-2

För R1 och A2 innehåller unitree_sdk2 i oktober 2026 egna C++-exempel, men unitree_ros2 har ännu inga specifika exempel. Kontrollera läget i repositoriet innan du köper någon av dessa modeller för ett rent ROS 2-projekt.

Produkter i artikelnEDU-robotar för forskning

Krav: Ubuntu och ROS 2-version

README-filen för unitree_ros2 anger två testade kombinationer:

  • Ubuntu 22.04 + ROS 2 Humble, som rekommenderas;
  • Ubuntu 20.04 + ROS 2 Foxy.

Enligt ROS 2:s versionstabell nådde Foxy slutet på sin supportperiod den 20 juni 2023, medan Humble får support till maj 2027 och Jazzy till maj 2029. För ett projekt som startar i dag är Humble det praktiska valet; Jazzy finns inte bland de kombinationer som Unitree har testat. ROS 2 Humble installeras från Debian-paket enligt den officiella guiden.

Installera unitree_ros2 steg för steg

1. Klona repositoriet och installera beroendena (med Humble byter du foxy mot 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. Bara med Foxy: kompilera CycloneDDS 0.10.x i arbetsytan cyclonedds_ws, i en terminal där ROS 2 inte har laddats. Roboten använder CycloneDDS 0.10.2; med Humble behövs inte det här steget.

3. Kompilera meddelandepaketen (unitree_go, unitree_hg, unitree_api):

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

Nätverk och CycloneDDS

Anslut datorn till roboten med en Ethernetkabel. Ställ in manuell IPv4 i gränssnittets inställningar, adress 192.168.123.99 och nätmask 255.255.255.0, som README-filen anger. Ta reda på gränssnittets namn med ifconfig eller ip a (till exempel enp3s0) och skriv in det i ~/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>'

Den avgörande raden är RMW_IMPLEMENTATION=rmw_cyclonedds_cpp: Humble har en annan mellanprogramvara som standard, och utan den här variabeln ser datorn inte roboten. ROS 2-dokumentationen förklarar hur man väljer DDS-mellanprogramvara. Utan ansluten robot kan du använda setup_local.sh, som arbetar mot loopback-gränssnittet.

Första topic

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

På Go2 och B2 visar /sportmodestate position, hastighet och gångart; /lowstate visar motorer, IMU och batteri. Så kompilerar och kör du exemplen:

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

README-filen visar också hur man visar punktmolnet från Go2:s LiDAR i RViz2, på topic utlidar/cloud med ramen utlidar_lidar.

Styrning: hög nivå och låg nivå

  • Hög nivå (Go2, B2): anrop på /api/sport/request med unitree_api-meddelanden, som skapas av klassen SportClient i exemplen. Roboten använder sin egen rörelsestyrning.
  • Låg nivå: kommandon för position, hastighet, vridmoment och förstärkningar på /lowcmd. Först måste den inbyggda rörelsetjänsten stängas av, annars krockar kommandona. På humanoiderna går man in i debug mode med L2+R2 medan roboten hänger upphängd: hela proceduren finns i guiden programmera G1.

Simulera före hårdvaran

unitree_mujoco är den officiella simulatorn baserad på MuJoCo: den tar emot program skrivna med unitree_sdk2, unitree_sdk2_python och unitree_ros2, med samma low-level-meddelanden som den riktiga roboten. Det rekommenderade arbetsflödet är att utveckla i simulering över loopback och sedan köra samma kod på roboten genom att byta nätverksgränssnitt. För gångpolicyer finns unitree_rl_gym (Go2, G1, H1, H1-2).

Vanliga fel

  • Inga topics: RMW är inte inställt, fel gränssnitt i setup.sh eller datorn ligger utanför subnätet. README-filen rekommenderar också att starta om datorn efter den första konfigurationen.
  • Kompileringen av CycloneDDS misslyckas på Foxy: terminalen hade redan laddat /opt/ros/foxy/setup.bash. Kommentera bort raden i ~/.bashrc och öppna terminalen igen.
  • Flera ROS-installationer på samma dator: lägg inte setup.sh i ~/.bashrc, utan ladda den för hand när den behövs.

Till universitetslabb levererar Abra Robotics EDU-modellerna i Unitree-sortimentet i Sverige, med support på engelska, och erbjuder utbildning och SDK-utveckling som separata tjänster: se Universitet och forskning och Mjukvara. Produktbladen för utvecklarversionerna är Go2 EDU och G1 EDU.

Vanliga frågor

Vilken ROS 2-version ska man använda med Unitrees robotar?

Humble på Ubuntu 22.04: det är den kombination som Unitree rekommenderar i README-filen för unitree_ros2. Foxy på Ubuntu 20.04 är testad men nådde slutet på sin supportperiod den 20 juni 2023. Humble får support till maj 2027.

Går Go2 Air eller Pro att använda med ROS 2?

Nej. I Go2:s officiella tabell är sekundär utveckling avsedd för EDU-versionen; Air och Pro har den inte. För ROS 2 behövs en Go2 EDU.

Behöver man installera en brygga mellan SDK och ROS 2?

Nej. Både roboten och ROS 2 använder DDS, så med unitree_ros2 och mellanprogramvaran CycloneDDS dyker robotens meddelanden upp direkt som ROS 2-topics, utan översättningsnoder.

Varför visar ros2 topic list inte robotens topics?

Det finns tre vanliga orsaker: RMW_IMPLEMENTATION är inte satt till rmw_cyclonedds_cpp, fel namn på nätverksgränssnittet i setup.sh, eller datorn är inte konfigurerad på 192.168.123.x. Kontrollera setup.sh igen och pinga roboten.

Går det att använda ROS 2 utan ansluten robot?

Ja. unitree_ros2 innehåller setup_local.sh, som använder loopback-gränssnittet, och unitree_mujoco simulerar roboten med samma meddelanden: du kan utveckla och testa i simulering innan du rör hårdvaran.

Källor

  1. Unitree, unitree_ros2, README och exempel: 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, produktblad Go2 och G1 (sekundär utveckling endast på EDU): unitree.com/go2 · unitree.com/g1
  6. Unitree Document Center, utvecklaravsnittet: support.unitree.com/home/en/developer
  7. ROS 2 Documentation, distributioner och datum för supportens slut: docs.ros.org/en/humble/Releases.html
  8. ROS 2 Documentation, installation av Humble från Debian-paket: docs.ros.org
  9. ROS 2 Documentation, DDS-mellanprogramvara och RMW: docs.ros.org

Behöver ni en EDU-robot till labbet?

Vi levererar Go2 EDU, G1 EDU och B2 konfigurerade, med utbildning i SDK och ROS 2 som separat tjänst.

EDU-robotar för universitet och forskningBegär en offert