Spisu treści:

Nawiguj robotem z czujnikami butów, bez GPS, bez mapy: 13 kroków (ze zdjęciami)
Nawiguj robotem z czujnikami butów, bez GPS, bez mapy: 13 kroków (ze zdjęciami)

Wideo: Nawiguj robotem z czujnikami butów, bez GPS, bez mapy: 13 kroków (ze zdjęciami)

Wideo: Nawiguj robotem z czujnikami butów, bez GPS, bez mapy: 13 kroków (ze zdjęciami)
Wideo: ILU POLICJANTÓW POTRZEBA ABY OBEZWŁADNIĆ OJCA BEZ SPRZĘTU 2024, Listopad
Anonim

By obluobluŚledź Informacje: oblu to czujnik nawigacji do wnętrz Więcej o oblu »

Robot porusza się po wcześniej zaprogramowanej ścieżce i przesyła (przez Bluetooth) informacje o swoim rzeczywistym ruchu do telefonu w celu śledzenia w czasie rzeczywistym. Arduino ma zaprogramowaną ścieżkę, a oblu służy do wykrywania ruchu robota. oblu przesyła informacje o ruchu do Arduino w regularnych odstępach czasu. Na tej podstawie Arduino kontroluje ruchy kół, aby robot podążał określoną ścieżką.

Krok 1: KRÓTKIE WPROWADZENIE

KRÓTKIE WPROWADZENIE
KRÓTKIE WPROWADZENIE

Projekt polega na precyzyjnym poruszaniu się robota po określonej ścieżce, bez korzystania z GPS, WiFi lub Bluetooth do pozycjonowania, nawet mapy czy planu rozmieszczenia budynku. I narysuj jego rzeczywistą ścieżkę (w skali) w czasie rzeczywistym. Bluetooth może być używany jako zamiennik przewodu do przesyłania informacji o lokalizacji w czasie rzeczywistym.

Krok 2: CIEKAWA HISTORIA TŁA

CIEKAWE TŁO HISTORIA
CIEKAWE TŁO HISTORIA

Głównym celem naszego zespołu jest opracowanie montowanych na butach czujników nawigacji dla pieszych. Jednak zwróciła się do nas akademicka grupa badawcza z wymogiem nawigowania robota w pomieszczeniach i jednoczesnego monitorowania jego położenia w czasie rzeczywistym. Chcieli wykorzystać taki system do mapowania promieniowania w zamkniętej komorze lub wykrycia wycieku gazu w instalacji przemysłowej. Takie miejsca są niebezpieczne dla ludzi. poszukuje solidnego rozwiązania do nawigacji w pomieszczeniach naszego robota opartego na Arduino.

Naszym oczywistym wyborem dla dowolnego modułu czujnika ruchu (IMU) był „oblu” (patrz zdjęcie powyżej). Ale trudną częścią tego było to, że istniejące oprogramowanie oblu było odpowiednie dla montowanych na nogach wewnętrznych systemów wykrywania ruchu pieszego (PDR) lub nawigacji pieszej, w prostych słowach. Wydajność oblu PDR w pomieszczeniach jako IMU montowana na łapach jest imponująca. Dostępność aplikacji na Androida (Xoblu) do śledzenia oblu w czasie rzeczywistym jako czujnika buta, stanowi dodatkową zaletę. Wyzwaniem było jednak wykorzystanie istniejącego algorytmu, opartego na modelu chodzenia człowieka, do nawigowania robotem i monitorowania go.

Krok 3: KRÓTKIE WPROWADZENIE DO „Oblu”

Image
Image
OPIS SYSTEMU
OPIS SYSTEMU

„oblu” to zminiaturyzowana, tania i opensource'owa platforma programistyczna przeznaczona do noszonych aplikacji wykrywających ruch. Jest zasilany akumulatorem litowo-jonowym i umożliwia ładowanie wbudowanego akumulatora USB. Posiada wbudowany moduł Bluetooth (BLE 4.1) do komunikacji bezprzewodowej. "oblu" obsługuje 32-bitowy mikrokontroler zmiennoprzecinkowy (AT32UC3C firmy Atmel), który umożliwia rozwiązywanie złożonych równań nawigacyjnych na pokładzie. W związku z tym wykonujemy całą obróbkę ruchu na samym oblu i przesyłamy tylko efekt końcowy. To sprawia, że integracja oblu z systemem stowarzyszonym jest niezwykle prosta. „oblu” obsługuje również macierz multi-IMU (MIMU), która umożliwia fuzję czujników i poprawia wydajność wykrywania ruchu. Podejście MIMU dodaje wyjątkowości „oblu”.

