Porównanie ROS1 i ROS2: główne różnice i jak dokonać wyboru do projektu robota

Porównanie ROS1 i ROS2: najważniejsze różnice i jak dokonać wyboru do projektu robota

Od Ubuntu 22.04 lub od czerwca 2025 roku oficjalna baza nie będzie już aktualizowana pod kątem wsparcia ROS1; zalecane jest korzystanie z systemu ROS2. ROS 2 pod względem architektury, pracy w czasie rzeczywistym, bezpieczeństwa i rozszerzalności ekosystemu wypada znacznie lepiej niż ROS 1. Jeśli rozpoczynasz nowy projekt, zaleca się bezpośrednie użycie ROS2, jednak w przypadku migracji należy rozważyć kompromis między istniejącymi zasobami a długoterminowymi korzyściami. Szczegółowe zestawienie wsparcia wersji Ubuntu znajduje się pod linkiem. Zależność między różnymi wersjami ROS i Ubuntu, poniższe porównanie obu struktur w celu analizy:

 Wersja ROS 2 Wersja Ubuntu Czy LTS Data wydania
 Jazzy 24.04 (Noble) Tak (LTS) 2024
 Kilted 24.04 (Noble) Nie 2025-05

Historia i rozwój

  • ROS1: Opracowany przez Uniwersytet Stanforda i Willow Garage, skupiający się na badaniach i prototypowaniu.
  • ROS2: Zapoczątkowany w 2014 roku, ukierunkowany na robotykę klasy przemysłowej, z wykorzystaniem middleware DDS w celu poprawy pracy w czasie rzeczywistym, wsparcia wieloplatformowego i bezpieczeństwa.

Podsumowanie: ROS1 lepiej sprawdza się w badaniach i prototypowaniu, natomiast ROS2 jest idealny do wdrożeń przemysłowych i komercyjnych.

 

2. Architektura systemu

 Wymiar ROS1 ROS2
 Architektura rdzenia Stosuje architekturę scentralizowaną, opierając się na węźle Master (menedżerze węzłów) do realizacji rejestracji węzłów i komunikacji. Architektura rozproszona, bezpośrednia komunikacja między węzłami, brak potrzeby stosowania Master, obsługa mechanizmu dynamicznego wykrywania.
 Model komunikacji Personalizowany system komunikacji oparty na protokole TCP/UDP, który ma problemy takie jak opóźnienia, utrata pakietów i brak możliwości szyfrowania. Ustandaryzowany protokół komunikacyjny oparty na DDS, obsługujący pracę w czasie rzeczywistym, szyfrowanie i interakcję wieloplatformową.
 Niezawodność Opiera się na protokole TCP do komunikacji peer-to-peer, co grozi utratą pakietów. Niezawodna transmisja jest gwarantowana przez polityki QoS (np. Reliable).
 System kompilacji Korzysta z systemów kompilacji rosbuild (wczesny) i catkin. Wprowadzono zautomatyzowany system kompilacji, który zapewnia bardziej elastyczne zarządzanie zależnościami i budowę w wielu językach.

3. Doświadczenie użytkownika

 Wymiar ROS1 ROS2
 Krzywa uczenia się Bogate zasoby społecznościowe i dojrzała dokumentacja — odpowiednie do rozpoczęcia pracy. Nowe funkcje zwiększają koszty nauki (np. konfiguracja DDS, debugowanie w czasie rzeczywistym), ale w dłuższej perspektywie są bardziej łatwe w utrzymaniu.
 Koszty migracji Projekty ROS 1 wymagają przebudowania logiki komunikacji, zarządzania węzłami oraz systemu kompilacji, aby dokonać migracji do ROS 2. Dostępne są narzędzia migracyjne (np. ros1_bridge) umożliwiające interoperacyjność między węzłami ROS 1 i ROS 2.
 Debugowanie i zestaw narzędzi Opierając się na narzędziach takich jak roslaunch i rviz, proces debugowania jest bardziej tradycyjny. Nowy framework launch (obsługujący konfigurację w Pythonie), wbudowany system logowania i lepsze narzędzia testowe.
 Społeczność i ekosystem Ekosystem jest duży, ale niektóre funkcje są trudne do rozszerzenia ze względu na ograniczenia architektoniczne. Nowe funkcje są łatwiejsze do zintegrowania (np. głębsza integracja z Gazebo i technologiami webowymi), a ekosystem stale się rozwija.

 4. Porównanie kluczowych technologii

 Wymiar ROS1 ROS2
 Komunikacja między węzłami Komunikacja peer-to-peer jest nawiązywana poprzez rejestrację w Master. Węzły automatycznie się wykrywają i komunikują bezpośrednio ze sobą za pośrednictwem DDS.
 Komunikaty Wykorzystuje niestandardowy typ wiadomości (.msg), oparty na implementacji roscpp/rospy. Generowanie komunikatów wielojęzycznych w oparciu o IDL (Interface Definition Language) dla lepszej kompatybilności.
 Tolerancja błędów Awaria Mastera może spowodować wyłączenie całego systemu. Architektura rozproszona w celu uniknięcia pojedynczego punktu awarii; węzły mogą dynamicznie dołączać i opuszczać sieć.

