Aktywny⊙ Open source⚡ Real-time capable⟨/⟩ Dostępne API
KATEGORIASterowanie · Sterowanie i planowanie
GOTOWOŚĆTRL 9
SKALA ADOPCJIUgruntowany open source
LICENCJELGPL-2.1-only
PIERWSZE WYDANIE2007
qpOASES to otwarta biblioteka C++ do rozwiązywania problemów programowania kwadratowego (Quadratic Programming, QP) zaprojektowana z myślą o aplikacjach embedded i czasach wykonania w skali milisekund. Stworzona przez Hansa Joachima Ferreau i prof. Moritza Diehla w grupie OPTEC na KU Leuven oraz KIT (Karlsruhe Institute of Technology), obecnie hostowana przez fundację COIN-OR i utrzymywana przez społeczność akademicką.
Główną zaletą qpOASES jest implementacja strategii online active-set: po pierwszym rozwiązaniu QP solver utrzymuje bazę aktywnych ograniczeń i przy kolejnym wywołaniu (z lekko zmienionymi parametrami) wykonuje tylko niewielką liczbę kroków pivot. To czyni qpOASES idealnym solverem do MPC (Model Predictive Control), gdzie ten sam strukturalnie problem QP jest rozwiązywany w pętli z częstotliwością 100 Hz - 1 kHz.
Biblioteka jest bezpłatna i otwarta na licencji LGPL 2.1, napisana w czystym C++ z minimalnymi zależnościami (tylko BLAS/LAPACK). Wsparcie dla wielu interfejsów: C, Python (qpoases-python), MATLAB/Simulink, Octave, dSPACE. qpOASES jest częścią pakietu ACADO Toolkit (do nonlinear MPC) oraz CasADi (auto-differentiation framework dla optymalizacji), gdzie jest jednym z preferowanych solverów QP.
W robotyce humanoidalnej i autonomicznych pojazdach qpOASES jest jednym z dominujących solverów dla Whole Body Control (WBC) — sformułowania zadania sterowania całym ciałem robota jako problemu QP z hierarchicznymi zadaniami i ograniczeniami fizycznymi (kontakty, momenty obrotowe, limity stawów). Przykłady wdrożeń: KIT ARMAR-6 i ARMAR-7, DLR Justin, IHMC Atlas, Boston Dynamics (wczesne projekty badawcze), DARPA Robotics Challenge — większość zespołów używała qpOASES jako solver dla WBC.
W odróżnieniu od bardziej ogólnych solverów (CPLEX, Gurobi, OSQP) qpOASES specjalizuje się w problemach o niewielkim rozmiarze (do ~1000 zmiennych decyzyjnych) z gęstymi macierzami — typowy zakres dla MPC robotów. Dla większych problemów rzadkich (sparse) lepszym wyborem jest OSQP. qpOASES rozwijany jest powoli (release cadence ~1-2 lata), ale jest fundamentalnym narzędziem w optymalizacji embedded i bardzo dojrzałym kodem (TRL 9, stabilne API od 2014).
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.
Stack sterowania
Control Stack to zestaw komponentów programowych odpowiedzialnych za logikę sterowania, planowanie ruchu, wykonywanie komend oraz koordynację działania elementów wykonawczych robota.
Wybierz pozycję, aby zobaczyć opis.
Kategoria główna
Sterowanie i planowanieRuntime i infrastruktura
Role w ekosystemie robotycznym
Sterowanie robotem
Robot Control oznacza rolę oprogramowania odpowiedzialnego za sterowanie ruchem, wykonywanie komend, koordynację działania elementów wykonawczych oraz bezpośrednią logikę operacyjną robota.
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.
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.
Wybierz pozycję, aby zobaczyć opis.
Rodzina oprogramowania
Rodzina
Planowanie ruchu
Rodzina otwartych bibliotek do planowania ruchu (RRT, PRM, Lazy-PRM), kinematyki odwrotnej, dynamiki rigid-body i optymalizacji trajektorii: MoveIt, OMPL, Pinocchio, Drake, RBDL, TrajOpt, KDL, Bullet, iDynTree.
Dojrzałość i adopcja
9 / 9
Sprawdzone w warunkach operacyjnych
BadaniaPrototypProdukcja
Skala adopcjiUgruntowany open source
Status utrzymaniaUtrzymywane przez społeczność – wolne tempo
Pierwsze wydanie2007
Ostatnia aktualizacja20 maja 2026
Wdrożenia
KIT ARMAR-6, ARMAR-7 (KIT High-Performance Humanoid Technologies Lab, Karlsruhe) — humanoidalne roboty laboratoryjne używające qpOASES jako solver Whole Body Control.
DLR Justin / Rollin' Justin (German Aerospace Center) — torso humanoidalny używany do badań nad manipulacją w kosmosie, qpOASES jako solver MPC dla kontroli torsji.
IHMC Atlas (DARPA Robotics Challenge 2015) — Florida Institute for Human and Machine Cognition, drugie miejsce w DRC, qpOASES w stack WBC.
ACADO Toolkit / CasADi — używany jako wbudowany solver QP w obu frameworkach optymalizacji nonlinear MPC.
Mercedes-Benz, Daimler AG — eksperymenty z autonomous driving w 2014-2018 (Bertha Drive Project), qpOASES w MPC torowym dla wysokich prędkości.
Liczne projekty akademickie w robotyce nogo-chodzącej (CMU, ETH Zurich, IIT Genoa, KAIST) i autonomous racing (TUM, Formula Student).
Społeczność
GitHub: coin-or/qpOASES — ~400 gwiazdek, ~120 forków, ~25 kontrybutorów, sporadyczne aktualizacje, dojrzała baza kodu.
Społeczność akademicka — kilka tysięcy cytowań w pracach z robotyki, MPC i autonomous driving. Oryginalna publikacja Ferreau, Kirches, Potschka, Bock, Diehl (2014, Math. Prog. Comp.) cytowana >2500 razy.
Maintenance — głównie wolontariusze z KIT i University of Freiburg (Diehl Lab), Mailing list COIN-OR z niską aktywnością. Brak komercyjnego wsparcia — projekt akademicki.
Ekosystem — wbudowany w ACADO, CasADi, gdzie ma realnie dziesiątki tysięcy użytkowników finalnych w robotyce, automotive i procesie chemicznym.
Wsparcie ROSKompatybilność z ekosystemem ROS / ROS 2
Brak wsparcia ROSBrak jakiejkolwiek integracji z ekosystemem ROS
Community ROS 2 WrapperWrapper ROS 2 tworzony i utrzymywany przez społeczność, nie przez producenta
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
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.
Ubuntu 24.04
Ubuntu 24.04 LTS 'Noble Numbat' — wspierane do kwietnia 2029. Host dla ROS 2 Jazzy.
Debian
Debian to jedna z najbardziej stabilnych i powszechnie stosowanych dystrybucji Linux, wykorzystywana jako baza dla wielu systemów embedded, robotycznych i serwerowych.
macOS
macOS to system operacyjny Apple wykorzystywany głównie na stacjach roboczych i laptopach deweloperskich do budowy, testowania i integracji oprogramowania.
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.
Wybierz pozycję, aby zobaczyć opis.
Minimalne wymagania sprzętowe
Minimalne wymagania sprzętowe
CPUDowolny CPU z FPU obsługujący kompilator C++11. Wsparcie dla x86_64, ARM64, Cortex-M (z STM32CubeIDE). Minimalna częstotliwość: 100 MHz dla małych QP (<50 zmiennych).
RAM (GB)Minimalnie 16 MB RAM dla małych problemów QP. Typowo 100-500 MB dla MPC humanoidów (200-800 zmiennych).
GPUNiewymagane. qpOASES jest CPU-only — algorytmy active-set są inherentnie sekwencyjne.
Dysk (GB)< 2 MB instalacja biblioteki, ~10 MB z przykładami i dokumentacją.
Wymaga BLAS/LAPACK na hoście (np. OpenBLAS, Intel MKL). Dla wariantu embedded (qpOASES Embedded) możliwa wersja standalone bez zewnętrznych zależności.
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.
pip / PyPI
Oficjalny menedżer pakietów języka Python i rejestr PyPI (Python Package Index – pypi.org). Pakiety instalowane przez narzędzie pip ('pip install <package>') lub pip3 dla Pythona 3. Szeroko stosowany w ekosystemie robotycznym dla: bibliotek Pythona do komunikacji z SDK (Unitree Python SDK2 dostępne przez pip), wrapperów Pythona dla algorytmów (OpenCV Python: 'pip install opencv-python'), narzędzi deweloperskich (colcon, rosdep, vcstool instalowane przez pip). Obsługuje wirtualne środowiska (venv, virtualenv, conda) izolujące zależności między projektami. Format pakietów: wheel (.whl, binarne) i sdist (.tar.gz, source distribution wymagająca kompilacji). PyPI zawiera ponad 500,000 pakietów – największy ekosystem pakietów Python. Integracja z ROS 2: pakiety Python ROS 2 mogą być instalowane zarówno przez apt (ros-humble-rclpy) jak i pip, przy czym apt jest preferowany dla pakietów ROS 2 core. Wsparcie dla pinowania wersji przez requirements.txt i Pipfile. Ograniczenie: brak native obsługi zależności systemowych (C libraries) – rosdep uzupełnia tę lukę w ekosystemie ROS.
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).
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.
aarch64 / ARM64
ARM 64-bit – NVIDIA Jetson, Raspberry Pi 4/5, Apple Silicon.
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.
Apple Silicon – AArch64 (macOS)
Procesory Apple Silicon (M1, M2, M3, M4 i warianty Pro/Max/Ultra) oparte na architekturze AArch64 (ARMv8.5-A+), stosowane w MacBook, Mac mini, Mac Studio i Mac Pro od 2020 r. Platforma deweloperska rosnącego znaczenia w ekosystemie robotycznym – wielu deweloperów ROS 2 używa MacBooków z Apple Silicon. Wsparcie ROS 2: tier-3 (community supported) dla macOS, ROS 2 Humble i Jazzy można zainstalować przez: Homebrew ('brew install ros-humble' przez tap), RoboStack (conda-forge – najwygodniejsza metoda: 'conda install -c conda-forge ros-humble-desktop'), budowanie ze źródeł przez colcon. RoboStack/conda-forge jest rekomendowaną metodą instalacji ROS 2 na Apple Silicon macOS. Apple Silicon: unified memory architecture (CPU, GPU i Neural Engine współdzielą pamięć), Metal GPU API (brak CUDA – wymaga PyTorch z Metal Performance Shaders backend), Core ML / Apple Neural Engine dla inference. Ograniczenia: brak wsparcia CUDA (biblioteki NVIDIA CUDA-only nie działają natywnie), Rosetta 2 umożliwia uruchomienie x86_64 binary ale bez pełnej wydajności, niektóre pakiety ROS 2 wymagają patchowania dla macOS. Gazebo/Ignition: dostępne na macOS ARM64. Zastosowanie: deweloperzy piszący i testujący kod ROS 2, symulacje, narzędzia CLI – nie deployment na robot.
Raspberry Pi – AArch64 (BCM)
Platforma Raspberry Pi oparta na procesorach Broadcom (BCM) z architekturą AArch64: Raspberry Pi 4 Model B (BCM2711, quad-core Cortex-A72, do 8 GB RAM), Raspberry Pi 5 (BCM2712, quad-core Cortex-A76, do 8 GB RAM, 2–3× szybszy niż Pi 4), Raspberry Pi Compute Module 4/5 (wersje do integracji w custom hardware robotycznym). Raspberry Pi OS (64-bit) oparty na Debian Bookworm dla AArch64. Wsparcie ROS 2: tier-3 (community supported) dla Raspberry Pi OS, tier-1 dla Ubuntu 22.04/24.04 zainstalowanego na Raspberry Pi 4/5. Powszechnie stosowane w: edukacyjnych robotach mobilnych (TurtleBot 4 używa Raspberry Pi 4 jako komputer pokładowy), prototypach robotów AMR, robotach kroczących hobby (PicoBot, Hexapod na Pi), drone autopilots (ArduPilot na Pi), systemach wizyjnych (Pi Camera Module 3, HQ Camera przez MIPI CSI-2). Raspberry Pi 5 z PCIe 2.0 przez HAT+ connector umożliwia podłączenie M.2 NVMe SSD i akceleratorów AI (Hailo-8L – 13 TOPS). Ograniczenia wobec Jetson: brak dedykowanego GPU dla CUDA, brak wbudowanego NPU (poza Hailo zewnętrznym), 4K video processing bez sprzętowej akceleracji AI. Idealny dla: prototypowania, edukacji, robotów mobilnych niższej klasy, aplikacji niewymagających ciężkiego inference AI.
STM32 – ARM Cortex-M (embedded MCU)
Rodzina mikrokontrolerów STMicroelectronics STM32 oparta na rdzeniach ARM Cortex-M (M0, M0+, M3, M4F, M7, M33, M55) – dominująca platforma MCU w embedded firmware robotycznym. Nie uruchamia systemu operacyjnego Linux – oprogramowanie wykonywane bare-metal lub na RTOS (FreeRTOS, Zephyr, ChibiOS, Mbed OS). Zastosowania w robotyce: kontrolery silników BLDC/PMSM (FOC – Field Oriented Control) z pętlą regulacji prądu 10–100 kHz, sterowniki stawów robotów (Dynamixel SDK wewnętrznie używa STM32), interfejsy sensorów (IMU, enkodery absolutne, czujniki siły/momentu), kontrolery bezpieczeństwa (safety monitor, E-Stop), elektronika power management. Popularne serie: STM32F4 (Cortex-M4F, 168 MHz – standard w robotyce), STM32G4 (Cortex-M4F, 170 MHz, CAN FD – nowa generacja dla kontrolerów silników), STM32H7 (Cortex-M7, 480 MHz – wymagające aplikacje DSP/control), STM32U5 (Cortex-M33, ultra-low power – IoT robotics). Środowiska programistyczne: STM32CubeIDE, PlatformIO, Arduino framework dla STM32 (community). Integracja z ROS 2: micro-ROS na STM32 przez FreeRTOS (oficjalnie wspierane – STM32 jest platformą referencyjną micro-ROS), Zephyr RTOS + micro-ROS. Programowanie i debugging: ST-LINK/V3, J-Link przez SWD/JTAG.
Wybierz pozycję, aby zobaczyć opis.
Trudność instalacji
PoziomUmiarkowana
Protokoły i interfejsy
Protokoły komunikacji
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
Ethernet 1000BASE-T (Gigabit Ethernet)
Standard IEEE 802.3ab – Ethernet 1 Gbit/s przez skrętkę Cat5e/Cat6, złącze RJ-45. Dominujący interfejs sieciowy w robotyce: komunikacja SDK-robot (Unitree SDK2, Boston Dynamics API, UR e-Series), przesyłanie obrazów z kamer IP, integracja z ROS 2 przez DDS/RTPS.
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.
Hard Real-Time (5–20 ms)
Deterministyczna klasa latencji 5–20 ms – twardy real-time dla pętli zewnętrznych sterowania robotycznego. Cykle 5–20 ms (50–200 Hz). Możliwy na Linux RT-PREEMPT bez pełnego RTOS. Zastosowania: pętla pozycji i impedancji w cobotach (Universal Robots e-Series), sterowanie trajectoriami w manipulatorach (ros2_control JointTrajectoryController przy 100 Hz), pętla równowagi w robotach humanoidalnych. Wystarczający dla większości zastosowań sterowania ruchem.
Soft Real-Time (20–100 ms)
Klasa miękkiego czasu rzeczywistego 20–100 ms – deadline'y wymagane statystycznie, sporadyczne przekroczenia akceptowalne. Realizowany na standardowym Linux z priorytetem SCHED_FIFO. Komunikacja przez Ethernet GbE, DDS/RTPS, ROS 2 topics. Zastosowania: nawigacja AMR (Nav2: 20–50 Hz), high-level sterowanie humanoidów (Unitree SDK2: 50 Hz), planowanie trajektorii (MoveIt 2 servo), integracja sensorów (LiDAR SLAM: 10–20 Hz). Wystarczający dla większości algorytmów nawigacyjnych i SLAM.
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.
Na robocie
On Robot oznacza typ wdrożenia, w którym oprogramowanie działa bezpośrednio na robocie lub na jego pokładowym module obliczeniowym, np. komputerze przemysłowym, SBC lub platformie edge AI.
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
Drake
Framework do modelowania i symulacji układów dynamicznych – Toyota Research / MIT.
MuJoCo
Wysoce wydajny symulator fizyki Google DeepMind – standard w badaniach RL dla robotyki.
Licencje
LGPL-2.1-onlyGNU Lesser General Public License v2.1v2.1
Rodzina licencji: Słaby copyleft
ModyfikacjaDystrybucjaUżytek komercyjnyUżytek prywatnyKompatybilna z ROSOSI zatwierdzonaFSF Free/LibreWymaga oznaczenia autorstwaShare-alikeUjawnienie źródeł
Słaba licencja copyleft GNU przeznaczona dla bibliotek. Copyleft obejmuje wyłącznie zmodyfikowane pliki samej biblioteki LGPL – aplikacja linkująca do biblioteki LGPL może pozostać zamknięta (proprietary). Linkowanie dynamiczne jest bezpieczne. Linkowanie statyczne wymaga umożliwienia użytkownikowi relinkowania z inną wersją biblioteki.
Uwaga dla robotyki
Stosowana w niektórych starszych bibliotekach ROS 1 i middleware robotycznych. Wymaga starannej analizy przy linkingu statycznym w firmware embedded. Qt 5 (używane przez rqt) dostępne na LGPL v2.1 lub v3 – ważne przy tworzeniu zamkniętych narzędzi GUI dla robotów.