KSWPG / Auto

1 stars 1 forks source link

Mapowanie pomieszczeń (algorytm_początki) #4

Open MrQlek opened 5 years ago

MrQlek commented 5 years ago

Tutaj są linki które wcześniej Paweł wysyłał na FB:

MrQlek commented 5 years ago

Kilka materiałów na temat wielowymiarowych tablic w Python z wykorzystaniem NumPy:

MrQlek commented 5 years ago

W wolnej chwili narysowałem schemat przykładowego pomieszczenia do mapowania (zdjęcie w folderze algorytmMapowania), a także przygotowałem kod który tworzy mam tablicę której będziemy mogli użyć do testów (też w tamtym folderze (możliwe że są tam jakieś błędy bo to było całkiem sporo(400) cyferek do wpisania)). Zmieniłem delikatnie koncepcję tej tablicy zamiast tego co mówiliśmy na spotkaniu ja dla każdego pola stworzyłem kolejną 4 elementową tablicę w której trzymam zgodnie z kolejnością NESW informacje ile pól w danym kierunku może przejść robot (0 ściana w danym kierunku). Wydaje mi się, że będzie to bardziej przypominać pobieranie wartości z czujników.

P3Vu commented 5 years ago

Chcieliśmy jeszcze mieć flagę czy robot odwiedził pole, wiec przydałaby się 5 elementowa tablica. Nie mogę znaleźć folderu algorytmMapowania i twojego kodu.

MrQlek commented 5 years ago

Jest w nowym branch. Co do tego to w tej tabeli mamy tylko to co zwracały by czujniki to o czym Ty piszesz będzie w oddzielnej tabeli którą będzie generował algorytm i tam raczej wszystko będziemy trzymać na jednym dwóch bitach.

MrQlek commented 5 years ago

Zadania do wykonania w najbliższym czasie:

MrQlek commented 5 years ago

image Efekt działania funkcji rysującej gotową mapę. Mam nadzieję że coś takiego wystarczy. Zmieniłem też koncepcję numerowania pól tablicy. W przeciwieństwie do tablicy testowej tutaj pole (0,0) to lewy dolny(a nie górny) róg. Sądzę że taka numeracja jest bardziej intuicyjna (już nawet nie pamiętam czemu tamtą numerowałem inaczej). Zmieniłem też kolejność wymiarów (pierwszy wymiar to teraz oś X). Przepraszam za problemy. Postaram się w najbliższym czasie przepisać też na nowo tablicę testową.

MrQlek commented 5 years ago

Do naszej gałęzi wrzuciłem klasę która będzie nam służyć za mapę(o ile będzie wam odpowiadać). Jest tam też możliwość stworzenia naszej tablicy testowej, według nowych oznaczeń układu współrzędnych i zgodnie z wstępnymi ustaleniami tzn. przechowywana tam jest informacja dokładnie tak samo jak w wynikowej mapie, wszystko na jednym bajcie.

MrQlek commented 5 years ago

Napisałem algorytm, który radzi sobie z mapowaniem pomieszczenia nie ważne gdzie znajdzie się na początku (jest już w stanie zmapować całe pomieszczenie). Znajduje się on w pliku mappingAlgorithm2.py. Wykorzystałem w nim opisaną tutaj metodę popagacji fali do odnajdywania najbliższego nieodwiedzonego jeszcze pola. W zależności od punktu startowego algorytm potrzebuje około 115 poruszeń żeby skończyć mapowanie. Zachęcam do testów może coś przeoczyłem i nie działa w konkretnych sytuacjach. Nie wiem jak algorytm ten zachowywałby się w przypadku dużych pomieszczeń, bo za każdym razem przeszukuje całą tablicę. Kod wrzuciłem ale na razie jest raczej nieczytelny postaram się w wolnej chwili go poprawić.

P3Vu commented 5 years ago

Ważna informacja dla osób chcących przeanalizować kod symulując go u siebie.

Skrypt jest pisany pod Python 2.7 , próbowałem go odpalać na Python 3.7 ale był problem z importem bibliotek napisanych przez Kacpra.

Dziś udało się nam się to naprawić u mnie, odinstalowałem wszystkie wersje Pythona na moim kompie i zainstalowałem jeszcze raz Anaconde pod Python 2.7 a z niej przez Spydera ( interpreter Pythona ) odpaliłem skrypt ( czyli tak jak Kacper u siebie oryginalnie pisze ).