zielone logo nomagic
1 j0oeqreeuddqlfduiwj8va

Porady i wskazówki dotyczące korzystania z serii RealSense D400

Autor: Mikołaj Zalewski Inżynier uczenia maszynowego i Przemysław Walczyk, starszy menedżer ds. inżynierii

W Nomagic intensywnie pracujemy z kamerami RealSense z serii D400 (głównie D415). Kamery te cieszą się popularnością ze względu na możliwość dostarczania sygnału RGB i głębi obrazu w rozsądnej cenie – dziesiątki razy taniej niż przemysłowe kamery głębi obrazu. Jako kamera stereoskopowa ze statycznym obrazem, D415 umożliwia jednoczesną pracę wielu kamer bez zakłóceń. Chociaż jakość głębi obrazu mogłaby być lepsza (z drugiej strony, RealSense oblicza głębię w czasie rzeczywistym przy wysokiej liczbie klatek na sekundę), głównym problemem, na jaki natrafiliśmy, była okresowa awaria kamer. Problemy te często pogłębiała złożoność naszego systemu wizyjnego, który wymaga jednoczesnego podłączenia wielu kamer. Poniżej przedstawiamy kilka skutecznych sposobów rozwiązania tych problemów.

Problemy i podstawowe rozwiązania — ponowne podłączanie kamer

Często po zakończeniu procesu węzła ROS dla kamery, kamera nie uruchamiała się przy kolejnej próbie jej użycia. Czasami kamera przestawała działać również w trakcie wykonywania. W takich przypadkach pojawiały się komunikaty o błędach związanych z błędami wejścia/wyjścia lub protokołu, a kamera po prostu znikała z ekranu. rs-enumerate-devices I lsusb. Ponowne podłączenie kamery zazwyczaj rozwiązywało problem (choć w jednym przypadku musieliśmy zrestartować komputer, jak opisano poniżej). Używaliśmy zasilanych hubów, a ponowne podłączenie kabla między kamerą a hubem zawsze skutecznie rozwiązywało problem. Jednak ponowne podłączenie kabla między hubem a komputerem działało tylko w niektórych przypadkach. Sugeruje to, że występują co najmniej dwa rodzaje problemów — więcej szczegółów w następnej sekcji.

W jednym eksperymencie podłączyliśmy cztery kamery do systemu i restartowaliśmy ich węzły ROS 6631 razy z rzędu. Zaobserwowaliśmy 45 przypadków, w których jedna z czterech kamer nie pojawiła się ponownie (około 1%). Szczegóły tego problemu można znaleźć w tym raporcie o błędzie, choć wyniki mogą się znacznie różnić — w niektóre dni kamery działały znacznie lepiej, w inne gorzej.

Bardziej dopracowane obejścia

Ponieważ zdalne odłączanie kamer nie jest możliwe, stosujemy dwa dodatkowe triki:

  1. Zresetuj kontrolery USB
    Można to zrobić za pomocą skryptu, który symuluje odłączenie kabla między komputerem a zasilanym koncentratorem. Jednak ta metoda działa tylko w niektórych przypadkach.
  2. Wyłącz i włącz komputer
    Za pomocą alarmu możemy wyłączyć komputer i automatycznie go włączyć. Ten skrypt zapewnia całkowite wyłączenie systemu przed ponownym uruchomieniem, ponieważ niepełne wyłączenie uniemożliwia jego ponowne uruchomienie.

Chociaż te obejścia pomagają w krótkiej perspektywie, nie nadają się do środowisk produkcyjnych. Dlatego szukaliśmy bardziej niezawodnych rozwiązań.

Zaktualizuj oprogramowanie układowe

Domyślne oprogramowanie układowe 5.8.15 dostarczane z kamerami często powoduje problemy z okresowymi awariami. Aktualizacja do serii 5.9.x rozwiązuje wiele z tych problemów, a seria 5.10.x oferuje jeszcze większą stabilność.

Upewnij się, że masz połączenie USB3

Czasami kamera łączy się w trybie USB2 (nawet po podłączeniu do portu USB3), co znacznie ogranicza jej funkcjonalność. Na przykład, rejestrowanie obrazów głębi i podczerwieni lub uzyskanie wyższych rozdzielczości i liczby klatek na sekundę staje się niemożliwe. Aby zweryfikować typ połączenia, uruchom lsusb -t. Każda kamera powinna być widoczna jako cztery wpisy z prędkością 5000 mln. Jeśli widzisz tylko trzy wpisy na 480 mln, konieczne jest ponowne podłączenie aparatu.

Zarządzaj ograniczeniami przepustowości

