Robocikowo>ROBOCIKOWO
NVIDIA PhysX

Symulacja · Symulacja i cyfrowe bliźniaki

NVIDIA PhysX

PhysX 5.5·NVIDIA

Aktywny Open source Real-time capable Dostępne API
KATEGORIASymulacja · Symulacja i cyfrowe bliźniaki
GOTOWOŚĆTRL 9
SKALA ADOPCJIPowszechny – infrastruktura krytyczna
LICENCJEBSD-3-Clause
PIERWSZE WYDANIE2008

NVIDIA PhysX to silnik fizyki czasu rzeczywistego pierwotnie opracowany przez NovodeX (2001) i przejęty przez NVIDIA w 2008 r. Od PhysX 5 (2022) silnik jest w pełni otwartoźródłowy na licencji BSD-3. Wspiera symulację ciał sztywnych z constraintami, ciał miękkich (FEM), tkanin, drobnoziarnistego SDF dla deksterności i fluidów PBF (Position Based Fluids).

Architektura PhysX 5 jest wielowątkowa i akcelerowana na GPU (CUDA): scena dzielona jest na worki współdzielonej pamięci, a kolizje, dynamika i constraintsy wykonywane są równolegle. GPU rigid-body solver osiąga 10-100x wyższe FPS w porównaniu do PhysX 4 CPU, co umożliwia treningi RL z tysiącami środowisk równocześnie (Isaac Gym/Isaac Lab).

PhysX jest natywnym silnikiem fizyki w NVIDIA Isaac Sim, NVIDIA Omniverse i opcjonalnym w Unreal Engine 5. W robotyce wykorzystywany do symulacji manipulatorów z constraintami (Franka Panda, UR5), humanoidów (Atlas, Digit, Optimus) oraz collision detection w MoveIt 2.

Typ i role
Typy oprogramowania
Symulacja

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.

Biblioteka API

API Library to biblioteka udostępniająca interfejsy programistyczne do komunikacji z urządzeniem, usługą lub systemem. W praktyce może stanowić lekką warstwę integracyjną opartą na oficjalnym API producenta lub projekcie open-source.

Runtime

Runtime to środowisko lub warstwa uruchomieniowa wykorzystywana do wykonywania kodu, ładowania bibliotek, obsługi zależności i działania aplikacji lub usług w czasie rzeczywistym albo w czasie pracy systemu.

Wybierz pozycję, aby zobaczyć opis.
Kategoria główna
Symulacja i cyfrowe bliźniakiRuntime i infrastruktura
Role w ekosystemie robotycznym
Wsparcie deweloperów

Developer Enablement oznacza rolę oprogramowania wspierającego deweloperów w integracji, debugowaniu, walidacji, konfiguracji, testowaniu i uruchamianiu systemów robotycznych oraz ich komponentów.

Planowanie ruchu

Motion Planning oznacza rolę oprogramowania odpowiedzialnego za planowanie trajektorii, ruchu, kolejności działań oraz wyznaczanie bezpiecznych i wykonalnych ścieżek dla robota lub manipulatora.

Wybierz pozycję, aby zobaczyć opis.
Rodzina oprogramowania
Rodzina
NVIDIA Isaac

Rodzina oprogramowania robotycznego i AI rozwijana w ekosystemie NVIDIA Isaac.

Dojrzałość i adopcja
9 / 9
Sprawdzone w warunkach operacyjnych
BadaniaPrototypProdukcja
Skala adopcjiPowszechny – infrastruktura krytyczna
Status utrzymaniaUtrzymywane przez jednego dostawcę
Pierwsze wydanie2008
Ostatnia aktualizacja15 kwietnia 2025
Wdrożenia

NVIDIA Isaac Sim, NVIDIA Omniverse, Unreal Engine 4/5 (legacy), MoveIt 2 (collision detection), Isaac Gym/Lab (RL trening tysięcy środowisk), Disney symulacje robotyki.

Społeczność

3.6k★ na GitHub (NVIDIA-Omniverse/PhysX), 800+ kontrybutorów akademickich, używany w 1000+ publikacjach naukowych z RL robotyki.

