<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="pl">
	<id>http://brain.fuw.edu.pl/edu/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Alex</id>
	<title>Brain-wiki - Wkład użytkownika [pl]</title>
	<link rel="self" type="application/atom+xml" href="http://brain.fuw.edu.pl/edu/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Alex"/>
	<link rel="alternate" type="text/html" href="http://brain.fuw.edu.pl/edu/index.php/Specjalna:Wk%C5%82ad/Alex"/>
	<updated>2026-04-06T10:46:27Z</updated>
	<subtitle>Wkład użytkownika</subtitle>
	<generator>MediaWiki 1.34.1</generator>
	<entry>
		<id>http://brain.fuw.edu.pl/edu/index.php?title=Instalacja_i_konfiguracja_Kinect,_Wiimote_i_Eyetrackera&amp;diff=5026</id>
		<title>Instalacja i konfiguracja Kinect, Wiimote i Eyetrackera</title>
		<link rel="alternate" type="text/html" href="http://brain.fuw.edu.pl/edu/index.php?title=Instalacja_i_konfiguracja_Kinect,_Wiimote_i_Eyetrackera&amp;diff=5026"/>
		<updated>2016-03-23T12:08:25Z</updated>

		<summary type="html">&lt;p&gt;Alex: /* Kompilacja Pythonowego modułu 'nite2' (wrappera do OpenNI2 + NiTE2) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Kinect + OpenNI2 + NiTE2 + freenect ==&lt;br /&gt;
&lt;br /&gt;
Należy pamiętać, żeby wszsstkie wystąpienia &amp;lt;code&amp;gt;{USER_NAME}&amp;lt;/code&amp;gt; w poniższym kodzie zamienić na właściwą nazwę użytkownika.&lt;br /&gt;
&lt;br /&gt;
Instalacja OpenNI 2 + NiTE 2 z prekonfigurowanych binarek dla Ubuntu 15.10:&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install freeglut3 python-opencv libboost-all-dev&lt;br /&gt;
 cd ~&lt;br /&gt;
 wget http://static.mroja.net/kinect/kinect.7z&lt;br /&gt;
 7z x kinect.7z&lt;br /&gt;
 cd ~/kinect&lt;br /&gt;
 sudo cp primesense-and-kinect-usb.rules /etc/udev/rules.d/557-primesense-usb.rules&lt;br /&gt;
 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/{USER_NAME}/kinect/Redist&lt;br /&gt;
 cd Redist&lt;br /&gt;
 ./NiViewer&lt;br /&gt;
&lt;br /&gt;
Linijkę &amp;lt;code&amp;gt;export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/{USER_NAME}/kinect/Redist&amp;lt;/code&amp;gt; najlepiej wrzucić do pliku &amp;lt;code&amp;gt;.profile&amp;lt;/code&amp;gt; lub &amp;lt;code&amp;gt;.bashrc&amp;lt;/code&amp;gt;, żeby uruchamiana była przy każdym logowaniu.&lt;br /&gt;
&lt;br /&gt;
Należy prawdzić czy użytkownik, na koncie którego będzie używany Kinect należy do grupy plugdev -- jeśli nie, dodać: &lt;br /&gt;
 sudo usermod -G plugdev -a {USER_NAME}&lt;br /&gt;
&lt;br /&gt;
Alternatywnie można zainstalować całość ze źródeł - instrukcja znajduje się na dole tej strony.&lt;br /&gt;
&lt;br /&gt;
=== Wrapper nite2 do Python + OpenBCI  ===&lt;br /&gt;
&lt;br /&gt;
Moduł do Pythona (plik &amp;lt;code&amp;gt;nite2.so&amp;lt;/code&amp;gt;) należy zbudować z repozytorium https://github.com/BrainTech/nite2-bindings i umieścić w katalogu &amp;lt;code&amp;gt;/usr/lib/python2.7/dist-packages&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Żeby NiTE2 działo poprawnie wewnątrz OpenBCI należy skopiować katalog NiTE2 (&amp;lt;code&amp;gt;~/kinect/Redist/NiTE2&amp;lt;/code&amp;gt;) do katalogu &amp;lt;code&amp;gt;~/.obci/sandbox&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
na koncie lab&lt;br /&gt;
&lt;br /&gt;
 cd ~/kinect/Redist&lt;br /&gt;
 cp /path_to_file/nite2.so nite2.so&lt;br /&gt;
&lt;br /&gt;
 cp -r /home/lab/kinect/Redist/NiTE2/ ~/.obci/sandbox/&lt;br /&gt;
&lt;br /&gt;
na koncie newtech&lt;br /&gt;
&lt;br /&gt;
 cd ~/kinect/Redist&lt;br /&gt;
 cp /path_to_file/nite2.so nite2.so&lt;br /&gt;
&lt;br /&gt;
 mkdir /home/newtech/.obci/  # jeśli katalog istnieje to pominąć&lt;br /&gt;
 mkdir /home/newtech/.obci/sandbox  # j.w.&lt;br /&gt;
&lt;br /&gt;
 cp -r /home/newtech/kinect/Redist/NiTE2/ ~/.obci/sandbox/&lt;br /&gt;
&lt;br /&gt;
== Instalacja xwiimote ==&lt;br /&gt;
&lt;br /&gt;
UWAGA!!! NIE NALEŻY instalować pakietu xwiimote z repozytoriów Debiana i Ubuntu - są one przestarzałe.&lt;br /&gt;
&lt;br /&gt;
Wymagane wersje:&lt;br /&gt;
* kernel &amp;gt;= 3.5+&lt;br /&gt;
* bluez &amp;gt;= 5.11+&lt;br /&gt;
&lt;br /&gt;
=== A) Instalacja wymaganych pakietów ===&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install autoconf autogen automake gcc bluetooth ncurses-dev libudev-dev libtool git blueman python-dev dh-autoreconf pkg-config swig&lt;br /&gt;
&lt;br /&gt;
=== B) xwiimote driver &amp;amp; utils ===&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/BrainTech/xwiimote&lt;br /&gt;
 cd xwiimote&lt;br /&gt;
 ./autogen.sh&lt;br /&gt;
 make&lt;br /&gt;
 sudo make install&lt;br /&gt;
 sudo ldconfig&lt;br /&gt;
&lt;br /&gt;
=== C) Python bindings ===&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/BrainTech/xwiimote-bindings&lt;br /&gt;
 cd xwiimote-bindings&lt;br /&gt;
 ./autogen.sh&lt;br /&gt;
 make&lt;br /&gt;
 sudo make install&lt;br /&gt;
 sudo ldconfig&lt;br /&gt;
&lt;br /&gt;
=== D) Żeby działało bez sudo ===&lt;br /&gt;
&lt;br /&gt;
Jeśli chcemy, żeby xwiimote dział bez sudo dla userów lab i newtech należy wykonać polecenia:&lt;br /&gt;
&lt;br /&gt;
 sudo usermod -a -G input newtech&lt;br /&gt;
 sudo usermod -a -G input lab&lt;br /&gt;
&lt;br /&gt;
=== E) Sparować urządzenie z użyciem wbudowanego do Ubuntu panelu Bluetooth ===&lt;br /&gt;
&lt;br /&gt;
=== F) Demo ===&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/BrainTech/wiiscale.git&lt;br /&gt;
 cd wiiscale&lt;br /&gt;
&lt;br /&gt;
Należy odkomentować linijki 134 i 135:&lt;br /&gt;
&lt;br /&gt;
 134: #        for m in measurements(iface):&lt;br /&gt;
 135: #            print_bboard_measurements(*m)&lt;br /&gt;
&lt;br /&gt;
Demo można uruchomić poleceniem:&lt;br /&gt;
&lt;br /&gt;
 python ./scale.py&lt;br /&gt;
&lt;br /&gt;
== Tobii REX eyetracker ==&lt;br /&gt;
&lt;br /&gt;
* zainstalować pakiet deb dla 64bit Linuxa z http://developer.tobii.com/rex-setup-gaze-sdk/&lt;br /&gt;
* poprosić Aleksa o kopię SDK&lt;br /&gt;
* w katalogu &amp;lt;code&amp;gt;Samples&amp;lt;/code&amp;gt; w SDK znajduje się demo (należy je zbudować poleceniem &amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
== Oprogramowanie do Kinecta ze źródeł ==&lt;br /&gt;
&lt;br /&gt;
Do pełnego działania Kinecta na Linuxie potrzebne są: OpenNI2, NiTE2, libfreenect z driverem do OpenNI2 oraz wrapper do Pythona - &amp;lt;code&amp;gt;nite2&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Firma PrimeSense, autor OpenNI, została wykupiona przez Apple'a. Następnie Apple wstrzymało publiczny rozwój projektu OpenNI - został on utajniony. Ponieważ jest to oprogramowanie opensource, kody źródłowe są nadal dostępne i mogą być używane przez każdego. Najbardziej aktywnym forkiem jest repozytorium prowadzone przez http://occipital.com, dostępne pod adresem https://github.com/occipital/OpenNI2.&lt;br /&gt;
&lt;br /&gt;
=== OpenNI2 ===&lt;br /&gt;
&lt;br /&gt;
OpenNI2 można zdobyć na dwa sposoby - zbudować ze źródeł lub pobrać binarki.&lt;br /&gt;
&lt;br /&gt;
==== Kompilacja OpenNI2 ====&lt;br /&gt;
&lt;br /&gt;
Instalacja wymagań&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install git g++ cmake python libudev-dev libxi-dev libxmu-dev libusb-1.0-0-dev libudev-dev freeglut3-dev doxygen graphviz&lt;br /&gt;
&lt;br /&gt;
Do kompilacji niezbędna jest Java (dokładniej &amp;lt;code&amp;gt;javac&amp;lt;/code&amp;gt;). Należy zainstalować jakiekolwiek JDK, np.:&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install openjdk-7-jdk&lt;br /&gt;
&lt;br /&gt;
Pobranie repozytorum i kompilacja&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/occipital/OpenNI2.git&lt;br /&gt;
 cd OpenNI2&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
Warto zapisać ścieżkę do OpenNI w zmiennej (i następnie dodać do .profile lub .bashrc):&lt;br /&gt;
&lt;br /&gt;
 export OPENNI_DIR=/home/{USER_NAME}/OpenNI2&lt;br /&gt;
&lt;br /&gt;
Instalacja OpenNI:&lt;br /&gt;
&lt;br /&gt;
 sudo ${OPENNI_DIR}/Packaging/Linux/install.sh&lt;br /&gt;
 sudo gpasswd -a ${USER} video&lt;br /&gt;
&lt;br /&gt;
==== Instalacja z binarek ====&lt;br /&gt;
&lt;br /&gt;
Należy pobrać binarny pakiet ze strony http://structure.io/openni i wypakować do katalogu np. &amp;lt;code&amp;gt;OpenNI-Linux-x64-2.2&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 $ cd OpenNI-Linux-x64-2.2&lt;br /&gt;
 $ sudo ./install.sh&lt;br /&gt;
&lt;br /&gt;
w aktualnym katalogu utworzy się skrypt &amp;lt;code&amp;gt;OpenNIDevEnvironment&amp;lt;/code&amp;gt;, który ustawia środowisko dev&lt;br /&gt;
&lt;br /&gt;
=== Kompilacja libfreenect ===&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/OpenKinect/libfreenect.git&lt;br /&gt;
 cd libfreenect&lt;br /&gt;
 mkdir build&lt;br /&gt;
 cd build&lt;br /&gt;
 cmake .. -DBUILD_OPENNI2_DRIVER=ON&lt;br /&gt;
 make -j4&lt;br /&gt;
 cp -L lib/OpenNI2-FreenectDriver/libFreenectDriver.so ${OPENNI_DIR}/Bin/x64-Release/OpenNI2/Drivers/&lt;br /&gt;
&lt;br /&gt;
Testowanie&lt;br /&gt;
&lt;br /&gt;
 cd ${OPENNI_DIR}/Bin/x64-Release/&lt;br /&gt;
 ./NiViewer&lt;br /&gt;
&lt;br /&gt;
=== Instalacja biblioteki NiTE2 ===&lt;br /&gt;
&lt;br /&gt;
NiTE od zawsze było oprogramowaniem bez dostępnych kodów źródłowych. Binarki można znaleźć tutaj: http://ilab.usc.edu/packages/forall/ubuntu-13.10/NiTE-Linux-x64-2.2.tar.bz2&lt;br /&gt;
 &lt;br /&gt;
 cd NiTE-Linux-x64-2.2&lt;br /&gt;
 sudo ./install.sh&lt;br /&gt;
&lt;br /&gt;
 cp -L /usr/local/lib/OpenNI2-FreenectDriver/libFreenectDriver.so NiTE-Linux-x64-2.2/Samples/Bin/OpenNI2/Drivers/&lt;br /&gt;
&lt;br /&gt;
=== Kompilacja Pythonowego modułu 'nite2' (wrappera do OpenNI2 + NiTE2) ===&lt;br /&gt;
&lt;br /&gt;
 $ sudo apt-get install python-dev libboost-all-dev&lt;br /&gt;
 $ git clone https://github.com/BrainTech/nite2-bindings&lt;br /&gt;
 $ cd nite2-bindings&lt;br /&gt;
 $ make&lt;/div&gt;</summary>
		<author><name>Alex</name></author>
		
	</entry>
	<entry>
		<id>http://brain.fuw.edu.pl/edu/index.php?title=Instalacja_i_konfiguracja_Kinect,_Wiimote_i_Eyetrackera&amp;diff=5025</id>
		<title>Instalacja i konfiguracja Kinect, Wiimote i Eyetrackera</title>
		<link rel="alternate" type="text/html" href="http://brain.fuw.edu.pl/edu/index.php?title=Instalacja_i_konfiguracja_Kinect,_Wiimote_i_Eyetrackera&amp;diff=5025"/>
		<updated>2016-03-23T12:06:50Z</updated>

		<summary type="html">&lt;p&gt;Alex: /* Oprogramowanie do Kinecta ze źródeł */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Kinect + OpenNI2 + NiTE2 + freenect ==&lt;br /&gt;
&lt;br /&gt;
Należy pamiętać, żeby wszsstkie wystąpienia &amp;lt;code&amp;gt;{USER_NAME}&amp;lt;/code&amp;gt; w poniższym kodzie zamienić na właściwą nazwę użytkownika.&lt;br /&gt;
&lt;br /&gt;
Instalacja OpenNI 2 + NiTE 2 z prekonfigurowanych binarek dla Ubuntu 15.10:&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install freeglut3 python-opencv libboost-all-dev&lt;br /&gt;
 cd ~&lt;br /&gt;
 wget http://static.mroja.net/kinect/kinect.7z&lt;br /&gt;
 7z x kinect.7z&lt;br /&gt;
 cd ~/kinect&lt;br /&gt;
 sudo cp primesense-and-kinect-usb.rules /etc/udev/rules.d/557-primesense-usb.rules&lt;br /&gt;
 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/{USER_NAME}/kinect/Redist&lt;br /&gt;
 cd Redist&lt;br /&gt;
 ./NiViewer&lt;br /&gt;
&lt;br /&gt;
Linijkę &amp;lt;code&amp;gt;export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/{USER_NAME}/kinect/Redist&amp;lt;/code&amp;gt; najlepiej wrzucić do pliku &amp;lt;code&amp;gt;.profile&amp;lt;/code&amp;gt; lub &amp;lt;code&amp;gt;.bashrc&amp;lt;/code&amp;gt;, żeby uruchamiana była przy każdym logowaniu.&lt;br /&gt;
&lt;br /&gt;
Należy prawdzić czy użytkownik, na koncie którego będzie używany Kinect należy do grupy plugdev -- jeśli nie, dodać: &lt;br /&gt;
 sudo usermod -G plugdev -a {USER_NAME}&lt;br /&gt;
&lt;br /&gt;
Alternatywnie można zainstalować całość ze źródeł - instrukcja znajduje się na dole tej strony.&lt;br /&gt;
&lt;br /&gt;
=== Wrapper nite2 do Python + OpenBCI  ===&lt;br /&gt;
&lt;br /&gt;
Moduł do Pythona (plik &amp;lt;code&amp;gt;nite2.so&amp;lt;/code&amp;gt;) należy zbudować z repozytorium https://github.com/BrainTech/nite2-bindings i umieścić w katalogu &amp;lt;code&amp;gt;/usr/lib/python2.7/dist-packages&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Żeby NiTE2 działo poprawnie wewnątrz OpenBCI należy skopiować katalog NiTE2 (&amp;lt;code&amp;gt;~/kinect/Redist/NiTE2&amp;lt;/code&amp;gt;) do katalogu &amp;lt;code&amp;gt;~/.obci/sandbox&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
na koncie lab&lt;br /&gt;
&lt;br /&gt;
 cd ~/kinect/Redist&lt;br /&gt;
 cp /path_to_file/nite2.so nite2.so&lt;br /&gt;
&lt;br /&gt;
 cp -r /home/lab/kinect/Redist/NiTE2/ ~/.obci/sandbox/&lt;br /&gt;
&lt;br /&gt;
na koncie newtech&lt;br /&gt;
&lt;br /&gt;
 cd ~/kinect/Redist&lt;br /&gt;
 cp /path_to_file/nite2.so nite2.so&lt;br /&gt;
&lt;br /&gt;
 mkdir /home/newtech/.obci/  # jeśli katalog istnieje to pominąć&lt;br /&gt;
 mkdir /home/newtech/.obci/sandbox  # j.w.&lt;br /&gt;
&lt;br /&gt;
 cp -r /home/newtech/kinect/Redist/NiTE2/ ~/.obci/sandbox/&lt;br /&gt;
&lt;br /&gt;
== Instalacja xwiimote ==&lt;br /&gt;
&lt;br /&gt;
UWAGA!!! NIE NALEŻY instalować pakietu xwiimote z repozytoriów Debiana i Ubuntu - są one przestarzałe.&lt;br /&gt;
&lt;br /&gt;
Wymagane wersje:&lt;br /&gt;
* kernel &amp;gt;= 3.5+&lt;br /&gt;
* bluez &amp;gt;= 5.11+&lt;br /&gt;
&lt;br /&gt;
=== A) Instalacja wymaganych pakietów ===&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install autoconf autogen automake gcc bluetooth ncurses-dev libudev-dev libtool git blueman python-dev dh-autoreconf pkg-config swig&lt;br /&gt;
&lt;br /&gt;
=== B) xwiimote driver &amp;amp; utils ===&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/BrainTech/xwiimote&lt;br /&gt;
 cd xwiimote&lt;br /&gt;
 ./autogen.sh&lt;br /&gt;
 make&lt;br /&gt;
 sudo make install&lt;br /&gt;
 sudo ldconfig&lt;br /&gt;
&lt;br /&gt;
=== C) Python bindings ===&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/BrainTech/xwiimote-bindings&lt;br /&gt;
 cd xwiimote-bindings&lt;br /&gt;
 ./autogen.sh&lt;br /&gt;
 make&lt;br /&gt;
 sudo make install&lt;br /&gt;
 sudo ldconfig&lt;br /&gt;
&lt;br /&gt;
=== D) Żeby działało bez sudo ===&lt;br /&gt;
&lt;br /&gt;
Jeśli chcemy, żeby xwiimote dział bez sudo dla userów lab i newtech należy wykonać polecenia:&lt;br /&gt;
&lt;br /&gt;
 sudo usermod -a -G input newtech&lt;br /&gt;
 sudo usermod -a -G input lab&lt;br /&gt;
&lt;br /&gt;
=== E) Sparować urządzenie z użyciem wbudowanego do Ubuntu panelu Bluetooth ===&lt;br /&gt;
&lt;br /&gt;
=== F) Demo ===&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/BrainTech/wiiscale.git&lt;br /&gt;
 cd wiiscale&lt;br /&gt;
&lt;br /&gt;
Należy odkomentować linijki 134 i 135:&lt;br /&gt;
&lt;br /&gt;
 134: #        for m in measurements(iface):&lt;br /&gt;
 135: #            print_bboard_measurements(*m)&lt;br /&gt;
&lt;br /&gt;
Demo można uruchomić poleceniem:&lt;br /&gt;
&lt;br /&gt;
 python ./scale.py&lt;br /&gt;
&lt;br /&gt;
== Tobii REX eyetracker ==&lt;br /&gt;
&lt;br /&gt;
* zainstalować pakiet deb dla 64bit Linuxa z http://developer.tobii.com/rex-setup-gaze-sdk/&lt;br /&gt;
* poprosić Aleksa o kopię SDK&lt;br /&gt;
* w katalogu &amp;lt;code&amp;gt;Samples&amp;lt;/code&amp;gt; w SDK znajduje się demo (należy je zbudować poleceniem &amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
== Oprogramowanie do Kinecta ze źródeł ==&lt;br /&gt;
&lt;br /&gt;
Do pełnego działania Kinecta na Linuxie potrzebne są: OpenNI2, NiTE2, libfreenect z driverem do OpenNI2 oraz wrapper do Pythona - &amp;lt;code&amp;gt;nite2&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Firma PrimeSense, autor OpenNI, została wykupiona przez Apple'a. Następnie Apple wstrzymało publiczny rozwój projektu OpenNI - został on utajniony. Ponieważ jest to oprogramowanie opensource, kody źródłowe są nadal dostępne i mogą być używane przez każdego. Najbardziej aktywnym forkiem jest repozytorium prowadzone przez http://occipital.com, dostępne pod adresem https://github.com/occipital/OpenNI2.&lt;br /&gt;
&lt;br /&gt;
=== OpenNI2 ===&lt;br /&gt;
&lt;br /&gt;
OpenNI2 można zdobyć na dwa sposoby - zbudować ze źródeł lub pobrać binarki.&lt;br /&gt;
&lt;br /&gt;
==== Kompilacja OpenNI2 ====&lt;br /&gt;
&lt;br /&gt;
Instalacja wymagań&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install git g++ cmake python libudev-dev libxi-dev libxmu-dev libusb-1.0-0-dev libudev-dev freeglut3-dev doxygen graphviz&lt;br /&gt;
&lt;br /&gt;
Do kompilacji niezbędna jest Java (dokładniej &amp;lt;code&amp;gt;javac&amp;lt;/code&amp;gt;). Należy zainstalować jakiekolwiek JDK, np.:&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install openjdk-7-jdk&lt;br /&gt;
&lt;br /&gt;
Pobranie repozytorum i kompilacja&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/occipital/OpenNI2.git&lt;br /&gt;
 cd OpenNI2&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
Warto zapisać ścieżkę do OpenNI w zmiennej (i następnie dodać do .profile lub .bashrc):&lt;br /&gt;
&lt;br /&gt;
 export OPENNI_DIR=/home/{USER_NAME}/OpenNI2&lt;br /&gt;
&lt;br /&gt;
Instalacja OpenNI:&lt;br /&gt;
&lt;br /&gt;
 sudo ${OPENNI_DIR}/Packaging/Linux/install.sh&lt;br /&gt;
 sudo gpasswd -a ${USER} video&lt;br /&gt;
&lt;br /&gt;
==== Instalacja z binarek ====&lt;br /&gt;
&lt;br /&gt;
Należy pobrać binarny pakiet ze strony http://structure.io/openni i wypakować do katalogu np. &amp;lt;code&amp;gt;OpenNI-Linux-x64-2.2&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 $ cd OpenNI-Linux-x64-2.2&lt;br /&gt;
 $ sudo ./install.sh&lt;br /&gt;
&lt;br /&gt;
w aktualnym katalogu utworzy się skrypt &amp;lt;code&amp;gt;OpenNIDevEnvironment&amp;lt;/code&amp;gt;, który ustawia środowisko dev&lt;br /&gt;
&lt;br /&gt;
=== Kompilacja libfreenect ===&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/OpenKinect/libfreenect.git&lt;br /&gt;
 cd libfreenect&lt;br /&gt;
 mkdir build&lt;br /&gt;
 cd build&lt;br /&gt;
 cmake .. -DBUILD_OPENNI2_DRIVER=ON&lt;br /&gt;
 make -j4&lt;br /&gt;
 cp -L lib/OpenNI2-FreenectDriver/libFreenectDriver.so ${OPENNI_DIR}/Bin/x64-Release/OpenNI2/Drivers/&lt;br /&gt;
&lt;br /&gt;
Testowanie&lt;br /&gt;
&lt;br /&gt;
 cd ${OPENNI_DIR}/Bin/x64-Release/&lt;br /&gt;
 ./NiViewer&lt;br /&gt;
&lt;br /&gt;
=== Instalacja biblioteki NiTE2 ===&lt;br /&gt;
&lt;br /&gt;
NiTE od zawsze było oprogramowaniem bez dostępnych kodów źródłowych. Binarki można znaleźć tutaj: http://ilab.usc.edu/packages/forall/ubuntu-13.10/NiTE-Linux-x64-2.2.tar.bz2&lt;br /&gt;
 &lt;br /&gt;
 cd NiTE-Linux-x64-2.2&lt;br /&gt;
 sudo ./install.sh&lt;br /&gt;
&lt;br /&gt;
 cp -L /usr/local/lib/OpenNI2-FreenectDriver/libFreenectDriver.so NiTE-Linux-x64-2.2/Samples/Bin/OpenNI2/Drivers/&lt;br /&gt;
&lt;br /&gt;
=== Kompilacja Pythonowego modułu 'nite2' (wrappera do OpenNI2 + NiTE2) ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 $ git clone https://github.com/BrainTech/nite2-bindings&lt;br /&gt;
 $ cd nite2-bindings&lt;br /&gt;
 $ make&lt;/div&gt;</summary>
		<author><name>Alex</name></author>
		
	</entry>
	<entry>
		<id>http://brain.fuw.edu.pl/edu/index.php?title=Instalacja_i_konfiguracja_Kinect,_Wiimote_i_Eyetrackera&amp;diff=5024</id>
		<title>Instalacja i konfiguracja Kinect, Wiimote i Eyetrackera</title>
		<link rel="alternate" type="text/html" href="http://brain.fuw.edu.pl/edu/index.php?title=Instalacja_i_konfiguracja_Kinect,_Wiimote_i_Eyetrackera&amp;diff=5024"/>
		<updated>2016-03-23T12:00:16Z</updated>

		<summary type="html">&lt;p&gt;Alex: /* Oprogramowanie do Kinecta ze źródeł */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Kinect + OpenNI2 + NiTE2 + freenect ==&lt;br /&gt;
&lt;br /&gt;
Należy pamiętać, żeby wszsstkie wystąpienia &amp;lt;code&amp;gt;{USER_NAME}&amp;lt;/code&amp;gt; w poniższym kodzie zamienić na właściwą nazwę użytkownika.&lt;br /&gt;
&lt;br /&gt;
Instalacja OpenNI 2 + NiTE 2 z prekonfigurowanych binarek dla Ubuntu 15.10:&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install freeglut3 python-opencv libboost-all-dev&lt;br /&gt;
 cd ~&lt;br /&gt;
 wget http://static.mroja.net/kinect/kinect.7z&lt;br /&gt;
 7z x kinect.7z&lt;br /&gt;
 cd ~/kinect&lt;br /&gt;
 sudo cp primesense-and-kinect-usb.rules /etc/udev/rules.d/557-primesense-usb.rules&lt;br /&gt;
 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/{USER_NAME}/kinect/Redist&lt;br /&gt;
 cd Redist&lt;br /&gt;
 ./NiViewer&lt;br /&gt;
&lt;br /&gt;
Linijkę &amp;lt;code&amp;gt;export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/{USER_NAME}/kinect/Redist&amp;lt;/code&amp;gt; najlepiej wrzucić do pliku &amp;lt;code&amp;gt;.profile&amp;lt;/code&amp;gt; lub &amp;lt;code&amp;gt;.bashrc&amp;lt;/code&amp;gt;, żeby uruchamiana była przy każdym logowaniu.&lt;br /&gt;
&lt;br /&gt;
Należy prawdzić czy użytkownik, na koncie którego będzie używany Kinect należy do grupy plugdev -- jeśli nie, dodać: &lt;br /&gt;
 sudo usermod -G plugdev -a {USER_NAME}&lt;br /&gt;
&lt;br /&gt;
Alternatywnie można zainstalować całość ze źródeł - instrukcja znajduje się na dole tej strony.&lt;br /&gt;
&lt;br /&gt;
=== Wrapper nite2 do Python + OpenBCI  ===&lt;br /&gt;
&lt;br /&gt;
Moduł do Pythona (plik &amp;lt;code&amp;gt;nite2.so&amp;lt;/code&amp;gt;) należy zbudować z repozytorium https://github.com/BrainTech/nite2-bindings i umieścić w katalogu &amp;lt;code&amp;gt;/usr/lib/python2.7/dist-packages&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Żeby NiTE2 działo poprawnie wewnątrz OpenBCI należy skopiować katalog NiTE2 (&amp;lt;code&amp;gt;~/kinect/Redist/NiTE2&amp;lt;/code&amp;gt;) do katalogu &amp;lt;code&amp;gt;~/.obci/sandbox&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
na koncie lab&lt;br /&gt;
&lt;br /&gt;
 cd ~/kinect/Redist&lt;br /&gt;
 cp /path_to_file/nite2.so nite2.so&lt;br /&gt;
&lt;br /&gt;
 cp -r /home/lab/kinect/Redist/NiTE2/ ~/.obci/sandbox/&lt;br /&gt;
&lt;br /&gt;
na koncie newtech&lt;br /&gt;
&lt;br /&gt;
 cd ~/kinect/Redist&lt;br /&gt;
 cp /path_to_file/nite2.so nite2.so&lt;br /&gt;
&lt;br /&gt;
 mkdir /home/newtech/.obci/  # jeśli katalog istnieje to pominąć&lt;br /&gt;
 mkdir /home/newtech/.obci/sandbox  # j.w.&lt;br /&gt;
&lt;br /&gt;
 cp -r /home/newtech/kinect/Redist/NiTE2/ ~/.obci/sandbox/&lt;br /&gt;
&lt;br /&gt;
== Instalacja xwiimote ==&lt;br /&gt;
&lt;br /&gt;
UWAGA!!! NIE NALEŻY instalować pakietu xwiimote z repozytoriów Debiana i Ubuntu - są one przestarzałe.&lt;br /&gt;
&lt;br /&gt;
Wymagane wersje:&lt;br /&gt;
* kernel &amp;gt;= 3.5+&lt;br /&gt;
* bluez &amp;gt;= 5.11+&lt;br /&gt;
&lt;br /&gt;
=== A) Instalacja wymaganych pakietów ===&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install autoconf autogen automake gcc bluetooth ncurses-dev libudev-dev libtool git blueman python-dev dh-autoreconf pkg-config swig&lt;br /&gt;
&lt;br /&gt;
=== B) xwiimote driver &amp;amp; utils ===&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/BrainTech/xwiimote&lt;br /&gt;
 cd xwiimote&lt;br /&gt;
 ./autogen.sh&lt;br /&gt;
 make&lt;br /&gt;
 sudo make install&lt;br /&gt;
 sudo ldconfig&lt;br /&gt;
&lt;br /&gt;
=== C) Python bindings ===&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/BrainTech/xwiimote-bindings&lt;br /&gt;
 cd xwiimote-bindings&lt;br /&gt;
 ./autogen.sh&lt;br /&gt;
 make&lt;br /&gt;
 sudo make install&lt;br /&gt;
 sudo ldconfig&lt;br /&gt;
&lt;br /&gt;
=== D) Żeby działało bez sudo ===&lt;br /&gt;
&lt;br /&gt;
Jeśli chcemy, żeby xwiimote dział bez sudo dla userów lab i newtech należy wykonać polecenia:&lt;br /&gt;
&lt;br /&gt;
 sudo usermod -a -G input newtech&lt;br /&gt;
 sudo usermod -a -G input lab&lt;br /&gt;
&lt;br /&gt;
=== E) Sparować urządzenie z użyciem wbudowanego do Ubuntu panelu Bluetooth ===&lt;br /&gt;
&lt;br /&gt;
=== F) Demo ===&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/BrainTech/wiiscale.git&lt;br /&gt;
 cd wiiscale&lt;br /&gt;
&lt;br /&gt;
Należy odkomentować linijki 134 i 135:&lt;br /&gt;
&lt;br /&gt;
 134: #        for m in measurements(iface):&lt;br /&gt;
 135: #            print_bboard_measurements(*m)&lt;br /&gt;
&lt;br /&gt;
Demo można uruchomić poleceniem:&lt;br /&gt;
&lt;br /&gt;
 python ./scale.py&lt;br /&gt;
&lt;br /&gt;
== Tobii REX eyetracker ==&lt;br /&gt;
&lt;br /&gt;
* zainstalować pakiet deb dla 64bit Linuxa z http://developer.tobii.com/rex-setup-gaze-sdk/&lt;br /&gt;
* poprosić Aleksa o kopię SDK&lt;br /&gt;
* w katalogu &amp;lt;code&amp;gt;Samples&amp;lt;/code&amp;gt; w SDK znajduje się demo (należy je zbudować poleceniem &amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
== Oprogramowanie do Kinecta ze źródeł ==&lt;br /&gt;
&lt;br /&gt;
Do pełnego działania Kinecta na Linuxie potrzebne są: OpenNI2, NiTE2, libfreenect z driverem do OpenNI2 oraz wrapper do Pythona - &amp;lt;code&amp;gt;nite2&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Firma PrimeSense, autor OpenNI, została wykupiona przez Apple'a. Następnie Apple wstrzymało publiczny rozwój projektu OpenNI - został on utajniony. Ponieważ jest to oprogramowanie opensource, kody źródłowe są nadal dostępne i mogą być używane przez każdego. Najbardziej aktywnym forkiem jest repozytorium prowadzone przez http://occipital.com, dostępne pod adresem https://github.com/occipital/OpenNI2.&lt;br /&gt;
&lt;br /&gt;
=== OpenNI2 ===&lt;br /&gt;
&lt;br /&gt;
OpenNI2 można zdobyć na dwa sposoby - zbudować ze źródeł lub pobrać binarki.&lt;br /&gt;
&lt;br /&gt;
==== Kompilacja OpenNI2 ====&lt;br /&gt;
&lt;br /&gt;
Instalacja wymagań&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install git g++ cmake python libudev-dev libxi-dev libxmu-dev libusb-1.0-0-dev libudev-dev freeglut3-dev doxygen graphviz&lt;br /&gt;
&lt;br /&gt;
Do kompilacji niezbędna jest Java (dokładniej &amp;lt;code&amp;gt;javac&amp;lt;/code&amp;gt;). Należy zainstalować jakiekolwiek JDK, np.:&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install openjdk-7-jdk&lt;br /&gt;
&lt;br /&gt;
Pobranie repozytorum i kompilacja&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/occipital/OpenNI2.git&lt;br /&gt;
 cd OpenNI2&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
Warto zapisać ścieżkę do OpenNI w zmiennej (i następnie dodać do .profile lub .bashrc):&lt;br /&gt;
&lt;br /&gt;
 export OPENNI_DIR=/home/{USER_NAME}/OpenNI2&lt;br /&gt;
&lt;br /&gt;
Instalacja OpenNI:&lt;br /&gt;
&lt;br /&gt;
 sudo ${OPENNI_DIR}/Packaging/Linux/install.sh&lt;br /&gt;
 sudo gpasswd -a ${USER} video&lt;br /&gt;
&lt;br /&gt;
==== Instalacja z binarek ====&lt;br /&gt;
&lt;br /&gt;
Należy pobrać binarny pakiet ze strony http://structure.io/openni i wypakować do katalogu np. &amp;lt;code&amp;gt;OpenNI-Linux-x64-2.2&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 $ cd OpenNI-Linux-x64-2.2&lt;br /&gt;
 $ sudo ./install.sh&lt;br /&gt;
&lt;br /&gt;
w aktualnym katalogu utworzy się skrypt &amp;lt;code&amp;gt;OpenNIDevEnvironment&amp;lt;/code&amp;gt;, który ustawia środowisko dev&lt;br /&gt;
&lt;br /&gt;
=== Kompilacja libfreenect ===&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/OpenKinect/libfreenect.git&lt;br /&gt;
 cd libfreenect&lt;br /&gt;
 mkdir build&lt;br /&gt;
 cd build&lt;br /&gt;
 cmake .. -DBUILD_OPENNI2_DRIVER=ON&lt;br /&gt;
 make -j4&lt;br /&gt;
 cp -L lib/OpenNI2-FreenectDriver/libFreenectDriver.so ${OPENNI_DIR}/Bin/x64-Release/OpenNI2/Drivers/&lt;br /&gt;
&lt;br /&gt;
Testowanie&lt;br /&gt;
&lt;br /&gt;
 cd ${OPENNI_DIR}/Bin/x64-Release/&lt;br /&gt;
 ./NiViewer&lt;br /&gt;
&lt;br /&gt;
=== Instalacja biblioteki NiTE2 ===&lt;br /&gt;
&lt;br /&gt;
NiTE od zawsze było oprogramowaniem bez dostępnych kodów źródłowych. Binarki można znaleźć tutaj: http://ilab.usc.edu/packages/forall/ubuntu-13.10/NiTE-Linux-x64-2.2.tar.bz2&lt;br /&gt;
 &lt;br /&gt;
 cd NiTE-Linux-x64-2.2&lt;br /&gt;
 sudo ./install.sh&lt;br /&gt;
&lt;br /&gt;
 cp -L /usr/local/lib/OpenNI2-FreenectDriver/libFreenectDriver.so NiTE-Linux-x64-2.2/Samples/Bin/OpenNI2/Drivers/&lt;/div&gt;</summary>
		<author><name>Alex</name></author>
		
	</entry>
	<entry>
		<id>http://brain.fuw.edu.pl/edu/index.php?title=Instalacja_i_konfiguracja_Kinect,_Wiimote_i_Eyetrackera&amp;diff=5023</id>
		<title>Instalacja i konfiguracja Kinect, Wiimote i Eyetrackera</title>
		<link rel="alternate" type="text/html" href="http://brain.fuw.edu.pl/edu/index.php?title=Instalacja_i_konfiguracja_Kinect,_Wiimote_i_Eyetrackera&amp;diff=5023"/>
		<updated>2016-03-23T11:57:22Z</updated>

		<summary type="html">&lt;p&gt;Alex: /* Kompilacja OpenNI2 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Kinect + OpenNI2 + NiTE2 + freenect ==&lt;br /&gt;
&lt;br /&gt;
Należy pamiętać, żeby wszsstkie wystąpienia &amp;lt;code&amp;gt;{USER_NAME}&amp;lt;/code&amp;gt; w poniższym kodzie zamienić na właściwą nazwę użytkownika.&lt;br /&gt;
&lt;br /&gt;
Instalacja OpenNI 2 + NiTE 2 z prekonfigurowanych binarek dla Ubuntu 15.10:&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install freeglut3 python-opencv libboost-all-dev&lt;br /&gt;
 cd ~&lt;br /&gt;
 wget http://static.mroja.net/kinect/kinect.7z&lt;br /&gt;
 7z x kinect.7z&lt;br /&gt;
 cd ~/kinect&lt;br /&gt;
 sudo cp primesense-and-kinect-usb.rules /etc/udev/rules.d/557-primesense-usb.rules&lt;br /&gt;
 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/{USER_NAME}/kinect/Redist&lt;br /&gt;
 cd Redist&lt;br /&gt;
 ./NiViewer&lt;br /&gt;
&lt;br /&gt;
Linijkę &amp;lt;code&amp;gt;export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/{USER_NAME}/kinect/Redist&amp;lt;/code&amp;gt; najlepiej wrzucić do pliku &amp;lt;code&amp;gt;.profile&amp;lt;/code&amp;gt; lub &amp;lt;code&amp;gt;.bashrc&amp;lt;/code&amp;gt;, żeby uruchamiana była przy każdym logowaniu.&lt;br /&gt;
&lt;br /&gt;
Należy prawdzić czy użytkownik, na koncie którego będzie używany Kinect należy do grupy plugdev -- jeśli nie, dodać: &lt;br /&gt;
 sudo usermod -G plugdev -a {USER_NAME}&lt;br /&gt;
&lt;br /&gt;
Alternatywnie można zainstalować całość ze źródeł - instrukcja znajduje się na dole tej strony.&lt;br /&gt;
&lt;br /&gt;
=== Wrapper nite2 do Python + OpenBCI  ===&lt;br /&gt;
&lt;br /&gt;
Moduł do Pythona (plik &amp;lt;code&amp;gt;nite2.so&amp;lt;/code&amp;gt;) należy zbudować z repozytorium https://github.com/BrainTech/nite2-bindings i umieścić w katalogu &amp;lt;code&amp;gt;/usr/lib/python2.7/dist-packages&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Żeby NiTE2 działo poprawnie wewnątrz OpenBCI należy skopiować katalog NiTE2 (&amp;lt;code&amp;gt;~/kinect/Redist/NiTE2&amp;lt;/code&amp;gt;) do katalogu &amp;lt;code&amp;gt;~/.obci/sandbox&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
na koncie lab&lt;br /&gt;
&lt;br /&gt;
 cd ~/kinect/Redist&lt;br /&gt;
 cp /path_to_file/nite2.so nite2.so&lt;br /&gt;
&lt;br /&gt;
 cp -r /home/lab/kinect/Redist/NiTE2/ ~/.obci/sandbox/&lt;br /&gt;
&lt;br /&gt;
na koncie newtech&lt;br /&gt;
&lt;br /&gt;
 cd ~/kinect/Redist&lt;br /&gt;
 cp /path_to_file/nite2.so nite2.so&lt;br /&gt;
&lt;br /&gt;
 mkdir /home/newtech/.obci/  # jeśli katalog istnieje to pominąć&lt;br /&gt;
 mkdir /home/newtech/.obci/sandbox  # j.w.&lt;br /&gt;
&lt;br /&gt;
 cp -r /home/newtech/kinect/Redist/NiTE2/ ~/.obci/sandbox/&lt;br /&gt;
&lt;br /&gt;
== Instalacja xwiimote ==&lt;br /&gt;
&lt;br /&gt;
UWAGA!!! NIE NALEŻY instalować pakietu xwiimote z repozytoriów Debiana i Ubuntu - są one przestarzałe.&lt;br /&gt;
&lt;br /&gt;
Wymagane wersje:&lt;br /&gt;
* kernel &amp;gt;= 3.5+&lt;br /&gt;
* bluez &amp;gt;= 5.11+&lt;br /&gt;
&lt;br /&gt;
=== A) Instalacja wymaganych pakietów ===&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install autoconf autogen automake gcc bluetooth ncurses-dev libudev-dev libtool git blueman python-dev dh-autoreconf pkg-config swig&lt;br /&gt;
&lt;br /&gt;
=== B) xwiimote driver &amp;amp; utils ===&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/BrainTech/xwiimote&lt;br /&gt;
 cd xwiimote&lt;br /&gt;
 ./autogen.sh&lt;br /&gt;
 make&lt;br /&gt;
 sudo make install&lt;br /&gt;
 sudo ldconfig&lt;br /&gt;
&lt;br /&gt;
=== C) Python bindings ===&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/BrainTech/xwiimote-bindings&lt;br /&gt;
 cd xwiimote-bindings&lt;br /&gt;
 ./autogen.sh&lt;br /&gt;
 make&lt;br /&gt;
 sudo make install&lt;br /&gt;
 sudo ldconfig&lt;br /&gt;
&lt;br /&gt;
=== D) Żeby działało bez sudo ===&lt;br /&gt;
&lt;br /&gt;
Jeśli chcemy, żeby xwiimote dział bez sudo dla userów lab i newtech należy wykonać polecenia:&lt;br /&gt;
&lt;br /&gt;
 sudo usermod -a -G input newtech&lt;br /&gt;
 sudo usermod -a -G input lab&lt;br /&gt;
&lt;br /&gt;
=== E) Sparować urządzenie z użyciem wbudowanego do Ubuntu panelu Bluetooth ===&lt;br /&gt;
&lt;br /&gt;
=== F) Demo ===&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/BrainTech/wiiscale.git&lt;br /&gt;
 cd wiiscale&lt;br /&gt;
&lt;br /&gt;
Należy odkomentować linijki 134 i 135:&lt;br /&gt;
&lt;br /&gt;
 134: #        for m in measurements(iface):&lt;br /&gt;
 135: #            print_bboard_measurements(*m)&lt;br /&gt;
&lt;br /&gt;
Demo można uruchomić poleceniem:&lt;br /&gt;
&lt;br /&gt;
 python ./scale.py&lt;br /&gt;
&lt;br /&gt;
== Tobii REX eyetracker ==&lt;br /&gt;
&lt;br /&gt;
* zainstalować pakiet deb dla 64bit Linuxa z http://developer.tobii.com/rex-setup-gaze-sdk/&lt;br /&gt;
* poprosić Aleksa o kopię SDK&lt;br /&gt;
* w katalogu &amp;lt;code&amp;gt;Samples&amp;lt;/code&amp;gt; w SDK znajduje się demo (należy je zbudować poleceniem &amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
== Oprogramowanie do Kinecta ze źródeł ==&lt;br /&gt;
&lt;br /&gt;
Do pełnego działania Kinecta na Linuxie potrzebne są: OpenNI2, NiTE2, libfreenect z driverem do OpenNI2 oraz wrapper do Pythona - &amp;lt;code&amp;gt;nite2&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Firma PrimeSense, autor OpenNI, została wykupiona przez Apple'a. Następnie projekt OpenNI został utajniony. Ponieważ jest to opensource, kody źródłowe są nadal dostępne. Najbardziej aktywnym forkiem jest repozytorium prowadzone przez http://occipital.com, dostępne pod adresem https://github.com/occipital/OpenNI2.&lt;br /&gt;
&lt;br /&gt;
=== OpenNI2 ===&lt;br /&gt;
&lt;br /&gt;
OpenNI2 można zdobyć na dwa sposoby - zbudować ze źródeł lub pobrać binarki.&lt;br /&gt;
&lt;br /&gt;
==== Kompilacja OpenNI2 ====&lt;br /&gt;
&lt;br /&gt;
Instalacja wymagań&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install git g++ cmake python libudev-dev libxi-dev libxmu-dev libusb-1.0-0-dev libudev-dev freeglut3-dev doxygen graphviz&lt;br /&gt;
&lt;br /&gt;
Do kompilacji niezbędna jest Java (dokładniej &amp;lt;code&amp;gt;javac&amp;lt;/code&amp;gt;). Należy zainstalować jakiekolwiek JDK, np.:&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install openjdk-7-jdk&lt;br /&gt;
&lt;br /&gt;
Pobranie repozytorum i kompilacja&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/occipital/OpenNI2.git&lt;br /&gt;
 cd OpenNI2&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
Warto zapisać ścieżkę do OpenNI w zmiennej (i następnie dodać do .profile lub .bashrc):&lt;br /&gt;
&lt;br /&gt;
 export OPENNI_DIR=/home/{USER_NAME}/OpenNI2&lt;br /&gt;
&lt;br /&gt;
Instalacja OpenNI:&lt;br /&gt;
&lt;br /&gt;
 sudo ${OPENNI_DIR}/Packaging/Linux/install.sh&lt;br /&gt;
 sudo gpasswd -a ${USER} video&lt;br /&gt;
&lt;br /&gt;
==== Instalacja z binarek ====&lt;br /&gt;
&lt;br /&gt;
Należy pobrać binarny pakiet ze strony http://structure.io/openni i wypakować do katalogu np. &amp;lt;code&amp;gt;OpenNI-Linux-x64-2.2&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 $ cd OpenNI-Linux-x64-2.2&lt;br /&gt;
 $ sudo ./install.sh&lt;br /&gt;
&lt;br /&gt;
w aktualnym katalogu utworzy się skrypt &amp;lt;code&amp;gt;OpenNIDevEnvironment&amp;lt;/code&amp;gt;, który ustawia środowisko dev&lt;br /&gt;
&lt;br /&gt;
=== Kompilacja libfreenect ===&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/OpenKinect/libfreenect.git&lt;br /&gt;
 cd libfreenect&lt;br /&gt;
 mkdir build&lt;br /&gt;
 cd build&lt;br /&gt;
 cmake .. -DBUILD_OPENNI2_DRIVER=ON&lt;br /&gt;
 make -j4&lt;br /&gt;
 cp -L lib/OpenNI2-FreenectDriver/libFreenectDriver.so ${OPENNI_DIR}/Bin/x64-Release/OpenNI2/Drivers/&lt;br /&gt;
&lt;br /&gt;
Testowanie&lt;br /&gt;
&lt;br /&gt;
 cd ${OPENNI_DIR}/Bin/x64-Release/&lt;br /&gt;
 ./NiViewer&lt;br /&gt;
&lt;br /&gt;
=== Instalacja biblioteki NiTE2 ===&lt;br /&gt;
&lt;br /&gt;
NiTE od zawsze było oprogramowaniem bez dostępnych kodów źródłowych. Binarki można znaleźć tutaj: http://ilab.usc.edu/packages/forall/ubuntu-13.10/NiTE-Linux-x64-2.2.tar.bz2&lt;br /&gt;
 &lt;br /&gt;
 cd NiTE-Linux-x64-2.2&lt;br /&gt;
 sudo ./install.sh&lt;br /&gt;
&lt;br /&gt;
 cp -L /usr/local/lib/OpenNI2-FreenectDriver/libFreenectDriver.so NiTE-Linux-x64-2.2/Samples/Bin/OpenNI2/Drivers/&lt;/div&gt;</summary>
		<author><name>Alex</name></author>
		
	</entry>
	<entry>
		<id>http://brain.fuw.edu.pl/edu/index.php?title=Instalacja_i_konfiguracja_Kinect,_Wiimote_i_Eyetrackera&amp;diff=5022</id>
		<title>Instalacja i konfiguracja Kinect, Wiimote i Eyetrackera</title>
		<link rel="alternate" type="text/html" href="http://brain.fuw.edu.pl/edu/index.php?title=Instalacja_i_konfiguracja_Kinect,_Wiimote_i_Eyetrackera&amp;diff=5022"/>
		<updated>2016-03-23T11:56:21Z</updated>

		<summary type="html">&lt;p&gt;Alex: /* Kompilacja libfreenect */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Kinect + OpenNI2 + NiTE2 + freenect ==&lt;br /&gt;
&lt;br /&gt;
Należy pamiętać, żeby wszsstkie wystąpienia &amp;lt;code&amp;gt;{USER_NAME}&amp;lt;/code&amp;gt; w poniższym kodzie zamienić na właściwą nazwę użytkownika.&lt;br /&gt;
&lt;br /&gt;
Instalacja OpenNI 2 + NiTE 2 z prekonfigurowanych binarek dla Ubuntu 15.10:&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install freeglut3 python-opencv libboost-all-dev&lt;br /&gt;
 cd ~&lt;br /&gt;
 wget http://static.mroja.net/kinect/kinect.7z&lt;br /&gt;
 7z x kinect.7z&lt;br /&gt;
 cd ~/kinect&lt;br /&gt;
 sudo cp primesense-and-kinect-usb.rules /etc/udev/rules.d/557-primesense-usb.rules&lt;br /&gt;
 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/{USER_NAME}/kinect/Redist&lt;br /&gt;
 cd Redist&lt;br /&gt;
 ./NiViewer&lt;br /&gt;
&lt;br /&gt;
Linijkę &amp;lt;code&amp;gt;export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/{USER_NAME}/kinect/Redist&amp;lt;/code&amp;gt; najlepiej wrzucić do pliku &amp;lt;code&amp;gt;.profile&amp;lt;/code&amp;gt; lub &amp;lt;code&amp;gt;.bashrc&amp;lt;/code&amp;gt;, żeby uruchamiana była przy każdym logowaniu.&lt;br /&gt;
&lt;br /&gt;
Należy prawdzić czy użytkownik, na koncie którego będzie używany Kinect należy do grupy plugdev -- jeśli nie, dodać: &lt;br /&gt;
 sudo usermod -G plugdev -a {USER_NAME}&lt;br /&gt;
&lt;br /&gt;
Alternatywnie można zainstalować całość ze źródeł - instrukcja znajduje się na dole tej strony.&lt;br /&gt;
&lt;br /&gt;
=== Wrapper nite2 do Python + OpenBCI  ===&lt;br /&gt;
&lt;br /&gt;
Moduł do Pythona (plik &amp;lt;code&amp;gt;nite2.so&amp;lt;/code&amp;gt;) należy zbudować z repozytorium https://github.com/BrainTech/nite2-bindings i umieścić w katalogu &amp;lt;code&amp;gt;/usr/lib/python2.7/dist-packages&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Żeby NiTE2 działo poprawnie wewnątrz OpenBCI należy skopiować katalog NiTE2 (&amp;lt;code&amp;gt;~/kinect/Redist/NiTE2&amp;lt;/code&amp;gt;) do katalogu &amp;lt;code&amp;gt;~/.obci/sandbox&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
na koncie lab&lt;br /&gt;
&lt;br /&gt;
 cd ~/kinect/Redist&lt;br /&gt;
 cp /path_to_file/nite2.so nite2.so&lt;br /&gt;
&lt;br /&gt;
 cp -r /home/lab/kinect/Redist/NiTE2/ ~/.obci/sandbox/&lt;br /&gt;
&lt;br /&gt;
na koncie newtech&lt;br /&gt;
&lt;br /&gt;
 cd ~/kinect/Redist&lt;br /&gt;
 cp /path_to_file/nite2.so nite2.so&lt;br /&gt;
&lt;br /&gt;
 mkdir /home/newtech/.obci/  # jeśli katalog istnieje to pominąć&lt;br /&gt;
 mkdir /home/newtech/.obci/sandbox  # j.w.&lt;br /&gt;
&lt;br /&gt;
 cp -r /home/newtech/kinect/Redist/NiTE2/ ~/.obci/sandbox/&lt;br /&gt;
&lt;br /&gt;
== Instalacja xwiimote ==&lt;br /&gt;
&lt;br /&gt;
UWAGA!!! NIE NALEŻY instalować pakietu xwiimote z repozytoriów Debiana i Ubuntu - są one przestarzałe.&lt;br /&gt;
&lt;br /&gt;
Wymagane wersje:&lt;br /&gt;
* kernel &amp;gt;= 3.5+&lt;br /&gt;
* bluez &amp;gt;= 5.11+&lt;br /&gt;
&lt;br /&gt;
=== A) Instalacja wymaganych pakietów ===&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install autoconf autogen automake gcc bluetooth ncurses-dev libudev-dev libtool git blueman python-dev dh-autoreconf pkg-config swig&lt;br /&gt;
&lt;br /&gt;
=== B) xwiimote driver &amp;amp; utils ===&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/BrainTech/xwiimote&lt;br /&gt;
 cd xwiimote&lt;br /&gt;
 ./autogen.sh&lt;br /&gt;
 make&lt;br /&gt;
 sudo make install&lt;br /&gt;
 sudo ldconfig&lt;br /&gt;
&lt;br /&gt;
=== C) Python bindings ===&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/BrainTech/xwiimote-bindings&lt;br /&gt;
 cd xwiimote-bindings&lt;br /&gt;
 ./autogen.sh&lt;br /&gt;
 make&lt;br /&gt;
 sudo make install&lt;br /&gt;
 sudo ldconfig&lt;br /&gt;
&lt;br /&gt;
=== D) Żeby działało bez sudo ===&lt;br /&gt;
&lt;br /&gt;
Jeśli chcemy, żeby xwiimote dział bez sudo dla userów lab i newtech należy wykonać polecenia:&lt;br /&gt;
&lt;br /&gt;
 sudo usermod -a -G input newtech&lt;br /&gt;
 sudo usermod -a -G input lab&lt;br /&gt;
&lt;br /&gt;
=== E) Sparować urządzenie z użyciem wbudowanego do Ubuntu panelu Bluetooth ===&lt;br /&gt;
&lt;br /&gt;
=== F) Demo ===&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/BrainTech/wiiscale.git&lt;br /&gt;
 cd wiiscale&lt;br /&gt;
&lt;br /&gt;
Należy odkomentować linijki 134 i 135:&lt;br /&gt;
&lt;br /&gt;
 134: #        for m in measurements(iface):&lt;br /&gt;
 135: #            print_bboard_measurements(*m)&lt;br /&gt;
&lt;br /&gt;
Demo można uruchomić poleceniem:&lt;br /&gt;
&lt;br /&gt;
 python ./scale.py&lt;br /&gt;
&lt;br /&gt;
== Tobii REX eyetracker ==&lt;br /&gt;
&lt;br /&gt;
* zainstalować pakiet deb dla 64bit Linuxa z http://developer.tobii.com/rex-setup-gaze-sdk/&lt;br /&gt;
* poprosić Aleksa o kopię SDK&lt;br /&gt;
* w katalogu &amp;lt;code&amp;gt;Samples&amp;lt;/code&amp;gt; w SDK znajduje się demo (należy je zbudować poleceniem &amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
== Oprogramowanie do Kinecta ze źródeł ==&lt;br /&gt;
&lt;br /&gt;
Do pełnego działania Kinecta na Linuxie potrzebne są: OpenNI2, NiTE2, libfreenect z driverem do OpenNI2 oraz wrapper do Pythona - &amp;lt;code&amp;gt;nite2&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Firma PrimeSense, autor OpenNI, została wykupiona przez Apple'a. Następnie projekt OpenNI został utajniony. Ponieważ jest to opensource, kody źródłowe są nadal dostępne. Najbardziej aktywnym forkiem jest repozytorium prowadzone przez http://occipital.com, dostępne pod adresem https://github.com/occipital/OpenNI2.&lt;br /&gt;
&lt;br /&gt;
=== OpenNI2 ===&lt;br /&gt;
&lt;br /&gt;
OpenNI2 można zdobyć na dwa sposoby - zbudować ze źródeł lub pobrać binarki.&lt;br /&gt;
&lt;br /&gt;
==== Kompilacja OpenNI2 ====&lt;br /&gt;
&lt;br /&gt;
Instalacja wymagań&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install git g++ cmake python libudev-dev libxi-dev libxmu-dev libusb-1.0-0-dev libudev-dev freeglut3-dev doxygen graphviz&lt;br /&gt;
&lt;br /&gt;
Do kompilacji niezbędna jest Java (dokładniej &amp;lt;code&amp;gt;javac&amp;lt;/code&amp;gt;). Należy zainstalować jakiekolwiek JDK, np.:&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install openjdk-7-jdk&lt;br /&gt;
&lt;br /&gt;
Pobranie repozytorum i kompilacja&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/occipital/OpenNI2.git&lt;br /&gt;
 cd OpenNI2&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
Warto zapisać ścieżkę do OpenNI w zmiennej (i dodać do .profile lub .bashrc):&lt;br /&gt;
&lt;br /&gt;
 export OPENNI_DIR=&amp;quot;${PWD}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Instalacja OpenNI:&lt;br /&gt;
&lt;br /&gt;
 sudo ${OPENNI_DIR}/Packaging/Linux/install.sh&lt;br /&gt;
 sudo gpasswd -a ${USER} video&lt;br /&gt;
&lt;br /&gt;
==== Instalacja z binarek ====&lt;br /&gt;
&lt;br /&gt;
Należy pobrać binarny pakiet ze strony http://structure.io/openni i wypakować do katalogu np. &amp;lt;code&amp;gt;OpenNI-Linux-x64-2.2&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 $ cd OpenNI-Linux-x64-2.2&lt;br /&gt;
 $ sudo ./install.sh&lt;br /&gt;
&lt;br /&gt;
w aktualnym katalogu utworzy się skrypt &amp;lt;code&amp;gt;OpenNIDevEnvironment&amp;lt;/code&amp;gt;, który ustawia środowisko dev&lt;br /&gt;
&lt;br /&gt;
=== Kompilacja libfreenect ===&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/OpenKinect/libfreenect.git&lt;br /&gt;
 cd libfreenect&lt;br /&gt;
 mkdir build&lt;br /&gt;
 cd build&lt;br /&gt;
 cmake .. -DBUILD_OPENNI2_DRIVER=ON&lt;br /&gt;
 make -j4&lt;br /&gt;
 cp -L lib/OpenNI2-FreenectDriver/libFreenectDriver.so ${OPENNI_DIR}/Bin/x64-Release/OpenNI2/Drivers/&lt;br /&gt;
&lt;br /&gt;
Testowanie&lt;br /&gt;
&lt;br /&gt;
 cd ${OPENNI_DIR}/Bin/x64-Release/&lt;br /&gt;
 ./NiViewer&lt;br /&gt;
&lt;br /&gt;
=== Instalacja biblioteki NiTE2 ===&lt;br /&gt;
&lt;br /&gt;
NiTE od zawsze było oprogramowaniem bez dostępnych kodów źródłowych. Binarki można znaleźć tutaj: http://ilab.usc.edu/packages/forall/ubuntu-13.10/NiTE-Linux-x64-2.2.tar.bz2&lt;br /&gt;
 &lt;br /&gt;
 cd NiTE-Linux-x64-2.2&lt;br /&gt;
 sudo ./install.sh&lt;br /&gt;
&lt;br /&gt;
 cp -L /usr/local/lib/OpenNI2-FreenectDriver/libFreenectDriver.so NiTE-Linux-x64-2.2/Samples/Bin/OpenNI2/Drivers/&lt;/div&gt;</summary>
		<author><name>Alex</name></author>
		
	</entry>
	<entry>
		<id>http://brain.fuw.edu.pl/edu/index.php?title=Instalacja_i_konfiguracja_Kinect,_Wiimote_i_Eyetrackera&amp;diff=5021</id>
		<title>Instalacja i konfiguracja Kinect, Wiimote i Eyetrackera</title>
		<link rel="alternate" type="text/html" href="http://brain.fuw.edu.pl/edu/index.php?title=Instalacja_i_konfiguracja_Kinect,_Wiimote_i_Eyetrackera&amp;diff=5021"/>
		<updated>2016-03-23T11:55:14Z</updated>

		<summary type="html">&lt;p&gt;Alex: /* Kompilacja OpenNI2 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Kinect + OpenNI2 + NiTE2 + freenect ==&lt;br /&gt;
&lt;br /&gt;
Należy pamiętać, żeby wszsstkie wystąpienia &amp;lt;code&amp;gt;{USER_NAME}&amp;lt;/code&amp;gt; w poniższym kodzie zamienić na właściwą nazwę użytkownika.&lt;br /&gt;
&lt;br /&gt;
Instalacja OpenNI 2 + NiTE 2 z prekonfigurowanych binarek dla Ubuntu 15.10:&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install freeglut3 python-opencv libboost-all-dev&lt;br /&gt;
 cd ~&lt;br /&gt;
 wget http://static.mroja.net/kinect/kinect.7z&lt;br /&gt;
 7z x kinect.7z&lt;br /&gt;
 cd ~/kinect&lt;br /&gt;
 sudo cp primesense-and-kinect-usb.rules /etc/udev/rules.d/557-primesense-usb.rules&lt;br /&gt;
 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/{USER_NAME}/kinect/Redist&lt;br /&gt;
 cd Redist&lt;br /&gt;
 ./NiViewer&lt;br /&gt;
&lt;br /&gt;
Linijkę &amp;lt;code&amp;gt;export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/{USER_NAME}/kinect/Redist&amp;lt;/code&amp;gt; najlepiej wrzucić do pliku &amp;lt;code&amp;gt;.profile&amp;lt;/code&amp;gt; lub &amp;lt;code&amp;gt;.bashrc&amp;lt;/code&amp;gt;, żeby uruchamiana była przy każdym logowaniu.&lt;br /&gt;
&lt;br /&gt;
Należy prawdzić czy użytkownik, na koncie którego będzie używany Kinect należy do grupy plugdev -- jeśli nie, dodać: &lt;br /&gt;
 sudo usermod -G plugdev -a {USER_NAME}&lt;br /&gt;
&lt;br /&gt;
Alternatywnie można zainstalować całość ze źródeł - instrukcja znajduje się na dole tej strony.&lt;br /&gt;
&lt;br /&gt;
=== Wrapper nite2 do Python + OpenBCI  ===&lt;br /&gt;
&lt;br /&gt;
Moduł do Pythona (plik &amp;lt;code&amp;gt;nite2.so&amp;lt;/code&amp;gt;) należy zbudować z repozytorium https://github.com/BrainTech/nite2-bindings i umieścić w katalogu &amp;lt;code&amp;gt;/usr/lib/python2.7/dist-packages&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Żeby NiTE2 działo poprawnie wewnątrz OpenBCI należy skopiować katalog NiTE2 (&amp;lt;code&amp;gt;~/kinect/Redist/NiTE2&amp;lt;/code&amp;gt;) do katalogu &amp;lt;code&amp;gt;~/.obci/sandbox&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
na koncie lab&lt;br /&gt;
&lt;br /&gt;
 cd ~/kinect/Redist&lt;br /&gt;
 cp /path_to_file/nite2.so nite2.so&lt;br /&gt;
&lt;br /&gt;
 cp -r /home/lab/kinect/Redist/NiTE2/ ~/.obci/sandbox/&lt;br /&gt;
&lt;br /&gt;
na koncie newtech&lt;br /&gt;
&lt;br /&gt;
 cd ~/kinect/Redist&lt;br /&gt;
 cp /path_to_file/nite2.so nite2.so&lt;br /&gt;
&lt;br /&gt;
 mkdir /home/newtech/.obci/  # jeśli katalog istnieje to pominąć&lt;br /&gt;
 mkdir /home/newtech/.obci/sandbox  # j.w.&lt;br /&gt;
&lt;br /&gt;
 cp -r /home/newtech/kinect/Redist/NiTE2/ ~/.obci/sandbox/&lt;br /&gt;
&lt;br /&gt;
== Instalacja xwiimote ==&lt;br /&gt;
&lt;br /&gt;
UWAGA!!! NIE NALEŻY instalować pakietu xwiimote z repozytoriów Debiana i Ubuntu - są one przestarzałe.&lt;br /&gt;
&lt;br /&gt;
Wymagane wersje:&lt;br /&gt;
* kernel &amp;gt;= 3.5+&lt;br /&gt;
* bluez &amp;gt;= 5.11+&lt;br /&gt;
&lt;br /&gt;
=== A) Instalacja wymaganych pakietów ===&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install autoconf autogen automake gcc bluetooth ncurses-dev libudev-dev libtool git blueman python-dev dh-autoreconf pkg-config swig&lt;br /&gt;
&lt;br /&gt;
=== B) xwiimote driver &amp;amp; utils ===&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/BrainTech/xwiimote&lt;br /&gt;
 cd xwiimote&lt;br /&gt;
 ./autogen.sh&lt;br /&gt;
 make&lt;br /&gt;
 sudo make install&lt;br /&gt;
 sudo ldconfig&lt;br /&gt;
&lt;br /&gt;
=== C) Python bindings ===&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/BrainTech/xwiimote-bindings&lt;br /&gt;
 cd xwiimote-bindings&lt;br /&gt;
 ./autogen.sh&lt;br /&gt;
 make&lt;br /&gt;
 sudo make install&lt;br /&gt;
 sudo ldconfig&lt;br /&gt;
&lt;br /&gt;
=== D) Żeby działało bez sudo ===&lt;br /&gt;
&lt;br /&gt;
Jeśli chcemy, żeby xwiimote dział bez sudo dla userów lab i newtech należy wykonać polecenia:&lt;br /&gt;
&lt;br /&gt;
 sudo usermod -a -G input newtech&lt;br /&gt;
 sudo usermod -a -G input lab&lt;br /&gt;
&lt;br /&gt;
=== E) Sparować urządzenie z użyciem wbudowanego do Ubuntu panelu Bluetooth ===&lt;br /&gt;
&lt;br /&gt;
=== F) Demo ===&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/BrainTech/wiiscale.git&lt;br /&gt;
 cd wiiscale&lt;br /&gt;
&lt;br /&gt;
Należy odkomentować linijki 134 i 135:&lt;br /&gt;
&lt;br /&gt;
 134: #        for m in measurements(iface):&lt;br /&gt;
 135: #            print_bboard_measurements(*m)&lt;br /&gt;
&lt;br /&gt;
Demo można uruchomić poleceniem:&lt;br /&gt;
&lt;br /&gt;
 python ./scale.py&lt;br /&gt;
&lt;br /&gt;
== Tobii REX eyetracker ==&lt;br /&gt;
&lt;br /&gt;
* zainstalować pakiet deb dla 64bit Linuxa z http://developer.tobii.com/rex-setup-gaze-sdk/&lt;br /&gt;
* poprosić Aleksa o kopię SDK&lt;br /&gt;
* w katalogu &amp;lt;code&amp;gt;Samples&amp;lt;/code&amp;gt; w SDK znajduje się demo (należy je zbudować poleceniem &amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
== Oprogramowanie do Kinecta ze źródeł ==&lt;br /&gt;
&lt;br /&gt;
Do pełnego działania Kinecta na Linuxie potrzebne są: OpenNI2, NiTE2, libfreenect z driverem do OpenNI2 oraz wrapper do Pythona - &amp;lt;code&amp;gt;nite2&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Firma PrimeSense, autor OpenNI, została wykupiona przez Apple'a. Następnie projekt OpenNI został utajniony. Ponieważ jest to opensource, kody źródłowe są nadal dostępne. Najbardziej aktywnym forkiem jest repozytorium prowadzone przez http://occipital.com, dostępne pod adresem https://github.com/occipital/OpenNI2.&lt;br /&gt;
&lt;br /&gt;
=== OpenNI2 ===&lt;br /&gt;
&lt;br /&gt;
OpenNI2 można zdobyć na dwa sposoby - zbudować ze źródeł lub pobrać binarki.&lt;br /&gt;
&lt;br /&gt;
==== Kompilacja OpenNI2 ====&lt;br /&gt;
&lt;br /&gt;
Instalacja wymagań&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install git g++ cmake python libudev-dev libxi-dev libxmu-dev libusb-1.0-0-dev libudev-dev freeglut3-dev doxygen graphviz&lt;br /&gt;
&lt;br /&gt;
Do kompilacji niezbędna jest Java (dokładniej &amp;lt;code&amp;gt;javac&amp;lt;/code&amp;gt;). Należy zainstalować jakiekolwiek JDK, np.:&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install openjdk-7-jdk&lt;br /&gt;
&lt;br /&gt;
Pobranie repozytorum i kompilacja&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/occipital/OpenNI2.git&lt;br /&gt;
 cd OpenNI2&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
Warto zapisać ścieżkę do OpenNI w zmiennej (i dodać do .profile lub .bashrc):&lt;br /&gt;
&lt;br /&gt;
 export OPENNI_DIR=&amp;quot;${PWD}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Instalacja OpenNI:&lt;br /&gt;
&lt;br /&gt;
 sudo ${OPENNI_DIR}/Packaging/Linux/install.sh&lt;br /&gt;
 sudo gpasswd -a ${USER} video&lt;br /&gt;
&lt;br /&gt;
==== Instalacja z binarek ====&lt;br /&gt;
&lt;br /&gt;
Należy pobrać binarny pakiet ze strony http://structure.io/openni i wypakować do katalogu np. &amp;lt;code&amp;gt;OpenNI-Linux-x64-2.2&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 $ cd OpenNI-Linux-x64-2.2&lt;br /&gt;
 $ sudo ./install.sh&lt;br /&gt;
&lt;br /&gt;
w aktualnym katalogu utworzy się skrypt &amp;lt;code&amp;gt;OpenNIDevEnvironment&amp;lt;/code&amp;gt;, który ustawia środowisko dev&lt;br /&gt;
&lt;br /&gt;
=== Kompilacja libfreenect ===&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/OpenKinect/libfreenect.git&lt;br /&gt;
 cd libfreenect&lt;br /&gt;
 mkdir build; cd build&lt;br /&gt;
 cmake .. -DBUILD_OPENNI2_DRIVER=ON&lt;br /&gt;
 make -j4&lt;br /&gt;
 cp -L lib/OpenNI2-FreenectDriver/libFreenectDriver.so ${OPENNI_DIR}/Bin/x64-Release/OpenNI2/Drivers/&lt;br /&gt;
&lt;br /&gt;
Test&lt;br /&gt;
&lt;br /&gt;
 cd ${OPENNI_DIR}/Bin/x64-Release/&lt;br /&gt;
 ./NiViewer&lt;br /&gt;
&lt;br /&gt;
=== Instalacja biblioteki NiTE2 ===&lt;br /&gt;
&lt;br /&gt;
NiTE od zawsze było oprogramowaniem bez dostępnych kodów źródłowych. Binarki można znaleźć tutaj: http://ilab.usc.edu/packages/forall/ubuntu-13.10/NiTE-Linux-x64-2.2.tar.bz2&lt;br /&gt;
 &lt;br /&gt;
 cd NiTE-Linux-x64-2.2&lt;br /&gt;
 sudo ./install.sh&lt;br /&gt;
&lt;br /&gt;
 cp -L /usr/local/lib/OpenNI2-FreenectDriver/libFreenectDriver.so NiTE-Linux-x64-2.2/Samples/Bin/OpenNI2/Drivers/&lt;/div&gt;</summary>
		<author><name>Alex</name></author>
		
	</entry>
	<entry>
		<id>http://brain.fuw.edu.pl/edu/index.php?title=Instalacja_i_konfiguracja_Kinect,_Wiimote_i_Eyetrackera&amp;diff=5020</id>
		<title>Instalacja i konfiguracja Kinect, Wiimote i Eyetrackera</title>
		<link rel="alternate" type="text/html" href="http://brain.fuw.edu.pl/edu/index.php?title=Instalacja_i_konfiguracja_Kinect,_Wiimote_i_Eyetrackera&amp;diff=5020"/>
		<updated>2016-03-23T11:53:50Z</updated>

		<summary type="html">&lt;p&gt;Alex: /* Kompilacja OpenNI2 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Kinect + OpenNI2 + NiTE2 + freenect ==&lt;br /&gt;
&lt;br /&gt;
Należy pamiętać, żeby wszsstkie wystąpienia &amp;lt;code&amp;gt;{USER_NAME}&amp;lt;/code&amp;gt; w poniższym kodzie zamienić na właściwą nazwę użytkownika.&lt;br /&gt;
&lt;br /&gt;
Instalacja OpenNI 2 + NiTE 2 z prekonfigurowanych binarek dla Ubuntu 15.10:&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install freeglut3 python-opencv libboost-all-dev&lt;br /&gt;
 cd ~&lt;br /&gt;
 wget http://static.mroja.net/kinect/kinect.7z&lt;br /&gt;
 7z x kinect.7z&lt;br /&gt;
 cd ~/kinect&lt;br /&gt;
 sudo cp primesense-and-kinect-usb.rules /etc/udev/rules.d/557-primesense-usb.rules&lt;br /&gt;
 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/{USER_NAME}/kinect/Redist&lt;br /&gt;
 cd Redist&lt;br /&gt;
 ./NiViewer&lt;br /&gt;
&lt;br /&gt;
Linijkę &amp;lt;code&amp;gt;export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/{USER_NAME}/kinect/Redist&amp;lt;/code&amp;gt; najlepiej wrzucić do pliku &amp;lt;code&amp;gt;.profile&amp;lt;/code&amp;gt; lub &amp;lt;code&amp;gt;.bashrc&amp;lt;/code&amp;gt;, żeby uruchamiana była przy każdym logowaniu.&lt;br /&gt;
&lt;br /&gt;
Należy prawdzić czy użytkownik, na koncie którego będzie używany Kinect należy do grupy plugdev -- jeśli nie, dodać: &lt;br /&gt;
 sudo usermod -G plugdev -a {USER_NAME}&lt;br /&gt;
&lt;br /&gt;
Alternatywnie można zainstalować całość ze źródeł - instrukcja znajduje się na dole tej strony.&lt;br /&gt;
&lt;br /&gt;
=== Wrapper nite2 do Python + OpenBCI  ===&lt;br /&gt;
&lt;br /&gt;
Moduł do Pythona (plik &amp;lt;code&amp;gt;nite2.so&amp;lt;/code&amp;gt;) należy zbudować z repozytorium https://github.com/BrainTech/nite2-bindings i umieścić w katalogu &amp;lt;code&amp;gt;/usr/lib/python2.7/dist-packages&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Żeby NiTE2 działo poprawnie wewnątrz OpenBCI należy skopiować katalog NiTE2 (&amp;lt;code&amp;gt;~/kinect/Redist/NiTE2&amp;lt;/code&amp;gt;) do katalogu &amp;lt;code&amp;gt;~/.obci/sandbox&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
na koncie lab&lt;br /&gt;
&lt;br /&gt;
 cd ~/kinect/Redist&lt;br /&gt;
 cp /path_to_file/nite2.so nite2.so&lt;br /&gt;
&lt;br /&gt;
 cp -r /home/lab/kinect/Redist/NiTE2/ ~/.obci/sandbox/&lt;br /&gt;
&lt;br /&gt;
na koncie newtech&lt;br /&gt;
&lt;br /&gt;
 cd ~/kinect/Redist&lt;br /&gt;
 cp /path_to_file/nite2.so nite2.so&lt;br /&gt;
&lt;br /&gt;
 mkdir /home/newtech/.obci/  # jeśli katalog istnieje to pominąć&lt;br /&gt;
 mkdir /home/newtech/.obci/sandbox  # j.w.&lt;br /&gt;
&lt;br /&gt;
 cp -r /home/newtech/kinect/Redist/NiTE2/ ~/.obci/sandbox/&lt;br /&gt;
&lt;br /&gt;
== Instalacja xwiimote ==&lt;br /&gt;
&lt;br /&gt;
UWAGA!!! NIE NALEŻY instalować pakietu xwiimote z repozytoriów Debiana i Ubuntu - są one przestarzałe.&lt;br /&gt;
&lt;br /&gt;
Wymagane wersje:&lt;br /&gt;
* kernel &amp;gt;= 3.5+&lt;br /&gt;
* bluez &amp;gt;= 5.11+&lt;br /&gt;
&lt;br /&gt;
=== A) Instalacja wymaganych pakietów ===&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install autoconf autogen automake gcc bluetooth ncurses-dev libudev-dev libtool git blueman python-dev dh-autoreconf pkg-config swig&lt;br /&gt;
&lt;br /&gt;
=== B) xwiimote driver &amp;amp; utils ===&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/BrainTech/xwiimote&lt;br /&gt;
 cd xwiimote&lt;br /&gt;
 ./autogen.sh&lt;br /&gt;
 make&lt;br /&gt;
 sudo make install&lt;br /&gt;
 sudo ldconfig&lt;br /&gt;
&lt;br /&gt;
=== C) Python bindings ===&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/BrainTech/xwiimote-bindings&lt;br /&gt;
 cd xwiimote-bindings&lt;br /&gt;
 ./autogen.sh&lt;br /&gt;
 make&lt;br /&gt;
 sudo make install&lt;br /&gt;
 sudo ldconfig&lt;br /&gt;
&lt;br /&gt;
=== D) Żeby działało bez sudo ===&lt;br /&gt;
&lt;br /&gt;
Jeśli chcemy, żeby xwiimote dział bez sudo dla userów lab i newtech należy wykonać polecenia:&lt;br /&gt;
&lt;br /&gt;
 sudo usermod -a -G input newtech&lt;br /&gt;
 sudo usermod -a -G input lab&lt;br /&gt;
&lt;br /&gt;
=== E) Sparować urządzenie z użyciem wbudowanego do Ubuntu panelu Bluetooth ===&lt;br /&gt;
&lt;br /&gt;
=== F) Demo ===&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/BrainTech/wiiscale.git&lt;br /&gt;
 cd wiiscale&lt;br /&gt;
&lt;br /&gt;
Należy odkomentować linijki 134 i 135:&lt;br /&gt;
&lt;br /&gt;
 134: #        for m in measurements(iface):&lt;br /&gt;
 135: #            print_bboard_measurements(*m)&lt;br /&gt;
&lt;br /&gt;
Demo można uruchomić poleceniem:&lt;br /&gt;
&lt;br /&gt;
 python ./scale.py&lt;br /&gt;
&lt;br /&gt;
== Tobii REX eyetracker ==&lt;br /&gt;
&lt;br /&gt;
* zainstalować pakiet deb dla 64bit Linuxa z http://developer.tobii.com/rex-setup-gaze-sdk/&lt;br /&gt;
* poprosić Aleksa o kopię SDK&lt;br /&gt;
* w katalogu &amp;lt;code&amp;gt;Samples&amp;lt;/code&amp;gt; w SDK znajduje się demo (należy je zbudować poleceniem &amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
== Oprogramowanie do Kinecta ze źródeł ==&lt;br /&gt;
&lt;br /&gt;
Do pełnego działania Kinecta na Linuxie potrzebne są: OpenNI2, NiTE2, libfreenect z driverem do OpenNI2 oraz wrapper do Pythona - &amp;lt;code&amp;gt;nite2&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Firma PrimeSense, autor OpenNI, została wykupiona przez Apple'a. Następnie projekt OpenNI został utajniony. Ponieważ jest to opensource, kody źródłowe są nadal dostępne. Najbardziej aktywnym forkiem jest repozytorium prowadzone przez http://occipital.com, dostępne pod adresem https://github.com/occipital/OpenNI2.&lt;br /&gt;
&lt;br /&gt;
=== OpenNI2 ===&lt;br /&gt;
&lt;br /&gt;
OpenNI2 można zdobyć na dwa sposoby - zbudować ze źródeł lub pobrać binarki.&lt;br /&gt;
&lt;br /&gt;
==== Kompilacja OpenNI2 ====&lt;br /&gt;
&lt;br /&gt;
Instalacja wymagań&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install git g++ cmake python libudev-dev libxi-dev libxmu-dev libusb-1.0-0-dev libudev-dev freeglut3-dev doxygen graphviz&lt;br /&gt;
&lt;br /&gt;
Do kompilacji niezbędna jest Java (dokładniej &amp;lt;code&amp;gt;javac&amp;lt;/code&amp;gt;). Należy zainstalować jakiekolwiek JDK, np.:&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install openjdk-7-jdk&lt;br /&gt;
&lt;br /&gt;
Pobranie repozytorum i kompilacja&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/occipital/OpenNI2.git&lt;br /&gt;
 cd OpenNI2&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
Warto zapisać ścieżkę do OpenNI w zmiennej (i dodać do .profile lub .bashrc):&lt;br /&gt;
&lt;br /&gt;
 export OPENNI_DIR=&amp;quot;${PWD}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;LDFLAGS += -lpthread&amp;quot; &amp;gt;&amp;gt; ${OPENNI_DIR}/Source/Tools/NiViewer/Makefile&lt;br /&gt;
 make&lt;br /&gt;
 sudo ${OPENNI_DIR}/Packaging/Linux/install.sh&lt;br /&gt;
 sudo gpasswd -a ${USER} video&lt;br /&gt;
&lt;br /&gt;
==== Instalacja z binarek ====&lt;br /&gt;
&lt;br /&gt;
Należy pobrać binarny pakiet ze strony http://structure.io/openni i wypakować do katalogu np. &amp;lt;code&amp;gt;OpenNI-Linux-x64-2.2&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 $ cd OpenNI-Linux-x64-2.2&lt;br /&gt;
 $ sudo ./install.sh&lt;br /&gt;
&lt;br /&gt;
w aktualnym katalogu utworzy się skrypt &amp;lt;code&amp;gt;OpenNIDevEnvironment&amp;lt;/code&amp;gt;, który ustawia środowisko dev&lt;br /&gt;
&lt;br /&gt;
=== Kompilacja libfreenect ===&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/OpenKinect/libfreenect.git&lt;br /&gt;
 cd libfreenect&lt;br /&gt;
 mkdir build; cd build&lt;br /&gt;
 cmake .. -DBUILD_OPENNI2_DRIVER=ON&lt;br /&gt;
 make -j4&lt;br /&gt;
 cp -L lib/OpenNI2-FreenectDriver/libFreenectDriver.so ${OPENNI_DIR}/Bin/x64-Release/OpenNI2/Drivers/&lt;br /&gt;
&lt;br /&gt;
Test&lt;br /&gt;
&lt;br /&gt;
 cd ${OPENNI_DIR}/Bin/x64-Release/&lt;br /&gt;
 ./NiViewer&lt;br /&gt;
&lt;br /&gt;
=== Instalacja biblioteki NiTE2 ===&lt;br /&gt;
&lt;br /&gt;
NiTE od zawsze było oprogramowaniem bez dostępnych kodów źródłowych. Binarki można znaleźć tutaj: http://ilab.usc.edu/packages/forall/ubuntu-13.10/NiTE-Linux-x64-2.2.tar.bz2&lt;br /&gt;
 &lt;br /&gt;
 cd NiTE-Linux-x64-2.2&lt;br /&gt;
 sudo ./install.sh&lt;br /&gt;
&lt;br /&gt;
 cp -L /usr/local/lib/OpenNI2-FreenectDriver/libFreenectDriver.so NiTE-Linux-x64-2.2/Samples/Bin/OpenNI2/Drivers/&lt;/div&gt;</summary>
		<author><name>Alex</name></author>
		
	</entry>
	<entry>
		<id>http://brain.fuw.edu.pl/edu/index.php?title=Instalacja_i_konfiguracja_Kinect,_Wiimote_i_Eyetrackera&amp;diff=5019</id>
		<title>Instalacja i konfiguracja Kinect, Wiimote i Eyetrackera</title>
		<link rel="alternate" type="text/html" href="http://brain.fuw.edu.pl/edu/index.php?title=Instalacja_i_konfiguracja_Kinect,_Wiimote_i_Eyetrackera&amp;diff=5019"/>
		<updated>2016-03-23T11:53:15Z</updated>

		<summary type="html">&lt;p&gt;Alex: /* Kompilacja OpenNI2 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Kinect + OpenNI2 + NiTE2 + freenect ==&lt;br /&gt;
&lt;br /&gt;
Należy pamiętać, żeby wszsstkie wystąpienia &amp;lt;code&amp;gt;{USER_NAME}&amp;lt;/code&amp;gt; w poniższym kodzie zamienić na właściwą nazwę użytkownika.&lt;br /&gt;
&lt;br /&gt;
Instalacja OpenNI 2 + NiTE 2 z prekonfigurowanych binarek dla Ubuntu 15.10:&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install freeglut3 python-opencv libboost-all-dev&lt;br /&gt;
 cd ~&lt;br /&gt;
 wget http://static.mroja.net/kinect/kinect.7z&lt;br /&gt;
 7z x kinect.7z&lt;br /&gt;
 cd ~/kinect&lt;br /&gt;
 sudo cp primesense-and-kinect-usb.rules /etc/udev/rules.d/557-primesense-usb.rules&lt;br /&gt;
 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/{USER_NAME}/kinect/Redist&lt;br /&gt;
 cd Redist&lt;br /&gt;
 ./NiViewer&lt;br /&gt;
&lt;br /&gt;
Linijkę &amp;lt;code&amp;gt;export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/{USER_NAME}/kinect/Redist&amp;lt;/code&amp;gt; najlepiej wrzucić do pliku &amp;lt;code&amp;gt;.profile&amp;lt;/code&amp;gt; lub &amp;lt;code&amp;gt;.bashrc&amp;lt;/code&amp;gt;, żeby uruchamiana była przy każdym logowaniu.&lt;br /&gt;
&lt;br /&gt;
Należy prawdzić czy użytkownik, na koncie którego będzie używany Kinect należy do grupy plugdev -- jeśli nie, dodać: &lt;br /&gt;
 sudo usermod -G plugdev -a {USER_NAME}&lt;br /&gt;
&lt;br /&gt;
Alternatywnie można zainstalować całość ze źródeł - instrukcja znajduje się na dole tej strony.&lt;br /&gt;
&lt;br /&gt;
=== Wrapper nite2 do Python + OpenBCI  ===&lt;br /&gt;
&lt;br /&gt;
Moduł do Pythona (plik &amp;lt;code&amp;gt;nite2.so&amp;lt;/code&amp;gt;) należy zbudować z repozytorium https://github.com/BrainTech/nite2-bindings i umieścić w katalogu &amp;lt;code&amp;gt;/usr/lib/python2.7/dist-packages&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Żeby NiTE2 działo poprawnie wewnątrz OpenBCI należy skopiować katalog NiTE2 (&amp;lt;code&amp;gt;~/kinect/Redist/NiTE2&amp;lt;/code&amp;gt;) do katalogu &amp;lt;code&amp;gt;~/.obci/sandbox&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
na koncie lab&lt;br /&gt;
&lt;br /&gt;
 cd ~/kinect/Redist&lt;br /&gt;
 cp /path_to_file/nite2.so nite2.so&lt;br /&gt;
&lt;br /&gt;
 cp -r /home/lab/kinect/Redist/NiTE2/ ~/.obci/sandbox/&lt;br /&gt;
&lt;br /&gt;
na koncie newtech&lt;br /&gt;
&lt;br /&gt;
 cd ~/kinect/Redist&lt;br /&gt;
 cp /path_to_file/nite2.so nite2.so&lt;br /&gt;
&lt;br /&gt;
 mkdir /home/newtech/.obci/  # jeśli katalog istnieje to pominąć&lt;br /&gt;
 mkdir /home/newtech/.obci/sandbox  # j.w.&lt;br /&gt;
&lt;br /&gt;
 cp -r /home/newtech/kinect/Redist/NiTE2/ ~/.obci/sandbox/&lt;br /&gt;
&lt;br /&gt;
== Instalacja xwiimote ==&lt;br /&gt;
&lt;br /&gt;
UWAGA!!! NIE NALEŻY instalować pakietu xwiimote z repozytoriów Debiana i Ubuntu - są one przestarzałe.&lt;br /&gt;
&lt;br /&gt;
Wymagane wersje:&lt;br /&gt;
* kernel &amp;gt;= 3.5+&lt;br /&gt;
* bluez &amp;gt;= 5.11+&lt;br /&gt;
&lt;br /&gt;
=== A) Instalacja wymaganych pakietów ===&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install autoconf autogen automake gcc bluetooth ncurses-dev libudev-dev libtool git blueman python-dev dh-autoreconf pkg-config swig&lt;br /&gt;
&lt;br /&gt;
=== B) xwiimote driver &amp;amp; utils ===&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/BrainTech/xwiimote&lt;br /&gt;
 cd xwiimote&lt;br /&gt;
 ./autogen.sh&lt;br /&gt;
 make&lt;br /&gt;
 sudo make install&lt;br /&gt;
 sudo ldconfig&lt;br /&gt;
&lt;br /&gt;
=== C) Python bindings ===&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/BrainTech/xwiimote-bindings&lt;br /&gt;
 cd xwiimote-bindings&lt;br /&gt;
 ./autogen.sh&lt;br /&gt;
 make&lt;br /&gt;
 sudo make install&lt;br /&gt;
 sudo ldconfig&lt;br /&gt;
&lt;br /&gt;
=== D) Żeby działało bez sudo ===&lt;br /&gt;
&lt;br /&gt;
Jeśli chcemy, żeby xwiimote dział bez sudo dla userów lab i newtech należy wykonać polecenia:&lt;br /&gt;
&lt;br /&gt;
 sudo usermod -a -G input newtech&lt;br /&gt;
 sudo usermod -a -G input lab&lt;br /&gt;
&lt;br /&gt;
=== E) Sparować urządzenie z użyciem wbudowanego do Ubuntu panelu Bluetooth ===&lt;br /&gt;
&lt;br /&gt;
=== F) Demo ===&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/BrainTech/wiiscale.git&lt;br /&gt;
 cd wiiscale&lt;br /&gt;
&lt;br /&gt;
Należy odkomentować linijki 134 i 135:&lt;br /&gt;
&lt;br /&gt;
 134: #        for m in measurements(iface):&lt;br /&gt;
 135: #            print_bboard_measurements(*m)&lt;br /&gt;
&lt;br /&gt;
Demo można uruchomić poleceniem:&lt;br /&gt;
&lt;br /&gt;
 python ./scale.py&lt;br /&gt;
&lt;br /&gt;
== Tobii REX eyetracker ==&lt;br /&gt;
&lt;br /&gt;
* zainstalować pakiet deb dla 64bit Linuxa z http://developer.tobii.com/rex-setup-gaze-sdk/&lt;br /&gt;
* poprosić Aleksa o kopię SDK&lt;br /&gt;
* w katalogu &amp;lt;code&amp;gt;Samples&amp;lt;/code&amp;gt; w SDK znajduje się demo (należy je zbudować poleceniem &amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
== Oprogramowanie do Kinecta ze źródeł ==&lt;br /&gt;
&lt;br /&gt;
Do pełnego działania Kinecta na Linuxie potrzebne są: OpenNI2, NiTE2, libfreenect z driverem do OpenNI2 oraz wrapper do Pythona - &amp;lt;code&amp;gt;nite2&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Firma PrimeSense, autor OpenNI, została wykupiona przez Apple'a. Następnie projekt OpenNI został utajniony. Ponieważ jest to opensource, kody źródłowe są nadal dostępne. Najbardziej aktywnym forkiem jest repozytorium prowadzone przez http://occipital.com, dostępne pod adresem https://github.com/occipital/OpenNI2.&lt;br /&gt;
&lt;br /&gt;
=== OpenNI2 ===&lt;br /&gt;
&lt;br /&gt;
OpenNI2 można zdobyć na dwa sposoby - zbudować ze źródeł lub pobrać binarki.&lt;br /&gt;
&lt;br /&gt;
==== Kompilacja OpenNI2 ====&lt;br /&gt;
&lt;br /&gt;
Instalacja wymagań&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install git g++ cmake libudev-dev libxi-dev libxmu-dev python libusb-1.0-0-dev libudev-dev freeglut3-dev doxygen graphviz&lt;br /&gt;
&lt;br /&gt;
Do kompilacji niezbędna jest Java (dokładniej &amp;lt;code&amp;gt;javac&amp;lt;/code&amp;gt;). Należy zainstalować jakiekolwiek JDK, np.:&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install openjdk-7-jdk&lt;br /&gt;
&lt;br /&gt;
Pobranie repozytorum i kompilacja&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/occipital/OpenNI2.git&lt;br /&gt;
 cd OpenNI2&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
Warto zapisać ścieżkę do OpenNI w zmiennej (i dodać do .profile lub .bashrc):&lt;br /&gt;
&lt;br /&gt;
 export OPENNI_DIR=&amp;quot;${PWD}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;LDFLAGS += -lpthread&amp;quot; &amp;gt;&amp;gt; ${OPENNI_DIR}/Source/Tools/NiViewer/Makefile&lt;br /&gt;
 make&lt;br /&gt;
 sudo ${OPENNI_DIR}/Packaging/Linux/install.sh&lt;br /&gt;
 sudo gpasswd -a ${USER} video&lt;br /&gt;
&lt;br /&gt;
==== Instalacja z binarek ====&lt;br /&gt;
&lt;br /&gt;
Należy pobrać binarny pakiet ze strony http://structure.io/openni i wypakować do katalogu np. &amp;lt;code&amp;gt;OpenNI-Linux-x64-2.2&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 $ cd OpenNI-Linux-x64-2.2&lt;br /&gt;
 $ sudo ./install.sh&lt;br /&gt;
&lt;br /&gt;
w aktualnym katalogu utworzy się skrypt &amp;lt;code&amp;gt;OpenNIDevEnvironment&amp;lt;/code&amp;gt;, który ustawia środowisko dev&lt;br /&gt;
&lt;br /&gt;
=== Kompilacja libfreenect ===&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/OpenKinect/libfreenect.git&lt;br /&gt;
 cd libfreenect&lt;br /&gt;
 mkdir build; cd build&lt;br /&gt;
 cmake .. -DBUILD_OPENNI2_DRIVER=ON&lt;br /&gt;
 make -j4&lt;br /&gt;
 cp -L lib/OpenNI2-FreenectDriver/libFreenectDriver.so ${OPENNI_DIR}/Bin/x64-Release/OpenNI2/Drivers/&lt;br /&gt;
&lt;br /&gt;
Test&lt;br /&gt;
&lt;br /&gt;
 cd ${OPENNI_DIR}/Bin/x64-Release/&lt;br /&gt;
 ./NiViewer&lt;br /&gt;
&lt;br /&gt;
=== Instalacja biblioteki NiTE2 ===&lt;br /&gt;
&lt;br /&gt;
NiTE od zawsze było oprogramowaniem bez dostępnych kodów źródłowych. Binarki można znaleźć tutaj: http://ilab.usc.edu/packages/forall/ubuntu-13.10/NiTE-Linux-x64-2.2.tar.bz2&lt;br /&gt;
 &lt;br /&gt;
 cd NiTE-Linux-x64-2.2&lt;br /&gt;
 sudo ./install.sh&lt;br /&gt;
&lt;br /&gt;
 cp -L /usr/local/lib/OpenNI2-FreenectDriver/libFreenectDriver.so NiTE-Linux-x64-2.2/Samples/Bin/OpenNI2/Drivers/&lt;/div&gt;</summary>
		<author><name>Alex</name></author>
		
	</entry>
	<entry>
		<id>http://brain.fuw.edu.pl/edu/index.php?title=Instalacja_i_konfiguracja_Kinect,_Wiimote_i_Eyetrackera&amp;diff=5018</id>
		<title>Instalacja i konfiguracja Kinect, Wiimote i Eyetrackera</title>
		<link rel="alternate" type="text/html" href="http://brain.fuw.edu.pl/edu/index.php?title=Instalacja_i_konfiguracja_Kinect,_Wiimote_i_Eyetrackera&amp;diff=5018"/>
		<updated>2016-03-23T11:52:39Z</updated>

		<summary type="html">&lt;p&gt;Alex: /* Kompilacja OpenNI2 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Kinect + OpenNI2 + NiTE2 + freenect ==&lt;br /&gt;
&lt;br /&gt;
Należy pamiętać, żeby wszsstkie wystąpienia &amp;lt;code&amp;gt;{USER_NAME}&amp;lt;/code&amp;gt; w poniższym kodzie zamienić na właściwą nazwę użytkownika.&lt;br /&gt;
&lt;br /&gt;
Instalacja OpenNI 2 + NiTE 2 z prekonfigurowanych binarek dla Ubuntu 15.10:&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install freeglut3 python-opencv libboost-all-dev&lt;br /&gt;
 cd ~&lt;br /&gt;
 wget http://static.mroja.net/kinect/kinect.7z&lt;br /&gt;
 7z x kinect.7z&lt;br /&gt;
 cd ~/kinect&lt;br /&gt;
 sudo cp primesense-and-kinect-usb.rules /etc/udev/rules.d/557-primesense-usb.rules&lt;br /&gt;
 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/{USER_NAME}/kinect/Redist&lt;br /&gt;
 cd Redist&lt;br /&gt;
 ./NiViewer&lt;br /&gt;
&lt;br /&gt;
Linijkę &amp;lt;code&amp;gt;export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/{USER_NAME}/kinect/Redist&amp;lt;/code&amp;gt; najlepiej wrzucić do pliku &amp;lt;code&amp;gt;.profile&amp;lt;/code&amp;gt; lub &amp;lt;code&amp;gt;.bashrc&amp;lt;/code&amp;gt;, żeby uruchamiana była przy każdym logowaniu.&lt;br /&gt;
&lt;br /&gt;
Należy prawdzić czy użytkownik, na koncie którego będzie używany Kinect należy do grupy plugdev -- jeśli nie, dodać: &lt;br /&gt;
 sudo usermod -G plugdev -a {USER_NAME}&lt;br /&gt;
&lt;br /&gt;
Alternatywnie można zainstalować całość ze źródeł - instrukcja znajduje się na dole tej strony.&lt;br /&gt;
&lt;br /&gt;
=== Wrapper nite2 do Python + OpenBCI  ===&lt;br /&gt;
&lt;br /&gt;
Moduł do Pythona (plik &amp;lt;code&amp;gt;nite2.so&amp;lt;/code&amp;gt;) należy zbudować z repozytorium https://github.com/BrainTech/nite2-bindings i umieścić w katalogu &amp;lt;code&amp;gt;/usr/lib/python2.7/dist-packages&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Żeby NiTE2 działo poprawnie wewnątrz OpenBCI należy skopiować katalog NiTE2 (&amp;lt;code&amp;gt;~/kinect/Redist/NiTE2&amp;lt;/code&amp;gt;) do katalogu &amp;lt;code&amp;gt;~/.obci/sandbox&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
na koncie lab&lt;br /&gt;
&lt;br /&gt;
 cd ~/kinect/Redist&lt;br /&gt;
 cp /path_to_file/nite2.so nite2.so&lt;br /&gt;
&lt;br /&gt;
 cp -r /home/lab/kinect/Redist/NiTE2/ ~/.obci/sandbox/&lt;br /&gt;
&lt;br /&gt;
na koncie newtech&lt;br /&gt;
&lt;br /&gt;
 cd ~/kinect/Redist&lt;br /&gt;
 cp /path_to_file/nite2.so nite2.so&lt;br /&gt;
&lt;br /&gt;
 mkdir /home/newtech/.obci/  # jeśli katalog istnieje to pominąć&lt;br /&gt;
 mkdir /home/newtech/.obci/sandbox  # j.w.&lt;br /&gt;
&lt;br /&gt;
 cp -r /home/newtech/kinect/Redist/NiTE2/ ~/.obci/sandbox/&lt;br /&gt;
&lt;br /&gt;
== Instalacja xwiimote ==&lt;br /&gt;
&lt;br /&gt;
UWAGA!!! NIE NALEŻY instalować pakietu xwiimote z repozytoriów Debiana i Ubuntu - są one przestarzałe.&lt;br /&gt;
&lt;br /&gt;
Wymagane wersje:&lt;br /&gt;
* kernel &amp;gt;= 3.5+&lt;br /&gt;
* bluez &amp;gt;= 5.11+&lt;br /&gt;
&lt;br /&gt;
=== A) Instalacja wymaganych pakietów ===&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install autoconf autogen automake gcc bluetooth ncurses-dev libudev-dev libtool git blueman python-dev dh-autoreconf pkg-config swig&lt;br /&gt;
&lt;br /&gt;
=== B) xwiimote driver &amp;amp; utils ===&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/BrainTech/xwiimote&lt;br /&gt;
 cd xwiimote&lt;br /&gt;
 ./autogen.sh&lt;br /&gt;
 make&lt;br /&gt;
 sudo make install&lt;br /&gt;
 sudo ldconfig&lt;br /&gt;
&lt;br /&gt;
=== C) Python bindings ===&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/BrainTech/xwiimote-bindings&lt;br /&gt;
 cd xwiimote-bindings&lt;br /&gt;
 ./autogen.sh&lt;br /&gt;
 make&lt;br /&gt;
 sudo make install&lt;br /&gt;
 sudo ldconfig&lt;br /&gt;
&lt;br /&gt;
=== D) Żeby działało bez sudo ===&lt;br /&gt;
&lt;br /&gt;
Jeśli chcemy, żeby xwiimote dział bez sudo dla userów lab i newtech należy wykonać polecenia:&lt;br /&gt;
&lt;br /&gt;
 sudo usermod -a -G input newtech&lt;br /&gt;
 sudo usermod -a -G input lab&lt;br /&gt;
&lt;br /&gt;
=== E) Sparować urządzenie z użyciem wbudowanego do Ubuntu panelu Bluetooth ===&lt;br /&gt;
&lt;br /&gt;
=== F) Demo ===&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/BrainTech/wiiscale.git&lt;br /&gt;
 cd wiiscale&lt;br /&gt;
&lt;br /&gt;
Należy odkomentować linijki 134 i 135:&lt;br /&gt;
&lt;br /&gt;
 134: #        for m in measurements(iface):&lt;br /&gt;
 135: #            print_bboard_measurements(*m)&lt;br /&gt;
&lt;br /&gt;
Demo można uruchomić poleceniem:&lt;br /&gt;
&lt;br /&gt;
 python ./scale.py&lt;br /&gt;
&lt;br /&gt;
== Tobii REX eyetracker ==&lt;br /&gt;
&lt;br /&gt;
* zainstalować pakiet deb dla 64bit Linuxa z http://developer.tobii.com/rex-setup-gaze-sdk/&lt;br /&gt;
* poprosić Aleksa o kopię SDK&lt;br /&gt;
* w katalogu &amp;lt;code&amp;gt;Samples&amp;lt;/code&amp;gt; w SDK znajduje się demo (należy je zbudować poleceniem &amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
== Oprogramowanie do Kinecta ze źródeł ==&lt;br /&gt;
&lt;br /&gt;
Do pełnego działania Kinecta na Linuxie potrzebne są: OpenNI2, NiTE2, libfreenect z driverem do OpenNI2 oraz wrapper do Pythona - &amp;lt;code&amp;gt;nite2&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Firma PrimeSense, autor OpenNI, została wykupiona przez Apple'a. Następnie projekt OpenNI został utajniony. Ponieważ jest to opensource, kody źródłowe są nadal dostępne. Najbardziej aktywnym forkiem jest repozytorium prowadzone przez http://occipital.com, dostępne pod adresem https://github.com/occipital/OpenNI2.&lt;br /&gt;
&lt;br /&gt;
=== OpenNI2 ===&lt;br /&gt;
&lt;br /&gt;
OpenNI2 można zdobyć na dwa sposoby - zbudować ze źródeł lub pobrać binarki.&lt;br /&gt;
&lt;br /&gt;
==== Kompilacja OpenNI2 ====&lt;br /&gt;
&lt;br /&gt;
Instalacja wymagań&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install git g++ cmake libudev-dev libxi-dev libxmu-dev python libusb-1.0-0-dev libudev-dev freeglut3-dev doxygen graphviz&lt;br /&gt;
&lt;br /&gt;
Do kompilacji niezbędna będzie Java. Należy zainstalować jakiekolwiek JDK, np.:&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install openjdk-7-jdk&lt;br /&gt;
&lt;br /&gt;
Pobranie repozytorum i kompilacja&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/occipital/OpenNI2.git&lt;br /&gt;
 cd OpenNI2&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
Warto zapisać ścieżkę do OpenNI w zmiennej (i dodać do .profile lub .bashrc):&lt;br /&gt;
&lt;br /&gt;
 export OPENNI_DIR=&amp;quot;${PWD}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;LDFLAGS += -lpthread&amp;quot; &amp;gt;&amp;gt; ${OPENNI_DIR}/Source/Tools/NiViewer/Makefile&lt;br /&gt;
 make&lt;br /&gt;
 sudo ${OPENNI_DIR}/Packaging/Linux/install.sh&lt;br /&gt;
 sudo gpasswd -a ${USER} video&lt;br /&gt;
&lt;br /&gt;
==== Instalacja z binarek ====&lt;br /&gt;
&lt;br /&gt;
Należy pobrać binarny pakiet ze strony http://structure.io/openni i wypakować do katalogu np. &amp;lt;code&amp;gt;OpenNI-Linux-x64-2.2&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 $ cd OpenNI-Linux-x64-2.2&lt;br /&gt;
 $ sudo ./install.sh&lt;br /&gt;
&lt;br /&gt;
w aktualnym katalogu utworzy się skrypt &amp;lt;code&amp;gt;OpenNIDevEnvironment&amp;lt;/code&amp;gt;, który ustawia środowisko dev&lt;br /&gt;
&lt;br /&gt;
=== Kompilacja libfreenect ===&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/OpenKinect/libfreenect.git&lt;br /&gt;
 cd libfreenect&lt;br /&gt;
 mkdir build; cd build&lt;br /&gt;
 cmake .. -DBUILD_OPENNI2_DRIVER=ON&lt;br /&gt;
 make -j4&lt;br /&gt;
 cp -L lib/OpenNI2-FreenectDriver/libFreenectDriver.so ${OPENNI_DIR}/Bin/x64-Release/OpenNI2/Drivers/&lt;br /&gt;
&lt;br /&gt;
Test&lt;br /&gt;
&lt;br /&gt;
 cd ${OPENNI_DIR}/Bin/x64-Release/&lt;br /&gt;
 ./NiViewer&lt;br /&gt;
&lt;br /&gt;
=== Instalacja biblioteki NiTE2 ===&lt;br /&gt;
&lt;br /&gt;
NiTE od zawsze było oprogramowaniem bez dostępnych kodów źródłowych. Binarki można znaleźć tutaj: http://ilab.usc.edu/packages/forall/ubuntu-13.10/NiTE-Linux-x64-2.2.tar.bz2&lt;br /&gt;
 &lt;br /&gt;
 cd NiTE-Linux-x64-2.2&lt;br /&gt;
 sudo ./install.sh&lt;br /&gt;
&lt;br /&gt;
 cp -L /usr/local/lib/OpenNI2-FreenectDriver/libFreenectDriver.so NiTE-Linux-x64-2.2/Samples/Bin/OpenNI2/Drivers/&lt;/div&gt;</summary>
		<author><name>Alex</name></author>
		
	</entry>
	<entry>
		<id>http://brain.fuw.edu.pl/edu/index.php?title=Instalacja_i_konfiguracja_Kinect,_Wiimote_i_Eyetrackera&amp;diff=5017</id>
		<title>Instalacja i konfiguracja Kinect, Wiimote i Eyetrackera</title>
		<link rel="alternate" type="text/html" href="http://brain.fuw.edu.pl/edu/index.php?title=Instalacja_i_konfiguracja_Kinect,_Wiimote_i_Eyetrackera&amp;diff=5017"/>
		<updated>2016-03-23T11:52:17Z</updated>

		<summary type="html">&lt;p&gt;Alex: /* Kompilacja OpenNI2 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Kinect + OpenNI2 + NiTE2 + freenect ==&lt;br /&gt;
&lt;br /&gt;
Należy pamiętać, żeby wszsstkie wystąpienia &amp;lt;code&amp;gt;{USER_NAME}&amp;lt;/code&amp;gt; w poniższym kodzie zamienić na właściwą nazwę użytkownika.&lt;br /&gt;
&lt;br /&gt;
Instalacja OpenNI 2 + NiTE 2 z prekonfigurowanych binarek dla Ubuntu 15.10:&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install freeglut3 python-opencv libboost-all-dev&lt;br /&gt;
 cd ~&lt;br /&gt;
 wget http://static.mroja.net/kinect/kinect.7z&lt;br /&gt;
 7z x kinect.7z&lt;br /&gt;
 cd ~/kinect&lt;br /&gt;
 sudo cp primesense-and-kinect-usb.rules /etc/udev/rules.d/557-primesense-usb.rules&lt;br /&gt;
 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/{USER_NAME}/kinect/Redist&lt;br /&gt;
 cd Redist&lt;br /&gt;
 ./NiViewer&lt;br /&gt;
&lt;br /&gt;
Linijkę &amp;lt;code&amp;gt;export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/{USER_NAME}/kinect/Redist&amp;lt;/code&amp;gt; najlepiej wrzucić do pliku &amp;lt;code&amp;gt;.profile&amp;lt;/code&amp;gt; lub &amp;lt;code&amp;gt;.bashrc&amp;lt;/code&amp;gt;, żeby uruchamiana była przy każdym logowaniu.&lt;br /&gt;
&lt;br /&gt;
Należy prawdzić czy użytkownik, na koncie którego będzie używany Kinect należy do grupy plugdev -- jeśli nie, dodać: &lt;br /&gt;
 sudo usermod -G plugdev -a {USER_NAME}&lt;br /&gt;
&lt;br /&gt;
Alternatywnie można zainstalować całość ze źródeł - instrukcja znajduje się na dole tej strony.&lt;br /&gt;
&lt;br /&gt;
=== Wrapper nite2 do Python + OpenBCI  ===&lt;br /&gt;
&lt;br /&gt;
Moduł do Pythona (plik &amp;lt;code&amp;gt;nite2.so&amp;lt;/code&amp;gt;) należy zbudować z repozytorium https://github.com/BrainTech/nite2-bindings i umieścić w katalogu &amp;lt;code&amp;gt;/usr/lib/python2.7/dist-packages&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Żeby NiTE2 działo poprawnie wewnątrz OpenBCI należy skopiować katalog NiTE2 (&amp;lt;code&amp;gt;~/kinect/Redist/NiTE2&amp;lt;/code&amp;gt;) do katalogu &amp;lt;code&amp;gt;~/.obci/sandbox&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
na koncie lab&lt;br /&gt;
&lt;br /&gt;
 cd ~/kinect/Redist&lt;br /&gt;
 cp /path_to_file/nite2.so nite2.so&lt;br /&gt;
&lt;br /&gt;
 cp -r /home/lab/kinect/Redist/NiTE2/ ~/.obci/sandbox/&lt;br /&gt;
&lt;br /&gt;
na koncie newtech&lt;br /&gt;
&lt;br /&gt;
 cd ~/kinect/Redist&lt;br /&gt;
 cp /path_to_file/nite2.so nite2.so&lt;br /&gt;
&lt;br /&gt;
 mkdir /home/newtech/.obci/  # jeśli katalog istnieje to pominąć&lt;br /&gt;
 mkdir /home/newtech/.obci/sandbox  # j.w.&lt;br /&gt;
&lt;br /&gt;
 cp -r /home/newtech/kinect/Redist/NiTE2/ ~/.obci/sandbox/&lt;br /&gt;
&lt;br /&gt;
== Instalacja xwiimote ==&lt;br /&gt;
&lt;br /&gt;
UWAGA!!! NIE NALEŻY instalować pakietu xwiimote z repozytoriów Debiana i Ubuntu - są one przestarzałe.&lt;br /&gt;
&lt;br /&gt;
Wymagane wersje:&lt;br /&gt;
* kernel &amp;gt;= 3.5+&lt;br /&gt;
* bluez &amp;gt;= 5.11+&lt;br /&gt;
&lt;br /&gt;
=== A) Instalacja wymaganych pakietów ===&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install autoconf autogen automake gcc bluetooth ncurses-dev libudev-dev libtool git blueman python-dev dh-autoreconf pkg-config swig&lt;br /&gt;
&lt;br /&gt;
=== B) xwiimote driver &amp;amp; utils ===&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/BrainTech/xwiimote&lt;br /&gt;
 cd xwiimote&lt;br /&gt;
 ./autogen.sh&lt;br /&gt;
 make&lt;br /&gt;
 sudo make install&lt;br /&gt;
 sudo ldconfig&lt;br /&gt;
&lt;br /&gt;
=== C) Python bindings ===&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/BrainTech/xwiimote-bindings&lt;br /&gt;
 cd xwiimote-bindings&lt;br /&gt;
 ./autogen.sh&lt;br /&gt;
 make&lt;br /&gt;
 sudo make install&lt;br /&gt;
 sudo ldconfig&lt;br /&gt;
&lt;br /&gt;
=== D) Żeby działało bez sudo ===&lt;br /&gt;
&lt;br /&gt;
Jeśli chcemy, żeby xwiimote dział bez sudo dla userów lab i newtech należy wykonać polecenia:&lt;br /&gt;
&lt;br /&gt;
 sudo usermod -a -G input newtech&lt;br /&gt;
 sudo usermod -a -G input lab&lt;br /&gt;
&lt;br /&gt;
=== E) Sparować urządzenie z użyciem wbudowanego do Ubuntu panelu Bluetooth ===&lt;br /&gt;
&lt;br /&gt;
=== F) Demo ===&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/BrainTech/wiiscale.git&lt;br /&gt;
 cd wiiscale&lt;br /&gt;
&lt;br /&gt;
Należy odkomentować linijki 134 i 135:&lt;br /&gt;
&lt;br /&gt;
 134: #        for m in measurements(iface):&lt;br /&gt;
 135: #            print_bboard_measurements(*m)&lt;br /&gt;
&lt;br /&gt;
Demo można uruchomić poleceniem:&lt;br /&gt;
&lt;br /&gt;
 python ./scale.py&lt;br /&gt;
&lt;br /&gt;
== Tobii REX eyetracker ==&lt;br /&gt;
&lt;br /&gt;
* zainstalować pakiet deb dla 64bit Linuxa z http://developer.tobii.com/rex-setup-gaze-sdk/&lt;br /&gt;
* poprosić Aleksa o kopię SDK&lt;br /&gt;
* w katalogu &amp;lt;code&amp;gt;Samples&amp;lt;/code&amp;gt; w SDK znajduje się demo (należy je zbudować poleceniem &amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
== Oprogramowanie do Kinecta ze źródeł ==&lt;br /&gt;
&lt;br /&gt;
Do pełnego działania Kinecta na Linuxie potrzebne są: OpenNI2, NiTE2, libfreenect z driverem do OpenNI2 oraz wrapper do Pythona - &amp;lt;code&amp;gt;nite2&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Firma PrimeSense, autor OpenNI, została wykupiona przez Apple'a. Następnie projekt OpenNI został utajniony. Ponieważ jest to opensource, kody źródłowe są nadal dostępne. Najbardziej aktywnym forkiem jest repozytorium prowadzone przez http://occipital.com, dostępne pod adresem https://github.com/occipital/OpenNI2.&lt;br /&gt;
&lt;br /&gt;
=== OpenNI2 ===&lt;br /&gt;
&lt;br /&gt;
OpenNI2 można zdobyć na dwa sposoby - zbudować ze źródeł lub pobrać binarki.&lt;br /&gt;
&lt;br /&gt;
==== Kompilacja OpenNI2 ====&lt;br /&gt;
&lt;br /&gt;
Instalacja wymagań&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install git g++ cmake libudev-dev libxi-dev libxmu-dev python libusb-1.0-0-dev libudev-dev freeglut3-dev doxygen graphviz&lt;br /&gt;
&lt;br /&gt;
Do kompilacji niezbędna będzie Java. Należy zainstalować jakiekolwiek JDK, np.:&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install openjdk-7-jdk&lt;br /&gt;
&lt;br /&gt;
Pobranie repozytorum i kompilacja&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/occipital/OpenNI2.git&lt;br /&gt;
 cd OpenNI2&lt;br /&gt;
&lt;br /&gt;
Warto zapisać ścieżkę do OpenNI w zmiennej (i dodać do .profile lub .bashrc):&lt;br /&gt;
&lt;br /&gt;
 export OPENNI_DIR=&amp;quot;${PWD}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;LDFLAGS += -lpthread&amp;quot; &amp;gt;&amp;gt; ${OPENNI_DIR}/Source/Tools/NiViewer/Makefile&lt;br /&gt;
 make&lt;br /&gt;
 sudo ${OPENNI_DIR}/Packaging/Linux/install.sh&lt;br /&gt;
 sudo gpasswd -a ${USER} video&lt;br /&gt;
&lt;br /&gt;
==== Instalacja z binarek ====&lt;br /&gt;
&lt;br /&gt;
Należy pobrać binarny pakiet ze strony http://structure.io/openni i wypakować do katalogu np. &amp;lt;code&amp;gt;OpenNI-Linux-x64-2.2&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 $ cd OpenNI-Linux-x64-2.2&lt;br /&gt;
 $ sudo ./install.sh&lt;br /&gt;
&lt;br /&gt;
w aktualnym katalogu utworzy się skrypt &amp;lt;code&amp;gt;OpenNIDevEnvironment&amp;lt;/code&amp;gt;, który ustawia środowisko dev&lt;br /&gt;
&lt;br /&gt;
=== Kompilacja libfreenect ===&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/OpenKinect/libfreenect.git&lt;br /&gt;
 cd libfreenect&lt;br /&gt;
 mkdir build; cd build&lt;br /&gt;
 cmake .. -DBUILD_OPENNI2_DRIVER=ON&lt;br /&gt;
 make -j4&lt;br /&gt;
 cp -L lib/OpenNI2-FreenectDriver/libFreenectDriver.so ${OPENNI_DIR}/Bin/x64-Release/OpenNI2/Drivers/&lt;br /&gt;
&lt;br /&gt;
Test&lt;br /&gt;
&lt;br /&gt;
 cd ${OPENNI_DIR}/Bin/x64-Release/&lt;br /&gt;
 ./NiViewer&lt;br /&gt;
&lt;br /&gt;
=== Instalacja biblioteki NiTE2 ===&lt;br /&gt;
&lt;br /&gt;
NiTE od zawsze było oprogramowaniem bez dostępnych kodów źródłowych. Binarki można znaleźć tutaj: http://ilab.usc.edu/packages/forall/ubuntu-13.10/NiTE-Linux-x64-2.2.tar.bz2&lt;br /&gt;
 &lt;br /&gt;
 cd NiTE-Linux-x64-2.2&lt;br /&gt;
 sudo ./install.sh&lt;br /&gt;
&lt;br /&gt;
 cp -L /usr/local/lib/OpenNI2-FreenectDriver/libFreenectDriver.so NiTE-Linux-x64-2.2/Samples/Bin/OpenNI2/Drivers/&lt;/div&gt;</summary>
		<author><name>Alex</name></author>
		
	</entry>
	<entry>
		<id>http://brain.fuw.edu.pl/edu/index.php?title=Instalacja_i_konfiguracja_Kinect,_Wiimote_i_Eyetrackera&amp;diff=5016</id>
		<title>Instalacja i konfiguracja Kinect, Wiimote i Eyetrackera</title>
		<link rel="alternate" type="text/html" href="http://brain.fuw.edu.pl/edu/index.php?title=Instalacja_i_konfiguracja_Kinect,_Wiimote_i_Eyetrackera&amp;diff=5016"/>
		<updated>2016-03-23T11:52:02Z</updated>

		<summary type="html">&lt;p&gt;Alex: /* Kompilacja OpenNI2 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Kinect + OpenNI2 + NiTE2 + freenect ==&lt;br /&gt;
&lt;br /&gt;
Należy pamiętać, żeby wszsstkie wystąpienia &amp;lt;code&amp;gt;{USER_NAME}&amp;lt;/code&amp;gt; w poniższym kodzie zamienić na właściwą nazwę użytkownika.&lt;br /&gt;
&lt;br /&gt;
Instalacja OpenNI 2 + NiTE 2 z prekonfigurowanych binarek dla Ubuntu 15.10:&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install freeglut3 python-opencv libboost-all-dev&lt;br /&gt;
 cd ~&lt;br /&gt;
 wget http://static.mroja.net/kinect/kinect.7z&lt;br /&gt;
 7z x kinect.7z&lt;br /&gt;
 cd ~/kinect&lt;br /&gt;
 sudo cp primesense-and-kinect-usb.rules /etc/udev/rules.d/557-primesense-usb.rules&lt;br /&gt;
 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/{USER_NAME}/kinect/Redist&lt;br /&gt;
 cd Redist&lt;br /&gt;
 ./NiViewer&lt;br /&gt;
&lt;br /&gt;
Linijkę &amp;lt;code&amp;gt;export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/{USER_NAME}/kinect/Redist&amp;lt;/code&amp;gt; najlepiej wrzucić do pliku &amp;lt;code&amp;gt;.profile&amp;lt;/code&amp;gt; lub &amp;lt;code&amp;gt;.bashrc&amp;lt;/code&amp;gt;, żeby uruchamiana była przy każdym logowaniu.&lt;br /&gt;
&lt;br /&gt;
Należy prawdzić czy użytkownik, na koncie którego będzie używany Kinect należy do grupy plugdev -- jeśli nie, dodać: &lt;br /&gt;
 sudo usermod -G plugdev -a {USER_NAME}&lt;br /&gt;
&lt;br /&gt;
Alternatywnie można zainstalować całość ze źródeł - instrukcja znajduje się na dole tej strony.&lt;br /&gt;
&lt;br /&gt;
=== Wrapper nite2 do Python + OpenBCI  ===&lt;br /&gt;
&lt;br /&gt;
Moduł do Pythona (plik &amp;lt;code&amp;gt;nite2.so&amp;lt;/code&amp;gt;) należy zbudować z repozytorium https://github.com/BrainTech/nite2-bindings i umieścić w katalogu &amp;lt;code&amp;gt;/usr/lib/python2.7/dist-packages&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Żeby NiTE2 działo poprawnie wewnątrz OpenBCI należy skopiować katalog NiTE2 (&amp;lt;code&amp;gt;~/kinect/Redist/NiTE2&amp;lt;/code&amp;gt;) do katalogu &amp;lt;code&amp;gt;~/.obci/sandbox&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
na koncie lab&lt;br /&gt;
&lt;br /&gt;
 cd ~/kinect/Redist&lt;br /&gt;
 cp /path_to_file/nite2.so nite2.so&lt;br /&gt;
&lt;br /&gt;
 cp -r /home/lab/kinect/Redist/NiTE2/ ~/.obci/sandbox/&lt;br /&gt;
&lt;br /&gt;
na koncie newtech&lt;br /&gt;
&lt;br /&gt;
 cd ~/kinect/Redist&lt;br /&gt;
 cp /path_to_file/nite2.so nite2.so&lt;br /&gt;
&lt;br /&gt;
 mkdir /home/newtech/.obci/  # jeśli katalog istnieje to pominąć&lt;br /&gt;
 mkdir /home/newtech/.obci/sandbox  # j.w.&lt;br /&gt;
&lt;br /&gt;
 cp -r /home/newtech/kinect/Redist/NiTE2/ ~/.obci/sandbox/&lt;br /&gt;
&lt;br /&gt;
== Instalacja xwiimote ==&lt;br /&gt;
&lt;br /&gt;
UWAGA!!! NIE NALEŻY instalować pakietu xwiimote z repozytoriów Debiana i Ubuntu - są one przestarzałe.&lt;br /&gt;
&lt;br /&gt;
Wymagane wersje:&lt;br /&gt;
* kernel &amp;gt;= 3.5+&lt;br /&gt;
* bluez &amp;gt;= 5.11+&lt;br /&gt;
&lt;br /&gt;
=== A) Instalacja wymaganych pakietów ===&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install autoconf autogen automake gcc bluetooth ncurses-dev libudev-dev libtool git blueman python-dev dh-autoreconf pkg-config swig&lt;br /&gt;
&lt;br /&gt;
=== B) xwiimote driver &amp;amp; utils ===&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/BrainTech/xwiimote&lt;br /&gt;
 cd xwiimote&lt;br /&gt;
 ./autogen.sh&lt;br /&gt;
 make&lt;br /&gt;
 sudo make install&lt;br /&gt;
 sudo ldconfig&lt;br /&gt;
&lt;br /&gt;
=== C) Python bindings ===&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/BrainTech/xwiimote-bindings&lt;br /&gt;
 cd xwiimote-bindings&lt;br /&gt;
 ./autogen.sh&lt;br /&gt;
 make&lt;br /&gt;
 sudo make install&lt;br /&gt;
 sudo ldconfig&lt;br /&gt;
&lt;br /&gt;
=== D) Żeby działało bez sudo ===&lt;br /&gt;
&lt;br /&gt;
Jeśli chcemy, żeby xwiimote dział bez sudo dla userów lab i newtech należy wykonać polecenia:&lt;br /&gt;
&lt;br /&gt;
 sudo usermod -a -G input newtech&lt;br /&gt;
 sudo usermod -a -G input lab&lt;br /&gt;
&lt;br /&gt;
=== E) Sparować urządzenie z użyciem wbudowanego do Ubuntu panelu Bluetooth ===&lt;br /&gt;
&lt;br /&gt;
=== F) Demo ===&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/BrainTech/wiiscale.git&lt;br /&gt;
 cd wiiscale&lt;br /&gt;
&lt;br /&gt;
Należy odkomentować linijki 134 i 135:&lt;br /&gt;
&lt;br /&gt;
 134: #        for m in measurements(iface):&lt;br /&gt;
 135: #            print_bboard_measurements(*m)&lt;br /&gt;
&lt;br /&gt;
Demo można uruchomić poleceniem:&lt;br /&gt;
&lt;br /&gt;
 python ./scale.py&lt;br /&gt;
&lt;br /&gt;
== Tobii REX eyetracker ==&lt;br /&gt;
&lt;br /&gt;
* zainstalować pakiet deb dla 64bit Linuxa z http://developer.tobii.com/rex-setup-gaze-sdk/&lt;br /&gt;
* poprosić Aleksa o kopię SDK&lt;br /&gt;
* w katalogu &amp;lt;code&amp;gt;Samples&amp;lt;/code&amp;gt; w SDK znajduje się demo (należy je zbudować poleceniem &amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
== Oprogramowanie do Kinecta ze źródeł ==&lt;br /&gt;
&lt;br /&gt;
Do pełnego działania Kinecta na Linuxie potrzebne są: OpenNI2, NiTE2, libfreenect z driverem do OpenNI2 oraz wrapper do Pythona - &amp;lt;code&amp;gt;nite2&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Firma PrimeSense, autor OpenNI, została wykupiona przez Apple'a. Następnie projekt OpenNI został utajniony. Ponieważ jest to opensource, kody źródłowe są nadal dostępne. Najbardziej aktywnym forkiem jest repozytorium prowadzone przez http://occipital.com, dostępne pod adresem https://github.com/occipital/OpenNI2.&lt;br /&gt;
&lt;br /&gt;
=== OpenNI2 ===&lt;br /&gt;
&lt;br /&gt;
OpenNI2 można zdobyć na dwa sposoby - zbudować ze źródeł lub pobrać binarki.&lt;br /&gt;
&lt;br /&gt;
==== Kompilacja OpenNI2 ====&lt;br /&gt;
&lt;br /&gt;
Instalacja wymagań&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install git g++ cmake libudev-dev libxi-dev libxmu-dev python libusb-1.0-0-dev libudev-dev freeglut3-dev doxygen graphviz&lt;br /&gt;
&lt;br /&gt;
Do kompilacji niezbędna będzie Java. Należy zainstalować jakiekolwiek JDK, np.:&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install openjdk-7-jdk&lt;br /&gt;
&lt;br /&gt;
Pobranie repozytorum i kompilacja&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/occipital/OpenNI2.git&lt;br /&gt;
 cd OpenNI2&lt;br /&gt;
 &lt;br /&gt;
Warto zapisać ścieżkę do OpenNI w zmiennej (i dodać do .profile lub .bashrc):&lt;br /&gt;
&lt;br /&gt;
 export OPENNI_DIR=&amp;quot;${PWD}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;LDFLAGS += -lpthread&amp;quot; &amp;gt;&amp;gt; ${OPENNI_DIR}/Source/Tools/NiViewer/Makefile&lt;br /&gt;
 make&lt;br /&gt;
 sudo ${OPENNI_DIR}/Packaging/Linux/install.sh&lt;br /&gt;
 sudo gpasswd -a ${USER} video&lt;br /&gt;
&lt;br /&gt;
==== Instalacja z binarek ====&lt;br /&gt;
&lt;br /&gt;
Należy pobrać binarny pakiet ze strony http://structure.io/openni i wypakować do katalogu np. &amp;lt;code&amp;gt;OpenNI-Linux-x64-2.2&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 $ cd OpenNI-Linux-x64-2.2&lt;br /&gt;
 $ sudo ./install.sh&lt;br /&gt;
&lt;br /&gt;
w aktualnym katalogu utworzy się skrypt &amp;lt;code&amp;gt;OpenNIDevEnvironment&amp;lt;/code&amp;gt;, który ustawia środowisko dev&lt;br /&gt;
&lt;br /&gt;
=== Kompilacja libfreenect ===&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/OpenKinect/libfreenect.git&lt;br /&gt;
 cd libfreenect&lt;br /&gt;
 mkdir build; cd build&lt;br /&gt;
 cmake .. -DBUILD_OPENNI2_DRIVER=ON&lt;br /&gt;
 make -j4&lt;br /&gt;
 cp -L lib/OpenNI2-FreenectDriver/libFreenectDriver.so ${OPENNI_DIR}/Bin/x64-Release/OpenNI2/Drivers/&lt;br /&gt;
&lt;br /&gt;
Test&lt;br /&gt;
&lt;br /&gt;
 cd ${OPENNI_DIR}/Bin/x64-Release/&lt;br /&gt;
 ./NiViewer&lt;br /&gt;
&lt;br /&gt;
=== Instalacja biblioteki NiTE2 ===&lt;br /&gt;
&lt;br /&gt;
NiTE od zawsze było oprogramowaniem bez dostępnych kodów źródłowych. Binarki można znaleźć tutaj: http://ilab.usc.edu/packages/forall/ubuntu-13.10/NiTE-Linux-x64-2.2.tar.bz2&lt;br /&gt;
 &lt;br /&gt;
 cd NiTE-Linux-x64-2.2&lt;br /&gt;
 sudo ./install.sh&lt;br /&gt;
&lt;br /&gt;
 cp -L /usr/local/lib/OpenNI2-FreenectDriver/libFreenectDriver.so NiTE-Linux-x64-2.2/Samples/Bin/OpenNI2/Drivers/&lt;/div&gt;</summary>
		<author><name>Alex</name></author>
		
	</entry>
	<entry>
		<id>http://brain.fuw.edu.pl/edu/index.php?title=Instalacja_i_konfiguracja_Kinect,_Wiimote_i_Eyetrackera&amp;diff=5015</id>
		<title>Instalacja i konfiguracja Kinect, Wiimote i Eyetrackera</title>
		<link rel="alternate" type="text/html" href="http://brain.fuw.edu.pl/edu/index.php?title=Instalacja_i_konfiguracja_Kinect,_Wiimote_i_Eyetrackera&amp;diff=5015"/>
		<updated>2016-03-23T11:50:02Z</updated>

		<summary type="html">&lt;p&gt;Alex: /* Kompilacja OpenNI2 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Kinect + OpenNI2 + NiTE2 + freenect ==&lt;br /&gt;
&lt;br /&gt;
Należy pamiętać, żeby wszsstkie wystąpienia &amp;lt;code&amp;gt;{USER_NAME}&amp;lt;/code&amp;gt; w poniższym kodzie zamienić na właściwą nazwę użytkownika.&lt;br /&gt;
&lt;br /&gt;
Instalacja OpenNI 2 + NiTE 2 z prekonfigurowanych binarek dla Ubuntu 15.10:&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install freeglut3 python-opencv libboost-all-dev&lt;br /&gt;
 cd ~&lt;br /&gt;
 wget http://static.mroja.net/kinect/kinect.7z&lt;br /&gt;
 7z x kinect.7z&lt;br /&gt;
 cd ~/kinect&lt;br /&gt;
 sudo cp primesense-and-kinect-usb.rules /etc/udev/rules.d/557-primesense-usb.rules&lt;br /&gt;
 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/{USER_NAME}/kinect/Redist&lt;br /&gt;
 cd Redist&lt;br /&gt;
 ./NiViewer&lt;br /&gt;
&lt;br /&gt;
Linijkę &amp;lt;code&amp;gt;export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/{USER_NAME}/kinect/Redist&amp;lt;/code&amp;gt; najlepiej wrzucić do pliku &amp;lt;code&amp;gt;.profile&amp;lt;/code&amp;gt; lub &amp;lt;code&amp;gt;.bashrc&amp;lt;/code&amp;gt;, żeby uruchamiana była przy każdym logowaniu.&lt;br /&gt;
&lt;br /&gt;
Należy prawdzić czy użytkownik, na koncie którego będzie używany Kinect należy do grupy plugdev -- jeśli nie, dodać: &lt;br /&gt;
 sudo usermod -G plugdev -a {USER_NAME}&lt;br /&gt;
&lt;br /&gt;
Alternatywnie można zainstalować całość ze źródeł - instrukcja znajduje się na dole tej strony.&lt;br /&gt;
&lt;br /&gt;
=== Wrapper nite2 do Python + OpenBCI  ===&lt;br /&gt;
&lt;br /&gt;
Moduł do Pythona (plik &amp;lt;code&amp;gt;nite2.so&amp;lt;/code&amp;gt;) należy zbudować z repozytorium https://github.com/BrainTech/nite2-bindings i umieścić w katalogu &amp;lt;code&amp;gt;/usr/lib/python2.7/dist-packages&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Żeby NiTE2 działo poprawnie wewnątrz OpenBCI należy skopiować katalog NiTE2 (&amp;lt;code&amp;gt;~/kinect/Redist/NiTE2&amp;lt;/code&amp;gt;) do katalogu &amp;lt;code&amp;gt;~/.obci/sandbox&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
na koncie lab&lt;br /&gt;
&lt;br /&gt;
 cd ~/kinect/Redist&lt;br /&gt;
 cp /path_to_file/nite2.so nite2.so&lt;br /&gt;
&lt;br /&gt;
 cp -r /home/lab/kinect/Redist/NiTE2/ ~/.obci/sandbox/&lt;br /&gt;
&lt;br /&gt;
na koncie newtech&lt;br /&gt;
&lt;br /&gt;
 cd ~/kinect/Redist&lt;br /&gt;
 cp /path_to_file/nite2.so nite2.so&lt;br /&gt;
&lt;br /&gt;
 mkdir /home/newtech/.obci/  # jeśli katalog istnieje to pominąć&lt;br /&gt;
 mkdir /home/newtech/.obci/sandbox  # j.w.&lt;br /&gt;
&lt;br /&gt;
 cp -r /home/newtech/kinect/Redist/NiTE2/ ~/.obci/sandbox/&lt;br /&gt;
&lt;br /&gt;
== Instalacja xwiimote ==&lt;br /&gt;
&lt;br /&gt;
UWAGA!!! NIE NALEŻY instalować pakietu xwiimote z repozytoriów Debiana i Ubuntu - są one przestarzałe.&lt;br /&gt;
&lt;br /&gt;
Wymagane wersje:&lt;br /&gt;
* kernel &amp;gt;= 3.5+&lt;br /&gt;
* bluez &amp;gt;= 5.11+&lt;br /&gt;
&lt;br /&gt;
=== A) Instalacja wymaganych pakietów ===&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install autoconf autogen automake gcc bluetooth ncurses-dev libudev-dev libtool git blueman python-dev dh-autoreconf pkg-config swig&lt;br /&gt;
&lt;br /&gt;
=== B) xwiimote driver &amp;amp; utils ===&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/BrainTech/xwiimote&lt;br /&gt;
 cd xwiimote&lt;br /&gt;
 ./autogen.sh&lt;br /&gt;
 make&lt;br /&gt;
 sudo make install&lt;br /&gt;
 sudo ldconfig&lt;br /&gt;
&lt;br /&gt;
=== C) Python bindings ===&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/BrainTech/xwiimote-bindings&lt;br /&gt;
 cd xwiimote-bindings&lt;br /&gt;
 ./autogen.sh&lt;br /&gt;
 make&lt;br /&gt;
 sudo make install&lt;br /&gt;
 sudo ldconfig&lt;br /&gt;
&lt;br /&gt;
=== D) Żeby działało bez sudo ===&lt;br /&gt;
&lt;br /&gt;
Jeśli chcemy, żeby xwiimote dział bez sudo dla userów lab i newtech należy wykonać polecenia:&lt;br /&gt;
&lt;br /&gt;
 sudo usermod -a -G input newtech&lt;br /&gt;
 sudo usermod -a -G input lab&lt;br /&gt;
&lt;br /&gt;
=== E) Sparować urządzenie z użyciem wbudowanego do Ubuntu panelu Bluetooth ===&lt;br /&gt;
&lt;br /&gt;
=== F) Demo ===&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/BrainTech/wiiscale.git&lt;br /&gt;
 cd wiiscale&lt;br /&gt;
&lt;br /&gt;
Należy odkomentować linijki 134 i 135:&lt;br /&gt;
&lt;br /&gt;
 134: #        for m in measurements(iface):&lt;br /&gt;
 135: #            print_bboard_measurements(*m)&lt;br /&gt;
&lt;br /&gt;
Demo można uruchomić poleceniem:&lt;br /&gt;
&lt;br /&gt;
 python ./scale.py&lt;br /&gt;
&lt;br /&gt;
== Tobii REX eyetracker ==&lt;br /&gt;
&lt;br /&gt;
* zainstalować pakiet deb dla 64bit Linuxa z http://developer.tobii.com/rex-setup-gaze-sdk/&lt;br /&gt;
* poprosić Aleksa o kopię SDK&lt;br /&gt;
* w katalogu &amp;lt;code&amp;gt;Samples&amp;lt;/code&amp;gt; w SDK znajduje się demo (należy je zbudować poleceniem &amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
== Oprogramowanie do Kinecta ze źródeł ==&lt;br /&gt;
&lt;br /&gt;
Do pełnego działania Kinecta na Linuxie potrzebne są: OpenNI2, NiTE2, libfreenect z driverem do OpenNI2 oraz wrapper do Pythona - &amp;lt;code&amp;gt;nite2&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Firma PrimeSense, autor OpenNI, została wykupiona przez Apple'a. Następnie projekt OpenNI został utajniony. Ponieważ jest to opensource, kody źródłowe są nadal dostępne. Najbardziej aktywnym forkiem jest repozytorium prowadzone przez http://occipital.com, dostępne pod adresem https://github.com/occipital/OpenNI2.&lt;br /&gt;
&lt;br /&gt;
=== OpenNI2 ===&lt;br /&gt;
&lt;br /&gt;
OpenNI2 można zdobyć na dwa sposoby - zbudować ze źródeł lub pobrać binarki.&lt;br /&gt;
&lt;br /&gt;
==== Kompilacja OpenNI2 ====&lt;br /&gt;
&lt;br /&gt;
Instalacja wymagań&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install git g++ cmake libudev-dev libxi-dev libxmu-dev python libusb-1.0-0-dev libudev-dev freeglut3-dev doxygen graphviz&lt;br /&gt;
&lt;br /&gt;
Do kompilacji niezbędna będzie Java. Należy zainstalować jakiekolwiek JDK, np.:&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install openjdk-7-jdk&lt;br /&gt;
&lt;br /&gt;
Pobranie repozytorum i kompilacja&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/occipital/OpenNI2.git&lt;br /&gt;
 cd OpenNI2&lt;br /&gt;
 #Save path for further reference&lt;br /&gt;
 OPENNI_DIR=&amp;quot;${PWD}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 sed -i '/-Werror/ s/^/#/' ${OPENNI_DIR}/ThirdParty/PSCommon/BuildSystem/CommonCppMakefile&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;LDFLAGS += -lpthread&amp;quot; &amp;gt;&amp;gt; ${OPENNI_DIR}/Source/Tools/NiViewer/Makefile&lt;br /&gt;
 make&lt;br /&gt;
 sudo ${OPENNI_DIR}/Packaging/Linux/install.sh&lt;br /&gt;
 sudo gpasswd -a ${USER} video&lt;br /&gt;
&lt;br /&gt;
==== Instalacja z binarek ====&lt;br /&gt;
&lt;br /&gt;
Należy pobrać binarny pakiet ze strony http://structure.io/openni i wypakować do katalogu np. &amp;lt;code&amp;gt;OpenNI-Linux-x64-2.2&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 $ cd OpenNI-Linux-x64-2.2&lt;br /&gt;
 $ sudo ./install.sh&lt;br /&gt;
&lt;br /&gt;
w aktualnym katalogu utworzy się skrypt &amp;lt;code&amp;gt;OpenNIDevEnvironment&amp;lt;/code&amp;gt;, który ustawia środowisko dev&lt;br /&gt;
&lt;br /&gt;
=== Kompilacja libfreenect ===&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/OpenKinect/libfreenect.git&lt;br /&gt;
 cd libfreenect&lt;br /&gt;
 mkdir build; cd build&lt;br /&gt;
 cmake .. -DBUILD_OPENNI2_DRIVER=ON&lt;br /&gt;
 make -j4&lt;br /&gt;
 cp -L lib/OpenNI2-FreenectDriver/libFreenectDriver.so ${OPENNI_DIR}/Bin/x64-Release/OpenNI2/Drivers/&lt;br /&gt;
&lt;br /&gt;
Test&lt;br /&gt;
&lt;br /&gt;
 cd ${OPENNI_DIR}/Bin/x64-Release/&lt;br /&gt;
 ./NiViewer&lt;br /&gt;
&lt;br /&gt;
=== Instalacja biblioteki NiTE2 ===&lt;br /&gt;
&lt;br /&gt;
NiTE od zawsze było oprogramowaniem bez dostępnych kodów źródłowych. Binarki można znaleźć tutaj: http://ilab.usc.edu/packages/forall/ubuntu-13.10/NiTE-Linux-x64-2.2.tar.bz2&lt;br /&gt;
 &lt;br /&gt;
 cd NiTE-Linux-x64-2.2&lt;br /&gt;
 sudo ./install.sh&lt;br /&gt;
&lt;br /&gt;
 cp -L /usr/local/lib/OpenNI2-FreenectDriver/libFreenectDriver.so NiTE-Linux-x64-2.2/Samples/Bin/OpenNI2/Drivers/&lt;/div&gt;</summary>
		<author><name>Alex</name></author>
		
	</entry>
	<entry>
		<id>http://brain.fuw.edu.pl/edu/index.php?title=Instalacja_i_konfiguracja_Kinect,_Wiimote_i_Eyetrackera&amp;diff=5014</id>
		<title>Instalacja i konfiguracja Kinect, Wiimote i Eyetrackera</title>
		<link rel="alternate" type="text/html" href="http://brain.fuw.edu.pl/edu/index.php?title=Instalacja_i_konfiguracja_Kinect,_Wiimote_i_Eyetrackera&amp;diff=5014"/>
		<updated>2016-03-23T11:41:44Z</updated>

		<summary type="html">&lt;p&gt;Alex: /* D) Żeby działało bez sudo dla userów lab i newtech */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Kinect + OpenNI2 + NiTE2 + freenect ==&lt;br /&gt;
&lt;br /&gt;
Należy pamiętać, żeby wszsstkie wystąpienia &amp;lt;code&amp;gt;{USER_NAME}&amp;lt;/code&amp;gt; w poniższym kodzie zamienić na właściwą nazwę użytkownika.&lt;br /&gt;
&lt;br /&gt;
Instalacja OpenNI 2 + NiTE 2 z prekonfigurowanych binarek dla Ubuntu 15.10:&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install freeglut3 python-opencv libboost-all-dev&lt;br /&gt;
 cd ~&lt;br /&gt;
 wget http://static.mroja.net/kinect/kinect.7z&lt;br /&gt;
 7z x kinect.7z&lt;br /&gt;
 cd ~/kinect&lt;br /&gt;
 sudo cp primesense-and-kinect-usb.rules /etc/udev/rules.d/557-primesense-usb.rules&lt;br /&gt;
 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/{USER_NAME}/kinect/Redist&lt;br /&gt;
 cd Redist&lt;br /&gt;
 ./NiViewer&lt;br /&gt;
&lt;br /&gt;
Linijkę &amp;lt;code&amp;gt;export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/{USER_NAME}/kinect/Redist&amp;lt;/code&amp;gt; najlepiej wrzucić do pliku &amp;lt;code&amp;gt;.profile&amp;lt;/code&amp;gt; lub &amp;lt;code&amp;gt;.bashrc&amp;lt;/code&amp;gt;, żeby uruchamiana była przy każdym logowaniu.&lt;br /&gt;
&lt;br /&gt;
Należy prawdzić czy użytkownik, na koncie którego będzie używany Kinect należy do grupy plugdev -- jeśli nie, dodać: &lt;br /&gt;
 sudo usermod -G plugdev -a {USER_NAME}&lt;br /&gt;
&lt;br /&gt;
Alternatywnie można zainstalować całość ze źródeł - instrukcja znajduje się na dole tej strony.&lt;br /&gt;
&lt;br /&gt;
=== Wrapper nite2 do Python + OpenBCI  ===&lt;br /&gt;
&lt;br /&gt;
Moduł do Pythona (plik &amp;lt;code&amp;gt;nite2.so&amp;lt;/code&amp;gt;) należy zbudować z repozytorium https://github.com/BrainTech/nite2-bindings i umieścić w katalogu &amp;lt;code&amp;gt;/usr/lib/python2.7/dist-packages&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Żeby NiTE2 działo poprawnie wewnątrz OpenBCI należy skopiować katalog NiTE2 (&amp;lt;code&amp;gt;~/kinect/Redist/NiTE2&amp;lt;/code&amp;gt;) do katalogu &amp;lt;code&amp;gt;~/.obci/sandbox&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
na koncie lab&lt;br /&gt;
&lt;br /&gt;
 cd ~/kinect/Redist&lt;br /&gt;
 cp /path_to_file/nite2.so nite2.so&lt;br /&gt;
&lt;br /&gt;
 cp -r /home/lab/kinect/Redist/NiTE2/ ~/.obci/sandbox/&lt;br /&gt;
&lt;br /&gt;
na koncie newtech&lt;br /&gt;
&lt;br /&gt;
 cd ~/kinect/Redist&lt;br /&gt;
 cp /path_to_file/nite2.so nite2.so&lt;br /&gt;
&lt;br /&gt;
 mkdir /home/newtech/.obci/  # jeśli katalog istnieje to pominąć&lt;br /&gt;
 mkdir /home/newtech/.obci/sandbox  # j.w.&lt;br /&gt;
&lt;br /&gt;
 cp -r /home/newtech/kinect/Redist/NiTE2/ ~/.obci/sandbox/&lt;br /&gt;
&lt;br /&gt;
== Instalacja xwiimote ==&lt;br /&gt;
&lt;br /&gt;
UWAGA!!! NIE NALEŻY instalować pakietu xwiimote z repozytoriów Debiana i Ubuntu - są one przestarzałe.&lt;br /&gt;
&lt;br /&gt;
Wymagane wersje:&lt;br /&gt;
* kernel &amp;gt;= 3.5+&lt;br /&gt;
* bluez &amp;gt;= 5.11+&lt;br /&gt;
&lt;br /&gt;
=== A) Instalacja wymaganych pakietów ===&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install autoconf autogen automake gcc bluetooth ncurses-dev libudev-dev libtool git blueman python-dev dh-autoreconf pkg-config swig&lt;br /&gt;
&lt;br /&gt;
=== B) xwiimote driver &amp;amp; utils ===&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/BrainTech/xwiimote&lt;br /&gt;
 cd xwiimote&lt;br /&gt;
 ./autogen.sh&lt;br /&gt;
 make&lt;br /&gt;
 sudo make install&lt;br /&gt;
 sudo ldconfig&lt;br /&gt;
&lt;br /&gt;
=== C) Python bindings ===&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/BrainTech/xwiimote-bindings&lt;br /&gt;
 cd xwiimote-bindings&lt;br /&gt;
 ./autogen.sh&lt;br /&gt;
 make&lt;br /&gt;
 sudo make install&lt;br /&gt;
 sudo ldconfig&lt;br /&gt;
&lt;br /&gt;
=== D) Żeby działało bez sudo ===&lt;br /&gt;
&lt;br /&gt;
Jeśli chcemy, żeby xwiimote dział bez sudo dla userów lab i newtech należy wykonać polecenia:&lt;br /&gt;
&lt;br /&gt;
 sudo usermod -a -G input newtech&lt;br /&gt;
 sudo usermod -a -G input lab&lt;br /&gt;
&lt;br /&gt;
=== E) Sparować urządzenie z użyciem wbudowanego do Ubuntu panelu Bluetooth ===&lt;br /&gt;
&lt;br /&gt;
=== F) Demo ===&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/BrainTech/wiiscale.git&lt;br /&gt;
 cd wiiscale&lt;br /&gt;
&lt;br /&gt;
Należy odkomentować linijki 134 i 135:&lt;br /&gt;
&lt;br /&gt;
 134: #        for m in measurements(iface):&lt;br /&gt;
 135: #            print_bboard_measurements(*m)&lt;br /&gt;
&lt;br /&gt;
Demo można uruchomić poleceniem:&lt;br /&gt;
&lt;br /&gt;
 python ./scale.py&lt;br /&gt;
&lt;br /&gt;
== Tobii REX eyetracker ==&lt;br /&gt;
&lt;br /&gt;
* zainstalować pakiet deb dla 64bit Linuxa z http://developer.tobii.com/rex-setup-gaze-sdk/&lt;br /&gt;
* poprosić Aleksa o kopię SDK&lt;br /&gt;
* w katalogu &amp;lt;code&amp;gt;Samples&amp;lt;/code&amp;gt; w SDK znajduje się demo (należy je zbudować poleceniem &amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
== Oprogramowanie do Kinecta ze źródeł ==&lt;br /&gt;
&lt;br /&gt;
Do pełnego działania Kinecta na Linuxie potrzebne są: OpenNI2, NiTE2, libfreenect z driverem do OpenNI2 oraz wrapper do Pythona - &amp;lt;code&amp;gt;nite2&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Firma PrimeSense, autor OpenNI, została wykupiona przez Apple'a. Następnie projekt OpenNI został utajniony. Ponieważ jest to opensource, kody źródłowe są nadal dostępne. Najbardziej aktywnym forkiem jest repozytorium prowadzone przez http://occipital.com, dostępne pod adresem https://github.com/occipital/OpenNI2.&lt;br /&gt;
&lt;br /&gt;
=== OpenNI2 ===&lt;br /&gt;
&lt;br /&gt;
OpenNI2 można zdobyć na dwa sposoby - zbudować ze źródeł lub pobrać binarki.&lt;br /&gt;
&lt;br /&gt;
==== Kompilacja OpenNI2 ====&lt;br /&gt;
&lt;br /&gt;
Instalacja wymagań&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install git-core g++ cmake libudev-dev libxi-dev libxmu-dev python libusb-1.0-0-dev libudev-dev freeglut3-dev doxygen graphviz&lt;br /&gt;
&lt;br /&gt;
 sudo add-apt-repository ppa:webupd8team/java&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get install oracle-java8-installer&lt;br /&gt;
&lt;br /&gt;
Pobranie repozytorum i kompilacja&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/occipital/OpenNI2.git&lt;br /&gt;
 cd OpenNI2&lt;br /&gt;
 #Save path for further reference&lt;br /&gt;
 OPENNI_DIR=&amp;quot;${PWD}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 sed -i '/-Werror/ s/^/#/' ${OPENNI_DIR}/ThirdParty/PSCommon/BuildSystem/CommonCppMakefile&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;LDFLAGS += -lpthread&amp;quot; &amp;gt;&amp;gt; ${OPENNI_DIR}/Source/Tools/NiViewer/Makefile&lt;br /&gt;
 make&lt;br /&gt;
 sudo ${OPENNI_DIR}/Packaging/Linux/install.sh&lt;br /&gt;
 sudo gpasswd -a ${USER} video&lt;br /&gt;
&lt;br /&gt;
==== Instalacja z binarek ====&lt;br /&gt;
&lt;br /&gt;
Należy pobrać binarny pakiet ze strony http://structure.io/openni i wypakować do katalogu np. &amp;lt;code&amp;gt;OpenNI-Linux-x64-2.2&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 $ cd OpenNI-Linux-x64-2.2&lt;br /&gt;
 $ sudo ./install.sh&lt;br /&gt;
&lt;br /&gt;
w aktualnym katalogu utworzy się skrypt &amp;lt;code&amp;gt;OpenNIDevEnvironment&amp;lt;/code&amp;gt;, który ustawia środowisko dev&lt;br /&gt;
&lt;br /&gt;
=== Kompilacja libfreenect ===&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/OpenKinect/libfreenect.git&lt;br /&gt;
 cd libfreenect&lt;br /&gt;
 mkdir build; cd build&lt;br /&gt;
 cmake .. -DBUILD_OPENNI2_DRIVER=ON&lt;br /&gt;
 make -j4&lt;br /&gt;
 cp -L lib/OpenNI2-FreenectDriver/libFreenectDriver.so ${OPENNI_DIR}/Bin/x64-Release/OpenNI2/Drivers/&lt;br /&gt;
&lt;br /&gt;
Test&lt;br /&gt;
&lt;br /&gt;
 cd ${OPENNI_DIR}/Bin/x64-Release/&lt;br /&gt;
 ./NiViewer&lt;br /&gt;
&lt;br /&gt;
=== Instalacja biblioteki NiTE2 ===&lt;br /&gt;
&lt;br /&gt;
NiTE od zawsze było oprogramowaniem bez dostępnych kodów źródłowych. Binarki można znaleźć tutaj: http://ilab.usc.edu/packages/forall/ubuntu-13.10/NiTE-Linux-x64-2.2.tar.bz2&lt;br /&gt;
 &lt;br /&gt;
 cd NiTE-Linux-x64-2.2&lt;br /&gt;
 sudo ./install.sh&lt;br /&gt;
&lt;br /&gt;
 cp -L /usr/local/lib/OpenNI2-FreenectDriver/libFreenectDriver.so NiTE-Linux-x64-2.2/Samples/Bin/OpenNI2/Drivers/&lt;/div&gt;</summary>
		<author><name>Alex</name></author>
		
	</entry>
	<entry>
		<id>http://brain.fuw.edu.pl/edu/index.php?title=Instalacja_i_konfiguracja_Kinect,_Wiimote_i_Eyetrackera&amp;diff=5013</id>
		<title>Instalacja i konfiguracja Kinect, Wiimote i Eyetrackera</title>
		<link rel="alternate" type="text/html" href="http://brain.fuw.edu.pl/edu/index.php?title=Instalacja_i_konfiguracja_Kinect,_Wiimote_i_Eyetrackera&amp;diff=5013"/>
		<updated>2016-03-23T11:39:44Z</updated>

		<summary type="html">&lt;p&gt;Alex: /* Kinect + OpenNI2 + NiTE2 + freenect */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Kinect + OpenNI2 + NiTE2 + freenect ==&lt;br /&gt;
&lt;br /&gt;
Należy pamiętać, żeby wszsstkie wystąpienia &amp;lt;code&amp;gt;{USER_NAME}&amp;lt;/code&amp;gt; w poniższym kodzie zamienić na właściwą nazwę użytkownika.&lt;br /&gt;
&lt;br /&gt;
Instalacja OpenNI 2 + NiTE 2 z prekonfigurowanych binarek dla Ubuntu 15.10:&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install freeglut3 python-opencv libboost-all-dev&lt;br /&gt;
 cd ~&lt;br /&gt;
 wget http://static.mroja.net/kinect/kinect.7z&lt;br /&gt;
 7z x kinect.7z&lt;br /&gt;
 cd ~/kinect&lt;br /&gt;
 sudo cp primesense-and-kinect-usb.rules /etc/udev/rules.d/557-primesense-usb.rules&lt;br /&gt;
 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/{USER_NAME}/kinect/Redist&lt;br /&gt;
 cd Redist&lt;br /&gt;
 ./NiViewer&lt;br /&gt;
&lt;br /&gt;
Linijkę &amp;lt;code&amp;gt;export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/{USER_NAME}/kinect/Redist&amp;lt;/code&amp;gt; najlepiej wrzucić do pliku &amp;lt;code&amp;gt;.profile&amp;lt;/code&amp;gt; lub &amp;lt;code&amp;gt;.bashrc&amp;lt;/code&amp;gt;, żeby uruchamiana była przy każdym logowaniu.&lt;br /&gt;
&lt;br /&gt;
Należy prawdzić czy użytkownik, na koncie którego będzie używany Kinect należy do grupy plugdev -- jeśli nie, dodać: &lt;br /&gt;
 sudo usermod -G plugdev -a {USER_NAME}&lt;br /&gt;
&lt;br /&gt;
Alternatywnie można zainstalować całość ze źródeł - instrukcja znajduje się na dole tej strony.&lt;br /&gt;
&lt;br /&gt;
=== Wrapper nite2 do Python + OpenBCI  ===&lt;br /&gt;
&lt;br /&gt;
Moduł do Pythona (plik &amp;lt;code&amp;gt;nite2.so&amp;lt;/code&amp;gt;) należy zbudować z repozytorium https://github.com/BrainTech/nite2-bindings i umieścić w katalogu &amp;lt;code&amp;gt;/usr/lib/python2.7/dist-packages&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Żeby NiTE2 działo poprawnie wewnątrz OpenBCI należy skopiować katalog NiTE2 (&amp;lt;code&amp;gt;~/kinect/Redist/NiTE2&amp;lt;/code&amp;gt;) do katalogu &amp;lt;code&amp;gt;~/.obci/sandbox&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
na koncie lab&lt;br /&gt;
&lt;br /&gt;
 cd ~/kinect/Redist&lt;br /&gt;
 cp /path_to_file/nite2.so nite2.so&lt;br /&gt;
&lt;br /&gt;
 cp -r /home/lab/kinect/Redist/NiTE2/ ~/.obci/sandbox/&lt;br /&gt;
&lt;br /&gt;
na koncie newtech&lt;br /&gt;
&lt;br /&gt;
 cd ~/kinect/Redist&lt;br /&gt;
 cp /path_to_file/nite2.so nite2.so&lt;br /&gt;
&lt;br /&gt;
 mkdir /home/newtech/.obci/  # jeśli katalog istnieje to pominąć&lt;br /&gt;
 mkdir /home/newtech/.obci/sandbox  # j.w.&lt;br /&gt;
&lt;br /&gt;
 cp -r /home/newtech/kinect/Redist/NiTE2/ ~/.obci/sandbox/&lt;br /&gt;
&lt;br /&gt;
== Instalacja xwiimote ==&lt;br /&gt;
&lt;br /&gt;
UWAGA!!! NIE NALEŻY instalować pakietu xwiimote z repozytoriów Debiana i Ubuntu - są one przestarzałe.&lt;br /&gt;
&lt;br /&gt;
Wymagane wersje:&lt;br /&gt;
* kernel &amp;gt;= 3.5+&lt;br /&gt;
* bluez &amp;gt;= 5.11+&lt;br /&gt;
&lt;br /&gt;
=== A) Instalacja wymaganych pakietów ===&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install autoconf autogen automake gcc bluetooth ncurses-dev libudev-dev libtool git blueman python-dev dh-autoreconf pkg-config swig&lt;br /&gt;
&lt;br /&gt;
=== B) xwiimote driver &amp;amp; utils ===&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/BrainTech/xwiimote&lt;br /&gt;
 cd xwiimote&lt;br /&gt;
 ./autogen.sh&lt;br /&gt;
 make&lt;br /&gt;
 sudo make install&lt;br /&gt;
 sudo ldconfig&lt;br /&gt;
&lt;br /&gt;
=== C) Python bindings ===&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/BrainTech/xwiimote-bindings&lt;br /&gt;
 cd xwiimote-bindings&lt;br /&gt;
 ./autogen.sh&lt;br /&gt;
 make&lt;br /&gt;
 sudo make install&lt;br /&gt;
 sudo ldconfig&lt;br /&gt;
&lt;br /&gt;
=== D) Żeby działało bez sudo dla userów lab i newtech ===&lt;br /&gt;
&lt;br /&gt;
 sudo usermod -a -G input newtech&lt;br /&gt;
 sudo usermod -a -G input lab&lt;br /&gt;
&lt;br /&gt;
=== E) Sparować urządzenie z użyciem wbudowanego do Ubuntu panelu Bluetooth ===&lt;br /&gt;
&lt;br /&gt;
=== F) Demo ===&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/BrainTech/wiiscale.git&lt;br /&gt;
 cd wiiscale&lt;br /&gt;
&lt;br /&gt;
Należy odkomentować linijki 134 i 135:&lt;br /&gt;
&lt;br /&gt;
 134: #        for m in measurements(iface):&lt;br /&gt;
 135: #            print_bboard_measurements(*m)&lt;br /&gt;
&lt;br /&gt;
Demo można uruchomić poleceniem:&lt;br /&gt;
&lt;br /&gt;
 python ./scale.py&lt;br /&gt;
&lt;br /&gt;
== Tobii REX eyetracker ==&lt;br /&gt;
&lt;br /&gt;
* zainstalować pakiet deb dla 64bit Linuxa z http://developer.tobii.com/rex-setup-gaze-sdk/&lt;br /&gt;
* poprosić Aleksa o kopię SDK&lt;br /&gt;
* w katalogu &amp;lt;code&amp;gt;Samples&amp;lt;/code&amp;gt; w SDK znajduje się demo (należy je zbudować poleceniem &amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
== Oprogramowanie do Kinecta ze źródeł ==&lt;br /&gt;
&lt;br /&gt;
Do pełnego działania Kinecta na Linuxie potrzebne są: OpenNI2, NiTE2, libfreenect z driverem do OpenNI2 oraz wrapper do Pythona - &amp;lt;code&amp;gt;nite2&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Firma PrimeSense, autor OpenNI, została wykupiona przez Apple'a. Następnie projekt OpenNI został utajniony. Ponieważ jest to opensource, kody źródłowe są nadal dostępne. Najbardziej aktywnym forkiem jest repozytorium prowadzone przez http://occipital.com, dostępne pod adresem https://github.com/occipital/OpenNI2.&lt;br /&gt;
&lt;br /&gt;
=== OpenNI2 ===&lt;br /&gt;
&lt;br /&gt;
OpenNI2 można zdobyć na dwa sposoby - zbudować ze źródeł lub pobrać binarki.&lt;br /&gt;
&lt;br /&gt;
==== Kompilacja OpenNI2 ====&lt;br /&gt;
&lt;br /&gt;
Instalacja wymagań&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install git-core g++ cmake libudev-dev libxi-dev libxmu-dev python libusb-1.0-0-dev libudev-dev freeglut3-dev doxygen graphviz&lt;br /&gt;
&lt;br /&gt;
 sudo add-apt-repository ppa:webupd8team/java&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get install oracle-java8-installer&lt;br /&gt;
&lt;br /&gt;
Pobranie repozytorum i kompilacja&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/occipital/OpenNI2.git&lt;br /&gt;
 cd OpenNI2&lt;br /&gt;
 #Save path for further reference&lt;br /&gt;
 OPENNI_DIR=&amp;quot;${PWD}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 sed -i '/-Werror/ s/^/#/' ${OPENNI_DIR}/ThirdParty/PSCommon/BuildSystem/CommonCppMakefile&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;LDFLAGS += -lpthread&amp;quot; &amp;gt;&amp;gt; ${OPENNI_DIR}/Source/Tools/NiViewer/Makefile&lt;br /&gt;
 make&lt;br /&gt;
 sudo ${OPENNI_DIR}/Packaging/Linux/install.sh&lt;br /&gt;
 sudo gpasswd -a ${USER} video&lt;br /&gt;
&lt;br /&gt;
==== Instalacja z binarek ====&lt;br /&gt;
&lt;br /&gt;
Należy pobrać binarny pakiet ze strony http://structure.io/openni i wypakować do katalogu np. &amp;lt;code&amp;gt;OpenNI-Linux-x64-2.2&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 $ cd OpenNI-Linux-x64-2.2&lt;br /&gt;
 $ sudo ./install.sh&lt;br /&gt;
&lt;br /&gt;
w aktualnym katalogu utworzy się skrypt &amp;lt;code&amp;gt;OpenNIDevEnvironment&amp;lt;/code&amp;gt;, który ustawia środowisko dev&lt;br /&gt;
&lt;br /&gt;
=== Kompilacja libfreenect ===&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/OpenKinect/libfreenect.git&lt;br /&gt;
 cd libfreenect&lt;br /&gt;
 mkdir build; cd build&lt;br /&gt;
 cmake .. -DBUILD_OPENNI2_DRIVER=ON&lt;br /&gt;
 make -j4&lt;br /&gt;
 cp -L lib/OpenNI2-FreenectDriver/libFreenectDriver.so ${OPENNI_DIR}/Bin/x64-Release/OpenNI2/Drivers/&lt;br /&gt;
&lt;br /&gt;
Test&lt;br /&gt;
&lt;br /&gt;
 cd ${OPENNI_DIR}/Bin/x64-Release/&lt;br /&gt;
 ./NiViewer&lt;br /&gt;
&lt;br /&gt;
=== Instalacja biblioteki NiTE2 ===&lt;br /&gt;
&lt;br /&gt;
NiTE od zawsze było oprogramowaniem bez dostępnych kodów źródłowych. Binarki można znaleźć tutaj: http://ilab.usc.edu/packages/forall/ubuntu-13.10/NiTE-Linux-x64-2.2.tar.bz2&lt;br /&gt;
 &lt;br /&gt;
 cd NiTE-Linux-x64-2.2&lt;br /&gt;
 sudo ./install.sh&lt;br /&gt;
&lt;br /&gt;
 cp -L /usr/local/lib/OpenNI2-FreenectDriver/libFreenectDriver.so NiTE-Linux-x64-2.2/Samples/Bin/OpenNI2/Drivers/&lt;/div&gt;</summary>
		<author><name>Alex</name></author>
		
	</entry>
	<entry>
		<id>http://brain.fuw.edu.pl/edu/index.php?title=Instalacja_i_konfiguracja_Kinect,_Wiimote_i_Eyetrackera&amp;diff=5012</id>
		<title>Instalacja i konfiguracja Kinect, Wiimote i Eyetrackera</title>
		<link rel="alternate" type="text/html" href="http://brain.fuw.edu.pl/edu/index.php?title=Instalacja_i_konfiguracja_Kinect,_Wiimote_i_Eyetrackera&amp;diff=5012"/>
		<updated>2016-03-23T11:37:33Z</updated>

		<summary type="html">&lt;p&gt;Alex: /* Kinect + OpenNI2 + NiTE2 + freenect */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Kinect + OpenNI2 + NiTE2 + freenect ==&lt;br /&gt;
&lt;br /&gt;
Należy pamiętać, żeby wszsstkie wystąpienia &amp;lt;code&amp;gt;{USER_NAME}&amp;lt;/code&amp;gt; w poniższym kodzie zamienić na właściwą nazwę użytkownika.&lt;br /&gt;
&lt;br /&gt;
Instalacja OpenNI 2 + NiTE 2 z prekonfigurowanych binarek dla Ubuntu 15.10:&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install freeglut3 python-opencv libboost-all-dev&lt;br /&gt;
 cd ~&lt;br /&gt;
 wget http://static.mroja.net/kinect/kinect.7z&lt;br /&gt;
 7z x kinect.7z&lt;br /&gt;
 cd ~/kinect&lt;br /&gt;
 sudo cp primesense-and-kinect-usb.rules /etc/udev/rules.d/557-primesense-usb.rules&lt;br /&gt;
 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/{USER_NAME}/kinect/Redist&lt;br /&gt;
 cd Redist&lt;br /&gt;
 ./NiViewer&lt;br /&gt;
&lt;br /&gt;
Linijkę &amp;lt;code&amp;gt;export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/{USER_NAME}/kinect/Redist&amp;lt;/code&amp;gt; najlepiej wrzucić do pliku &amp;lt;code&amp;gt;.profile&amp;lt;/code&amp;gt; lub &amp;lt;code&amp;gt;.bashrc&amp;lt;/code&amp;gt;, żeby uruchamiana była przy każdym logowaniu.&lt;br /&gt;
&lt;br /&gt;
Należy prawdzić czy użytkownik, na koncie którego będzie używany Kinect należy do grupy plugdev -- jeśli nie, dodać: &lt;br /&gt;
 sudo usermod -G plugdev -a {USER_NAME}&lt;br /&gt;
&lt;br /&gt;
Alternatywnie zamiast gotowej paczki binarek można użyć OpenNI ze strony http://structure.io/openni.&lt;br /&gt;
&lt;br /&gt;
=== wrapper+obci ===&lt;br /&gt;
&lt;br /&gt;
Moduł do Pythona (plik &amp;lt;code&amp;gt;nite2.so&amp;lt;/code&amp;gt;) należy zbudować z repozytorium https://github.com/BrainTech/nite2-bindings i umieścić w katalogu &amp;lt;code&amp;gt;/usr/lib/python2.7/dist-packages&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Żeby NiTE2 działo poprawnie wewnątrz OpenBCI należy skopiować katalog NiTE2 (&amp;lt;code&amp;gt;~/kinect/Redist/NiTE2&amp;lt;/code&amp;gt;) do katalogu &amp;lt;code&amp;gt;~/.obci/sandbox&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
na koncie lab&lt;br /&gt;
&lt;br /&gt;
 cd ~/kinect/Redist&lt;br /&gt;
 cp /path_to_file/nite2.so nite2.so&lt;br /&gt;
&lt;br /&gt;
 cp -r /home/lab/kinect/Redist/NiTE2/ ~/.obci/sandbox/&lt;br /&gt;
&lt;br /&gt;
na koncie newtech&lt;br /&gt;
&lt;br /&gt;
 cd ~/kinect/Redist&lt;br /&gt;
 cp /path_to_file/nite2.so nite2.so&lt;br /&gt;
&lt;br /&gt;
 mkdir /home/newtech/.obci/  # jeśli katalog istnieje to pominąć&lt;br /&gt;
 mkdir /home/newtech/.obci/sandbox  # j.w.&lt;br /&gt;
&lt;br /&gt;
 cp -r /home/newtech/kinect/Redist/NiTE2/ ~/.obci/sandbox/&lt;br /&gt;
&lt;br /&gt;
== Instalacja xwiimote ==&lt;br /&gt;
&lt;br /&gt;
UWAGA!!! NIE NALEŻY instalować pakietu xwiimote z repozytoriów Debiana i Ubuntu - są one przestarzałe.&lt;br /&gt;
&lt;br /&gt;
Wymagane wersje:&lt;br /&gt;
* kernel &amp;gt;= 3.5+&lt;br /&gt;
* bluez &amp;gt;= 5.11+&lt;br /&gt;
&lt;br /&gt;
=== A) Instalacja wymaganych pakietów ===&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install autoconf autogen automake gcc bluetooth ncurses-dev libudev-dev libtool git blueman python-dev dh-autoreconf pkg-config swig&lt;br /&gt;
&lt;br /&gt;
=== B) xwiimote driver &amp;amp; utils ===&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/BrainTech/xwiimote&lt;br /&gt;
 cd xwiimote&lt;br /&gt;
 ./autogen.sh&lt;br /&gt;
 make&lt;br /&gt;
 sudo make install&lt;br /&gt;
 sudo ldconfig&lt;br /&gt;
&lt;br /&gt;
=== C) Python bindings ===&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/BrainTech/xwiimote-bindings&lt;br /&gt;
 cd xwiimote-bindings&lt;br /&gt;
 ./autogen.sh&lt;br /&gt;
 make&lt;br /&gt;
 sudo make install&lt;br /&gt;
 sudo ldconfig&lt;br /&gt;
&lt;br /&gt;
=== D) Żeby działało bez sudo dla userów lab i newtech ===&lt;br /&gt;
&lt;br /&gt;
 sudo usermod -a -G input newtech&lt;br /&gt;
 sudo usermod -a -G input lab&lt;br /&gt;
&lt;br /&gt;
=== E) Sparować urządzenie z użyciem wbudowanego do Ubuntu panelu Bluetooth ===&lt;br /&gt;
&lt;br /&gt;
=== F) Demo ===&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/BrainTech/wiiscale.git&lt;br /&gt;
 cd wiiscale&lt;br /&gt;
&lt;br /&gt;
Należy odkomentować linijki 134 i 135:&lt;br /&gt;
&lt;br /&gt;
 134: #        for m in measurements(iface):&lt;br /&gt;
 135: #            print_bboard_measurements(*m)&lt;br /&gt;
&lt;br /&gt;
Demo można uruchomić poleceniem:&lt;br /&gt;
&lt;br /&gt;
 python ./scale.py&lt;br /&gt;
&lt;br /&gt;
== Tobii REX eyetracker ==&lt;br /&gt;
&lt;br /&gt;
* zainstalować pakiet deb dla 64bit Linuxa z http://developer.tobii.com/rex-setup-gaze-sdk/&lt;br /&gt;
* poprosić Aleksa o kopię SDK&lt;br /&gt;
* w katalogu &amp;lt;code&amp;gt;Samples&amp;lt;/code&amp;gt; w SDK znajduje się demo (należy je zbudować poleceniem &amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
== Oprogramowanie do Kinecta ze źródeł ==&lt;br /&gt;
&lt;br /&gt;
Do pełnego działania Kinecta na Linuxie potrzebne są: OpenNI2, NiTE2, libfreenect z driverem do OpenNI2 oraz wrapper do Pythona - &amp;lt;code&amp;gt;nite2&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Firma PrimeSense, autor OpenNI, została wykupiona przez Apple'a. Następnie projekt OpenNI został utajniony. Ponieważ jest to opensource, kody źródłowe są nadal dostępne. Najbardziej aktywnym forkiem jest repozytorium prowadzone przez http://occipital.com, dostępne pod adresem https://github.com/occipital/OpenNI2.&lt;br /&gt;
&lt;br /&gt;
=== OpenNI2 ===&lt;br /&gt;
&lt;br /&gt;
OpenNI2 można zdobyć na dwa sposoby - zbudować ze źródeł lub pobrać binarki.&lt;br /&gt;
&lt;br /&gt;
==== Kompilacja OpenNI2 ====&lt;br /&gt;
&lt;br /&gt;
Instalacja wymagań&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install git-core g++ cmake libudev-dev libxi-dev libxmu-dev python libusb-1.0-0-dev libudev-dev freeglut3-dev doxygen graphviz&lt;br /&gt;
&lt;br /&gt;
 sudo add-apt-repository ppa:webupd8team/java&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get install oracle-java8-installer&lt;br /&gt;
&lt;br /&gt;
Pobranie repozytorum i kompilacja&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/occipital/OpenNI2.git&lt;br /&gt;
 cd OpenNI2&lt;br /&gt;
 #Save path for further reference&lt;br /&gt;
 OPENNI_DIR=&amp;quot;${PWD}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 sed -i '/-Werror/ s/^/#/' ${OPENNI_DIR}/ThirdParty/PSCommon/BuildSystem/CommonCppMakefile&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;LDFLAGS += -lpthread&amp;quot; &amp;gt;&amp;gt; ${OPENNI_DIR}/Source/Tools/NiViewer/Makefile&lt;br /&gt;
 make&lt;br /&gt;
 sudo ${OPENNI_DIR}/Packaging/Linux/install.sh&lt;br /&gt;
 sudo gpasswd -a ${USER} video&lt;br /&gt;
&lt;br /&gt;
==== Instalacja z binarek ====&lt;br /&gt;
&lt;br /&gt;
Należy pobrać binarny pakiet ze strony http://structure.io/openni i wypakować do katalogu np. &amp;lt;code&amp;gt;OpenNI-Linux-x64-2.2&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 $ cd OpenNI-Linux-x64-2.2&lt;br /&gt;
 $ sudo ./install.sh&lt;br /&gt;
&lt;br /&gt;
w aktualnym katalogu utworzy się skrypt &amp;lt;code&amp;gt;OpenNIDevEnvironment&amp;lt;/code&amp;gt;, który ustawia środowisko dev&lt;br /&gt;
&lt;br /&gt;
=== Kompilacja libfreenect ===&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/OpenKinect/libfreenect.git&lt;br /&gt;
 cd libfreenect&lt;br /&gt;
 mkdir build; cd build&lt;br /&gt;
 cmake .. -DBUILD_OPENNI2_DRIVER=ON&lt;br /&gt;
 make -j4&lt;br /&gt;
 cp -L lib/OpenNI2-FreenectDriver/libFreenectDriver.so ${OPENNI_DIR}/Bin/x64-Release/OpenNI2/Drivers/&lt;br /&gt;
&lt;br /&gt;
Test&lt;br /&gt;
&lt;br /&gt;
 cd ${OPENNI_DIR}/Bin/x64-Release/&lt;br /&gt;
 ./NiViewer&lt;br /&gt;
&lt;br /&gt;
=== Instalacja biblioteki NiTE2 ===&lt;br /&gt;
&lt;br /&gt;
NiTE od zawsze było oprogramowaniem bez dostępnych kodów źródłowych. Binarki można znaleźć tutaj: http://ilab.usc.edu/packages/forall/ubuntu-13.10/NiTE-Linux-x64-2.2.tar.bz2&lt;br /&gt;
 &lt;br /&gt;
 cd NiTE-Linux-x64-2.2&lt;br /&gt;
 sudo ./install.sh&lt;br /&gt;
&lt;br /&gt;
 cp -L /usr/local/lib/OpenNI2-FreenectDriver/libFreenectDriver.so NiTE-Linux-x64-2.2/Samples/Bin/OpenNI2/Drivers/&lt;/div&gt;</summary>
		<author><name>Alex</name></author>
		
	</entry>
	<entry>
		<id>http://brain.fuw.edu.pl/edu/index.php?title=Instalacja_i_konfiguracja_Kinect,_Wiimote_i_Eyetrackera&amp;diff=5011</id>
		<title>Instalacja i konfiguracja Kinect, Wiimote i Eyetrackera</title>
		<link rel="alternate" type="text/html" href="http://brain.fuw.edu.pl/edu/index.php?title=Instalacja_i_konfiguracja_Kinect,_Wiimote_i_Eyetrackera&amp;diff=5011"/>
		<updated>2016-03-23T11:35:22Z</updated>

		<summary type="html">&lt;p&gt;Alex: /* Kinect + OpenNI2 + NiTE2 + freenect */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Kinect + OpenNI2 + NiTE2 + freenect ==&lt;br /&gt;
&lt;br /&gt;
Instalacja OpenNI 2 + NiTE 2 z prekonfigurowanych binarek dla Ubuntu 15.10:&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install freeglut3 python-opencv libboost-all-dev&lt;br /&gt;
 cd ~&lt;br /&gt;
 wget http://static.mroja.net/kinect/kinect.7z&lt;br /&gt;
 7z x kinect.7z&lt;br /&gt;
 cd ~/kinect&lt;br /&gt;
 sudo cp primesense-and-kinect-usb.rules /etc/udev/rules.d/557-primesense-usb.rules&lt;br /&gt;
 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/{USER_NAME}/kinect/Redist&lt;br /&gt;
 cd Redist&lt;br /&gt;
 ./NiViewer&lt;br /&gt;
&lt;br /&gt;
Linijkę &amp;lt;code&amp;gt;export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/{USER_NAME}/kinect/Redist&amp;lt;/code&amp;gt; najlepiej wrzucić do pliku &amp;lt;code&amp;gt;.profile&amp;lt;/code&amp;gt; lub &amp;lt;code&amp;gt;.bashrc&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Należy prawdzić czy użytkownik, na koncie którego będzie używany Kinect należy do grupy plugdev -- jeśli nie, dodać: &lt;br /&gt;
 sudo usermod -G plugdev -a USER_NAME&lt;br /&gt;
&lt;br /&gt;
Alternatywnie zamiast gotowej paczki binarek można użyć OpenNI ze strony http://structure.io/openni.&lt;br /&gt;
&lt;br /&gt;
=== wrapper+obci ===&lt;br /&gt;
&lt;br /&gt;
Moduł do Pythona (plik &amp;lt;code&amp;gt;nite2.so&amp;lt;/code&amp;gt;) należy zbudować z repozytorium https://github.com/BrainTech/nite2-bindings i umieścić w katalogu &amp;lt;code&amp;gt;/usr/lib/python2.7/dist-packages&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Żeby NiTE2 działo poprawnie wewnątrz OpenBCI należy skopiować katalog NiTE2 (&amp;lt;code&amp;gt;~/kinect/Redist/NiTE2&amp;lt;/code&amp;gt;) do katalogu &amp;lt;code&amp;gt;~/.obci/sandbox&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
na koncie lab&lt;br /&gt;
&lt;br /&gt;
 cd ~/kinect/Redist&lt;br /&gt;
 cp /path_to_file/nite2.so nite2.so&lt;br /&gt;
&lt;br /&gt;
 cp -r /home/lab/kinect/Redist/NiTE2/ ~/.obci/sandbox/&lt;br /&gt;
&lt;br /&gt;
na koncie newtech&lt;br /&gt;
&lt;br /&gt;
 cd ~/kinect/Redist&lt;br /&gt;
 cp /path_to_file/nite2.so nite2.so&lt;br /&gt;
&lt;br /&gt;
 mkdir /home/newtech/.obci/  # jeśli katalog istnieje to pominąć&lt;br /&gt;
 mkdir /home/newtech/.obci/sandbox  # j.w.&lt;br /&gt;
&lt;br /&gt;
 cp -r /home/newtech/kinect/Redist/NiTE2/ ~/.obci/sandbox/&lt;br /&gt;
&lt;br /&gt;
== Instalacja xwiimote ==&lt;br /&gt;
&lt;br /&gt;
UWAGA!!! NIE NALEŻY instalować pakietu xwiimote z repozytoriów Debiana i Ubuntu - są one przestarzałe.&lt;br /&gt;
&lt;br /&gt;
Wymagane wersje:&lt;br /&gt;
* kernel &amp;gt;= 3.5+&lt;br /&gt;
* bluez &amp;gt;= 5.11+&lt;br /&gt;
&lt;br /&gt;
=== A) Instalacja wymaganych pakietów ===&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install autoconf autogen automake gcc bluetooth ncurses-dev libudev-dev libtool git blueman python-dev dh-autoreconf pkg-config swig&lt;br /&gt;
&lt;br /&gt;
=== B) xwiimote driver &amp;amp; utils ===&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/BrainTech/xwiimote&lt;br /&gt;
 cd xwiimote&lt;br /&gt;
 ./autogen.sh&lt;br /&gt;
 make&lt;br /&gt;
 sudo make install&lt;br /&gt;
 sudo ldconfig&lt;br /&gt;
&lt;br /&gt;
=== C) Python bindings ===&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/BrainTech/xwiimote-bindings&lt;br /&gt;
 cd xwiimote-bindings&lt;br /&gt;
 ./autogen.sh&lt;br /&gt;
 make&lt;br /&gt;
 sudo make install&lt;br /&gt;
 sudo ldconfig&lt;br /&gt;
&lt;br /&gt;
=== D) Żeby działało bez sudo dla userów lab i newtech ===&lt;br /&gt;
&lt;br /&gt;
 sudo usermod -a -G input newtech&lt;br /&gt;
 sudo usermod -a -G input lab&lt;br /&gt;
&lt;br /&gt;
=== E) Sparować urządzenie z użyciem wbudowanego do Ubuntu panelu Bluetooth ===&lt;br /&gt;
&lt;br /&gt;
=== F) Demo ===&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/BrainTech/wiiscale.git&lt;br /&gt;
 cd wiiscale&lt;br /&gt;
&lt;br /&gt;
Należy odkomentować linijki 134 i 135:&lt;br /&gt;
&lt;br /&gt;
 134: #        for m in measurements(iface):&lt;br /&gt;
 135: #            print_bboard_measurements(*m)&lt;br /&gt;
&lt;br /&gt;
Demo można uruchomić poleceniem:&lt;br /&gt;
&lt;br /&gt;
 python ./scale.py&lt;br /&gt;
&lt;br /&gt;
== Tobii REX eyetracker ==&lt;br /&gt;
&lt;br /&gt;
* zainstalować pakiet deb dla 64bit Linuxa z http://developer.tobii.com/rex-setup-gaze-sdk/&lt;br /&gt;
* poprosić Aleksa o kopię SDK&lt;br /&gt;
* w katalogu &amp;lt;code&amp;gt;Samples&amp;lt;/code&amp;gt; w SDK znajduje się demo (należy je zbudować poleceniem &amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
== Oprogramowanie do Kinecta ze źródeł ==&lt;br /&gt;
&lt;br /&gt;
Do pełnego działania Kinecta na Linuxie potrzebne są: OpenNI2, NiTE2, libfreenect z driverem do OpenNI2 oraz wrapper do Pythona - &amp;lt;code&amp;gt;nite2&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Firma PrimeSense, autor OpenNI, została wykupiona przez Apple'a. Następnie projekt OpenNI został utajniony. Ponieważ jest to opensource, kody źródłowe są nadal dostępne. Najbardziej aktywnym forkiem jest repozytorium prowadzone przez http://occipital.com, dostępne pod adresem https://github.com/occipital/OpenNI2.&lt;br /&gt;
&lt;br /&gt;
=== OpenNI2 ===&lt;br /&gt;
&lt;br /&gt;
OpenNI2 można zdobyć na dwa sposoby - zbudować ze źródeł lub pobrać binarki.&lt;br /&gt;
&lt;br /&gt;
==== Kompilacja OpenNI2 ====&lt;br /&gt;
&lt;br /&gt;
Instalacja wymagań&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install git-core g++ cmake libudev-dev libxi-dev libxmu-dev python libusb-1.0-0-dev libudev-dev freeglut3-dev doxygen graphviz&lt;br /&gt;
&lt;br /&gt;
 sudo add-apt-repository ppa:webupd8team/java&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get install oracle-java8-installer&lt;br /&gt;
&lt;br /&gt;
Pobranie repozytorum i kompilacja&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/occipital/OpenNI2.git&lt;br /&gt;
 cd OpenNI2&lt;br /&gt;
 #Save path for further reference&lt;br /&gt;
 OPENNI_DIR=&amp;quot;${PWD}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 sed -i '/-Werror/ s/^/#/' ${OPENNI_DIR}/ThirdParty/PSCommon/BuildSystem/CommonCppMakefile&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;LDFLAGS += -lpthread&amp;quot; &amp;gt;&amp;gt; ${OPENNI_DIR}/Source/Tools/NiViewer/Makefile&lt;br /&gt;
 make&lt;br /&gt;
 sudo ${OPENNI_DIR}/Packaging/Linux/install.sh&lt;br /&gt;
 sudo gpasswd -a ${USER} video&lt;br /&gt;
&lt;br /&gt;
==== Instalacja z binarek ====&lt;br /&gt;
&lt;br /&gt;
Należy pobrać binarny pakiet ze strony http://structure.io/openni i wypakować do katalogu np. &amp;lt;code&amp;gt;OpenNI-Linux-x64-2.2&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 $ cd OpenNI-Linux-x64-2.2&lt;br /&gt;
 $ sudo ./install.sh&lt;br /&gt;
&lt;br /&gt;
w aktualnym katalogu utworzy się skrypt &amp;lt;code&amp;gt;OpenNIDevEnvironment&amp;lt;/code&amp;gt;, który ustawia środowisko dev&lt;br /&gt;
&lt;br /&gt;
=== Kompilacja libfreenect ===&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/OpenKinect/libfreenect.git&lt;br /&gt;
 cd libfreenect&lt;br /&gt;
 mkdir build; cd build&lt;br /&gt;
 cmake .. -DBUILD_OPENNI2_DRIVER=ON&lt;br /&gt;
 make -j4&lt;br /&gt;
 cp -L lib/OpenNI2-FreenectDriver/libFreenectDriver.so ${OPENNI_DIR}/Bin/x64-Release/OpenNI2/Drivers/&lt;br /&gt;
&lt;br /&gt;
Test&lt;br /&gt;
&lt;br /&gt;
 cd ${OPENNI_DIR}/Bin/x64-Release/&lt;br /&gt;
 ./NiViewer&lt;br /&gt;
&lt;br /&gt;
=== Instalacja biblioteki NiTE2 ===&lt;br /&gt;
&lt;br /&gt;
NiTE od zawsze było oprogramowaniem bez dostępnych kodów źródłowych. Binarki można znaleźć tutaj: http://ilab.usc.edu/packages/forall/ubuntu-13.10/NiTE-Linux-x64-2.2.tar.bz2&lt;br /&gt;
 &lt;br /&gt;
 cd NiTE-Linux-x64-2.2&lt;br /&gt;
 sudo ./install.sh&lt;br /&gt;
&lt;br /&gt;
 cp -L /usr/local/lib/OpenNI2-FreenectDriver/libFreenectDriver.so NiTE-Linux-x64-2.2/Samples/Bin/OpenNI2/Drivers/&lt;/div&gt;</summary>
		<author><name>Alex</name></author>
		
	</entry>
	<entry>
		<id>http://brain.fuw.edu.pl/edu/index.php?title=Instalacja_i_konfiguracja_Kinect,_Wiimote_i_Eyetrackera&amp;diff=5010</id>
		<title>Instalacja i konfiguracja Kinect, Wiimote i Eyetrackera</title>
		<link rel="alternate" type="text/html" href="http://brain.fuw.edu.pl/edu/index.php?title=Instalacja_i_konfiguracja_Kinect,_Wiimote_i_Eyetrackera&amp;diff=5010"/>
		<updated>2016-03-23T11:32:16Z</updated>

		<summary type="html">&lt;p&gt;Alex: /* wrapper+obci */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Kinect + OpenNI2 + NiTE2 + freenect ==&lt;br /&gt;
&lt;br /&gt;
Instalacja OpenNI 2 + NiTE 2 z prekonfigurowanych binarek dla Ubuntu 15.10:&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install freeglut3 python-opencv libboost-all-dev&lt;br /&gt;
 cd ~&lt;br /&gt;
 wget http://static.mroja.net/kinect/kinect.7z&lt;br /&gt;
 7z x kinect.7z&lt;br /&gt;
 cd ~/kinect&lt;br /&gt;
 sudo cp primesense-and-kinect-usb.rules /etc/udev/rules.d/557-primesense-usb.rules&lt;br /&gt;
 export LD_LIBRARY_PATH=/home/{USER_NAME}/kinect/Redist (to najlepiej wrzucić do .profile)&lt;br /&gt;
 cd Redist&lt;br /&gt;
 ./NiViewer&lt;br /&gt;
&lt;br /&gt;
Należy prawdzić czy użytkownik, na koncie którego będzie używany Kinect należy do grupy plugdev -- jeśli nie, dodać: &lt;br /&gt;
 sudo usermod -G plugdev -a USER_NAME&lt;br /&gt;
&lt;br /&gt;
Alternatywnie zamiast gotowej paczki binarek można użyć OpenNI ze strony http://structure.io/openni.&lt;br /&gt;
&lt;br /&gt;
=== wrapper+obci ===&lt;br /&gt;
&lt;br /&gt;
Moduł do Pythona (plik &amp;lt;code&amp;gt;nite2.so&amp;lt;/code&amp;gt;) należy zbudować z repozytorium https://github.com/BrainTech/nite2-bindings i umieścić w katalogu &amp;lt;code&amp;gt;/usr/lib/python2.7/dist-packages&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Żeby NiTE2 działo poprawnie wewnątrz OpenBCI należy skopiować katalog NiTE2 (&amp;lt;code&amp;gt;~/kinect/Redist/NiTE2&amp;lt;/code&amp;gt;) do katalogu &amp;lt;code&amp;gt;~/.obci/sandbox&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
na koncie lab&lt;br /&gt;
&lt;br /&gt;
 cd ~/kinect/Redist&lt;br /&gt;
 cp /path_to_file/nite2.so nite2.so&lt;br /&gt;
&lt;br /&gt;
 cp -r /home/lab/kinect/Redist/NiTE2/ ~/.obci/sandbox/&lt;br /&gt;
&lt;br /&gt;
na koncie newtech&lt;br /&gt;
&lt;br /&gt;
 cd ~/kinect/Redist&lt;br /&gt;
 cp /path_to_file/nite2.so nite2.so&lt;br /&gt;
&lt;br /&gt;
 mkdir /home/newtech/.obci/  # jeśli katalog istnieje to pominąć&lt;br /&gt;
 mkdir /home/newtech/.obci/sandbox  # j.w.&lt;br /&gt;
&lt;br /&gt;
 cp -r /home/newtech/kinect/Redist/NiTE2/ ~/.obci/sandbox/&lt;br /&gt;
&lt;br /&gt;
== Instalacja xwiimote ==&lt;br /&gt;
&lt;br /&gt;
UWAGA!!! NIE NALEŻY instalować pakietu xwiimote z repozytoriów Debiana i Ubuntu - są one przestarzałe.&lt;br /&gt;
&lt;br /&gt;
Wymagane wersje:&lt;br /&gt;
* kernel &amp;gt;= 3.5+&lt;br /&gt;
* bluez &amp;gt;= 5.11+&lt;br /&gt;
&lt;br /&gt;
=== A) Instalacja wymaganych pakietów ===&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install autoconf autogen automake gcc bluetooth ncurses-dev libudev-dev libtool git blueman python-dev dh-autoreconf pkg-config swig&lt;br /&gt;
&lt;br /&gt;
=== B) xwiimote driver &amp;amp; utils ===&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/BrainTech/xwiimote&lt;br /&gt;
 cd xwiimote&lt;br /&gt;
 ./autogen.sh&lt;br /&gt;
 make&lt;br /&gt;
 sudo make install&lt;br /&gt;
 sudo ldconfig&lt;br /&gt;
&lt;br /&gt;
=== C) Python bindings ===&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/BrainTech/xwiimote-bindings&lt;br /&gt;
 cd xwiimote-bindings&lt;br /&gt;
 ./autogen.sh&lt;br /&gt;
 make&lt;br /&gt;
 sudo make install&lt;br /&gt;
 sudo ldconfig&lt;br /&gt;
&lt;br /&gt;
=== D) Żeby działało bez sudo dla userów lab i newtech ===&lt;br /&gt;
&lt;br /&gt;
 sudo usermod -a -G input newtech&lt;br /&gt;
 sudo usermod -a -G input lab&lt;br /&gt;
&lt;br /&gt;
=== E) Sparować urządzenie z użyciem wbudowanego do Ubuntu panelu Bluetooth ===&lt;br /&gt;
&lt;br /&gt;
=== F) Demo ===&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/BrainTech/wiiscale.git&lt;br /&gt;
 cd wiiscale&lt;br /&gt;
&lt;br /&gt;
Należy odkomentować linijki 134 i 135:&lt;br /&gt;
&lt;br /&gt;
 134: #        for m in measurements(iface):&lt;br /&gt;
 135: #            print_bboard_measurements(*m)&lt;br /&gt;
&lt;br /&gt;
Demo można uruchomić poleceniem:&lt;br /&gt;
&lt;br /&gt;
 python ./scale.py&lt;br /&gt;
&lt;br /&gt;
== Tobii REX eyetracker ==&lt;br /&gt;
&lt;br /&gt;
* zainstalować pakiet deb dla 64bit Linuxa z http://developer.tobii.com/rex-setup-gaze-sdk/&lt;br /&gt;
* poprosić Aleksa o kopię SDK&lt;br /&gt;
* w katalogu &amp;lt;code&amp;gt;Samples&amp;lt;/code&amp;gt; w SDK znajduje się demo (należy je zbudować poleceniem &amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
== Oprogramowanie do Kinecta ze źródeł ==&lt;br /&gt;
&lt;br /&gt;
Do pełnego działania Kinecta na Linuxie potrzebne są: OpenNI2, NiTE2, libfreenect z driverem do OpenNI2 oraz wrapper do Pythona - &amp;lt;code&amp;gt;nite2&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Firma PrimeSense, autor OpenNI, została wykupiona przez Apple'a. Następnie projekt OpenNI został utajniony. Ponieważ jest to opensource, kody źródłowe są nadal dostępne. Najbardziej aktywnym forkiem jest repozytorium prowadzone przez http://occipital.com, dostępne pod adresem https://github.com/occipital/OpenNI2.&lt;br /&gt;
&lt;br /&gt;
=== OpenNI2 ===&lt;br /&gt;
&lt;br /&gt;
OpenNI2 można zdobyć na dwa sposoby - zbudować ze źródeł lub pobrać binarki.&lt;br /&gt;
&lt;br /&gt;
==== Kompilacja OpenNI2 ====&lt;br /&gt;
&lt;br /&gt;
Instalacja wymagań&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install git-core g++ cmake libudev-dev libxi-dev libxmu-dev python libusb-1.0-0-dev libudev-dev freeglut3-dev doxygen graphviz&lt;br /&gt;
&lt;br /&gt;
 sudo add-apt-repository ppa:webupd8team/java&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get install oracle-java8-installer&lt;br /&gt;
&lt;br /&gt;
Pobranie repozytorum i kompilacja&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/occipital/OpenNI2.git&lt;br /&gt;
 cd OpenNI2&lt;br /&gt;
 #Save path for further reference&lt;br /&gt;
 OPENNI_DIR=&amp;quot;${PWD}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 sed -i '/-Werror/ s/^/#/' ${OPENNI_DIR}/ThirdParty/PSCommon/BuildSystem/CommonCppMakefile&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;LDFLAGS += -lpthread&amp;quot; &amp;gt;&amp;gt; ${OPENNI_DIR}/Source/Tools/NiViewer/Makefile&lt;br /&gt;
 make&lt;br /&gt;
 sudo ${OPENNI_DIR}/Packaging/Linux/install.sh&lt;br /&gt;
 sudo gpasswd -a ${USER} video&lt;br /&gt;
&lt;br /&gt;
==== Instalacja z binarek ====&lt;br /&gt;
&lt;br /&gt;
Należy pobrać binarny pakiet ze strony http://structure.io/openni i wypakować do katalogu np. &amp;lt;code&amp;gt;OpenNI-Linux-x64-2.2&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 $ cd OpenNI-Linux-x64-2.2&lt;br /&gt;
 $ sudo ./install.sh&lt;br /&gt;
&lt;br /&gt;
w aktualnym katalogu utworzy się skrypt &amp;lt;code&amp;gt;OpenNIDevEnvironment&amp;lt;/code&amp;gt;, który ustawia środowisko dev&lt;br /&gt;
&lt;br /&gt;
=== Kompilacja libfreenect ===&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/OpenKinect/libfreenect.git&lt;br /&gt;
 cd libfreenect&lt;br /&gt;
 mkdir build; cd build&lt;br /&gt;
 cmake .. -DBUILD_OPENNI2_DRIVER=ON&lt;br /&gt;
 make -j4&lt;br /&gt;
 cp -L lib/OpenNI2-FreenectDriver/libFreenectDriver.so ${OPENNI_DIR}/Bin/x64-Release/OpenNI2/Drivers/&lt;br /&gt;
&lt;br /&gt;
Test&lt;br /&gt;
&lt;br /&gt;
 cd ${OPENNI_DIR}/Bin/x64-Release/&lt;br /&gt;
 ./NiViewer&lt;br /&gt;
&lt;br /&gt;
=== Instalacja biblioteki NiTE2 ===&lt;br /&gt;
&lt;br /&gt;
NiTE od zawsze było oprogramowaniem bez dostępnych kodów źródłowych. Binarki można znaleźć tutaj: http://ilab.usc.edu/packages/forall/ubuntu-13.10/NiTE-Linux-x64-2.2.tar.bz2&lt;br /&gt;
 &lt;br /&gt;
 cd NiTE-Linux-x64-2.2&lt;br /&gt;
 sudo ./install.sh&lt;br /&gt;
&lt;br /&gt;
 cp -L /usr/local/lib/OpenNI2-FreenectDriver/libFreenectDriver.so NiTE-Linux-x64-2.2/Samples/Bin/OpenNI2/Drivers/&lt;/div&gt;</summary>
		<author><name>Alex</name></author>
		
	</entry>
	<entry>
		<id>http://brain.fuw.edu.pl/edu/index.php?title=Instalacja_i_konfiguracja_Kinect,_Wiimote_i_Eyetrackera&amp;diff=5009</id>
		<title>Instalacja i konfiguracja Kinect, Wiimote i Eyetrackera</title>
		<link rel="alternate" type="text/html" href="http://brain.fuw.edu.pl/edu/index.php?title=Instalacja_i_konfiguracja_Kinect,_Wiimote_i_Eyetrackera&amp;diff=5009"/>
		<updated>2016-03-23T11:30:43Z</updated>

		<summary type="html">&lt;p&gt;Alex: /* Oprogramowanie do Kinecta ze źródeł */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Kinect + OpenNI2 + NiTE2 + freenect ==&lt;br /&gt;
&lt;br /&gt;
Instalacja OpenNI 2 + NiTE 2 z prekonfigurowanych binarek dla Ubuntu 15.10:&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install freeglut3 python-opencv libboost-all-dev&lt;br /&gt;
 cd ~&lt;br /&gt;
 wget http://static.mroja.net/kinect/kinect.7z&lt;br /&gt;
 7z x kinect.7z&lt;br /&gt;
 cd ~/kinect&lt;br /&gt;
 sudo cp primesense-and-kinect-usb.rules /etc/udev/rules.d/557-primesense-usb.rules&lt;br /&gt;
 export LD_LIBRARY_PATH=/home/{USER_NAME}/kinect/Redist (to najlepiej wrzucić do .profile)&lt;br /&gt;
 cd Redist&lt;br /&gt;
 ./NiViewer&lt;br /&gt;
&lt;br /&gt;
Należy prawdzić czy użytkownik, na koncie którego będzie używany Kinect należy do grupy plugdev -- jeśli nie, dodać: &lt;br /&gt;
 sudo usermod -G plugdev -a USER_NAME&lt;br /&gt;
&lt;br /&gt;
Alternatywnie zamiast gotowej paczki binarek można użyć OpenNI ze strony http://structure.io/openni.&lt;br /&gt;
&lt;br /&gt;
=== wrapper+obci ===&lt;br /&gt;
&lt;br /&gt;
Moduł do Pythona (plik &amp;lt;code&amp;gt;nite2.so&amp;lt;/code&amp;gt;) należy zbudować z repozytorium https://github.com/BrainTech/nite2-bindings i umieścić w katalogu &amp;lt;code&amp;gt;/usr/lib/python2.7/dist-packages&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Skopiuj katalog NiTE2 (&amp;lt;code&amp;gt;/home/USER_NAME/kinect/Redist/NiTE2&amp;lt;/code&amp;gt;) do katalogu &amp;lt;code&amp;gt;~/.obci/sandbox&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
na koncie lab&lt;br /&gt;
&lt;br /&gt;
 cd ~/kinect/Redist&lt;br /&gt;
 cp /path_to_file/nite2.so nite2.so&lt;br /&gt;
&lt;br /&gt;
 cp -r /home/lab/kinect/Redist/NiTE2/ ~/.obci/sandbox/&lt;br /&gt;
&lt;br /&gt;
na koncie newtech&lt;br /&gt;
&lt;br /&gt;
 cd ~/kinect/Redist&lt;br /&gt;
 cp /path_to_file/nite2.so nite2.so&lt;br /&gt;
&lt;br /&gt;
 mkdir /home/newtech/.obci/  # jeśli katalog istnieje to pominąć&lt;br /&gt;
 mkdir /home/newtech/.obci/sandbox  # j.w.&lt;br /&gt;
&lt;br /&gt;
 cp -r /home/newtech/kinect/Redist/NiTE2/ ~/.obci/sandbox/&lt;br /&gt;
&lt;br /&gt;
== Instalacja xwiimote ==&lt;br /&gt;
&lt;br /&gt;
UWAGA!!! NIE NALEŻY instalować pakietu xwiimote z repozytoriów Debiana i Ubuntu - są one przestarzałe.&lt;br /&gt;
&lt;br /&gt;
Wymagane wersje:&lt;br /&gt;
* kernel &amp;gt;= 3.5+&lt;br /&gt;
* bluez &amp;gt;= 5.11+&lt;br /&gt;
&lt;br /&gt;
=== A) Instalacja wymaganych pakietów ===&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install autoconf autogen automake gcc bluetooth ncurses-dev libudev-dev libtool git blueman python-dev dh-autoreconf pkg-config swig&lt;br /&gt;
&lt;br /&gt;
=== B) xwiimote driver &amp;amp; utils ===&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/BrainTech/xwiimote&lt;br /&gt;
 cd xwiimote&lt;br /&gt;
 ./autogen.sh&lt;br /&gt;
 make&lt;br /&gt;
 sudo make install&lt;br /&gt;
 sudo ldconfig&lt;br /&gt;
&lt;br /&gt;
=== C) Python bindings ===&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/BrainTech/xwiimote-bindings&lt;br /&gt;
 cd xwiimote-bindings&lt;br /&gt;
 ./autogen.sh&lt;br /&gt;
 make&lt;br /&gt;
 sudo make install&lt;br /&gt;
 sudo ldconfig&lt;br /&gt;
&lt;br /&gt;
=== D) Żeby działało bez sudo dla userów lab i newtech ===&lt;br /&gt;
&lt;br /&gt;
 sudo usermod -a -G input newtech&lt;br /&gt;
 sudo usermod -a -G input lab&lt;br /&gt;
&lt;br /&gt;
=== E) Sparować urządzenie z użyciem wbudowanego do Ubuntu panelu Bluetooth ===&lt;br /&gt;
&lt;br /&gt;
=== F) Demo ===&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/BrainTech/wiiscale.git&lt;br /&gt;
 cd wiiscale&lt;br /&gt;
&lt;br /&gt;
Należy odkomentować linijki 134 i 135:&lt;br /&gt;
&lt;br /&gt;
 134: #        for m in measurements(iface):&lt;br /&gt;
 135: #            print_bboard_measurements(*m)&lt;br /&gt;
&lt;br /&gt;
Demo można uruchomić poleceniem:&lt;br /&gt;
&lt;br /&gt;
 python ./scale.py&lt;br /&gt;
&lt;br /&gt;
== Tobii REX eyetracker ==&lt;br /&gt;
&lt;br /&gt;
* zainstalować pakiet deb dla 64bit Linuxa z http://developer.tobii.com/rex-setup-gaze-sdk/&lt;br /&gt;
* poprosić Aleksa o kopię SDK&lt;br /&gt;
* w katalogu &amp;lt;code&amp;gt;Samples&amp;lt;/code&amp;gt; w SDK znajduje się demo (należy je zbudować poleceniem &amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
== Oprogramowanie do Kinecta ze źródeł ==&lt;br /&gt;
&lt;br /&gt;
Do pełnego działania Kinecta na Linuxie potrzebne są: OpenNI2, NiTE2, libfreenect z driverem do OpenNI2 oraz wrapper do Pythona - &amp;lt;code&amp;gt;nite2&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Firma PrimeSense, autor OpenNI, została wykupiona przez Apple'a. Następnie projekt OpenNI został utajniony. Ponieważ jest to opensource, kody źródłowe są nadal dostępne. Najbardziej aktywnym forkiem jest repozytorium prowadzone przez http://occipital.com, dostępne pod adresem https://github.com/occipital/OpenNI2.&lt;br /&gt;
&lt;br /&gt;
=== OpenNI2 ===&lt;br /&gt;
&lt;br /&gt;
OpenNI2 można zdobyć na dwa sposoby - zbudować ze źródeł lub pobrać binarki.&lt;br /&gt;
&lt;br /&gt;
==== Kompilacja OpenNI2 ====&lt;br /&gt;
&lt;br /&gt;
Instalacja wymagań&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install git-core g++ cmake libudev-dev libxi-dev libxmu-dev python libusb-1.0-0-dev libudev-dev freeglut3-dev doxygen graphviz&lt;br /&gt;
&lt;br /&gt;
 sudo add-apt-repository ppa:webupd8team/java&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get install oracle-java8-installer&lt;br /&gt;
&lt;br /&gt;
Pobranie repozytorum i kompilacja&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/occipital/OpenNI2.git&lt;br /&gt;
 cd OpenNI2&lt;br /&gt;
 #Save path for further reference&lt;br /&gt;
 OPENNI_DIR=&amp;quot;${PWD}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 sed -i '/-Werror/ s/^/#/' ${OPENNI_DIR}/ThirdParty/PSCommon/BuildSystem/CommonCppMakefile&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;LDFLAGS += -lpthread&amp;quot; &amp;gt;&amp;gt; ${OPENNI_DIR}/Source/Tools/NiViewer/Makefile&lt;br /&gt;
 make&lt;br /&gt;
 sudo ${OPENNI_DIR}/Packaging/Linux/install.sh&lt;br /&gt;
 sudo gpasswd -a ${USER} video&lt;br /&gt;
&lt;br /&gt;
==== Instalacja z binarek ====&lt;br /&gt;
&lt;br /&gt;
Należy pobrać binarny pakiet ze strony http://structure.io/openni i wypakować do katalogu np. &amp;lt;code&amp;gt;OpenNI-Linux-x64-2.2&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 $ cd OpenNI-Linux-x64-2.2&lt;br /&gt;
 $ sudo ./install.sh&lt;br /&gt;
&lt;br /&gt;
w aktualnym katalogu utworzy się skrypt &amp;lt;code&amp;gt;OpenNIDevEnvironment&amp;lt;/code&amp;gt;, który ustawia środowisko dev&lt;br /&gt;
&lt;br /&gt;
=== Kompilacja libfreenect ===&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/OpenKinect/libfreenect.git&lt;br /&gt;
 cd libfreenect&lt;br /&gt;
 mkdir build; cd build&lt;br /&gt;
 cmake .. -DBUILD_OPENNI2_DRIVER=ON&lt;br /&gt;
 make -j4&lt;br /&gt;
 cp -L lib/OpenNI2-FreenectDriver/libFreenectDriver.so ${OPENNI_DIR}/Bin/x64-Release/OpenNI2/Drivers/&lt;br /&gt;
&lt;br /&gt;
Test&lt;br /&gt;
&lt;br /&gt;
 cd ${OPENNI_DIR}/Bin/x64-Release/&lt;br /&gt;
 ./NiViewer&lt;br /&gt;
&lt;br /&gt;
=== Instalacja biblioteki NiTE2 ===&lt;br /&gt;
&lt;br /&gt;
NiTE od zawsze było oprogramowaniem bez dostępnych kodów źródłowych. Binarki można znaleźć tutaj: http://ilab.usc.edu/packages/forall/ubuntu-13.10/NiTE-Linux-x64-2.2.tar.bz2&lt;br /&gt;
 &lt;br /&gt;
 cd NiTE-Linux-x64-2.2&lt;br /&gt;
 sudo ./install.sh&lt;br /&gt;
&lt;br /&gt;
 cp -L /usr/local/lib/OpenNI2-FreenectDriver/libFreenectDriver.so NiTE-Linux-x64-2.2/Samples/Bin/OpenNI2/Drivers/&lt;/div&gt;</summary>
		<author><name>Alex</name></author>
		
	</entry>
	<entry>
		<id>http://brain.fuw.edu.pl/edu/index.php?title=Instalacja_i_konfiguracja_Kinect,_Wiimote_i_Eyetrackera&amp;diff=5008</id>
		<title>Instalacja i konfiguracja Kinect, Wiimote i Eyetrackera</title>
		<link rel="alternate" type="text/html" href="http://brain.fuw.edu.pl/edu/index.php?title=Instalacja_i_konfiguracja_Kinect,_Wiimote_i_Eyetrackera&amp;diff=5008"/>
		<updated>2016-03-23T11:29:53Z</updated>

		<summary type="html">&lt;p&gt;Alex: /* Instalacja biblioteki NiTE2 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Kinect + OpenNI2 + NiTE2 + freenect ==&lt;br /&gt;
&lt;br /&gt;
Instalacja OpenNI 2 + NiTE 2 z prekonfigurowanych binarek dla Ubuntu 15.10:&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install freeglut3 python-opencv libboost-all-dev&lt;br /&gt;
 cd ~&lt;br /&gt;
 wget http://static.mroja.net/kinect/kinect.7z&lt;br /&gt;
 7z x kinect.7z&lt;br /&gt;
 cd ~/kinect&lt;br /&gt;
 sudo cp primesense-and-kinect-usb.rules /etc/udev/rules.d/557-primesense-usb.rules&lt;br /&gt;
 export LD_LIBRARY_PATH=/home/{USER_NAME}/kinect/Redist (to najlepiej wrzucić do .profile)&lt;br /&gt;
 cd Redist&lt;br /&gt;
 ./NiViewer&lt;br /&gt;
&lt;br /&gt;
Należy prawdzić czy użytkownik, na koncie którego będzie używany Kinect należy do grupy plugdev -- jeśli nie, dodać: &lt;br /&gt;
 sudo usermod -G plugdev -a USER_NAME&lt;br /&gt;
&lt;br /&gt;
Alternatywnie zamiast gotowej paczki binarek można użyć OpenNI ze strony http://structure.io/openni.&lt;br /&gt;
&lt;br /&gt;
=== wrapper+obci ===&lt;br /&gt;
&lt;br /&gt;
Moduł do Pythona (plik &amp;lt;code&amp;gt;nite2.so&amp;lt;/code&amp;gt;) należy zbudować z repozytorium https://github.com/BrainTech/nite2-bindings i umieścić w katalogu &amp;lt;code&amp;gt;/usr/lib/python2.7/dist-packages&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Skopiuj katalog NiTE2 (&amp;lt;code&amp;gt;/home/USER_NAME/kinect/Redist/NiTE2&amp;lt;/code&amp;gt;) do katalogu &amp;lt;code&amp;gt;~/.obci/sandbox&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
na koncie lab&lt;br /&gt;
&lt;br /&gt;
 cd ~/kinect/Redist&lt;br /&gt;
 cp /path_to_file/nite2.so nite2.so&lt;br /&gt;
&lt;br /&gt;
 cp -r /home/lab/kinect/Redist/NiTE2/ ~/.obci/sandbox/&lt;br /&gt;
&lt;br /&gt;
na koncie newtech&lt;br /&gt;
&lt;br /&gt;
 cd ~/kinect/Redist&lt;br /&gt;
 cp /path_to_file/nite2.so nite2.so&lt;br /&gt;
&lt;br /&gt;
 mkdir /home/newtech/.obci/  # jeśli katalog istnieje to pominąć&lt;br /&gt;
 mkdir /home/newtech/.obci/sandbox  # j.w.&lt;br /&gt;
&lt;br /&gt;
 cp -r /home/newtech/kinect/Redist/NiTE2/ ~/.obci/sandbox/&lt;br /&gt;
&lt;br /&gt;
== Instalacja xwiimote ==&lt;br /&gt;
&lt;br /&gt;
UWAGA!!! NIE NALEŻY instalować pakietu xwiimote z repozytoriów Debiana i Ubuntu - są one przestarzałe.&lt;br /&gt;
&lt;br /&gt;
Wymagane wersje:&lt;br /&gt;
* kernel &amp;gt;= 3.5+&lt;br /&gt;
* bluez &amp;gt;= 5.11+&lt;br /&gt;
&lt;br /&gt;
=== A) Instalacja wymaganych pakietów ===&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install autoconf autogen automake gcc bluetooth ncurses-dev libudev-dev libtool git blueman python-dev dh-autoreconf pkg-config swig&lt;br /&gt;
&lt;br /&gt;
=== B) xwiimote driver &amp;amp; utils ===&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/BrainTech/xwiimote&lt;br /&gt;
 cd xwiimote&lt;br /&gt;
 ./autogen.sh&lt;br /&gt;
 make&lt;br /&gt;
 sudo make install&lt;br /&gt;
 sudo ldconfig&lt;br /&gt;
&lt;br /&gt;
=== C) Python bindings ===&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/BrainTech/xwiimote-bindings&lt;br /&gt;
 cd xwiimote-bindings&lt;br /&gt;
 ./autogen.sh&lt;br /&gt;
 make&lt;br /&gt;
 sudo make install&lt;br /&gt;
 sudo ldconfig&lt;br /&gt;
&lt;br /&gt;
=== D) Żeby działało bez sudo dla userów lab i newtech ===&lt;br /&gt;
&lt;br /&gt;
 sudo usermod -a -G input newtech&lt;br /&gt;
 sudo usermod -a -G input lab&lt;br /&gt;
&lt;br /&gt;
=== E) Sparować urządzenie z użyciem wbudowanego do Ubuntu panelu Bluetooth ===&lt;br /&gt;
&lt;br /&gt;
=== F) Demo ===&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/BrainTech/wiiscale.git&lt;br /&gt;
 cd wiiscale&lt;br /&gt;
&lt;br /&gt;
Należy odkomentować linijki 134 i 135:&lt;br /&gt;
&lt;br /&gt;
 134: #        for m in measurements(iface):&lt;br /&gt;
 135: #            print_bboard_measurements(*m)&lt;br /&gt;
&lt;br /&gt;
Demo można uruchomić poleceniem:&lt;br /&gt;
&lt;br /&gt;
 python ./scale.py&lt;br /&gt;
&lt;br /&gt;
== Tobii REX eyetracker ==&lt;br /&gt;
&lt;br /&gt;
* zainstalować pakiet deb dla 64bit Linuxa z http://developer.tobii.com/rex-setup-gaze-sdk/&lt;br /&gt;
* poprosić Aleksa o kopię SDK&lt;br /&gt;
* w katalogu &amp;lt;code&amp;gt;Samples&amp;lt;/code&amp;gt; w SDK znajduje się demo (należy je zbudować poleceniem &amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
== Oprogramowanie do Kinecta ze źródeł ==&lt;br /&gt;
&lt;br /&gt;
Do pełnego działania Kinecta na Linuxie potrzebne są: OpenNI2, NiTE2, libfreenect z driverem do OpenNI2 oraz wrapper do Pythona - &amp;lt;code&amp;gt;nite2&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Firma PrimeSense, autor OpenNI, została wykupiona przez Apple'a. Następnie projekt OpenNI został utajniony. Ponieważ jest to opensource, kody źródłowe są nadal dostępne. Najbardziej aktywnym forkiem jest repozutorium prowadzone przez http://occipital.com pod, odstępne pod adresem https://github.com/occipital/OpenNI2.&lt;br /&gt;
&lt;br /&gt;
=== OpenNI2 ===&lt;br /&gt;
&lt;br /&gt;
OpenNI2 można zdobyć na dwa sposoby - zbudować ze źródeł lub pobrać binarki.&lt;br /&gt;
&lt;br /&gt;
==== Kompilacja OpenNI2 ====&lt;br /&gt;
&lt;br /&gt;
Instalacja wymagań&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install git-core g++ cmake libudev-dev libxi-dev libxmu-dev python libusb-1.0-0-dev libudev-dev freeglut3-dev doxygen graphviz&lt;br /&gt;
&lt;br /&gt;
 sudo add-apt-repository ppa:webupd8team/java&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get install oracle-java8-installer&lt;br /&gt;
&lt;br /&gt;
Pobranie repozytorum i kompilacja&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/occipital/OpenNI2.git&lt;br /&gt;
 cd OpenNI2&lt;br /&gt;
 #Save path for further reference&lt;br /&gt;
 OPENNI_DIR=&amp;quot;${PWD}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 sed -i '/-Werror/ s/^/#/' ${OPENNI_DIR}/ThirdParty/PSCommon/BuildSystem/CommonCppMakefile&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;LDFLAGS += -lpthread&amp;quot; &amp;gt;&amp;gt; ${OPENNI_DIR}/Source/Tools/NiViewer/Makefile&lt;br /&gt;
 make&lt;br /&gt;
 sudo ${OPENNI_DIR}/Packaging/Linux/install.sh&lt;br /&gt;
 sudo gpasswd -a ${USER} video&lt;br /&gt;
&lt;br /&gt;
==== Instalacja z binarek ====&lt;br /&gt;
&lt;br /&gt;
Należy pobrać binarny pakiet ze strony http://structure.io/openni i wypakować do katalogu np. &amp;lt;code&amp;gt;OpenNI-Linux-x64-2.2&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 $ cd OpenNI-Linux-x64-2.2&lt;br /&gt;
 $ sudo ./install.sh&lt;br /&gt;
&lt;br /&gt;
w aktualnym katalogu utworzy się skrypt &amp;lt;code&amp;gt;OpenNIDevEnvironment&amp;lt;/code&amp;gt;, który ustawia środowisko dev&lt;br /&gt;
&lt;br /&gt;
=== Kompilacja libfreenect ===&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/OpenKinect/libfreenect.git&lt;br /&gt;
 cd libfreenect&lt;br /&gt;
 mkdir build; cd build&lt;br /&gt;
 cmake .. -DBUILD_OPENNI2_DRIVER=ON&lt;br /&gt;
 make -j4&lt;br /&gt;
 cp -L lib/OpenNI2-FreenectDriver/libFreenectDriver.so ${OPENNI_DIR}/Bin/x64-Release/OpenNI2/Drivers/&lt;br /&gt;
&lt;br /&gt;
Test&lt;br /&gt;
&lt;br /&gt;
 cd ${OPENNI_DIR}/Bin/x64-Release/&lt;br /&gt;
 ./NiViewer&lt;br /&gt;
&lt;br /&gt;
=== Instalacja biblioteki NiTE2 ===&lt;br /&gt;
&lt;br /&gt;
NiTE od zawsze było oprogramowaniem bez dostępnych kodów źródłowych. Binarki można znaleźć tutaj: http://ilab.usc.edu/packages/forall/ubuntu-13.10/NiTE-Linux-x64-2.2.tar.bz2&lt;br /&gt;
 &lt;br /&gt;
 cd NiTE-Linux-x64-2.2&lt;br /&gt;
 sudo ./install.sh&lt;br /&gt;
&lt;br /&gt;
 cp -L /usr/local/lib/OpenNI2-FreenectDriver/libFreenectDriver.so NiTE-Linux-x64-2.2/Samples/Bin/OpenNI2/Drivers/&lt;/div&gt;</summary>
		<author><name>Alex</name></author>
		
	</entry>
	<entry>
		<id>http://brain.fuw.edu.pl/edu/index.php?title=Instalacja_i_konfiguracja_Kinect,_Wiimote_i_Eyetrackera&amp;diff=5007</id>
		<title>Instalacja i konfiguracja Kinect, Wiimote i Eyetrackera</title>
		<link rel="alternate" type="text/html" href="http://brain.fuw.edu.pl/edu/index.php?title=Instalacja_i_konfiguracja_Kinect,_Wiimote_i_Eyetrackera&amp;diff=5007"/>
		<updated>2016-03-23T11:28:42Z</updated>

		<summary type="html">&lt;p&gt;Alex: /* Oprogramowanie do Kinecta ze źródeł */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Kinect + OpenNI2 + NiTE2 + freenect ==&lt;br /&gt;
&lt;br /&gt;
Instalacja OpenNI 2 + NiTE 2 z prekonfigurowanych binarek dla Ubuntu 15.10:&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install freeglut3 python-opencv libboost-all-dev&lt;br /&gt;
 cd ~&lt;br /&gt;
 wget http://static.mroja.net/kinect/kinect.7z&lt;br /&gt;
 7z x kinect.7z&lt;br /&gt;
 cd ~/kinect&lt;br /&gt;
 sudo cp primesense-and-kinect-usb.rules /etc/udev/rules.d/557-primesense-usb.rules&lt;br /&gt;
 export LD_LIBRARY_PATH=/home/{USER_NAME}/kinect/Redist (to najlepiej wrzucić do .profile)&lt;br /&gt;
 cd Redist&lt;br /&gt;
 ./NiViewer&lt;br /&gt;
&lt;br /&gt;
Należy prawdzić czy użytkownik, na koncie którego będzie używany Kinect należy do grupy plugdev -- jeśli nie, dodać: &lt;br /&gt;
 sudo usermod -G plugdev -a USER_NAME&lt;br /&gt;
&lt;br /&gt;
Alternatywnie zamiast gotowej paczki binarek można użyć OpenNI ze strony http://structure.io/openni.&lt;br /&gt;
&lt;br /&gt;
=== wrapper+obci ===&lt;br /&gt;
&lt;br /&gt;
Moduł do Pythona (plik &amp;lt;code&amp;gt;nite2.so&amp;lt;/code&amp;gt;) należy zbudować z repozytorium https://github.com/BrainTech/nite2-bindings i umieścić w katalogu &amp;lt;code&amp;gt;/usr/lib/python2.7/dist-packages&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Skopiuj katalog NiTE2 (&amp;lt;code&amp;gt;/home/USER_NAME/kinect/Redist/NiTE2&amp;lt;/code&amp;gt;) do katalogu &amp;lt;code&amp;gt;~/.obci/sandbox&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
na koncie lab&lt;br /&gt;
&lt;br /&gt;
 cd ~/kinect/Redist&lt;br /&gt;
 cp /path_to_file/nite2.so nite2.so&lt;br /&gt;
&lt;br /&gt;
 cp -r /home/lab/kinect/Redist/NiTE2/ ~/.obci/sandbox/&lt;br /&gt;
&lt;br /&gt;
na koncie newtech&lt;br /&gt;
&lt;br /&gt;
 cd ~/kinect/Redist&lt;br /&gt;
 cp /path_to_file/nite2.so nite2.so&lt;br /&gt;
&lt;br /&gt;
 mkdir /home/newtech/.obci/  # jeśli katalog istnieje to pominąć&lt;br /&gt;
 mkdir /home/newtech/.obci/sandbox  # j.w.&lt;br /&gt;
&lt;br /&gt;
 cp -r /home/newtech/kinect/Redist/NiTE2/ ~/.obci/sandbox/&lt;br /&gt;
&lt;br /&gt;
== Instalacja xwiimote ==&lt;br /&gt;
&lt;br /&gt;
UWAGA!!! NIE NALEŻY instalować pakietu xwiimote z repozytoriów Debiana i Ubuntu - są one przestarzałe.&lt;br /&gt;
&lt;br /&gt;
Wymagane wersje:&lt;br /&gt;
* kernel &amp;gt;= 3.5+&lt;br /&gt;
* bluez &amp;gt;= 5.11+&lt;br /&gt;
&lt;br /&gt;
=== A) Instalacja wymaganych pakietów ===&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install autoconf autogen automake gcc bluetooth ncurses-dev libudev-dev libtool git blueman python-dev dh-autoreconf pkg-config swig&lt;br /&gt;
&lt;br /&gt;
=== B) xwiimote driver &amp;amp; utils ===&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/BrainTech/xwiimote&lt;br /&gt;
 cd xwiimote&lt;br /&gt;
 ./autogen.sh&lt;br /&gt;
 make&lt;br /&gt;
 sudo make install&lt;br /&gt;
 sudo ldconfig&lt;br /&gt;
&lt;br /&gt;
=== C) Python bindings ===&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/BrainTech/xwiimote-bindings&lt;br /&gt;
 cd xwiimote-bindings&lt;br /&gt;
 ./autogen.sh&lt;br /&gt;
 make&lt;br /&gt;
 sudo make install&lt;br /&gt;
 sudo ldconfig&lt;br /&gt;
&lt;br /&gt;
=== D) Żeby działało bez sudo dla userów lab i newtech ===&lt;br /&gt;
&lt;br /&gt;
 sudo usermod -a -G input newtech&lt;br /&gt;
 sudo usermod -a -G input lab&lt;br /&gt;
&lt;br /&gt;
=== E) Sparować urządzenie z użyciem wbudowanego do Ubuntu panelu Bluetooth ===&lt;br /&gt;
&lt;br /&gt;
=== F) Demo ===&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/BrainTech/wiiscale.git&lt;br /&gt;
 cd wiiscale&lt;br /&gt;
&lt;br /&gt;
Należy odkomentować linijki 134 i 135:&lt;br /&gt;
&lt;br /&gt;
 134: #        for m in measurements(iface):&lt;br /&gt;
 135: #            print_bboard_measurements(*m)&lt;br /&gt;
&lt;br /&gt;
Demo można uruchomić poleceniem:&lt;br /&gt;
&lt;br /&gt;
 python ./scale.py&lt;br /&gt;
&lt;br /&gt;
== Tobii REX eyetracker ==&lt;br /&gt;
&lt;br /&gt;
* zainstalować pakiet deb dla 64bit Linuxa z http://developer.tobii.com/rex-setup-gaze-sdk/&lt;br /&gt;
* poprosić Aleksa o kopię SDK&lt;br /&gt;
* w katalogu &amp;lt;code&amp;gt;Samples&amp;lt;/code&amp;gt; w SDK znajduje się demo (należy je zbudować poleceniem &amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
== Oprogramowanie do Kinecta ze źródeł ==&lt;br /&gt;
&lt;br /&gt;
Do pełnego działania Kinecta na Linuxie potrzebne są: OpenNI2, NiTE2, libfreenect z driverem do OpenNI2 oraz wrapper do Pythona - &amp;lt;code&amp;gt;nite2&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Firma PrimeSense, autor OpenNI, została wykupiona przez Apple'a. Następnie projekt OpenNI został utajniony. Ponieważ jest to opensource, kody źródłowe są nadal dostępne. Najbardziej aktywnym forkiem jest repozutorium prowadzone przez http://occipital.com pod, odstępne pod adresem https://github.com/occipital/OpenNI2.&lt;br /&gt;
&lt;br /&gt;
=== OpenNI2 ===&lt;br /&gt;
&lt;br /&gt;
OpenNI2 można zdobyć na dwa sposoby - zbudować ze źródeł lub pobrać binarki.&lt;br /&gt;
&lt;br /&gt;
==== Kompilacja OpenNI2 ====&lt;br /&gt;
&lt;br /&gt;
Instalacja wymagań&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install git-core g++ cmake libudev-dev libxi-dev libxmu-dev python libusb-1.0-0-dev libudev-dev freeglut3-dev doxygen graphviz&lt;br /&gt;
&lt;br /&gt;
 sudo add-apt-repository ppa:webupd8team/java&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get install oracle-java8-installer&lt;br /&gt;
&lt;br /&gt;
Pobranie repozytorum i kompilacja&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/occipital/OpenNI2.git&lt;br /&gt;
 cd OpenNI2&lt;br /&gt;
 #Save path for further reference&lt;br /&gt;
 OPENNI_DIR=&amp;quot;${PWD}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 sed -i '/-Werror/ s/^/#/' ${OPENNI_DIR}/ThirdParty/PSCommon/BuildSystem/CommonCppMakefile&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;LDFLAGS += -lpthread&amp;quot; &amp;gt;&amp;gt; ${OPENNI_DIR}/Source/Tools/NiViewer/Makefile&lt;br /&gt;
 make&lt;br /&gt;
 sudo ${OPENNI_DIR}/Packaging/Linux/install.sh&lt;br /&gt;
 sudo gpasswd -a ${USER} video&lt;br /&gt;
&lt;br /&gt;
==== Instalacja z binarek ====&lt;br /&gt;
&lt;br /&gt;
Należy pobrać binarny pakiet ze strony http://structure.io/openni i wypakować do katalogu np. &amp;lt;code&amp;gt;OpenNI-Linux-x64-2.2&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 $ cd OpenNI-Linux-x64-2.2&lt;br /&gt;
 $ sudo ./install.sh&lt;br /&gt;
&lt;br /&gt;
w aktualnym katalogu utworzy się skrypt &amp;lt;code&amp;gt;OpenNIDevEnvironment&amp;lt;/code&amp;gt;, który ustawia środowisko dev&lt;br /&gt;
&lt;br /&gt;
=== Kompilacja libfreenect ===&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/OpenKinect/libfreenect.git&lt;br /&gt;
 cd libfreenect&lt;br /&gt;
 mkdir build; cd build&lt;br /&gt;
 cmake .. -DBUILD_OPENNI2_DRIVER=ON&lt;br /&gt;
 make -j4&lt;br /&gt;
 cp -L lib/OpenNI2-FreenectDriver/libFreenectDriver.so ${OPENNI_DIR}/Bin/x64-Release/OpenNI2/Drivers/&lt;br /&gt;
&lt;br /&gt;
Test&lt;br /&gt;
&lt;br /&gt;
 cd ${OPENNI_DIR}/Bin/x64-Release/&lt;br /&gt;
 ./NiViewer&lt;br /&gt;
&lt;br /&gt;
=== Instalacja biblioteki NiTE2 ===&lt;br /&gt;
&lt;br /&gt;
http://ilab.usc.edu/packages/forall/ubuntu-13.10/NiTE-Linux-x64-2.2.tar.bz2&lt;br /&gt;
 &lt;br /&gt;
 cd NiTE-Linux-x64-2.2&lt;br /&gt;
 sudo ./install.sh&lt;br /&gt;
&lt;br /&gt;
 cp -L /usr/local/lib/OpenNI2-FreenectDriver/libFreenectDriver.so NiTE-Linux-x64-2.2/Samples/Bin/OpenNI2/Drivers/&lt;/div&gt;</summary>
		<author><name>Alex</name></author>
		
	</entry>
	<entry>
		<id>http://brain.fuw.edu.pl/edu/index.php?title=Instalacja_i_konfiguracja_Kinect,_Wiimote_i_Eyetrackera&amp;diff=5006</id>
		<title>Instalacja i konfiguracja Kinect, Wiimote i Eyetrackera</title>
		<link rel="alternate" type="text/html" href="http://brain.fuw.edu.pl/edu/index.php?title=Instalacja_i_konfiguracja_Kinect,_Wiimote_i_Eyetrackera&amp;diff=5006"/>
		<updated>2016-03-23T11:27:26Z</updated>

		<summary type="html">&lt;p&gt;Alex: /* Kompilacja OpenNI ze źródeł */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Kinect + OpenNI2 + NiTE2 + freenect ==&lt;br /&gt;
&lt;br /&gt;
Instalacja OpenNI 2 + NiTE 2 z prekonfigurowanych binarek dla Ubuntu 15.10:&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install freeglut3 python-opencv libboost-all-dev&lt;br /&gt;
 cd ~&lt;br /&gt;
 wget http://static.mroja.net/kinect/kinect.7z&lt;br /&gt;
 7z x kinect.7z&lt;br /&gt;
 cd ~/kinect&lt;br /&gt;
 sudo cp primesense-and-kinect-usb.rules /etc/udev/rules.d/557-primesense-usb.rules&lt;br /&gt;
 export LD_LIBRARY_PATH=/home/{USER_NAME}/kinect/Redist (to najlepiej wrzucić do .profile)&lt;br /&gt;
 cd Redist&lt;br /&gt;
 ./NiViewer&lt;br /&gt;
&lt;br /&gt;
Należy prawdzić czy użytkownik, na koncie którego będzie używany Kinect należy do grupy plugdev -- jeśli nie, dodać: &lt;br /&gt;
 sudo usermod -G plugdev -a USER_NAME&lt;br /&gt;
&lt;br /&gt;
Alternatywnie zamiast gotowej paczki binarek można użyć OpenNI ze strony http://structure.io/openni.&lt;br /&gt;
&lt;br /&gt;
=== wrapper+obci ===&lt;br /&gt;
&lt;br /&gt;
Moduł do Pythona (plik &amp;lt;code&amp;gt;nite2.so&amp;lt;/code&amp;gt;) należy zbudować z repozytorium https://github.com/BrainTech/nite2-bindings i umieścić w katalogu &amp;lt;code&amp;gt;/usr/lib/python2.7/dist-packages&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Skopiuj katalog NiTE2 (&amp;lt;code&amp;gt;/home/USER_NAME/kinect/Redist/NiTE2&amp;lt;/code&amp;gt;) do katalogu &amp;lt;code&amp;gt;~/.obci/sandbox&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
na koncie lab&lt;br /&gt;
&lt;br /&gt;
 cd ~/kinect/Redist&lt;br /&gt;
 cp /path_to_file/nite2.so nite2.so&lt;br /&gt;
&lt;br /&gt;
 cp -r /home/lab/kinect/Redist/NiTE2/ ~/.obci/sandbox/&lt;br /&gt;
&lt;br /&gt;
na koncie newtech&lt;br /&gt;
&lt;br /&gt;
 cd ~/kinect/Redist&lt;br /&gt;
 cp /path_to_file/nite2.so nite2.so&lt;br /&gt;
&lt;br /&gt;
 mkdir /home/newtech/.obci/  # jeśli katalog istnieje to pominąć&lt;br /&gt;
 mkdir /home/newtech/.obci/sandbox  # j.w.&lt;br /&gt;
&lt;br /&gt;
 cp -r /home/newtech/kinect/Redist/NiTE2/ ~/.obci/sandbox/&lt;br /&gt;
&lt;br /&gt;
== Instalacja xwiimote ==&lt;br /&gt;
&lt;br /&gt;
UWAGA!!! NIE NALEŻY instalować pakietu xwiimote z repozytoriów Debiana i Ubuntu - są one przestarzałe.&lt;br /&gt;
&lt;br /&gt;
Wymagane wersje:&lt;br /&gt;
* kernel &amp;gt;= 3.5+&lt;br /&gt;
* bluez &amp;gt;= 5.11+&lt;br /&gt;
&lt;br /&gt;
=== A) Instalacja wymaganych pakietów ===&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install autoconf autogen automake gcc bluetooth ncurses-dev libudev-dev libtool git blueman python-dev dh-autoreconf pkg-config swig&lt;br /&gt;
&lt;br /&gt;
=== B) xwiimote driver &amp;amp; utils ===&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/BrainTech/xwiimote&lt;br /&gt;
 cd xwiimote&lt;br /&gt;
 ./autogen.sh&lt;br /&gt;
 make&lt;br /&gt;
 sudo make install&lt;br /&gt;
 sudo ldconfig&lt;br /&gt;
&lt;br /&gt;
=== C) Python bindings ===&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/BrainTech/xwiimote-bindings&lt;br /&gt;
 cd xwiimote-bindings&lt;br /&gt;
 ./autogen.sh&lt;br /&gt;
 make&lt;br /&gt;
 sudo make install&lt;br /&gt;
 sudo ldconfig&lt;br /&gt;
&lt;br /&gt;
=== D) Żeby działało bez sudo dla userów lab i newtech ===&lt;br /&gt;
&lt;br /&gt;
 sudo usermod -a -G input newtech&lt;br /&gt;
 sudo usermod -a -G input lab&lt;br /&gt;
&lt;br /&gt;
=== E) Sparować urządzenie z użyciem wbudowanego do Ubuntu panelu Bluetooth ===&lt;br /&gt;
&lt;br /&gt;
=== F) Demo ===&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/BrainTech/wiiscale.git&lt;br /&gt;
 cd wiiscale&lt;br /&gt;
&lt;br /&gt;
Należy odkomentować linijki 134 i 135:&lt;br /&gt;
&lt;br /&gt;
 134: #        for m in measurements(iface):&lt;br /&gt;
 135: #            print_bboard_measurements(*m)&lt;br /&gt;
&lt;br /&gt;
Demo można uruchomić poleceniem:&lt;br /&gt;
&lt;br /&gt;
 python ./scale.py&lt;br /&gt;
&lt;br /&gt;
== Tobii REX eyetracker ==&lt;br /&gt;
&lt;br /&gt;
* zainstalować pakiet deb dla 64bit Linuxa z http://developer.tobii.com/rex-setup-gaze-sdk/&lt;br /&gt;
* poprosić Aleksa o kopię SDK&lt;br /&gt;
* w katalogu &amp;lt;code&amp;gt;Samples&amp;lt;/code&amp;gt; w SDK znajduje się demo (należy je zbudować poleceniem &amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
== Oprogramowanie do Kinecta ze źródeł ==&lt;br /&gt;
&lt;br /&gt;
Do pełnego działania Kinecta na Linuxie potrzebne są: OpenNI2, NiTE2, libfreenect z driverem do OpenNI2 oraz wrapper do Pythona - &amp;lt;code&amp;gt;nite2&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Firma PrimeSense, autor OpenNI, została wykupiona przez Apple'a. Następnie projekt OpenNI został utajniony. Ponieważ jest to opensource, kody źródłowe są nadal dostępne. Najbardziej aktywnym forkiem jest repozutorium prowadzone przez http://occipital.com pod, odstępne pod adresem https://github.com/occipital/OpenNI2.&lt;br /&gt;
&lt;br /&gt;
=== Kompilacja OpenNI2 ===&lt;br /&gt;
&lt;br /&gt;
Instalacja wymagań&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install git-core g++ cmake libudev-dev libxi-dev libxmu-dev python libusb-1.0-0-dev libudev-dev freeglut3-dev doxygen graphviz&lt;br /&gt;
&lt;br /&gt;
 sudo add-apt-repository ppa:webupd8team/java&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get install oracle-java8-installer&lt;br /&gt;
&lt;br /&gt;
Pobranie repozytorum i kompilacja&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/occipital/OpenNI2.git&lt;br /&gt;
 cd OpenNI2&lt;br /&gt;
 #Save path for further reference&lt;br /&gt;
 OPENNI_DIR=&amp;quot;${PWD}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 sed -i '/-Werror/ s/^/#/' ${OPENNI_DIR}/ThirdParty/PSCommon/BuildSystem/CommonCppMakefile&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;LDFLAGS += -lpthread&amp;quot; &amp;gt;&amp;gt; ${OPENNI_DIR}/Source/Tools/NiViewer/Makefile&lt;br /&gt;
 make&lt;br /&gt;
 sudo ${OPENNI_DIR}/Packaging/Linux/install.sh&lt;br /&gt;
 sudo gpasswd -a ${USER} video&lt;br /&gt;
&lt;br /&gt;
=== Instalacja z binarek ===&lt;br /&gt;
&lt;br /&gt;
Należy pobrać binarny pakiet ze strony http://structure.io/openni i wypakować do katalogu np. &amp;lt;code&amp;gt;OpenNI-Linux-x64-2.2&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 $ cd OpenNI-Linux-x64-2.2&lt;br /&gt;
 $ sudo ./install.sh&lt;br /&gt;
&lt;br /&gt;
w aktualnym katalogu utworzy się skrypt &amp;lt;code&amp;gt;OpenNIDevEnvironment&amp;lt;/code&amp;gt;, który ustawia środowisko dev&lt;br /&gt;
&lt;br /&gt;
=== Kompilacja libfreenect ===&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/OpenKinect/libfreenect.git&lt;br /&gt;
 cd libfreenect&lt;br /&gt;
 mkdir build; cd build&lt;br /&gt;
 cmake .. -DBUILD_OPENNI2_DRIVER=ON&lt;br /&gt;
 make -j4&lt;br /&gt;
 cp -L lib/OpenNI2-FreenectDriver/libFreenectDriver.so ${OPENNI_DIR}/Bin/x64-Release/OpenNI2/Drivers/&lt;br /&gt;
&lt;br /&gt;
Test&lt;br /&gt;
&lt;br /&gt;
 cd ${OPENNI_DIR}/Bin/x64-Release/&lt;br /&gt;
 ./NiViewer&lt;br /&gt;
&lt;br /&gt;
=== Instalacja biblioteki NiTE2 ===&lt;br /&gt;
&lt;br /&gt;
http://ilab.usc.edu/packages/forall/ubuntu-13.10/NiTE-Linux-x64-2.2.tar.bz2&lt;br /&gt;
 &lt;br /&gt;
 cd NiTE-Linux-x64-2.2&lt;br /&gt;
 sudo ./install.sh&lt;br /&gt;
&lt;br /&gt;
 cp -L /usr/local/lib/OpenNI2-FreenectDriver/libFreenectDriver.so NiTE-Linux-x64-2.2/Samples/Bin/OpenNI2/Drivers/&lt;/div&gt;</summary>
		<author><name>Alex</name></author>
		
	</entry>
	<entry>
		<id>http://brain.fuw.edu.pl/edu/index.php?title=Instalacja_i_konfiguracja_Kinect,_Wiimote_i_Eyetrackera&amp;diff=5005</id>
		<title>Instalacja i konfiguracja Kinect, Wiimote i Eyetrackera</title>
		<link rel="alternate" type="text/html" href="http://brain.fuw.edu.pl/edu/index.php?title=Instalacja_i_konfiguracja_Kinect,_Wiimote_i_Eyetrackera&amp;diff=5005"/>
		<updated>2016-03-23T11:22:03Z</updated>

		<summary type="html">&lt;p&gt;Alex: /* F) Demo */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Kinect + OpenNI2 + NiTE2 + freenect ==&lt;br /&gt;
&lt;br /&gt;
Instalacja OpenNI 2 + NiTE 2 z prekonfigurowanych binarek dla Ubuntu 15.10:&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install freeglut3 python-opencv libboost-all-dev&lt;br /&gt;
 cd ~&lt;br /&gt;
 wget http://static.mroja.net/kinect/kinect.7z&lt;br /&gt;
 7z x kinect.7z&lt;br /&gt;
 cd ~/kinect&lt;br /&gt;
 sudo cp primesense-and-kinect-usb.rules /etc/udev/rules.d/557-primesense-usb.rules&lt;br /&gt;
 export LD_LIBRARY_PATH=/home/{USER_NAME}/kinect/Redist (to najlepiej wrzucić do .profile)&lt;br /&gt;
 cd Redist&lt;br /&gt;
 ./NiViewer&lt;br /&gt;
&lt;br /&gt;
Należy prawdzić czy użytkownik, na koncie którego będzie używany Kinect należy do grupy plugdev -- jeśli nie, dodać: &lt;br /&gt;
 sudo usermod -G plugdev -a USER_NAME&lt;br /&gt;
&lt;br /&gt;
Alternatywnie zamiast gotowej paczki binarek można użyć OpenNI ze strony http://structure.io/openni.&lt;br /&gt;
&lt;br /&gt;
=== wrapper+obci ===&lt;br /&gt;
&lt;br /&gt;
Moduł do Pythona (plik &amp;lt;code&amp;gt;nite2.so&amp;lt;/code&amp;gt;) należy zbudować z repozytorium https://github.com/BrainTech/nite2-bindings i umieścić w katalogu &amp;lt;code&amp;gt;/usr/lib/python2.7/dist-packages&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Skopiuj katalog NiTE2 (&amp;lt;code&amp;gt;/home/USER_NAME/kinect/Redist/NiTE2&amp;lt;/code&amp;gt;) do katalogu &amp;lt;code&amp;gt;~/.obci/sandbox&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
na koncie lab&lt;br /&gt;
&lt;br /&gt;
 cd ~/kinect/Redist&lt;br /&gt;
 cp /path_to_file/nite2.so nite2.so&lt;br /&gt;
&lt;br /&gt;
 cp -r /home/lab/kinect/Redist/NiTE2/ ~/.obci/sandbox/&lt;br /&gt;
&lt;br /&gt;
na koncie newtech&lt;br /&gt;
&lt;br /&gt;
 cd ~/kinect/Redist&lt;br /&gt;
 cp /path_to_file/nite2.so nite2.so&lt;br /&gt;
&lt;br /&gt;
 mkdir /home/newtech/.obci/  # jeśli katalog istnieje to pominąć&lt;br /&gt;
 mkdir /home/newtech/.obci/sandbox  # j.w.&lt;br /&gt;
&lt;br /&gt;
 cp -r /home/newtech/kinect/Redist/NiTE2/ ~/.obci/sandbox/&lt;br /&gt;
&lt;br /&gt;
== Instalacja xwiimote ==&lt;br /&gt;
&lt;br /&gt;
UWAGA!!! NIE NALEŻY instalować pakietu xwiimote z repozytoriów Debiana i Ubuntu - są one przestarzałe.&lt;br /&gt;
&lt;br /&gt;
Wymagane wersje:&lt;br /&gt;
* kernel &amp;gt;= 3.5+&lt;br /&gt;
* bluez &amp;gt;= 5.11+&lt;br /&gt;
&lt;br /&gt;
=== A) Instalacja wymaganych pakietów ===&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install autoconf autogen automake gcc bluetooth ncurses-dev libudev-dev libtool git blueman python-dev dh-autoreconf pkg-config swig&lt;br /&gt;
&lt;br /&gt;
=== B) xwiimote driver &amp;amp; utils ===&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/BrainTech/xwiimote&lt;br /&gt;
 cd xwiimote&lt;br /&gt;
 ./autogen.sh&lt;br /&gt;
 make&lt;br /&gt;
 sudo make install&lt;br /&gt;
 sudo ldconfig&lt;br /&gt;
&lt;br /&gt;
=== C) Python bindings ===&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/BrainTech/xwiimote-bindings&lt;br /&gt;
 cd xwiimote-bindings&lt;br /&gt;
 ./autogen.sh&lt;br /&gt;
 make&lt;br /&gt;
 sudo make install&lt;br /&gt;
 sudo ldconfig&lt;br /&gt;
&lt;br /&gt;
=== D) Żeby działało bez sudo dla userów lab i newtech ===&lt;br /&gt;
&lt;br /&gt;
 sudo usermod -a -G input newtech&lt;br /&gt;
 sudo usermod -a -G input lab&lt;br /&gt;
&lt;br /&gt;
=== E) Sparować urządzenie z użyciem wbudowanego do Ubuntu panelu Bluetooth ===&lt;br /&gt;
&lt;br /&gt;
=== F) Demo ===&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/BrainTech/wiiscale.git&lt;br /&gt;
 cd wiiscale&lt;br /&gt;
&lt;br /&gt;
Należy odkomentować linijki 134 i 135:&lt;br /&gt;
&lt;br /&gt;
 134: #        for m in measurements(iface):&lt;br /&gt;
 135: #            print_bboard_measurements(*m)&lt;br /&gt;
&lt;br /&gt;
Demo można uruchomić poleceniem:&lt;br /&gt;
&lt;br /&gt;
 python ./scale.py&lt;br /&gt;
&lt;br /&gt;
== Tobii REX eyetracker ==&lt;br /&gt;
&lt;br /&gt;
* zainstalować pakiet deb dla 64bit Linuxa z http://developer.tobii.com/rex-setup-gaze-sdk/&lt;br /&gt;
* poprosić Aleksa o kopię SDK&lt;br /&gt;
* w katalogu &amp;lt;code&amp;gt;Samples&amp;lt;/code&amp;gt; w SDK znajduje się demo (należy je zbudować poleceniem &amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
== Kompilacja OpenNI ze źródeł ==&lt;br /&gt;
&lt;br /&gt;
Firma PrimeSense, autor OpenNI, została wykupiona przez Apple'a. Projekt OpenNI został zamknięty. Ponieważ jest to opensource, kody źródłowe są dalej rozwijane przez http://occipital.com. &lt;br /&gt;
&lt;br /&gt;
Adres repozytorium OpenNI2: https://github.com/occipital/OpenNI2&lt;br /&gt;
&lt;br /&gt;
=== Kompilacja OpenNI2 ===&lt;br /&gt;
&lt;br /&gt;
wymagania&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install git-core g++ cmake libudev-dev libxi-dev libxmu-dev python libusb-1.0-0-dev libudev-dev freeglut3-dev doxygen graphviz&lt;br /&gt;
&lt;br /&gt;
 sudo add-apt-repository ppa:webupd8team/java&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get install oracle-java8-installer&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/occipital/OpenNI2.git&lt;br /&gt;
 cd OpenNI2&lt;br /&gt;
 #Save path for further reference&lt;br /&gt;
 OPENNI_DIR=&amp;quot;${PWD}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 sed -i '/-Werror/ s/^/#/' ${OPENNI_DIR}/ThirdParty/PSCommon/BuildSystem/CommonCppMakefile&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;LDFLAGS += -lpthread&amp;quot; &amp;gt;&amp;gt; ${OPENNI_DIR}/Source/Tools/NiViewer/Makefile&lt;br /&gt;
 make&lt;br /&gt;
 sudo ${OPENNI_DIR}/Packaging/Linux/install.sh&lt;br /&gt;
 sudo gpasswd -a ${USER} video&lt;br /&gt;
&lt;br /&gt;
=== Instalacja z binarek ===&lt;br /&gt;
&lt;br /&gt;
Należy pobrać binarny pakiet ze strony http://structure.io/openni i wypakować do katalogu np. &amp;lt;code&amp;gt;OpenNI-Linux-x64-2.2&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 $ cd OpenNI-Linux-x64-2.2&lt;br /&gt;
 $ sudo ./install.sh&lt;br /&gt;
&lt;br /&gt;
w aktualnym katalogu utworzy się skrypt &amp;lt;code&amp;gt;OpenNIDevEnvironment&amp;lt;/code&amp;gt;, który ustawia środowisko dev&lt;br /&gt;
&lt;br /&gt;
=== Kompilacja libfreenect ===&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/OpenKinect/libfreenect.git&lt;br /&gt;
 cd libfreenect&lt;br /&gt;
 mkdir build; cd build&lt;br /&gt;
 cmake .. -DBUILD_OPENNI2_DRIVER=ON&lt;br /&gt;
 make -j4&lt;br /&gt;
 cp -L lib/OpenNI2-FreenectDriver/libFreenectDriver.so ${OPENNI_DIR}/Bin/x64-Release/OpenNI2/Drivers/&lt;br /&gt;
&lt;br /&gt;
Test&lt;br /&gt;
&lt;br /&gt;
 cd ${OPENNI_DIR}/Bin/x64-Release/&lt;br /&gt;
 ./NiViewer&lt;br /&gt;
&lt;br /&gt;
=== Instalacja biblioteki NiTE2 ===&lt;br /&gt;
&lt;br /&gt;
http://ilab.usc.edu/packages/forall/ubuntu-13.10/NiTE-Linux-x64-2.2.tar.bz2&lt;br /&gt;
 &lt;br /&gt;
 cd NiTE-Linux-x64-2.2&lt;br /&gt;
 sudo ./install.sh&lt;br /&gt;
&lt;br /&gt;
 cp -L /usr/local/lib/OpenNI2-FreenectDriver/libFreenectDriver.so NiTE-Linux-x64-2.2/Samples/Bin/OpenNI2/Drivers/&lt;/div&gt;</summary>
		<author><name>Alex</name></author>
		
	</entry>
	<entry>
		<id>http://brain.fuw.edu.pl/edu/index.php?title=Instalacja_i_konfiguracja_Kinect,_Wiimote_i_Eyetrackera&amp;diff=5004</id>
		<title>Instalacja i konfiguracja Kinect, Wiimote i Eyetrackera</title>
		<link rel="alternate" type="text/html" href="http://brain.fuw.edu.pl/edu/index.php?title=Instalacja_i_konfiguracja_Kinect,_Wiimote_i_Eyetrackera&amp;diff=5004"/>
		<updated>2016-03-23T11:17:37Z</updated>

		<summary type="html">&lt;p&gt;Alex: /* Kompilacja OpenNI ze źródeł */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Kinect + OpenNI2 + NiTE2 + freenect ==&lt;br /&gt;
&lt;br /&gt;
Instalacja OpenNI 2 + NiTE 2 z prekonfigurowanych binarek dla Ubuntu 15.10:&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install freeglut3 python-opencv libboost-all-dev&lt;br /&gt;
 cd ~&lt;br /&gt;
 wget http://static.mroja.net/kinect/kinect.7z&lt;br /&gt;
 7z x kinect.7z&lt;br /&gt;
 cd ~/kinect&lt;br /&gt;
 sudo cp primesense-and-kinect-usb.rules /etc/udev/rules.d/557-primesense-usb.rules&lt;br /&gt;
 export LD_LIBRARY_PATH=/home/{USER_NAME}/kinect/Redist (to najlepiej wrzucić do .profile)&lt;br /&gt;
 cd Redist&lt;br /&gt;
 ./NiViewer&lt;br /&gt;
&lt;br /&gt;
Należy prawdzić czy użytkownik, na koncie którego będzie używany Kinect należy do grupy plugdev -- jeśli nie, dodać: &lt;br /&gt;
 sudo usermod -G plugdev -a USER_NAME&lt;br /&gt;
&lt;br /&gt;
Alternatywnie zamiast gotowej paczki binarek można użyć OpenNI ze strony http://structure.io/openni.&lt;br /&gt;
&lt;br /&gt;
=== wrapper+obci ===&lt;br /&gt;
&lt;br /&gt;
Moduł do Pythona (plik &amp;lt;code&amp;gt;nite2.so&amp;lt;/code&amp;gt;) należy zbudować z repozytorium https://github.com/BrainTech/nite2-bindings i umieścić w katalogu &amp;lt;code&amp;gt;/usr/lib/python2.7/dist-packages&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Skopiuj katalog NiTE2 (&amp;lt;code&amp;gt;/home/USER_NAME/kinect/Redist/NiTE2&amp;lt;/code&amp;gt;) do katalogu &amp;lt;code&amp;gt;~/.obci/sandbox&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
na koncie lab&lt;br /&gt;
&lt;br /&gt;
 cd ~/kinect/Redist&lt;br /&gt;
 cp /path_to_file/nite2.so nite2.so&lt;br /&gt;
&lt;br /&gt;
 cp -r /home/lab/kinect/Redist/NiTE2/ ~/.obci/sandbox/&lt;br /&gt;
&lt;br /&gt;
na koncie newtech&lt;br /&gt;
&lt;br /&gt;
 cd ~/kinect/Redist&lt;br /&gt;
 cp /path_to_file/nite2.so nite2.so&lt;br /&gt;
&lt;br /&gt;
 mkdir /home/newtech/.obci/  # jeśli katalog istnieje to pominąć&lt;br /&gt;
 mkdir /home/newtech/.obci/sandbox  # j.w.&lt;br /&gt;
&lt;br /&gt;
 cp -r /home/newtech/kinect/Redist/NiTE2/ ~/.obci/sandbox/&lt;br /&gt;
&lt;br /&gt;
== Instalacja xwiimote ==&lt;br /&gt;
&lt;br /&gt;
UWAGA!!! NIE NALEŻY instalować pakietu xwiimote z repozytoriów Debiana i Ubuntu - są one przestarzałe.&lt;br /&gt;
&lt;br /&gt;
Wymagane wersje:&lt;br /&gt;
* kernel &amp;gt;= 3.5+&lt;br /&gt;
* bluez &amp;gt;= 5.11+&lt;br /&gt;
&lt;br /&gt;
=== A) Instalacja wymaganych pakietów ===&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install autoconf autogen automake gcc bluetooth ncurses-dev libudev-dev libtool git blueman python-dev dh-autoreconf pkg-config swig&lt;br /&gt;
&lt;br /&gt;
=== B) xwiimote driver &amp;amp; utils ===&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/BrainTech/xwiimote&lt;br /&gt;
 cd xwiimote&lt;br /&gt;
 ./autogen.sh&lt;br /&gt;
 make&lt;br /&gt;
 sudo make install&lt;br /&gt;
 sudo ldconfig&lt;br /&gt;
&lt;br /&gt;
=== C) Python bindings ===&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/BrainTech/xwiimote-bindings&lt;br /&gt;
 cd xwiimote-bindings&lt;br /&gt;
 ./autogen.sh&lt;br /&gt;
 make&lt;br /&gt;
 sudo make install&lt;br /&gt;
 sudo ldconfig&lt;br /&gt;
&lt;br /&gt;
=== D) Żeby działało bez sudo dla userów lab i newtech ===&lt;br /&gt;
&lt;br /&gt;
 sudo usermod -a -G input newtech&lt;br /&gt;
 sudo usermod -a -G input lab&lt;br /&gt;
&lt;br /&gt;
=== E) Sparować urządzenie z użyciem wbudowanego do Ubuntu panelu Bluetooth ===&lt;br /&gt;
&lt;br /&gt;
=== F) Demo ===&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/irq0/wiiscale.git&lt;br /&gt;
 cd wiiscale&lt;br /&gt;
&lt;br /&gt;
Należy odkomentować linijki 134 i 135:&lt;br /&gt;
&lt;br /&gt;
 134: #        for m in measurements(iface):&lt;br /&gt;
 135: #            print_bboard_measurements(*m)&lt;br /&gt;
&lt;br /&gt;
Demo można uruchomić poleceniem:&lt;br /&gt;
&lt;br /&gt;
 python ./scale.py&lt;br /&gt;
&lt;br /&gt;
== Tobii REX eyetracker ==&lt;br /&gt;
&lt;br /&gt;
* zainstalować pakiet deb dla 64bit Linuxa z http://developer.tobii.com/rex-setup-gaze-sdk/&lt;br /&gt;
* poprosić Aleksa o kopię SDK&lt;br /&gt;
* w katalogu &amp;lt;code&amp;gt;Samples&amp;lt;/code&amp;gt; w SDK znajduje się demo (należy je zbudować poleceniem &amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
== Kompilacja OpenNI ze źródeł ==&lt;br /&gt;
&lt;br /&gt;
Firma PrimeSense, autor OpenNI, została wykupiona przez Apple'a. Projekt OpenNI został zamknięty. Ponieważ jest to opensource, kody źródłowe są dalej rozwijane przez http://occipital.com. &lt;br /&gt;
&lt;br /&gt;
Adres repozytorium OpenNI2: https://github.com/occipital/OpenNI2&lt;br /&gt;
&lt;br /&gt;
=== Kompilacja OpenNI2 ===&lt;br /&gt;
&lt;br /&gt;
wymagania&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install git-core g++ cmake libudev-dev libxi-dev libxmu-dev python libusb-1.0-0-dev libudev-dev freeglut3-dev doxygen graphviz&lt;br /&gt;
&lt;br /&gt;
 sudo add-apt-repository ppa:webupd8team/java&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get install oracle-java8-installer&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/occipital/OpenNI2.git&lt;br /&gt;
 cd OpenNI2&lt;br /&gt;
 #Save path for further reference&lt;br /&gt;
 OPENNI_DIR=&amp;quot;${PWD}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 sed -i '/-Werror/ s/^/#/' ${OPENNI_DIR}/ThirdParty/PSCommon/BuildSystem/CommonCppMakefile&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;LDFLAGS += -lpthread&amp;quot; &amp;gt;&amp;gt; ${OPENNI_DIR}/Source/Tools/NiViewer/Makefile&lt;br /&gt;
 make&lt;br /&gt;
 sudo ${OPENNI_DIR}/Packaging/Linux/install.sh&lt;br /&gt;
 sudo gpasswd -a ${USER} video&lt;br /&gt;
&lt;br /&gt;
=== Instalacja z binarek ===&lt;br /&gt;
&lt;br /&gt;
Należy pobrać binarny pakiet ze strony http://structure.io/openni i wypakować do katalogu np. &amp;lt;code&amp;gt;OpenNI-Linux-x64-2.2&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 $ cd OpenNI-Linux-x64-2.2&lt;br /&gt;
 $ sudo ./install.sh&lt;br /&gt;
&lt;br /&gt;
w aktualnym katalogu utworzy się skrypt &amp;lt;code&amp;gt;OpenNIDevEnvironment&amp;lt;/code&amp;gt;, który ustawia środowisko dev&lt;br /&gt;
&lt;br /&gt;
=== Kompilacja libfreenect ===&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/OpenKinect/libfreenect.git&lt;br /&gt;
 cd libfreenect&lt;br /&gt;
 mkdir build; cd build&lt;br /&gt;
 cmake .. -DBUILD_OPENNI2_DRIVER=ON&lt;br /&gt;
 make -j4&lt;br /&gt;
 cp -L lib/OpenNI2-FreenectDriver/libFreenectDriver.so ${OPENNI_DIR}/Bin/x64-Release/OpenNI2/Drivers/&lt;br /&gt;
&lt;br /&gt;
Test&lt;br /&gt;
&lt;br /&gt;
 cd ${OPENNI_DIR}/Bin/x64-Release/&lt;br /&gt;
 ./NiViewer&lt;br /&gt;
&lt;br /&gt;
=== Instalacja biblioteki NiTE2 ===&lt;br /&gt;
&lt;br /&gt;
http://ilab.usc.edu/packages/forall/ubuntu-13.10/NiTE-Linux-x64-2.2.tar.bz2&lt;br /&gt;
 &lt;br /&gt;
 cd NiTE-Linux-x64-2.2&lt;br /&gt;
 sudo ./install.sh&lt;br /&gt;
&lt;br /&gt;
 cp -L /usr/local/lib/OpenNI2-FreenectDriver/libFreenectDriver.so NiTE-Linux-x64-2.2/Samples/Bin/OpenNI2/Drivers/&lt;/div&gt;</summary>
		<author><name>Alex</name></author>
		
	</entry>
	<entry>
		<id>http://brain.fuw.edu.pl/edu/index.php?title=Instalacja_i_konfiguracja_Kinect,_Wiimote_i_Eyetrackera&amp;diff=5003</id>
		<title>Instalacja i konfiguracja Kinect, Wiimote i Eyetrackera</title>
		<link rel="alternate" type="text/html" href="http://brain.fuw.edu.pl/edu/index.php?title=Instalacja_i_konfiguracja_Kinect,_Wiimote_i_Eyetrackera&amp;diff=5003"/>
		<updated>2016-03-23T11:16:44Z</updated>

		<summary type="html">&lt;p&gt;Alex: /* Stara wersja instrukcji */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Kinect + OpenNI2 + NiTE2 + freenect ==&lt;br /&gt;
&lt;br /&gt;
Instalacja OpenNI 2 + NiTE 2 z prekonfigurowanych binarek dla Ubuntu 15.10:&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install freeglut3 python-opencv libboost-all-dev&lt;br /&gt;
 cd ~&lt;br /&gt;
 wget http://static.mroja.net/kinect/kinect.7z&lt;br /&gt;
 7z x kinect.7z&lt;br /&gt;
 cd ~/kinect&lt;br /&gt;
 sudo cp primesense-and-kinect-usb.rules /etc/udev/rules.d/557-primesense-usb.rules&lt;br /&gt;
 export LD_LIBRARY_PATH=/home/{USER_NAME}/kinect/Redist (to najlepiej wrzucić do .profile)&lt;br /&gt;
 cd Redist&lt;br /&gt;
 ./NiViewer&lt;br /&gt;
&lt;br /&gt;
Należy prawdzić czy użytkownik, na koncie którego będzie używany Kinect należy do grupy plugdev -- jeśli nie, dodać: &lt;br /&gt;
 sudo usermod -G plugdev -a USER_NAME&lt;br /&gt;
&lt;br /&gt;
Alternatywnie zamiast gotowej paczki binarek można użyć OpenNI ze strony http://structure.io/openni.&lt;br /&gt;
&lt;br /&gt;
=== wrapper+obci ===&lt;br /&gt;
&lt;br /&gt;
Moduł do Pythona (plik &amp;lt;code&amp;gt;nite2.so&amp;lt;/code&amp;gt;) należy zbudować z repozytorium https://github.com/BrainTech/nite2-bindings i umieścić w katalogu &amp;lt;code&amp;gt;/usr/lib/python2.7/dist-packages&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Skopiuj katalog NiTE2 (&amp;lt;code&amp;gt;/home/USER_NAME/kinect/Redist/NiTE2&amp;lt;/code&amp;gt;) do katalogu &amp;lt;code&amp;gt;~/.obci/sandbox&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
na koncie lab&lt;br /&gt;
&lt;br /&gt;
 cd ~/kinect/Redist&lt;br /&gt;
 cp /path_to_file/nite2.so nite2.so&lt;br /&gt;
&lt;br /&gt;
 cp -r /home/lab/kinect/Redist/NiTE2/ ~/.obci/sandbox/&lt;br /&gt;
&lt;br /&gt;
na koncie newtech&lt;br /&gt;
&lt;br /&gt;
 cd ~/kinect/Redist&lt;br /&gt;
 cp /path_to_file/nite2.so nite2.so&lt;br /&gt;
&lt;br /&gt;
 mkdir /home/newtech/.obci/  # jeśli katalog istnieje to pominąć&lt;br /&gt;
 mkdir /home/newtech/.obci/sandbox  # j.w.&lt;br /&gt;
&lt;br /&gt;
 cp -r /home/newtech/kinect/Redist/NiTE2/ ~/.obci/sandbox/&lt;br /&gt;
&lt;br /&gt;
== Instalacja xwiimote ==&lt;br /&gt;
&lt;br /&gt;
UWAGA!!! NIE NALEŻY instalować pakietu xwiimote z repozytoriów Debiana i Ubuntu - są one przestarzałe.&lt;br /&gt;
&lt;br /&gt;
Wymagane wersje:&lt;br /&gt;
* kernel &amp;gt;= 3.5+&lt;br /&gt;
* bluez &amp;gt;= 5.11+&lt;br /&gt;
&lt;br /&gt;
=== A) Instalacja wymaganych pakietów ===&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install autoconf autogen automake gcc bluetooth ncurses-dev libudev-dev libtool git blueman python-dev dh-autoreconf pkg-config swig&lt;br /&gt;
&lt;br /&gt;
=== B) xwiimote driver &amp;amp; utils ===&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/BrainTech/xwiimote&lt;br /&gt;
 cd xwiimote&lt;br /&gt;
 ./autogen.sh&lt;br /&gt;
 make&lt;br /&gt;
 sudo make install&lt;br /&gt;
 sudo ldconfig&lt;br /&gt;
&lt;br /&gt;
=== C) Python bindings ===&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/BrainTech/xwiimote-bindings&lt;br /&gt;
 cd xwiimote-bindings&lt;br /&gt;
 ./autogen.sh&lt;br /&gt;
 make&lt;br /&gt;
 sudo make install&lt;br /&gt;
 sudo ldconfig&lt;br /&gt;
&lt;br /&gt;
=== D) Żeby działało bez sudo dla userów lab i newtech ===&lt;br /&gt;
&lt;br /&gt;
 sudo usermod -a -G input newtech&lt;br /&gt;
 sudo usermod -a -G input lab&lt;br /&gt;
&lt;br /&gt;
=== E) Sparować urządzenie z użyciem wbudowanego do Ubuntu panelu Bluetooth ===&lt;br /&gt;
&lt;br /&gt;
=== F) Demo ===&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/irq0/wiiscale.git&lt;br /&gt;
 cd wiiscale&lt;br /&gt;
&lt;br /&gt;
Należy odkomentować linijki 134 i 135:&lt;br /&gt;
&lt;br /&gt;
 134: #        for m in measurements(iface):&lt;br /&gt;
 135: #            print_bboard_measurements(*m)&lt;br /&gt;
&lt;br /&gt;
Demo można uruchomić poleceniem:&lt;br /&gt;
&lt;br /&gt;
 python ./scale.py&lt;br /&gt;
&lt;br /&gt;
== Tobii REX eyetracker ==&lt;br /&gt;
&lt;br /&gt;
* zainstalować pakiet deb dla 64bit Linuxa z http://developer.tobii.com/rex-setup-gaze-sdk/&lt;br /&gt;
* poprosić Aleksa o kopię SDK&lt;br /&gt;
* w katalogu &amp;lt;code&amp;gt;Samples&amp;lt;/code&amp;gt; w SDK znajduje się demo (należy je zbudować poleceniem &amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
== Kompilacja OpenNI ze źródeł ==&lt;br /&gt;
&lt;br /&gt;
Firma PrimeSense, autor OpenNI, została wykupiona przez Apple'a. Projekt OpenNI został zamknięty. Ponieważ jest to opensource, kody źródłowe są dalej rozwijane przez http://occipital.com. &lt;br /&gt;
&lt;br /&gt;
Adres repozytorium: https://github.com/occipital/OpenNI2&lt;br /&gt;
&lt;br /&gt;
=== Kompilacja OpenNI2 ===&lt;br /&gt;
&lt;br /&gt;
wymagania&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install git-core g++ cmake libudev-dev libxi-dev libxmu-dev python libusb-1.0-0-dev libudev-dev freeglut3-dev doxygen graphviz&lt;br /&gt;
&lt;br /&gt;
 sudo add-apt-repository ppa:webupd8team/java&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get install oracle-java8-installer&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/occipital/OpenNI2.git&lt;br /&gt;
 cd OpenNI2&lt;br /&gt;
 #Save path for further reference&lt;br /&gt;
 OPENNI_DIR=&amp;quot;${PWD}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 sed -i '/-Werror/ s/^/#/' ${OPENNI_DIR}/ThirdParty/PSCommon/BuildSystem/CommonCppMakefile&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;LDFLAGS += -lpthread&amp;quot; &amp;gt;&amp;gt; ${OPENNI_DIR}/Source/Tools/NiViewer/Makefile&lt;br /&gt;
 make&lt;br /&gt;
 sudo ${OPENNI_DIR}/Packaging/Linux/install.sh&lt;br /&gt;
 sudo gpasswd -a ${USER} video&lt;br /&gt;
&lt;br /&gt;
=== Instalacja z binarek ===&lt;br /&gt;
&lt;br /&gt;
Należy pobrać binarny pakiet ze strony http://structure.io/openni i wypakować do katalogu np. &amp;lt;code&amp;gt;OpenNI-Linux-x64-2.2&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 $ cd OpenNI-Linux-x64-2.2&lt;br /&gt;
 $ sudo ./install.sh&lt;br /&gt;
&lt;br /&gt;
w aktualnym katalogu utworzy się skrypt &amp;lt;code&amp;gt;OpenNIDevEnvironment&amp;lt;/code&amp;gt;, który ustawia środowisko dev&lt;br /&gt;
&lt;br /&gt;
=== Kompilacja libfreenect ===&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/OpenKinect/libfreenect.git&lt;br /&gt;
 cd libfreenect&lt;br /&gt;
 mkdir build; cd build&lt;br /&gt;
 cmake .. -DBUILD_OPENNI2_DRIVER=ON&lt;br /&gt;
 make -j4&lt;br /&gt;
 cp -L lib/OpenNI2-FreenectDriver/libFreenectDriver.so ${OPENNI_DIR}/Bin/x64-Release/OpenNI2/Drivers/&lt;br /&gt;
&lt;br /&gt;
Test&lt;br /&gt;
&lt;br /&gt;
 cd ${OPENNI_DIR}/Bin/x64-Release/&lt;br /&gt;
 ./NiViewer&lt;br /&gt;
&lt;br /&gt;
=== Instalacja biblioteki NiTE2 ===&lt;br /&gt;
&lt;br /&gt;
http://ilab.usc.edu/packages/forall/ubuntu-13.10/NiTE-Linux-x64-2.2.tar.bz2&lt;br /&gt;
 &lt;br /&gt;
 cd NiTE-Linux-x64-2.2&lt;br /&gt;
 sudo ./install.sh&lt;br /&gt;
&lt;br /&gt;
 cp -L /usr/local/lib/OpenNI2-FreenectDriver/libFreenectDriver.so NiTE-Linux-x64-2.2/Samples/Bin/OpenNI2/Drivers/&lt;/div&gt;</summary>
		<author><name>Alex</name></author>
		
	</entry>
	<entry>
		<id>http://brain.fuw.edu.pl/edu/index.php?title=Instalacja_i_konfiguracja_Kinect,_Wiimote_i_Eyetrackera&amp;diff=5002</id>
		<title>Instalacja i konfiguracja Kinect, Wiimote i Eyetrackera</title>
		<link rel="alternate" type="text/html" href="http://brain.fuw.edu.pl/edu/index.php?title=Instalacja_i_konfiguracja_Kinect,_Wiimote_i_Eyetrackera&amp;diff=5002"/>
		<updated>2016-03-23T11:10:21Z</updated>

		<summary type="html">&lt;p&gt;Alex: /* Kinect + OpenNI2 + NiTE2 + freenect */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Kinect + OpenNI2 + NiTE2 + freenect ==&lt;br /&gt;
&lt;br /&gt;
Instalacja OpenNI 2 + NiTE 2 z prekonfigurowanych binarek dla Ubuntu 15.10:&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install freeglut3 python-opencv libboost-all-dev&lt;br /&gt;
 cd ~&lt;br /&gt;
 wget http://static.mroja.net/kinect/kinect.7z&lt;br /&gt;
 7z x kinect.7z&lt;br /&gt;
 cd ~/kinect&lt;br /&gt;
 sudo cp primesense-and-kinect-usb.rules /etc/udev/rules.d/557-primesense-usb.rules&lt;br /&gt;
 export LD_LIBRARY_PATH=/home/{USER_NAME}/kinect/Redist (to najlepiej wrzucić do .profile)&lt;br /&gt;
 cd Redist&lt;br /&gt;
 ./NiViewer&lt;br /&gt;
&lt;br /&gt;
Należy prawdzić czy użytkownik, na koncie którego będzie używany Kinect należy do grupy plugdev -- jeśli nie, dodać: &lt;br /&gt;
 sudo usermod -G plugdev -a USER_NAME&lt;br /&gt;
&lt;br /&gt;
Alternatywnie zamiast gotowej paczki binarek można użyć OpenNI ze strony http://structure.io/openni.&lt;br /&gt;
&lt;br /&gt;
=== wrapper+obci ===&lt;br /&gt;
&lt;br /&gt;
Moduł do Pythona (plik &amp;lt;code&amp;gt;nite2.so&amp;lt;/code&amp;gt;) należy zbudować z repozytorium https://github.com/BrainTech/nite2-bindings i umieścić w katalogu &amp;lt;code&amp;gt;/usr/lib/python2.7/dist-packages&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Skopiuj katalog NiTE2 (&amp;lt;code&amp;gt;/home/USER_NAME/kinect/Redist/NiTE2&amp;lt;/code&amp;gt;) do katalogu &amp;lt;code&amp;gt;~/.obci/sandbox&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
na koncie lab&lt;br /&gt;
&lt;br /&gt;
 cd ~/kinect/Redist&lt;br /&gt;
 cp /path_to_file/nite2.so nite2.so&lt;br /&gt;
&lt;br /&gt;
 cp -r /home/lab/kinect/Redist/NiTE2/ ~/.obci/sandbox/&lt;br /&gt;
&lt;br /&gt;
na koncie newtech&lt;br /&gt;
&lt;br /&gt;
 cd ~/kinect/Redist&lt;br /&gt;
 cp /path_to_file/nite2.so nite2.so&lt;br /&gt;
&lt;br /&gt;
 mkdir /home/newtech/.obci/  # jeśli katalog istnieje to pominąć&lt;br /&gt;
 mkdir /home/newtech/.obci/sandbox  # j.w.&lt;br /&gt;
&lt;br /&gt;
 cp -r /home/newtech/kinect/Redist/NiTE2/ ~/.obci/sandbox/&lt;br /&gt;
&lt;br /&gt;
== Instalacja xwiimote ==&lt;br /&gt;
&lt;br /&gt;
UWAGA!!! NIE NALEŻY instalować pakietu xwiimote z repozytoriów Debiana i Ubuntu - są one przestarzałe.&lt;br /&gt;
&lt;br /&gt;
Wymagane wersje:&lt;br /&gt;
* kernel &amp;gt;= 3.5+&lt;br /&gt;
* bluez &amp;gt;= 5.11+&lt;br /&gt;
&lt;br /&gt;
=== A) Instalacja wymaganych pakietów ===&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install autoconf autogen automake gcc bluetooth ncurses-dev libudev-dev libtool git blueman python-dev dh-autoreconf pkg-config swig&lt;br /&gt;
&lt;br /&gt;
=== B) xwiimote driver &amp;amp; utils ===&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/BrainTech/xwiimote&lt;br /&gt;
 cd xwiimote&lt;br /&gt;
 ./autogen.sh&lt;br /&gt;
 make&lt;br /&gt;
 sudo make install&lt;br /&gt;
 sudo ldconfig&lt;br /&gt;
&lt;br /&gt;
=== C) Python bindings ===&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/BrainTech/xwiimote-bindings&lt;br /&gt;
 cd xwiimote-bindings&lt;br /&gt;
 ./autogen.sh&lt;br /&gt;
 make&lt;br /&gt;
 sudo make install&lt;br /&gt;
 sudo ldconfig&lt;br /&gt;
&lt;br /&gt;
=== D) Żeby działało bez sudo dla userów lab i newtech ===&lt;br /&gt;
&lt;br /&gt;
 sudo usermod -a -G input newtech&lt;br /&gt;
 sudo usermod -a -G input lab&lt;br /&gt;
&lt;br /&gt;
=== E) Sparować urządzenie z użyciem wbudowanego do Ubuntu panelu Bluetooth ===&lt;br /&gt;
&lt;br /&gt;
=== F) Demo ===&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/irq0/wiiscale.git&lt;br /&gt;
 cd wiiscale&lt;br /&gt;
&lt;br /&gt;
Należy odkomentować linijki 134 i 135:&lt;br /&gt;
&lt;br /&gt;
 134: #        for m in measurements(iface):&lt;br /&gt;
 135: #            print_bboard_measurements(*m)&lt;br /&gt;
&lt;br /&gt;
Demo można uruchomić poleceniem:&lt;br /&gt;
&lt;br /&gt;
 python ./scale.py&lt;br /&gt;
&lt;br /&gt;
== Tobii REX eyetracker ==&lt;br /&gt;
&lt;br /&gt;
* zainstalować pakiet deb dla 64bit Linuxa z http://developer.tobii.com/rex-setup-gaze-sdk/&lt;br /&gt;
* poprosić Aleksa o kopię SDK&lt;br /&gt;
* w katalogu &amp;lt;code&amp;gt;Samples&amp;lt;/code&amp;gt; w SDK znajduje się demo (należy je zbudować poleceniem &amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
== Stara wersja instrukcji ==&lt;br /&gt;
&lt;br /&gt;
Instalacja OpenNI2&lt;br /&gt;
&lt;br /&gt;
wymagania&lt;br /&gt;
 sudo apt-get install git-core g++ cmake libudev-dev libxi-dev libxmu-dev python libusb-1.0-0-dev libudev-dev freeglut3-dev doxygen graphviz&lt;br /&gt;
&lt;br /&gt;
 sudo add-apt-repository ppa:webupd8team/java&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get install oracle-java8-installer&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/occipital/OpenNI2.git&lt;br /&gt;
 cd OpenNI2&lt;br /&gt;
 #Save path for further reference&lt;br /&gt;
 OPENNI_DIR=&amp;quot;${PWD}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 sed -i '/-Werror/ s/^/#/' ${OPENNI_DIR}/ThirdParty/PSCommon/BuildSystem/CommonCppMakefile&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;LDFLAGS += -lpthread&amp;quot; &amp;gt;&amp;gt; ${OPENNI_DIR}/Source/Tools/NiViewer/Makefile&lt;br /&gt;
 make&lt;br /&gt;
 sudo ${OPENNI_DIR}/Packaging/Linux/install.sh&lt;br /&gt;
 sudo gpasswd -a ${USER} video&lt;br /&gt;
&lt;br /&gt;
LUB (preferowana opcja):&lt;br /&gt;
pobrać binarny pakiet ze strony http://structure.io/openni&lt;br /&gt;
wypakować do katalogu np. OpenNI-Linux-x64-2.2&lt;br /&gt;
 $ cd OpenNI-Linux-x64-2.2&lt;br /&gt;
 $ sudo ./install.sh&lt;br /&gt;
w aktualnym katalogu utworzy się skrypt “OpenNIDevEnvironment”, który ustawia środowisko dev&lt;br /&gt;
&lt;br /&gt;
Instalacja libfreenect&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/OpenKinect/libfreenect.git&lt;br /&gt;
 cd libfreenect&lt;br /&gt;
 mkdir build; cd build&lt;br /&gt;
 cmake .. -DBUILD_OPENNI2_DRIVER=ON&lt;br /&gt;
 make -j4&lt;br /&gt;
 cp -L lib/OpenNI2-FreenectDriver/libFreenectDriver.so ${OPENNI_DIR}/Bin/x64-Release/OpenNI2/Drivers/&lt;br /&gt;
&lt;br /&gt;
Test&lt;br /&gt;
 cd ${OPENNI_DIR}/Bin/x64-Release/&lt;br /&gt;
 ./NiViewer&lt;br /&gt;
&lt;br /&gt;
Instalacja biblioteki NiTE2 &lt;br /&gt;
&lt;br /&gt;
http://ilab.usc.edu/packages/forall/ubuntu-13.10/NiTE-Linux-x64-2.2.tar.bz2&lt;br /&gt;
 cd NiTE-Linux-x64-2.2&lt;br /&gt;
 sudo ./install.sh&lt;br /&gt;
&lt;br /&gt;
 cp -L /usr/local/lib/OpenNI2-FreenectDriver/libFreenectDriver.so NiTE-Linux-x64-2.2/Samples/Bin/OpenNI2/Drivers/&lt;/div&gt;</summary>
		<author><name>Alex</name></author>
		
	</entry>
	<entry>
		<id>http://brain.fuw.edu.pl/edu/index.php?title=Instalacja_i_konfiguracja_Kinect,_Wiimote_i_Eyetrackera&amp;diff=5001</id>
		<title>Instalacja i konfiguracja Kinect, Wiimote i Eyetrackera</title>
		<link rel="alternate" type="text/html" href="http://brain.fuw.edu.pl/edu/index.php?title=Instalacja_i_konfiguracja_Kinect,_Wiimote_i_Eyetrackera&amp;diff=5001"/>
		<updated>2016-03-23T11:08:37Z</updated>

		<summary type="html">&lt;p&gt;Alex: /* Instalacja xwiimote */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Kinect + OpenNI2 + NiTE2 + freenect ==&lt;br /&gt;
&lt;br /&gt;
Instalacja OpenNI 2 + NiTE 2 z prekonfigurowanych binarek dla Ubuntu 15.10:&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install freeglut3 python-opencv libboost-all-dev&lt;br /&gt;
 cd ~&lt;br /&gt;
 wget http://static.mroja.net/kinect/kinect.7z&lt;br /&gt;
 7z x kinect.7z&lt;br /&gt;
 cd ~/kinect&lt;br /&gt;
 sudo cp primesense-and-kinect-usb.rules /etc/udev/rules.d/557-primesense-usb.rules&lt;br /&gt;
 export LD_LIBRARY_PATH=/home/{USER_NAME}/kinect/Redist (to najlepiej wrzucić do .profile)&lt;br /&gt;
 cd Redist&lt;br /&gt;
 ./NiViewer&lt;br /&gt;
&lt;br /&gt;
Należy prawdzić czy użytkownik, na koncie którego będzie używany Kinect należy do grupy plugdev -- jeśli nie, dodać: &lt;br /&gt;
 sudo usermod -G plugdev -a USER_NAME&lt;br /&gt;
&lt;br /&gt;
=== wrapper+obci ===&lt;br /&gt;
&lt;br /&gt;
Moduł do Pythona (plik &amp;lt;code&amp;gt;nite2.so&amp;lt;/code&amp;gt;) należy zbudować z repozytorium https://github.com/BrainTech/nite2-bindings i umieścić w katalogu &amp;lt;code&amp;gt;/usr/lib/python2.7/dist-packages&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Skopiuj katalog NiTE2 (&amp;lt;code&amp;gt;/home/USER_NAME/kinect/Redist/NiTE2&amp;lt;/code&amp;gt;) do katalogu &amp;lt;code&amp;gt;~/.obci/sandbox&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
na koncie lab&lt;br /&gt;
&lt;br /&gt;
 cd ~/kinect/Redist&lt;br /&gt;
 cp /path_to_file/nite2.so nite2.so&lt;br /&gt;
&lt;br /&gt;
 cp -r /home/lab/kinect/Redist/NiTE2/ ~/.obci/sandbox/&lt;br /&gt;
&lt;br /&gt;
na koncie newtech&lt;br /&gt;
&lt;br /&gt;
 cd ~/kinect/Redist&lt;br /&gt;
 cp /path_to_file/nite2.so nite2.so&lt;br /&gt;
&lt;br /&gt;
 mkdir /home/newtech/.obci/  # jeśli katalog istnieje to pominąć&lt;br /&gt;
 mkdir /home/newtech/.obci/sandbox  # j.w.&lt;br /&gt;
&lt;br /&gt;
 cp -r /home/newtech/kinect/Redist/NiTE2/ ~/.obci/sandbox/&lt;br /&gt;
&lt;br /&gt;
== Instalacja xwiimote ==&lt;br /&gt;
&lt;br /&gt;
UWAGA!!! NIE NALEŻY instalować pakietu xwiimote z repozytoriów Debiana i Ubuntu - są one przestarzałe.&lt;br /&gt;
&lt;br /&gt;
Wymagane wersje:&lt;br /&gt;
* kernel &amp;gt;= 3.5+&lt;br /&gt;
* bluez &amp;gt;= 5.11+&lt;br /&gt;
&lt;br /&gt;
=== A) Instalacja wymaganych pakietów ===&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install autoconf autogen automake gcc bluetooth ncurses-dev libudev-dev libtool git blueman python-dev dh-autoreconf pkg-config swig&lt;br /&gt;
&lt;br /&gt;
=== B) xwiimote driver &amp;amp; utils ===&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/BrainTech/xwiimote&lt;br /&gt;
 cd xwiimote&lt;br /&gt;
 ./autogen.sh&lt;br /&gt;
 make&lt;br /&gt;
 sudo make install&lt;br /&gt;
 sudo ldconfig&lt;br /&gt;
&lt;br /&gt;
=== C) Python bindings ===&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/BrainTech/xwiimote-bindings&lt;br /&gt;
 cd xwiimote-bindings&lt;br /&gt;
 ./autogen.sh&lt;br /&gt;
 make&lt;br /&gt;
 sudo make install&lt;br /&gt;
 sudo ldconfig&lt;br /&gt;
&lt;br /&gt;
=== D) Żeby działało bez sudo dla userów lab i newtech ===&lt;br /&gt;
&lt;br /&gt;
 sudo usermod -a -G input newtech&lt;br /&gt;
 sudo usermod -a -G input lab&lt;br /&gt;
&lt;br /&gt;
=== E) Sparować urządzenie z użyciem wbudowanego do Ubuntu panelu Bluetooth ===&lt;br /&gt;
&lt;br /&gt;
=== F) Demo ===&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/irq0/wiiscale.git&lt;br /&gt;
 cd wiiscale&lt;br /&gt;
&lt;br /&gt;
Należy odkomentować linijki 134 i 135:&lt;br /&gt;
&lt;br /&gt;
 134: #        for m in measurements(iface):&lt;br /&gt;
 135: #            print_bboard_measurements(*m)&lt;br /&gt;
&lt;br /&gt;
Demo można uruchomić poleceniem:&lt;br /&gt;
&lt;br /&gt;
 python ./scale.py&lt;br /&gt;
&lt;br /&gt;
== Tobii REX eyetracker ==&lt;br /&gt;
&lt;br /&gt;
* zainstalować pakiet deb dla 64bit Linuxa z http://developer.tobii.com/rex-setup-gaze-sdk/&lt;br /&gt;
* poprosić Aleksa o kopię SDK&lt;br /&gt;
* w katalogu &amp;lt;code&amp;gt;Samples&amp;lt;/code&amp;gt; w SDK znajduje się demo (należy je zbudować poleceniem &amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
== Stara wersja instrukcji ==&lt;br /&gt;
&lt;br /&gt;
Instalacja OpenNI2&lt;br /&gt;
&lt;br /&gt;
wymagania&lt;br /&gt;
 sudo apt-get install git-core g++ cmake libudev-dev libxi-dev libxmu-dev python libusb-1.0-0-dev libudev-dev freeglut3-dev doxygen graphviz&lt;br /&gt;
&lt;br /&gt;
 sudo add-apt-repository ppa:webupd8team/java&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get install oracle-java8-installer&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/occipital/OpenNI2.git&lt;br /&gt;
 cd OpenNI2&lt;br /&gt;
 #Save path for further reference&lt;br /&gt;
 OPENNI_DIR=&amp;quot;${PWD}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 sed -i '/-Werror/ s/^/#/' ${OPENNI_DIR}/ThirdParty/PSCommon/BuildSystem/CommonCppMakefile&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;LDFLAGS += -lpthread&amp;quot; &amp;gt;&amp;gt; ${OPENNI_DIR}/Source/Tools/NiViewer/Makefile&lt;br /&gt;
 make&lt;br /&gt;
 sudo ${OPENNI_DIR}/Packaging/Linux/install.sh&lt;br /&gt;
 sudo gpasswd -a ${USER} video&lt;br /&gt;
&lt;br /&gt;
LUB (preferowana opcja):&lt;br /&gt;
pobrać binarny pakiet ze strony http://structure.io/openni&lt;br /&gt;
wypakować do katalogu np. OpenNI-Linux-x64-2.2&lt;br /&gt;
 $ cd OpenNI-Linux-x64-2.2&lt;br /&gt;
 $ sudo ./install.sh&lt;br /&gt;
w aktualnym katalogu utworzy się skrypt “OpenNIDevEnvironment”, który ustawia środowisko dev&lt;br /&gt;
&lt;br /&gt;
Instalacja libfreenect&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/OpenKinect/libfreenect.git&lt;br /&gt;
 cd libfreenect&lt;br /&gt;
 mkdir build; cd build&lt;br /&gt;
 cmake .. -DBUILD_OPENNI2_DRIVER=ON&lt;br /&gt;
 make -j4&lt;br /&gt;
 cp -L lib/OpenNI2-FreenectDriver/libFreenectDriver.so ${OPENNI_DIR}/Bin/x64-Release/OpenNI2/Drivers/&lt;br /&gt;
&lt;br /&gt;
Test&lt;br /&gt;
 cd ${OPENNI_DIR}/Bin/x64-Release/&lt;br /&gt;
 ./NiViewer&lt;br /&gt;
&lt;br /&gt;
Instalacja biblioteki NiTE2 &lt;br /&gt;
&lt;br /&gt;
http://ilab.usc.edu/packages/forall/ubuntu-13.10/NiTE-Linux-x64-2.2.tar.bz2&lt;br /&gt;
 cd NiTE-Linux-x64-2.2&lt;br /&gt;
 sudo ./install.sh&lt;br /&gt;
&lt;br /&gt;
 cp -L /usr/local/lib/OpenNI2-FreenectDriver/libFreenectDriver.so NiTE-Linux-x64-2.2/Samples/Bin/OpenNI2/Drivers/&lt;/div&gt;</summary>
		<author><name>Alex</name></author>
		
	</entry>
	<entry>
		<id>http://brain.fuw.edu.pl/edu/index.php?title=Instalacja_i_konfiguracja_Kinect,_Wiimote_i_Eyetrackera&amp;diff=5000</id>
		<title>Instalacja i konfiguracja Kinect, Wiimote i Eyetrackera</title>
		<link rel="alternate" type="text/html" href="http://brain.fuw.edu.pl/edu/index.php?title=Instalacja_i_konfiguracja_Kinect,_Wiimote_i_Eyetrackera&amp;diff=5000"/>
		<updated>2016-03-23T11:05:37Z</updated>

		<summary type="html">&lt;p&gt;Alex: /* Instalacja xwiimote */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Kinect + OpenNI2 + NiTE2 + freenect ==&lt;br /&gt;
&lt;br /&gt;
Instalacja OpenNI 2 + NiTE 2 z prekonfigurowanych binarek dla Ubuntu 15.10:&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install freeglut3 python-opencv libboost-all-dev&lt;br /&gt;
 cd ~&lt;br /&gt;
 wget http://static.mroja.net/kinect/kinect.7z&lt;br /&gt;
 7z x kinect.7z&lt;br /&gt;
 cd ~/kinect&lt;br /&gt;
 sudo cp primesense-and-kinect-usb.rules /etc/udev/rules.d/557-primesense-usb.rules&lt;br /&gt;
 export LD_LIBRARY_PATH=/home/{USER_NAME}/kinect/Redist (to najlepiej wrzucić do .profile)&lt;br /&gt;
 cd Redist&lt;br /&gt;
 ./NiViewer&lt;br /&gt;
&lt;br /&gt;
Należy prawdzić czy użytkownik, na koncie którego będzie używany Kinect należy do grupy plugdev -- jeśli nie, dodać: &lt;br /&gt;
 sudo usermod -G plugdev -a USER_NAME&lt;br /&gt;
&lt;br /&gt;
=== wrapper+obci ===&lt;br /&gt;
&lt;br /&gt;
Moduł do Pythona (plik &amp;lt;code&amp;gt;nite2.so&amp;lt;/code&amp;gt;) należy zbudować z repozytorium https://github.com/BrainTech/nite2-bindings i umieścić w katalogu &amp;lt;code&amp;gt;/usr/lib/python2.7/dist-packages&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Skopiuj katalog NiTE2 (&amp;lt;code&amp;gt;/home/USER_NAME/kinect/Redist/NiTE2&amp;lt;/code&amp;gt;) do katalogu &amp;lt;code&amp;gt;~/.obci/sandbox&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
na koncie lab&lt;br /&gt;
&lt;br /&gt;
 cd ~/kinect/Redist&lt;br /&gt;
 cp /path_to_file/nite2.so nite2.so&lt;br /&gt;
&lt;br /&gt;
 cp -r /home/lab/kinect/Redist/NiTE2/ ~/.obci/sandbox/&lt;br /&gt;
&lt;br /&gt;
na koncie newtech&lt;br /&gt;
&lt;br /&gt;
 cd ~/kinect/Redist&lt;br /&gt;
 cp /path_to_file/nite2.so nite2.so&lt;br /&gt;
&lt;br /&gt;
 mkdir /home/newtech/.obci/  # jeśli katalog istnieje to pominąć&lt;br /&gt;
 mkdir /home/newtech/.obci/sandbox  # j.w.&lt;br /&gt;
&lt;br /&gt;
 cp -r /home/newtech/kinect/Redist/NiTE2/ ~/.obci/sandbox/&lt;br /&gt;
&lt;br /&gt;
== Instalacja xwiimote ==&lt;br /&gt;
&lt;br /&gt;
UWAGA!!! NIE NALEŻY instalować pakietu xwiimote z Debiana - jest on przestarzały.&lt;br /&gt;
&lt;br /&gt;
Wymagane wersje:&lt;br /&gt;
* kernel &amp;gt;= 3.5+&lt;br /&gt;
* bluez &amp;gt;= 5.11+&lt;br /&gt;
&lt;br /&gt;
A) Instalacja wymaganych pakietów&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install autoconf autogen automake gcc bluetooth ncurses-dev libudev-dev libtool git blueman python-dev dh-autoreconf pkg-config swig&lt;br /&gt;
&lt;br /&gt;
B) xwiimote driver &amp;amp; utils&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/BrainTech/xwiimote&lt;br /&gt;
 cd xwiimote&lt;br /&gt;
 ./autogen.sh&lt;br /&gt;
 make&lt;br /&gt;
 sudo make install&lt;br /&gt;
 sudo ldconfig&lt;br /&gt;
&lt;br /&gt;
C) Python bindings&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/BrainTech/xwiimote-bindings&lt;br /&gt;
 cd xwiimote-bindings&lt;br /&gt;
 ./autogen.sh&lt;br /&gt;
 make&lt;br /&gt;
 sudo make install&lt;br /&gt;
 sudo ldconfig&lt;br /&gt;
&lt;br /&gt;
D) Żeby działało bez sudo dla userów lab i newtech&lt;br /&gt;
&lt;br /&gt;
 sudo usermod -a -G input newtech&lt;br /&gt;
 sudo usermod -a -G input lab&lt;br /&gt;
&lt;br /&gt;
E) Sparować urządzenie z użyciem wbudowanego do Ubuntu panelu Bluetooth&lt;br /&gt;
&lt;br /&gt;
F) Demo&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/irq0/wiiscale.git&lt;br /&gt;
 cd wiiscale&lt;br /&gt;
&lt;br /&gt;
Należy odkomentować linijki 134 i 135:&lt;br /&gt;
&lt;br /&gt;
 134: #        for m in measurements(iface):&lt;br /&gt;
 135: #            print_bboard_measurements(*m)&lt;br /&gt;
&lt;br /&gt;
Demo można uruchomić poleceniem:&lt;br /&gt;
&lt;br /&gt;
 python ./scale.py&lt;br /&gt;
&lt;br /&gt;
== Tobii REX eyetracker ==&lt;br /&gt;
&lt;br /&gt;
* zainstalować pakiet deb dla 64bit Linuxa z http://developer.tobii.com/rex-setup-gaze-sdk/&lt;br /&gt;
* poprosić Aleksa o kopię SDK&lt;br /&gt;
* w katalogu &amp;lt;code&amp;gt;Samples&amp;lt;/code&amp;gt; w SDK znajduje się demo (należy je zbudować poleceniem &amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
== Stara wersja instrukcji ==&lt;br /&gt;
&lt;br /&gt;
Instalacja OpenNI2&lt;br /&gt;
&lt;br /&gt;
wymagania&lt;br /&gt;
 sudo apt-get install git-core g++ cmake libudev-dev libxi-dev libxmu-dev python libusb-1.0-0-dev libudev-dev freeglut3-dev doxygen graphviz&lt;br /&gt;
&lt;br /&gt;
 sudo add-apt-repository ppa:webupd8team/java&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get install oracle-java8-installer&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/occipital/OpenNI2.git&lt;br /&gt;
 cd OpenNI2&lt;br /&gt;
 #Save path for further reference&lt;br /&gt;
 OPENNI_DIR=&amp;quot;${PWD}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 sed -i '/-Werror/ s/^/#/' ${OPENNI_DIR}/ThirdParty/PSCommon/BuildSystem/CommonCppMakefile&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;LDFLAGS += -lpthread&amp;quot; &amp;gt;&amp;gt; ${OPENNI_DIR}/Source/Tools/NiViewer/Makefile&lt;br /&gt;
 make&lt;br /&gt;
 sudo ${OPENNI_DIR}/Packaging/Linux/install.sh&lt;br /&gt;
 sudo gpasswd -a ${USER} video&lt;br /&gt;
&lt;br /&gt;
LUB (preferowana opcja):&lt;br /&gt;
pobrać binarny pakiet ze strony http://structure.io/openni&lt;br /&gt;
wypakować do katalogu np. OpenNI-Linux-x64-2.2&lt;br /&gt;
 $ cd OpenNI-Linux-x64-2.2&lt;br /&gt;
 $ sudo ./install.sh&lt;br /&gt;
w aktualnym katalogu utworzy się skrypt “OpenNIDevEnvironment”, który ustawia środowisko dev&lt;br /&gt;
&lt;br /&gt;
Instalacja libfreenect&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/OpenKinect/libfreenect.git&lt;br /&gt;
 cd libfreenect&lt;br /&gt;
 mkdir build; cd build&lt;br /&gt;
 cmake .. -DBUILD_OPENNI2_DRIVER=ON&lt;br /&gt;
 make -j4&lt;br /&gt;
 cp -L lib/OpenNI2-FreenectDriver/libFreenectDriver.so ${OPENNI_DIR}/Bin/x64-Release/OpenNI2/Drivers/&lt;br /&gt;
&lt;br /&gt;
Test&lt;br /&gt;
 cd ${OPENNI_DIR}/Bin/x64-Release/&lt;br /&gt;
 ./NiViewer&lt;br /&gt;
&lt;br /&gt;
Instalacja biblioteki NiTE2 &lt;br /&gt;
&lt;br /&gt;
http://ilab.usc.edu/packages/forall/ubuntu-13.10/NiTE-Linux-x64-2.2.tar.bz2&lt;br /&gt;
 cd NiTE-Linux-x64-2.2&lt;br /&gt;
 sudo ./install.sh&lt;br /&gt;
&lt;br /&gt;
 cp -L /usr/local/lib/OpenNI2-FreenectDriver/libFreenectDriver.so NiTE-Linux-x64-2.2/Samples/Bin/OpenNI2/Drivers/&lt;/div&gt;</summary>
		<author><name>Alex</name></author>
		
	</entry>
	<entry>
		<id>http://brain.fuw.edu.pl/edu/index.php?title=Uczenie_maszynowe_i_sztuczne_sieci_neuronowe/%C4%86wiczenia_4&amp;diff=4959</id>
		<title>Uczenie maszynowe i sztuczne sieci neuronowe/Ćwiczenia 4</title>
		<link rel="alternate" type="text/html" href="http://brain.fuw.edu.pl/edu/index.php?title=Uczenie_maszynowe_i_sztuczne_sieci_neuronowe/%C4%86wiczenia_4&amp;diff=4959"/>
		<updated>2016-03-18T15:18:59Z</updated>

		<summary type="html">&lt;p&gt;Alex: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Uczenie_maszynowe_i_sztuczne_sieci_neuronowe_cw]]/Wsteczna propagacja błędu&lt;br /&gt;
=Algorytm wstecznej propagacji błędu=&lt;br /&gt;
W tym ćwiczeniu zapoznamy się z algorytmem wstecznej propagacji błędu. Zbudujemy sieć złożoną z 3 warstw: wejściowej, ukrytej i wyjściowej.&lt;br /&gt;
Schemat obliczeń wykonywanych przez tą sieć przedstawiony jest na poniższych rysunkach:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Plik:Back_prop_forward-2.png| 600px|thumb|right|Schemat obliczeń w propagacji wstecznej]]&lt;br /&gt;
[[Plik:Back_prop_backward-2.png |600px|thumb|right|Schemat obliczeń w propagacji wstecznej]]&lt;br /&gt;
&lt;br /&gt;
Warstwy ukryta i wyjściowa będą miały nieliniową funkcję aktywacji w postaci funkcji logistycznej. Dla przypomnienia funkcja logistyczna:&lt;br /&gt;
:&amp;lt;math&amp;gt;g(x) = \frac{1}{1+exp(-x)}&amp;lt;/math&amp;gt;&lt;br /&gt;
zaś jej pochoną to:&lt;br /&gt;
:&amp;lt;math&amp;gt;g'(x) =g(x)*(1-g(x)) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Niech nasza sieć uczy się odwzorowania zadanego tabelką:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:left;&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
!X&lt;br /&gt;
!Y&lt;br /&gt;
|-&lt;br /&gt;
| [0,0]&lt;br /&gt;
| [0,1]&lt;br /&gt;
|-&lt;br /&gt;
| [0,1]&lt;br /&gt;
| [1,0]&lt;br /&gt;
|-&lt;br /&gt;
| [1,0]&lt;br /&gt;
| [1,0]&lt;br /&gt;
|-&lt;br /&gt;
|[1,1] &lt;br /&gt;
|[0,1] &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Proszę napisać kod implementujący obliczenia przedstawione na rysunkach i w poniższym opisie:&lt;br /&gt;
* zdefiniuj funkcję g(x) &lt;br /&gt;
* zdefiniuj funkcję pochodną g_prim(y), zakładając, że jako argument  y podawać będziemy wartość g(x)&lt;br /&gt;
* przygotuj zbiór uczący zgodnie z powyższą tabelą. Niech przykłady będą ułożone w wierszach tablic X i Y&lt;br /&gt;
* zdefiniuj rozmiary sieci:&lt;br /&gt;
** N_wej &lt;br /&gt;
** N_hid &lt;br /&gt;
** N_wyj&lt;br /&gt;
* przygotuj tablicę do przechowywania wag w_1, niech w kolejnych wierszach znajdują się wagi kolejnych neuronów,  a w konkretnym wierszu w  kolumnach kolejne wagi od konkretnego neuronu &lt;br /&gt;
** jakie rozmiary muszą mieć te tablice?                            &lt;br /&gt;
** zainicjuj je wartościami losowymi z przedziału -1,1&lt;br /&gt;
* podobnie przygotuj tablicę dla wag w_2&lt;br /&gt;
* w pętli wykonuj kolejne cykle uczenia&lt;br /&gt;
** zainicjuj do zera: licznik błędu wyjściowego bl, oraz tablice akumulujące delty do zmiany wag    D_1 i D_2&lt;br /&gt;
** w pętli pobieraj kolejno przykłady. Pobierając przykłady formuj je jako wektory kolumnowe    &lt;br /&gt;
*** propaguj sygnały od wejścia:&lt;br /&gt;
**** uzupełnij wektor wejściowy o &amp;quot;1&amp;quot; na szczycie,  wsk. np.vstack)&lt;br /&gt;
**** oblicz pobudzenia  neuronów z_1, &lt;br /&gt;
**** oblicz wartości wyjściowe z warstwy ukrytej &lt;br /&gt;
**** uzupełnij wektor wartości wyjściowych warstwy ukrytej o &amp;quot;1&amp;quot;&lt;br /&gt;
**** oblicz pobudzenia w warstwie wyjściowej     &lt;br /&gt;
**** oblicz wartości wyjściowe z tej warstwy&lt;br /&gt;
*** propaguj błędy &amp;quot;wstecz&amp;quot;&lt;br /&gt;
**** oblicz błąd warstwy wyjściowej ważony przez pochodną funkcji g  (im bardziej funkcja g była stroma w miejscu pobudzenia przy propagacji wprzód, tym bardziej błąd pobudzenia przekładał się na błąd wyjścia)&lt;br /&gt;
**** zrzutuj ten błąd wstecz poprzez wagi w_2 i pochodną funkcji g  &lt;br /&gt;
**** akumulujemy poprawki D_1 i D_2 oraz błąd dla tego przykładu&lt;br /&gt;
** uaktualniamy wagi proporcjonalnie do poprawek (z przeciwnym znakiem)&lt;br /&gt;
** wypisujemy info o błędzie&lt;br /&gt;
&lt;br /&gt;
==Po zakodowaniu uczenia ==&lt;br /&gt;
&lt;br /&gt;
* Proszę wykreślić ewolucje wag i błędu. Ewolucję można zilustrować animacją. W tym celu na początku programu należy ustawić backend dla biblioteki matplotlib przed innymi importami i przełączyć grafikę w tryb interaktywny:&lt;br /&gt;
&amp;lt;source lang = python&amp;gt;&lt;br /&gt;
import matplotlib&lt;br /&gt;
matplotlib.use('TkAgg')&lt;br /&gt;
import pylab as py&lt;br /&gt;
py.ion()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Następnie animację robimy analogicznie jak [[TI/Matplotlib#Prosta_animacja| w tym przykładzie.]]&lt;br /&gt;
&lt;br /&gt;
* Proszę zbadać co dzieje się z wagami wraz ze wzrostem ilości jednostek w warstwie ukrytej.&lt;br /&gt;
* Proszę powtórzyć analizę dla sieci, której warstwa wyjściowa ma jednostkę liniową.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang = python&amp;gt;&lt;br /&gt;
# -*- coding: utf-8 -*-&lt;br /&gt;
import numpy as np&lt;br /&gt;
&lt;br /&gt;
def g(x):&lt;br /&gt;
    y = 1./(1+np.exp(-x))&lt;br /&gt;
    return y&lt;br /&gt;
    &lt;br /&gt;
def g_prim(x):&lt;br /&gt;
    y = x*(1-x)&lt;br /&gt;
    return y&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
#zbiór uczący:&lt;br /&gt;
# wejście, &lt;br /&gt;
X = np.array([  [0,0],&lt;br /&gt;
                [0,1],&lt;br /&gt;
                [1,0],&lt;br /&gt;
                [1,1] ])&lt;br /&gt;
    &lt;br /&gt;
# wyjście            &lt;br /&gt;
Y = np.array([[0,1],&lt;br /&gt;
              [1,0],&lt;br /&gt;
              [1,0],&lt;br /&gt;
              [0,1]])&lt;br /&gt;
            &lt;br /&gt;
              &lt;br /&gt;
# definiujemy rozmiary sieci:&lt;br /&gt;
N_wej = X.shape[1] &lt;br /&gt;
N_hid = 3&lt;br /&gt;
N_wyj = Y.shape[1]&lt;br /&gt;
                            &lt;br /&gt;
# inicjujemy połączenia&lt;br /&gt;
# wagi ułożone są tak, że w kolejnych wierszach są kolejne neurony &lt;br /&gt;
# a w kolumnach wagi od konkretnego neuronu &lt;br /&gt;
# to +1 jest wagą dla obciążenia&lt;br /&gt;
w_1 = 2*np.random.random((N_hid, N_wej+1)) - 1# pomiędzy warstwą pierwszą (wejściem) a warstwą ukrytą&lt;br /&gt;
w_2 = 2*np.random.random((N_wyj, N_hid+1)) - 1&lt;br /&gt;
&lt;br /&gt;
                                                &lt;br /&gt;
for cykl in range(10000):&lt;br /&gt;
    bl =0&lt;br /&gt;
    D_1 = np.zeros((N_hid,N_wej+1))&lt;br /&gt;
    D_2 = np.zeros((N_wyj,N_hid+1))&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    for i in range(0,4):&lt;br /&gt;
        # weźmy przykład i-ty&lt;br /&gt;
        &lt;br /&gt;
        x = X[i,:].reshape(X.shape[1],1)&lt;br /&gt;
        y = Y[i,:].reshape(Y.shape[1],1)&lt;br /&gt;
        &lt;br /&gt;
        # propagacja &amp;quot;w przód&amp;quot;&lt;br /&gt;
        a_0 = np.vstack((1,x))  # z warstwy wejściowej (zerowej) wychodzi a_0&lt;br /&gt;
        &lt;br /&gt;
        z_1 = np.dot( w_1, a_0 )# na warstwe 1 wchodzą iloczyny skalarne &lt;br /&gt;
        a_1 = np.vstack((1,g(z_1))) # dokładamy 1 i dostaję wyjście z warstwy 1&lt;br /&gt;
        &lt;br /&gt;
        z_2 = np.dot( w_2, a_1 ) # na warstwe 3 wchodzą iloczyny skalarne &lt;br /&gt;
        a_2 = g(z_2)&lt;br /&gt;
        if cykl == 10000-1:&lt;br /&gt;
            print 'a: ',str(a_2.T)&lt;br /&gt;
            print 'y: ',str(y.T)&lt;br /&gt;
        # propagacja &amp;quot;wstecz&amp;quot;&lt;br /&gt;
        d_2 = (a_2 - y)*g_prim(a_2)&lt;br /&gt;
        d_1 = np.dot(w_2.T, d_2) * g_prim(a_1)#z_2&lt;br /&gt;
        &lt;br /&gt;
        # akumulujemy poprawki &lt;br /&gt;
        D_2 +=  np.dot( d_2, a_1.T)&lt;br /&gt;
        D_1 +=  np.dot( d_1[1:], a_0.T)&lt;br /&gt;
        &lt;br /&gt;
        bl += np.dot(d_2.T,d_2)&lt;br /&gt;
        &lt;br /&gt;
    eta1 = 0.1&lt;br /&gt;
    # uaktualniamy wagi&lt;br /&gt;
    w_1 -=  eta1*D_1 &lt;br /&gt;
    w_2 -=  eta1*D_2&lt;br /&gt;
    &lt;br /&gt;
    # wypisujemy info o błędzie&lt;br /&gt;
    if (cykl% 1000) == 0:&lt;br /&gt;
        print 'bl: ', bl&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
=XOR=&lt;br /&gt;
Jako pierwszy przykład z zastosowania sieci nieliniowych proszę skonstruować sieć z jedną warstwą ukrytą, rozwiązującą problem XOR.&lt;br /&gt;
&lt;br /&gt;
Potrzebne nam będą następujące importy:&lt;br /&gt;
&amp;lt;source lang = python&amp;gt;&lt;br /&gt;
from pybrain.datasets.supervised import SupervisedDataSet&lt;br /&gt;
from pybrain.tools.shortcuts import buildNetwork&lt;br /&gt;
from pybrain.supervised.trainers import BackpropTrainer, RPropMinusTrainer&lt;br /&gt;
from pybrain.structure import  LinearLayer,SigmoidLayer&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* do stworzenia ciągu uczącego proszę wykorzystać funkcje &amp;lt;tt&amp;gt;addSample&amp;lt;/tt&amp;gt; obiektu &amp;lt;tt&amp;gt;SupervisedDataSet&amp;lt;/tt&amp;gt;:&lt;br /&gt;
&amp;lt;source lang = python&amp;gt;&lt;br /&gt;
ZU = SupervisedDataSet(N_wej,N_wyj)&lt;br /&gt;
ZU.addSample((0,0),(0.0,))&lt;br /&gt;
ZU.addSample((0,1),(1.0,))&lt;br /&gt;
ZU.addSample((1,0),(1.0,))&lt;br /&gt;
ZU.addSample((1,1),(0.0,))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* W konstrukcji sieci proszę wykorzystać funkcję: &amp;lt;tt&amp;gt;buildNetwork&amp;lt;/tt&amp;gt;, tak aby wszystkie warstwy były sigmoidalne:&lt;br /&gt;
&amp;lt;source lang = python&amp;gt;&lt;br /&gt;
siec = buildNetwork(N_wej, N_hid, N_wyj, outclass=SigmoidLayer)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
* Proszę zbadać strukturę wytworzonej sieci: &lt;br /&gt;
&amp;lt;source lang = python&amp;gt;&lt;br /&gt;
siec['in']&lt;br /&gt;
siec['hidden0']&lt;br /&gt;
siec['out']&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
* sieć uczymy metodą wstecznej propagacji błędu, za pomocą funkcji &amp;lt;tt&amp;gt;train&amp;lt;/tt&amp;gt; obiektu &amp;lt;tt&amp;gt;BackpropTrainer&amp;lt;/tt&amp;gt;. Funkcja ta wykonuje jeden cykl uczenia (jednorazowe przejście przez ciąg uczący, przykłady podawane są w losowej kolejności) i  zwraca wartość średniego błędu średniokwadratowego w tym cyklu.&lt;br /&gt;
&lt;br /&gt;
* Proszę wykreślić ewolucje wag i błędu. Ewolucję można zilustrować animacją. W tym celu na początku programu należy ustawić backend dla biblioteki matplotlib przed innymi importami i przełączyć grafikę w tryb interaktywny:&lt;br /&gt;
&amp;lt;source lang = python&amp;gt;&lt;br /&gt;
import matplotlib&lt;br /&gt;
matplotlib.use('TkAgg')&lt;br /&gt;
import pylab as py&lt;br /&gt;
py.ion()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Następnie animację robimy analogicznie jak [[TI:Programowanie_z_Pythonem/Matplotlib#Prosta_animacja| w tym przykładzie.]]&lt;br /&gt;
&lt;br /&gt;
* Proszę zbadać co dzieje się z wagami wraz ze wzrostem ilości jednostek w warstwie ukrytej.&lt;br /&gt;
* Proszę zbadać jak zmienia się zbieżność algorytmu przy zmianie moetody uczenia na [https://brain.fuw.edu.pl/edu/STAT:Uczenie_maszynowe_i_sztuczne_sieci_neuronowe/Wykład_5#Elastyczna_wsteczna_propagacja_b.C5.82.C4.99du Elastyczną propagację wsteczna].&lt;br /&gt;
&lt;br /&gt;
;Uwaga: w przypadku trenera &amp;lt;tt&amp;gt;RPropMinusTrainer&amp;lt;/tt&amp;gt; należy podać zbiór uczący za pomocą metody &amp;lt;tt&amp;gt;setData()&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
* Proszę powtórzyć analizę dla sieci, której warstwa wyjściowa ma jednostkę liniową.&lt;br /&gt;
* Proszę zbadać wpływ regularyzacji (&amp;lt;tt&amp;gt;weightdecay&amp;lt;/tt&amp;gt; w  &amp;lt;tt&amp;gt;BackpropTrainer&amp;lt;/tt&amp;gt;) na strukturę sieci.&lt;br /&gt;
&lt;br /&gt;
{{hidden begin|title=Przykładowe rozwiązanie:}}&lt;br /&gt;
&amp;lt;source lang = python&amp;gt;&lt;br /&gt;
import matplotlib&lt;br /&gt;
matplotlib.use('TkAgg')&lt;br /&gt;
&lt;br /&gt;
from pybrain.datasets.supervised import SupervisedDataSet&lt;br /&gt;
from pybrain.tools.shortcuts import buildNetwork&lt;br /&gt;
from pybrain.supervised.trainers import BackpropTrainer&lt;br /&gt;
import numpy as np&lt;br /&gt;
import pylab as py&lt;br /&gt;
&lt;br /&gt;
N_wej = 2&lt;br /&gt;
N_wyj = 1&lt;br /&gt;
ZU = SupervisedDataSet(N_wej,N_wyj)&lt;br /&gt;
ZU.addSample((0,0),(0.2,))&lt;br /&gt;
ZU.addSample(...)&lt;br /&gt;
ZU.addSample(...)&lt;br /&gt;
ZU.addSample(...)&lt;br /&gt;
&lt;br /&gt;
N_hid = ...&lt;br /&gt;
siec = buildNetwork(...)&lt;br /&gt;
&lt;br /&gt;
t = BackpropTrainer(siec, ZU, learningrate=0.05, momentum=0.95, verbose=False)  # dodatkowe parametry sterujące przebiegim uczenia:  lrdecay=1.0, weightdecay=0.0025)&lt;br /&gt;
&lt;br /&gt;
N_krokow = 1000&lt;br /&gt;
err = np.zeros(N_krokow)&lt;br /&gt;
wagi = np.zeros((N_krokow,len(siec.params)))&lt;br /&gt;
&lt;br /&gt;
py.ion()&lt;br /&gt;
py.subplot(2,1,1)&lt;br /&gt;
l_err, = py.plot(err)&lt;br /&gt;
py.ylim([0,1])&lt;br /&gt;
py.subplot(2,1,2)&lt;br /&gt;
l_wagi = py.plot(wagi)&lt;br /&gt;
py.ylim([-3,3])&lt;br /&gt;
&lt;br /&gt;
for i in range(N_krokow):&lt;br /&gt;
    err[i] = t.train()&lt;br /&gt;
    wagi[i,:] = ...&lt;br /&gt;
    l_err.set_ydata(err)&lt;br /&gt;
    for k in range(len(l_wagi)):&lt;br /&gt;
        l_wagi[k].set_ydata(wagi[:,k])&lt;br /&gt;
    py.draw()&lt;br /&gt;
&lt;br /&gt;
print '0','0','-&amp;gt;', str(siec.activate((0,0)))&lt;br /&gt;
print '0','1','-&amp;gt;', str(siec.activate(...))&lt;br /&gt;
print '1','0','-&amp;gt;', str(siec.activate(...))&lt;br /&gt;
print '1','1','-&amp;gt;', str(siec.activate(...))&lt;br /&gt;
py.ioff()&lt;br /&gt;
py.show()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang = python&amp;gt;&lt;br /&gt;
import matplotlib&lt;br /&gt;
matplotlib.use('TkAgg')&lt;br /&gt;
&lt;br /&gt;
from pybrain.datasets.supervised import SupervisedDataSet&lt;br /&gt;
from pybrain.tools.shortcuts import buildNetwork&lt;br /&gt;
from pybrain.supervised.trainers import BackpropTrainer&lt;br /&gt;
import numpy as np&lt;br /&gt;
import pylab as py&lt;br /&gt;
&lt;br /&gt;
N_wej = 2&lt;br /&gt;
N_wyj = 1&lt;br /&gt;
ZU = SupervisedDataSet(N_wej,N_wyj)&lt;br /&gt;
ZU.addSample((0,0),(0.2,))&lt;br /&gt;
ZU.addSample((0,1),(0.8,))&lt;br /&gt;
ZU.addSample((1,0),(0.8,))&lt;br /&gt;
ZU.addSample((1,1),(0.2,))&lt;br /&gt;
&lt;br /&gt;
N_hid = 4&lt;br /&gt;
siec = buildNetwork(N_wej, N_hid, N_wyj)&lt;br /&gt;
&lt;br /&gt;
t = BackpropTrainer(siec, ZU, learningrate=0.05, momentum=0.95, verbose=False)  # dodatkowe parametry sterujące przebiegim uczenia:  lrdecay=1.0, weightdecay=0.0025)&lt;br /&gt;
&lt;br /&gt;
N_krokow = 1000&lt;br /&gt;
err = np.zeros(N_krokow)&lt;br /&gt;
wagi = np.zeros((N_krokow,len(siec.params)))&lt;br /&gt;
&lt;br /&gt;
py.ion()&lt;br /&gt;
py.subplot(2,1,1)&lt;br /&gt;
l_err, = py.plot(err)&lt;br /&gt;
py.ylim([0,1])&lt;br /&gt;
py.subplot(2,1,2)&lt;br /&gt;
l_wagi = py.plot(wagi)&lt;br /&gt;
py.ylim([-3,3])&lt;br /&gt;
&lt;br /&gt;
for i in range(N_krokow):&lt;br /&gt;
    err[i] = t.train()&lt;br /&gt;
    wagi[i,:] = siec.params&lt;br /&gt;
    l_err.set_ydata(err)&lt;br /&gt;
    for k in range(len(l_wagi)):&lt;br /&gt;
        l_wagi[k].set_ydata(wagi[:,k])&lt;br /&gt;
    py.draw()&lt;br /&gt;
&lt;br /&gt;
print '0','0','-&amp;gt;', str(siec.activate((0,0)))&lt;br /&gt;
print '0','1','-&amp;gt;', str(siec.activate((0,1)))&lt;br /&gt;
print '1','0','-&amp;gt;', str(siec.activate((1,0)))&lt;br /&gt;
print '1','1','-&amp;gt;', str(siec.activate((1,1)))&lt;br /&gt;
py.ioff()&lt;br /&gt;
py.show()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Uczenie_maszynowe_i_sztuczne_sieci_neuronowe_cw]]/Wsteczna propagacja błędu&lt;/div&gt;</summary>
		<author><name>Alex</name></author>
		
	</entry>
	<entry>
		<id>http://brain.fuw.edu.pl/edu/index.php?title=Uczenie_maszynowe_i_sztuczne_sieci_neuronowe/%C4%86wiczenia_4&amp;diff=4958</id>
		<title>Uczenie maszynowe i sztuczne sieci neuronowe/Ćwiczenia 4</title>
		<link rel="alternate" type="text/html" href="http://brain.fuw.edu.pl/edu/index.php?title=Uczenie_maszynowe_i_sztuczne_sieci_neuronowe/%C4%86wiczenia_4&amp;diff=4958"/>
		<updated>2016-03-18T15:17:17Z</updated>

		<summary type="html">&lt;p&gt;Alex: /* Algorytm wstecznej propagacji błędu */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Uczenie_maszynowe_i_sztuczne_sieci_neuronowe]]/Wsteczna propagacja błędu&lt;br /&gt;
=Algorytm wstecznej propagacji błędu=&lt;br /&gt;
W tym ćwiczeniu zapoznamy się z algorytmem wstecznej propagacji błędu. Zbudujemy sieć złożoną z 3 warstw: wejściowej, ukrytej i wyjściowej.&lt;br /&gt;
Schemat obliczeń wykonywanych przez tą sieć przedstawiony jest na poniższych rysunkach:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Plik:Back_prop_forward-2.png| 600px|thumb|right|Schemat obliczeń w propagacji wstecznej]]&lt;br /&gt;
[[Plik:Back_prop_backward-2.png |600px|thumb|right|Schemat obliczeń w propagacji wstecznej]]&lt;br /&gt;
&lt;br /&gt;
Warstwy ukryta i wyjściowa będą miały nieliniową funkcję aktywacji w postaci funkcji logistycznej. Dla przypomnienia funkcja logistyczna:&lt;br /&gt;
:&amp;lt;math&amp;gt;g(x) = \frac{1}{1+exp(-x)}&amp;lt;/math&amp;gt;&lt;br /&gt;
zaś jej pochoną to:&lt;br /&gt;
:&amp;lt;math&amp;gt;g'(x) =g(x)*(1-g(x)) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Niech nasza sieć uczy się odwzorowania zadanego tabelką:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:left;&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
!X&lt;br /&gt;
!Y&lt;br /&gt;
|-&lt;br /&gt;
| [0,0]&lt;br /&gt;
| [0,1]&lt;br /&gt;
|-&lt;br /&gt;
| [0,1]&lt;br /&gt;
| [1,0]&lt;br /&gt;
|-&lt;br /&gt;
| [1,0]&lt;br /&gt;
| [1,0]&lt;br /&gt;
|-&lt;br /&gt;
|[1,1] &lt;br /&gt;
|[0,1] &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Proszę napisać kod implementujący obliczenia przedstawione na rysunkach i w poniższym opisie:&lt;br /&gt;
* zdefiniuj funkcję g(x) &lt;br /&gt;
* zdefiniuj funkcję pochodną g_prim(y), zakładając, że jako argument  y podawać będziemy wartość g(x)&lt;br /&gt;
* przygotuj zbiór uczący zgodnie z powyższą tabelą. Niech przykłady będą ułożone w wierszach tablic X i Y&lt;br /&gt;
* zdefiniuj rozmiary sieci:&lt;br /&gt;
** N_wej &lt;br /&gt;
** N_hid &lt;br /&gt;
** N_wyj&lt;br /&gt;
* przygotuj tablicę do przechowywania wag w_1, niech w kolejnych wierszach znajdują się wagi kolejnych neuronów,  a w konkretnym wierszu w  kolumnach kolejne wagi od konkretnego neuronu &lt;br /&gt;
** jakie rozmiary muszą mieć te tablice?                            &lt;br /&gt;
** zainicjuj je wartościami losowymi z przedziału -1,1&lt;br /&gt;
* podobnie przygotuj tablicę dla wag w_2&lt;br /&gt;
* w pętli wykonuj kolejne cykle uczenia&lt;br /&gt;
** zainicjuj do zera: licznik błędu wyjściowego bl, oraz tablice akumulujące delty do zmiany wag    D_1 i D_2&lt;br /&gt;
** w pętli pobieraj kolejno przykłady. Pobierając przykłady formuj je jako wektory kolumnowe    &lt;br /&gt;
*** propaguj sygnały od wejścia:&lt;br /&gt;
**** uzupełnij wektor wejściowy o &amp;quot;1&amp;quot; na szczycie,  wsk. np.vstack)&lt;br /&gt;
**** oblicz pobudzenia  neuronów z_1, &lt;br /&gt;
**** oblicz wartości wyjściowe z warstwy ukrytej &lt;br /&gt;
**** uzupełnij wektor wartości wyjściowych warstwy ukrytej o &amp;quot;1&amp;quot;&lt;br /&gt;
**** oblicz pobudzenia w warstwie wyjściowej     &lt;br /&gt;
**** oblicz wartości wyjściowe z tej warstwy&lt;br /&gt;
*** propaguj błędy &amp;quot;wstecz&amp;quot;&lt;br /&gt;
**** oblicz błąd warstwy wyjściowej ważony przez pochodną funkcji g  (im bardziej funkcja g była stroma w miejscu pobudzenia przy propagacji wprzód, tym bardziej błąd pobudzenia przekładał się na błąd wyjścia)&lt;br /&gt;
**** zrzutuj ten błąd wstecz poprzez wagi w_2 i pochodną funkcji g  &lt;br /&gt;
**** akumulujemy poprawki D_1 i D_2 oraz błąd dla tego przykładu&lt;br /&gt;
** uaktualniamy wagi proporcjonalnie do poprawek (z przeciwnym znakiem)&lt;br /&gt;
** wypisujemy info o błędzie&lt;br /&gt;
&lt;br /&gt;
==Po zakodowaniu uczenia ==&lt;br /&gt;
&lt;br /&gt;
* Proszę wykreślić ewolucje wag i błędu. Ewolucję można zilustrować animacją. W tym celu na początku programu należy ustawić backend dla biblioteki matplotlib przed innymi importami i przełączyć grafikę w tryb interaktywny:&lt;br /&gt;
&amp;lt;source lang = python&amp;gt;&lt;br /&gt;
import matplotlib&lt;br /&gt;
matplotlib.use('TkAgg')&lt;br /&gt;
import pylab as py&lt;br /&gt;
py.ion()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Następnie animację robimy analogicznie jak [[TI/Matplotlib#Prosta_animacja| w tym przykładzie.]]&lt;br /&gt;
&lt;br /&gt;
* Proszę zbadać co dzieje się z wagami wraz ze wzrostem ilości jednostek w warstwie ukrytej.&lt;br /&gt;
* Proszę powtórzyć analizę dla sieci, której warstwa wyjściowa ma jednostkę liniową.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang = python&amp;gt;&lt;br /&gt;
# -*- coding: utf-8 -*-&lt;br /&gt;
import numpy as np&lt;br /&gt;
&lt;br /&gt;
def g(x):&lt;br /&gt;
    y = 1./(1+np.exp(-x))&lt;br /&gt;
    return y&lt;br /&gt;
    &lt;br /&gt;
def g_prim(x):&lt;br /&gt;
    y = x*(1-x)&lt;br /&gt;
    return y&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
#zbiór uczący:&lt;br /&gt;
# wejście, &lt;br /&gt;
X = np.array([  [0,0],&lt;br /&gt;
                [0,1],&lt;br /&gt;
                [1,0],&lt;br /&gt;
                [1,1] ])&lt;br /&gt;
    &lt;br /&gt;
# wyjście            &lt;br /&gt;
Y = np.array([[0,1],&lt;br /&gt;
              [1,0],&lt;br /&gt;
              [1,0],&lt;br /&gt;
              [0,1]])&lt;br /&gt;
            &lt;br /&gt;
              &lt;br /&gt;
# definiujemy rozmiary sieci:&lt;br /&gt;
N_wej = X.shape[1] &lt;br /&gt;
N_hid = 3&lt;br /&gt;
N_wyj = Y.shape[1]&lt;br /&gt;
                            &lt;br /&gt;
# inicjujemy połączenia&lt;br /&gt;
# wagi ułożone są tak, że w kolejnych wierszach są kolejne neurony &lt;br /&gt;
# a w kolumnach wagi od konkretnego neuronu &lt;br /&gt;
# to +1 jest wagą dla obciążenia&lt;br /&gt;
w_1 = 2*np.random.random((N_hid, N_wej+1)) - 1# pomiędzy warstwą pierwszą (wejściem) a warstwą ukrytą&lt;br /&gt;
w_2 = 2*np.random.random((N_wyj, N_hid+1)) - 1&lt;br /&gt;
&lt;br /&gt;
                                                &lt;br /&gt;
for cykl in range(10000):&lt;br /&gt;
    bl =0&lt;br /&gt;
    D_1 = np.zeros((N_hid,N_wej+1))&lt;br /&gt;
    D_2 = np.zeros((N_wyj,N_hid+1))&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    for i in range(0,4):&lt;br /&gt;
        # weźmy przykład i-ty&lt;br /&gt;
        &lt;br /&gt;
        x = X[i,:].reshape(X.shape[1],1)&lt;br /&gt;
        y = Y[i,:].reshape(Y.shape[1],1)&lt;br /&gt;
        &lt;br /&gt;
        # propagacja &amp;quot;w przód&amp;quot;&lt;br /&gt;
        a_0 = np.vstack((1,x))  # z warstwy wejściowej (zerowej) wychodzi a_0&lt;br /&gt;
        &lt;br /&gt;
        z_1 = np.dot( w_1, a_0 )# na warstwe 1 wchodzą iloczyny skalarne &lt;br /&gt;
        a_1 = np.vstack((1,g(z_1))) # dokładamy 1 i dostaję wyjście z warstwy 1&lt;br /&gt;
        &lt;br /&gt;
        z_2 = np.dot( w_2, a_1 ) # na warstwe 3 wchodzą iloczyny skalarne &lt;br /&gt;
        a_2 = g(z_2)&lt;br /&gt;
        if cykl == 10000-1:&lt;br /&gt;
            print 'a: ',str(a_2.T)&lt;br /&gt;
            print 'y: ',str(y.T)&lt;br /&gt;
        # propagacja &amp;quot;wstecz&amp;quot;&lt;br /&gt;
        d_2 = (a_2 - y)*g_prim(a_2)&lt;br /&gt;
        d_1 = np.dot(w_2.T, d_2) * g_prim(a_1)#z_2&lt;br /&gt;
        &lt;br /&gt;
        # akumulujemy poprawki &lt;br /&gt;
        D_2 +=  np.dot( d_2, a_1.T)&lt;br /&gt;
        D_1 +=  np.dot( d_1[1:], a_0.T)&lt;br /&gt;
        &lt;br /&gt;
        bl += np.dot(d_2.T,d_2)&lt;br /&gt;
        &lt;br /&gt;
    eta1 = 0.1&lt;br /&gt;
    # uaktualniamy wagi&lt;br /&gt;
    w_1 -=  eta1*D_1 &lt;br /&gt;
    w_2 -=  eta1*D_2&lt;br /&gt;
    &lt;br /&gt;
    # wypisujemy info o błędzie&lt;br /&gt;
    if (cykl% 1000) == 0:&lt;br /&gt;
        print 'bl: ', bl&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
=XOR=&lt;br /&gt;
Jako pierwszy przykład z zastosowania sieci nieliniowych proszę skonstruować sieć z jedną warstwą ukrytą, rozwiązującą problem XOR.&lt;br /&gt;
&lt;br /&gt;
Potrzebne nam będą następujące importy:&lt;br /&gt;
&amp;lt;source lang = python&amp;gt;&lt;br /&gt;
from pybrain.datasets.supervised import SupervisedDataSet&lt;br /&gt;
from pybrain.tools.shortcuts import buildNetwork&lt;br /&gt;
from pybrain.supervised.trainers import BackpropTrainer, RPropMinusTrainer&lt;br /&gt;
from pybrain.structure import  LinearLayer,SigmoidLayer&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* do stworzenia ciągu uczącego proszę wykorzystać funkcje &amp;lt;tt&amp;gt;addSample&amp;lt;/tt&amp;gt; obiektu &amp;lt;tt&amp;gt;SupervisedDataSet&amp;lt;/tt&amp;gt;:&lt;br /&gt;
&amp;lt;source lang = python&amp;gt;&lt;br /&gt;
ZU = SupervisedDataSet(N_wej,N_wyj)&lt;br /&gt;
ZU.addSample((0,0),(0.0,))&lt;br /&gt;
ZU.addSample((0,1),(1.0,))&lt;br /&gt;
ZU.addSample((1,0),(1.0,))&lt;br /&gt;
ZU.addSample((1,1),(0.0,))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* W konstrukcji sieci proszę wykorzystać funkcję: &amp;lt;tt&amp;gt;buildNetwork&amp;lt;/tt&amp;gt;, tak aby wszystkie warstwy były sigmoidalne:&lt;br /&gt;
&amp;lt;source lang = python&amp;gt;&lt;br /&gt;
siec = buildNetwork(N_wej, N_hid, N_wyj, outclass=SigmoidLayer)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
* Proszę zbadać strukturę wytworzonej sieci: &lt;br /&gt;
&amp;lt;source lang = python&amp;gt;&lt;br /&gt;
siec['in']&lt;br /&gt;
siec['hidden0']&lt;br /&gt;
siec['out']&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
* sieć uczymy metodą wstecznej propagacji błędu, za pomocą funkcji &amp;lt;tt&amp;gt;train&amp;lt;/tt&amp;gt; obiektu &amp;lt;tt&amp;gt;BackpropTrainer&amp;lt;/tt&amp;gt;. Funkcja ta wykonuje jeden cykl uczenia (jednorazowe przejście przez ciąg uczący, przykłady podawane są w losowej kolejności) i  zwraca wartość średniego błędu średniokwadratowego w tym cyklu.&lt;br /&gt;
&lt;br /&gt;
* Proszę wykreślić ewolucje wag i błędu. Ewolucję można zilustrować animacją. W tym celu na początku programu należy ustawić backend dla biblioteki matplotlib przed innymi importami i przełączyć grafikę w tryb interaktywny:&lt;br /&gt;
&amp;lt;source lang = python&amp;gt;&lt;br /&gt;
import matplotlib&lt;br /&gt;
matplotlib.use('TkAgg')&lt;br /&gt;
import pylab as py&lt;br /&gt;
py.ion()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Następnie animację robimy analogicznie jak [[TI:Programowanie_z_Pythonem/Matplotlib#Prosta_animacja| w tym przykładzie.]]&lt;br /&gt;
&lt;br /&gt;
* Proszę zbadać co dzieje się z wagami wraz ze wzrostem ilości jednostek w warstwie ukrytej.&lt;br /&gt;
* Proszę zbadać jak zmienia się zbieżność algorytmu przy zmianie moetody uczenia na [https://brain.fuw.edu.pl/edu/STAT:Uczenie_maszynowe_i_sztuczne_sieci_neuronowe/Wykład_5#Elastyczna_wsteczna_propagacja_b.C5.82.C4.99du Elastyczną propagację wsteczna].&lt;br /&gt;
&lt;br /&gt;
;Uwaga: w przypadku trenera &amp;lt;tt&amp;gt;RPropMinusTrainer&amp;lt;/tt&amp;gt; należy podać zbiór uczący za pomocą metody &amp;lt;tt&amp;gt;setData()&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
* Proszę powtórzyć analizę dla sieci, której warstwa wyjściowa ma jednostkę liniową.&lt;br /&gt;
* Proszę zbadać wpływ regularyzacji (&amp;lt;tt&amp;gt;weightdecay&amp;lt;/tt&amp;gt; w  &amp;lt;tt&amp;gt;BackpropTrainer&amp;lt;/tt&amp;gt;) na strukturę sieci.&lt;br /&gt;
&lt;br /&gt;
{{hidden begin|title=Przykładowe rozwiązanie:}}&lt;br /&gt;
&amp;lt;source lang = python&amp;gt;&lt;br /&gt;
import matplotlib&lt;br /&gt;
matplotlib.use('TkAgg')&lt;br /&gt;
&lt;br /&gt;
from pybrain.datasets.supervised import SupervisedDataSet&lt;br /&gt;
from pybrain.tools.shortcuts import buildNetwork&lt;br /&gt;
from pybrain.supervised.trainers import BackpropTrainer&lt;br /&gt;
import numpy as np&lt;br /&gt;
import pylab as py&lt;br /&gt;
&lt;br /&gt;
N_wej = 2&lt;br /&gt;
N_wyj = 1&lt;br /&gt;
ZU = SupervisedDataSet(N_wej,N_wyj)&lt;br /&gt;
ZU.addSample((0,0),(0.2,))&lt;br /&gt;
ZU.addSample(...)&lt;br /&gt;
ZU.addSample(...)&lt;br /&gt;
ZU.addSample(...)&lt;br /&gt;
&lt;br /&gt;
N_hid = ...&lt;br /&gt;
siec = buildNetwork(...)&lt;br /&gt;
&lt;br /&gt;
t = BackpropTrainer(siec, ZU, learningrate=0.05, momentum=0.95, verbose=False)  # dodatkowe parametry sterujące przebiegim uczenia:  lrdecay=1.0, weightdecay=0.0025)&lt;br /&gt;
&lt;br /&gt;
N_krokow = 1000&lt;br /&gt;
err = np.zeros(N_krokow)&lt;br /&gt;
wagi = np.zeros((N_krokow,len(siec.params)))&lt;br /&gt;
&lt;br /&gt;
py.ion()&lt;br /&gt;
py.subplot(2,1,1)&lt;br /&gt;
l_err, = py.plot(err)&lt;br /&gt;
py.ylim([0,1])&lt;br /&gt;
py.subplot(2,1,2)&lt;br /&gt;
l_wagi = py.plot(wagi)&lt;br /&gt;
py.ylim([-3,3])&lt;br /&gt;
&lt;br /&gt;
for i in range(N_krokow):&lt;br /&gt;
    err[i] = t.train()&lt;br /&gt;
    wagi[i,:] = ...&lt;br /&gt;
    l_err.set_ydata(err)&lt;br /&gt;
    for k in range(len(l_wagi)):&lt;br /&gt;
        l_wagi[k].set_ydata(wagi[:,k])&lt;br /&gt;
    py.draw()&lt;br /&gt;
&lt;br /&gt;
print '0','0','-&amp;gt;', str(siec.activate((0,0)))&lt;br /&gt;
print '0','1','-&amp;gt;', str(siec.activate(...))&lt;br /&gt;
print '1','0','-&amp;gt;', str(siec.activate(...))&lt;br /&gt;
print '1','1','-&amp;gt;', str(siec.activate(...))&lt;br /&gt;
py.ioff()&lt;br /&gt;
py.show()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang = python&amp;gt;&lt;br /&gt;
import matplotlib&lt;br /&gt;
matplotlib.use('TkAgg')&lt;br /&gt;
&lt;br /&gt;
from pybrain.datasets.supervised import SupervisedDataSet&lt;br /&gt;
from pybrain.tools.shortcuts import buildNetwork&lt;br /&gt;
from pybrain.supervised.trainers import BackpropTrainer&lt;br /&gt;
import numpy as np&lt;br /&gt;
import pylab as py&lt;br /&gt;
&lt;br /&gt;
N_wej = 2&lt;br /&gt;
N_wyj = 1&lt;br /&gt;
ZU = SupervisedDataSet(N_wej,N_wyj)&lt;br /&gt;
ZU.addSample((0,0),(0.2,))&lt;br /&gt;
ZU.addSample((0,1),(0.8,))&lt;br /&gt;
ZU.addSample((1,0),(0.8,))&lt;br /&gt;
ZU.addSample((1,1),(0.2,))&lt;br /&gt;
&lt;br /&gt;
N_hid = 4&lt;br /&gt;
siec = buildNetwork(N_wej, N_hid, N_wyj)&lt;br /&gt;
&lt;br /&gt;
t = BackpropTrainer(siec, ZU, learningrate=0.05, momentum=0.95, verbose=False)  # dodatkowe parametry sterujące przebiegim uczenia:  lrdecay=1.0, weightdecay=0.0025)&lt;br /&gt;
&lt;br /&gt;
N_krokow = 1000&lt;br /&gt;
err = np.zeros(N_krokow)&lt;br /&gt;
wagi = np.zeros((N_krokow,len(siec.params)))&lt;br /&gt;
&lt;br /&gt;
py.ion()&lt;br /&gt;
py.subplot(2,1,1)&lt;br /&gt;
l_err, = py.plot(err)&lt;br /&gt;
py.ylim([0,1])&lt;br /&gt;
py.subplot(2,1,2)&lt;br /&gt;
l_wagi = py.plot(wagi)&lt;br /&gt;
py.ylim([-3,3])&lt;br /&gt;
&lt;br /&gt;
for i in range(N_krokow):&lt;br /&gt;
    err[i] = t.train()&lt;br /&gt;
    wagi[i,:] = siec.params&lt;br /&gt;
    l_err.set_ydata(err)&lt;br /&gt;
    for k in range(len(l_wagi)):&lt;br /&gt;
        l_wagi[k].set_ydata(wagi[:,k])&lt;br /&gt;
    py.draw()&lt;br /&gt;
&lt;br /&gt;
print '0','0','-&amp;gt;', str(siec.activate((0,0)))&lt;br /&gt;
print '0','1','-&amp;gt;', str(siec.activate((0,1)))&lt;br /&gt;
print '1','0','-&amp;gt;', str(siec.activate((1,0)))&lt;br /&gt;
print '1','1','-&amp;gt;', str(siec.activate((1,1)))&lt;br /&gt;
py.ioff()&lt;br /&gt;
py.show()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Uczenie_maszynowe_i_sztuczne_sieci_neuronowe]]/Wsteczna propagacja błędu&lt;/div&gt;</summary>
		<author><name>Alex</name></author>
		
	</entry>
	<entry>
		<id>http://brain.fuw.edu.pl/edu/index.php?title=Uczenie_maszynowe_i_sztuczne_sieci_neuronowe/%C4%86wiczenia_4&amp;diff=4957</id>
		<title>Uczenie maszynowe i sztuczne sieci neuronowe/Ćwiczenia 4</title>
		<link rel="alternate" type="text/html" href="http://brain.fuw.edu.pl/edu/index.php?title=Uczenie_maszynowe_i_sztuczne_sieci_neuronowe/%C4%86wiczenia_4&amp;diff=4957"/>
		<updated>2016-03-18T15:06:14Z</updated>

		<summary type="html">&lt;p&gt;Alex: /* Algorytm wstecznej propagacji błędu */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Algorytm wstecznej propagacji błędu=&lt;br /&gt;
W tym ćwiczeniu zapoznamy się z algorytmem wstecznej propagacji błędu. Zbudujemy sieć złożoną z 3 warstw: wejściowej, ukrytej i wyjściowej.&lt;br /&gt;
Schemat obliczeń wykonywanych przez tą sieć przedstawiony jest na poniższych rysunkach:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Plik:Back_prop_forward-2.png| 600px|thumb|right|Schemat obliczeń w propagacji wstecznej]]&lt;br /&gt;
[[Plik:Back_prop_backward-2.png |600px|thumb|right|Schemat obliczeń w propagacji wstecznej]]&lt;br /&gt;
&lt;br /&gt;
Warstwy ukryta i wyjściowa będą miały nieliniową funkcję aktywacji w postaci funkcji logistycznej. Dla przypomnienia funkcja logistyczna:&lt;br /&gt;
:&amp;lt;math&amp;gt;g(x) = \frac{1}{1+exp(-x)}&amp;lt;/math&amp;gt;&lt;br /&gt;
zaś jej pochoną to:&lt;br /&gt;
:&amp;lt;math&amp;gt;g'(x) =g(x)*(1-g(x)) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Niech nasza sieć uczy się odwzorowania zadanego tabelką:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:left;&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
!X&lt;br /&gt;
!Y&lt;br /&gt;
|-&lt;br /&gt;
| [0,0]&lt;br /&gt;
| [0,1]&lt;br /&gt;
|-&lt;br /&gt;
| [0,1]&lt;br /&gt;
| [1,0]&lt;br /&gt;
|-&lt;br /&gt;
| [1,0]&lt;br /&gt;
| [1,0]&lt;br /&gt;
|-&lt;br /&gt;
|[1,1] &lt;br /&gt;
|[0,1] &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Proszę napisać kod implementujący obliczenia przedstawione na rysunkach i w poniższym opisie:&lt;br /&gt;
* zdefiniuj funkcję g(x) &lt;br /&gt;
* zdefiniuj funkcję pochodną g_prim(y), zakładając, że jako argument  y podawać będziemy wartość g(x)&lt;br /&gt;
* przygotuj zbiór uczący zgodnie z powyższą tabelą. Niech przykłady będą ułożone w wierszach tablic X i Y&lt;br /&gt;
* zdefiniuj rozmiary sieci:&lt;br /&gt;
** N_wej &lt;br /&gt;
** N_hid &lt;br /&gt;
** N_wyj&lt;br /&gt;
* przygotuj tablicę do przechowywania wag w_1, niech w kolejnych wierszach znajdują się wagi kolejnych neuronów,  a w konkretnym wierszu w  kolumnach kolejne wagi od konkretnego neuronu &lt;br /&gt;
** jakie rozmiary muszą mieć te tablice?                            &lt;br /&gt;
** zainicjuj je wartościami losowymi z przedziału -1,1&lt;br /&gt;
* podobnie przygotuj tablicę dla wag w_2&lt;br /&gt;
* w pętli wykonuj kolejne cykle uczenia&lt;br /&gt;
** zainicjuj do zera: licznik błędu wyjściowego bl, oraz tablice akumulujące delty do zmiany wag    D_1 i D_2&lt;br /&gt;
** w pętli pobieraj kolejno przykłady. Pobierając przykłady formuj je jako wektory kolumnowe    &lt;br /&gt;
*** propaguj sygnały od wejścia:&lt;br /&gt;
**** uzupełnij wektor wejściowy o &amp;quot;1&amp;quot; na szczycie,  wsk. np.vstack)&lt;br /&gt;
**** oblicz pobudzenia  neuronów z_1, &lt;br /&gt;
**** oblicz wartości wyjściowe z warstwy ukrytej &lt;br /&gt;
**** uzupełnij wektor wartości wyjściowych warstwy ukrytej o &amp;quot;1&amp;quot;&lt;br /&gt;
**** oblicz pobudzenia w warstwie wyjściowej     &lt;br /&gt;
**** oblicz wartości wyjściowe z tej warstwy&lt;br /&gt;
*** propaguj błędy &amp;quot;wstecz&amp;quot;&lt;br /&gt;
**** oblicz błąd warstwy wyjściowej ważony przez pochodną funkcji g  (im bardziej funkcja g była stroma w miejscu pobudzenia przy propagacji wprzód, tym bardziej błąd pobudzenia przekładał się na błąd wyjścia)&lt;br /&gt;
**** zrzutuj ten błąd wstecz poprzez wagi w_2 i pochodną funkcji g  &lt;br /&gt;
**** akumulujemy poprawki D_1 i D_2 oraz błąd dla tego przykładu&lt;br /&gt;
** uaktualniamy wagi proporcjonalnie do poprawek (z przeciwnym znakiem)&lt;br /&gt;
** wypisujemy info o błędzie&lt;br /&gt;
&lt;br /&gt;
==Po zakodowaniu uczenia ==&lt;br /&gt;
&lt;br /&gt;
* Proszę wykreślić ewolucje wag i błędu. Ewolucję można zilustrować animacją. W tym celu na początku programu należy ustawić backend dla biblioteki matplotlib przed innymi importami i przełączyć grafikę w tryb interaktywny:&lt;br /&gt;
&amp;lt;source lang = python&amp;gt;&lt;br /&gt;
import matplotlib&lt;br /&gt;
matplotlib.use('TkAgg')&lt;br /&gt;
import pylab as py&lt;br /&gt;
py.ion()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Następnie animację robimy analogicznie jak [[TI/Matplotlib#Prosta_animacja| w tym przykładzie.]]&lt;br /&gt;
&lt;br /&gt;
* Proszę zbadać co dzieje się z wagami wraz ze wzrostem ilości jednostek w warstwie ukrytej.&lt;br /&gt;
* Proszę powtórzyć analizę dla sieci, której warstwa wyjściowa ma jednostkę liniową.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang = python&amp;gt;&lt;br /&gt;
# -*- coding: utf-8 -*-&lt;br /&gt;
import numpy as np&lt;br /&gt;
&lt;br /&gt;
def g(x):&lt;br /&gt;
    y = 1./(1+np.exp(-x))&lt;br /&gt;
    return y&lt;br /&gt;
    &lt;br /&gt;
def g_prim(x):&lt;br /&gt;
    y = x*(1-x)&lt;br /&gt;
    return y&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
#zbiór uczący:&lt;br /&gt;
# wejście, &lt;br /&gt;
X = np.array([  [0,0],&lt;br /&gt;
                [0,1],&lt;br /&gt;
                [1,0],&lt;br /&gt;
                [1,1] ])&lt;br /&gt;
    &lt;br /&gt;
# wyjście            &lt;br /&gt;
Y = np.array([[0,1],&lt;br /&gt;
              [1,0],&lt;br /&gt;
              [1,0],&lt;br /&gt;
              [0,1]])&lt;br /&gt;
            &lt;br /&gt;
              &lt;br /&gt;
# definiujemy rozmiary sieci:&lt;br /&gt;
N_wej = X.shape[1] &lt;br /&gt;
N_hid = 3&lt;br /&gt;
N_wyj = Y.shape[1]&lt;br /&gt;
                            &lt;br /&gt;
# inicjujemy połączenia&lt;br /&gt;
# wagi ułożone są tak, że w kolejnych wierszach są kolejne neurony &lt;br /&gt;
# a w kolumnach wagi od konkretnego neuronu &lt;br /&gt;
# to +1 jest wagą dla obciążenia&lt;br /&gt;
w_1 = 2*np.random.random((N_hid, N_wej+1)) - 1# pomiędzy warstwą pierwszą (wejściem) a warstwą ukrytą&lt;br /&gt;
w_2 = 2*np.random.random((N_wyj, N_hid+1)) - 1&lt;br /&gt;
&lt;br /&gt;
                                                &lt;br /&gt;
for cykl in range(10000):&lt;br /&gt;
    bl =0&lt;br /&gt;
    D_1 = np.zeros((N_hid,N_wej+1))&lt;br /&gt;
    D_2 = np.zeros((N_wyj,N_hid+1))&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    for i in range(0,4):&lt;br /&gt;
        # weźmy przykład i-ty&lt;br /&gt;
        &lt;br /&gt;
        x = X[i,:].reshape(X.shape[1],1)&lt;br /&gt;
        y = Y[i,:].reshape(Y.shape[1],1)&lt;br /&gt;
        &lt;br /&gt;
        # propagacja &amp;quot;w przód&amp;quot;&lt;br /&gt;
        a_0 = np.vstack((1,x))  # z warstwy wejściowej (zerowej) wychodzi a_0&lt;br /&gt;
        &lt;br /&gt;
        z_1 = np.dot( w_1, a_0 )# na warstwe 1 wchodzą iloczyny skalarne &lt;br /&gt;
        a_1 = np.vstack((1,g(z_1))) # dokładamy 1 i dostaję wyjście z warstwy 1&lt;br /&gt;
        &lt;br /&gt;
        z_2 = np.dot( w_2, a_1 ) # na warstwe 3 wchodzą iloczyny skalarne &lt;br /&gt;
        a_2 = g(z_2)&lt;br /&gt;
        if cykl == 10000-1:&lt;br /&gt;
            print 'a: ',str(a_2.T)&lt;br /&gt;
            print 'y: ',str(y.T)&lt;br /&gt;
        # propagacja &amp;quot;wstecz&amp;quot;&lt;br /&gt;
        d_2 = (a_2 - y)*g_prim(a_2)&lt;br /&gt;
        d_1 = np.dot(w_2.T, d_2) * g_prim(a_1)#z_2&lt;br /&gt;
        &lt;br /&gt;
        # akumulujemy poprawki &lt;br /&gt;
        D_2 +=  np.dot( d_2, a_1.T)&lt;br /&gt;
        D_1 +=  np.dot( d_1[1:], a_0.T)&lt;br /&gt;
        &lt;br /&gt;
        bl += np.dot(d_2.T,d_2)&lt;br /&gt;
        &lt;br /&gt;
    eta1 = 0.1&lt;br /&gt;
    # uaktualniamy wagi&lt;br /&gt;
    w_1 -=  eta1*D_1 &lt;br /&gt;
    w_2 -=  eta1*D_2&lt;br /&gt;
    &lt;br /&gt;
    # wypisujemy info o błędzie&lt;br /&gt;
    if (cykl% 1000) == 0:&lt;br /&gt;
        print 'bl: ', bl&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
=XOR=&lt;br /&gt;
Jako pierwszy przykład z zastosowania sieci nieliniowych proszę skonstruować sieć z jedną warstwą ukrytą, rozwiązującą problem XOR.&lt;br /&gt;
&lt;br /&gt;
Potrzebne nam będą następujące importy:&lt;br /&gt;
&amp;lt;source lang = python&amp;gt;&lt;br /&gt;
from pybrain.datasets.supervised import SupervisedDataSet&lt;br /&gt;
from pybrain.tools.shortcuts import buildNetwork&lt;br /&gt;
from pybrain.supervised.trainers import BackpropTrainer, RPropMinusTrainer&lt;br /&gt;
from pybrain.structure import  LinearLayer,SigmoidLayer&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* do stworzenia ciągu uczącego proszę wykorzystać funkcje &amp;lt;tt&amp;gt;addSample&amp;lt;/tt&amp;gt; obiektu &amp;lt;tt&amp;gt;SupervisedDataSet&amp;lt;/tt&amp;gt;:&lt;br /&gt;
&amp;lt;source lang = python&amp;gt;&lt;br /&gt;
ZU = SupervisedDataSet(N_wej,N_wyj)&lt;br /&gt;
ZU.addSample((0,0),(0.0,))&lt;br /&gt;
ZU.addSample((0,1),(1.0,))&lt;br /&gt;
ZU.addSample((1,0),(1.0,))&lt;br /&gt;
ZU.addSample((1,1),(0.0,))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* W konstrukcji sieci proszę wykorzystać funkcję: &amp;lt;tt&amp;gt;buildNetwork&amp;lt;/tt&amp;gt;, tak aby wszystkie warstwy były sigmoidalne:&lt;br /&gt;
&amp;lt;source lang = python&amp;gt;&lt;br /&gt;
siec = buildNetwork(N_wej, N_hid, N_wyj, outclass=SigmoidLayer)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
* Proszę zbadać strukturę wytworzonej sieci: &lt;br /&gt;
&amp;lt;source lang = python&amp;gt;&lt;br /&gt;
siec['in']&lt;br /&gt;
siec['hidden0']&lt;br /&gt;
siec['out']&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
* sieć uczymy metodą wstecznej propagacji błędu, za pomocą funkcji &amp;lt;tt&amp;gt;train&amp;lt;/tt&amp;gt; obiektu &amp;lt;tt&amp;gt;BackpropTrainer&amp;lt;/tt&amp;gt;. Funkcja ta wykonuje jeden cykl uczenia (jednorazowe przejście przez ciąg uczący, przykłady podawane są w losowej kolejności) i  zwraca wartość średniego błędu średniokwadratowego w tym cyklu.&lt;br /&gt;
&lt;br /&gt;
* Proszę wykreślić ewolucje wag i błędu. Ewolucję można zilustrować animacją. W tym celu na początku programu należy ustawić backend dla biblioteki matplotlib przed innymi importami i przełączyć grafikę w tryb interaktywny:&lt;br /&gt;
&amp;lt;source lang = python&amp;gt;&lt;br /&gt;
import matplotlib&lt;br /&gt;
matplotlib.use('TkAgg')&lt;br /&gt;
import pylab as py&lt;br /&gt;
py.ion()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Następnie animację robimy analogicznie jak [[TI:Programowanie_z_Pythonem/Matplotlib#Prosta_animacja| w tym przykładzie.]]&lt;br /&gt;
&lt;br /&gt;
* Proszę zbadać co dzieje się z wagami wraz ze wzrostem ilości jednostek w warstwie ukrytej.&lt;br /&gt;
* Proszę zbadać jak zmienia się zbieżność algorytmu przy zmianie moetody uczenia na [https://brain.fuw.edu.pl/edu/STAT:Uczenie_maszynowe_i_sztuczne_sieci_neuronowe/Wykład_5#Elastyczna_wsteczna_propagacja_b.C5.82.C4.99du Elastyczną propagację wsteczna].&lt;br /&gt;
&lt;br /&gt;
;Uwaga: w przypadku trenera &amp;lt;tt&amp;gt;RPropMinusTrainer&amp;lt;/tt&amp;gt; należy podać zbiór uczący za pomocą metody &amp;lt;tt&amp;gt;setData()&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
* Proszę powtórzyć analizę dla sieci, której warstwa wyjściowa ma jednostkę liniową.&lt;br /&gt;
* Proszę zbadać wpływ regularyzacji (&amp;lt;tt&amp;gt;weightdecay&amp;lt;/tt&amp;gt; w  &amp;lt;tt&amp;gt;BackpropTrainer&amp;lt;/tt&amp;gt;) na strukturę sieci.&lt;br /&gt;
&lt;br /&gt;
{{hidden begin|title=Przykładowe rozwiązanie:}}&lt;br /&gt;
&amp;lt;source lang = python&amp;gt;&lt;br /&gt;
import matplotlib&lt;br /&gt;
matplotlib.use('TkAgg')&lt;br /&gt;
&lt;br /&gt;
from pybrain.datasets.supervised import SupervisedDataSet&lt;br /&gt;
from pybrain.tools.shortcuts import buildNetwork&lt;br /&gt;
from pybrain.supervised.trainers import BackpropTrainer&lt;br /&gt;
import numpy as np&lt;br /&gt;
import pylab as py&lt;br /&gt;
&lt;br /&gt;
N_wej = 2&lt;br /&gt;
N_wyj = 1&lt;br /&gt;
ZU = SupervisedDataSet(N_wej,N_wyj)&lt;br /&gt;
ZU.addSample((0,0),(0.2,))&lt;br /&gt;
ZU.addSample(...)&lt;br /&gt;
ZU.addSample(...)&lt;br /&gt;
ZU.addSample(...)&lt;br /&gt;
&lt;br /&gt;
N_hid = ...&lt;br /&gt;
siec = buildNetwork(...)&lt;br /&gt;
&lt;br /&gt;
t = BackpropTrainer(siec, ZU, learningrate=0.05, momentum=0.95, verbose=False)  # dodatkowe parametry sterujące przebiegim uczenia:  lrdecay=1.0, weightdecay=0.0025)&lt;br /&gt;
&lt;br /&gt;
N_krokow = 1000&lt;br /&gt;
err = np.zeros(N_krokow)&lt;br /&gt;
wagi = np.zeros((N_krokow,len(siec.params)))&lt;br /&gt;
&lt;br /&gt;
py.ion()&lt;br /&gt;
py.subplot(2,1,1)&lt;br /&gt;
l_err, = py.plot(err)&lt;br /&gt;
py.ylim([0,1])&lt;br /&gt;
py.subplot(2,1,2)&lt;br /&gt;
l_wagi = py.plot(wagi)&lt;br /&gt;
py.ylim([-3,3])&lt;br /&gt;
&lt;br /&gt;
for i in range(N_krokow):&lt;br /&gt;
    err[i] = t.train()&lt;br /&gt;
    wagi[i,:] = ...&lt;br /&gt;
    l_err.set_ydata(err)&lt;br /&gt;
    for k in range(len(l_wagi)):&lt;br /&gt;
        l_wagi[k].set_ydata(wagi[:,k])&lt;br /&gt;
    py.draw()&lt;br /&gt;
&lt;br /&gt;
print '0','0','-&amp;gt;', str(siec.activate((0,0)))&lt;br /&gt;
print '0','1','-&amp;gt;', str(siec.activate(...))&lt;br /&gt;
print '1','0','-&amp;gt;', str(siec.activate(...))&lt;br /&gt;
print '1','1','-&amp;gt;', str(siec.activate(...))&lt;br /&gt;
py.ioff()&lt;br /&gt;
py.show()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang = python&amp;gt;&lt;br /&gt;
import matplotlib&lt;br /&gt;
matplotlib.use('TkAgg')&lt;br /&gt;
&lt;br /&gt;
from pybrain.datasets.supervised import SupervisedDataSet&lt;br /&gt;
from pybrain.tools.shortcuts import buildNetwork&lt;br /&gt;
from pybrain.supervised.trainers import BackpropTrainer&lt;br /&gt;
import numpy as np&lt;br /&gt;
import pylab as py&lt;br /&gt;
&lt;br /&gt;
N_wej = 2&lt;br /&gt;
N_wyj = 1&lt;br /&gt;
ZU = SupervisedDataSet(N_wej,N_wyj)&lt;br /&gt;
ZU.addSample((0,0),(0.2,))&lt;br /&gt;
ZU.addSample((0,1),(0.8,))&lt;br /&gt;
ZU.addSample((1,0),(0.8,))&lt;br /&gt;
ZU.addSample((1,1),(0.2,))&lt;br /&gt;
&lt;br /&gt;
N_hid = 4&lt;br /&gt;
siec = buildNetwork(N_wej, N_hid, N_wyj)&lt;br /&gt;
&lt;br /&gt;
t = BackpropTrainer(siec, ZU, learningrate=0.05, momentum=0.95, verbose=False)  # dodatkowe parametry sterujące przebiegim uczenia:  lrdecay=1.0, weightdecay=0.0025)&lt;br /&gt;
&lt;br /&gt;
N_krokow = 1000&lt;br /&gt;
err = np.zeros(N_krokow)&lt;br /&gt;
wagi = np.zeros((N_krokow,len(siec.params)))&lt;br /&gt;
&lt;br /&gt;
py.ion()&lt;br /&gt;
py.subplot(2,1,1)&lt;br /&gt;
l_err, = py.plot(err)&lt;br /&gt;
py.ylim([0,1])&lt;br /&gt;
py.subplot(2,1,2)&lt;br /&gt;
l_wagi = py.plot(wagi)&lt;br /&gt;
py.ylim([-3,3])&lt;br /&gt;
&lt;br /&gt;
for i in range(N_krokow):&lt;br /&gt;
    err[i] = t.train()&lt;br /&gt;
    wagi[i,:] = siec.params&lt;br /&gt;
    l_err.set_ydata(err)&lt;br /&gt;
    for k in range(len(l_wagi)):&lt;br /&gt;
        l_wagi[k].set_ydata(wagi[:,k])&lt;br /&gt;
    py.draw()&lt;br /&gt;
&lt;br /&gt;
print '0','0','-&amp;gt;', str(siec.activate((0,0)))&lt;br /&gt;
print '0','1','-&amp;gt;', str(siec.activate((0,1)))&lt;br /&gt;
print '1','0','-&amp;gt;', str(siec.activate((1,0)))&lt;br /&gt;
print '1','1','-&amp;gt;', str(siec.activate((1,1)))&lt;br /&gt;
py.ioff()&lt;br /&gt;
py.show()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Alex</name></author>
		
	</entry>
	<entry>
		<id>http://brain.fuw.edu.pl/edu/index.php?title=Uczenie_maszynowe_i_sztuczne_sieci_neuronowe/%C4%86wiczenia_4&amp;diff=4956</id>
		<title>Uczenie maszynowe i sztuczne sieci neuronowe/Ćwiczenia 4</title>
		<link rel="alternate" type="text/html" href="http://brain.fuw.edu.pl/edu/index.php?title=Uczenie_maszynowe_i_sztuczne_sieci_neuronowe/%C4%86wiczenia_4&amp;diff=4956"/>
		<updated>2016-03-18T15:00:29Z</updated>

		<summary type="html">&lt;p&gt;Alex: /* XOR */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Algorytm wstecznej propagacji błędu=&lt;br /&gt;
W tym ćwiczeniu zapoznamy się z algorytmem wstecznej propagacji błędu. Zbudujemy sieć złożoną z 3 warstw: wejściowej, ukrytej i wyjściowej.&lt;br /&gt;
Schemat obliczeń wykonywanych przez tą sieć przedstawiony jest na poniższych rysunkach:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Plik:Back_prop_forward-2.png| 600px|thumb|right|Schemat obliczeń w propagacji wstecznej]]&lt;br /&gt;
[[Plik:Back_prop_backward-2.png |600px|thumb|right|Schemat obliczeń w propagacji wstecznej]]&lt;br /&gt;
&lt;br /&gt;
Warstwy ukryta i wyjściowa będą miały nieliniową funkcję aktywacji w postaci funkcji logistycznej. Dla przypomnienia funkcja logistyczna:&lt;br /&gt;
:&amp;lt;math&amp;gt;g(x) = \frac{1}{1+exp(-x)}&amp;lt;/math&amp;gt;&lt;br /&gt;
zaś jej pochoną to:&lt;br /&gt;
:&amp;lt;math&amp;gt;g'(x) =g(x)*(1-g(x)) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Niech nasza sieć uczy się odwzorowania zadanego tabelką:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:left;&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
!X&lt;br /&gt;
!Y&lt;br /&gt;
|-&lt;br /&gt;
| [0,0]&lt;br /&gt;
| [0,1]&lt;br /&gt;
|-&lt;br /&gt;
| [0,1]&lt;br /&gt;
| [1,0]&lt;br /&gt;
|-&lt;br /&gt;
| [1,0]&lt;br /&gt;
| [1,0]&lt;br /&gt;
|-&lt;br /&gt;
|[1,1] &lt;br /&gt;
|[0,1] &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Proszę napisać kod implementujący obliczenia przedstawione na rysunkach i w poniższym opisie:&lt;br /&gt;
* zdefiniuj funkcję g(x) &lt;br /&gt;
* zdefiniuj funkcję pochodną g_prim(y), zakładając, że jako argument  y podawać będziemy wartość g(x)&lt;br /&gt;
* przygotuj zbiór uczący zgodnie z powyższą tabelą. Niech przykłady będą ułożone w wierszach tablic X i Y&lt;br /&gt;
* zdefiniuj rozmiary sieci:&lt;br /&gt;
** N_wej &lt;br /&gt;
** N_hid &lt;br /&gt;
** N_wyj&lt;br /&gt;
* przygotuj tablicę do przechowywania wag w_1, niech w kolejnych wierszach znajdują się wagi kolejnych neuronów,  a w konkretnym wierszu w  kolumnach kolejne wagi od konkretnego neuronu &lt;br /&gt;
** jakie rozmiary muszą mieć te tablice?                            &lt;br /&gt;
** zainicjuj je wartościami losowymi z przedziału -1,1&lt;br /&gt;
* podobnie przygotuj tablicę dla wag w_2&lt;br /&gt;
* w pętli wykonuj kolejne cykle uczenia&lt;br /&gt;
** zainicjuj do zera: licznik błędu wyjściowego bl, oraz tablice akumulujące delty do zmiany wag    D_1 i D_2&lt;br /&gt;
** w pętli pobieraj kolejno przykłady. Pobierając przykłady formuj je jako wektory kolumnowe    &lt;br /&gt;
*** propaguj sygnały od wejścia:&lt;br /&gt;
**** uzupełnij wektor wejściowy o &amp;quot;1&amp;quot; na szczycie,  wsk. np.vstack)&lt;br /&gt;
**** oblicz pobudzenia  neuronów z_1, &lt;br /&gt;
**** oblicz wartości wyjściowe z warstwy ukrytej &lt;br /&gt;
**** uzupełnij wektor wartości wyjściowych warstwy ukrytej o &amp;quot;1&amp;quot;&lt;br /&gt;
**** oblicz pobudzenia w warstwie wyjściowej     &lt;br /&gt;
**** oblicz wartości wyjściowe z tej warstwy&lt;br /&gt;
*** propaguj błędy &amp;quot;wstecz&amp;quot;&lt;br /&gt;
**** oblicz błąd warstwy wyjściowej ważony przez pochodną funkcji g  (im bardziej funkcja g była stroma w miejscu pobudzenia przy propagacji wprzód, tym bardziej błąd pobudzenia przekładał się na błąd wyjścia)&lt;br /&gt;
**** zrzutuj ten błąd wstecz poprzez wagi w_2 i pochodną funkcji g  &lt;br /&gt;
**** akumulujemy poprawki D_1 i D_2 oraz błąd dla tego przykładu&lt;br /&gt;
** uaktualniamy wagi proporcjonalnie do poprawek (z przeciwnym znakiem)&lt;br /&gt;
** wypisujemy info o błędzie&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang = python&amp;gt;&lt;br /&gt;
# -*- coding: utf-8 -*-&lt;br /&gt;
import numpy as np&lt;br /&gt;
&lt;br /&gt;
def g(x):&lt;br /&gt;
    y = 1./(1+np.exp(-x))&lt;br /&gt;
    return y&lt;br /&gt;
    &lt;br /&gt;
def g_prim(x):&lt;br /&gt;
    y = x*(1-x)&lt;br /&gt;
    return y&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
#zbiór uczący:&lt;br /&gt;
# wejście, &lt;br /&gt;
X = np.array([  [0,0],&lt;br /&gt;
                [0,1],&lt;br /&gt;
                [1,0],&lt;br /&gt;
                [1,1] ])&lt;br /&gt;
    &lt;br /&gt;
# wyjście            &lt;br /&gt;
Y = np.array([[0,1],&lt;br /&gt;
              [1,0],&lt;br /&gt;
              [1,0],&lt;br /&gt;
              [0,1]])&lt;br /&gt;
            &lt;br /&gt;
              &lt;br /&gt;
# definiujemy rozmiary sieci:&lt;br /&gt;
N_wej = X.shape[1] &lt;br /&gt;
N_hid = 3&lt;br /&gt;
N_wyj = Y.shape[1]&lt;br /&gt;
                            &lt;br /&gt;
# inicjujemy połączenia&lt;br /&gt;
# wagi ułożone są tak, że w kolejnych wierszach są kolejne neurony &lt;br /&gt;
# a w kolumnach wagi od konkretnego neuronu &lt;br /&gt;
# to +1 jest wagą dla obciążenia&lt;br /&gt;
w_1 = 2*np.random.random((N_hid, N_wej+1)) - 1# pomiędzy warstwą pierwszą (wejściem) a warstwą ukrytą&lt;br /&gt;
w_2 = 2*np.random.random((N_wyj, N_hid+1)) - 1&lt;br /&gt;
&lt;br /&gt;
                                                &lt;br /&gt;
for cykl in range(10000):&lt;br /&gt;
    bl =0&lt;br /&gt;
    D_1 = np.zeros((N_hid,N_wej+1))&lt;br /&gt;
    D_2 = np.zeros((N_wyj,N_hid+1))&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    for i in range(0,4):&lt;br /&gt;
        # weźmy przykład i-ty&lt;br /&gt;
        &lt;br /&gt;
        x = X[i,:].reshape(X.shape[1],1)&lt;br /&gt;
        y = Y[i,:].reshape(Y.shape[1],1)&lt;br /&gt;
        &lt;br /&gt;
        # propagacja &amp;quot;w przód&amp;quot;&lt;br /&gt;
        a_0 = np.vstack((1,x))  # z warstwy wejściowej (zerowej) wychodzi a_0&lt;br /&gt;
        &lt;br /&gt;
        z_1 = np.dot( w_1, a_0 )# na warstwe 1 wchodzą iloczyny skalarne &lt;br /&gt;
        a_1 = np.vstack((1,g(z_1))) # dokładamy 1 i dostaję wyjście z warstwy 1&lt;br /&gt;
        &lt;br /&gt;
        z_2 = np.dot( w_2, a_1 ) # na warstwe 3 wchodzą iloczyny skalarne &lt;br /&gt;
        a_2 = g(z_2)&lt;br /&gt;
        if cykl == 10000-1:&lt;br /&gt;
            print 'a: ',str(a_2.T)&lt;br /&gt;
            print 'y: ',str(y.T)&lt;br /&gt;
        # propagacja &amp;quot;wstecz&amp;quot;&lt;br /&gt;
        d_2 = (a_2 - y)*g_prim(a_2)&lt;br /&gt;
        d_1 = np.dot(w_2.T, d_2) * g_prim(a_1)#z_2&lt;br /&gt;
        &lt;br /&gt;
        # akumulujemy poprawki &lt;br /&gt;
        D_2 +=  np.dot( d_2, a_1.T)&lt;br /&gt;
        D_1 +=  np.dot( d_1[1:], a_0.T)&lt;br /&gt;
        &lt;br /&gt;
        bl += np.dot(d_2.T,d_2)&lt;br /&gt;
        &lt;br /&gt;
    eta1 = 0.1&lt;br /&gt;
    # uaktualniamy wagi&lt;br /&gt;
    w_1 -=  eta1*D_1 &lt;br /&gt;
    w_2 -=  eta1*D_2&lt;br /&gt;
    &lt;br /&gt;
    # wypisujemy info o błędzie&lt;br /&gt;
    if (cykl% 1000) == 0:&lt;br /&gt;
        print 'bl: ', bl&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
=XOR=&lt;br /&gt;
Jako pierwszy przykład z zastosowania sieci nieliniowych proszę skonstruować sieć z jedną warstwą ukrytą, rozwiązującą problem XOR.&lt;br /&gt;
&lt;br /&gt;
Potrzebne nam będą następujące importy:&lt;br /&gt;
&amp;lt;source lang = python&amp;gt;&lt;br /&gt;
from pybrain.datasets.supervised import SupervisedDataSet&lt;br /&gt;
from pybrain.tools.shortcuts import buildNetwork&lt;br /&gt;
from pybrain.supervised.trainers import BackpropTrainer, RPropMinusTrainer&lt;br /&gt;
from pybrain.structure import  LinearLayer,SigmoidLayer&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* do stworzenia ciągu uczącego proszę wykorzystać funkcje &amp;lt;tt&amp;gt;addSample&amp;lt;/tt&amp;gt; obiektu &amp;lt;tt&amp;gt;SupervisedDataSet&amp;lt;/tt&amp;gt;:&lt;br /&gt;
&amp;lt;source lang = python&amp;gt;&lt;br /&gt;
ZU = SupervisedDataSet(N_wej,N_wyj)&lt;br /&gt;
ZU.addSample((0,0),(0.0,))&lt;br /&gt;
ZU.addSample((0,1),(1.0,))&lt;br /&gt;
ZU.addSample((1,0),(1.0,))&lt;br /&gt;
ZU.addSample((1,1),(0.0,))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* W konstrukcji sieci proszę wykorzystać funkcję: &amp;lt;tt&amp;gt;buildNetwork&amp;lt;/tt&amp;gt;, tak aby wszystkie warstwy były sigmoidalne:&lt;br /&gt;
&amp;lt;source lang = python&amp;gt;&lt;br /&gt;
siec = buildNetwork(N_wej, N_hid, N_wyj, outclass=SigmoidLayer)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
* Proszę zbadać strukturę wytworzonej sieci: &lt;br /&gt;
&amp;lt;source lang = python&amp;gt;&lt;br /&gt;
siec['in']&lt;br /&gt;
siec['hidden0']&lt;br /&gt;
siec['out']&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
* sieć uczymy metodą wstecznej propagacji błędu, za pomocą funkcji &amp;lt;tt&amp;gt;train&amp;lt;/tt&amp;gt; obiektu &amp;lt;tt&amp;gt;BackpropTrainer&amp;lt;/tt&amp;gt;. Funkcja ta wykonuje jeden cykl uczenia (jednorazowe przejście przez ciąg uczący, przykłady podawane są w losowej kolejności) i  zwraca wartość średniego błędu średniokwadratowego w tym cyklu.&lt;br /&gt;
&lt;br /&gt;
* Proszę wykreślić ewolucje wag i błędu. Ewolucję można zilustrować animacją. W tym celu na początku programu należy ustawić backend dla biblioteki matplotlib przed innymi importami i przełączyć grafikę w tryb interaktywny:&lt;br /&gt;
&amp;lt;source lang = python&amp;gt;&lt;br /&gt;
import matplotlib&lt;br /&gt;
matplotlib.use('TkAgg')&lt;br /&gt;
import pylab as py&lt;br /&gt;
py.ion()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Następnie animację robimy analogicznie jak [[TI:Programowanie_z_Pythonem/Matplotlib#Prosta_animacja| w tym przykładzie.]]&lt;br /&gt;
&lt;br /&gt;
* Proszę zbadać co dzieje się z wagami wraz ze wzrostem ilości jednostek w warstwie ukrytej.&lt;br /&gt;
* Proszę zbadać jak zmienia się zbieżność algorytmu przy zmianie moetody uczenia na [https://brain.fuw.edu.pl/edu/STAT:Uczenie_maszynowe_i_sztuczne_sieci_neuronowe/Wykład_5#Elastyczna_wsteczna_propagacja_b.C5.82.C4.99du Elastyczną propagację wsteczna].&lt;br /&gt;
&lt;br /&gt;
;Uwaga: w przypadku trenera &amp;lt;tt&amp;gt;RPropMinusTrainer&amp;lt;/tt&amp;gt; należy podać zbiór uczący za pomocą metody &amp;lt;tt&amp;gt;setData()&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
* Proszę powtórzyć analizę dla sieci, której warstwa wyjściowa ma jednostkę liniową.&lt;br /&gt;
* Proszę zbadać wpływ regularyzacji (&amp;lt;tt&amp;gt;weightdecay&amp;lt;/tt&amp;gt; w  &amp;lt;tt&amp;gt;BackpropTrainer&amp;lt;/tt&amp;gt;) na strukturę sieci.&lt;br /&gt;
&lt;br /&gt;
{{hidden begin|title=Przykładowe rozwiązanie:}}&lt;br /&gt;
&amp;lt;source lang = python&amp;gt;&lt;br /&gt;
import matplotlib&lt;br /&gt;
matplotlib.use('TkAgg')&lt;br /&gt;
&lt;br /&gt;
from pybrain.datasets.supervised import SupervisedDataSet&lt;br /&gt;
from pybrain.tools.shortcuts import buildNetwork&lt;br /&gt;
from pybrain.supervised.trainers import BackpropTrainer&lt;br /&gt;
import numpy as np&lt;br /&gt;
import pylab as py&lt;br /&gt;
&lt;br /&gt;
N_wej = 2&lt;br /&gt;
N_wyj = 1&lt;br /&gt;
ZU = SupervisedDataSet(N_wej,N_wyj)&lt;br /&gt;
ZU.addSample((0,0),(0.2,))&lt;br /&gt;
ZU.addSample(...)&lt;br /&gt;
ZU.addSample(...)&lt;br /&gt;
ZU.addSample(...)&lt;br /&gt;
&lt;br /&gt;
N_hid = ...&lt;br /&gt;
siec = buildNetwork(...)&lt;br /&gt;
&lt;br /&gt;
t = BackpropTrainer(siec, ZU, learningrate=0.05, momentum=0.95, verbose=False)  # dodatkowe parametry sterujące przebiegim uczenia:  lrdecay=1.0, weightdecay=0.0025)&lt;br /&gt;
&lt;br /&gt;
N_krokow = 1000&lt;br /&gt;
err = np.zeros(N_krokow)&lt;br /&gt;
wagi = np.zeros((N_krokow,len(siec.params)))&lt;br /&gt;
&lt;br /&gt;
py.ion()&lt;br /&gt;
py.subplot(2,1,1)&lt;br /&gt;
l_err, = py.plot(err)&lt;br /&gt;
py.ylim([0,1])&lt;br /&gt;
py.subplot(2,1,2)&lt;br /&gt;
l_wagi = py.plot(wagi)&lt;br /&gt;
py.ylim([-3,3])&lt;br /&gt;
&lt;br /&gt;
for i in range(N_krokow):&lt;br /&gt;
    err[i] = t.train()&lt;br /&gt;
    wagi[i,:] = ...&lt;br /&gt;
    l_err.set_ydata(err)&lt;br /&gt;
    for k in range(len(l_wagi)):&lt;br /&gt;
        l_wagi[k].set_ydata(wagi[:,k])&lt;br /&gt;
    py.draw()&lt;br /&gt;
&lt;br /&gt;
print '0','0','-&amp;gt;', str(siec.activate((0,0)))&lt;br /&gt;
print '0','1','-&amp;gt;', str(siec.activate(...))&lt;br /&gt;
print '1','0','-&amp;gt;', str(siec.activate(...))&lt;br /&gt;
print '1','1','-&amp;gt;', str(siec.activate(...))&lt;br /&gt;
py.ioff()&lt;br /&gt;
py.show()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang = python&amp;gt;&lt;br /&gt;
import matplotlib&lt;br /&gt;
matplotlib.use('TkAgg')&lt;br /&gt;
&lt;br /&gt;
from pybrain.datasets.supervised import SupervisedDataSet&lt;br /&gt;
from pybrain.tools.shortcuts import buildNetwork&lt;br /&gt;
from pybrain.supervised.trainers import BackpropTrainer&lt;br /&gt;
import numpy as np&lt;br /&gt;
import pylab as py&lt;br /&gt;
&lt;br /&gt;
N_wej = 2&lt;br /&gt;
N_wyj = 1&lt;br /&gt;
ZU = SupervisedDataSet(N_wej,N_wyj)&lt;br /&gt;
ZU.addSample((0,0),(0.2,))&lt;br /&gt;
ZU.addSample((0,1),(0.8,))&lt;br /&gt;
ZU.addSample((1,0),(0.8,))&lt;br /&gt;
ZU.addSample((1,1),(0.2,))&lt;br /&gt;
&lt;br /&gt;
N_hid = 4&lt;br /&gt;
siec = buildNetwork(N_wej, N_hid, N_wyj)&lt;br /&gt;
&lt;br /&gt;
t = BackpropTrainer(siec, ZU, learningrate=0.05, momentum=0.95, verbose=False)  # dodatkowe parametry sterujące przebiegim uczenia:  lrdecay=1.0, weightdecay=0.0025)&lt;br /&gt;
&lt;br /&gt;
N_krokow = 1000&lt;br /&gt;
err = np.zeros(N_krokow)&lt;br /&gt;
wagi = np.zeros((N_krokow,len(siec.params)))&lt;br /&gt;
&lt;br /&gt;
py.ion()&lt;br /&gt;
py.subplot(2,1,1)&lt;br /&gt;
l_err, = py.plot(err)&lt;br /&gt;
py.ylim([0,1])&lt;br /&gt;
py.subplot(2,1,2)&lt;br /&gt;
l_wagi = py.plot(wagi)&lt;br /&gt;
py.ylim([-3,3])&lt;br /&gt;
&lt;br /&gt;
for i in range(N_krokow):&lt;br /&gt;
    err[i] = t.train()&lt;br /&gt;
    wagi[i,:] = siec.params&lt;br /&gt;
    l_err.set_ydata(err)&lt;br /&gt;
    for k in range(len(l_wagi)):&lt;br /&gt;
        l_wagi[k].set_ydata(wagi[:,k])&lt;br /&gt;
    py.draw()&lt;br /&gt;
&lt;br /&gt;
print '0','0','-&amp;gt;', str(siec.activate((0,0)))&lt;br /&gt;
print '0','1','-&amp;gt;', str(siec.activate((0,1)))&lt;br /&gt;
print '1','0','-&amp;gt;', str(siec.activate((1,0)))&lt;br /&gt;
print '1','1','-&amp;gt;', str(siec.activate((1,1)))&lt;br /&gt;
py.ioff()&lt;br /&gt;
py.show()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Alex</name></author>
		
	</entry>
	<entry>
		<id>http://brain.fuw.edu.pl/edu/index.php?title=Uczenie_maszynowe_i_sztuczne_sieci_neuronowe/%C4%86wiczenia_4&amp;diff=4955</id>
		<title>Uczenie maszynowe i sztuczne sieci neuronowe/Ćwiczenia 4</title>
		<link rel="alternate" type="text/html" href="http://brain.fuw.edu.pl/edu/index.php?title=Uczenie_maszynowe_i_sztuczne_sieci_neuronowe/%C4%86wiczenia_4&amp;diff=4955"/>
		<updated>2016-03-18T14:58:52Z</updated>

		<summary type="html">&lt;p&gt;Alex: /* Algorytm wstecznej propagacji błędu */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Algorytm wstecznej propagacji błędu=&lt;br /&gt;
W tym ćwiczeniu zapoznamy się z algorytmem wstecznej propagacji błędu. Zbudujemy sieć złożoną z 3 warstw: wejściowej, ukrytej i wyjściowej.&lt;br /&gt;
Schemat obliczeń wykonywanych przez tą sieć przedstawiony jest na poniższych rysunkach:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Plik:Back_prop_forward-2.png| 600px|thumb|right|Schemat obliczeń w propagacji wstecznej]]&lt;br /&gt;
[[Plik:Back_prop_backward-2.png |600px|thumb|right|Schemat obliczeń w propagacji wstecznej]]&lt;br /&gt;
&lt;br /&gt;
Warstwy ukryta i wyjściowa będą miały nieliniową funkcję aktywacji w postaci funkcji logistycznej. Dla przypomnienia funkcja logistyczna:&lt;br /&gt;
:&amp;lt;math&amp;gt;g(x) = \frac{1}{1+exp(-x)}&amp;lt;/math&amp;gt;&lt;br /&gt;
zaś jej pochoną to:&lt;br /&gt;
:&amp;lt;math&amp;gt;g'(x) =g(x)*(1-g(x)) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Niech nasza sieć uczy się odwzorowania zadanego tabelką:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:left;&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
!X&lt;br /&gt;
!Y&lt;br /&gt;
|-&lt;br /&gt;
| [0,0]&lt;br /&gt;
| [0,1]&lt;br /&gt;
|-&lt;br /&gt;
| [0,1]&lt;br /&gt;
| [1,0]&lt;br /&gt;
|-&lt;br /&gt;
| [1,0]&lt;br /&gt;
| [1,0]&lt;br /&gt;
|-&lt;br /&gt;
|[1,1] &lt;br /&gt;
|[0,1] &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Proszę napisać kod implementujący obliczenia przedstawione na rysunkach i w poniższym opisie:&lt;br /&gt;
* zdefiniuj funkcję g(x) &lt;br /&gt;
* zdefiniuj funkcję pochodną g_prim(y), zakładając, że jako argument  y podawać będziemy wartość g(x)&lt;br /&gt;
* przygotuj zbiór uczący zgodnie z powyższą tabelą. Niech przykłady będą ułożone w wierszach tablic X i Y&lt;br /&gt;
* zdefiniuj rozmiary sieci:&lt;br /&gt;
** N_wej &lt;br /&gt;
** N_hid &lt;br /&gt;
** N_wyj&lt;br /&gt;
* przygotuj tablicę do przechowywania wag w_1, niech w kolejnych wierszach znajdują się wagi kolejnych neuronów,  a w konkretnym wierszu w  kolumnach kolejne wagi od konkretnego neuronu &lt;br /&gt;
** jakie rozmiary muszą mieć te tablice?                            &lt;br /&gt;
** zainicjuj je wartościami losowymi z przedziału -1,1&lt;br /&gt;
* podobnie przygotuj tablicę dla wag w_2&lt;br /&gt;
* w pętli wykonuj kolejne cykle uczenia&lt;br /&gt;
** zainicjuj do zera: licznik błędu wyjściowego bl, oraz tablice akumulujące delty do zmiany wag    D_1 i D_2&lt;br /&gt;
** w pętli pobieraj kolejno przykłady. Pobierając przykłady formuj je jako wektory kolumnowe    &lt;br /&gt;
*** propaguj sygnały od wejścia:&lt;br /&gt;
**** uzupełnij wektor wejściowy o &amp;quot;1&amp;quot; na szczycie,  wsk. np.vstack)&lt;br /&gt;
**** oblicz pobudzenia  neuronów z_1, &lt;br /&gt;
**** oblicz wartości wyjściowe z warstwy ukrytej &lt;br /&gt;
**** uzupełnij wektor wartości wyjściowych warstwy ukrytej o &amp;quot;1&amp;quot;&lt;br /&gt;
**** oblicz pobudzenia w warstwie wyjściowej     &lt;br /&gt;
**** oblicz wartości wyjściowe z tej warstwy&lt;br /&gt;
*** propaguj błędy &amp;quot;wstecz&amp;quot;&lt;br /&gt;
**** oblicz błąd warstwy wyjściowej ważony przez pochodną funkcji g  (im bardziej funkcja g była stroma w miejscu pobudzenia przy propagacji wprzód, tym bardziej błąd pobudzenia przekładał się na błąd wyjścia)&lt;br /&gt;
**** zrzutuj ten błąd wstecz poprzez wagi w_2 i pochodną funkcji g  &lt;br /&gt;
**** akumulujemy poprawki D_1 i D_2 oraz błąd dla tego przykładu&lt;br /&gt;
** uaktualniamy wagi proporcjonalnie do poprawek (z przeciwnym znakiem)&lt;br /&gt;
** wypisujemy info o błędzie&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang = python&amp;gt;&lt;br /&gt;
# -*- coding: utf-8 -*-&lt;br /&gt;
import numpy as np&lt;br /&gt;
&lt;br /&gt;
def g(x):&lt;br /&gt;
    y = 1./(1+np.exp(-x))&lt;br /&gt;
    return y&lt;br /&gt;
    &lt;br /&gt;
def g_prim(x):&lt;br /&gt;
    y = x*(1-x)&lt;br /&gt;
    return y&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
#zbiór uczący:&lt;br /&gt;
# wejście, &lt;br /&gt;
X = np.array([  [0,0],&lt;br /&gt;
                [0,1],&lt;br /&gt;
                [1,0],&lt;br /&gt;
                [1,1] ])&lt;br /&gt;
    &lt;br /&gt;
# wyjście            &lt;br /&gt;
Y = np.array([[0,1],&lt;br /&gt;
              [1,0],&lt;br /&gt;
              [1,0],&lt;br /&gt;
              [0,1]])&lt;br /&gt;
            &lt;br /&gt;
              &lt;br /&gt;
# definiujemy rozmiary sieci:&lt;br /&gt;
N_wej = X.shape[1] &lt;br /&gt;
N_hid = 3&lt;br /&gt;
N_wyj = Y.shape[1]&lt;br /&gt;
                            &lt;br /&gt;
# inicjujemy połączenia&lt;br /&gt;
# wagi ułożone są tak, że w kolejnych wierszach są kolejne neurony &lt;br /&gt;
# a w kolumnach wagi od konkretnego neuronu &lt;br /&gt;
# to +1 jest wagą dla obciążenia&lt;br /&gt;
w_1 = 2*np.random.random((N_hid, N_wej+1)) - 1# pomiędzy warstwą pierwszą (wejściem) a warstwą ukrytą&lt;br /&gt;
w_2 = 2*np.random.random((N_wyj, N_hid+1)) - 1&lt;br /&gt;
&lt;br /&gt;
                                                &lt;br /&gt;
for cykl in range(10000):&lt;br /&gt;
    bl =0&lt;br /&gt;
    D_1 = np.zeros((N_hid,N_wej+1))&lt;br /&gt;
    D_2 = np.zeros((N_wyj,N_hid+1))&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    for i in range(0,4):&lt;br /&gt;
        # weźmy przykład i-ty&lt;br /&gt;
        &lt;br /&gt;
        x = X[i,:].reshape(X.shape[1],1)&lt;br /&gt;
        y = Y[i,:].reshape(Y.shape[1],1)&lt;br /&gt;
        &lt;br /&gt;
        # propagacja &amp;quot;w przód&amp;quot;&lt;br /&gt;
        a_0 = np.vstack((1,x))  # z warstwy wejściowej (zerowej) wychodzi a_0&lt;br /&gt;
        &lt;br /&gt;
        z_1 = np.dot( w_1, a_0 )# na warstwe 1 wchodzą iloczyny skalarne &lt;br /&gt;
        a_1 = np.vstack((1,g(z_1))) # dokładamy 1 i dostaję wyjście z warstwy 1&lt;br /&gt;
        &lt;br /&gt;
        z_2 = np.dot( w_2, a_1 ) # na warstwe 3 wchodzą iloczyny skalarne &lt;br /&gt;
        a_2 = g(z_2)&lt;br /&gt;
        if cykl == 10000-1:&lt;br /&gt;
            print 'a: ',str(a_2.T)&lt;br /&gt;
            print 'y: ',str(y.T)&lt;br /&gt;
        # propagacja &amp;quot;wstecz&amp;quot;&lt;br /&gt;
        d_2 = (a_2 - y)*g_prim(a_2)&lt;br /&gt;
        d_1 = np.dot(w_2.T, d_2) * g_prim(a_1)#z_2&lt;br /&gt;
        &lt;br /&gt;
        # akumulujemy poprawki &lt;br /&gt;
        D_2 +=  np.dot( d_2, a_1.T)&lt;br /&gt;
        D_1 +=  np.dot( d_1[1:], a_0.T)&lt;br /&gt;
        &lt;br /&gt;
        bl += np.dot(d_2.T,d_2)&lt;br /&gt;
        &lt;br /&gt;
    eta1 = 0.1&lt;br /&gt;
    # uaktualniamy wagi&lt;br /&gt;
    w_1 -=  eta1*D_1 &lt;br /&gt;
    w_2 -=  eta1*D_2&lt;br /&gt;
    &lt;br /&gt;
    # wypisujemy info o błędzie&lt;br /&gt;
    if (cykl% 1000) == 0:&lt;br /&gt;
        print 'bl: ', bl&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=XOR=&lt;br /&gt;
Jako pierwszy przykład z zastosowania sieci nieliniowych proszę skonstruować sieć z jedną warstwą ukrytą, rozwiązującą problem XOR.&lt;br /&gt;
&lt;br /&gt;
Potrzebne nam będą następujące importy:&lt;br /&gt;
&amp;lt;source lang = python&amp;gt;&lt;br /&gt;
from pybrain.datasets.supervised import SupervisedDataSet&lt;br /&gt;
from pybrain.tools.shortcuts import buildNetwork&lt;br /&gt;
from pybrain.supervised.trainers import BackpropTrainer, RPropMinusTrainer&lt;br /&gt;
from pybrain.structure import  LinearLayer,SigmoidLayer&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* do stworzenia ciągu uczącego proszę wykorzystać funkcje &amp;lt;tt&amp;gt;addSample&amp;lt;/tt&amp;gt; obiektu &amp;lt;tt&amp;gt;SupervisedDataSet&amp;lt;/tt&amp;gt;:&lt;br /&gt;
&amp;lt;source lang = python&amp;gt;&lt;br /&gt;
ZU = SupervisedDataSet(N_wej,N_wyj)&lt;br /&gt;
ZU.addSample((0,0),(0.0,))&lt;br /&gt;
ZU.addSample((0,1),(1.0,))&lt;br /&gt;
ZU.addSample((1,0),(1.0,))&lt;br /&gt;
ZU.addSample((1,1),(0.0,))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* W konstrukcji sieci proszę wykorzystać funkcję: &amp;lt;tt&amp;gt;buildNetwork&amp;lt;/tt&amp;gt;, tak aby wszystkie warstwy były sigmoidalne:&lt;br /&gt;
&amp;lt;source lang = python&amp;gt;&lt;br /&gt;
siec = buildNetwork(N_wej, N_hid, N_wyj, outclass=SigmoidLayer)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
* Proszę zbadać strukturę wytworzonej sieci: &lt;br /&gt;
&amp;lt;source lang = python&amp;gt;&lt;br /&gt;
siec['in']&lt;br /&gt;
siec['hidden0']&lt;br /&gt;
siec['out']&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
* sieć uczymy metodą wstecznej propagacji błędu, za pomocą funkcji &amp;lt;tt&amp;gt;train&amp;lt;/tt&amp;gt; obiektu &amp;lt;tt&amp;gt;BackpropTrainer&amp;lt;/tt&amp;gt;. Funkcja ta wykonuje jeden cykl uczenia (jednorazowe przejście przez ciąg uczący, przykłady podawane są w losowej kolejności) i  zwraca wartość średniego błędu średniokwadratowego w tym cyklu.&lt;br /&gt;
&lt;br /&gt;
* Proszę wykreślić ewolucje wag i błędu. Ewolucję można zilustrować animacją. W tym celu na początku programu należy ustawić backend dla biblioteki matplotlib przed innymi importami i przełączyć grafikę w tryb interaktywny:&lt;br /&gt;
&amp;lt;source lang = python&amp;gt;&lt;br /&gt;
import matplotlib&lt;br /&gt;
matplotlib.use('TkAgg')&lt;br /&gt;
import pylab as py&lt;br /&gt;
py.ion()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Następnie animację robimy analogicznie jak [[TI:Programowanie_z_Pythonem/Matplotlib#Prosta_animacja| w tym przykładzie.]]&lt;br /&gt;
&lt;br /&gt;
* Proszę zbadać co dzieje się z wagami wraz ze wzrostem ilości jednostek w warstwie ukrytej.&lt;br /&gt;
* Proszę zbadać jak zmienia się zbieżność algorytmu przy zmianie moetody uczenia na [https://brain.fuw.edu.pl/edu/STAT:Uczenie_maszynowe_i_sztuczne_sieci_neuronowe/Wykład_5#Elastyczna_wsteczna_propagacja_b.C5.82.C4.99du Elastyczną propagację wsteczna].&lt;br /&gt;
&lt;br /&gt;
;Uwaga: w przypadku trenera &amp;lt;tt&amp;gt;RPropMinusTrainer&amp;lt;/tt&amp;gt; należy podać zbiór uczący za pomocą metody &amp;lt;tt&amp;gt;setData()&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
* Proszę powtórzyć analizę dla sieci, której warstwa wyjściowa ma jednostkę liniową.&lt;br /&gt;
* Proszę zbadać wpływ regularyzacji (&amp;lt;tt&amp;gt;weightdecay&amp;lt;/tt&amp;gt; w  &amp;lt;tt&amp;gt;BackpropTrainer&amp;lt;/tt&amp;gt;) na strukturę sieci.&lt;br /&gt;
&lt;br /&gt;
{{hidden begin|title=Przykładowe rozwiązanie:}}&lt;br /&gt;
&amp;lt;source lang = python&amp;gt;&lt;br /&gt;
import matplotlib&lt;br /&gt;
matplotlib.use('TkAgg')&lt;br /&gt;
&lt;br /&gt;
from pybrain.datasets.supervised import SupervisedDataSet&lt;br /&gt;
from pybrain.tools.shortcuts import buildNetwork&lt;br /&gt;
from pybrain.supervised.trainers import BackpropTrainer&lt;br /&gt;
import numpy as np&lt;br /&gt;
import pylab as py&lt;br /&gt;
&lt;br /&gt;
N_wej = 2&lt;br /&gt;
N_wyj = 1&lt;br /&gt;
ZU = SupervisedDataSet(N_wej,N_wyj)&lt;br /&gt;
ZU.addSample((0,0),(0.2,))&lt;br /&gt;
ZU.addSample(...)&lt;br /&gt;
ZU.addSample(...)&lt;br /&gt;
ZU.addSample(...)&lt;br /&gt;
&lt;br /&gt;
N_hid = ...&lt;br /&gt;
siec = buildNetwork(...)&lt;br /&gt;
&lt;br /&gt;
t = BackpropTrainer(siec, ZU, learningrate=0.05, momentum=0.95, verbose=False)  # dodatkowe parametry sterujące przebiegim uczenia:  lrdecay=1.0, weightdecay=0.0025)&lt;br /&gt;
&lt;br /&gt;
N_krokow = 1000&lt;br /&gt;
err = np.zeros(N_krokow)&lt;br /&gt;
wagi = np.zeros((N_krokow,len(siec.params)))&lt;br /&gt;
&lt;br /&gt;
py.ion()&lt;br /&gt;
py.subplot(2,1,1)&lt;br /&gt;
l_err, = py.plot(err)&lt;br /&gt;
py.ylim([0,1])&lt;br /&gt;
py.subplot(2,1,2)&lt;br /&gt;
l_wagi = py.plot(wagi)&lt;br /&gt;
py.ylim([-3,3])&lt;br /&gt;
&lt;br /&gt;
for i in range(N_krokow):&lt;br /&gt;
    err[i] = t.train()&lt;br /&gt;
    wagi[i,:] = ...&lt;br /&gt;
    l_err.set_ydata(err)&lt;br /&gt;
    for k in range(len(l_wagi)):&lt;br /&gt;
        l_wagi[k].set_ydata(wagi[:,k])&lt;br /&gt;
    py.draw()&lt;br /&gt;
&lt;br /&gt;
print '0','0','-&amp;gt;', str(siec.activate((0,0)))&lt;br /&gt;
print '0','1','-&amp;gt;', str(siec.activate(...))&lt;br /&gt;
print '1','0','-&amp;gt;', str(siec.activate(...))&lt;br /&gt;
print '1','1','-&amp;gt;', str(siec.activate(...))&lt;br /&gt;
py.ioff()&lt;br /&gt;
py.show()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang = python&amp;gt;&lt;br /&gt;
import matplotlib&lt;br /&gt;
matplotlib.use('TkAgg')&lt;br /&gt;
&lt;br /&gt;
from pybrain.datasets.supervised import SupervisedDataSet&lt;br /&gt;
from pybrain.tools.shortcuts import buildNetwork&lt;br /&gt;
from pybrain.supervised.trainers import BackpropTrainer&lt;br /&gt;
import numpy as np&lt;br /&gt;
import pylab as py&lt;br /&gt;
&lt;br /&gt;
N_wej = 2&lt;br /&gt;
N_wyj = 1&lt;br /&gt;
ZU = SupervisedDataSet(N_wej,N_wyj)&lt;br /&gt;
ZU.addSample((0,0),(0.2,))&lt;br /&gt;
ZU.addSample((0,1),(0.8,))&lt;br /&gt;
ZU.addSample((1,0),(0.8,))&lt;br /&gt;
ZU.addSample((1,1),(0.2,))&lt;br /&gt;
&lt;br /&gt;
N_hid = 4&lt;br /&gt;
siec = buildNetwork(N_wej, N_hid, N_wyj)&lt;br /&gt;
&lt;br /&gt;
t = BackpropTrainer(siec, ZU, learningrate=0.05, momentum=0.95, verbose=False)  # dodatkowe parametry sterujące przebiegim uczenia:  lrdecay=1.0, weightdecay=0.0025)&lt;br /&gt;
&lt;br /&gt;
N_krokow = 1000&lt;br /&gt;
err = np.zeros(N_krokow)&lt;br /&gt;
wagi = np.zeros((N_krokow,len(siec.params)))&lt;br /&gt;
&lt;br /&gt;
py.ion()&lt;br /&gt;
py.subplot(2,1,1)&lt;br /&gt;
l_err, = py.plot(err)&lt;br /&gt;
py.ylim([0,1])&lt;br /&gt;
py.subplot(2,1,2)&lt;br /&gt;
l_wagi = py.plot(wagi)&lt;br /&gt;
py.ylim([-3,3])&lt;br /&gt;
&lt;br /&gt;
for i in range(N_krokow):&lt;br /&gt;
    err[i] = t.train()&lt;br /&gt;
    wagi[i,:] = siec.params&lt;br /&gt;
    l_err.set_ydata(err)&lt;br /&gt;
    for k in range(len(l_wagi)):&lt;br /&gt;
        l_wagi[k].set_ydata(wagi[:,k])&lt;br /&gt;
    py.draw()&lt;br /&gt;
&lt;br /&gt;
print '0','0','-&amp;gt;', str(siec.activate((0,0)))&lt;br /&gt;
print '0','1','-&amp;gt;', str(siec.activate((0,1)))&lt;br /&gt;
print '1','0','-&amp;gt;', str(siec.activate((1,0)))&lt;br /&gt;
print '1','1','-&amp;gt;', str(siec.activate((1,1)))&lt;br /&gt;
py.ioff()&lt;br /&gt;
py.show()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Alex</name></author>
		
	</entry>
	<entry>
		<id>http://brain.fuw.edu.pl/edu/index.php?title=Uczenie_maszynowe_i_sztuczne_sieci_neuronowe/%C4%86wiczenia_4&amp;diff=4954</id>
		<title>Uczenie maszynowe i sztuczne sieci neuronowe/Ćwiczenia 4</title>
		<link rel="alternate" type="text/html" href="http://brain.fuw.edu.pl/edu/index.php?title=Uczenie_maszynowe_i_sztuczne_sieci_neuronowe/%C4%86wiczenia_4&amp;diff=4954"/>
		<updated>2016-03-18T14:51:10Z</updated>

		<summary type="html">&lt;p&gt;Alex: /* Algorytm wstecznej propagacji błędu */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Algorytm wstecznej propagacji błędu=&lt;br /&gt;
W tym ćwiczeniu zapoznamy się z algorytmem wstecznej propagacji błędu. Zbudujemy sieć złożoną z 3 warstw: wejściowej, ukrytej i wyjściowej.&lt;br /&gt;
Schemat obliczeń wykonywanych przez tą sieć przedstawiony jest na poniższych rysunkach:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Plik:Back_prop_forward-2.png| 600px|thumb|right|Schemat obliczeń w propagacji wstecznej]]&lt;br /&gt;
[[Plik:Back_prop_backward-2.png |600px|thumb|right|Schemat obliczeń w propagacji wstecznej]]&lt;br /&gt;
&lt;br /&gt;
Warstwy ukryta i wyjściowa będą miały nieliniową funkcję aktywacji w postaci funkcji logistycznej. Dla przypomnienia funkcja logistyczna:&lt;br /&gt;
:&amp;lt;math&amp;gt;g(x) = \frac{1}{1+exp(-x)}&amp;lt;/math&amp;gt;&lt;br /&gt;
zaś jej pochoną to:&lt;br /&gt;
:&amp;lt;math&amp;gt;g'(x) =g(x)*(1-g(x)) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Niech nasza sieć uczy się odwzorowania zadanego tabelką:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:left;&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
!X&lt;br /&gt;
!Y&lt;br /&gt;
|-&lt;br /&gt;
| [0,0]&lt;br /&gt;
| [0,1]&lt;br /&gt;
|-&lt;br /&gt;
| [0,1]&lt;br /&gt;
| [1,0]&lt;br /&gt;
|-&lt;br /&gt;
| [1,0]&lt;br /&gt;
| [1,0]&lt;br /&gt;
|-&lt;br /&gt;
|[1,1] &lt;br /&gt;
|[0,1] &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Proszę napisać kod implementujący obliczenia przedstawione na rysunkach i w poniższym opisie:&lt;br /&gt;
* zdefiniuj funkcję g(x) &lt;br /&gt;
* zdefiniuj funkcję pochodną g_prim(y), zakładając, że jako argument  y podawać będziemy wartość g(x)&lt;br /&gt;
* przygotuj zbiór uczący zgodnie z powyższą tabelą. Niech przykłady będą ułożone w wierszach tablic X i Y&lt;br /&gt;
* zdefiniuj rozmiary sieci:&lt;br /&gt;
**N_wej &lt;br /&gt;
** N_hid &lt;br /&gt;
** N_wyj&lt;br /&gt;
* przygotuj tablicę do przechowywania wag w_1, niech w kolejnych wierszach znajdują się wagi kolejnych neuronów,  a w konkretnym wierszu w  kolumnach kolejne wagi od konkretnego neuronu &lt;br /&gt;
** jakie rozmiary muszą mieć te tablice?                            &lt;br /&gt;
** zainicjuj je wartościami losowymi z przedziału -1,1&lt;br /&gt;
* w pętli wykonuj kolejne cykle uczenia&lt;br /&gt;
** zainicjuj do zera: licznik błędu wyjściowego bl, oraz tablice akumulujące delty do zmiany wag    D_1 i D_2&lt;br /&gt;
** w pętli pobieraj kolejno przykłady. Pobierając przykłady formuj je jako wektory kolumnowe    &lt;br /&gt;
*** propaguj sygnały od wejścia:&lt;br /&gt;
**** uzupełnij wektor wejściowy o &amp;quot;1&amp;quot; na szczycie,  wsk. np.vstack)&lt;br /&gt;
**** oblicz pobudzenia  neuronów z_1, &lt;br /&gt;
**** oblicz wartości wyjściowe z warstwy ukrytej &lt;br /&gt;
**** uzupełnij wektor wartości wyjściowych warstwy ukrytej o &amp;quot;1&amp;quot;&lt;br /&gt;
**** oblicz pobudzenia w warstwie wyjściowej     &lt;br /&gt;
**** oblicz wartości wyjściowe z tej warstwy&lt;br /&gt;
*** propaguj błędy &amp;quot;wstecz&amp;quot;&lt;br /&gt;
**** oblicz błąd warstwy wyjściowej ważony przez pochodną funkcji g  (im bardziej funkcja g była stroma w miejscu pobudzenia przy propagacji wprzód, tym bardziej błąd pobudzenia przekładał się na błąd wyjścia)&lt;br /&gt;
**** zrzutuj ten błąd wstecz poprzez wagi w_2 i pochodną funkcji g  &lt;br /&gt;
**** akumulujemy poprawki D_1 i D_2 oraz błąd dla tego przykładu&lt;br /&gt;
** uaktualniamy wagi proporcjonalnie do poprawek (z przeciwnym znakiem)&lt;br /&gt;
** wypisujemy info o błędzie&lt;br /&gt;
&lt;br /&gt;
=XOR=&lt;br /&gt;
Jako pierwszy przykład z zastosowania sieci nieliniowych proszę skonstruować sieć z jedną warstwą ukrytą, rozwiązującą problem XOR.&lt;br /&gt;
&lt;br /&gt;
Potrzebne nam będą następujące importy:&lt;br /&gt;
&amp;lt;source lang = python&amp;gt;&lt;br /&gt;
from pybrain.datasets.supervised import SupervisedDataSet&lt;br /&gt;
from pybrain.tools.shortcuts import buildNetwork&lt;br /&gt;
from pybrain.supervised.trainers import BackpropTrainer, RPropMinusTrainer&lt;br /&gt;
from pybrain.structure import  LinearLayer,SigmoidLayer&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* do stworzenia ciągu uczącego proszę wykorzystać funkcje &amp;lt;tt&amp;gt;addSample&amp;lt;/tt&amp;gt; obiektu &amp;lt;tt&amp;gt;SupervisedDataSet&amp;lt;/tt&amp;gt;:&lt;br /&gt;
&amp;lt;source lang = python&amp;gt;&lt;br /&gt;
ZU = SupervisedDataSet(N_wej,N_wyj)&lt;br /&gt;
ZU.addSample((0,0),(0.0,))&lt;br /&gt;
ZU.addSample((0,1),(1.0,))&lt;br /&gt;
ZU.addSample((1,0),(1.0,))&lt;br /&gt;
ZU.addSample((1,1),(0.0,))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* W konstrukcji sieci proszę wykorzystać funkcję: &amp;lt;tt&amp;gt;buildNetwork&amp;lt;/tt&amp;gt;, tak aby wszystkie warstwy były sigmoidalne:&lt;br /&gt;
&amp;lt;source lang = python&amp;gt;&lt;br /&gt;
siec = buildNetwork(N_wej, N_hid, N_wyj, outclass=SigmoidLayer)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
* Proszę zbadać strukturę wytworzonej sieci: &lt;br /&gt;
&amp;lt;source lang = python&amp;gt;&lt;br /&gt;
siec['in']&lt;br /&gt;
siec['hidden0']&lt;br /&gt;
siec['out']&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
* sieć uczymy metodą wstecznej propagacji błędu, za pomocą funkcji &amp;lt;tt&amp;gt;train&amp;lt;/tt&amp;gt; obiektu &amp;lt;tt&amp;gt;BackpropTrainer&amp;lt;/tt&amp;gt;. Funkcja ta wykonuje jeden cykl uczenia (jednorazowe przejście przez ciąg uczący, przykłady podawane są w losowej kolejności) i  zwraca wartość średniego błędu średniokwadratowego w tym cyklu.&lt;br /&gt;
&lt;br /&gt;
* Proszę wykreślić ewolucje wag i błędu. Ewolucję można zilustrować animacją. W tym celu na początku programu należy ustawić backend dla biblioteki matplotlib przed innymi importami i przełączyć grafikę w tryb interaktywny:&lt;br /&gt;
&amp;lt;source lang = python&amp;gt;&lt;br /&gt;
import matplotlib&lt;br /&gt;
matplotlib.use('TkAgg')&lt;br /&gt;
import pylab as py&lt;br /&gt;
py.ion()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Następnie animację robimy analogicznie jak [[TI:Programowanie_z_Pythonem/Matplotlib#Prosta_animacja| w tym przykładzie.]]&lt;br /&gt;
&lt;br /&gt;
* Proszę zbadać co dzieje się z wagami wraz ze wzrostem ilości jednostek w warstwie ukrytej.&lt;br /&gt;
* Proszę zbadać jak zmienia się zbieżność algorytmu przy zmianie moetody uczenia na [https://brain.fuw.edu.pl/edu/STAT:Uczenie_maszynowe_i_sztuczne_sieci_neuronowe/Wykład_5#Elastyczna_wsteczna_propagacja_b.C5.82.C4.99du Elastyczną propagację wsteczna].&lt;br /&gt;
&lt;br /&gt;
;Uwaga: w przypadku trenera &amp;lt;tt&amp;gt;RPropMinusTrainer&amp;lt;/tt&amp;gt; należy podać zbiór uczący za pomocą metody &amp;lt;tt&amp;gt;setData()&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
* Proszę powtórzyć analizę dla sieci, której warstwa wyjściowa ma jednostkę liniową.&lt;br /&gt;
* Proszę zbadać wpływ regularyzacji (&amp;lt;tt&amp;gt;weightdecay&amp;lt;/tt&amp;gt; w  &amp;lt;tt&amp;gt;BackpropTrainer&amp;lt;/tt&amp;gt;) na strukturę sieci.&lt;br /&gt;
&lt;br /&gt;
{{hidden begin|title=Przykładowe rozwiązanie:}}&lt;br /&gt;
&amp;lt;source lang = python&amp;gt;&lt;br /&gt;
import matplotlib&lt;br /&gt;
matplotlib.use('TkAgg')&lt;br /&gt;
&lt;br /&gt;
from pybrain.datasets.supervised import SupervisedDataSet&lt;br /&gt;
from pybrain.tools.shortcuts import buildNetwork&lt;br /&gt;
from pybrain.supervised.trainers import BackpropTrainer&lt;br /&gt;
import numpy as np&lt;br /&gt;
import pylab as py&lt;br /&gt;
&lt;br /&gt;
N_wej = 2&lt;br /&gt;
N_wyj = 1&lt;br /&gt;
ZU = SupervisedDataSet(N_wej,N_wyj)&lt;br /&gt;
ZU.addSample((0,0),(0.2,))&lt;br /&gt;
ZU.addSample(...)&lt;br /&gt;
ZU.addSample(...)&lt;br /&gt;
ZU.addSample(...)&lt;br /&gt;
&lt;br /&gt;
N_hid = ...&lt;br /&gt;
siec = buildNetwork(...)&lt;br /&gt;
&lt;br /&gt;
t = BackpropTrainer(siec, ZU, learningrate=0.05, momentum=0.95, verbose=False)  # dodatkowe parametry sterujące przebiegim uczenia:  lrdecay=1.0, weightdecay=0.0025)&lt;br /&gt;
&lt;br /&gt;
N_krokow = 1000&lt;br /&gt;
err = np.zeros(N_krokow)&lt;br /&gt;
wagi = np.zeros((N_krokow,len(siec.params)))&lt;br /&gt;
&lt;br /&gt;
py.ion()&lt;br /&gt;
py.subplot(2,1,1)&lt;br /&gt;
l_err, = py.plot(err)&lt;br /&gt;
py.ylim([0,1])&lt;br /&gt;
py.subplot(2,1,2)&lt;br /&gt;
l_wagi = py.plot(wagi)&lt;br /&gt;
py.ylim([-3,3])&lt;br /&gt;
&lt;br /&gt;
for i in range(N_krokow):&lt;br /&gt;
    err[i] = t.train()&lt;br /&gt;
    wagi[i,:] = ...&lt;br /&gt;
    l_err.set_ydata(err)&lt;br /&gt;
    for k in range(len(l_wagi)):&lt;br /&gt;
        l_wagi[k].set_ydata(wagi[:,k])&lt;br /&gt;
    py.draw()&lt;br /&gt;
&lt;br /&gt;
print '0','0','-&amp;gt;', str(siec.activate((0,0)))&lt;br /&gt;
print '0','1','-&amp;gt;', str(siec.activate(...))&lt;br /&gt;
print '1','0','-&amp;gt;', str(siec.activate(...))&lt;br /&gt;
print '1','1','-&amp;gt;', str(siec.activate(...))&lt;br /&gt;
py.ioff()&lt;br /&gt;
py.show()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang = python&amp;gt;&lt;br /&gt;
import matplotlib&lt;br /&gt;
matplotlib.use('TkAgg')&lt;br /&gt;
&lt;br /&gt;
from pybrain.datasets.supervised import SupervisedDataSet&lt;br /&gt;
from pybrain.tools.shortcuts import buildNetwork&lt;br /&gt;
from pybrain.supervised.trainers import BackpropTrainer&lt;br /&gt;
import numpy as np&lt;br /&gt;
import pylab as py&lt;br /&gt;
&lt;br /&gt;
N_wej = 2&lt;br /&gt;
N_wyj = 1&lt;br /&gt;
ZU = SupervisedDataSet(N_wej,N_wyj)&lt;br /&gt;
ZU.addSample((0,0),(0.2,))&lt;br /&gt;
ZU.addSample((0,1),(0.8,))&lt;br /&gt;
ZU.addSample((1,0),(0.8,))&lt;br /&gt;
ZU.addSample((1,1),(0.2,))&lt;br /&gt;
&lt;br /&gt;
N_hid = 4&lt;br /&gt;
siec = buildNetwork(N_wej, N_hid, N_wyj)&lt;br /&gt;
&lt;br /&gt;
t = BackpropTrainer(siec, ZU, learningrate=0.05, momentum=0.95, verbose=False)  # dodatkowe parametry sterujące przebiegim uczenia:  lrdecay=1.0, weightdecay=0.0025)&lt;br /&gt;
&lt;br /&gt;
N_krokow = 1000&lt;br /&gt;
err = np.zeros(N_krokow)&lt;br /&gt;
wagi = np.zeros((N_krokow,len(siec.params)))&lt;br /&gt;
&lt;br /&gt;
py.ion()&lt;br /&gt;
py.subplot(2,1,1)&lt;br /&gt;
l_err, = py.plot(err)&lt;br /&gt;
py.ylim([0,1])&lt;br /&gt;
py.subplot(2,1,2)&lt;br /&gt;
l_wagi = py.plot(wagi)&lt;br /&gt;
py.ylim([-3,3])&lt;br /&gt;
&lt;br /&gt;
for i in range(N_krokow):&lt;br /&gt;
    err[i] = t.train()&lt;br /&gt;
    wagi[i,:] = siec.params&lt;br /&gt;
    l_err.set_ydata(err)&lt;br /&gt;
    for k in range(len(l_wagi)):&lt;br /&gt;
        l_wagi[k].set_ydata(wagi[:,k])&lt;br /&gt;
    py.draw()&lt;br /&gt;
&lt;br /&gt;
print '0','0','-&amp;gt;', str(siec.activate((0,0)))&lt;br /&gt;
print '0','1','-&amp;gt;', str(siec.activate((0,1)))&lt;br /&gt;
print '1','0','-&amp;gt;', str(siec.activate((1,0)))&lt;br /&gt;
print '1','1','-&amp;gt;', str(siec.activate((1,1)))&lt;br /&gt;
py.ioff()&lt;br /&gt;
py.show()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Alex</name></author>
		
	</entry>
	<entry>
		<id>http://brain.fuw.edu.pl/edu/index.php?title=Uczenie_maszynowe_i_sztuczne_sieci_neuronowe/%C4%86wiczenia_4&amp;diff=4953</id>
		<title>Uczenie maszynowe i sztuczne sieci neuronowe/Ćwiczenia 4</title>
		<link rel="alternate" type="text/html" href="http://brain.fuw.edu.pl/edu/index.php?title=Uczenie_maszynowe_i_sztuczne_sieci_neuronowe/%C4%86wiczenia_4&amp;diff=4953"/>
		<updated>2016-03-18T14:50:30Z</updated>

		<summary type="html">&lt;p&gt;Alex: /* Algorytm wstecznej propagacji błędu */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Algorytm wstecznej propagacji błędu=&lt;br /&gt;
W tym ćwiczeniu zapoznamy się z algorytmem wstecznej propagacji błędu. Zbudujemy sieć złożoną z 3 warstw: wejściowej, ukrytej i wyjściowej.&lt;br /&gt;
Schemat obliczeń wykonywanych przez tą sieć przedstawiony jest na poniższych rysunkach:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Plik:Back_prop_forward-2.png| 600px|thumb|right|Schemat obliczeń w propagacji wstecznej]]&lt;br /&gt;
[[Plik:Back_prop_backward-2.png |600px|thumb|right|Schemat obliczeń w propagacji wstecznej]]&lt;br /&gt;
&lt;br /&gt;
Warstwy ukryta i wyjściowa będą miały nieliniową funkcję aktywacji w postaci funkcji logistycznej. Dla przypomnienia funkcja logistyczna:&lt;br /&gt;
:&amp;lt;math&amp;gt;g(x) = \frac{1}{1+exp(-x)}&amp;lt;/math&amp;gt;&lt;br /&gt;
zaś jej pochoną to:&lt;br /&gt;
:&amp;lt;math&amp;gt;g'(x) =g(x)*(1-g(x)) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Niech nasza sieć uczy się odwzorowania zadanego tabelką:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:left;&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
!X&lt;br /&gt;
!Y&lt;br /&gt;
|-&lt;br /&gt;
| [0,0]&lt;br /&gt;
| [0,1]&lt;br /&gt;
|-&lt;br /&gt;
| [0,1]&lt;br /&gt;
| [1,0]&lt;br /&gt;
|-&lt;br /&gt;
| [1,0]&lt;br /&gt;
| [1,0]&lt;br /&gt;
|-&lt;br /&gt;
|[1,1] &lt;br /&gt;
|[0,1] &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Proszę napisać kod implementujący obliczenia przedstawione na rysunkach i w poniższym opisie:&lt;br /&gt;
* zdefiniuj funkcję g(x) &lt;br /&gt;
* zdefiniuj funkcję pochodną g_prim(y), zakładając, że jako argument  y podawać będziemy wartość g(x)&lt;br /&gt;
* przygotuj zbiór uczący zgodnie z powyższą tabelą. Niech przykłady będą ułożone w wierszach tablic X i Y&lt;br /&gt;
* zdefiniuj rozmiary sieci:&lt;br /&gt;
* *N_wej &lt;br /&gt;
** N_hid &lt;br /&gt;
** N_wyj&lt;br /&gt;
* przygotuj tablicę do przechowywania wag w_1, niech w kolejnych wierszach znajdują się wagi kolejnych neuronów,  a w konkretnym wierszu w  kolumnach kolejne wagi od konkretnego neuronu &lt;br /&gt;
** jakie rozmiary muszą mieć te tablice?                            &lt;br /&gt;
** zainicjuj je wartościami losowymi z przedziału -1,1&lt;br /&gt;
* w pętli wykonuj kolejne cykle uczenia&lt;br /&gt;
** zainicjuj do zera: licznik błędu wyjściowego bl, oraz tablice akumulujące delty do zmiany wag    D_1 i D_2&lt;br /&gt;
** w pętli pobieraj kolejno przykłady. Pobierając przykłady formuj je jako wektory kolumnowe    &lt;br /&gt;
*** propaguj sygnały od wejścia:&lt;br /&gt;
**** uzupełnij wektor wejściowy o &amp;quot;1&amp;quot; na szczycie,  wsk. np.vstack)&lt;br /&gt;
**** oblicz pobudzenia  neuronów z_1, &lt;br /&gt;
**** oblicz wartości wyjściowe z warstwy ukrytej &lt;br /&gt;
**** uzupełnij wektor wartości wyjściowych warstwy ukrytej o &amp;quot;1&amp;quot;&lt;br /&gt;
**** oblicz pobudzenia w warstwie wyjściowej     &lt;br /&gt;
**** oblicz wartości wyjściowe z tej warstwy&lt;br /&gt;
*** propaguj błędy &amp;quot;wstecz&amp;quot;&lt;br /&gt;
**** oblicz błąd warstwy wyjściowej ważony przez pochodną funkcji g  (im bardziej funkcja g była stroma w miejscu pobudzenia przy propagacji wprzód, tym bardziej błąd pobudzenia przekładał się na błąd wyjścia)&lt;br /&gt;
**** zrzutuj ten błąd wstecz poprzez wagi w_2 i pochodną funkcji g  &lt;br /&gt;
**** akumulujemy poprawki D_1 i D_2 oraz błąd dla tego przykładu&lt;br /&gt;
** uaktualniamy wagi proporcjonalnie do poprawek (z przeciwnym znakiem)&lt;br /&gt;
** wypisujemy info o błędzie&lt;br /&gt;
&lt;br /&gt;
=XOR=&lt;br /&gt;
Jako pierwszy przykład z zastosowania sieci nieliniowych proszę skonstruować sieć z jedną warstwą ukrytą, rozwiązującą problem XOR.&lt;br /&gt;
&lt;br /&gt;
Potrzebne nam będą następujące importy:&lt;br /&gt;
&amp;lt;source lang = python&amp;gt;&lt;br /&gt;
from pybrain.datasets.supervised import SupervisedDataSet&lt;br /&gt;
from pybrain.tools.shortcuts import buildNetwork&lt;br /&gt;
from pybrain.supervised.trainers import BackpropTrainer, RPropMinusTrainer&lt;br /&gt;
from pybrain.structure import  LinearLayer,SigmoidLayer&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* do stworzenia ciągu uczącego proszę wykorzystać funkcje &amp;lt;tt&amp;gt;addSample&amp;lt;/tt&amp;gt; obiektu &amp;lt;tt&amp;gt;SupervisedDataSet&amp;lt;/tt&amp;gt;:&lt;br /&gt;
&amp;lt;source lang = python&amp;gt;&lt;br /&gt;
ZU = SupervisedDataSet(N_wej,N_wyj)&lt;br /&gt;
ZU.addSample((0,0),(0.0,))&lt;br /&gt;
ZU.addSample((0,1),(1.0,))&lt;br /&gt;
ZU.addSample((1,0),(1.0,))&lt;br /&gt;
ZU.addSample((1,1),(0.0,))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* W konstrukcji sieci proszę wykorzystać funkcję: &amp;lt;tt&amp;gt;buildNetwork&amp;lt;/tt&amp;gt;, tak aby wszystkie warstwy były sigmoidalne:&lt;br /&gt;
&amp;lt;source lang = python&amp;gt;&lt;br /&gt;
siec = buildNetwork(N_wej, N_hid, N_wyj, outclass=SigmoidLayer)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
* Proszę zbadać strukturę wytworzonej sieci: &lt;br /&gt;
&amp;lt;source lang = python&amp;gt;&lt;br /&gt;
siec['in']&lt;br /&gt;
siec['hidden0']&lt;br /&gt;
siec['out']&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
* sieć uczymy metodą wstecznej propagacji błędu, za pomocą funkcji &amp;lt;tt&amp;gt;train&amp;lt;/tt&amp;gt; obiektu &amp;lt;tt&amp;gt;BackpropTrainer&amp;lt;/tt&amp;gt;. Funkcja ta wykonuje jeden cykl uczenia (jednorazowe przejście przez ciąg uczący, przykłady podawane są w losowej kolejności) i  zwraca wartość średniego błędu średniokwadratowego w tym cyklu.&lt;br /&gt;
&lt;br /&gt;
* Proszę wykreślić ewolucje wag i błędu. Ewolucję można zilustrować animacją. W tym celu na początku programu należy ustawić backend dla biblioteki matplotlib przed innymi importami i przełączyć grafikę w tryb interaktywny:&lt;br /&gt;
&amp;lt;source lang = python&amp;gt;&lt;br /&gt;
import matplotlib&lt;br /&gt;
matplotlib.use('TkAgg')&lt;br /&gt;
import pylab as py&lt;br /&gt;
py.ion()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Następnie animację robimy analogicznie jak [[TI:Programowanie_z_Pythonem/Matplotlib#Prosta_animacja| w tym przykładzie.]]&lt;br /&gt;
&lt;br /&gt;
* Proszę zbadać co dzieje się z wagami wraz ze wzrostem ilości jednostek w warstwie ukrytej.&lt;br /&gt;
* Proszę zbadać jak zmienia się zbieżność algorytmu przy zmianie moetody uczenia na [https://brain.fuw.edu.pl/edu/STAT:Uczenie_maszynowe_i_sztuczne_sieci_neuronowe/Wykład_5#Elastyczna_wsteczna_propagacja_b.C5.82.C4.99du Elastyczną propagację wsteczna].&lt;br /&gt;
&lt;br /&gt;
;Uwaga: w przypadku trenera &amp;lt;tt&amp;gt;RPropMinusTrainer&amp;lt;/tt&amp;gt; należy podać zbiór uczący za pomocą metody &amp;lt;tt&amp;gt;setData()&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
* Proszę powtórzyć analizę dla sieci, której warstwa wyjściowa ma jednostkę liniową.&lt;br /&gt;
* Proszę zbadać wpływ regularyzacji (&amp;lt;tt&amp;gt;weightdecay&amp;lt;/tt&amp;gt; w  &amp;lt;tt&amp;gt;BackpropTrainer&amp;lt;/tt&amp;gt;) na strukturę sieci.&lt;br /&gt;
&lt;br /&gt;
{{hidden begin|title=Przykładowe rozwiązanie:}}&lt;br /&gt;
&amp;lt;source lang = python&amp;gt;&lt;br /&gt;
import matplotlib&lt;br /&gt;
matplotlib.use('TkAgg')&lt;br /&gt;
&lt;br /&gt;
from pybrain.datasets.supervised import SupervisedDataSet&lt;br /&gt;
from pybrain.tools.shortcuts import buildNetwork&lt;br /&gt;
from pybrain.supervised.trainers import BackpropTrainer&lt;br /&gt;
import numpy as np&lt;br /&gt;
import pylab as py&lt;br /&gt;
&lt;br /&gt;
N_wej = 2&lt;br /&gt;
N_wyj = 1&lt;br /&gt;
ZU = SupervisedDataSet(N_wej,N_wyj)&lt;br /&gt;
ZU.addSample((0,0),(0.2,))&lt;br /&gt;
ZU.addSample(...)&lt;br /&gt;
ZU.addSample(...)&lt;br /&gt;
ZU.addSample(...)&lt;br /&gt;
&lt;br /&gt;
N_hid = ...&lt;br /&gt;
siec = buildNetwork(...)&lt;br /&gt;
&lt;br /&gt;
t = BackpropTrainer(siec, ZU, learningrate=0.05, momentum=0.95, verbose=False)  # dodatkowe parametry sterujące przebiegim uczenia:  lrdecay=1.0, weightdecay=0.0025)&lt;br /&gt;
&lt;br /&gt;
N_krokow = 1000&lt;br /&gt;
err = np.zeros(N_krokow)&lt;br /&gt;
wagi = np.zeros((N_krokow,len(siec.params)))&lt;br /&gt;
&lt;br /&gt;
py.ion()&lt;br /&gt;
py.subplot(2,1,1)&lt;br /&gt;
l_err, = py.plot(err)&lt;br /&gt;
py.ylim([0,1])&lt;br /&gt;
py.subplot(2,1,2)&lt;br /&gt;
l_wagi = py.plot(wagi)&lt;br /&gt;
py.ylim([-3,3])&lt;br /&gt;
&lt;br /&gt;
for i in range(N_krokow):&lt;br /&gt;
    err[i] = t.train()&lt;br /&gt;
    wagi[i,:] = ...&lt;br /&gt;
    l_err.set_ydata(err)&lt;br /&gt;
    for k in range(len(l_wagi)):&lt;br /&gt;
        l_wagi[k].set_ydata(wagi[:,k])&lt;br /&gt;
    py.draw()&lt;br /&gt;
&lt;br /&gt;
print '0','0','-&amp;gt;', str(siec.activate((0,0)))&lt;br /&gt;
print '0','1','-&amp;gt;', str(siec.activate(...))&lt;br /&gt;
print '1','0','-&amp;gt;', str(siec.activate(...))&lt;br /&gt;
print '1','1','-&amp;gt;', str(siec.activate(...))&lt;br /&gt;
py.ioff()&lt;br /&gt;
py.show()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang = python&amp;gt;&lt;br /&gt;
import matplotlib&lt;br /&gt;
matplotlib.use('TkAgg')&lt;br /&gt;
&lt;br /&gt;
from pybrain.datasets.supervised import SupervisedDataSet&lt;br /&gt;
from pybrain.tools.shortcuts import buildNetwork&lt;br /&gt;
from pybrain.supervised.trainers import BackpropTrainer&lt;br /&gt;
import numpy as np&lt;br /&gt;
import pylab as py&lt;br /&gt;
&lt;br /&gt;
N_wej = 2&lt;br /&gt;
N_wyj = 1&lt;br /&gt;
ZU = SupervisedDataSet(N_wej,N_wyj)&lt;br /&gt;
ZU.addSample((0,0),(0.2,))&lt;br /&gt;
ZU.addSample((0,1),(0.8,))&lt;br /&gt;
ZU.addSample((1,0),(0.8,))&lt;br /&gt;
ZU.addSample((1,1),(0.2,))&lt;br /&gt;
&lt;br /&gt;
N_hid = 4&lt;br /&gt;
siec = buildNetwork(N_wej, N_hid, N_wyj)&lt;br /&gt;
&lt;br /&gt;
t = BackpropTrainer(siec, ZU, learningrate=0.05, momentum=0.95, verbose=False)  # dodatkowe parametry sterujące przebiegim uczenia:  lrdecay=1.0, weightdecay=0.0025)&lt;br /&gt;
&lt;br /&gt;
N_krokow = 1000&lt;br /&gt;
err = np.zeros(N_krokow)&lt;br /&gt;
wagi = np.zeros((N_krokow,len(siec.params)))&lt;br /&gt;
&lt;br /&gt;
py.ion()&lt;br /&gt;
py.subplot(2,1,1)&lt;br /&gt;
l_err, = py.plot(err)&lt;br /&gt;
py.ylim([0,1])&lt;br /&gt;
py.subplot(2,1,2)&lt;br /&gt;
l_wagi = py.plot(wagi)&lt;br /&gt;
py.ylim([-3,3])&lt;br /&gt;
&lt;br /&gt;
for i in range(N_krokow):&lt;br /&gt;
    err[i] = t.train()&lt;br /&gt;
    wagi[i,:] = siec.params&lt;br /&gt;
    l_err.set_ydata(err)&lt;br /&gt;
    for k in range(len(l_wagi)):&lt;br /&gt;
        l_wagi[k].set_ydata(wagi[:,k])&lt;br /&gt;
    py.draw()&lt;br /&gt;
&lt;br /&gt;
print '0','0','-&amp;gt;', str(siec.activate((0,0)))&lt;br /&gt;
print '0','1','-&amp;gt;', str(siec.activate((0,1)))&lt;br /&gt;
print '1','0','-&amp;gt;', str(siec.activate((1,0)))&lt;br /&gt;
print '1','1','-&amp;gt;', str(siec.activate((1,1)))&lt;br /&gt;
py.ioff()&lt;br /&gt;
py.show()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Alex</name></author>
		
	</entry>
	<entry>
		<id>http://brain.fuw.edu.pl/edu/index.php?title=Uczenie_maszynowe_i_sztuczne_sieci_neuronowe/%C4%86wiczenia_4&amp;diff=4952</id>
		<title>Uczenie maszynowe i sztuczne sieci neuronowe/Ćwiczenia 4</title>
		<link rel="alternate" type="text/html" href="http://brain.fuw.edu.pl/edu/index.php?title=Uczenie_maszynowe_i_sztuczne_sieci_neuronowe/%C4%86wiczenia_4&amp;diff=4952"/>
		<updated>2016-03-18T13:32:00Z</updated>

		<summary type="html">&lt;p&gt;Alex: /* Algorytm wstecznej propagacji błędu */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Algorytm wstecznej propagacji błędu=&lt;br /&gt;
W tym ćwiczeniu zpoznamy się z algorytmem wstecznej propagacji błędu. Zbudujemy sieć złożoną z 3 warstw: wejściowej, ukrytej i wyjściowej.&lt;br /&gt;
Warstwy ukryta i wyjściowa będą miały nieliniową funkcję aktywacji w postaci funkcji logistycznej. Dla przypomnienia funkcja logistyczna:&lt;br /&gt;
:&amp;lt;math&amp;gt;f(x) = \frac{1}{1+exp(-x)}&amp;lt;/math&amp;gt;&lt;br /&gt;
zaś jej pochoną to:&lt;br /&gt;
:&amp;lt;math&amp;gt;f'(x) =f(x)*(1-f(x)) &amp;lt;/math&amp;gt;&lt;br /&gt;
Niech nasza sieć uczy się odwzorowania zadanego tabelką:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:left;&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
!X&lt;br /&gt;
!Y&lt;br /&gt;
|-&lt;br /&gt;
| [0,0]&lt;br /&gt;
| [0,1]&lt;br /&gt;
|-&lt;br /&gt;
| [0,1]&lt;br /&gt;
| [1,0]&lt;br /&gt;
|-&lt;br /&gt;
| [1,0]&lt;br /&gt;
| [1,0]&lt;br /&gt;
|-&lt;br /&gt;
|[1,1] &lt;br /&gt;
|[0,1] &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Plik:Back_prop_forward-2.png| 600px|thumb|right|Schemat obliczeń w propagacji wstecznej]]&lt;br /&gt;
[[Plik:Back_prop_backward-2.png |600px|thumb|right|Schemat obliczeń w propagacji wstecznej]]&lt;br /&gt;
&lt;br /&gt;
=XOR=&lt;br /&gt;
Jako pierwszy przykład z zastosowania sieci nieliniowych proszę skonstruować sieć z jedną warstwą ukrytą, rozwiązującą problem XOR.&lt;br /&gt;
&lt;br /&gt;
Potrzebne nam będą następujące importy:&lt;br /&gt;
&amp;lt;source lang = python&amp;gt;&lt;br /&gt;
from pybrain.datasets.supervised import SupervisedDataSet&lt;br /&gt;
from pybrain.tools.shortcuts import buildNetwork&lt;br /&gt;
from pybrain.supervised.trainers import BackpropTrainer, RPropMinusTrainer&lt;br /&gt;
from pybrain.structure import  LinearLayer,SigmoidLayer&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* do stworzenia ciągu uczącego proszę wykorzystać funkcje &amp;lt;tt&amp;gt;addSample&amp;lt;/tt&amp;gt; obiektu &amp;lt;tt&amp;gt;SupervisedDataSet&amp;lt;/tt&amp;gt;:&lt;br /&gt;
&amp;lt;source lang = python&amp;gt;&lt;br /&gt;
ZU = SupervisedDataSet(N_wej,N_wyj)&lt;br /&gt;
ZU.addSample((0,0),(0.0,))&lt;br /&gt;
ZU.addSample((0,1),(1.0,))&lt;br /&gt;
ZU.addSample((1,0),(1.0,))&lt;br /&gt;
ZU.addSample((1,1),(0.0,))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* W konstrukcji sieci proszę wykorzystać funkcję: &amp;lt;tt&amp;gt;buildNetwork&amp;lt;/tt&amp;gt;, tak aby wszystkie warstwy były sigmoidalne:&lt;br /&gt;
&amp;lt;source lang = python&amp;gt;&lt;br /&gt;
siec = buildNetwork(N_wej, N_hid, N_wyj, outclass=SigmoidLayer)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
* Proszę zbadać strukturę wytworzonej sieci: &lt;br /&gt;
&amp;lt;source lang = python&amp;gt;&lt;br /&gt;
siec['in']&lt;br /&gt;
siec['hidden0']&lt;br /&gt;
siec['out']&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
* sieć uczymy metodą wstecznej propagacji błędu, za pomocą funkcji &amp;lt;tt&amp;gt;train&amp;lt;/tt&amp;gt; obiektu &amp;lt;tt&amp;gt;BackpropTrainer&amp;lt;/tt&amp;gt;. Funkcja ta wykonuje jeden cykl uczenia (jednorazowe przejście przez ciąg uczący, przykłady podawane są w losowej kolejności) i  zwraca wartość średniego błędu średniokwadratowego w tym cyklu.&lt;br /&gt;
&lt;br /&gt;
* Proszę wykreślić ewolucje wag i błędu. Ewolucję można zilustrować animacją. W tym celu na początku programu należy ustawić backend dla biblioteki matplotlib przed innymi importami i przełączyć grafikę w tryb interaktywny:&lt;br /&gt;
&amp;lt;source lang = python&amp;gt;&lt;br /&gt;
import matplotlib&lt;br /&gt;
matplotlib.use('TkAgg')&lt;br /&gt;
import pylab as py&lt;br /&gt;
py.ion()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Następnie animację robimy analogicznie jak [[TI:Programowanie_z_Pythonem/Matplotlib#Prosta_animacja| w tym przykładzie.]]&lt;br /&gt;
&lt;br /&gt;
* Proszę zbadać co dzieje się z wagami wraz ze wzrostem ilości jednostek w warstwie ukrytej.&lt;br /&gt;
* Proszę zbadać jak zmienia się zbieżność algorytmu przy zmianie moetody uczenia na [https://brain.fuw.edu.pl/edu/STAT:Uczenie_maszynowe_i_sztuczne_sieci_neuronowe/Wykład_5#Elastyczna_wsteczna_propagacja_b.C5.82.C4.99du Elastyczną propagację wsteczna].&lt;br /&gt;
&lt;br /&gt;
;Uwaga: w przypadku trenera &amp;lt;tt&amp;gt;RPropMinusTrainer&amp;lt;/tt&amp;gt; należy podać zbiór uczący za pomocą metody &amp;lt;tt&amp;gt;setData()&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
* Proszę powtórzyć analizę dla sieci, której warstwa wyjściowa ma jednostkę liniową.&lt;br /&gt;
* Proszę zbadać wpływ regularyzacji (&amp;lt;tt&amp;gt;weightdecay&amp;lt;/tt&amp;gt; w  &amp;lt;tt&amp;gt;BackpropTrainer&amp;lt;/tt&amp;gt;) na strukturę sieci.&lt;br /&gt;
&lt;br /&gt;
{{hidden begin|title=Przykładowe rozwiązanie:}}&lt;br /&gt;
&amp;lt;source lang = python&amp;gt;&lt;br /&gt;
import matplotlib&lt;br /&gt;
matplotlib.use('TkAgg')&lt;br /&gt;
&lt;br /&gt;
from pybrain.datasets.supervised import SupervisedDataSet&lt;br /&gt;
from pybrain.tools.shortcuts import buildNetwork&lt;br /&gt;
from pybrain.supervised.trainers import BackpropTrainer&lt;br /&gt;
import numpy as np&lt;br /&gt;
import pylab as py&lt;br /&gt;
&lt;br /&gt;
N_wej = 2&lt;br /&gt;
N_wyj = 1&lt;br /&gt;
ZU = SupervisedDataSet(N_wej,N_wyj)&lt;br /&gt;
ZU.addSample((0,0),(0.2,))&lt;br /&gt;
ZU.addSample(...)&lt;br /&gt;
ZU.addSample(...)&lt;br /&gt;
ZU.addSample(...)&lt;br /&gt;
&lt;br /&gt;
N_hid = ...&lt;br /&gt;
siec = buildNetwork(...)&lt;br /&gt;
&lt;br /&gt;
t = BackpropTrainer(siec, ZU, learningrate=0.05, momentum=0.95, verbose=False)  # dodatkowe parametry sterujące przebiegim uczenia:  lrdecay=1.0, weightdecay=0.0025)&lt;br /&gt;
&lt;br /&gt;
N_krokow = 1000&lt;br /&gt;
err = np.zeros(N_krokow)&lt;br /&gt;
wagi = np.zeros((N_krokow,len(siec.params)))&lt;br /&gt;
&lt;br /&gt;
py.ion()&lt;br /&gt;
py.subplot(2,1,1)&lt;br /&gt;
l_err, = py.plot(err)&lt;br /&gt;
py.ylim([0,1])&lt;br /&gt;
py.subplot(2,1,2)&lt;br /&gt;
l_wagi = py.plot(wagi)&lt;br /&gt;
py.ylim([-3,3])&lt;br /&gt;
&lt;br /&gt;
for i in range(N_krokow):&lt;br /&gt;
    err[i] = t.train()&lt;br /&gt;
    wagi[i,:] = ...&lt;br /&gt;
    l_err.set_ydata(err)&lt;br /&gt;
    for k in range(len(l_wagi)):&lt;br /&gt;
        l_wagi[k].set_ydata(wagi[:,k])&lt;br /&gt;
    py.draw()&lt;br /&gt;
&lt;br /&gt;
print '0','0','-&amp;gt;', str(siec.activate((0,0)))&lt;br /&gt;
print '0','1','-&amp;gt;', str(siec.activate(...))&lt;br /&gt;
print '1','0','-&amp;gt;', str(siec.activate(...))&lt;br /&gt;
print '1','1','-&amp;gt;', str(siec.activate(...))&lt;br /&gt;
py.ioff()&lt;br /&gt;
py.show()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang = python&amp;gt;&lt;br /&gt;
import matplotlib&lt;br /&gt;
matplotlib.use('TkAgg')&lt;br /&gt;
&lt;br /&gt;
from pybrain.datasets.supervised import SupervisedDataSet&lt;br /&gt;
from pybrain.tools.shortcuts import buildNetwork&lt;br /&gt;
from pybrain.supervised.trainers import BackpropTrainer&lt;br /&gt;
import numpy as np&lt;br /&gt;
import pylab as py&lt;br /&gt;
&lt;br /&gt;
N_wej = 2&lt;br /&gt;
N_wyj = 1&lt;br /&gt;
ZU = SupervisedDataSet(N_wej,N_wyj)&lt;br /&gt;
ZU.addSample((0,0),(0.2,))&lt;br /&gt;
ZU.addSample((0,1),(0.8,))&lt;br /&gt;
ZU.addSample((1,0),(0.8,))&lt;br /&gt;
ZU.addSample((1,1),(0.2,))&lt;br /&gt;
&lt;br /&gt;
N_hid = 4&lt;br /&gt;
siec = buildNetwork(N_wej, N_hid, N_wyj)&lt;br /&gt;
&lt;br /&gt;
t = BackpropTrainer(siec, ZU, learningrate=0.05, momentum=0.95, verbose=False)  # dodatkowe parametry sterujące przebiegim uczenia:  lrdecay=1.0, weightdecay=0.0025)&lt;br /&gt;
&lt;br /&gt;
N_krokow = 1000&lt;br /&gt;
err = np.zeros(N_krokow)&lt;br /&gt;
wagi = np.zeros((N_krokow,len(siec.params)))&lt;br /&gt;
&lt;br /&gt;
py.ion()&lt;br /&gt;
py.subplot(2,1,1)&lt;br /&gt;
l_err, = py.plot(err)&lt;br /&gt;
py.ylim([0,1])&lt;br /&gt;
py.subplot(2,1,2)&lt;br /&gt;
l_wagi = py.plot(wagi)&lt;br /&gt;
py.ylim([-3,3])&lt;br /&gt;
&lt;br /&gt;
for i in range(N_krokow):&lt;br /&gt;
    err[i] = t.train()&lt;br /&gt;
    wagi[i,:] = siec.params&lt;br /&gt;
    l_err.set_ydata(err)&lt;br /&gt;
    for k in range(len(l_wagi)):&lt;br /&gt;
        l_wagi[k].set_ydata(wagi[:,k])&lt;br /&gt;
    py.draw()&lt;br /&gt;
&lt;br /&gt;
print '0','0','-&amp;gt;', str(siec.activate((0,0)))&lt;br /&gt;
print '0','1','-&amp;gt;', str(siec.activate((0,1)))&lt;br /&gt;
print '1','0','-&amp;gt;', str(siec.activate((1,0)))&lt;br /&gt;
print '1','1','-&amp;gt;', str(siec.activate((1,1)))&lt;br /&gt;
py.ioff()&lt;br /&gt;
py.show()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Alex</name></author>
		
	</entry>
	<entry>
		<id>http://brain.fuw.edu.pl/edu/index.php?title=Plik:Back_prop_forward-2.png&amp;diff=4951</id>
		<title>Plik:Back prop forward-2.png</title>
		<link rel="alternate" type="text/html" href="http://brain.fuw.edu.pl/edu/index.php?title=Plik:Back_prop_forward-2.png&amp;diff=4951"/>
		<updated>2016-03-18T13:28:02Z</updated>

		<summary type="html">&lt;p&gt;Alex: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Alex</name></author>
		
	</entry>
	<entry>
		<id>http://brain.fuw.edu.pl/edu/index.php?title=Plik:Back_prop_backward-2.png&amp;diff=4950</id>
		<title>Plik:Back prop backward-2.png</title>
		<link rel="alternate" type="text/html" href="http://brain.fuw.edu.pl/edu/index.php?title=Plik:Back_prop_backward-2.png&amp;diff=4950"/>
		<updated>2016-03-18T13:23:20Z</updated>

		<summary type="html">&lt;p&gt;Alex: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Alex</name></author>
		
	</entry>
	<entry>
		<id>http://brain.fuw.edu.pl/edu/index.php?title=Instalacja_i_konfiguracja_Kinect,_Wiimote_i_Eyetrackera&amp;diff=4949</id>
		<title>Instalacja i konfiguracja Kinect, Wiimote i Eyetrackera</title>
		<link rel="alternate" type="text/html" href="http://brain.fuw.edu.pl/edu/index.php?title=Instalacja_i_konfiguracja_Kinect,_Wiimote_i_Eyetrackera&amp;diff=4949"/>
		<updated>2016-03-17T22:03:45Z</updated>

		<summary type="html">&lt;p&gt;Alex: /* Stara wersja instrukcji */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Kinect + OpenNI2 + NiTE2 + freenect ==&lt;br /&gt;
&lt;br /&gt;
Instalacja OpenNI 2 + NiTE 2 z prekonfigurowanych binarek dla Ubuntu 15.10:&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install freeglut3 python-opencv libboost-all-dev&lt;br /&gt;
 cd ~&lt;br /&gt;
 wget http://static.mroja.net/kinect/kinect.7z&lt;br /&gt;
 7z x kinect.7z&lt;br /&gt;
 cd ~/kinect&lt;br /&gt;
 sudo cp primesense-and-kinect-usb.rules /etc/udev/rules.d/557-primesense-usb.rules&lt;br /&gt;
 export LD_LIBRARY_PATH=/home/{USER_NAME}/kinect/Redist (to najlepiej wrzucić do .profile)&lt;br /&gt;
 cd Redist&lt;br /&gt;
 ./NiViewer&lt;br /&gt;
&lt;br /&gt;
Należy prawdzić czy użytkownik, na koncie którego będzie używany Kinect należy do grupy plugdev -- jeśli nie, dodać: &lt;br /&gt;
 sudo usermod -G plugdev -a USER_NAME&lt;br /&gt;
&lt;br /&gt;
=== wrapper+obci ===&lt;br /&gt;
&lt;br /&gt;
Moduł do Pythona (plik &amp;lt;code&amp;gt;nite2.so&amp;lt;/code&amp;gt;) należy zbudować z repozytorium https://github.com/BrainTech/nite2-bindings i umieścić w katalogu &amp;lt;code&amp;gt;/usr/lib/python2.7/dist-packages&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Skopiuj katalog NiTE2 (&amp;lt;code&amp;gt;/home/USER_NAME/kinect/Redist/NiTE2&amp;lt;/code&amp;gt;) do katalogu &amp;lt;code&amp;gt;~/.obci/sandbox&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
na koncie lab&lt;br /&gt;
&lt;br /&gt;
 cd ~/kinect/Redist&lt;br /&gt;
 cp /path_to_file/nite2.so nite2.so&lt;br /&gt;
&lt;br /&gt;
 cp -r /home/lab/kinect/Redist/NiTE2/ ~/.obci/sandbox/&lt;br /&gt;
&lt;br /&gt;
na koncie newtech&lt;br /&gt;
&lt;br /&gt;
 cd ~/kinect/Redist&lt;br /&gt;
 cp /path_to_file/nite2.so nite2.so&lt;br /&gt;
&lt;br /&gt;
 mkdir /home/newtech/.obci/  # jeśli katalog istnieje to pominąć&lt;br /&gt;
 mkdir /home/newtech/.obci/sandbox  # j.w.&lt;br /&gt;
&lt;br /&gt;
 cp -r /home/newtech/kinect/Redist/NiTE2/ ~/.obci/sandbox/&lt;br /&gt;
&lt;br /&gt;
== Instalacja xwiimote ==&lt;br /&gt;
&lt;br /&gt;
UWAGA!!! NIE NALEŻY instalować pakietu xwiimote z Debiana - jest on przestarzały.&lt;br /&gt;
&lt;br /&gt;
Wymagane wersje:&lt;br /&gt;
* kernel &amp;gt;= 3.5+&lt;br /&gt;
* bluez &amp;gt;= 5.11+&lt;br /&gt;
&lt;br /&gt;
A) Instalacja wymaganych pakietów&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install autoconf autogen automake gcc bluetooth ncurses-dev libudev-dev libtool git blueman python-dev dh-autoreconf pkg-config swig&lt;br /&gt;
&lt;br /&gt;
B) xwiimote driver &amp;amp; utils&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/BrainTech/xwiimote&lt;br /&gt;
 cd xwiimote&lt;br /&gt;
 ./autogen.sh&lt;br /&gt;
 make&lt;br /&gt;
 sudo make install&lt;br /&gt;
 sudo ldconfig&lt;br /&gt;
&lt;br /&gt;
C) Python bindings&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/BrainTech/xwiimote-bindings&lt;br /&gt;
 cd xwiimote-bindings&lt;br /&gt;
 ./autogen.sh&lt;br /&gt;
 make&lt;br /&gt;
 sudo make install&lt;br /&gt;
 sudo ldconfig&lt;br /&gt;
&lt;br /&gt;
D) Żeby działało bez sudo dla userów lab i newtech&lt;br /&gt;
&lt;br /&gt;
 sudo usermod -a -G input newtech&lt;br /&gt;
 sudo usermod -a -G input lab&lt;br /&gt;
&lt;br /&gt;
E) Sparować urządzenie z użyciem wbudowanego do Ubuntu panelu Bluetooth&lt;br /&gt;
&lt;br /&gt;
F) Demo&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/irq0/wiiscale.git&lt;br /&gt;
 cd wiiscale&lt;br /&gt;
&lt;br /&gt;
 uncomment line 134 and 135:&lt;br /&gt;
 134: #        for m in measurements(iface):&lt;br /&gt;
 135: #            print_bboard_measurements(*m)&lt;br /&gt;
&lt;br /&gt;
 python ./scale.py&lt;br /&gt;
&lt;br /&gt;
== Tobii REX eyetracker ==&lt;br /&gt;
&lt;br /&gt;
* zainstalować pakiet deb dla 64bit Linuxa z http://developer.tobii.com/rex-setup-gaze-sdk/&lt;br /&gt;
* poprosić Aleksa o kopię SDK&lt;br /&gt;
* w katalogu &amp;lt;code&amp;gt;Samples&amp;lt;/code&amp;gt; w SDK znajduje się demo (należy je zbudować poleceniem &amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
== Stara wersja instrukcji ==&lt;br /&gt;
&lt;br /&gt;
Instalacja OpenNI2&lt;br /&gt;
&lt;br /&gt;
wymagania&lt;br /&gt;
 sudo apt-get install git-core g++ cmake libudev-dev libxi-dev libxmu-dev python libusb-1.0-0-dev libudev-dev freeglut3-dev doxygen graphviz&lt;br /&gt;
&lt;br /&gt;
 sudo add-apt-repository ppa:webupd8team/java&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get install oracle-java8-installer&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/occipital/OpenNI2.git&lt;br /&gt;
 cd OpenNI2&lt;br /&gt;
 #Save path for further reference&lt;br /&gt;
 OPENNI_DIR=&amp;quot;${PWD}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 sed -i '/-Werror/ s/^/#/' ${OPENNI_DIR}/ThirdParty/PSCommon/BuildSystem/CommonCppMakefile&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;LDFLAGS += -lpthread&amp;quot; &amp;gt;&amp;gt; ${OPENNI_DIR}/Source/Tools/NiViewer/Makefile&lt;br /&gt;
 make&lt;br /&gt;
 sudo ${OPENNI_DIR}/Packaging/Linux/install.sh&lt;br /&gt;
 sudo gpasswd -a ${USER} video&lt;br /&gt;
&lt;br /&gt;
LUB (preferowana opcja):&lt;br /&gt;
pobrać binarny pakiet ze strony http://structure.io/openni&lt;br /&gt;
wypakować do katalogu np. OpenNI-Linux-x64-2.2&lt;br /&gt;
 $ cd OpenNI-Linux-x64-2.2&lt;br /&gt;
 $ sudo ./install.sh&lt;br /&gt;
w aktualnym katalogu utworzy się skrypt “OpenNIDevEnvironment”, który ustawia środowisko dev&lt;br /&gt;
&lt;br /&gt;
Instalacja libfreenect&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/OpenKinect/libfreenect.git&lt;br /&gt;
 cd libfreenect&lt;br /&gt;
 mkdir build; cd build&lt;br /&gt;
 cmake .. -DBUILD_OPENNI2_DRIVER=ON&lt;br /&gt;
 make -j4&lt;br /&gt;
 cp -L lib/OpenNI2-FreenectDriver/libFreenectDriver.so ${OPENNI_DIR}/Bin/x64-Release/OpenNI2/Drivers/&lt;br /&gt;
&lt;br /&gt;
Test&lt;br /&gt;
 cd ${OPENNI_DIR}/Bin/x64-Release/&lt;br /&gt;
 ./NiViewer&lt;br /&gt;
&lt;br /&gt;
Instalacja biblioteki NiTE2 &lt;br /&gt;
&lt;br /&gt;
http://ilab.usc.edu/packages/forall/ubuntu-13.10/NiTE-Linux-x64-2.2.tar.bz2&lt;br /&gt;
 cd NiTE-Linux-x64-2.2&lt;br /&gt;
 sudo ./install.sh&lt;br /&gt;
&lt;br /&gt;
 cp -L /usr/local/lib/OpenNI2-FreenectDriver/libFreenectDriver.so NiTE-Linux-x64-2.2/Samples/Bin/OpenNI2/Drivers/&lt;/div&gt;</summary>
		<author><name>Alex</name></author>
		
	</entry>
	<entry>
		<id>http://brain.fuw.edu.pl/edu/index.php?title=Instalacja_i_konfiguracja_Kinect,_Wiimote_i_Eyetrackera&amp;diff=4948</id>
		<title>Instalacja i konfiguracja Kinect, Wiimote i Eyetrackera</title>
		<link rel="alternate" type="text/html" href="http://brain.fuw.edu.pl/edu/index.php?title=Instalacja_i_konfiguracja_Kinect,_Wiimote_i_Eyetrackera&amp;diff=4948"/>
		<updated>2016-03-17T22:02:41Z</updated>

		<summary type="html">&lt;p&gt;Alex: /* Tobii REX eyetracker */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Kinect + OpenNI2 + NiTE2 + freenect ==&lt;br /&gt;
&lt;br /&gt;
Instalacja OpenNI 2 + NiTE 2 z prekonfigurowanych binarek dla Ubuntu 15.10:&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install freeglut3 python-opencv libboost-all-dev&lt;br /&gt;
 cd ~&lt;br /&gt;
 wget http://static.mroja.net/kinect/kinect.7z&lt;br /&gt;
 7z x kinect.7z&lt;br /&gt;
 cd ~/kinect&lt;br /&gt;
 sudo cp primesense-and-kinect-usb.rules /etc/udev/rules.d/557-primesense-usb.rules&lt;br /&gt;
 export LD_LIBRARY_PATH=/home/{USER_NAME}/kinect/Redist (to najlepiej wrzucić do .profile)&lt;br /&gt;
 cd Redist&lt;br /&gt;
 ./NiViewer&lt;br /&gt;
&lt;br /&gt;
Należy prawdzić czy użytkownik, na koncie którego będzie używany Kinect należy do grupy plugdev -- jeśli nie, dodać: &lt;br /&gt;
 sudo usermod -G plugdev -a USER_NAME&lt;br /&gt;
&lt;br /&gt;
=== wrapper+obci ===&lt;br /&gt;
&lt;br /&gt;
Moduł do Pythona (plik &amp;lt;code&amp;gt;nite2.so&amp;lt;/code&amp;gt;) należy zbudować z repozytorium https://github.com/BrainTech/nite2-bindings i umieścić w katalogu &amp;lt;code&amp;gt;/usr/lib/python2.7/dist-packages&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Skopiuj katalog NiTE2 (&amp;lt;code&amp;gt;/home/USER_NAME/kinect/Redist/NiTE2&amp;lt;/code&amp;gt;) do katalogu &amp;lt;code&amp;gt;~/.obci/sandbox&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
na koncie lab&lt;br /&gt;
&lt;br /&gt;
 cd ~/kinect/Redist&lt;br /&gt;
 cp /path_to_file/nite2.so nite2.so&lt;br /&gt;
&lt;br /&gt;
 cp -r /home/lab/kinect/Redist/NiTE2/ ~/.obci/sandbox/&lt;br /&gt;
&lt;br /&gt;
na koncie newtech&lt;br /&gt;
&lt;br /&gt;
 cd ~/kinect/Redist&lt;br /&gt;
 cp /path_to_file/nite2.so nite2.so&lt;br /&gt;
&lt;br /&gt;
 mkdir /home/newtech/.obci/  # jeśli katalog istnieje to pominąć&lt;br /&gt;
 mkdir /home/newtech/.obci/sandbox  # j.w.&lt;br /&gt;
&lt;br /&gt;
 cp -r /home/newtech/kinect/Redist/NiTE2/ ~/.obci/sandbox/&lt;br /&gt;
&lt;br /&gt;
== Instalacja xwiimote ==&lt;br /&gt;
&lt;br /&gt;
UWAGA!!! NIE NALEŻY instalować pakietu xwiimote z Debiana - jest on przestarzały.&lt;br /&gt;
&lt;br /&gt;
Wymagane wersje:&lt;br /&gt;
* kernel &amp;gt;= 3.5+&lt;br /&gt;
* bluez &amp;gt;= 5.11+&lt;br /&gt;
&lt;br /&gt;
A) Instalacja wymaganych pakietów&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install autoconf autogen automake gcc bluetooth ncurses-dev libudev-dev libtool git blueman python-dev dh-autoreconf pkg-config swig&lt;br /&gt;
&lt;br /&gt;
B) xwiimote driver &amp;amp; utils&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/BrainTech/xwiimote&lt;br /&gt;
 cd xwiimote&lt;br /&gt;
 ./autogen.sh&lt;br /&gt;
 make&lt;br /&gt;
 sudo make install&lt;br /&gt;
 sudo ldconfig&lt;br /&gt;
&lt;br /&gt;
C) Python bindings&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/BrainTech/xwiimote-bindings&lt;br /&gt;
 cd xwiimote-bindings&lt;br /&gt;
 ./autogen.sh&lt;br /&gt;
 make&lt;br /&gt;
 sudo make install&lt;br /&gt;
 sudo ldconfig&lt;br /&gt;
&lt;br /&gt;
D) Żeby działało bez sudo dla userów lab i newtech&lt;br /&gt;
&lt;br /&gt;
 sudo usermod -a -G input newtech&lt;br /&gt;
 sudo usermod -a -G input lab&lt;br /&gt;
&lt;br /&gt;
E) Sparować urządzenie z użyciem wbudowanego do Ubuntu panelu Bluetooth&lt;br /&gt;
&lt;br /&gt;
F) Demo&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/irq0/wiiscale.git&lt;br /&gt;
 cd wiiscale&lt;br /&gt;
&lt;br /&gt;
 uncomment line 134 and 135:&lt;br /&gt;
 134: #        for m in measurements(iface):&lt;br /&gt;
 135: #            print_bboard_measurements(*m)&lt;br /&gt;
&lt;br /&gt;
 python ./scale.py&lt;br /&gt;
&lt;br /&gt;
== Tobii REX eyetracker ==&lt;br /&gt;
&lt;br /&gt;
* zainstalować pakiet deb dla 64bit Linuxa z http://developer.tobii.com/rex-setup-gaze-sdk/&lt;br /&gt;
* poprosić Aleksa o kopię SDK&lt;br /&gt;
* w katalogu &amp;lt;code&amp;gt;Samples&amp;lt;/code&amp;gt; w SDK znajduje się demo (należy je zbudować poleceniem &amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
== Stara wersja instrukcji ==&lt;br /&gt;
&lt;br /&gt;
Instalacja OpenNI2&lt;br /&gt;
&lt;br /&gt;
wymagania&lt;br /&gt;
sudo apt-get install git-core g++ cmake libudev-dev libxi-dev libxmu-dev python libusb-1.0-0-dev libudev-dev freeglut3-dev doxygen graphviz&lt;br /&gt;
&lt;br /&gt;
sudo add-apt-repository ppa:webupd8team/java&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get install oracle-java8-installer&lt;br /&gt;
&lt;br /&gt;
git clone https://github.com/occipital/OpenNI2.git&lt;br /&gt;
cd OpenNI2&lt;br /&gt;
#Save path for further reference&lt;br /&gt;
OPENNI_DIR=&amp;quot;${PWD}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
sed -i '/-Werror/ s/^/#/' ${OPENNI_DIR}/ThirdParty/PSCommon/BuildSystem/CommonCppMakefile&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;LDFLAGS += -lpthread&amp;quot; &amp;gt;&amp;gt; ${OPENNI_DIR}/Source/Tools/NiViewer/Makefile&lt;br /&gt;
make&lt;br /&gt;
sudo ${OPENNI_DIR}/Packaging/Linux/install.sh&lt;br /&gt;
sudo gpasswd -a ${USER} video&lt;br /&gt;
&lt;br /&gt;
LUB (preferowana opcja):&lt;br /&gt;
pobrać binarny pakiet ze strony http://structure.io/openni&lt;br /&gt;
wypakować do katalogu np. OpenNI-Linux-x64-2.2&lt;br /&gt;
$ cd OpenNI-Linux-x64-2.2&lt;br /&gt;
$ sudo ./install.sh&lt;br /&gt;
w aktualnym katalogu utworzy się skrypt “OpenNIDevEnvironment”, który ustawia środowisko dev&lt;br /&gt;
&lt;br /&gt;
Instalacja libfreenect&lt;br /&gt;
&lt;br /&gt;
git clone https://github.com/OpenKinect/libfreenect.git&lt;br /&gt;
cd libfreenect&lt;br /&gt;
mkdir build; cd build&lt;br /&gt;
cmake .. -DBUILD_OPENNI2_DRIVER=ON&lt;br /&gt;
make -j4&lt;br /&gt;
cp -L lib/OpenNI2-FreenectDriver/libFreenectDriver.so ${OPENNI_DIR}/Bin/x64-Release/OpenNI2/Drivers/&lt;br /&gt;
&lt;br /&gt;
Test&lt;br /&gt;
cd ${OPENNI_DIR}/Bin/x64-Release/&lt;br /&gt;
./NiViewer&lt;br /&gt;
&lt;br /&gt;
Instalacja biblioteki NiTE2 &lt;br /&gt;
&lt;br /&gt;
http://ilab.usc.edu/packages/forall/ubuntu-13.10/NiTE-Linux-x64-2.2.tar.bz2&lt;br /&gt;
cd NiTE-Linux-x64-2.2&lt;br /&gt;
sudo ./install.sh&lt;br /&gt;
&lt;br /&gt;
cp -L /usr/local/lib/OpenNI2-FreenectDriver/libFreenectDriver.so NiTE-Linux-x64-2.2/Samples/Bin/OpenNI2/Drivers/&lt;/div&gt;</summary>
		<author><name>Alex</name></author>
		
	</entry>
	<entry>
		<id>http://brain.fuw.edu.pl/edu/index.php?title=Instalacja_i_konfiguracja_Kinect,_Wiimote_i_Eyetrackera&amp;diff=4947</id>
		<title>Instalacja i konfiguracja Kinect, Wiimote i Eyetrackera</title>
		<link rel="alternate" type="text/html" href="http://brain.fuw.edu.pl/edu/index.php?title=Instalacja_i_konfiguracja_Kinect,_Wiimote_i_Eyetrackera&amp;diff=4947"/>
		<updated>2016-03-17T22:00:27Z</updated>

		<summary type="html">&lt;p&gt;Alex: /* wrapper+obci */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Kinect + OpenNI2 + NiTE2 + freenect ==&lt;br /&gt;
&lt;br /&gt;
Instalacja OpenNI 2 + NiTE 2 z prekonfigurowanych binarek dla Ubuntu 15.10:&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install freeglut3 python-opencv libboost-all-dev&lt;br /&gt;
 cd ~&lt;br /&gt;
 wget http://static.mroja.net/kinect/kinect.7z&lt;br /&gt;
 7z x kinect.7z&lt;br /&gt;
 cd ~/kinect&lt;br /&gt;
 sudo cp primesense-and-kinect-usb.rules /etc/udev/rules.d/557-primesense-usb.rules&lt;br /&gt;
 export LD_LIBRARY_PATH=/home/{USER_NAME}/kinect/Redist (to najlepiej wrzucić do .profile)&lt;br /&gt;
 cd Redist&lt;br /&gt;
 ./NiViewer&lt;br /&gt;
&lt;br /&gt;
Należy prawdzić czy użytkownik, na koncie którego będzie używany Kinect należy do grupy plugdev -- jeśli nie, dodać: &lt;br /&gt;
 sudo usermod -G plugdev -a USER_NAME&lt;br /&gt;
&lt;br /&gt;
=== wrapper+obci ===&lt;br /&gt;
&lt;br /&gt;
Moduł do Pythona (plik &amp;lt;code&amp;gt;nite2.so&amp;lt;/code&amp;gt;) należy zbudować z repozytorium https://github.com/BrainTech/nite2-bindings i umieścić w katalogu &amp;lt;code&amp;gt;/usr/lib/python2.7/dist-packages&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Skopiuj katalog NiTE2 (&amp;lt;code&amp;gt;/home/USER_NAME/kinect/Redist/NiTE2&amp;lt;/code&amp;gt;) do katalogu &amp;lt;code&amp;gt;~/.obci/sandbox&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
na koncie lab&lt;br /&gt;
&lt;br /&gt;
 cd ~/kinect/Redist&lt;br /&gt;
 cp /path_to_file/nite2.so nite2.so&lt;br /&gt;
&lt;br /&gt;
 cp -r /home/lab/kinect/Redist/NiTE2/ ~/.obci/sandbox/&lt;br /&gt;
&lt;br /&gt;
na koncie newtech&lt;br /&gt;
&lt;br /&gt;
 cd ~/kinect/Redist&lt;br /&gt;
 cp /path_to_file/nite2.so nite2.so&lt;br /&gt;
&lt;br /&gt;
 mkdir /home/newtech/.obci/  # jeśli katalog istnieje to pominąć&lt;br /&gt;
 mkdir /home/newtech/.obci/sandbox  # j.w.&lt;br /&gt;
&lt;br /&gt;
 cp -r /home/newtech/kinect/Redist/NiTE2/ ~/.obci/sandbox/&lt;br /&gt;
&lt;br /&gt;
== Instalacja xwiimote ==&lt;br /&gt;
&lt;br /&gt;
UWAGA!!! NIE NALEŻY instalować pakietu xwiimote z Debiana - jest on przestarzały.&lt;br /&gt;
&lt;br /&gt;
Wymagane wersje:&lt;br /&gt;
* kernel &amp;gt;= 3.5+&lt;br /&gt;
* bluez &amp;gt;= 5.11+&lt;br /&gt;
&lt;br /&gt;
A) Instalacja wymaganych pakietów&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install autoconf autogen automake gcc bluetooth ncurses-dev libudev-dev libtool git blueman python-dev dh-autoreconf pkg-config swig&lt;br /&gt;
&lt;br /&gt;
B) xwiimote driver &amp;amp; utils&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/BrainTech/xwiimote&lt;br /&gt;
 cd xwiimote&lt;br /&gt;
 ./autogen.sh&lt;br /&gt;
 make&lt;br /&gt;
 sudo make install&lt;br /&gt;
 sudo ldconfig&lt;br /&gt;
&lt;br /&gt;
C) Python bindings&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/BrainTech/xwiimote-bindings&lt;br /&gt;
 cd xwiimote-bindings&lt;br /&gt;
 ./autogen.sh&lt;br /&gt;
 make&lt;br /&gt;
 sudo make install&lt;br /&gt;
 sudo ldconfig&lt;br /&gt;
&lt;br /&gt;
D) Żeby działało bez sudo dla userów lab i newtech&lt;br /&gt;
&lt;br /&gt;
 sudo usermod -a -G input newtech&lt;br /&gt;
 sudo usermod -a -G input lab&lt;br /&gt;
&lt;br /&gt;
E) Sparować urządzenie z użyciem wbudowanego do Ubuntu panelu Bluetooth&lt;br /&gt;
&lt;br /&gt;
F) Demo&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/irq0/wiiscale.git&lt;br /&gt;
 cd wiiscale&lt;br /&gt;
&lt;br /&gt;
 uncomment line 134 and 135:&lt;br /&gt;
 134: #        for m in measurements(iface):&lt;br /&gt;
 135: #            print_bboard_measurements(*m)&lt;br /&gt;
&lt;br /&gt;
 python ./scale.py&lt;br /&gt;
&lt;br /&gt;
== Tobii REX eyetracker ==&lt;br /&gt;
&lt;br /&gt;
* zainstalować pakiet deb dla 64bit Linuxa z http://developer.tobii.com/rex-setup-gaze-sdk/&lt;br /&gt;
* poprosić Aleksa o kopię SDK&lt;br /&gt;
* cd Samples &amp;amp;&amp;amp; make &amp;amp;&amp;amp; ./tracker - demo&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Stara wersja instrukcji ==&lt;br /&gt;
&lt;br /&gt;
Instalacja OpenNI2&lt;br /&gt;
&lt;br /&gt;
wymagania&lt;br /&gt;
sudo apt-get install git-core g++ cmake libudev-dev libxi-dev libxmu-dev python libusb-1.0-0-dev libudev-dev freeglut3-dev doxygen graphviz&lt;br /&gt;
&lt;br /&gt;
sudo add-apt-repository ppa:webupd8team/java&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get install oracle-java8-installer&lt;br /&gt;
&lt;br /&gt;
git clone https://github.com/occipital/OpenNI2.git&lt;br /&gt;
cd OpenNI2&lt;br /&gt;
#Save path for further reference&lt;br /&gt;
OPENNI_DIR=&amp;quot;${PWD}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
sed -i '/-Werror/ s/^/#/' ${OPENNI_DIR}/ThirdParty/PSCommon/BuildSystem/CommonCppMakefile&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;LDFLAGS += -lpthread&amp;quot; &amp;gt;&amp;gt; ${OPENNI_DIR}/Source/Tools/NiViewer/Makefile&lt;br /&gt;
make&lt;br /&gt;
sudo ${OPENNI_DIR}/Packaging/Linux/install.sh&lt;br /&gt;
sudo gpasswd -a ${USER} video&lt;br /&gt;
&lt;br /&gt;
LUB (preferowana opcja):&lt;br /&gt;
pobrać binarny pakiet ze strony http://structure.io/openni&lt;br /&gt;
wypakować do katalogu np. OpenNI-Linux-x64-2.2&lt;br /&gt;
$ cd OpenNI-Linux-x64-2.2&lt;br /&gt;
$ sudo ./install.sh&lt;br /&gt;
w aktualnym katalogu utworzy się skrypt “OpenNIDevEnvironment”, który ustawia środowisko dev&lt;br /&gt;
&lt;br /&gt;
Instalacja libfreenect&lt;br /&gt;
&lt;br /&gt;
git clone https://github.com/OpenKinect/libfreenect.git&lt;br /&gt;
cd libfreenect&lt;br /&gt;
mkdir build; cd build&lt;br /&gt;
cmake .. -DBUILD_OPENNI2_DRIVER=ON&lt;br /&gt;
make -j4&lt;br /&gt;
cp -L lib/OpenNI2-FreenectDriver/libFreenectDriver.so ${OPENNI_DIR}/Bin/x64-Release/OpenNI2/Drivers/&lt;br /&gt;
&lt;br /&gt;
Test&lt;br /&gt;
cd ${OPENNI_DIR}/Bin/x64-Release/&lt;br /&gt;
./NiViewer&lt;br /&gt;
&lt;br /&gt;
Instalacja biblioteki NiTE2 &lt;br /&gt;
&lt;br /&gt;
http://ilab.usc.edu/packages/forall/ubuntu-13.10/NiTE-Linux-x64-2.2.tar.bz2&lt;br /&gt;
cd NiTE-Linux-x64-2.2&lt;br /&gt;
sudo ./install.sh&lt;br /&gt;
&lt;br /&gt;
cp -L /usr/local/lib/OpenNI2-FreenectDriver/libFreenectDriver.so NiTE-Linux-x64-2.2/Samples/Bin/OpenNI2/Drivers/&lt;/div&gt;</summary>
		<author><name>Alex</name></author>
		
	</entry>
	<entry>
		<id>http://brain.fuw.edu.pl/edu/index.php?title=Instalacja_i_konfiguracja_Kinect,_Wiimote_i_Eyetrackera&amp;diff=4946</id>
		<title>Instalacja i konfiguracja Kinect, Wiimote i Eyetrackera</title>
		<link rel="alternate" type="text/html" href="http://brain.fuw.edu.pl/edu/index.php?title=Instalacja_i_konfiguracja_Kinect,_Wiimote_i_Eyetrackera&amp;diff=4946"/>
		<updated>2016-03-17T21:59:51Z</updated>

		<summary type="html">&lt;p&gt;Alex: /* Kinect + OpenNI2 + NiTE2 + freenect */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Kinect + OpenNI2 + NiTE2 + freenect ==&lt;br /&gt;
&lt;br /&gt;
Instalacja OpenNI 2 + NiTE 2 z prekonfigurowanych binarek dla Ubuntu 15.10:&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install freeglut3 python-opencv libboost-all-dev&lt;br /&gt;
 cd ~&lt;br /&gt;
 wget http://static.mroja.net/kinect/kinect.7z&lt;br /&gt;
 7z x kinect.7z&lt;br /&gt;
 cd ~/kinect&lt;br /&gt;
 sudo cp primesense-and-kinect-usb.rules /etc/udev/rules.d/557-primesense-usb.rules&lt;br /&gt;
 export LD_LIBRARY_PATH=/home/{USER_NAME}/kinect/Redist (to najlepiej wrzucić do .profile)&lt;br /&gt;
 cd Redist&lt;br /&gt;
 ./NiViewer&lt;br /&gt;
&lt;br /&gt;
Należy prawdzić czy użytkownik, na koncie którego będzie używany Kinect należy do grupy plugdev -- jeśli nie, dodać: &lt;br /&gt;
 sudo usermod -G plugdev -a USER_NAME&lt;br /&gt;
&lt;br /&gt;
=== wrapper+obci ===&lt;br /&gt;
&lt;br /&gt;
Moduł do Pythona (plik &amp;lt;code&amp;gt;nite2.so&amp;lt;/code&amp;gt;) należy zbudować z repozytorium https://github.com/BrainTech/nite2-bindings i umieścić w katalogu &amp;lt;code&amp;gt;/usr/lib/python2.7/dist-packages&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Skopiuj katalog NiTE2 (/home/USER_NAME/kinect/Redist/NiTE2) do katalogu ~/.obci/sandbox&lt;br /&gt;
&lt;br /&gt;
na koncie lab&lt;br /&gt;
&lt;br /&gt;
 cd ~/kinect/Redist&lt;br /&gt;
 cp /path_to_file/nite2.so nite2.so&lt;br /&gt;
&lt;br /&gt;
 cp -r /home/lab/kinect/Redist/NiTE2/ ~/.obci/sandbox/&lt;br /&gt;
&lt;br /&gt;
na koncie newtech&lt;br /&gt;
&lt;br /&gt;
 cd ~/kinect/Redist&lt;br /&gt;
 cp /path_to_file/nite2.so nite2.so&lt;br /&gt;
&lt;br /&gt;
 mkdir /home/newtech/.obci/  # jeśli katalog istnieje to pominąć&lt;br /&gt;
 mkdir /home/newtech/.obci/sandbox  # j.w.&lt;br /&gt;
&lt;br /&gt;
 cp -r /home/newtech/kinect/Redist/NiTE2/ ~/.obci/sandbox/&lt;br /&gt;
&lt;br /&gt;
== Instalacja xwiimote ==&lt;br /&gt;
&lt;br /&gt;
UWAGA!!! NIE NALEŻY instalować pakietu xwiimote z Debiana - jest on przestarzały.&lt;br /&gt;
&lt;br /&gt;
Wymagane wersje:&lt;br /&gt;
* kernel &amp;gt;= 3.5+&lt;br /&gt;
* bluez &amp;gt;= 5.11+&lt;br /&gt;
&lt;br /&gt;
A) Instalacja wymaganych pakietów&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install autoconf autogen automake gcc bluetooth ncurses-dev libudev-dev libtool git blueman python-dev dh-autoreconf pkg-config swig&lt;br /&gt;
&lt;br /&gt;
B) xwiimote driver &amp;amp; utils&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/BrainTech/xwiimote&lt;br /&gt;
 cd xwiimote&lt;br /&gt;
 ./autogen.sh&lt;br /&gt;
 make&lt;br /&gt;
 sudo make install&lt;br /&gt;
 sudo ldconfig&lt;br /&gt;
&lt;br /&gt;
C) Python bindings&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/BrainTech/xwiimote-bindings&lt;br /&gt;
 cd xwiimote-bindings&lt;br /&gt;
 ./autogen.sh&lt;br /&gt;
 make&lt;br /&gt;
 sudo make install&lt;br /&gt;
 sudo ldconfig&lt;br /&gt;
&lt;br /&gt;
D) Żeby działało bez sudo dla userów lab i newtech&lt;br /&gt;
&lt;br /&gt;
 sudo usermod -a -G input newtech&lt;br /&gt;
 sudo usermod -a -G input lab&lt;br /&gt;
&lt;br /&gt;
E) Sparować urządzenie z użyciem wbudowanego do Ubuntu panelu Bluetooth&lt;br /&gt;
&lt;br /&gt;
F) Demo&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/irq0/wiiscale.git&lt;br /&gt;
 cd wiiscale&lt;br /&gt;
&lt;br /&gt;
 uncomment line 134 and 135:&lt;br /&gt;
 134: #        for m in measurements(iface):&lt;br /&gt;
 135: #            print_bboard_measurements(*m)&lt;br /&gt;
&lt;br /&gt;
 python ./scale.py&lt;br /&gt;
&lt;br /&gt;
== Tobii REX eyetracker ==&lt;br /&gt;
&lt;br /&gt;
* zainstalować pakiet deb dla 64bit Linuxa z http://developer.tobii.com/rex-setup-gaze-sdk/&lt;br /&gt;
* poprosić Aleksa o kopię SDK&lt;br /&gt;
* cd Samples &amp;amp;&amp;amp; make &amp;amp;&amp;amp; ./tracker - demo&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Stara wersja instrukcji ==&lt;br /&gt;
&lt;br /&gt;
Instalacja OpenNI2&lt;br /&gt;
&lt;br /&gt;
wymagania&lt;br /&gt;
sudo apt-get install git-core g++ cmake libudev-dev libxi-dev libxmu-dev python libusb-1.0-0-dev libudev-dev freeglut3-dev doxygen graphviz&lt;br /&gt;
&lt;br /&gt;
sudo add-apt-repository ppa:webupd8team/java&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get install oracle-java8-installer&lt;br /&gt;
&lt;br /&gt;
git clone https://github.com/occipital/OpenNI2.git&lt;br /&gt;
cd OpenNI2&lt;br /&gt;
#Save path for further reference&lt;br /&gt;
OPENNI_DIR=&amp;quot;${PWD}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
sed -i '/-Werror/ s/^/#/' ${OPENNI_DIR}/ThirdParty/PSCommon/BuildSystem/CommonCppMakefile&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;LDFLAGS += -lpthread&amp;quot; &amp;gt;&amp;gt; ${OPENNI_DIR}/Source/Tools/NiViewer/Makefile&lt;br /&gt;
make&lt;br /&gt;
sudo ${OPENNI_DIR}/Packaging/Linux/install.sh&lt;br /&gt;
sudo gpasswd -a ${USER} video&lt;br /&gt;
&lt;br /&gt;
LUB (preferowana opcja):&lt;br /&gt;
pobrać binarny pakiet ze strony http://structure.io/openni&lt;br /&gt;
wypakować do katalogu np. OpenNI-Linux-x64-2.2&lt;br /&gt;
$ cd OpenNI-Linux-x64-2.2&lt;br /&gt;
$ sudo ./install.sh&lt;br /&gt;
w aktualnym katalogu utworzy się skrypt “OpenNIDevEnvironment”, który ustawia środowisko dev&lt;br /&gt;
&lt;br /&gt;
Instalacja libfreenect&lt;br /&gt;
&lt;br /&gt;
git clone https://github.com/OpenKinect/libfreenect.git&lt;br /&gt;
cd libfreenect&lt;br /&gt;
mkdir build; cd build&lt;br /&gt;
cmake .. -DBUILD_OPENNI2_DRIVER=ON&lt;br /&gt;
make -j4&lt;br /&gt;
cp -L lib/OpenNI2-FreenectDriver/libFreenectDriver.so ${OPENNI_DIR}/Bin/x64-Release/OpenNI2/Drivers/&lt;br /&gt;
&lt;br /&gt;
Test&lt;br /&gt;
cd ${OPENNI_DIR}/Bin/x64-Release/&lt;br /&gt;
./NiViewer&lt;br /&gt;
&lt;br /&gt;
Instalacja biblioteki NiTE2 &lt;br /&gt;
&lt;br /&gt;
http://ilab.usc.edu/packages/forall/ubuntu-13.10/NiTE-Linux-x64-2.2.tar.bz2&lt;br /&gt;
cd NiTE-Linux-x64-2.2&lt;br /&gt;
sudo ./install.sh&lt;br /&gt;
&lt;br /&gt;
cp -L /usr/local/lib/OpenNI2-FreenectDriver/libFreenectDriver.so NiTE-Linux-x64-2.2/Samples/Bin/OpenNI2/Drivers/&lt;/div&gt;</summary>
		<author><name>Alex</name></author>
		
	</entry>
	<entry>
		<id>http://brain.fuw.edu.pl/edu/index.php?title=Instalacja_i_konfiguracja_Kinect,_Wiimote_i_Eyetrackera&amp;diff=4945</id>
		<title>Instalacja i konfiguracja Kinect, Wiimote i Eyetrackera</title>
		<link rel="alternate" type="text/html" href="http://brain.fuw.edu.pl/edu/index.php?title=Instalacja_i_konfiguracja_Kinect,_Wiimote_i_Eyetrackera&amp;diff=4945"/>
		<updated>2016-03-17T21:58:36Z</updated>

		<summary type="html">&lt;p&gt;Alex: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Kinect + OpenNI2 + NiTE2 + freenect ==&lt;br /&gt;
&lt;br /&gt;
Instalacja OpenNI 2 + NiTE 2 z prekonfigurowanych binarek dla Ubuntu 15.10:&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install freeglut3 python-opencv libboost-all-dev&lt;br /&gt;
 cd ~&lt;br /&gt;
 wget http://static.mroja.net/kinect/kinect.7z&lt;br /&gt;
 7z x kinect.7z&lt;br /&gt;
 cd ~/kinect&lt;br /&gt;
 sudo cp primesense-and-kinect-usb.rules /etc/udev/rules.d/557-primesense-usb.rules&lt;br /&gt;
 export LD_LIBRARY_PATH=/home/{USER_NAME}/kinect/Redist (to najlepiej wrzucić do .profile)&lt;br /&gt;
 cd Redist&lt;br /&gt;
 ./NiViewer&lt;br /&gt;
&lt;br /&gt;
Należy prawdzić czy użytkownik, na koncie którego będzie używany Kinect należy do grupy plugdev -- jeśli nie, dodać: &lt;br /&gt;
 sudo usermod -G plugdev -a USER_NAME&lt;br /&gt;
&lt;br /&gt;
=== wrapper+obci ===&lt;br /&gt;
&lt;br /&gt;
Moduł do Pythona (plik &amp;lt;code&amp;gt;nite2.so&amp;lt;/code&amp;gt;) należy zbudować z repozytorium https://github.com/BrainTech/nite2-bindings i umieścić w katalogu &amp;lt;code&amp;gt;/usr/lib/python2.7/dist-packages&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Skopiuj katalog NiTE2 (/home/USER_NAME/kinect/Redist/NiTE2) do katalogu ~/.obci/sandbox&lt;br /&gt;
&lt;br /&gt;
na koncie lab&lt;br /&gt;
&lt;br /&gt;
 cd ~/kinect/Redist&lt;br /&gt;
 cp /path_to_file/nite2.so nite2.so&lt;br /&gt;
&lt;br /&gt;
 cp -r /home/lab/kinect/Redist/NiTE2/ ~/.obci/sandbox/&lt;br /&gt;
 sudo cp nite2.so /usr/lib/python2.7/dist-packages&lt;br /&gt;
&lt;br /&gt;
na koncie newtech&lt;br /&gt;
&lt;br /&gt;
 cd ~/kinect/Redist&lt;br /&gt;
 cp /path_to_file/nite2.so nite2.so&lt;br /&gt;
&lt;br /&gt;
 mkdir /home/newtech/.obci/  # jeśli katalog istnieje to pominąć&lt;br /&gt;
 mkdir /home/newtech/.obci/sandbox  # j.w.&lt;br /&gt;
&lt;br /&gt;
 cp -r /home/newtech/kinect/Redist/NiTE2/ ~/.obci/sandbox/&lt;br /&gt;
&lt;br /&gt;
== Instalacja xwiimote ==&lt;br /&gt;
&lt;br /&gt;
UWAGA!!! NIE NALEŻY instalować pakietu xwiimote z Debiana - jest on przestarzały.&lt;br /&gt;
&lt;br /&gt;
Wymagane wersje:&lt;br /&gt;
* kernel &amp;gt;= 3.5+&lt;br /&gt;
* bluez &amp;gt;= 5.11+&lt;br /&gt;
&lt;br /&gt;
A) Instalacja wymaganych pakietów&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install autoconf autogen automake gcc bluetooth ncurses-dev libudev-dev libtool git blueman python-dev dh-autoreconf pkg-config swig&lt;br /&gt;
&lt;br /&gt;
B) xwiimote driver &amp;amp; utils&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/BrainTech/xwiimote&lt;br /&gt;
 cd xwiimote&lt;br /&gt;
 ./autogen.sh&lt;br /&gt;
 make&lt;br /&gt;
 sudo make install&lt;br /&gt;
 sudo ldconfig&lt;br /&gt;
&lt;br /&gt;
C) Python bindings&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/BrainTech/xwiimote-bindings&lt;br /&gt;
 cd xwiimote-bindings&lt;br /&gt;
 ./autogen.sh&lt;br /&gt;
 make&lt;br /&gt;
 sudo make install&lt;br /&gt;
 sudo ldconfig&lt;br /&gt;
&lt;br /&gt;
D) Żeby działało bez sudo dla userów lab i newtech&lt;br /&gt;
&lt;br /&gt;
 sudo usermod -a -G input newtech&lt;br /&gt;
 sudo usermod -a -G input lab&lt;br /&gt;
&lt;br /&gt;
E) Sparować urządzenie z użyciem wbudowanego do Ubuntu panelu Bluetooth&lt;br /&gt;
&lt;br /&gt;
F) Demo&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/irq0/wiiscale.git&lt;br /&gt;
 cd wiiscale&lt;br /&gt;
&lt;br /&gt;
 uncomment line 134 and 135:&lt;br /&gt;
 134: #        for m in measurements(iface):&lt;br /&gt;
 135: #            print_bboard_measurements(*m)&lt;br /&gt;
&lt;br /&gt;
 python ./scale.py&lt;br /&gt;
&lt;br /&gt;
== Tobii REX eyetracker ==&lt;br /&gt;
&lt;br /&gt;
* zainstalować pakiet deb dla 64bit Linuxa z http://developer.tobii.com/rex-setup-gaze-sdk/&lt;br /&gt;
* poprosić Aleksa o kopię SDK&lt;br /&gt;
* cd Samples &amp;amp;&amp;amp; make &amp;amp;&amp;amp; ./tracker - demo&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Stara wersja instrukcji ==&lt;br /&gt;
&lt;br /&gt;
Instalacja OpenNI2&lt;br /&gt;
&lt;br /&gt;
wymagania&lt;br /&gt;
sudo apt-get install git-core g++ cmake libudev-dev libxi-dev libxmu-dev python libusb-1.0-0-dev libudev-dev freeglut3-dev doxygen graphviz&lt;br /&gt;
&lt;br /&gt;
sudo add-apt-repository ppa:webupd8team/java&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get install oracle-java8-installer&lt;br /&gt;
&lt;br /&gt;
git clone https://github.com/occipital/OpenNI2.git&lt;br /&gt;
cd OpenNI2&lt;br /&gt;
#Save path for further reference&lt;br /&gt;
OPENNI_DIR=&amp;quot;${PWD}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
sed -i '/-Werror/ s/^/#/' ${OPENNI_DIR}/ThirdParty/PSCommon/BuildSystem/CommonCppMakefile&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;LDFLAGS += -lpthread&amp;quot; &amp;gt;&amp;gt; ${OPENNI_DIR}/Source/Tools/NiViewer/Makefile&lt;br /&gt;
make&lt;br /&gt;
sudo ${OPENNI_DIR}/Packaging/Linux/install.sh&lt;br /&gt;
sudo gpasswd -a ${USER} video&lt;br /&gt;
&lt;br /&gt;
LUB (preferowana opcja):&lt;br /&gt;
pobrać binarny pakiet ze strony http://structure.io/openni&lt;br /&gt;
wypakować do katalogu np. OpenNI-Linux-x64-2.2&lt;br /&gt;
$ cd OpenNI-Linux-x64-2.2&lt;br /&gt;
$ sudo ./install.sh&lt;br /&gt;
w aktualnym katalogu utworzy się skrypt “OpenNIDevEnvironment”, który ustawia środowisko dev&lt;br /&gt;
&lt;br /&gt;
Instalacja libfreenect&lt;br /&gt;
&lt;br /&gt;
git clone https://github.com/OpenKinect/libfreenect.git&lt;br /&gt;
cd libfreenect&lt;br /&gt;
mkdir build; cd build&lt;br /&gt;
cmake .. -DBUILD_OPENNI2_DRIVER=ON&lt;br /&gt;
make -j4&lt;br /&gt;
cp -L lib/OpenNI2-FreenectDriver/libFreenectDriver.so ${OPENNI_DIR}/Bin/x64-Release/OpenNI2/Drivers/&lt;br /&gt;
&lt;br /&gt;
Test&lt;br /&gt;
cd ${OPENNI_DIR}/Bin/x64-Release/&lt;br /&gt;
./NiViewer&lt;br /&gt;
&lt;br /&gt;
Instalacja biblioteki NiTE2 &lt;br /&gt;
&lt;br /&gt;
http://ilab.usc.edu/packages/forall/ubuntu-13.10/NiTE-Linux-x64-2.2.tar.bz2&lt;br /&gt;
cd NiTE-Linux-x64-2.2&lt;br /&gt;
sudo ./install.sh&lt;br /&gt;
&lt;br /&gt;
cp -L /usr/local/lib/OpenNI2-FreenectDriver/libFreenectDriver.so NiTE-Linux-x64-2.2/Samples/Bin/OpenNI2/Drivers/&lt;/div&gt;</summary>
		<author><name>Alex</name></author>
		
	</entry>
	<entry>
		<id>http://brain.fuw.edu.pl/edu/index.php?title=Instalacja_i_konfiguracja_Kinect,_Wiimote_i_Eyetrackera&amp;diff=4944</id>
		<title>Instalacja i konfiguracja Kinect, Wiimote i Eyetrackera</title>
		<link rel="alternate" type="text/html" href="http://brain.fuw.edu.pl/edu/index.php?title=Instalacja_i_konfiguracja_Kinect,_Wiimote_i_Eyetrackera&amp;diff=4944"/>
		<updated>2016-03-17T21:54:51Z</updated>

		<summary type="html">&lt;p&gt;Alex: /* Instalacja xwiimote */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Kinect + OpenNI2 + NiTE2 + freenect ==&lt;br /&gt;
&lt;br /&gt;
Instalacja OpenNI 2 + NiTE 2 z prokonfigurowanych binarek dla Ubuntu 14.04 (działa także na Ubuntu 14.10 i 15.10):&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install freeglut3 python-opencv libboost-all-dev&lt;br /&gt;
 cd ~&lt;br /&gt;
 wget http://static.mroja.net/kinect/kinect.7z&lt;br /&gt;
 7z x kinect.7z&lt;br /&gt;
 cd ~/kinect&lt;br /&gt;
 sudo cp primesense-and-kinect-usb.rules /etc/udev/rules.d/557-primesense-usb.rules&lt;br /&gt;
 export LD_LIBRARY_PATH=/home/{USER_NAME}/kinect/Redist (to najlepiej wrzucić do .profile)&lt;br /&gt;
 cd Redist&lt;br /&gt;
 ./NiViewer&lt;br /&gt;
&lt;br /&gt;
sprawdzić czy user należy do grupy plugdev:&lt;br /&gt;
-- jak nie, dodać: &lt;br /&gt;
 sudo usermod -G plugdev -a USER_NAME&lt;br /&gt;
&lt;br /&gt;
wrapper+obci&lt;br /&gt;
&lt;br /&gt;
nite2.so należy zbudować z repo https://github.com/BrainTech/nite2-bindings i umieścić w /usr/lib/python2.7/dist-packages&lt;br /&gt;
Skopiuj katalog NiTE2 (/home/USER_NAME/kinect/Redist/NiTE2) do katalogu ~/.obci/sandbox&lt;br /&gt;
&lt;br /&gt;
na koncie lab&lt;br /&gt;
&lt;br /&gt;
 cd ~/kinect/Redist&lt;br /&gt;
 cp /path_to_file/nite2.so nite2.so&lt;br /&gt;
&lt;br /&gt;
 cp -r /home/lab/kinect/Redist/NiTE2/ ~/.obci/sandbox/&lt;br /&gt;
 sudo cp nite2.so /usr/lib/python2.7/dist-packages&lt;br /&gt;
&lt;br /&gt;
na koncie newtech&lt;br /&gt;
&lt;br /&gt;
 cd ~/kinect/Redist&lt;br /&gt;
 cp /path_to_file/nite2.so nite2.so&lt;br /&gt;
&lt;br /&gt;
 mkdir /home/newtech/.obci/  # jeśli katalog istnieje to pominąć&lt;br /&gt;
 mkdir /home/newtech/.obci/sandbox  # j.w.&lt;br /&gt;
&lt;br /&gt;
 cp -r /home/newtech/kinect/Redist/NiTE2/ ~/.obci/sandbox/&lt;br /&gt;
&lt;br /&gt;
== Instalacja xwiimote ==&lt;br /&gt;
&lt;br /&gt;
UWAGA!!! NIE NALEŻY instalować pakietu xwiimote z Debiana - jest on przestarzały.&lt;br /&gt;
&lt;br /&gt;
Wymagane wersje:&lt;br /&gt;
* kernel &amp;gt;= 3.5+&lt;br /&gt;
* bluez &amp;gt;= 5.11+&lt;br /&gt;
&lt;br /&gt;
A) Instalacja wymaganych pakietów&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install autoconf autogen automake gcc bluetooth ncurses-dev libudev-dev libtool git blueman python-dev dh-autoreconf pkg-config swig&lt;br /&gt;
&lt;br /&gt;
B) xwiimote driver &amp;amp; utils&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/BrainTech/xwiimote&lt;br /&gt;
 cd xwiimote&lt;br /&gt;
 ./autogen.sh&lt;br /&gt;
 make&lt;br /&gt;
 sudo make install&lt;br /&gt;
 sudo ldconfig&lt;br /&gt;
&lt;br /&gt;
C) Python bindings&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/BrainTech/xwiimote-bindings&lt;br /&gt;
 cd xwiimote-bindings&lt;br /&gt;
 ./autogen.sh&lt;br /&gt;
 make&lt;br /&gt;
 sudo make install&lt;br /&gt;
 sudo ldconfig&lt;br /&gt;
&lt;br /&gt;
D) Żeby działało bez sudo dla userów lab i newtech&lt;br /&gt;
&lt;br /&gt;
 sudo usermod -a -G input newtech&lt;br /&gt;
 sudo usermod -a -G input lab&lt;br /&gt;
&lt;br /&gt;
E) Sparować urządzenie z użyciem wbudowanego do Ubuntu panelu Bluetooth&lt;br /&gt;
&lt;br /&gt;
F) Demo&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/irq0/wiiscale.git&lt;br /&gt;
 cd wiiscale&lt;br /&gt;
&lt;br /&gt;
 uncomment line 134 and 135:&lt;br /&gt;
 134: #        for m in measurements(iface):&lt;br /&gt;
 135: #            print_bboard_measurements(*m)&lt;br /&gt;
&lt;br /&gt;
 python ./scale.py&lt;br /&gt;
&lt;br /&gt;
== Tobii REX eyetracker ==&lt;br /&gt;
&lt;br /&gt;
* zainstalować pakiet deb dla 64bit Linuxa z http://developer.tobii.com/rex-setup-gaze-sdk/&lt;br /&gt;
* poprosić Aleksa o kopię SDK&lt;br /&gt;
* cd Samples &amp;amp;&amp;amp; make &amp;amp;&amp;amp; ./tracker - demo&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Stara wersja instrukcji ==&lt;br /&gt;
&lt;br /&gt;
Instalacja OpenNI2&lt;br /&gt;
&lt;br /&gt;
wymagania&lt;br /&gt;
sudo apt-get install git-core g++ cmake libudev-dev libxi-dev libxmu-dev python libusb-1.0-0-dev libudev-dev freeglut3-dev doxygen graphviz&lt;br /&gt;
&lt;br /&gt;
sudo add-apt-repository ppa:webupd8team/java&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get install oracle-java8-installer&lt;br /&gt;
&lt;br /&gt;
git clone https://github.com/occipital/OpenNI2.git&lt;br /&gt;
cd OpenNI2&lt;br /&gt;
#Save path for further reference&lt;br /&gt;
OPENNI_DIR=&amp;quot;${PWD}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
sed -i '/-Werror/ s/^/#/' ${OPENNI_DIR}/ThirdParty/PSCommon/BuildSystem/CommonCppMakefile&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;LDFLAGS += -lpthread&amp;quot; &amp;gt;&amp;gt; ${OPENNI_DIR}/Source/Tools/NiViewer/Makefile&lt;br /&gt;
make&lt;br /&gt;
sudo ${OPENNI_DIR}/Packaging/Linux/install.sh&lt;br /&gt;
sudo gpasswd -a ${USER} video&lt;br /&gt;
&lt;br /&gt;
LUB (preferowana opcja):&lt;br /&gt;
pobrać binarny pakiet ze strony http://structure.io/openni&lt;br /&gt;
wypakować do katalogu np. OpenNI-Linux-x64-2.2&lt;br /&gt;
$ cd OpenNI-Linux-x64-2.2&lt;br /&gt;
$ sudo ./install.sh&lt;br /&gt;
w aktualnym katalogu utworzy się skrypt “OpenNIDevEnvironment”, który ustawia środowisko dev&lt;br /&gt;
&lt;br /&gt;
Instalacja libfreenect&lt;br /&gt;
&lt;br /&gt;
git clone https://github.com/OpenKinect/libfreenect.git&lt;br /&gt;
cd libfreenect&lt;br /&gt;
mkdir build; cd build&lt;br /&gt;
cmake .. -DBUILD_OPENNI2_DRIVER=ON&lt;br /&gt;
make -j4&lt;br /&gt;
cp -L lib/OpenNI2-FreenectDriver/libFreenectDriver.so ${OPENNI_DIR}/Bin/x64-Release/OpenNI2/Drivers/&lt;br /&gt;
&lt;br /&gt;
Test&lt;br /&gt;
cd ${OPENNI_DIR}/Bin/x64-Release/&lt;br /&gt;
./NiViewer&lt;br /&gt;
&lt;br /&gt;
Instalacja biblioteki NiTE2 &lt;br /&gt;
&lt;br /&gt;
http://ilab.usc.edu/packages/forall/ubuntu-13.10/NiTE-Linux-x64-2.2.tar.bz2&lt;br /&gt;
cd NiTE-Linux-x64-2.2&lt;br /&gt;
sudo ./install.sh&lt;br /&gt;
&lt;br /&gt;
cp -L /usr/local/lib/OpenNI2-FreenectDriver/libFreenectDriver.so NiTE-Linux-x64-2.2/Samples/Bin/OpenNI2/Drivers/&lt;/div&gt;</summary>
		<author><name>Alex</name></author>
		
	</entry>
	<entry>
		<id>http://brain.fuw.edu.pl/edu/index.php?title=Instalacja_i_konfiguracja_Kinect,_Wiimote_i_Eyetrackera&amp;diff=4943</id>
		<title>Instalacja i konfiguracja Kinect, Wiimote i Eyetrackera</title>
		<link rel="alternate" type="text/html" href="http://brain.fuw.edu.pl/edu/index.php?title=Instalacja_i_konfiguracja_Kinect,_Wiimote_i_Eyetrackera&amp;diff=4943"/>
		<updated>2016-03-17T21:51:51Z</updated>

		<summary type="html">&lt;p&gt;Alex: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Kinect + OpenNI2 + NiTE2 + freenect ==&lt;br /&gt;
&lt;br /&gt;
Instalacja OpenNI 2 + NiTE 2 z prokonfigurowanych binarek dla Ubuntu 14.04 (działa także na Ubuntu 14.10 i 15.10):&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install freeglut3 python-opencv libboost-all-dev&lt;br /&gt;
 cd ~&lt;br /&gt;
 wget http://static.mroja.net/kinect/kinect.7z&lt;br /&gt;
 7z x kinect.7z&lt;br /&gt;
 cd ~/kinect&lt;br /&gt;
 sudo cp primesense-and-kinect-usb.rules /etc/udev/rules.d/557-primesense-usb.rules&lt;br /&gt;
 export LD_LIBRARY_PATH=/home/{USER_NAME}/kinect/Redist (to najlepiej wrzucić do .profile)&lt;br /&gt;
 cd Redist&lt;br /&gt;
 ./NiViewer&lt;br /&gt;
&lt;br /&gt;
sprawdzić czy user należy do grupy plugdev:&lt;br /&gt;
-- jak nie, dodać: &lt;br /&gt;
 sudo usermod -G plugdev -a USER_NAME&lt;br /&gt;
&lt;br /&gt;
wrapper+obci&lt;br /&gt;
&lt;br /&gt;
nite2.so należy zbudować z repo https://github.com/BrainTech/nite2-bindings i umieścić w /usr/lib/python2.7/dist-packages&lt;br /&gt;
Skopiuj katalog NiTE2 (/home/USER_NAME/kinect/Redist/NiTE2) do katalogu ~/.obci/sandbox&lt;br /&gt;
&lt;br /&gt;
na koncie lab&lt;br /&gt;
&lt;br /&gt;
 cd ~/kinect/Redist&lt;br /&gt;
 cp /path_to_file/nite2.so nite2.so&lt;br /&gt;
&lt;br /&gt;
 cp -r /home/lab/kinect/Redist/NiTE2/ ~/.obci/sandbox/&lt;br /&gt;
 sudo cp nite2.so /usr/lib/python2.7/dist-packages&lt;br /&gt;
&lt;br /&gt;
na koncie newtech&lt;br /&gt;
&lt;br /&gt;
 cd ~/kinect/Redist&lt;br /&gt;
 cp /path_to_file/nite2.so nite2.so&lt;br /&gt;
&lt;br /&gt;
 mkdir /home/newtech/.obci/  # jeśli katalog istnieje to pominąć&lt;br /&gt;
 mkdir /home/newtech/.obci/sandbox  # j.w.&lt;br /&gt;
&lt;br /&gt;
 cp -r /home/newtech/kinect/Redist/NiTE2/ ~/.obci/sandbox/&lt;br /&gt;
&lt;br /&gt;
== Instalacja xwiimote ==&lt;br /&gt;
&lt;br /&gt;
WARNING!!! DO NOT install official Debian sid xwiimote package from - it contains very old sources, use latest version from git.&lt;br /&gt;
&lt;br /&gt;
kernel &amp;gt;= 3.5+&lt;br /&gt;
bluez &amp;gt;= 5.11+&lt;br /&gt;
&lt;br /&gt;
0) sudo apt-get install autoconf autogen automake gcc bluetooth ncurses-dev libudev-dev libtool git blueman python-dev dh-autoreconf pkg-config swig&lt;br /&gt;
&lt;br /&gt;
A) xwiimote driver &amp;amp; utils&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/BrainTech/xwiimote&lt;br /&gt;
 cd xwiimote&lt;br /&gt;
 ./autogen.sh&lt;br /&gt;
 make&lt;br /&gt;
 sudo make install&lt;br /&gt;
 sudo ldconfig&lt;br /&gt;
&lt;br /&gt;
B) Python bindings&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/BrainTech/xwiimote-bindings&lt;br /&gt;
 cd xwiimote-bindings&lt;br /&gt;
 ./autogen.sh&lt;br /&gt;
 make&lt;br /&gt;
 sudo make install&lt;br /&gt;
 sudo ldconfig&lt;br /&gt;
&lt;br /&gt;
C) Żeby działało bez sudo dla userów lab i newtech&lt;br /&gt;
&lt;br /&gt;
 sudo usermod -a -G input newtech&lt;br /&gt;
 sudo usermod -a -G input lab&lt;br /&gt;
&lt;br /&gt;
D) Sparować urządzenie z użyciem wbudowanego do Ubuntu panelu Bluetooth&lt;br /&gt;
&lt;br /&gt;
E) Demo&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/irq0/wiiscale.git&lt;br /&gt;
 cd wiiscale&lt;br /&gt;
&lt;br /&gt;
 uncomment line 134 and 135:&lt;br /&gt;
 134: #        for m in measurements(iface):&lt;br /&gt;
 135: #            print_bboard_measurements(*m)&lt;br /&gt;
&lt;br /&gt;
 python ./scale.py&lt;br /&gt;
&lt;br /&gt;
== Tobii REX eyetracker ==&lt;br /&gt;
&lt;br /&gt;
* zainstalować pakiet deb dla 64bit Linuxa z http://developer.tobii.com/rex-setup-gaze-sdk/&lt;br /&gt;
* poprosić Aleksa o kopię SDK&lt;br /&gt;
* cd Samples &amp;amp;&amp;amp; make &amp;amp;&amp;amp; ./tracker - demo&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Stara wersja instrukcji ==&lt;br /&gt;
&lt;br /&gt;
Instalacja OpenNI2&lt;br /&gt;
&lt;br /&gt;
wymagania&lt;br /&gt;
sudo apt-get install git-core g++ cmake libudev-dev libxi-dev libxmu-dev python libusb-1.0-0-dev libudev-dev freeglut3-dev doxygen graphviz&lt;br /&gt;
&lt;br /&gt;
sudo add-apt-repository ppa:webupd8team/java&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get install oracle-java8-installer&lt;br /&gt;
&lt;br /&gt;
git clone https://github.com/occipital/OpenNI2.git&lt;br /&gt;
cd OpenNI2&lt;br /&gt;
#Save path for further reference&lt;br /&gt;
OPENNI_DIR=&amp;quot;${PWD}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
sed -i '/-Werror/ s/^/#/' ${OPENNI_DIR}/ThirdParty/PSCommon/BuildSystem/CommonCppMakefile&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;LDFLAGS += -lpthread&amp;quot; &amp;gt;&amp;gt; ${OPENNI_DIR}/Source/Tools/NiViewer/Makefile&lt;br /&gt;
make&lt;br /&gt;
sudo ${OPENNI_DIR}/Packaging/Linux/install.sh&lt;br /&gt;
sudo gpasswd -a ${USER} video&lt;br /&gt;
&lt;br /&gt;
LUB (preferowana opcja):&lt;br /&gt;
pobrać binarny pakiet ze strony http://structure.io/openni&lt;br /&gt;
wypakować do katalogu np. OpenNI-Linux-x64-2.2&lt;br /&gt;
$ cd OpenNI-Linux-x64-2.2&lt;br /&gt;
$ sudo ./install.sh&lt;br /&gt;
w aktualnym katalogu utworzy się skrypt “OpenNIDevEnvironment”, który ustawia środowisko dev&lt;br /&gt;
&lt;br /&gt;
Instalacja libfreenect&lt;br /&gt;
&lt;br /&gt;
git clone https://github.com/OpenKinect/libfreenect.git&lt;br /&gt;
cd libfreenect&lt;br /&gt;
mkdir build; cd build&lt;br /&gt;
cmake .. -DBUILD_OPENNI2_DRIVER=ON&lt;br /&gt;
make -j4&lt;br /&gt;
cp -L lib/OpenNI2-FreenectDriver/libFreenectDriver.so ${OPENNI_DIR}/Bin/x64-Release/OpenNI2/Drivers/&lt;br /&gt;
&lt;br /&gt;
Test&lt;br /&gt;
cd ${OPENNI_DIR}/Bin/x64-Release/&lt;br /&gt;
./NiViewer&lt;br /&gt;
&lt;br /&gt;
Instalacja biblioteki NiTE2 &lt;br /&gt;
&lt;br /&gt;
http://ilab.usc.edu/packages/forall/ubuntu-13.10/NiTE-Linux-x64-2.2.tar.bz2&lt;br /&gt;
cd NiTE-Linux-x64-2.2&lt;br /&gt;
sudo ./install.sh&lt;br /&gt;
&lt;br /&gt;
cp -L /usr/local/lib/OpenNI2-FreenectDriver/libFreenectDriver.so NiTE-Linux-x64-2.2/Samples/Bin/OpenNI2/Drivers/&lt;/div&gt;</summary>
		<author><name>Alex</name></author>
		
	</entry>
	<entry>
		<id>http://brain.fuw.edu.pl/edu/index.php?title=Instalacja_i_konfiguracja_Kinect,_Wiimote_i_Eyetrackera&amp;diff=4942</id>
		<title>Instalacja i konfiguracja Kinect, Wiimote i Eyetrackera</title>
		<link rel="alternate" type="text/html" href="http://brain.fuw.edu.pl/edu/index.php?title=Instalacja_i_konfiguracja_Kinect,_Wiimote_i_Eyetrackera&amp;diff=4942"/>
		<updated>2016-03-17T21:51:21Z</updated>

		<summary type="html">&lt;p&gt;Alex: /* Instalacja xwiimote-bindings */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Kinect + OpenNI2 + NiTE2 + freenect ==&lt;br /&gt;
&lt;br /&gt;
Instalacja OpenNI 2 + NiTE 2 z prokonfigurowanych binarek dla Ubuntu 14.04 (działa także na Ubuntu 14.10 i 15.10):&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install freeglut3 python-opencv libboost-all-dev&lt;br /&gt;
 cd ~&lt;br /&gt;
 wget http://static.mroja.net/kinect/kinect.7z&lt;br /&gt;
 7z x kinect.7z&lt;br /&gt;
 cd ~/kinect&lt;br /&gt;
 sudo cp primesense-and-kinect-usb.rules /etc/udev/rules.d/557-primesense-usb.rules&lt;br /&gt;
 export LD_LIBRARY_PATH=/home/{USER_NAME}/kinect/Redist (to najlepiej wrzucić do .profile)&lt;br /&gt;
 cd Redist&lt;br /&gt;
 ./NiViewer&lt;br /&gt;
&lt;br /&gt;
sprawdzić czy user należy do grupy plugdev:&lt;br /&gt;
-- jak nie, dodać: &lt;br /&gt;
 sudo usermod -G plugdev -a USER_NAME&lt;br /&gt;
&lt;br /&gt;
wrapper+obci&lt;br /&gt;
&lt;br /&gt;
nite2.so należy zbudować z repo https://github.com/BrainTech/nite2-bindings i umieścić w /usr/lib/python2.7/dist-packages&lt;br /&gt;
Skopiuj katalog NiTE2 (/home/USER_NAME/kinect/Redist/NiTE2) do katalogu ~/.obci/sandbox&lt;br /&gt;
&lt;br /&gt;
na koncie lab&lt;br /&gt;
&lt;br /&gt;
 cd ~/kinect/Redist&lt;br /&gt;
 cp /path_to_file/nite2.so nite2.so&lt;br /&gt;
&lt;br /&gt;
 cp -r /home/lab/kinect/Redist/NiTE2/ ~/.obci/sandbox/&lt;br /&gt;
 sudo cp nite2.so /usr/lib/python2.7/dist-packages&lt;br /&gt;
&lt;br /&gt;
na koncie newtech&lt;br /&gt;
&lt;br /&gt;
 cd ~/kinect/Redist&lt;br /&gt;
 cp /path_to_file/nite2.so nite2.so&lt;br /&gt;
&lt;br /&gt;
 mkdir /home/newtech/.obci/  # jeśli katalog istnieje to pominąć&lt;br /&gt;
 mkdir /home/newtech/.obci/sandbox  # j.w.&lt;br /&gt;
&lt;br /&gt;
 cp -r /home/newtech/kinect/Redist/NiTE2/ ~/.obci/sandbox/&lt;br /&gt;
&lt;br /&gt;
== Instalacja xwiimote ==&lt;br /&gt;
&lt;br /&gt;
WARNING!!! DO NOT install official Debian sid xwiimote package from - it contains very old sources, use latest version from git.&lt;br /&gt;
&lt;br /&gt;
kernel &amp;gt;= 3.5+&lt;br /&gt;
bluez &amp;gt;= 5.11+&lt;br /&gt;
&lt;br /&gt;
0) sudo apt-get install autoconf autogen automake gcc bluetooth ncurses-dev libudev-dev libtool git blueman python-dev dh-autoreconf pkg-config swig&lt;br /&gt;
&lt;br /&gt;
A) xwiimote driver &amp;amp; utils&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/BrainTech/xwiimote&lt;br /&gt;
 cd xwiimote&lt;br /&gt;
 ./autogen.sh&lt;br /&gt;
 make&lt;br /&gt;
 sudo make install&lt;br /&gt;
 sudo ldconfig&lt;br /&gt;
&lt;br /&gt;
B) Python bindings&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/BrainTech/xwiimote-bindings&lt;br /&gt;
 cd xwiimote-bindings&lt;br /&gt;
 ./autogen.sh&lt;br /&gt;
 make&lt;br /&gt;
 sudo make install&lt;br /&gt;
 sudo ldconfig&lt;br /&gt;
&lt;br /&gt;
C) Żeby działało bez sudo dla userów lab i newtech&lt;br /&gt;
&lt;br /&gt;
 sudo usermod -a -G input newtech&lt;br /&gt;
 sudo usermod -a -G input lab&lt;br /&gt;
&lt;br /&gt;
D) Sparować urządzenie z użyciem wbudowanego do Ubuntu panelu Bluetooth&lt;br /&gt;
&lt;br /&gt;
E) Demo&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/irq0/wiiscale.git&lt;br /&gt;
 cd wiiscale&lt;br /&gt;
&lt;br /&gt;
 uncomment line 134 and 135:&lt;br /&gt;
 134: #        for m in measurements(iface):&lt;br /&gt;
 135: #            print_bboard_measurements(*m)&lt;br /&gt;
&lt;br /&gt;
== python ./scale.py ==&lt;br /&gt;
&lt;br /&gt;
Tobii REX eyetracker&lt;br /&gt;
&lt;br /&gt;
* zainstalować pakiet deb dla 64bit Linuxa z http://developer.tobii.com/rex-setup-gaze-sdk/&lt;br /&gt;
* poprosić Aleksa o kopię SDK&lt;br /&gt;
* cd Samples &amp;amp;&amp;amp; make &amp;amp;&amp;amp; ./tracker - demo&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Stara wersja instrukcji ==&lt;br /&gt;
&lt;br /&gt;
Instalacja OpenNI2&lt;br /&gt;
&lt;br /&gt;
wymagania&lt;br /&gt;
sudo apt-get install git-core g++ cmake libudev-dev libxi-dev libxmu-dev python libusb-1.0-0-dev libudev-dev freeglut3-dev doxygen graphviz&lt;br /&gt;
&lt;br /&gt;
sudo add-apt-repository ppa:webupd8team/java&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get install oracle-java8-installer&lt;br /&gt;
&lt;br /&gt;
git clone https://github.com/occipital/OpenNI2.git&lt;br /&gt;
cd OpenNI2&lt;br /&gt;
#Save path for further reference&lt;br /&gt;
OPENNI_DIR=&amp;quot;${PWD}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
sed -i '/-Werror/ s/^/#/' ${OPENNI_DIR}/ThirdParty/PSCommon/BuildSystem/CommonCppMakefile&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;LDFLAGS += -lpthread&amp;quot; &amp;gt;&amp;gt; ${OPENNI_DIR}/Source/Tools/NiViewer/Makefile&lt;br /&gt;
make&lt;br /&gt;
sudo ${OPENNI_DIR}/Packaging/Linux/install.sh&lt;br /&gt;
sudo gpasswd -a ${USER} video&lt;br /&gt;
&lt;br /&gt;
LUB (preferowana opcja):&lt;br /&gt;
pobrać binarny pakiet ze strony http://structure.io/openni&lt;br /&gt;
wypakować do katalogu np. OpenNI-Linux-x64-2.2&lt;br /&gt;
$ cd OpenNI-Linux-x64-2.2&lt;br /&gt;
$ sudo ./install.sh&lt;br /&gt;
w aktualnym katalogu utworzy się skrypt “OpenNIDevEnvironment”, który ustawia środowisko dev&lt;br /&gt;
&lt;br /&gt;
Instalacja libfreenect&lt;br /&gt;
&lt;br /&gt;
git clone https://github.com/OpenKinect/libfreenect.git&lt;br /&gt;
cd libfreenect&lt;br /&gt;
mkdir build; cd build&lt;br /&gt;
cmake .. -DBUILD_OPENNI2_DRIVER=ON&lt;br /&gt;
make -j4&lt;br /&gt;
cp -L lib/OpenNI2-FreenectDriver/libFreenectDriver.so ${OPENNI_DIR}/Bin/x64-Release/OpenNI2/Drivers/&lt;br /&gt;
&lt;br /&gt;
Test&lt;br /&gt;
cd ${OPENNI_DIR}/Bin/x64-Release/&lt;br /&gt;
./NiViewer&lt;br /&gt;
&lt;br /&gt;
Instalacja biblioteki NiTE2 &lt;br /&gt;
&lt;br /&gt;
http://ilab.usc.edu/packages/forall/ubuntu-13.10/NiTE-Linux-x64-2.2.tar.bz2&lt;br /&gt;
cd NiTE-Linux-x64-2.2&lt;br /&gt;
sudo ./install.sh&lt;br /&gt;
&lt;br /&gt;
cp -L /usr/local/lib/OpenNI2-FreenectDriver/libFreenectDriver.so NiTE-Linux-x64-2.2/Samples/Bin/OpenNI2/Drivers/&lt;/div&gt;</summary>
		<author><name>Alex</name></author>
		
	</entry>
	<entry>
		<id>http://brain.fuw.edu.pl/edu/index.php?title=Instalacja_i_konfiguracja_Kinect,_Wiimote_i_Eyetrackera&amp;diff=4941</id>
		<title>Instalacja i konfiguracja Kinect, Wiimote i Eyetrackera</title>
		<link rel="alternate" type="text/html" href="http://brain.fuw.edu.pl/edu/index.php?title=Instalacja_i_konfiguracja_Kinect,_Wiimote_i_Eyetrackera&amp;diff=4941"/>
		<updated>2016-03-17T21:50:09Z</updated>

		<summary type="html">&lt;p&gt;Alex: /* Kinect + OpenNI2 + NiTE2 + freenect */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Kinect + OpenNI2 + NiTE2 + freenect ==&lt;br /&gt;
&lt;br /&gt;
Instalacja OpenNI 2 + NiTE 2 z prokonfigurowanych binarek dla Ubuntu 14.04 (działa także na Ubuntu 14.10 i 15.10):&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install freeglut3 python-opencv libboost-all-dev&lt;br /&gt;
 cd ~&lt;br /&gt;
 wget http://static.mroja.net/kinect/kinect.7z&lt;br /&gt;
 7z x kinect.7z&lt;br /&gt;
 cd ~/kinect&lt;br /&gt;
 sudo cp primesense-and-kinect-usb.rules /etc/udev/rules.d/557-primesense-usb.rules&lt;br /&gt;
 export LD_LIBRARY_PATH=/home/{USER_NAME}/kinect/Redist (to najlepiej wrzucić do .profile)&lt;br /&gt;
 cd Redist&lt;br /&gt;
 ./NiViewer&lt;br /&gt;
&lt;br /&gt;
sprawdzić czy user należy do grupy plugdev:&lt;br /&gt;
-- jak nie, dodać: &lt;br /&gt;
 sudo usermod -G plugdev -a USER_NAME&lt;br /&gt;
&lt;br /&gt;
wrapper+obci&lt;br /&gt;
&lt;br /&gt;
nite2.so należy zbudować z repo https://github.com/BrainTech/nite2-bindings i umieścić w /usr/lib/python2.7/dist-packages&lt;br /&gt;
Skopiuj katalog NiTE2 (/home/USER_NAME/kinect/Redist/NiTE2) do katalogu ~/.obci/sandbox&lt;br /&gt;
&lt;br /&gt;
na koncie lab&lt;br /&gt;
&lt;br /&gt;
 cd ~/kinect/Redist&lt;br /&gt;
 cp /path_to_file/nite2.so nite2.so&lt;br /&gt;
&lt;br /&gt;
 cp -r /home/lab/kinect/Redist/NiTE2/ ~/.obci/sandbox/&lt;br /&gt;
 sudo cp nite2.so /usr/lib/python2.7/dist-packages&lt;br /&gt;
&lt;br /&gt;
na koncie newtech&lt;br /&gt;
&lt;br /&gt;
 cd ~/kinect/Redist&lt;br /&gt;
 cp /path_to_file/nite2.so nite2.so&lt;br /&gt;
&lt;br /&gt;
 mkdir /home/newtech/.obci/  # jeśli katalog istnieje to pominąć&lt;br /&gt;
 mkdir /home/newtech/.obci/sandbox  # j.w.&lt;br /&gt;
&lt;br /&gt;
 cp -r /home/newtech/kinect/Redist/NiTE2/ ~/.obci/sandbox/&lt;br /&gt;
&lt;br /&gt;
== Instalacja xwiimote-bindings ==&lt;br /&gt;
&lt;br /&gt;
WARNING!!! DO NOT install official Debian sid xwiimote package from - it contains very old sources, use latest version from git.&lt;br /&gt;
&lt;br /&gt;
kernel &amp;gt;= 3.5+&lt;br /&gt;
bluez &amp;gt;= 5.11+&lt;br /&gt;
&lt;br /&gt;
0) sudo apt-get install autoconf autogen automake gcc bluetooth ncurses-dev libudev-dev libtool git blueman python-dev dh-autoreconf pkg-config swig&lt;br /&gt;
A) xwiimote driver &amp;amp; utils&lt;br /&gt;
git clone https://github.com/BrainTech/xwiimote&lt;br /&gt;
cd xwiimote&lt;br /&gt;
./autogen.sh&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
sudo ldconfig&lt;br /&gt;
B) Python bindings&lt;br /&gt;
git clone https://github.com/BrainTech/xwiimote-bindings&lt;br /&gt;
cd xwiimote-bindings&lt;br /&gt;
./autogen.sh&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
sudo ldconfig&lt;br /&gt;
&lt;br /&gt;
C) Żeby działało bez sudo dla userów lab i newtech&lt;br /&gt;
&lt;br /&gt;
sudo usermod -a -G input newtech&lt;br /&gt;
sudo usermod -a -G input lab&lt;br /&gt;
D) Sparować urządzenie z użyciem wbudowanego do Ubuntu panelu Bluetooth&lt;br /&gt;
&lt;br /&gt;
E) Demo&lt;br /&gt;
&lt;br /&gt;
git clone https://github.com/irq0/wiiscale.git&lt;br /&gt;
cd wiiscale&lt;br /&gt;
&lt;br /&gt;
uncomment line 134 and 135:&lt;br /&gt;
134: #        for m in measurements(iface):&lt;br /&gt;
135: #            print_bboard_measurements(*m)&lt;br /&gt;
&lt;br /&gt;
== python ./scale.py ==&lt;br /&gt;
&lt;br /&gt;
Tobii REX eyetracker&lt;br /&gt;
&lt;br /&gt;
* zainstalować pakiet deb dla 64bit Linuxa z http://developer.tobii.com/rex-setup-gaze-sdk/&lt;br /&gt;
* poprosić Aleksa o kopię SDK&lt;br /&gt;
* cd Samples &amp;amp;&amp;amp; make &amp;amp;&amp;amp; ./tracker - demo&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Stara wersja instrukcji ==&lt;br /&gt;
&lt;br /&gt;
Instalacja OpenNI2&lt;br /&gt;
&lt;br /&gt;
wymagania&lt;br /&gt;
sudo apt-get install git-core g++ cmake libudev-dev libxi-dev libxmu-dev python libusb-1.0-0-dev libudev-dev freeglut3-dev doxygen graphviz&lt;br /&gt;
&lt;br /&gt;
sudo add-apt-repository ppa:webupd8team/java&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get install oracle-java8-installer&lt;br /&gt;
&lt;br /&gt;
git clone https://github.com/occipital/OpenNI2.git&lt;br /&gt;
cd OpenNI2&lt;br /&gt;
#Save path for further reference&lt;br /&gt;
OPENNI_DIR=&amp;quot;${PWD}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
sed -i '/-Werror/ s/^/#/' ${OPENNI_DIR}/ThirdParty/PSCommon/BuildSystem/CommonCppMakefile&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;LDFLAGS += -lpthread&amp;quot; &amp;gt;&amp;gt; ${OPENNI_DIR}/Source/Tools/NiViewer/Makefile&lt;br /&gt;
make&lt;br /&gt;
sudo ${OPENNI_DIR}/Packaging/Linux/install.sh&lt;br /&gt;
sudo gpasswd -a ${USER} video&lt;br /&gt;
&lt;br /&gt;
LUB (preferowana opcja):&lt;br /&gt;
pobrać binarny pakiet ze strony http://structure.io/openni&lt;br /&gt;
wypakować do katalogu np. OpenNI-Linux-x64-2.2&lt;br /&gt;
$ cd OpenNI-Linux-x64-2.2&lt;br /&gt;
$ sudo ./install.sh&lt;br /&gt;
w aktualnym katalogu utworzy się skrypt “OpenNIDevEnvironment”, który ustawia środowisko dev&lt;br /&gt;
&lt;br /&gt;
Instalacja libfreenect&lt;br /&gt;
&lt;br /&gt;
git clone https://github.com/OpenKinect/libfreenect.git&lt;br /&gt;
cd libfreenect&lt;br /&gt;
mkdir build; cd build&lt;br /&gt;
cmake .. -DBUILD_OPENNI2_DRIVER=ON&lt;br /&gt;
make -j4&lt;br /&gt;
cp -L lib/OpenNI2-FreenectDriver/libFreenectDriver.so ${OPENNI_DIR}/Bin/x64-Release/OpenNI2/Drivers/&lt;br /&gt;
&lt;br /&gt;
Test&lt;br /&gt;
cd ${OPENNI_DIR}/Bin/x64-Release/&lt;br /&gt;
./NiViewer&lt;br /&gt;
&lt;br /&gt;
Instalacja biblioteki NiTE2 &lt;br /&gt;
&lt;br /&gt;
http://ilab.usc.edu/packages/forall/ubuntu-13.10/NiTE-Linux-x64-2.2.tar.bz2&lt;br /&gt;
cd NiTE-Linux-x64-2.2&lt;br /&gt;
sudo ./install.sh&lt;br /&gt;
&lt;br /&gt;
cp -L /usr/local/lib/OpenNI2-FreenectDriver/libFreenectDriver.so NiTE-Linux-x64-2.2/Samples/Bin/OpenNI2/Drivers/&lt;/div&gt;</summary>
		<author><name>Alex</name></author>
		
	</entry>
	<entry>
		<id>http://brain.fuw.edu.pl/edu/index.php?title=Instalacja_i_konfiguracja_Kinect,_Wiimote_i_Eyetrackera&amp;diff=4902</id>
		<title>Instalacja i konfiguracja Kinect, Wiimote i Eyetrackera</title>
		<link rel="alternate" type="text/html" href="http://brain.fuw.edu.pl/edu/index.php?title=Instalacja_i_konfiguracja_Kinect,_Wiimote_i_Eyetrackera&amp;diff=4902"/>
		<updated>2016-03-17T13:14:40Z</updated>

		<summary type="html">&lt;p&gt;Alex: Utworzono nową stronę &amp;quot; == Kinect + OpenNI2 + NiTE2 + freenect ==  Instalacja OpenNI 2 + NiTE 2 z prokonfigurowanych binarek dla Ubuntu 14.04 (działa także na Ubuntu 14.10 i 15.10):  sudo ap...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Kinect + OpenNI2 + NiTE2 + freenect ==&lt;br /&gt;
&lt;br /&gt;
Instalacja OpenNI 2 + NiTE 2 z prokonfigurowanych binarek dla Ubuntu 14.04 (działa także na Ubuntu 14.10 i 15.10):&lt;br /&gt;
&lt;br /&gt;
sudo apt-get install freeglut3 python-opencv libboost-all-dev&lt;br /&gt;
cd ~&lt;br /&gt;
wget http://static.mroja.net/kinect/kinect.7z&lt;br /&gt;
7z x kinect.7z&lt;br /&gt;
cd ~/kinect&lt;br /&gt;
sudo cp primesense-and-kinect-usb.rules /etc/udev/rules.d/557-primesense-usb.rules&lt;br /&gt;
export LD_LIBRARY_PATH=/home/{USER_NAME}/kinect/Redist (to najlepiej wrzucić do .profile)&lt;br /&gt;
cd Redist&lt;br /&gt;
./NiViewer&lt;br /&gt;
&lt;br /&gt;
sprawdzić czy user należy do grupy plugdev:&lt;br /&gt;
-- jak nie, dodać: &lt;br /&gt;
&lt;br /&gt;
sudo usermod -G plugdev -a USER_NAME&lt;br /&gt;
&lt;br /&gt;
wrapper+obci&lt;br /&gt;
&lt;br /&gt;
nite2.so należy zbudować z repo https://github.com/BrainTech/nite2-bindings i umieścić w /usr/lib/python2.7/dist-packages&lt;br /&gt;
Skopiuj katalog NiTE2 (/home/USER_NAME/kinect/Redist/NiTE2) do katalogu ~/.obci/sandbox&lt;br /&gt;
&lt;br /&gt;
na koncie lab&lt;br /&gt;
&lt;br /&gt;
cd ~/kinect/Redist&lt;br /&gt;
cp /path_to_file/nite2.so nite2.so&lt;br /&gt;
&lt;br /&gt;
cp -r /home/lab/kinect/Redist/NiTE2/ ~/.obci/sandbox/&lt;br /&gt;
sudo cp nite2.so /usr/lib/python2.7/dist-packages&lt;br /&gt;
&lt;br /&gt;
na koncie newtech&lt;br /&gt;
&lt;br /&gt;
cd ~/kinect/Redist&lt;br /&gt;
cp /path_to_file/nite2.so nite2.so&lt;br /&gt;
&lt;br /&gt;
mkdir /home/newtech/.obci/  # jeśli katalog istnieje to pominąć&lt;br /&gt;
mkdir /home/newtech/.obci/sandbox  # j.w.&lt;br /&gt;
&lt;br /&gt;
cp -r /home/newtech/kinect/Redist/NiTE2/ ~/.obci/sandbox/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Instalacja xwiimote-bindings ==&lt;br /&gt;
&lt;br /&gt;
WARNING!!! DO NOT install official Debian sid xwiimote package from - it contains very old sources, use latest version from git.&lt;br /&gt;
&lt;br /&gt;
kernel &amp;gt;= 3.5+&lt;br /&gt;
bluez &amp;gt;= 5.11+&lt;br /&gt;
&lt;br /&gt;
0) sudo apt-get install autoconf autogen automake gcc bluetooth ncurses-dev libudev-dev libtool git blueman python-dev dh-autoreconf pkg-config swig&lt;br /&gt;
A) xwiimote driver &amp;amp; utils&lt;br /&gt;
git clone https://github.com/BrainTech/xwiimote&lt;br /&gt;
cd xwiimote&lt;br /&gt;
./autogen.sh&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
sudo ldconfig&lt;br /&gt;
B) Python bindings&lt;br /&gt;
git clone https://github.com/BrainTech/xwiimote-bindings&lt;br /&gt;
cd xwiimote-bindings&lt;br /&gt;
./autogen.sh&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
sudo ldconfig&lt;br /&gt;
&lt;br /&gt;
C) Żeby działało bez sudo dla userów lab i newtech&lt;br /&gt;
&lt;br /&gt;
sudo usermod -a -G input newtech&lt;br /&gt;
sudo usermod -a -G input lab&lt;br /&gt;
D) Sparować urządzenie z użyciem wbudowanego do Ubuntu panelu Bluetooth&lt;br /&gt;
&lt;br /&gt;
E) Demo&lt;br /&gt;
&lt;br /&gt;
git clone https://github.com/irq0/wiiscale.git&lt;br /&gt;
cd wiiscale&lt;br /&gt;
&lt;br /&gt;
uncomment line 134 and 135:&lt;br /&gt;
134: #        for m in measurements(iface):&lt;br /&gt;
135: #            print_bboard_measurements(*m)&lt;br /&gt;
&lt;br /&gt;
== python ./scale.py ==&lt;br /&gt;
&lt;br /&gt;
Tobii REX eyetracker&lt;br /&gt;
&lt;br /&gt;
* zainstalować pakiet deb dla 64bit Linuxa z http://developer.tobii.com/rex-setup-gaze-sdk/&lt;br /&gt;
* poprosić Aleksa o kopię SDK&lt;br /&gt;
* cd Samples &amp;amp;&amp;amp; make &amp;amp;&amp;amp; ./tracker - demo&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Stara wersja instrukcji ==&lt;br /&gt;
&lt;br /&gt;
Instalacja OpenNI2&lt;br /&gt;
&lt;br /&gt;
wymagania&lt;br /&gt;
sudo apt-get install git-core g++ cmake libudev-dev libxi-dev libxmu-dev python libusb-1.0-0-dev libudev-dev freeglut3-dev doxygen graphviz&lt;br /&gt;
&lt;br /&gt;
sudo add-apt-repository ppa:webupd8team/java&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get install oracle-java8-installer&lt;br /&gt;
&lt;br /&gt;
git clone https://github.com/occipital/OpenNI2.git&lt;br /&gt;
cd OpenNI2&lt;br /&gt;
#Save path for further reference&lt;br /&gt;
OPENNI_DIR=&amp;quot;${PWD}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
sed -i '/-Werror/ s/^/#/' ${OPENNI_DIR}/ThirdParty/PSCommon/BuildSystem/CommonCppMakefile&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;LDFLAGS += -lpthread&amp;quot; &amp;gt;&amp;gt; ${OPENNI_DIR}/Source/Tools/NiViewer/Makefile&lt;br /&gt;
make&lt;br /&gt;
sudo ${OPENNI_DIR}/Packaging/Linux/install.sh&lt;br /&gt;
sudo gpasswd -a ${USER} video&lt;br /&gt;
&lt;br /&gt;
LUB (preferowana opcja):&lt;br /&gt;
pobrać binarny pakiet ze strony http://structure.io/openni&lt;br /&gt;
wypakować do katalogu np. OpenNI-Linux-x64-2.2&lt;br /&gt;
$ cd OpenNI-Linux-x64-2.2&lt;br /&gt;
$ sudo ./install.sh&lt;br /&gt;
w aktualnym katalogu utworzy się skrypt “OpenNIDevEnvironment”, który ustawia środowisko dev&lt;br /&gt;
&lt;br /&gt;
Instalacja libfreenect&lt;br /&gt;
&lt;br /&gt;
git clone https://github.com/OpenKinect/libfreenect.git&lt;br /&gt;
cd libfreenect&lt;br /&gt;
mkdir build; cd build&lt;br /&gt;
cmake .. -DBUILD_OPENNI2_DRIVER=ON&lt;br /&gt;
make -j4&lt;br /&gt;
cp -L lib/OpenNI2-FreenectDriver/libFreenectDriver.so ${OPENNI_DIR}/Bin/x64-Release/OpenNI2/Drivers/&lt;br /&gt;
&lt;br /&gt;
Test&lt;br /&gt;
cd ${OPENNI_DIR}/Bin/x64-Release/&lt;br /&gt;
./NiViewer&lt;br /&gt;
&lt;br /&gt;
Instalacja biblioteki NiTE2 &lt;br /&gt;
&lt;br /&gt;
http://ilab.usc.edu/packages/forall/ubuntu-13.10/NiTE-Linux-x64-2.2.tar.bz2&lt;br /&gt;
cd NiTE-Linux-x64-2.2&lt;br /&gt;
sudo ./install.sh&lt;br /&gt;
&lt;br /&gt;
cp -L /usr/local/lib/OpenNI2-FreenectDriver/libFreenectDriver.so NiTE-Linux-x64-2.2/Samples/Bin/OpenNI2/Drivers/&lt;/div&gt;</summary>
		<author><name>Alex</name></author>
		
	</entry>
	<entry>
		<id>http://brain.fuw.edu.pl/edu/index.php?title=Strona_g%C5%82%C3%B3wna&amp;diff=4901</id>
		<title>Strona główna</title>
		<link rel="alternate" type="text/html" href="http://brain.fuw.edu.pl/edu/index.php?title=Strona_g%C5%82%C3%B3wna&amp;diff=4901"/>
		<updated>2016-03-17T12:03:35Z</updated>

		<summary type="html">&lt;p&gt;Alex: /* Strony dodatkowe */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Materiały dydaktycznie dla studentów kierunku [http://fizykaxxi.fuw.edu.pl/zastosowania-fizyki-w-biologii-i-medycynie/Zastosowania Fizyki w Biologii i Medycynie]==&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Informatyka:&amp;lt;/b&amp;gt; [[Plik:Pętla_while.svg|175px|right]]&lt;br /&gt;
** Technologia Informacyjna:&lt;br /&gt;
*** Wykład    [[&amp;quot;Technologia informacyjna&amp;quot;]] &lt;br /&gt;
*** Wykład [[Slajdy z wykładów dla optyki okularowej z roku 2015|&amp;quot;Technologie cyfrowe&amp;quot;]] (dla specjalności Optyka Okularowa)&lt;br /&gt;
*** Ćwiczenia [[&amp;quot;Programowanie z Pythonem&amp;quot;]] (dla studentów Wydziału Fizyki)&lt;br /&gt;
*** Ćwiczenia [[dla studentów Wydziału Biologii|&amp;quot;Technologia informacyjna&amp;quot;]] (dla studentów Wydziału Biologii)&lt;br /&gt;
** Programowanie dla Neuroinformatyków:&lt;br /&gt;
*** Ćwiczenia [[&amp;quot;Programowanie dla Neuroinformatyków&amp;quot;]]&lt;br /&gt;
** Programowanie dla Fizyków Medycznych:&lt;br /&gt;
*** Ćwiczenia [[&amp;quot;Programowanie dla Fizyków Medycznych&amp;quot;]]&lt;br /&gt;
** Bazy danych:&lt;br /&gt;
*** Wykład    [[TI:WTBD|&amp;quot;Wstęp do technologii baz danych&amp;quot;]]&lt;br /&gt;
*** Ćwiczenia [[TI:WTBD|&amp;quot;Wstęp do technologii baz danych&amp;quot;]]&lt;br /&gt;
** [[TI/Pracownia wykorzystania zasobów internetowych|Pracownia wykorzystania zasobów internetowych]]&lt;br /&gt;
* &amp;lt;b&amp;gt;Matematyka:&amp;lt;/b&amp;gt;&lt;br /&gt;
** Matematyka I: &amp;lt;!---[[Plik:Venn_A_subset_B.svg|50px|right]]--&amp;gt;&lt;br /&gt;
*** Wykład    [[Matematyka I - FMiN lecture|Matematyka I]] (dla specjalności Fizyka Medyczna i Neuroinformatyka)&lt;br /&gt;
*** Ćwiczenia [[Matematyka I - FMiN exercises|Matematyka I]] (dla specjalności Fizyka Medyczna i Neuroinformatyka)&lt;br /&gt;
*** Ćwiczenia [[Matematyka I - OO exercises|Matematyka I]] (dla specjalności Optyka Okularowa)&lt;br /&gt;
** Matematyka II: [[Plik:main_math.png|175px|right]]&lt;br /&gt;
*** Wykład    [[Matematyka II - FMiN lecture|Matematyka II]] (dla specjalności Fizyka Medyczna i Neuroinformatyka)&lt;br /&gt;
*** Ćwiczenia [[Matematyka II - FMiN exercises|Matematyka II]] (dla specjalności Fizyka Medyczna i Neuroinformatyka)&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Fizyka:&amp;lt;/b&amp;gt;&lt;br /&gt;
** Fizyka I:&lt;br /&gt;
*** Wykład [[Fizyka I - FMiN lecture|Fizyka I]] - Mechanika (dla specjalności Fizyka Medyczna i Neuroinformatyka)&lt;br /&gt;
*** Wykład [[Fizyka I - OO lecture|Fizyka I]] - Mechanika (dla specjalności Optyka Okularowa)&lt;br /&gt;
*** Ćwiczenia [[Fizyka I - FMiN exercises|Fizyka I]] - Mechanika (dla specjalności Fizyka Medyczna i Neuroinformatyka)&lt;br /&gt;
** Fizyka II: [[Plik:main_phys.png|220px|right]]&lt;br /&gt;
*** Wykład [[Fizyka II - OO lecture|Fizyka II]] - Elektrostatyka (dla specjalności Optyka Okularowa)&lt;br /&gt;
*** Wykład [[Fizyka II - NI lecture|Fizyka II]] - Elektrostatyka (dla specjalności Fizyka Medyczna i Neuroinformatyka)&lt;br /&gt;
*** Ćwiczenia [[Fizyka II - FMiN exercises|Fizyka II]] - Elektrostatyka (dla specjalności Fizyka Medyczna i Neuroinformatyka)&lt;br /&gt;
*** Ćwiczenia [[Fizyka II - OO exercises|Fizyka II]] - Elektrostatyka (dla specjalności Optyka Okularowa)&lt;br /&gt;
** Fizyka III:&lt;br /&gt;
*** Wykład [[Fizyka III - FMiN lecture|Fizyka III]] - Drgania i Fale (dla specjalności Fizyka Medyczna i Neuroinformatyka)&lt;br /&gt;
*** Ćwiczenia [[Fizyka III - FMiN exercises|Fizyka III]] - Drgania i Fale (dla specjalności Fizyka Medyczna i Neuroinformatyka)&lt;br /&gt;
** Elektrodynamika:&lt;br /&gt;
*** Ćwiczenia [[Ćwiczenia z elektrodynamiki dla neuroinformatyków|Elektrodynamika]] (dla specjalności Neuroinformatyka)&lt;br /&gt;
** Ćwiczenia [[Fizyka Promieniowania Jądrowego]]&lt;br /&gt;
** Ćwiczenia [[Fizyka atomów oraz cząstek i makrocząstek biologicznych]]&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Chemia:&amp;lt;/b&amp;gt;&lt;br /&gt;
** Wykład [[Podstawy chemii z elementami biochemii]]&lt;br /&gt;
** Wykład [[Chemia ogólna - lecture|Chemia ogólna]] &lt;br /&gt;
** Pracownia [[Chemia ogólna - workshop|Chemia ogólna]]&lt;br /&gt;
** Wykład [[Chemia organiczna]]&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Biologia:&amp;lt;/b&amp;gt; [[Plik:main_biol.jpg|220px|right]]&lt;br /&gt;
** Wykład [[Biologia komórki]] &lt;br /&gt;
** Wykład [[Histologia]]&lt;br /&gt;
** Pracownia [[Biologia molekularna]]&lt;br /&gt;
** Wykład [[Metody Biofizyki Molekularnej - lecture|Metody Biofizyki Molekularnej]]&lt;br /&gt;
** Ćwiczenia [[Metody Biofizyki Molekularnej - exercises|Metody Biofizyki Molekularnej]]&lt;br /&gt;
** Pracownia [[Podstawy Biofizyki]]&lt;br /&gt;
** Pracownia [[Pracownia Biofizyki dla Zaawansowanych]]&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Przedmioty specjalizacyjne:&amp;lt;/b&amp;gt;&lt;br /&gt;
** Wykład [[Obrazowanie Medyczne]]&lt;br /&gt;
** Wykład [[Metody fizyczne w biologii i medycynie]]&lt;br /&gt;
** Wykład [[Ochrona radiologiczna]]&lt;br /&gt;
** Wykład [[Ochrona radilogiczna 2]]&lt;br /&gt;
** Wykład [[Sygnały Bioelektryczne]]&lt;br /&gt;
** Wykład [[Elektroencefalografia]]&lt;br /&gt;
** Wykład [[Wnioskowanie Statystyczne - lecture|Wnioskowanie Statystyczne]] [[Plik:main_eeg2.png|220px|right]]&lt;br /&gt;
*** Ćwiczenia [[Wnioskowanie Statystyczne - exercises|Wnioskowanie Statystyczne]]&lt;br /&gt;
** Wykład [[Analiza sygnałów - lecture|Analiza sygnałów]]&lt;br /&gt;
*** Ćwiczenia [[Analiza sygnałów - exercises|Analiza sygnałów]]&lt;br /&gt;
** Wykład [[Uczenie maszynowe i sztuczne sieci neuronowe]]&lt;br /&gt;
*** Ćwiczenia [[Uczenie maszynowe i sztuczne sieci neuronowe_cw|Uczenie maszynowe i sztuczne sieci neuronowe]]&lt;br /&gt;
** Warsztaty [[Metody diagnostyczne]]&lt;br /&gt;
** Warsztaty [[Modelowanie molekularne 2]]&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Pracownie specjalistyczne:&amp;lt;/b&amp;gt; [[Plik:main_eeg1.jpg|220px|right]]&lt;br /&gt;
**[[Pracownia Sygnałów Bioelektrycznych]] (dla specjalności Neuroinformatyka)&lt;br /&gt;
**[[Pracownia EEG|Pracownia EEG]] (dla specjalności Neuroinformatyka)&lt;br /&gt;
**[[Laboratorium EEG|Laboratorium EEG]] (dla specjalności Neuroinformatyka)&lt;br /&gt;
**[[Nowe technologie w fizyce biomedycznej]] (dla specjalności Fizyka Medyczna i Neuroinformatyka)&lt;br /&gt;
**[[Pracownia podstaw biofizyki]] (dla specjalności Fizyka Medyczna)&lt;br /&gt;
**[[Pracownia biofizyki dla zaawansowanych]] (dla specjalności Fizyka Medyczna)&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Inne:&amp;lt;/b&amp;gt; [[Plik:Bookstack.svg|130px|right]]&lt;br /&gt;
** Wykład [[&amp;quot;Własność intelektualna i ochrona danych osobowych&amp;quot;]]&lt;br /&gt;
** Pracownia [[&amp;quot;Wykorzystanie zasobów internetowych&amp;quot;]]&lt;br /&gt;
** Proseminarium [[Proseminarium licencjackie|licencjackie]]&lt;br /&gt;
&lt;br /&gt;
==Strony dodatkowe==&lt;br /&gt;
* [[dokumentacja OBCI]]&lt;br /&gt;
* [[Instalacja i konfiguracja Kinect, Wiimote i Eyetrackera]]&lt;br /&gt;
* Strona [http://www.fuw.edu.pl/biblioteki.html Biblioteki Wydziału Fizyki]&lt;br /&gt;
* Pracownia [[Pracownia Pokazów Wykładowych|Pokazów Wykładowych]]&lt;br /&gt;
* [[Tematy prac licencjackich]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
* AI, czyli [http://shanghailectures.org/lectures Sztuczna Inteligencja]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
*[[dokumentacja SVAROG]]&lt;/div&gt;</summary>
		<author><name>Alex</name></author>
		
	</entry>
</feed>