Kamera 3D pozwala robotowi analizować nie tylko wygląd otoczenia, lecz także odległość i przestrzenne położenie obiektów. Dzięki temu system może określić, jak daleko znajduje się człowiek, przeszkoda, produkt albo element konstrukcji, a następnie wykorzystać tę informację do nawigacji, chwytania, kontroli jakości lub wykonywania autonomicznych zadań.
W robotyce stosuje się kilka rodzajów kamer przestrzennych. Do najważniejszych należą kamery stereo, urządzenia wykorzystujące pomiar czasu przelotu światła ToF oraz kamery RGB-D łączące obraz kolorowy z mapą głębi. Poszczególne technologie różnią się zasadą działania, zakresem pomiarowym, odpornością na warunki oświetleniowe i wymaganiami obliczeniowymi.
Czym jest kamera 3D?
Kamera 3D jest czujnikiem umożliwiającym określenie odległości pomiędzy urządzeniem a obserwowanymi elementami otoczenia. Oprócz klasycznego obrazu może dostarczać mapę głębi, w której każdemu pikselowi przypisana jest informacja o odległości.
Dane te mogą zostać przekształcone w przestrzenną chmurę punktów. Robot otrzymuje wtedy współrzędne opisujące położenie powierzchni i obiektów w trzech wymiarach. Pozwala to analizować ich kształt, wielkość, orientację oraz wzajemne rozmieszczenie.
Czym różni się obraz RGB od obrazu głębi?
Klasyczny obraz RGB opisuje kolor i jasność poszczególnych pikseli. Umożliwia rozpoznawanie napisów, barw, tekstur, twarzy i cech wizualnych, ale sam nie dostarcza bezpośredniej informacji o odległości.
Obraz głębi przedstawia natomiast dystans pomiędzy kamerą a obserwowaną powierzchnią. Jaśniejsze i ciemniejsze wartości mogą reprezentować różne odległości, zależnie od sposobu wizualizacji. Połączenie obu rodzajów danych pozwala robotowi określić zarówno co widzi, jak i gdzie znajduje się dany obiekt.
Jak działa kamera stereo?
Kamera stereo wykorzystuje dwa obiektywy obserwujące tę samą scenę z nieco różnych pozycji. Zasada działania przypomina sposób, w jaki człowiek ocenia odległość za pomocą dwojga oczu. Ten sam punkt otoczenia znajduje się w innym miejscu na obrazie z lewej i prawej kamery, a różnica jego położenia umożliwia obliczenie głębi.
Odległość pomiędzy środkami obu kamer jest nazywana bazą stereo. Po prawidłowej kalibracji system zna parametry optyczne obiektywów oraz ich wzajemne położenie. Następnie obrazy są prostowane, czyli przekształcane tak, aby odpowiadające sobie punkty znajdowały się na tych samych poziomych liniach. Ułatwia to ich wyszukiwanie i porównywanie. Oficjalny pakiet ROS 2 stereo_image_proc przetwarza pary obrazów stereo, tworząc między innymi mapę dysparycji oraz chmurę punktów.
Jak kamera stereo oblicza odległość?
Czym jest dysparycja?
Dysparycja określa różnicę położenia odpowiadającego sobie punktu na obrazie z lewej i prawej kamery. Różnica ta wynika z paralaksy powstającej podczas obserwacji sceny z dwóch różnych punktów widzenia.
Zależność pomiędzy dysparycją i głębią jest odwrotna. Im mniejsza różnica położenia punktu pomiędzy obrazami, tym większa jest wyznaczona odległość. Oznacza to również, że dokładność systemu stereo zwykle pogarsza się wraz ze wzrostem dystansu od kamery.
W ROS 2 komponent DisparityNode może obliczać mapę dysparycji na podstawie dwóch wyprostowanych obrazów, a PointCloudNode przekształcać wynik w chmurę punktów przeznaczoną między innymi do wizualizacji w RViz i dalszego przetwarzania.
Najważniejsze elementy systemu stereo
Poprawne działanie kamery stereo wymaga dokładnej kalibracji. Nawet niewielki błąd we wzajemnym położeniu obiektywów może powodować nieprawidłowe dopasowania, przesunięcia mapy głębi oraz błędne współrzędne punktów. Pakiet image_pipeline w ROS 2 zawiera narzędzia do kalibracji kamer, prostowania obrazów oraz generowania map dysparycji i chmur punktów.
Jak działa kamera ToF?
Kamera ToF wykorzystuje aktywne źródło światła, najczęściej pracujące w zakresie podczerwieni, do pomiaru odległości pomiędzy urządzeniem a obserwowanymi powierzchniami. Skrót ToF pochodzi od angielskiego określenia Time of Flight, czyli czasu przelotu.
Kamera emituje światło, które odbija się od obiektów i wraca do matrycy czujnika. Na podstawie czasu powrotu sygnału albo przesunięcia fazowego modulowanego światła system oblicza odległość dla poszczególnych pikseli. W efekcie powstaje mapa głębi przedstawiająca przestrzenne położenie obserwowanych powierzchni.
W odróżnieniu od klasycznej kamery stereo system ToF nie musi wyszukiwać tych samych cech na dwóch obrazach. Pomiar głębi jest wykonywany aktywnie przez nadajnik i odbiornik światła. Kamery ToF mogą dzięki temu generować mapę odległości również dla powierzchni zawierających niewiele tekstury
Jak przebiega pomiar odległości ToF?
W uproszczonym modelu odległość wynika z czasu potrzebnego światłu na przebycie drogi od kamery do obiektu i z powrotem. Ponieważ mierzony jest pełny czas podróży w obu kierunkach, wynik dzieli się przez dwa. W rzeczywistych kamerach sposób obliczenia zależy jednak od zastosowanej odmiany technologii ToF i konstrukcji czujnika.
Direct ToF i Indirect ToF – czym się różnią?
Technologie ToF można podzielić na bezpośredni pomiar czasu przelotu, określany jako dToF, oraz pośredni pomiar czasu przelotu, czyli iToF. Oba rozwiązania wykorzystują światło odbite od obiektu, ale w inny sposób wyznaczają odległość.
dToF mierzy bezpośrednie opóźnienie pomiędzy wysłaniem impulsu a wykryciem jego powrotu. iToF wykorzystuje natomiast światło modulowane i oblicza odległość na podstawie przesunięcia fazowego pomiędzy sygnałem emitowanym i odbieranym.
Najważniejsze elementy kamery ToF
Kamera ToF może obliczać odległość dla każdego piksela matrycy, dzięki czemu jednym pomiarem uzyskuje obraz całej obserwowanej przestrzeni. Przykładowe przemysłowe kamery ToF oferują różne tryby zasięgu, rozdzielczości i częstotliwości pracy, dlatego parametry należy dobierać do wielkości obiektu, prędkości robota oraz wymaganej dokładności.
W ROS 2 obraz głębi może zostać przetworzony na chmurę punktów, zarejestrowany względem obrazu kolorowego albo wykorzystany przez kolejne komponenty systemu percepcji. Służy do tego między innymi pakiet depth_image_proc.
Jak działa kamera światła strukturalnego?
Kamera światła strukturalnego wykorzystuje projektor, który wyświetla na obserwowanej powierzchni znany wzór, na przykład układ punktów, linii, pasów albo siatkę. Wzór może być emitowany światłem widzialnym lub podczerwonym, dzięki czemu w wielu urządzeniach pozostaje niewidoczny dla człowieka.
Kamera rejestruje sposób, w jaki wyświetlony wzór zmienia się po zetknięciu z powierzchnią obiektu. Linie i punkty ulegają przesunięciu albo deformacji zależnie od kształtu oraz odległości obserwowanej powierzchni. Znając parametry projektora, kamery i ich wzajemne położenie, system może obliczyć głębię metodą triangulacji.
W niektórych urządzeniach projektor współpracuje z dwiema kamerami stereo. Wyświetlany wzór tworzy wtedy dodatkową teksturę na jednolitych powierzchniach, na których klasyczny system stereo miałby trudność z odnalezieniem odpowiadających sobie punktów. Takie rozwiązanie jest określane między innymi jako stereo z projektowaną teksturą.
Jak przebiega pomiar światłem strukturalnym?
Systemy światła strukturalnego mogą korzystać z pojedynczego wzoru albo sekwencji kolejnych wzorów. Sekwencje pasów lub kodowanych układów pozwalają dokładniej ustalić, który fragment projekcji został zarejestrowany przez dany piksel kamery.
Najważniejsze elementy kamery światła strukturalnego
Zalety światła strukturalnego
Ograniczenia światła strukturalnego
Światło strukturalne bardzo dobrze sprawdza się podczas analizy obiektów znajdujących się w kontrolowanej przestrzeni, na przykład na stanowisku robotycznym. W pracy na zewnątrz albo przy intensywnym oświetleniu projekcja może być trudniejsza do odczytania. Na jakość danych wpływają również refleksyjność powierzchni, zasłonięcia i ruch analizowanego obiektu.
W ROS 2 mapa głębi uzyskana z takiego urządzenia może być prostowana, rejestrowana względem obrazu kolorowego oraz przekształcana w chmurę punktów przy użyciu komponentów pakietu depth_image_proc.
Czym jest kamera RGB-D?
Kamera RGB-D dostarcza jednocześnie klasyczny obraz kolorowy RGB oraz informację o głębi oznaczaną literą D od angielskiego słowa depth. Dzięki temu robot może analizować wygląd obiektu i równocześnie określać jego odległość, położenie oraz wymiary przestrzenne.
Określenie RGB-D nie opisuje jednej konkretnej metody pomiarowej. Głębia może być wyznaczana między innymi przez system stereo, technologię ToF albo światło strukturalne. Najważniejsze jest to, że urządzenie udostępnia obraz kolorowy i odpowiadające mu dane odległości.
Po prawidłowym dopasowaniu obu strumieni każdemu punktowi obrazu głębi można przypisać kolor z obrazu RGB. Pozwala to utworzyć kolorową chmurę punktów, w której punkty zawierają zarówno współrzędne przestrzenne X, Y i Z, jak i informację o kolorze. Pakiet ROS 2 depth_image_proc zawiera komponenty umożliwiające rejestrowanie obrazu głębi względem innej kamery oraz tworzenie chmur punktów typu XYZRGB.
Jakie dane może udostępniać kamera RGB-D?
ROS 2 umożliwia generowanie chmury punktów XYZRGB na podstawie obrazu głębi i obrazu kolorowego, pod warunkiem odpowiedniego dopasowania danych oraz dostępności informacji kalibracyjnych kamer.
Jak łączone są obraz RGB i mapa głębi?
Kamera kolorowa i czujnik głębi mogą znajdować się w różnych miejscach obudowy oraz posiadać inne pole widzenia, rozdzielczość i parametry optyczne. Oznacza to, że piksel obrazu głębi nie musi automatycznie odpowiadać pikselowi o tych samych współrzędnych na obrazie RGB.
Aby połączyć oba strumienie, system wykorzystuje kalibrację wewnętrzną i zewnętrzną. Kalibracja wewnętrzna opisuje właściwości poszczególnych kamer, natomiast kalibracja zewnętrzna określa ich wzajemne położenie i orientację. Następnie punkty głębi są przeliczane do układu optycznego kamery kolorowej albo odwrotnie.
Proces ten określa się jako rejestrację lub wyrównanie danych. W dokumentacji ROS 2 funkcje pakietu depth_image_proc obejmują reprojekcję obrazu głębi do układu innej kamery oraz tworzenie kolorowych chmur punktów.
Jak przebiega tworzenie kolorowej chmury punktów?
Nie wszystkie punkty mapy głębi muszą otrzymać prawidłowy kolor. Kamery obserwują scenę z nieco różnych pozycji, dlatego część powierzchni może być widoczna dla jednego modułu i zasłonięta dla drugiego. Błędy mogą pojawić się również na krawędziach obiektów, podczas ruchu oraz wtedy, gdy obrazy RGB i głębi nie zostały wykonane w tym samym momencie.
Co daje robotowi połączenie koloru i głębi?
Kamera RGB-D może na przykład rozpoznać karton na obrazie kolorowym, obliczyć jego odległość i orientację, a następnie przekazać współrzędne do ramienia robotycznego. W systemie mobilnym te same dane mogą służyć do wykrywania przeszkód, rozpoznawania ludzi oraz budowania lokalnego modelu przestrzeni.
Kamery wykorzystujące stereo mogą generować głębię wyrównaną względem obrazu RGB i kolorowe chmury punktów, jednak poprawność takiego połączenia zależy od konfiguracji sprzętu i kalibracji.
Porównanie kamer stereo, ToF, światła strukturalnego i RGB-D
Kamery stereo, ToF i światła strukturalnego wykorzystują odmienne metody określania głębi. System stereo oblicza odległość przez porównanie obrazu z dwóch punktów widzenia, ToF analizuje czas przelotu albo przesunięcie fazowe emitowanego światła, natomiast światło strukturalne mierzy deformację wzoru wyświetlanego na powierzchni.
Określenie RGB-D nie oznacza osobnej zasady pomiarowej. Opisuje urządzenie udostępniające jednocześnie obraz kolorowy RGB i dane głębi. Kamera RGB-D może więc wykorzystywać technologię stereo, ToF albo światła strukturalnego.
Kamery stereo wykorzystują triangulację na podstawie dwóch obrazów, systemy ToF aktywnie mierzą powrót emitowanego światła, a projektowana tekstura może uzupełniać brak naturalnych szczegółów powierzchni. ROS 2 pozwala następnie przetwarzać obraz głębi i obraz kolorowy na chmury punktów XYZ lub XYZRGB.
Najważniejsze różnice pomiędzy technologiami
Nie można wskazać jednej technologii najlepszej do wszystkich zastosowań. Kamera stereo może być dobrym rozwiązaniem dla robota pracującego na większym obszarze i korzystającego z Visual SLAM. ToF może zapewnić szybki i gęsty obraz głębi w dynamicznym środowisku, natomiast światło strukturalne dobrze sprawdza się podczas dokładnej analizy przedmiotów na stanowisku robotycznym.
Kamera RGB-D jest szczególnie użyteczna wtedy, gdy robot musi jednocześnie rozpoznawać obiekty i określać ich przestrzenne położenie. Ostateczne właściwości urządzenia zależą jednak od technologii zastosowanej w jego module głębi.
Parametry systemu stereo zależą między innymi od bazy, pola widzenia i rozdzielczości, natomiast kamery ToF wykonują aktywny pomiar głębi dla matrycy czujnika. Projektowana tekstura może poprawiać dane stereo na powierzchniach pozbawionych wyraźnych szczegółów.
Jak dobrać technologię do zadania robota?
Przed wyborem kamery warto przetestować ją na rzeczywistych obiektach i w docelowych warunkach oświetleniowych. Dane katalogowe nie zawsze pokazują zachowanie urządzenia na czarnych, błyszczących, przezroczystych albo poruszających się powierzchniach.
Jakie czynniki wpływają na dokładność kamery 3D?
Dokładność kamery 3D zależy nie tylko od technologii wykorzystanej do pomiaru głębi. Na jakość danych wpływają również odległość od obiektu, rozdzielczość czujnika, pole widzenia, kalibracja, warunki oświetleniowe, właściwości powierzchni oraz ruch kamery i obserwowanej sceny.
Inaczej zachowuje się kamera stereo, która musi odnaleźć odpowiadające sobie fragmenty dwóch obrazów, a inaczej kamera ToF wykorzystująca własne źródło światła podczerwonego. Dlatego przed wyborem urządzenia należy analizować nie tylko deklarowaną dokładność, ale również warunki, w których została ona zmierzona.
W systemach stereo na dokładność wpływają między innymi rozdzielczość, pole widzenia, odległość pomiędzy kamerami i jakość kalibracji. W kamerach ToF istotne są natomiast światło otoczenia, refleksyjność powierzchni, temperatura, odbicia wielodrogowe i możliwość interferencji z innymi czujnikami.
Najważniejsze źródła błędów pomiaru głębi
W przypadku pasywnego stereo problemy często pojawiają się na gładkich, jednolitych powierzchniach, ponieważ algorytm nie znajduje wystarczającej liczby charakterystycznych punktów. Projektor podczerwieni może stworzyć dodatkową teksturę, ale jego skuteczność może zmniejszać się w silnym świetle słonecznym.
W kamerach ToF silne światło otoczenia może zmniejszać stosunek sygnału do szumu, natomiast błyszczące i przezroczyste powierzchnie mogą powodować odbicia wielodrogowe albo brak wiarygodnego pomiaru. Podobne problemy mogą występować, gdy kilka aktywnych czujników pracuje jednocześnie w tym samym obszarze.
Jak poprawić jakość danych z kamery 3D?
W systemach stereo większa rozdzielczość i szersza baza mogą poprawić dokładność, ale wpływają również na minimalny dystans, pole widzenia i ilość przetwarzanych danych. Z kolei stabilność kalibracji może pogorszyć się po uderzeniu, zmianie mocowania lub odkształceniu termicznym urządzenia.
Parametry katalogowe należy traktować jako wartości osiągane w określonych warunkach testowych. Rzeczywista dokładność może zmieniać się zależnie od oświetlenia, odległości i właściwości obserwowanych obiektów.
Kamera 3D a LiDAR – które rozwiązanie wybrać?
Kamera 3D i LiDAR umożliwiają robotowi analizowanie geometrii otoczenia, ale dostarczają danych w inny sposób. Kamera głębi tworzy obraz, w którym odległość jest przypisana do poszczególnych pikseli. Może również udostępniać obraz RGB, dzięki czemu robot otrzymuje informacje o kolorze, teksturze i wyglądzie obiektu.
LiDAR wykonuje pomiary odległości za pomocą światła laserowego i generuje skan albo przestrzenną chmurę punktów. Dane mogą zawierać również dodatkowe informacje, takie jak intensywność sygnału lub refleksyjność powierzchni. Czujniki tego rodzaju są często wykorzystywane do mapowania, lokalizacji, wykrywania przeszkód oraz autonomicznej nawigacji.
Nie należy zakładać, że jedna technologia jest zawsze lepsza. Kamera 3D może zapewnić szczegółowe dane o niewielkich obiektach znajdujących się blisko robota, natomiast LiDAR często lepiej sprawdza się podczas obserwacji większej przestrzeni i tworzenia stabilnego modelu geometrycznego otoczenia. Ostateczny wybór zależy od zasięgu, pola widzenia, warunków pracy i zadania robota.
ROS 2 umożliwia przekształcanie obrazów głębi w chmury punktów, a także konwersję chmur PointCloud2 do skanów LaserScan wykorzystywanych przez algorytmy lokalizacji i nawigacji. Dane LiDAR mogą natomiast zawierać między innymi zasięg, siłę sygnału oraz refleksyjność
Porównanie kamery 3D i LiDAR-u
Rzeczywiste właściwości obu rozwiązań zależą od konkretnej konstrukcji. Przykładowo zakres pracy stereo jest powiązany między innymi z bazą kamer, rozdzielczością i polem widzenia, a aktywne systemy głębi mogą tracić jakość w intensywnym świetle. Pomiary ToF są również zależne od refleksyjności, światła otoczenia i temperatury.
Kiedy lepiej wybrać kamerę 3D?
Kiedy lepiej wybrać LiDAR?
Dlaczego roboty często wykorzystują oba czujniki?
Kamera 3D i LiDAR mogą wzajemnie uzupełniać swoje możliwości. LiDAR dostarcza stabilnych informacji o geometrii i odległości, natomiast kamera pozwala analizować kolor, teksturę i znaczenie obserwowanych obiektów.
Przykładowo LiDAR może wykryć przeszkodę i określić jej położenie, a kamera rozpoznać, czy jest to człowiek, paleta, pojazd albo element wyposażenia. System nawigacyjny może wtedy uwzględnić zarówno geometrię przestrzeni, jak i kategorię obiektu.
Połączenie danych wymaga jednak poprawnej kalibracji wzajemnego położenia czujników, synchronizacji czasu oraz przeliczenia pomiarów do wspólnego układu współrzędnych. Dopiero wtedy punkty LiDAR-u i dane obrazu mogą zostać prawidłowo połączone.
W ROS 2 obrazy głębi mogą być przekształcane w chmury punktów, a chmury 3D rzutowane do postaci skanu wykorzystywanego przez algorytmy dwuwymiarowe. Ułatwia to integrację różnych źródeł danych w jednej architekturze robota.
Zastosowania kamer 3D w różnych typach robotów
Kamera 3D może pełnić różne funkcje zależnie od konstrukcji robota i realizowanego zadania. W robotach mobilnych wspiera wykrywanie przeszkód oraz analizę przestrzeni przed platformą. W robotach wyposażonych w manipulatory pozwala określać położenie, wymiary i orientację przedmiotów, natomiast w systemach inspekcyjnych może służyć do tworzenia modeli przestrzennych oraz wykrywania zmian w geometrii obiektów.
Szczególnie dużą wartość daje połączenie danych głębi z algorytmami rozpoznawania obrazu. System może wtedy nie tylko wykryć przedmiot, ale także określić jego rzeczywiste położenie w przestrzeni. Takie rozwiązania są wykorzystywane między innymi w nawigacji, kontroli jakości, robotycznym chwytaniu, inspekcji i tworzeniu cyfrowych modeli otoczenia.
Przykładowe zastosowania według rodzaju robota
W robotyce manipulacyjnej kamera 3D może dostarczać dane potrzebne do wyznaczenia chwytu i położenia przedmiotu. Przemysłowe systemy stereo są oferowane między innymi do zastosowań typu pick-and-place, natomiast przestrzenna percepcja może łączyć detekcję obiektu z jego rzeczywistą pozycją, rozmiarem i orientacją.
Kamera 3D nie musi realizować wszystkich zadań jednocześnie. W robocie mobilnym może być skierowana przed platformę i odpowiadać głównie za lokalne wykrywanie przeszkód. Druga kamera zamontowana przy chwytaku może natomiast służyć do dokładnej lokalizacji przedmiotów oraz kontroli przebiegu manipulacji.
Jak kamera 3D wspiera wykonanie autonomicznego zadania?
Dane z obrazu głębi mogą zostać przekształcone w chmurę punktów zawierającą współrzędne przestrzenne, a po połączeniu z obrazem kolorowym również informacje RGB. Tak przygotowane dane mogą być dalej wykorzystywane przez system rozpoznawania obiektów, nawigacji albo planowania chwytu.
Kamera na robocie czy nad stanowiskiem?
Kamera 3D może być zamontowana bezpośrednio na robocie, przy chwytaku albo nieruchomo nad stanowiskiem pracy. Każdy sposób montażu daje inne możliwości i wymaga innej kalibracji.
Kamera zamontowana na chwytaku porusza się razem z ramieniem i może obserwować przedmiot z bliskiej odległości. Rozwiązanie to określa się często jako eye-in-hand. Kamera nieruchoma, obserwująca całe stanowisko, jest natomiast nazywana układem eye-to-hand. Zapewnia szerszy widok obszaru roboczego, ale część obiektów może zostać zasłonięta przez ramię, chwytak lub inne wyposażenie.
Wybór sposobu montażu powinien wynikać z wielkości przestrzeni roboczej, dokładności wymaganej przy chwytaniu oraz częstotliwości zmian na stanowisku. Przemysłowe rozwiązania wizyjne wymagają sprawdzenia dokładności całego układu robot–kamera oraz ponownej kalibracji po zmianie położenia urządzenia.
Jak kamera 3D wspiera chwytanie i manipulację robotyczną?
Kamera 3D umożliwia robotowi określenie przestrzennego położenia, orientacji i wymiarów przedmiotu. Dane te są potrzebne, aby manipulator mógł zaplanować podejście chwytaka, bezpiecznie ominąć przeszkody, uchwycić obiekt i przenieść go do wyznaczonego miejsca.
Samo rozpoznanie przedmiotu na obrazie RGB nie wystarcza do wykonania chwytu. Robot musi również wiedzieć, jak daleko znajduje się obiekt, pod jakim kątem jest ułożony oraz czy wokół niego pozostaje wystarczająco dużo wolnej przestrzeni. Informacje te mogą pochodzić z mapy głębi albo chmury punktów utworzonej przez kamerę 3D.
W środowisku ROS 2 dane głębi mogą być przekształcane w chmury punktów, natomiast MoveIt 2 udostępnia narzędzia do planowania ruchu, obsługi sceny kolizyjnej i realizacji zadań typu pick-and-place
Jak przebiega chwytanie obiektu?
Jeden przedmiot może posiadać wiele możliwych pozycji chwytu. System powinien ocenić między innymi osiągalność pozycji przez manipulator, kierunek podejścia, możliwość zamknięcia chwytaka oraz ryzyko kolizji z otoczeniem. Narzędzia MoveIt mogą filtrować propozycje chwytów na podstawie osiągalności i planować fazy podejścia, podniesienia oraz odsunięcia przedmiotu.
Jakie informacje z kamery 3D są potrzebne do chwytania?
Pozycja obiektu wykryta w układzie optycznym kamery musi zostać przeliczona do układu podstawy robota albo manipulatora. W ROS 2 biblioteka tf2 przechowuje relacje pomiędzy układami współrzędnych i umożliwia transformowanie danych czujników pomiędzy nimi w określonym czasie.
Co może utrudniać poprawne chwytanie?To jest tytuł
W zadaniach takich jak pobieranie losowo ułożonych części z pojemnika pojedynczy obraz może nie przedstawiać całej geometrii przedmiotów. System może wtedy zmienić punkt obserwacji, wykonać kolejny pomiar albo wybrać obiekt, którego powierzchnia i otoczenie są najlepiej widoczne.
Planowanie powinno uwzględniać nie tylko sam chwyt, lecz także bezpieczne podejście, podniesienie przedmiotu i odsunięcie go od pozostałych elementów. MoveIt Task Constructor dzieli zadanie pick-and-place na kolejne etapy i umożliwia analizowanie alternatywnych rozwiązań ruchu.
Jak kamera 3D współpracuje z ROS 2?
Kamera 3D może być połączona z ROS 2 za pomocą sterownika udostępnionego przez producenta urządzenia albo pakietu rozwijanego przez społeczność. Sterownik odczytuje dane z kamery i publikuje je w postaci standardowych wiadomości ROS 2, dzięki czemu mogą być wykorzystywane przez kolejne moduły systemu robotycznego.
Kamera RGB-D może publikować osobno obraz kolorowy, obraz głębi, informacje kalibracyjne i chmurę punktów. System może następnie prostować obrazy, przeliczać głębię do układu kamery kolorowej, filtrować dane oraz transformować punkty do układu współrzędnych robota.
Pakiet sensor_msgs definiuje między innymi wiadomości Image, CameraInfo, PointCloud2 i Imu. Pakiet depth_image_proc służy natomiast do przetwarzania obrazów głębi, tworzenia chmur punktów i rejestrowania danych głębi względem innej kamery.
Najważniejsze dane publikowane przez kamerę 3D
Obraz RGB i obraz głębi są zwykle publikowane jako osobne strumienie. Każdemu z nich powinny towarzyszyć odpowiednie informacje CameraInfo. Zgodność znaczników czasu i układów współrzędnych jest szczególnie ważna, gdy dane mają zostać połączone w kolorową chmurę punktów albo wykorzystane do sterowania ruchomym robotem.
Wiadomość PointCloud2 może przechowywać wielowymiarowe punkty wraz z dodatkowymi informacjami, takimi jak kolor, intensywność lub inne pola zdefiniowane przez producenta i oprogramowanie przetwarzające.
Jak przebiega przetwarzanie danych z kamery?
Przed utworzeniem chmury punktów obraz głębi powinien być prawidłowo wyprostowany i powiązany z informacjami kalibracyjnymi. Dokumentacja depth_image_proc wskazuje, że pakiet obsługuje między innymi konwersję jednostek, rejestrację obrazu głębi i tworzenie chmur punktów XYZ oraz XYZRGB.
Najważniejsze pakiety i narzędzia ROS 2
Stos image_pipeline obejmuje narzędzia do prostowania obrazów, przetwarzania danych stereo i generowania chmur punktów. image_transport powinien być stosowany podczas publikowania i odbierania obrazów, ponieważ umożliwia dobór odpowiedniej metody transportu bez zmiany podstawowej architektury aplikacji.
Podczas diagnostyki warto sprawdzić nie tylko obecność tematów, ale także częstotliwość publikacji, kodowanie obrazu, informacje CameraInfo, znaczniki czasu i kompletność transformacji. Obraz może być widoczny, a mimo to chmura punktów nie powstanie, jeżeli brakuje kalibracji albo zgodności pomiędzy strumieniami.
Jak kamera 3D wspiera SLAM i autonomiczną nawigację?
Kamera 3D może dostarczać robotowi danych potrzebnych do lokalizacji, tworzenia mapy, wykrywania przeszkód i aktualizowania informacji o wolnej przestrzeni. W zależności od zastosowanej technologii system wykorzystuje obrazy stereo, mapę głębi, kolorową chmurę punktów albo dane połączone z czujnikiem IMU.
W systemach Visual SLAM kolejne obrazy są analizowane w celu odnalezienia charakterystycznych punktów otoczenia i oszacowania ruchu kamery. Kamera głębi dostarcza dodatkowo informację o odległości, co ułatwia tworzenie przestrzennej mapy oraz określanie położenia przeszkód.
Przykładem rozwiązania wykorzystującego dane RGB-D jest RTAB-Map, opisywany w dokumentacji ROS 2 jako system SLAM działający w czasie rzeczywistym. Kamera głębi może również dostarczać dane do map kosztu systemu Nav2, który wykorzystuje je podczas omijania przeszkód i planowania ruchu.
Jak dane z kamery trafiają do systemu nawigacji?
Obraz głębi może zostać przekształcony w wiadomość LaserScan przy użyciu pakietu depthimage_to_laserscan. Tak przygotowane dane mogą być wykorzystane przez komponenty przeznaczone do lokalizacji i nawigacji laserowej. Alternatywnie kamera może publikować chmurę PointCloud2, która zostanie przetworzona przez przestrzenną warstwę mapy kosztu.
Rola kamery 3D w poszczególnych elementach autonomii
Nav2 może wykorzystywać dane LaserScan i PointCloud2 w warstwach mapy kosztu. Warstwa przeszkód przetwarza dane w reprezentacji dwuwymiarowej, natomiast warstwa wokselowa wykorzystuje informacje przestrzenne pochodzące między innymi z kamer głębi i innych czujników 3D.
Kamera 3D w mapie kosztu robota
Mapa kosztu jest reprezentacją przestrzeni używaną przez system nawigacyjny do oceny, przez które obszary robot może przejechać. Przeszkodom przypisywany jest wysoki koszt albo status obszaru niedostępnego, natomiast miejsca znajdujące się blisko przeszkód mogą otrzymać koszt podwyższony.
Dane z kamery 3D mogą być dodawane do lokalnej mapy kosztu jako chmura punktów. System wykorzystuje położenie punktów do zaznaczania przeszkód, a informacje o przestrzeni pomiędzy kamerą i wykrytą powierzchnią mogą służyć do usuwania nieaktualnych przeszkód z mapy.
Warstwa wokselowa Nav2 wykorzystuje przestrzenne śledzenie promieni i może przetwarzać dane z kamer głębi oraz innych czujników 3D. Wynik jest następnie przedstawiany w formie przydatnej do dwuwymiarowego planowania przejazdu.
Czy kamera 3D może zastąpić LiDAR w nawigacji?
W niektórych robotach kamera 3D może być głównym czujnikiem wykorzystywanym do lokalizacji i wykrywania przeszkód. Obraz głębi można przekształcić w skan laserowy, a chmurę punktów przekazać bezpośrednio do warstwy przestrzennej mapy kosztu. Nav2 może więc współpracować z systemami nawigacyjnymi opartymi na danych wizyjnych i głębi.
Nie oznacza to jednak, że kamera zawsze zastąpi LiDAR bez pogorszenia działania. Jej użyteczny zasięg, pole widzenia oraz odporność na światło, brak tekstury i właściwości powierzchni mogą być inne. Kamera umieszczona z przodu robota może również nie obserwować przestrzeni po bokach i z tyłu platformy.
W wielu konstrukcjach stosuje się oba rozwiązania. LiDAR odpowiada wtedy za mapowanie i lokalizację w większym obszarze, a kamera 3D uzupełnia system o dokładną analizę przestrzeni przed robotem, rozpoznawanie obiektów i wykrywanie przeszkód znajdujących się na różnych wysokościa
Jak dobrać kamerę 3D do robota?
Dobór kamery 3D powinien rozpocząć się od określenia zadania, które ma wykonywać robot. Inne wymagania będzie miała kamera przeznaczona do wykrywania przeszkód przed platformą mobilną, a inne urządzenie wykorzystywane do chwytania niewielkich elementów, kontroli jakości albo tworzenia mapy przestrzennej.
Najważniejsze jest dopasowanie użytecznego zakresu pomiarowego, pola widzenia, dokładności i częstotliwości danych do wielkości obiektów oraz prędkości robota. Kamera powinna dostarczać wiarygodną głębię dokładnie w tej przestrzeni, w której realizowane będzie zadanie. Bardzo duży zasięg nie będzie przydatny, jeżeli urządzenie nie potrafi poprawnie mierzyć przedmiotów znajdujących się blisko chwytaka.
W systemach stereo dokładność zależy między innymi od kalibracji, rozdzielczości, pola widzenia oraz odległości pomiędzy kamerami. Szersza baza stereo może poprawiać dokładność pomiaru dalszych obiektów, ale jednocześnie zwiększać minimalny dystans roboczy. W kamerach ToF znaczenie mają również światło otoczenia, temperatura i właściwości odbijające powierzchni.
Najważniejsze parametry przy wyborze kamery 3D
Nie należy porównywać kamer wyłącznie na podstawie rozdzielczości obrazu. Dwie kamery o podobnej liczbie pikseli mogą znacząco różnić się minimalnym dystansem, dokładnością, polem widzenia i odpornością na warunki oświetleniowe.
W systemie stereo szersze pole widzenia może zmniejszać dokładność głębi, natomiast wyższa rozdzielczość i większa baza mogą ją poprawiać. Zwiększenie bazy wpływa jednak również na minimalną odległość pomiarową. Zależności te należy analizować łącznie, a nie jako osobne parametry.
Jak przeprowadzić dobór krok po kroku?
Kalibracja jest warunkiem prawidłowego powiązania obrazu z trójwymiarową przestrzenią. Stos image_pipeline w ROS 2 zawiera narzędzia do kalibracji, prostowania obrazów, przetwarzania stereo oraz tworzenia chmur punktów z obrazów głębi.
Dlaczego test praktyczny jest konieczny?
Dane katalogowe pozwalają zawęzić wybór, ale nie zastępują próby wykonanej w rzeczywistych warunkach. Kamerę należy przetestować na tych samych materiałach, w podobnym oświetleniu i z odległości odpowiadającej docelowemu stanowisku.
Podczas testu trzeba sprawdzić nie tylko średni błąd odległości. Ważna jest również kompletność mapy głębi, stabilność krawędzi, liczba brakujących pikseli, opóźnienie danych oraz zachowanie kamery po wprawieniu robota lub obiektu w ruch.
Temperatura, światło otoczenia i zmiany mechaniczne mogą wpływać na parametry pomiarowe kamery podczas jej eksploatacji. Dlatego test powinien obejmować również rozgrzanie urządzenia, dłuższą pracę oraz warunki możliwie zbliżone do późniejszego wdrożenia.
Zalety i ograniczenia kamer 3D w robotyce
Kamery 3D dostarczają robotowi informacji o odległości, kształcie i przestrzennym położeniu obiektów. W urządzeniach RGB-D dane geometryczne mogą być dodatkowo połączone z kolorem, teksturą i wynikami algorytmów rozpoznawania obrazu. Dzięki temu jeden system wizyjny może wspierać nawigację, manipulację, kontrolę jakości oraz interakcję z człowiekiem.
Rzeczywiste możliwości kamery zależą jednak od zastosowanej technologii, zakresu roboczego, oświetlenia i właściwości obserwowanych powierzchni. Kamera stereo, ToF i światła strukturalnego mogą reagować inaczej na te same warunki, dlatego ich zalety oraz ograniczenia należy oceniać w kontekście konkretnego zadania.
Najważniejsze zalety kamer 3D
Istotną zaletą obrazu głębi jest jego uporządkowana struktura. Informacja o odległości jest przypisana do pikseli obrazu, dzięki czemu można ją stosunkowo łatwo połączyć z obrazem RGB oraz wynikami detekcji obiektów.
W ROS 2 dane głębi mogą być rejestrowane względem obrazu kolorowego i przekształcane w chmury punktów XYZ albo XYZRGB. Ułatwia to wykorzystanie jednego źródła danych przez systemy rozpoznawania, nawigacji i manipulacji.
Najważniejsze ograniczenia kamer 3D
Ograniczenia nie występują z jednakową intensywnością we wszystkich urządzeniach. W systemach stereo dokładność zależy między innymi od rozdzielczości, pola widzenia, bazy kamer, kalibracji i jakości tekstury obserwowanej sceny. Szersze pole widzenia może obejmować większy obszar, ale jednocześnie zmniejszać dokładność przestrzenną
W kamerach ToF na wynik mogą wpływać dodatkowe źródła światła, refleksyjność materiału oraz temperatura urządzenia. Silne światło otoczenia zwiększa szum mapy głębi, natomiast zmiany temperatury mogą powodować dryft pomiaru.
Czy kamera 3D zawsze zapewnia kompletny obraz otoczenia?
Kamera 3D rejestruje wyłącznie powierzchnie widoczne z aktualnego punktu obserwacji. Nie mierzy fragmentów zasłoniętych przez inne obiekty ani obszarów znajdujących się poza jej polem widzenia. Pojedyncza kamera zamontowana z przodu robota nie zapewnia więc pełnej obserwacji przestrzeni po bokach i z tyłu platformy.
Problem zasłonięć jest szczególnie istotny podczas pobierania losowo ułożonych części z pojemnika. Górne przedmioty mogą częściowo zakrywać elementy znajdujące się niżej, dlatego system nie zawsze dysponuje pełnym modelem ich kształtu. Robot może wówczas wykonać dodatkowy pomiar, zmienić pozycję kamery albo wybrać najlepiej widoczny przedmiot.
W bardziej rozbudowanych konstrukcjach stosuje się kilka kamer rozmieszczonych w różnych miejscach lub łączy kamerę 3D z LiDAR-em, czujnikami odległości i enkoderami robota. Zwiększa to pokrycie przestrzeni i odporność systemu, ale wymaga dokładnej synchronizacji, kalibracji oraz przeliczenia danych do wspólnego układu współrzędnych.
Kiedy zastosowanie kamery 3D jest najbardziej uzasadnione?
Zastosowanie kamery 3D jest szczególnie uzasadnione wtedy, gdy robot musi podejmować decyzje na podstawie rzeczywistego położenia obiektów, a nie tylko wcześniej zapisanych współrzędnych. Kamera nie usuwa jednak potrzeby właściwego zaprojektowania stanowiska, oświetlenia, chwytaka i procesu sterowania.
Najlepsze rezultaty daje rozwiązanie dobrane do konkretnego zakresu roboczego i sprawdzone na rzeczywistych materiałach. Dane katalogowe powinny być punktem wyjścia, natomiast ostateczna ocena powinna wynikać z testu całego zadania wykonywanego przez robota. Zewnętrzne warunki i zmiany zachodzące w czasie eksploatacji mogą wpływać na parametry głębi.
Najczęściej zadawane pytania o kamery 3D w robotyce
Kamery 3D są wykorzystywane w robotach mobilnych, manipulatorach, systemach kontroli jakości i autonomicznych platformach badawczych. Poniżej odpowiadamy na najczęstsze pytania dotyczące ich działania, możliwości oraz ograniczeń.
Podsumowanie – jaką rolę pełni kamera 3D w robotyce?
Kamera 3D jest jednym z podstawowych czujników wykorzystywanych do przestrzennej percepcji robota. Pozwala określać odległość do powierzchni, analizować kształt obiektów, wykrywać przeszkody oraz tworzyć mapy głębi i chmury punktów. W przypadku urządzeń RGB-D dane geometryczne mogą zostać połączone z obrazem kolorowym, dzięki czemu robot otrzymuje jednocześnie informacje o wyglądzie i położeniu przedmiotu.
Pomiar głębi może być realizowany na kilka sposobów. Kamera stereo porównuje obrazy z dwóch punktów widzenia, system ToF wykorzystuje światło emitowane przez urządzenie, natomiast światło strukturalne analizuje wzór projektowany na obserwowaną powierzchnię. Każda technologia ma własne zalety i ograniczenia, dlatego nie istnieje jeden rodzaj kamery odpowiedni do wszystkich robotów.
Kamery 3D są wykorzystywane między innymi w autonomicznej nawigacji, Visual SLAM, robotycznym chwytaniu, sortowaniu, kontroli jakości, analizie ludzi i tworzeniu modeli przestrzennych. Obraz głębi może zostać przekształcony w chmurę punktów XYZ, a po dopasowaniu do obrazu kolorowego również w chmurę XYZRGB. Takie operacje są obsługiwane przez komponenty pakietu ROS 2 depth_image_proc.
W robotach mobilnych dane PointCloud2 pochodzące z kamery głębi mogą zasilać przestrzenną warstwę mapy kosztu Nav2. Pozwala to wykrywać przeszkody znajdujące się na różnych wysokościach i uwzględniać je podczas planowania przejazdu. Kamera 3D może uzupełniać LiDAR albo w wybranych zastosowaniach pełnić funkcję głównego czujnika lokalnej percepcji.
Jakość danych zależy jednak od odległości, kalibracji, oświetlenia, ruchu i właściwości obserwowanych powierzchni. Problemy mogą powodować między innymi szkło, materiały błyszczące, bardzo ciemne obiekty, silne światło słoneczne i wzajemne zakłócanie się aktywnych czujników. W kamerach ToF dodatkowe światło może zwiększać szum pomiaru i ograniczać możliwość poprawnego odczytania odbitego sygnału.
Z tego powodu wybór kamery powinien wynikać z rzeczywistego zadania robota, a nie wyłącznie z parametrów katalogowych. Urządzenie należy sprawdzić w docelowym zakresie odległości, przy właściwym oświetleniu oraz na materiałach występujących w danym procesie. Dopiero test kompletnego systemu pozwala ocenić, czy kamera zapewnia dostatecznie dokładne i stabilne dane do nawigacji, chwytania albo kontroli jakości.
Najważniejsze wnioski
Rozwój kamer głębi, przetwarzania obrazu i sztucznej inteligencji sprawia, że roboty mogą coraz dokładniej interpretować przestrzeń i reagować na zmiany zachodzące w otoczeniu. Kamera 3D nie jest jednak samodzielnym systemem autonomii. Pełne rozwiązanie wymaga również odpowiedniego oprogramowania, kalibracji, mocy obliczeniowej oraz integracji danych z pozostałymi czujnikami i układami sterowania robota.
Szukasz robota wyposażonego w kamerę 3D?
LEDIO Robotics pomaga firmom, szkołom, uczelniom i zespołom badawczym w doborze robotów wyposażonych w kamery 3D, LiDAR, ROS 2, SDK oraz narzędzia umożliwiające tworzenie własnych aplikacji.
Pomagamy ocenić dostęp do danych z czujników, możliwości programowania, dokumentację techniczną oraz przydatność konkretnego robota do nawigacji, mapowania, badań, edukacji i wdrożeń przemysłowych.
