summary refs log tree commit diff
path: root/Chapters/chapter1.tex
blob: cad65a32b3c4ea327ee67d215b3033e41870a5b5 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
\chapter{Preliminaria}
Ta praca została zrealizowana w ramach przedmiotu "Projekt: autonomiczna jazda łazikiem".
Z jego powodu(trzeba zmienic to wyrazenie), powstało wiele rozwiązań dla zadań z 
"konkursów łazikowych".

Żaden spośród łazików biorących udział w University Rover Challenge nie 
używa sieci neuronowych bezpośrednio do nawigacji , ale prawie wszystkie używają
ROS ( Robot Operating System ) jako podstawy całego oprogramowania. Z tego powodu
w tym rozdziale poruszone będą:
\begin{itemize}
  \item Podstawy sieci neuronowych.
  \item Architektura ROS
  \item Autonomia Aleph 1
\end{itemize}

\section{Podstawy sieci neuronowych}
\subsection{Jak działają}
\subsection{Jak trenować}
\subsection{Warstwy typowe dla CNN}
\subsection{Dlaczego działają}


\section{ROS}
Ros to otwarty system operacyjny przeznaczony dla robotów.
Dostarcza abstrakcję nad sprzętem oraz środki komunikacji między procesami.
Ze względu na modułową budowę oraz architekturę peer-to-peer procesy mogą
bezproblemowo działać na różnych komputerach.
\subsection{Node}
Podstawową jednostką w ROSie jest wierzchołek(node), jego głównym zdaniem jest
wykonywanie obliczeń. Wierzchołki razem tworzą graf, a komunikują się za 
pomocą tematów(topic).

Taka architektura (inspirowana budową mikrojądra) zapewnia lepsza ochronę na błędy
w porównaniu do architektury monolitycznej. Dodatkowo pojedyńczy element można
bezproblemowo przepisać, i to w innym języku.
\subsection{Topic}
Tematy(topic) pozwalają bezproblemowo zapewnić komunikację międzyprocesową
w ROSie. Każdy node może zadelkarować chęć nadawania bądź nasłuchiwania na
danym temacie. Przykładowo moduł jazdy autonomicznej może zasubskrybować
obraz z kamery Kinect, a publikować na temacie reprezentującym kierunek ruchu.
\subsection{Rosbag}
Rosbagi służą do zapisywania wybranych topiców wraz ze znacznikami czasu.
Niestety ten format wspiera tylko dostęp sekwencyjny przy odtwarzaniu, co wystarczy
do symulowania łazika, ale nie zawsze to wystarczyło. Aby temu zaradzić dane były
konwertowane do prostszego formatu.
%\subsection{Gotowe moduły}
%chyba nie aż tak ważne 
%tf,kamery,konwersje obrazków/strumieni

\section{Autonomia Aleph 1}
Co zostało zrobione na przedmiocie:
\begin{itemize}
  \item Sprzęt (mnóstwo)
  \item Mapa 3d (RTAB\_MAP)
  \item Rozpoznawanie klawiatur/piłek tenisowych
  \item Symulator
  \item kilka sieci obraz->kierownica
  \item wrappery/konwertery różnych protokołów/formatów
\end{itemize}