5. Różnice składniowe

 Wymiar ROS1 ROS2
 Składnia tworzenia węzłów Użycie ros::NodeHandle do zarządzania węzłami, które wymaga uruchomienia roscore w celu startu scentralizowanego menedżera. Użyj rclcpp::Node lub rclpy::Node do bezpośredniego tworzenia węzłów bez roscore, co obsługuje architekturę rozproszoną.
 Mechanizm komunikacji Oparte na niestandardowym protokole TCP/UDP do realizacji komunikacji, wymagające ręcznego zarządzania rejestracją i wykrywaniem węzłów. W oparciu o standard DDS (Data Distribution Service) węzły automatycznie się odkrywają i komunikują ze sobą.
 Definicja wiadomości Użycie pliku .msg do definiowania typu komunikatu, oparcie na implementacji roscpp/rospy. Użycie IDL (Interface Definition Language) do generowania komunikatów wielojęzycznych dla lepszej kompatybilności.
 Pliki launch Użycie XML do pisania pliku .launch, pojedyncza funkcja, trudna konfiguracja dynamiczna. Użycie Pythona do pisania pliku .launch.py w celu obsługi logiki dynamicznej (takiej jak instrukcje warunkowe, przekazywanie parametrów).

6. Różnice w praktycznym zastosowaniu

 Wymiar ROS1 ROS2
 Wsparcie wielojęzyczne Obsługuje głównie C++ i Python; inne języki wymagają adaptacji. Rozszerzone wsparcie dla dodatkowych języków (np. Rust, Java) oraz kompatybilność międzyjęzykowa poprzez Interface Definition Language (IDL).
 System kompilacji Opiera się na systemie kompilacji catkin, który wymaga ścisłego przestrzegania struktury workspace. Użycie systemu budowania ament dla bardziej elastycznego zarządzania zależnościami i budowania wielojęzycznego.
 Wsparcie w czasie rzeczywistym Słaba wydajność w czasie rzeczywistym, trudno spełnić wymagania przemysłowego sterowania w czasie rzeczywistym. Poprawa wsparcia dla systemów czasu rzeczywistego (np. rclcpp w ROS 2 zapewnia planowanie wątków w czasie rzeczywistym).
 Bezpieczeństwo Brak natywnych mechanizmów szyfrowania i uwierzytelniania. Obsługuje rozszerzenia zabezpieczeń DDS (DDS-Security), zapewniające uwierzytelnianie, szyfrowanie danych i kontrolę dostępu.
 Wsparcie wieloplatformowe Działa głównie na systemach Linux, z ograniczonym wsparciem dla Windows/macOS. Obsługuje wiele platform, takich jak Linux, Windows, macOS, RTOS itp., i wyraźnie dzieli platformy na Tier 1 (aktywnie wspierane przez oficjalne władze) i Tier 2 (wspierane przez społeczność), aby wzmocnić kompatybilność między systemami.
 Narzędzia do debugowania Opierając się na tradycyjnych narzędziach, takich jak roslaunch i rviz, system rejestrowania zdarzeń jest stosunkowo podstawowy. Zapewniają wbudowany system logowania (np. RCLCPP_INFO), obsługę skryptów Pythona oraz lepsze narzędzia do testowania.
 Tolerancja błędów Awaria roscore może spowodować wyłączenie całego systemu. Architektura rozproszona w celu uniknięcia pojedynczego punktu awarii; węzły mogą dynamicznie dołączać i opuszczać sieć.