Wsparcie ROSKompatybilność z ekosystemem ROS / ROS 2
Brak wsparcia ROSBrak jakiejkolwiek integracji z ekosystemem ROS
Możliwości systemu
Open source
Kod źródłowy dostępny publicznie pod licencją open-source — umożliwia audyt bezpieczeństwa, własne modyfikacje oraz integrację bez barier licencyjnych.
Real-time capable
Zaprojektowane z gwarancjami determinizmu czasowego — spełnia wymagania pętli sterowania, systemów bezpieczeństwa i zadań wymagających niskiej, przewidywalnej latencji.
⟨/⟩
Dostępne API
Oprogramowanie udostępnia programowalny interfejs (REST, gRPC, SDK lub biblioteki językowe) pozwalający na automatyzację i integrację z innymi systemami.
📦
Pre-built / binary
Dystrybuowane jako gotowe pakiety binarne, obrazy kontenerów lub instalatory — bez konieczności kompilacji ze źródeł.
Języki programowania
CUDA
C++

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.

C

C to język programowania powszechnie wykorzystywany w firmware, sterownikach, mikrokontrolerach i systemach embedded, gdzie wymagana jest bezpośrednia kontrola nad zasobami sprzętowymi.

Python

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.

Wybierz pozycję, aby zobaczyć opis.
Systemy operacyjne
Ubuntu 22.04

Ubuntu 22.04 LTS to długoterminowo wspierana wersja systemu Linux wykorzystywana w robotyce, AI, systemach edge i środowiskach programistycznych. Stanowi popularną bazę dla nowszych stosów oprogramowania oraz dystrybucji ROS 2.

Ubuntu 20.04

Ubuntu 20.04 LTS to długoterminowo wspierana wersja systemu Linux, szeroko wykorzystywana w robotyce, systemach embedded, AI i środowiskach developerskich. Jest popularna m.in. w środowiskach ROS oraz na platformach obliczeniowych takich jak NVIDIA Jetson.

Windows

Windows to rodzina systemów operacyjnych Microsoft wykorzystywana w środowiskach desktopowych, developerskich i integracyjnych. W robotyce występuje głównie jako środowisko narzędziowe, konfiguracyjne lub developerskie.

macOS

macOS to system operacyjny Apple wykorzystywany głównie na stacjach roboczych i laptopach deweloperskich do budowy, testowania i integracji oprogramowania.

Wybierz pozycję, aby zobaczyć opis.
Minimalne wymagania sprzętowe
Minimalne wymagania sprzętowe
CPUCzterordzeniowy x86-64 (PhysX CPU); ARM64 wspierane od wersji 5.3
RAM (GB)4
GPUNVIDIA z CUDA Compute 6.0+ dla akceleracji GPU; brak GPU = tylko PhysX CPU
Dysk (GB)2

PhysX SDK ~500 MB ze sample'ami i dokumentacją. GPU akceleracja wymaga CUDA 11.4+.

Pakowanie i dystrybucja
Menadżery pakietów
GitHub Releases / GitHub Actions Artifacts

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).

Source – CMake / ament_cmake

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.

Docker – NVIDIA NGC Registry

Specjalizowany rejestr kontenerów NVIDIA NGC (NVIDIA GPU Cloud – ngc.nvidia.com) zawierający optymalizowane obrazy dla platform NVIDIA: Jetson (aarch64) i x86_64 z GPU. Dystrybuuje oficjalne kontenery Isaac ROS (GPU-accelerated Computer Vision dla ROS 2), Isaac Sim (symulator robotyczny oparty na Omniverse), Isaac Lab (framework trenowania RL), TensorRT, CUDA, cuDNN i inne biblioteki NVIDIA. Kontenery NGC są prebuildowane i zoptymalizowane dla konkretnych wersji JetPack (np. JetPack 6.x / CUDA 12.x na Jetson AGX Orin) – zapewniają pełne wsparcie GPU bez ręcznej konfiguracji sterowników. Wymagana bezpłatna rejestracja na ngc.nvidia.com i logowanie przez 'docker login nvcr.io'. Isaac ROS containers: 'nvcr.io/nvidia/isaac/ros:humble-isaac-ros-common-aarch64' dla Jetson. Szczególnie ważny dla: perception pipeline opartych na GPU (stereo depth, object detection, pose estimation), Isaac Manipulator, Isaac Perceptor i innych gotowych rozwiązań NVIDIA dla robotyki. Kontenery testowane i certyfikowane przez NVIDIA dla konkretnych platform sprzętowych.

conda / mamba