Wewnętrzne obliczenia oblu opierają się na ludzkim chodzeniu. oblu podaje przesunięcie między dwoma kolejnymi krokami i zmianę kursu. Jak - gdy stopa styka się z podłożem, prędkość podeszwy wynosi zero, tzn. podeszwa jest nieruchoma. W ten sposób oblu wykrywa „kroki” i poprawia niektóre błędy wewnętrzne. A ta częsta korekta błędów skutkuje świetną wydajnością śledzenia. Więc tutaj leży haczyk. Co by było, gdyby nasz robot poruszał się w ten sam sposób - poruszaj się, zatrzymuj, ruszaj, zatrzymuj. Rzeczywiście, oblu można użyć do dowolnego obiektu, którego ruch ma regularne zerowe i niezerowe momenty. W ten sposób ruszyliśmy do przodu z oblu i w krótkim czasie mogliśmy zmontować naszego robota i system śledzący.

Krok 4: JAKA JEST PRZYDATNOŚĆ „oblu”?

Prawie 70% czasu spędzamy w pomieszczeniach. Dlatego istnieje wiele zastosowań, które wymagają nawigacji ludzi i maszyn w pomieszczeniach. Najczęściej stosowanym rozwiązaniem pozycjonowania jest satelitarny GPS/GNSS, który jest dobry do nawigacji na zewnątrz. Zawodzi w środowisku wewnętrznym lub w środowisku miejskim, które nie są dostępne dla czystego nieba. Takimi zastosowaniami są geobadanie slumsów lub obszarów pod ciężkim baldachimem drzew, nawigacja robotów w pomieszczeniach, pozycjonowanie agentów ratowniczych dla gaszenia pożarów, wypadków górniczych, działań wojennych w miastach itp.

Poprzednik oblu został wprowadzony jako bardzo kompaktowy czujnik do butów (lub czujnik PDR) do pozycjonowania strażaków, który został później zmodernizowany i zmodyfikowany jako wysoce konfigurowalna platforma rozwojowa dla twórców, którzy szukają łatwego i dokładnego przystępne cenowo rozwiązanie z czujnikami bezwładnościowymi do nawigacji wewnątrz budynków zarówno ludzi, jak i robotów. Do tej pory użytkownicy oblu zademonstrowali jego zastosowania w śledzeniu pieszych, bezpieczeństwie przemysłowym i zarządzaniu zasobami, policji taktycznej, geobadaniu obszarów pozbawionych GPS, robotach samonawigujących, robotyce wspomagającej, grach, AR/VR, leczeniu zaburzeń ruchu, rozumieniu fizyki ruchu itp. oblu nadaje się do zastosowań z ograniczeniami przestrzennymi, np. poręczny czujnik ruchu. Może być również używany jako bezprzewodowy IMU, dzięki wbudowanemu Bluetooth. Obecność wbudowanej funkcji przetwarzania zmiennoprzecinkowego wraz z macierzą czterech jednostek IMU umożliwia łączenie czujników i przetwarzanie ruchu w samym module, co z kolei zapewnia bardzo dokładne wykrywanie ruchu.

Krok 5: HISTORIA PROJEKTU

Image
Image

Historia tego projektu znajduje się w filmie…

Krok 6: OPIS SYSTEMU

Robot porusza się po wcześniej zaprogramowanej ścieżce i przesyła (przez Bluetooth) informacje o swoim rzeczywistym ruchu do telefonu w celu śledzenia w czasie rzeczywistym.

Arduino ma zaprogramowaną ścieżkę, a oblu służy do wykrywania ruchu robota. oblu przesyła informacje o ruchu do Arduino w regularnych odstępach czasu. Na tej podstawie Arduino kontroluje ruchy kół, aby robot podążał określoną ścieżką.

Ścieżka robota jest programowana jako zestaw odcinków linii prostych. Każdy segment linii jest określony przez swoją długość i orientację w stosunku do poprzedniego. Ruch robota jest dyskretny, tzn. porusza się w linii prostej, ale w mniejszych segmentach (dla uproszczenia nazwijmy „krokami”). Pod koniec każdego kroku oblu przesyła do Arduino długość kroku i stopień odchylenia (zmiany orientacji) od linii prostej. Arduino koryguje ustawienie robota na każdym kroku po otrzymaniu takiej informacji, jeśli wykryje odchylenie od wcześniej zdefiniowanej linii prostej. Zgodnie z programem robot ma zawsze poruszać się po linii prostej. Może jednak odbiegać od linii prostej i poruszać się pod pewnym kątem lub skośną ścieżką z powodu nieidealnych warunków, takich jak nierówna powierzchnia, nierównowaga masy w zespole robota, nierównowaga architektoniczna lub elektryczna w silnikach prądu stałego lub przypadkowa orientacja przedniego koła swobodnego. Zrób jeden krok… popraw kierunek… idź naprzód. Robot porusza się również do tyłu, jeśli przejedzie więcej niż zaprogramowana długość tego konkretnego odcinka linii. Następna długość kroku zależy od pozostałej odległości do pokonania tego konkretnego odcinka linii prostej. Robot pokonuje duże kroki, gdy odległość do przebycia jest większa, i robi mniejsze kroki w pobliżu miejsca docelowego (tj. końca każdego odcinka linii prostej). oblu przesyła dane jednocześnie do Arduino i telefonu (przez bluetooth). Xoblu (aplikacja na Androida) wykonuje proste obliczenia w celu skonstruowania ścieżki w oparciu o informacje o ruchu otrzymane od robota, które są wykorzystywane do śledzenia w czasie rzeczywistym na telefonie. (Budowa ścieżki przy użyciu Xoblu jest zilustrowana na drugim obrazie).