7. Typowe scenariusze zastosowań

  • ROS 1: Edukacja, projekty badawcze (np. nawigacja robotów mobilnych, SLAM), scenariusze niewymagające wysokiej wydajności czasu rzeczywistego i bezpieczeństwa. Jeśli projekt jest dojrzały i nie wymaga funkcji czasu rzeczywistego, bezpieczeństwa ani wsparcia wieloplatformowego, a opiera się na dużej liczbie zasobów ekosystemu ROS 1, kontynuuj korzystanie z ROS 1.
  • ROS 2: Automatyka przemysłowa, jazda autonomiczna, drony i inne scenariusze wymagające wysokiej wydajności czasu rzeczywistego, bezpieczeństwa i wsparcia wieloplatformowego, a także długoterminowego utrzymania projektów na dużą skalę (np. dostawa roboty, iRoboty przemysłowe, roboty medyczne). Projekty wymagające przemysłowej stabilności, sterowania w czasie rzeczywistym, bezpiecznego szyfrowania lub wdrożeń wieloplatformowych preferują ROS 2.

8. Kompatybilność sprzętu i platformy

  •  Obsługuje głównie system Linux (Ubuntu).
  • RO natywnie obsługuje Linux, Windows, macOS oraz platformy wbudowane.

9. Wsparcie ekosystemu i społeczności

  • ROS1: Duża liczba pakietów i aktywna społeczność.
  • ROS2: Szybko rozwijający się ekosystem, ale liczba pakietów wciąż nie dorównuje ROS 1.

Podsumowanie: ROS1 ma dojrzały ekosystem, a ROS2 szybko go dogania.

10. Koszt migracji i aktualizacji

  • API są niekompatybilne, co wymaga przepisania kodu.
  • Sterowniki mogą wymagać adaptacji; ros1_bridge może pomóc w stopniowej migracji.

Podsumowanie: Koszty migracji są wysokie, ale ryzyko można zmniejszyć poprzez migrację etapową.

11. Bezpieczeństwo i standardy przemysłowe

  • ROS1: Brak natywnych mechanizmów bezpieczeństwa.
  • ROS2: Zgodny ze standardami bezpieczeństwa DDS, umożliwia integrację z OPC UA i TSN.

Podsumowanie: ROS2 jest lepiej dostosowany do zastosowań krytycznych pod względem bezpieczeństwa oraz aplikacji przemysłowych.

Przyszłe trendy i plan rozwoju

  • ROS1Noetic jest ostatnim wydaniem, utrzymywanym do 2025 roku.
  • ROS2 stosuje strategię długoterminowego wsparcia (LTS) z aktywnymi aktualizacjami funkcji.

Podsumowanie: Trend wyraźnie wskazuje na ROS2.

Podsumowanie i zalecenia

dla naukowcy lub początkujący, ROS1 pozostaje dojrzałym i stabilnym wyborem; dla użytkownicy przemysłowi lub zespoły komercyjne, przewaga ROS2 w systemach rozproszonych, wydajności w czasie rzeczywistym i bezpieczeństwie przynosi długoterminową wartość.

Praktyczne zalecenia: Oceń wersję ROS na wczesnym etapie planowania projektu i podejmij decyzje w oparciu o dojrzałość ekosystemu oraz kompetencje zespołu.

Twoje indywidualne rozwiązanie w zakresie robotów mobilnych zaczyna się właśnie tutaj

Chiński producent OEM/ODM — systemy AMR i AGV, automatyzacja magazynów. Od projektowania i badań i rozwoju po dostawy na całym świecie.

  • Ponad 10 lat doświadczenia w produkcji pojazdów AMR i AGV
  • Indywidualne rozwiązania wdrożone w ponad 50 krajach
  • Bezpłatna ocena projektu i analiza zwrotu z inwestycji (ROI)
  • Inżynier odpowie w ciągu 24 godzin
Formularz kontaktowy

Specjalistka ds. robotyki w firmie FdataBot z ponad 8-letnim doświadczeniem w dziedzinie robotów mobilnych, systemów AMR/AGV, projektowania podwozi robotów oraz dostosowywania rozwiązań dla klientów OEM/ODM. Jej poradniki pomagają nabywcom z całego świata w ocenie dostawców, porównywaniu opcji technicznych oraz podejmowaniu bardziej trafnych decyzji dotyczących zaopatrzenia.

ZAPYTAJ TERAZ