April 21st, 2023
Gdy chwytamy obiekt, wiele obszarów palców i dłoni zazwyczaj styka się z powierzchnią obiektu. Rekonstrukcja takich obszarów kontaktu jest wyzwaniem. W tym miejscu przedstawiamy metodę przybliżonego szacowania obszarów kontaktu poprzez połączenie przechwytywania ruchu opartego na znacznikach z istniejącą rekonstrukcją siatki ręcznej opartą na głębokim uczeniu.
Wcześniejsze badania behawioralne nad chwytaniem człowieka ograniczały się do bardzo ograniczonych pomiarów w ściśle kontrolowanych scenariuszach. Nasz protokół pozwala na znacznie bogatszą charakterystykę złożonych, naturalistycznych zachowań chwytnych. Technika ta wykorzystuje szczegółowe mapy powierzchni styku dłoni z obiektem dzięki chwytaniu wielocyfrowemu.
To pozwala nam zbadać, w jaki sposób ludzie chwytają przedmioty z niespotykanym dotąd poziomem wyrafinowania. Dokładne pomiary ludzkich zdolności chwytania są niezbędne do zrozumienia kontroli motorycznej, percepcji dotykowej i interakcji człowiek-komputer. Dane te mogą być przydatne przy projektowaniu chwytaków robotycznych i protez kończyn górnych.
Procedurę zademonstruje Kira Dehn, doktorantka kończąca pracę magisterską w moim laboratorium. Na początek ustaw stół warsztatowy z objętością śledzenia obrazowaną pod różnymi kątami przez kamery śledzące ruch umieszczone na ramie otaczającej przestrzeń roboczą. Przygotuj odblaskowe znaczniki, przyklejając dwustronną taśmę klejącą do podstawy każdego markera.
Uruchom aplikację Qualisys Track Manager (QTM) jako administrator. Umieść obiekt kalibracyjny w kształcie litery L w objętości śledzenia. W QTM kliknij Kalibruj w menu Przechwytywanie i poczekaj na otwarcie okna kalibracji.
Wybierz czas trwania kalibracji i naciśnij OK. Pomachaj różdżką kalibracyjną po objętości śledzenia na czas trwania kalibracji. Naciśnij przycisk Eksportuj i określ ścieżkę do pliku, aby wyeksportować kalibrację jako plik tekstowy.
Zatwierdź kalibrację, naciskając przycisk OK. Aby utworzyć obiekt bodźca, skonstruuj wirtualny model obiektu 3D w postaci siatki wielokątów. Użyj drukarki 3D, aby skonstruować fizyczną replikę modelu obiektowego.
Aby przygotować obiekt bodźca, przymocuj cztery niepłaskie znaczniki odblaskowe do powierzchni rzeczywistego obiektu. Umieść obiekt w objętości śledzenia. W repozytorium projektu należy wykonać wskazany skrypt języka Python.
Postępuj zgodnie z instrukcjami dostarczonymi przez skrypt, aby wykonać jednosekundowe przechwycenie pozycji 3D znaczników obiektów. Wybrać wszystkie znaczniki bryły sztywnej. Kliknij prawym przyciskiem myszy i wybierz Zdefiniuj bryłę sztywną lub 6DOF, a następnie Bieżąca klatka.
Wprowadź nazwę bryły sztywnej i naciśnij przycisk OK. W menu Plik wybierz pozycję Eksportuj do TSV. W nowym oknie zaznacz pola 3D, 6D i Szkielet w ustawieniach Typ danych.
Zaznacz wszystkie pola w ustawieniach ogólnych. Naciśnij OK, a następnie Zapisz. Otwórz Blendera i przejdź do przestrzeni roboczej Skrypty.
Otwórz wskazany plik i naciśnij Uruchom. Przejdź do przestrzeni roboczej Układ i naciśnij N, aby przełączyć pasek boczny. Na pasku bocznym przejdź do zakładki Niestandardowe.
Wybierz plik obj, który ma zostać współzarejestrowany, i naciśnij przycisk Załaduj obiekt. Wybierz wyeksportowany wcześniej plik trajektorii i określ nazwy znaczników dołączonych do sztywnych obiektów, oddzielając je średnikami. W nagłówku znacznika określ linię w pliku trajektorii zawierającym nazwy kolumn danych.
Następnie należy wybrać odpowiedni plik bryły sztywnej z przyrostkiem 6D i określić nazwę obiektu sztywnego zdefiniowanego we wcześniejszym kroku. W nagłówku 6D określ linię w pliku bryły sztywnej zawierającej nazwy kolumn danych. Naciśnij przycisk Załaduj znaczniki, a następnie przesuń i obróć obiekt znaczników lub obiekt, aby je wyrównać.
Określ plik wyjściowy siatki i naciśnij przycisk Uruchom współrejestrację, aby wyprowadzić plik obj, który zawiera współzarejestrowaną siatkę bodźców. Przymocuj 24 sferyczne znaczniki odblaskowe do różnych punktów orientacyjnych dłoni uczestnika za pomocą taśmy dwustronnej. Umieść markery centralnie na opuszkach palców w dystalnych stawach międzypaliczkowych, bliższych stawach międzypaliczkowych i stawach śródręczno-paliczkowych palca wskazującego, środkowego palca, palca serdecznego i małego palca.
W przypadku kciuka umieść po jednym znaczniku na opuszku palca i stawie podstawnym nadgarstka śródręcza oraz po parze markerów na stawach śródręczno-paliczkowym i międzypaliczkowym. Na koniec umieść znaczniki na środku nadgarstka i na stawie łódeczkowato-trapezowym. Poproś uczestnika, aby położył dłoń płasko na stole roboczym z dłonią skierowaną w dół i zamknął oczy.
Umieść bodziec na stole warsztatowym przed uczestnikiem. Gdy QTM jest uruchomiony, wykonaj wskazany skrypt Pythona w repozytorium projektu. Poproś uczestnika, aby otworzył oczy i postępował zgodnie z instrukcjami zawartymi w scenariuszu, aby uchwycić pojedynczą próbę, w której uczestnik chwyta obiekt bodźca.
W ramach QTM przeciągnij i upuść poszczególne trajektorie znaczników od niezidentyfikowanych trajektorii do oznaczonych trajektorii i oznacz je zgodnie z konwencją nazewnictwa. Zaznacz wszystkie znaczniki dołączone do dłoni, kliknij prawym przyciskiem myszy i wybierz Generuj model AIM z Zaznaczenia. W nowym oknie wybierz Utwórz nowy model na podstawie połączeń znaczników z istniejącego modelu AIM i naciśnij przycisk Dalej.
Wybierz RH_FH definicję modelu i naciśnij przycisk Otwórz. Naciśnij przycisk Dalej, wprowadź nazwę modelu AIM i naciśnij przycisk OK. Na koniec naciśnij Zakończ, aby utworzyć model AIM dla ręki uczestnika, aby automatycznie identyfikować markery w kolejnych próbach od tego samego uczestnika.
W QTM otwórz ustawienia projektu, naciskając ikonę koła zębatego. Na pasku bocznym przejdź do Skeleton Solver i naciśnij Załaduj, aby wybrać plik definicji szkieletu. Dostosuj współczynnik skali do 100% i naciśnij Zastosuj.
Przejdź do sekcji Eksport TSV i zaznacz pola 3D, 6D i Szkielet w ustawieniach Typ danych. Zaznacz wszystkie pola w ustawieniach ogólnych. Naciśnij Zastosuj i zamknij ustawienia projektu.
Naciśnij ikonę Przetwarzaj ponownie, a następnie zaznacz pola Rozwiąż szkielety i Eksportuj do pliku TSV i naciśnij OK. Otwórz okno polecenia w repozytorium projektu i aktywuj środowisko conda, wykonując wskazane polecenie. Następnie wykonaj wskazane polecenie i postępuj zgodnie z instrukcjami dostarczonymi przez skrypt, aby wygenerować dla każdej klatki próby siatkę dłoni rekonstruującą aktualną pozycję dłoni.
W przypadku oszacowań obszaru kontaktu dłoni z obiektem należy wykonać wskazane polecenie i postępować zgodnie z instrukcjami dostarczonymi przez skrypt, aby wygenerować oszacowania obszaru kontaktu dłoni i obiektu, obliczając przecięcie między siatką dłoni i obiektu. W tym badaniu dynamika chwytu została zarejestrowana za pomocą 24 sferycznych znaczników odblaskowych przymocowanych do różnych punktów orientacyjnych dłoni. Modyfikacje wstępnie wytrenowanego dekodera z głęboką siatką ręczną przedstawiono tutaj.
Po pierwsze, ponieważ sieć nie jest trenowana na konkretnych uczestnikach, stosowana jest ogólna korekcja siatki zależna od identyfikatora dostarczana ze wstępnie wytrenowanym modelem. Co więcej, korekcja szkieletu zależna od ID jest uzyskiwana przy użyciu QTM Skeleton Solver. Zakłada się proporcjonalne skalowanie dłoni do długości szkieletu, a grubość siatki jest równomiernie skalowana przez współczynnik wynikający ze względnego skalowania szkieletu.
Pokazana jest ostateczna rekonstrukcja 3D bieżącego ułożenia dłoni w tej samej ramce współrzędnych, co siatka obiektów śledzonych w 3D. Pokazano film przedstawiający rękę ze śledzonymi punktami i współzarejestrowaną siatką, które poruszają się obok siebie podczas jednego chwytu do wydrukowanej w 3D figurki kota. Pojedyncza klatka w momencie kontaktu dłoni z obiektem od uchwytu do wydrukowanego w 3D rogalika, wraz z rekonstrukcjami siatki obiektu dłoni i szacowanymi obszarami kontaktu na powierzchni rogalika.
Obiekt i przymocowane do niego znaczniki muszą być odpowiednio zarejestrowane. Dokładne ich wyrównanie jest ważne, ponieważ odchylenia mogą mieć duży wpływ na oszacowania obszaru kontaktu. Oprócz powierzchni kontaktowych, procedura zapewnia wspólne kąty Eulera dla każdego stawu palcowego.
Można je wykorzystać do zbadania, jak ułożenie rąk podczas chwytów wielocyfrowych rozwija się w czasie.
To badanie przedstawia nową metodę estymacji regionów kontaktu podczas chwytania przez człowieka poprzez integrację uchwytu ruchu opartego na znacznikach z technikami uczenia głębokiego. Podejście to pozwala na szczegółową analizę tego, jak wiele regionów dłoni współdziała z obiektami, zwiększając nasze zrozumienie kontroli ruchowej i percepcji dotyku.