Wielojęzykowy menedżer pakietów i środowisk wirtualnych (Anaconda, Miniconda) obsługujący pakiety Python, R, C/C++ i inne. Pakiety conda zawierają prekompilowane binaria dla wielu platform (linux-64, linux-aarch64, osx-arm64, win-64). mamba: szybki reimplementacja conda w C++ z dramatycznie szybszym resolverem zależności. Rejestry: conda-forge (community-maintained, największy), defaults (Anaconda Inc.), bioconda, nvidia (pakiety CUDA przez conda). Zastosowania w robotyce AI/ML: środowiska dla trenowania modeli (PyTorch, TensorFlow, JAX z obsługą CUDA przez conda-forge), narzędzia analizy danych z robotów (pandas, numpy, matplotlib), Jupyter notebooks dla eksploracji danych sensorycznych. RoboStack: projekt dystrybuujący pakiety ROS 2 przez conda-forge (ros-humble-desktop przez 'conda install -c conda-forge ros-humble-desktop') – umożliwia instalację ROS 2 na macOS i Windows bez VM. Conda environments pozwalają na równoległe instalacje różnych wersji ROS i bibliotek ML bez konfliktów. Stosowany przy integracji stacku robotycznego z narzędziami data science.

Wybierz pozycję, aby zobaczyć opis.
Architektury CPU
x86_64 (AMD64)

64-bitowa architektura procesora wywodząca się z rodziny x86, opracowana przez AMD (jako AMD64) i zaadoptowana przez Intel (jako Intel 64 / EM64T). Dominująca architektura w komputerach osobistych, serwerach, stacjach roboczych i komputerach przemysłowych. W robotyce stosowana jako główna platforma obliczeniowa dla: stacji operatorskich i komputerów deweloperskich (Ubuntu 22.04/24.04 x86_64), serwerów fleet management i cloud robotics, symulatorów (Gazebo, Isaac Sim wymagają x86_64 z GPU NVIDIA dla pełnej wydajności), komputerów pokładowych robotów mobilnych wyższej klasy (Intel NUC, mini-PC przemysłowe jak Nuvo, OnLogic). Oficjalne wsparcie ROS 2 dla x86_64 jest tier-1 – wszystkie dystrybucje ROS 2 (Humble, Jazzy, Kilted) są w pełni wspierane i testowane. Pakiety apt dostępne przez packages.ros.org dla Ubuntu x86_64. Dominuje w środowiskach deweloperskich i symulacyjnych. Na robotach mobilnych i humanoidach x86_64 jest stosowane gdy wymagana jest wysoka moc obliczeniowa (np. Intel Core Ultra, AMD Ryzen Embedded) bez ograniczeń energetycznych typowych dla ARM. Przykłady hardware: Intel NUC 13 Pro, AMD Ryzen Embedded V2000, Advantech MIC-770.

ARM64 / AArch64

64-bitowa architektura ARM (Advanced RISC Machine) w wersji ARMv8-A i nowszych – dominująca architektura w embedded computing, robotyce mobilnej i edge AI. Dwie nazwy oznaczają to samo: ARM64 (nazwa stosowana przez Apple i w kontekście macOS/iOS), AArch64 (oficjalna nazwa architektury ARM, używana w Linuksie i ekosystemie embedded). Absolutnie dominująca architektura w nowoczesnej robotyce mobilnej i humanoidalnej: NVIDIA Jetson (Orin NX, AGX Orin – Cortex-A78AE), Raspberry Pi 4/5 (Cortex-A72/A76), Qualcomm Robotics RB5/RB6 (Kryo), Apple M1/M2/M3 (dla stacji deweloperskich macOS), procesory w smartfonach używanych jako moduły robotyczne. Oficjalne wsparcie ROS 2 tier-1 dla aarch64 od dystrybucji Humble – pakiety apt dostępne przez packages.ros.org dla Ubuntu 22.04/24.04 aarch64. Unitree SDK2 dostępne dla aarch64 (target: Jetson Orin NX w G1). Boston Dynamics Spot: Qualcomm aarch64. Zalety wobec x86_64: znacznie niższy pobór energii (TDP 5–65W vs 45–125W), lepsza wydajność na wat, wbudowane NPU/GPU dla edge AI, mniejszy footprint fizyczny. Ograniczenia: historycznie mniejsza dostępność prebuildowanych pakietów (szybko zmniejsza się), niektóre biblioteki x86-only nie są portowane.

NVIDIA Jetson – AArch64 (JetPack)