Podsumowując, oblu wykrywa ruch i przekazuje informacje o ruchu do Arduino i telefonu w regularnych odstępach czasu. Na podstawie zaprogramowanej ścieżki i informacji o ruchu (przesyłanych przez oblu), Arduino steruje ruchami kół. Ruch robota NIE jest zdalnie sterowany, z wyjątkiem poleceń start/stop.

Aby uzyskać oprogramowanie układowe oblu, odwiedź

Aby uzyskać kod Aurduino robota, odwiedź

Krok 7: MODELOWANIE ŚCIEŻKI

MODELOWANIE ŚCIEŻKI
MODELOWANIE ŚCIEŻKI
MODELOWANIE ŚCIEŻKI
MODELOWANIE ŚCIEŻKI

Robotem można najlepiej sterować, jeśli chodzi tylko w prostych odcinkach linii. Dlatego najpierw należy zamodelować ścieżkę jako zbiór odcinków linii prostej. Zdjęcia zawierają kilka przykładowych ścieżek i ich reprezentację pod względem przemieszczenia i orientacji. Tak zaprogramowana jest ścieżka w Arduino.

Podobnie każda ścieżka będąca zestawem odcinków linii prostych może być zdefiniowana i zaprogramowana w Arduino.

Krok 8: MONTAŻ OBWODÓW

MONTAŻ OBWODU
MONTAŻ OBWODU

Schemat integracji systemu najwyższego poziomu. Arduino i oblu są częścią montażu sprzętowego. UART służy do komunikacji między Arduino a oblu. (Proszę zwrócić uwagę na połączenie Rx/Tx.) Kierunek przepływu danych jest tylko w celach informacyjnych. Cały montaż sprzętowy komunikuje się ze smartfonem (Xoblu) za pomocą bluetooth.

Krok 9: SCHEMAT OBWODÓW

SCHEMAT OBWODU
SCHEMAT OBWODU

Szczegółowe połączenia elektryczne między Arduino, oblu, sterownikiem silnika i akumulatorem.

Krok 10: PROTOKÓŁ KOMUNIKACJI:

Poniżej przedstawiamy jak odbywa się komunikacja danych pomiędzy czujnikiem oblu zamontowanym na robocie a smartfonem, czyli Xoblu:

Krok 1: Xoblu wysyła komendę START do oblu Krok 2: oblu potwierdza odebranie komendy wysyłając odpowiednie ACK do Xoblu Krok 3: oblu wysyła do Xoblu pakiet DATA zawierający informacje o przemieszczeniu i orientacji dla każdego kroku, na każdym kroku. (krok = zawsze, gdy wykryty zostanie zerowy ruch lub zatrzymanie). Krok 4: Xoblu potwierdza otrzymanie ostatniego pakietu DATA wysyłając odpowiednie ACK do oblu. (Cykl kroków 3 i 4 jest powtarzany, aż Xoblu wyśle STOP. Po otrzymaniu polecenia STOP, oblu wykonuje krok 5) Krok 5: STOP - (i) Zatrzymanie przetwarzania w oblu (ii) Zatrzymanie wszystkich wyjść w oblu szczegóły START, ACK, DATA i STOP

Krok 11: JAK DZIAŁA IMU "oblu" (opcjonalnie):

Przedstawiamy kilka referencji na temat przeglądu i podstawowej zasady działania czujników PDR montowanych na łapach:

Dostępny kod źródłowy oblu jest skierowany do nawigacji pieszej. I najlepiej do tego celu jest zoptymalizowany. Poniższy film przedstawia jego podstawową zasadę działania:

Oto kilka prostych artykułów na temat czujników PDR montowanych na stopach:1. Śledź moje kroki

2. Kontynuuj śledzenie moich kroków

Możesz zapoznać się z tym dokumentem, aby uzyskać szczegółowe informacje na temat zliczania martwych pieszych przy użyciu czujników stóp.

Krok 12: Odwiedź „oblu.io” (opcjonalnie)

Image
Image

Obejrzyj film o możliwych zastosowaniach „oblu”:

----------------Proszę podzielić się swoją opinią, sugestiami i pozostawić komentarze. Najlepsze życzenia!

Krok 13: KOMPONENTY

1 oblu (platforma programistyczna typu open source IMU)

1 inteligentny silnik robota akumulator samochodowy zestaw podwozia DIY enkoder prędkości dla Arduino

1 półwymiarowa płyta do krojenia chleba bez lutowania

1 męskie/żeńskie przewody połączeniowe

2 kondensatory 1000 µF

1 Sterownik silnika Texas Instruments Dual H-Bridge L293D

1 Arduino Mega 2560 i Genuino Mega 2560

4 Amazon Web Services Akumulator AA 2800 Ni-MH

Zalecana: