
Sterowanie · Sterowanie i planowanie
0.11.1·
openpilot to otwartoźródłowy system wspomagania jazdy (ADAS) rozwijany przez firmę comma.ai. Modernizuje fabryczne systemy asysty kierowcy, zapewniając adaptacyjny tempomat (ACC) oraz automatyczne centrowanie pojazdu w pasie ruchu (ALC) w ponad 300 wspieranych modelach samochodów.
System odpowiada poziomowi 2 autonomii według klasyfikacji SAE (częściowa automatyzacja) — wymaga stałego nadzoru kierowcy i monitoruje jego uwagę za pomocą kamery. Działa na dedykowanych urządzeniach comma (m.in. comma 3X i comma 4) podłączanych do magistrali CAN samochodu przez dedykowaną wiązkę.
openpilot wykorzystuje architekturę end-to-end opartą na sieci neuronowej trenowanej na rzeczywistych danych z jazdy, która przewiduje trajektorię pojazdu bezpośrednio z obrazu z kamer. Kod egzekwujący model bezpieczeństwa działa na module panda (napisany w C) i uwzględnia wytyczne ISO 26262. Oprogramowanie jest udostępniane na licencji MIT.
System operacyjny ogólnego przeznaczenia lub specjalizowany dla robotyki — Ubuntu, Ubuntu Core, dystrybucje ROS-aware. Stanowi platformę dla middleware, runtime i aplikacji robotycznych.
Control Stack to zestaw komponentów programowych odpowiedzialnych za logikę sterowania, planowanie ruchu, wykonywanie komend oraz koordynację działania elementów wykonawczych robota.
Robot Control oznacza rolę oprogramowania odpowiedzialnego za sterowanie ruchem, wykonywanie komend, koordynację działania elementów wykonawczych oraz bezpośrednią logikę operacyjną robota.
Perception oznacza rolę oprogramowania przetwarzającego dane z kamer, LiDAR-ów, IMU i innych sensorów w celu wykrywania obiektów, rozpoznawania sceny, lokalizacji, mapowania i interpretacji środowiska.
Rola bezpieczeństwa funkcjonalnego opisuje oprogramowanie odpowiedzialne za to, aby robot pracujący obok ludzi nie spowodował szkody nawet w przypadku awarii sprzętu, błędu oprogramowania lub nieprzewidzianego zdarzenia środowiskowego. Komponent safety realizuje: deterministyczne wykonywanie zadań krytycznych (twarda determinika czasowa), izolację błędów (fault containment), ciągłe monitorowanie integralności systemu, przejścia do bezpiecznych stanów awaryjnych (safe states), oraz zgodność z normami bezpieczeństwa funkcjonalnego — IEC 61508 (SIL), ISO 13849 (Performance Level), ISO/IEC TR 5469 (AI w systemach safety). Typowo działa na izolowanym podsystemie sprzętowym (np. wyspa FSI) niezależnym od głównego stosu obliczeniowego.
Ponad 300 modeli samochodów wielu marek (m.in. Toyota, Honda, Hyundai, Kia, Subaru, Volkswagen).
Ponad 63 000 gwiazdek na GitHubie; ponad 300 wspieranych modeli aut.
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.
C to język programowania powszechnie wykorzystywany w firmware, sterownikach, mikrokontrolerach i systemach embedded, gdzie wymagana jest bezpośrednia kontrola nad zasobami sprzętowymi.
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.
macOS to system operacyjny Apple wykorzystywany głównie na stacjach roboczych i laptopach deweloperskich do budowy, testowania i integracji oprogramowania.
Do jazdy wymagane jest urządzenie comma, wspierany samochód (300+ modeli) oraz dedykowana wiązka car harness. Środowisko deweloperskie: Ubuntu 24.04 (główny cel), macOS lub Windows przez WSL2.
Mechanizm zdalnej aktualizacji oprogramowania na robotach w terenie bez fizycznego dostępu do urządzenia, przez sieć (Wi-Fi, 5G, Ethernet). Kluczowy element infrastruktury floty robotów produkcyjnych. Implementacje: Mender.io (open source OTA dla Linux embedded, obsługuje Yocto i Ubuntu Core), balena.io (kontenerowy OTA oparty na Docker), SWUpdate (open source, powszechny w Yocto/OpenEmbedded), RAUC (robust update framework), Ubuntu Core Snap Store (automatyczne aktualizacje snaps), AWS IoT Greengrass (OTA dla urządzeń edge), Azure IoT Hub Device Update. Wymagania dla OTA w robotyce: atomic updates (aktualizacja albo się powiodła w całości, albo nie – brak stanu pośredniego), A/B partition scheme (aktualizacja na nieaktywnej partycji, przełączenie po sukcesie), automatic rollback przy błędzie startu, delta updates (przesyłanie tylko zmian – ważne przy ograniczonym paśmie 4G/5G), cryptographic signing (weryfikacja integralności aktualizacji). Integralny element systemów zarządzania flotą AMR i humanoidów deployowanych w dużej skali.
Dostępne wyłącznie jako kod źródłowy do kompilacji.
Platforma obliczeniowa Qualcomm Snapdragon oparta na AArch64 (własne rdzenie Kryo lub licencjonowane Cortex-A) z zintegrowanym GPU Adreno i NPU (Neural Processing Unit) Hexagon DSP. Wysoka wydajność AI na watt – przewaga nad NVIDIA Jetson przy zastosowaniach bateryjnych. Platformy robotyczne Qualcomm: Qualcomm Robotics RB5 (Snapdragon 865, Hexagon 698 DSP, 8 GB RAM), RB6 (Snapdragon 888, Hexagon 780), RB3 Gen 2 (Snapdragon 6490). Boston Dynamics Spot: Snapdragon jako główny procesor mobilny. Drony DJI (wybrane modele). Wsparcie oprogramowania: Qualcomm AI Stack (QNN – Qualcomm Neural Network SDK, SNPE – Snapdragon Neural Processing Engine), ROS 2 na Ubuntu for Snapdragon, OpenCV z Hexagon DSP acceleration. Hexagon DSP umożliwia inference modeli ML z bardzo niskim poborem energii (idle: mW, active: 1–5W). Ograniczenia: mniejszy ekosystem narzędzi deweloperskich niż NVIDIA Jetson, SNPE mniej popularny niż TensorRT, ograniczone wsparcie dla CUDA-only bibliotek. Rosnące wsparcie przez Qualcomm AI Hub (gotowe modele zoptymalizowane pod Snapdragon). Preferowana platforma w robotyce mobilnej (drony, roboty kołowe) gdzie priorytetem jest autonomia baterii.
Intel/AMD 64-bit – najpowszechniejsza architektura PC i serwerów.
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.
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.
Rodzina licencji: Licencja permisywna
Jedna z najprostszych i najszerzej stosowanych licencji open source. Pozwala na dowolne użycie, modyfikację i dystrybucję kodu, w tym w produktach zamkniętych, pod warunkiem zachowania tekstu licencji i informacji o prawach autorskich. Nie zawiera klauzuli patentowej ani copyleft.
Dominująca licencja w małych bibliotekach ekosystemu ROS 2 i narzędziach deweloperskich. Idealna dla SDK robotów OEM chcących maksymalnej adopcji. Brak klauzuli patentowej oznacza ryzyko przy projektach z portfoliem patentowym – w takich przypadkach preferowana Apache 2.0.