Specjalizowana platforma obliczeniowa NVIDIA Jetson oparta na architekturze AArch64 z zintegrowanym GPU NVIDIA (architektura Ampere w Orin, Maxwell/Pascal/Volta w starszych modułach) i akceleratorem DLA (Deep Learning Accelerator). JetPack SDK: kompletny stack software dla Jetson obejmujący L4T (Linux for Tegra – Ubuntu-based OS), CUDA, cuDNN, TensorRT, VPI (Vision Programming Interface), Multimedia API. Moduły Jetson Orin: AGX Orin (12-core Cortex-A78AE, Ampere GPU 2048 CUDA cores, 64 GB RAM, TDP 15–60W), Orin NX 16GB (8-core, 1024 CUDA cores, 16 GB RAM, TDP 10–25W – używany w Unitree G1), Orin Nano (6-core, 1024 CUDA cores, 8 GB RAM, TDP 7–15W). Isaac ROS: oficjalne GPU-accelerated pakiety ROS 2 dla Jetson, dystrybuowane przez NVIDIA NGC Container Registry. Wsparcie ROS 2: tier-1 dla aarch64 Ubuntu 22.04 (Humble) i Ubuntu 24.04 (Jazzy) na JetPack 5.x/6.x. Kluczowa platforma dla robotyki z wymaganiami AI: perception pipeline (stereo depth, object detection, pose estimation), SLAM, VLA inference na edge. Przykłady wdrożeń: Unitree G1 (Orin NX 16GB jako high-level compute), Boston Dynamics (wybrane produkty), drony autonomiczne (Skydio), roboty AMR wymagające edge AI.

NVIDIA GPU (CUDA – x86_64)

Architektura obliczeniowa NVIDIA CUDA (Compute Unified Device Architecture) na platformie x86_64 – GPU NVIDIA jako koprocesor dla równoległych obliczeń. Nie jest samodzielną architekturą CPU, lecz dodatkowym wymaganiem sprzętowym dla oprogramowania korzystającego z akceleracji GPU. W robotyce kluczowa dla: trenowania modeli foundation i VLA (NVIDIA A100, H100, RTX 4090 na x86_64 serwerach/stacjach), inference modeli AI w symulatora (Isaac Sim wymaga CUDA GPU na x86_64), perception pipeline z akceleracją GPU (CUDA-accelerated stereo depth, optical flow, object detection), generowania syntetycznych datasetów (Omniverse Replicator). Wymagania: CUDA Toolkit (12.x dla najnowszych modeli), cuDNN, TensorRT dla optymalizowanego inference. NVIDIA Isaac ROS na x86_64 wymaga GPU NVIDIA z CUDA 12.x. Frameworki ML: PyTorch (CUDA backend), TensorFlow (CUDA/cuDNN), JAX (XLA + CUDA). Specyficzne wersje CUDA wymagane przez konkretne oprogramowanie – np. Isaac Sim 4.x wymaga CUDA 12.3+. Ograniczenia: wysokie wymagania energetyczne (GPU klasy datacenter: 300–700W), koszty sprzętu, brak mobilności. Środowisko deweloperskie i treningowe, nie deployment na robocie.

Wybierz pozycję, aby zobaczyć opis.
Trudność instalacji
PoziomZaawansowana
Protokoły i interfejsy
Protokoły komunikacji
PCIe (Peripheral Component Interconnect Express)

Wysokowydajny standard magistrali komputerowej stosowany do podłączania GPU, kart sieciowych i kart rozszerzeń. W robotyce relevantny w kontekście modułów obliczeniowych (NVIDIA Jetson AGX Orin – PCIe Gen4, Orin NX – PCIe Gen3).

Shared Memory (POSIX / mmap)

Mechanizm IPC oparty na współdzielonym obszarze pamięci między procesami na tym samym hoście. Stosowany w robotyce jako ultra-low-latency transport dla dużych danych. Latencje poniżej 1 µs.

Wybierz pozycję, aby zobaczyć opis.
Interfejsy sprzętowe
PCIe 4.0

Peripheral Component Interconnect Express 4.0 – przepustowość 16 GT/s na tor: x16 = 31.5 GB/s (dwukrotność PCIe 3.0). Dostępny w NVIDIA Jetson AGX Orin (PCIe Gen4 x8 i x16 przez złącze M.2 Key-M i PCIe slot). Stosowany do podłączania GPU inference, szybkich NVMe SSD i kart capture dla kamer przemysłowych.

PCIe 5.0

Peripheral Component Interconnect Express 5.0 – przepustowość 32 GT/s na tor: x16 = 63 GB/s. Pojawia się w najnowszych platformach x86 (Intel Core Ultra, AMD Ryzen 7000) stosowanych jako komputery pokładowe robotów najwyższej klasy.

