
Symulacja · Symulacja i cyfrowe bliźniaki
v1.0.0
World Collection to otwartoźródłowy zbiór 42 światów symulacyjnych dla Gazebo Harmonic (gz-sim), przeznaczonych do testowania autonomicznej eksploracji, nawigacji i SLAM robotów mobilnych. Światy to zwykłe pliki SDF bez robota w środku, więc działają z dowolnym robotem i dowolnym stosem oprogramowania.
Kolekcja jest pogrupowana według przeznaczenia: dziesięć małych światów pojedynczego wyzwania (SC), z których każdy izoluje jeden problem (wąskie przejście, ślepe uliczki, pętla, zagracenie, otwarta przestrzeń); dwa światy pilotażowe (P) do strojenia parametrów; dwadzieścia pięć światów z pięciu generowanych proceduralnie rodzin (F: labirynty, biura, alejki magazynowe, lasy i kwartały miejskie) zmieniających w kontrolowany sposób rozmiar, liczbę pomieszczeń, drzwi lub gęstość; trzy światy oparte na rzeczywistych miejscach (RP) oraz dwa światy z ruchomymi przeszkodami (MO), których ruch zależy wyłącznie od czasu symulacji.
Każdy świat ma stałe pozy startowe i zmierzone wartości układu (wolna powierzchnia, najwęższe przejście, pętle, ślepe uliczki oraz deskryptory widoczności), dzięki czemu metody można porównywać uczciwie. Światy są definiowane i generowane przez dołączony pakiet Pythona (worldgen), który sprawdza każdy świat i odtwarza go do identycznych plików (SDF 1.9 dla Gazebo Harmonic / gz-sim 8). Dwa światy z ruchomymi obiektami korzystają z małego wtyczki systemowej Gazebo napisanej w C++.
Zbiór powstał na potrzeby benchmarku eksploracji pakietu frontier_exploration_ros2, ale żaden ze światów nie zależy od tego pakietu. Autorem jest Mert Güler (Yıldız Technical University); projekt jest rozwijany jako open source na licencji Apache 2.0 i opublikowany z identyfikatorem DOI w serwisie Zenodo (10.5281/zenodo.23460686).
Simulation obejmuje oprogramowanie używane do modelowania, testowania i walidacji zachowań robotów, sensorów, środowisk oraz algorytmów bez konieczności użycia fizycznego sprzętu.
Benchmark / harness ewaluacyjny to oprogramowanie, które udostępnia ustandaryzowane środowisko testowe: definiuje zadania, zbiera pomiary, rejestruje przebiegi (trace) i pozwala odtwarzalnie porównywać modele lub systemy. Typowo obejmuje warstwę sterującą (uruchamianie prób), rejestrator wyników oraz metryki i tablicę wyników (leaderboard).
Rola symulacji opisuje oprogramowanie odtwarzające w środowisku komputerowym fizyczne zachowanie robota i otoczenia. Komponent symulacyjny realizuje: deterministyczną integrację dynamiki sztywnych i miękkich ciał (zazwyczaj poprzez silniki PhysX, Bullet, MuJoCo, Newton), foto-realistyczne renderowanie sceny (RTX, ray-tracing), modele sensorów (kamery RGB/D, LiDAR, IMU, F/T), generację danych syntetycznych do treningu polityk uczenia maszynowego, ewaluację porównawczą wielu wariantów rozwiązań w identycznych warunkach. Symulacja umożliwia masowo zrównoleglony trening RL bez fizycznego hardware i jest podstawą workflowu sim-to-real.
Rola benchmarkingu i ewaluacji opisuje oprogramowanie odpowiedzialne za standaryzowane mierzenie zdolności robotów i modeli AI. Komponent benchmarkowy zawiera: zbiór zdefiniowanych zadań (manipulacja, lokomocja, percepcja, instrukcja), automatyczne metryki sukcesu i jakości wykonania, scenariusze testowe pokrywające wymiary generalizacji (oświetlenie, tło, szum kamery, opóźnienie sterowania), procesy odtwarzalne uruchamiania wielokrotnych prób z agregacją wyników, leaderboardy modeli (np. π0.5, GR00T, π0). Współcześnie wykorzystuje VLM (Vision-Language Models) do auto-ewaluacji złożonych kryteriów jakościowych niedostępnych dla prostych metryk numerycznych.
Rodzina oprogramowania symulacyjnego związanego z Gazebo i jego integracjami.
Używany jako zestaw światów symulacyjnych do benchmarku eksploracji pakietu frontier_exploration_ros2 (autonomous-exploration-demo-benchmark).
15 gwiazdek na GitHub (październik 2026); opublikowany z DOI w Zenodo.
Python to wysokopoziomowy język programowania szeroko stosowany w robotyce, AI, computer vision, automatyzacji, testach i szybkiej integracji komponentów sprzętowych oraz software'owych.
C++ to język programowania szeroko wykorzystywany w robotyce, systemach embedded, middleware, sterowaniu i przetwarzaniu danych, szczególnie tam, gdzie istotna jest wydajność oraz bliska integracja ze sprzętem.
Rodzina otwartych systemów operacyjnych opartych na jądrze Linux, powszechna na serwerach, w chmurze i w robotyce.
Ubuntu 24.04 LTS 'Noble Numbat' — wspierane do kwietnia 2029. Host dla ROS 2 Jazzy.
Mechanizm dystrybucji oprogramowania przez GitHub Releases – binarne artefakty (skompilowane pliki wykonywalne, biblioteki, archiwia .tar.gz, .zip, pakiety .deb, .rpm, obrazy Docker) dołączane do tagowanych wydań GitHub. GitHub Actions Artifacts: tymczasowe artefakty budowania przechowywane przez ograniczony czas (90 dni domyślnie). Stosowane w robotyce dla: SDK robotów bez własnej infrastruktury dystrybucji (pobranie .deb lub tarball z GitHub Releases), gotowych binarnych buildów dla konkretnych platform (ROS 2 pre-built dla Raspberry Pi aarch64 przez GitHub Actions), narzędzi CLI i aplikacji standalone. GitHub Container Registry (ghcr.io): hosting obrazów Docker w ramach GitHub – alternatywa dla Docker Hub zintegrowana z GitHub Actions. Automatyzacja: GitHub Actions workflow budujący i publikujący release przy każdym tagu (np. 'on: push: tags: v*'). Ograniczenia: brak zarządzania zależnościami (użytkownik musi samodzielnie zainstalować dependencies), brak automatycznych aktualizacji, wymaga ręcznego pobierania nowych wersji (chyba że używany instalator lub package manager pobiera z GitHub Releases API).
Dystrybucja wyłącznie przez kod źródłowy z systemem budowania CMake lub ament_cmake (ROS 2 extension CMake). Użytkownik pobiera kod źródłowy (git clone lub tarball) i kompiluje lokalnie przez: 'cmake -B build && cmake --build build' (CMake) lub 'colcon build' (ament_cmake w workspace ROS 2). Stosowana gdy: pakiet nie jest dostępny w żadnym rejestrze binarnym, wymagana jest custom konfiguracja kompilacji (specyficzne flagi kompilatora, opcje cmake), oprogramowanie targetuje niestandardową platformę sprzętową (exotic embedded SoC), deweloper chce modyfikować kod źródłowy. Typowy workflow w ROS 2: vcstool importuje źródła do workspace/src, colcon build kompiluje. Wymaga zainstalowania wszystkich build dependencies (compilery, biblioteki systemowe) – rosdep automatyzuje instalację dependencies. Najdłuższy czas instalacji (kompilacja może trwać dziesiątki minut na embedded hardware), ale maksymalna kontrola i konfigurowalność. Standard dla pakietów ROS 2 niedostępnych jeszcze w apt lub wymagających niestandardowej kompilacji.
Mechanizm asynchronicznej komunikacji publish-subscribe w ROS 2, zbudowany na warstwie DDS/RTPS. Węzły publikują wiadomości na nazwanych topicach (np. /joint_states, /cmd_vel, /camera/image_raw), a inne węzły subskrybują te topici bez wiedzy o nadawcy. Obsługuje QoS policies (reliability, durability, history, deadline, lifespan). Podstawowy mechanizm wymiany danych sensorycznych, stanu robota i komend sterowania w ekosystemie ROS 2.
Local Workstation oznacza typ wdrożenia, w którym software działa na komputerze lokalnym użytkownika, dewelopera lub operatora, np. laptopie, desktopie lub stacji roboczej.
Rodzina licencji: Licencja permisywna
Permissive licencja open source opracowana przez Apache Software Foundation. Zawiera jawne udzielenie praw patentowych przez kontrybutorów (patent grant) oraz klauzulę retaliation (utrata licencji przy pozwie patentowym). Wymaga zachowania tekstu licencji, NOTICE file i informacji o zmianach w modyfikowanych plikach.
Oficjalna licencja Open Robotics dla rdzenia ROS 2 i większości pakietów tier-1. Standard de facto dla oprogramowania robotycznego open source. Klauzula patentowa chroni użytkowników przed pozwami ze strony kontrybutorów – preferowana nad MIT w projektach korporacyjnych. Kompatybilna z GPL v3 (ale nie GPL v2).
Pierwsze wydanie: 42 światy Gazebo Harmonic (SC, P, generowane rodziny F, RP i MO), pakiet generujący worldgen oraz wtyczka ruchomych obiektów.