Jak szczegółowo opisano w tym dokumencie, kamery RealSense zużywają znaczną część teoretycznej przepustowości USB3 wynoszącej 5000 Mb/s (przy rzeczywistej przepustowości wynoszącej zazwyczaj około 3200–3600 Mb/s). Podłączenie zbyt wielu kamer do jednego portu USB za pośrednictwem koncentratorów może spowodować awarie z powodu ograniczeń przepustowości. Nawet z oddzielnymi portami USB, wiele płyt głównych ma tylko jeden lub dwa wewnętrzne koncentratory USB, co oznacza, że porty mogą współdzielić tę samą przepustowość 5000 Mb/s. lsusb -t polecenie może ujawnić, ile koncentratorów jest w użyciu (poszukaj linii oznaczonych 5000 mln).

Aby zwiększyć przepustowość:

  • Kup kartę PCIe z dodatkowymi portami USB. Wysokiej jakości karty zapewniają osobną przepustowość dla każdego portu, podczas gdy tańsze karty współdzielą przepustowość między portami.
  • Zmniejsz liczbę klatek na sekundę lub rozdzielczość kamery, aby zmniejszyć zużycie przepustowości.

Regularnie resetuj kamerę

Resetowanie kamery przed użyciem okazało się bardzo skuteczne, szczególnie w przypadku starszych wersji oprogramowania sprzętowego. Wiele problemów udało się rozwiązać poprzez programowe resetowanie kamery, jak pokazano w tym artykule. popełniać. Dodanie takiego kodu do procesu uruchamiania aparatu znacznie zmniejszyło liczbę przypadków niepowodzenia inicjalizacji.

Uważaj na błąd wycieku urządzenia /dev/media*

Resetowanie lub odłączanie kamer może ujawnić błąd w niektórych jądrach Linuksa, w tym w wersji używanej w Ubuntu 16.04 LTS. Jak opisano w ten raport, niektóre wersje jądra przeciekają /dev/media* urządzeń po odłączeniu. Po użyciu wszystkich 255 urządzeń kamery RealSense przestają działać.

Objawy obejmują:

  • lsusb -t seans Kierowca= zamiast Sterownik=uvcvideo.
  • Dzienniki jądra zawierające komunikat “media: nie udało się uzyskać bezpłatnego elementu drugorzędnego”.
  • ls /dev/media* pokazano 255 wpisów.

Jedynym obejściem tego problemu jest ponowne uruchomienie systemu, choć lepszym rozwiązaniem jest uaktualnienie jądra do wersji, której nie dotyczy ten błąd (np. 4.18 lub nowszej).

Uszkodzenie danych kalibracji głębokości

Jeśli strumień głębokości zaczyna być zniekształcony, może to oznaczać uszkodzenie danych kalibracji głębokości. “Narzędzie do dynamicznej kalibracji” umożliwia przywrócenie danych kalibracyjnych za pomocą Intel.Realsense.CustomRW -g, a następnie uruchom procedurę kalibracji.

Uszkodzenie danych kalibracji głębokości w serii RealSense D400

Sprawdź swoje kable

Niektóre problemy wynikają z wadliwych kabli, szczególnie gdy kamera jest zamontowana na ruchomym ramieniu robota. Objawy obejmują częstsze awarie konkretnej kamery z czasem, aż do całkowitego zaprzestania jej działania. Wymiana kabla zazwyczaj rozwiązuje ten problem. Chociaż nie dysponujemy jeszcze niezawodną metodą wykrywania wadliwych kabli, zliczania niekompletnych klatek lub korzystania z… Pobierz liczbę błędów portu polecenie (wprowadzone w USB 3.1) może pomóc.

Uwaga: Teoretyczna przepustowość USB3 wynosząca 5000 Mb/s może zakłócać działanie urządzeń radiowych 2,5 GHz. Na przykład, klawiatura bezprzewodowa przestała działać po podłączeniu w pobliżu kamery RealSense. Ekranowane kable USB lub unikanie takich urządzeń w pobliżu może złagodzić ten problem.

Pomoc techniczna firmy Intel jest pomocna

Wiele z opisanych tutaj sztuczek zostało odkrytych poprzez interakcje z Obsługa Intel RealSense, za co jesteśmy wdzięczni. Możesz tam składać zgłoszenia i oczekiwać szybkiej odpowiedzi.

Udostępnij artykuł:

Może Ci się też spodobać

Twoja przyszłość w robotyce zaczyna się tutaj

Skontaktuj się z Nomagic i przekonaj się, jak nasza innowacyjna technologia może przenieść Twoje procesy realizacji zamówień na wyższy poziom.