Wybierz pozycję, aby zobaczyć opis.
Klasy opóźnień
Hard Real-Time (< 1 ms)

Najwyższa klasa latencji – deterministyczne czasy odpowiedzi poniżej 1 ms z gwarancją dotrzymania deadline'ów bez żadnych wyjątków. Przekroczenie terminu jest traktowane jako błąd krytyczny systemu (system failure). Realizowane wyłącznie na dedykowanych systemach operacyjnych czasu rzeczywistego (RTOS): VxWorks, QNX Neutrino, LynxOS, RTEMS, Zephyr RTOS lub jądrze Linux z łatką RT-PREEMPT. Typowe zastosowania: kontrola prądów silników BLDC/PMSM (10–100 kHz), synchronizacja enkoderów absolutnych, safety-critical E-Stop. Odpowiednik TRL 9 w deterministyczności.

Hard Real-Time (1–5 ms)

Deterministyczna klasa latencji 1–5 ms z twardą gwarancją dotrzymania deadline'ów. Realizowane na RTOS lub Linux RT-PREEMPT z izolacją CPU. Typowe cykle: 1 ms (1 kHz) dla pętli prędkości silników, 2 ms (500 Hz) dla pętli pozycji stawów, 5 ms (200 Hz) dla pętli sił i momentów. Komunikacja przez EtherCAT, CAN FD. Zastosowania: pętle regulacji prędkości w manipulatorach przemysłowych, sterowanie stawami robotów humanoidalnych w trybie low-level.

Wybierz pozycję, aby zobaczyć opis.
Typy wdrożenia
Lokalna stacja robocza

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.

Chmura

Cloud oznacza typ wdrożenia, w którym oprogramowanie działa w infrastrukturze chmurowej, np. jako usługa backendowa, narzędzie orkiestracyjne, system analityczny lub zdalna warstwa zarządzająca.

Konteneryzowany

Containerized oznacza typ wdrożenia, w którym oprogramowanie jest pakowane i uruchamiane w kontenerach, np. Docker lub innych technologiach konteneryzacji, co ułatwia przenoszenie, replikację i zarządzanie zależnościami.

Edge

Edge oznacza typ wdrożenia, w którym oprogramowanie działa na lokalnym urządzeniu obliczeniowym, bramce, komputerze przemysłowym lub innym zasobie blisko robota i sensorów, bez konieczności przetwarzania w chmurze.

Wybierz pozycję, aby zobaczyć opis.
Wspierane symulatory
NVIDIA Isaac Sim
Zaawansowany fotorealistyczny symulator robotyczny NVIDIA oparty na Omniverse.
NVIDIA Isaac Lab
Framework trenowania RL/IL oparty na Isaac Sim – GPU-massively-parallel simulation.
Oficjalne obrazy Docker
nvcr.io/nvidia/isaac-simnvcr.io/nvidia/isaac/ros
Licencje
BSD-3-ClauseBSD 3-Clause Licensev3-Clause

Rodzina licencji: Licencja permisywna

ModyfikacjaDystrybucjaUżytek komercyjnySublicencjonowanieUżytek prywatnyKompatybilna z ROSOSI zatwierdzonaFSF Free/LibreWymaga oznaczenia autorstwa

Licencja BSD z trzema klauzulami – rozszerza BSD 2-Clause o trzeci warunek zakazujący używania nazwy organizacji ani nazwisk kontrybutorów do promocji produktów pochodnych bez pisemnej zgody (non-endorsement clause). Zwana też 'New BSD License' lub 'Modified BSD License'.

Uwaga dla robotyki

Oficjalna licencja Unitree SDK2 i Unitree Python SDK2. Powszechna w pakietach ROS 2 i bibliotekach robotycznych. Klauzula non-endorsement chroni reputację oryginalnych twórców przed nieuprawnioną asocjacją z produktami pochodnymi. Praktycznie identyczna z MIT pod względem swobody użytkowania.

Historia wersji
PhysX 5.5kwi 2025

Wsparcie wektoryzacji AVX-512, ulepszone gripper contact.

PhysX 5.4wrz 2024

Optymalizacje SDF, lepsza determinizm symulacji.

PhysX 5.0sie 2022

Pełny GPU solver, soft bodies, FEM, cloth.

PhysX 4.0gru 2018

Open-source pod BSD-3, brak wsparcia GPU.

PhysX 3.0maj 2011

Pierwsza wersja stabilna z multi-threading.