<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://airwiki.deib.polimi.it/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=AndreaSalvi</id>
		<title>AIRWiki - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="https://airwiki.deib.polimi.it/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=AndreaSalvi"/>
		<link rel="alternate" type="text/html" href="https://airwiki.deib.polimi.it/index.php/Special:Contributions/AndreaSalvi"/>
		<updated>2026-04-12T17:23:16Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.25.6</generator>

	<entry>
		<id>https://airwiki.deib.polimi.it/index.php?title=Cross-compiling_for_the_RaspberryPi&amp;diff=16364</id>
		<title>Cross-compiling for the RaspberryPi</title>
		<link rel="alternate" type="text/html" href="https://airwiki.deib.polimi.it/index.php?title=Cross-compiling_for_the_RaspberryPi&amp;diff=16364"/>
				<updated>2013-05-25T15:47:15Z</updated>
		
		<summary type="html">&lt;p&gt;AndreaSalvi: Prerequisites: added a missing library for Debian.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page will guide you to setup a complete cross-compiling environment for the [http://raspberrypi.org RaspberryPi] board. This procedure is tailored for and tested on Ubuntu 12.10, but it can be easily adapted for the use on other distributions.&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
* Install all the required software packages:&lt;br /&gt;
 &amp;lt;code&amp;gt;sudo apt-get install git rsync cmake&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''If you are using a 64-bit version of Ubuntu''', also install the 32-bit compatibility libraries:&lt;br /&gt;
 &amp;lt;code&amp;gt;sudo apt-get install ia32-libs&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''If you are using a 64-bit version of Debian''', the ia32-libs metapackage is no longer installable. Execute instead&lt;br /&gt;
  &amp;lt;code&amp;gt;su -&lt;br /&gt;
  dpkg --add-architecture i386&lt;br /&gt;
  apt-get update &amp;amp;&amp;amp; apt-get install libc6-i386 lib32stdc++6 zlib1g:i386&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* The guide will take for granted that you are using the official Raspbian OS image, downloadable from the RaspberryPi website. &lt;br /&gt;
* Moreover, you will need a working SSH connection between the Raspberry and your computer (not covered by this guide).&lt;br /&gt;
&lt;br /&gt;
== Step One: installing the cross-compiler ==&lt;br /&gt;
&lt;br /&gt;
* Select a directory in which you will install everything. For the purposes of this guide, I will consider a subdirectory of your home folder, &amp;lt;code&amp;gt;~/raspberrypi&amp;lt;/code&amp;gt; . Create it and then access it:&lt;br /&gt;
 &amp;lt;code&amp;gt;cd&lt;br /&gt;
 mkdir raspberrypi&lt;br /&gt;
 cd raspberrypi&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Download the &amp;quot;official&amp;quot; cross-compiler of the Raspberry Pi project through &amp;lt;code&amp;gt;git&amp;lt;/code&amp;gt;:&lt;br /&gt;
 &amp;lt;code&amp;gt;git clone git://github.com/raspberrypi/tools.git&amp;lt;/code&amp;gt;&lt;br /&gt;
This will create, among other things, a &amp;lt;code&amp;gt;tools/arm-bcm2708&amp;lt;/code&amp;gt; subfolder containing three different compiler toolchains:&lt;br /&gt;
&lt;br /&gt;
arm-bcm2708-linux-gnueabi&lt;br /&gt;
&lt;br /&gt;
arm-bcm2708hardfp-linux-gnueabi&lt;br /&gt;
&lt;br /&gt;
gcc-linaro-arm-linux-gnueabihf-raspbian&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
We are going to use the third of these toolchains, since it's the most optimized and supports the FPU that is available on the RaspberryPi board.&lt;br /&gt;
&lt;br /&gt;
* Go back to your home directory, and open your &amp;lt;code&amp;gt;.bashrc&amp;lt;/code&amp;gt; configuration file with any text editor, like &amp;lt;code&amp;gt;nano&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;gedit&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;leafpad&amp;lt;/code&amp;gt;, and add this string at the bottom:&lt;br /&gt;
 &amp;lt;code&amp;gt;PATH=$PATH:$HOME/raspberrypi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Now, either logout and login back again, or just close and reopen the terminal window, and type:&lt;br /&gt;
 &amp;lt;code&amp;gt;arm-linux-gnueabihf-gcc -v&amp;lt;/code&amp;gt;&lt;br /&gt;
If all goes well, you should see something like&lt;br /&gt;
 &amp;lt;code&amp;gt;tudhalyas@gondor:~$ arm-linux-gnueabihf-gcc -v&lt;br /&gt;
 Using built-in specs.&lt;br /&gt;
 COLLECT_GCC=arm-linux-gnueabihf-gcc&lt;br /&gt;
 COLLECT_LTO_WRAPPER=/home/tudhalyas/raspberrypi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/../libexec/gcc/arm-linux-gnueabihf/4.7.2/lto-wrapper&lt;br /&gt;
 Target: arm-linux-gnueabihf&lt;br /&gt;
 Configured with: /cbuild/slaves/oort61/crosstool-ng/builds/arm-linux-gnueabihf-raspbian-linux/.build/src/gcc-linaro-4.7-2012.08/configure --build=i686-build_pc-linux-gnu --host=i686-build_pc-linux-gnu --target=arm-linux-gnueabihf --prefix=/cbuild/slaves/oort61/crosstool-ng/builds/arm-linux-gnueabihf-raspbian-linux/install --with-sysroot=/cbuild/slaves/oort61/crosstool-ng/builds/arm-linux-gnueabihf-raspbian-linux/install/arm-linux-gnueabihf/libc --enable-languages=c,c++,fortran --disable-multilib --with-arch=armv6 --with-tune=arm1176jz-s --with-fpu=vfp --with-float=hard --with-pkgversion='crosstool-NG linaro-1.13.1+bzr2458 - Linaro GCC 2012.08' --with-bugurl=https://bugs.launchpad.net/gcc-linaro --enable-__cxa_atexit --enable-libmudflap --enable-libgomp --enable-libssp --with-gmp=/cbuild/slaves/oort61/crosstool-ng/builds/arm-linux-gnueabihf-raspbian-linux/.build/arm-linux-gnueabihf/build/static --with-mpfr=/cbuild/slaves/oort61/crosstool-ng/builds/arm-linux-gnueabihf-raspbian-linux/.build/arm-linux-gnueabihf/build/static --with-mpc=/cbuild/slaves/oort61/crosstool-ng/builds/arm-linux-gnueabihf-raspbian-linux/.build/arm-linux-gnueabihf/build/static --with-ppl=/cbuild/slaves/oort61/crosstool-ng/builds/arm-linux-gnueabihf-raspbian-linux/.build/arm-linux-gnueabihf/build/static --with-cloog=/cbuild/slaves/oort61/crosstool-ng/builds/arm-linux-gnueabihf-raspbian-linux/.build/arm-linux-gnueabihf/build/static --with-libelf=/cbuild/slaves/oort61/crosstool-ng/builds/arm-linux-gnueabihf-raspbian-linux/.build/arm-linux-gnueabihf/build/static --with-host-libstdcxx='-L/cbuild/slaves/oort61/crosstool-ng/builds/arm-linux-gnueabihf-raspbian-linux/.build/arm-linux-gnueabihf/build/static/lib -lpwl' --enable-threads=posix --disable-libstdcxx-pch --enable-linker-build-id --enable-plugin --enable-gold --with-local-prefix=/cbuild/slaves/oort61/crosstool-ng/builds/arm-linux-gnueabihf-raspbian-linux/install/arm-linux-gnueabihf/libc --enable-c99 --enable-long-long&lt;br /&gt;
 Thread model: posix&lt;br /&gt;
 gcc version 4.7.2 20120731 (prerelease) (crosstool-NG linaro-1.13.1+bzr2458 - Linaro GCC 2012.08)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Step Two: set-up your compiling environment ==&lt;br /&gt;
&lt;br /&gt;
* Go back into the &amp;lt;code&amp;gt;raspberrypi&amp;lt;/code&amp;gt; directory and create a subfolder named &amp;lt;code&amp;gt;rootfs&amp;lt;/code&amp;gt;:&lt;br /&gt;
  &amp;lt;code&amp;gt;cd&lt;br /&gt;
 cd raspberrypi&lt;br /&gt;
 mkdir rootfs&amp;lt;/code&amp;gt;&lt;br /&gt;
* Now tell &amp;lt;code&amp;gt;rsync&amp;lt;/code&amp;gt; to copy the entirety of the &amp;lt;code&amp;gt;/usr&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;/lib&amp;lt;/code&amp;gt; directories of your RaspberryPi filesystem into the newly created folder on your computer:&lt;br /&gt;
 &amp;lt;code&amp;gt;rsync -rl --delete-after --safe-links pi@$RASPI:/{lib,usr} $HOME/raspberrypi/rootfs&amp;lt;/code&amp;gt;&lt;br /&gt;
where &amp;lt;code&amp;gt;$RASPI&amp;lt;/code&amp;gt; is the IP address of the Raspberry. You can put this line of code in a text file and save it as a shell script for your convenience.&lt;br /&gt;
* Create a text file called &amp;lt;code&amp;gt;Toolchain-RaspberryPi.cmake&amp;lt;/code&amp;gt; and insert the following into it:&lt;br /&gt;
&lt;br /&gt;
 SET(CMAKE_SYSTEM_NAME Linux)&lt;br /&gt;
 SET(CMAKE_SYSTEM_VERSION 1)&lt;br /&gt;
 # specify the cross compiler&lt;br /&gt;
 SET(CMAKE_C_COMPILER $ENV{HOME}/raspberrypi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/arm-linux-gnueabihf-gcc)&lt;br /&gt;
 SET(CMAKE_CXX_COMPILER $ENV{HOME}/raspberrypi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/arm-linux-gnueabihf-g++)&lt;br /&gt;
 # where is the target environment&lt;br /&gt;
 SET(CMAKE_FIND_ROOT_PATH $ENV{HOME}/raspberrypi/rootfs)&lt;br /&gt;
 # search for programs in the build host directories&lt;br /&gt;
 SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)&lt;br /&gt;
 # for libraries and headers in the target directories&lt;br /&gt;
 SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)&lt;br /&gt;
 SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)&lt;br /&gt;
&lt;br /&gt;
* Now you are able to compile your own projects using &amp;lt;code&amp;gt;cmake&amp;lt;/code&amp;gt;, by passing the path of the Toolchain specification file to the program (supposing that the sources are located into a &amp;lt;code&amp;gt;src&amp;lt;/code&amp;gt; directory which in turn is located into &amp;lt;code&amp;gt;${PROJECT_DIR}&amp;lt;/code&amp;gt;):&lt;br /&gt;
 &amp;lt;code&amp;gt;mkdir ${PROJECT_DIR}/build&lt;br /&gt;
 cd ${PROJECT_DIR}/build&lt;br /&gt;
 cmake -G&amp;quot;Eclipse CDT4 - Unix Makefiles&amp;quot; -D CMAKE_BUILD_TYPE=Debug -D CMAKE_TOOLCHAIN_FILE=$HOME/raspberrypi/Toolchain-RaspberryPi.cmake ../src&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Step Three: Remote program execution through Eclipse ==&lt;br /&gt;
&lt;br /&gt;
... to be continued ...&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
* http://wiki.debian.org/Multiarch/HOWTO&lt;br /&gt;
* http://hertaville.com/2012/09/28/development-environment-raspberry-pi-cross-compiler/&lt;br /&gt;
* http://www.kitware.com/blog/home/post/426&lt;br /&gt;
* http://www.cmake.org/Wiki/CMake_Cross_Compiling&lt;/div&gt;</summary>
		<author><name>AndreaSalvi</name></author>	</entry>

	<entry>
		<id>https://airwiki.deib.polimi.it/index.php?title=Cross-compiling_for_the_RaspberryPi&amp;diff=16363</id>
		<title>Cross-compiling for the RaspberryPi</title>
		<link rel="alternate" type="text/html" href="https://airwiki.deib.polimi.it/index.php?title=Cross-compiling_for_the_RaspberryPi&amp;diff=16363"/>
				<updated>2013-05-24T16:39:52Z</updated>
		
		<summary type="html">&lt;p&gt;AndreaSalvi: References: added link to Debian wiki's Multiarch article&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page will guide you to setup a complete cross-compiling environment for the [http://raspberrypi.org RaspberryPi] board. This procedure is tailored for and tested on Ubuntu 12.10, but it can be easily adapted for the use on other distributions.&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
* Install all the required software packages:&lt;br /&gt;
 &amp;lt;code&amp;gt;sudo apt-get install git rsync cmake&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''If you are using a 64-bit version of Ubuntu''', also install the 32-bit compatibility libraries:&lt;br /&gt;
 &amp;lt;code&amp;gt;sudo apt-get install ia32-libs&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''If you are using a 64-bit version of Debian''', the ia32-libs metapackage is no longer installable. Execute instead&lt;br /&gt;
  &amp;lt;code&amp;gt;su -&lt;br /&gt;
  dpkg --add-architecture i386&lt;br /&gt;
  apt-get update &amp;amp;&amp;amp; apt-get install libc6-i386 lib32stdc++6&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* The guide will take for granted that you are using the official Raspbian OS image, downloadable from the RaspberryPi website. &lt;br /&gt;
* Moreover, you will need a working SSH connection between the Raspberry and your computer (not covered by this guide).&lt;br /&gt;
&lt;br /&gt;
== Step One: installing the cross-compiler ==&lt;br /&gt;
&lt;br /&gt;
* Select a directory in which you will install everything. For the purposes of this guide, I will consider a subdirectory of your home folder, &amp;lt;code&amp;gt;~/raspberrypi&amp;lt;/code&amp;gt; . Create it and then access it:&lt;br /&gt;
 &amp;lt;code&amp;gt;cd&lt;br /&gt;
 mkdir raspberrypi&lt;br /&gt;
 cd raspberrypi&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Download the &amp;quot;official&amp;quot; cross-compiler of the Raspberry Pi project through &amp;lt;code&amp;gt;git&amp;lt;/code&amp;gt;:&lt;br /&gt;
 &amp;lt;code&amp;gt;git clone git://github.com/raspberrypi/tools.git&amp;lt;/code&amp;gt;&lt;br /&gt;
This will create, among other things, a &amp;lt;code&amp;gt;tools/arm-bcm2708&amp;lt;/code&amp;gt; subfolder containing three different compiler toolchains:&lt;br /&gt;
&lt;br /&gt;
arm-bcm2708-linux-gnueabi&lt;br /&gt;
&lt;br /&gt;
arm-bcm2708hardfp-linux-gnueabi&lt;br /&gt;
&lt;br /&gt;
gcc-linaro-arm-linux-gnueabihf-raspbian&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
We are going to use the third of these toolchains, since it's the most optimized and supports the FPU that is available on the RaspberryPi board.&lt;br /&gt;
&lt;br /&gt;
* Go back to your home directory, and open your &amp;lt;code&amp;gt;.bashrc&amp;lt;/code&amp;gt; configuration file with any text editor, like &amp;lt;code&amp;gt;nano&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;gedit&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;leafpad&amp;lt;/code&amp;gt;, and add this string at the bottom:&lt;br /&gt;
 &amp;lt;code&amp;gt;PATH=$PATH:$HOME/raspberrypi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Now, either logout and login back again, or just close and reopen the terminal window, and type:&lt;br /&gt;
 &amp;lt;code&amp;gt;arm-linux-gnueabihf-gcc -v&amp;lt;/code&amp;gt;&lt;br /&gt;
If all goes well, you should see something like&lt;br /&gt;
 &amp;lt;code&amp;gt;tudhalyas@gondor:~$ arm-linux-gnueabihf-gcc -v&lt;br /&gt;
 Using built-in specs.&lt;br /&gt;
 COLLECT_GCC=arm-linux-gnueabihf-gcc&lt;br /&gt;
 COLLECT_LTO_WRAPPER=/home/tudhalyas/raspberrypi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/../libexec/gcc/arm-linux-gnueabihf/4.7.2/lto-wrapper&lt;br /&gt;
 Target: arm-linux-gnueabihf&lt;br /&gt;
 Configured with: /cbuild/slaves/oort61/crosstool-ng/builds/arm-linux-gnueabihf-raspbian-linux/.build/src/gcc-linaro-4.7-2012.08/configure --build=i686-build_pc-linux-gnu --host=i686-build_pc-linux-gnu --target=arm-linux-gnueabihf --prefix=/cbuild/slaves/oort61/crosstool-ng/builds/arm-linux-gnueabihf-raspbian-linux/install --with-sysroot=/cbuild/slaves/oort61/crosstool-ng/builds/arm-linux-gnueabihf-raspbian-linux/install/arm-linux-gnueabihf/libc --enable-languages=c,c++,fortran --disable-multilib --with-arch=armv6 --with-tune=arm1176jz-s --with-fpu=vfp --with-float=hard --with-pkgversion='crosstool-NG linaro-1.13.1+bzr2458 - Linaro GCC 2012.08' --with-bugurl=https://bugs.launchpad.net/gcc-linaro --enable-__cxa_atexit --enable-libmudflap --enable-libgomp --enable-libssp --with-gmp=/cbuild/slaves/oort61/crosstool-ng/builds/arm-linux-gnueabihf-raspbian-linux/.build/arm-linux-gnueabihf/build/static --with-mpfr=/cbuild/slaves/oort61/crosstool-ng/builds/arm-linux-gnueabihf-raspbian-linux/.build/arm-linux-gnueabihf/build/static --with-mpc=/cbuild/slaves/oort61/crosstool-ng/builds/arm-linux-gnueabihf-raspbian-linux/.build/arm-linux-gnueabihf/build/static --with-ppl=/cbuild/slaves/oort61/crosstool-ng/builds/arm-linux-gnueabihf-raspbian-linux/.build/arm-linux-gnueabihf/build/static --with-cloog=/cbuild/slaves/oort61/crosstool-ng/builds/arm-linux-gnueabihf-raspbian-linux/.build/arm-linux-gnueabihf/build/static --with-libelf=/cbuild/slaves/oort61/crosstool-ng/builds/arm-linux-gnueabihf-raspbian-linux/.build/arm-linux-gnueabihf/build/static --with-host-libstdcxx='-L/cbuild/slaves/oort61/crosstool-ng/builds/arm-linux-gnueabihf-raspbian-linux/.build/arm-linux-gnueabihf/build/static/lib -lpwl' --enable-threads=posix --disable-libstdcxx-pch --enable-linker-build-id --enable-plugin --enable-gold --with-local-prefix=/cbuild/slaves/oort61/crosstool-ng/builds/arm-linux-gnueabihf-raspbian-linux/install/arm-linux-gnueabihf/libc --enable-c99 --enable-long-long&lt;br /&gt;
 Thread model: posix&lt;br /&gt;
 gcc version 4.7.2 20120731 (prerelease) (crosstool-NG linaro-1.13.1+bzr2458 - Linaro GCC 2012.08)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Step Two: set-up your compiling environment ==&lt;br /&gt;
&lt;br /&gt;
* Go back into the &amp;lt;code&amp;gt;raspberrypi&amp;lt;/code&amp;gt; directory and create a subfolder named &amp;lt;code&amp;gt;rootfs&amp;lt;/code&amp;gt;:&lt;br /&gt;
  &amp;lt;code&amp;gt;cd&lt;br /&gt;
 cd raspberrypi&lt;br /&gt;
 mkdir rootfs&amp;lt;/code&amp;gt;&lt;br /&gt;
* Now tell &amp;lt;code&amp;gt;rsync&amp;lt;/code&amp;gt; to copy the entirety of the &amp;lt;code&amp;gt;/usr&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;/lib&amp;lt;/code&amp;gt; directories of your RaspberryPi filesystem into the newly created folder on your computer:&lt;br /&gt;
 &amp;lt;code&amp;gt;rsync -rl --delete-after --safe-links pi@$RASPI:/{lib,usr} $HOME/raspberrypi/rootfs&amp;lt;/code&amp;gt;&lt;br /&gt;
where &amp;lt;code&amp;gt;$RASPI&amp;lt;/code&amp;gt; is the IP address of the Raspberry. You can put this line of code in a text file and save it as a shell script for your convenience.&lt;br /&gt;
* Create a text file called &amp;lt;code&amp;gt;Toolchain-RaspberryPi.cmake&amp;lt;/code&amp;gt; and insert the following into it:&lt;br /&gt;
&lt;br /&gt;
 SET(CMAKE_SYSTEM_NAME Linux)&lt;br /&gt;
 SET(CMAKE_SYSTEM_VERSION 1)&lt;br /&gt;
 # specify the cross compiler&lt;br /&gt;
 SET(CMAKE_C_COMPILER $ENV{HOME}/raspberrypi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/arm-linux-gnueabihf-gcc)&lt;br /&gt;
 SET(CMAKE_CXX_COMPILER $ENV{HOME}/raspberrypi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/arm-linux-gnueabihf-g++)&lt;br /&gt;
 # where is the target environment&lt;br /&gt;
 SET(CMAKE_FIND_ROOT_PATH $ENV{HOME}/raspberrypi/rootfs)&lt;br /&gt;
 # search for programs in the build host directories&lt;br /&gt;
 SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)&lt;br /&gt;
 # for libraries and headers in the target directories&lt;br /&gt;
 SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)&lt;br /&gt;
 SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)&lt;br /&gt;
&lt;br /&gt;
* Now you are able to compile your own projects using &amp;lt;code&amp;gt;cmake&amp;lt;/code&amp;gt;, by passing the path of the Toolchain specification file to the program (supposing that the sources are located into a &amp;lt;code&amp;gt;src&amp;lt;/code&amp;gt; directory which in turn is located into &amp;lt;code&amp;gt;${PROJECT_DIR}&amp;lt;/code&amp;gt;):&lt;br /&gt;
 &amp;lt;code&amp;gt;mkdir ${PROJECT_DIR}/build&lt;br /&gt;
 cd ${PROJECT_DIR}/build&lt;br /&gt;
 cmake -G&amp;quot;Eclipse CDT4 - Unix Makefiles&amp;quot; -D CMAKE_BUILD_TYPE=Debug -D CMAKE_TOOLCHAIN_FILE=$HOME/raspberrypi/Toolchain-RaspberryPi.cmake ../src&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Step Three: Remote program execution through Eclipse ==&lt;br /&gt;
&lt;br /&gt;
... to be continued ...&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
* http://wiki.debian.org/Multiarch/HOWTO&lt;br /&gt;
* http://hertaville.com/2012/09/28/development-environment-raspberry-pi-cross-compiler/&lt;br /&gt;
* http://www.kitware.com/blog/home/post/426&lt;br /&gt;
* http://www.cmake.org/Wiki/CMake_Cross_Compiling&lt;/div&gt;</summary>
		<author><name>AndreaSalvi</name></author>	</entry>

	<entry>
		<id>https://airwiki.deib.polimi.it/index.php?title=Cross-compiling_for_the_RaspberryPi&amp;diff=16362</id>
		<title>Cross-compiling for the RaspberryPi</title>
		<link rel="alternate" type="text/html" href="https://airwiki.deib.polimi.it/index.php?title=Cross-compiling_for_the_RaspberryPi&amp;diff=16362"/>
				<updated>2013-05-24T16:38:38Z</updated>
		
		<summary type="html">&lt;p&gt;AndreaSalvi: Prerequisites: added information about Debian.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page will guide you to setup a complete cross-compiling environment for the [http://raspberrypi.org RaspberryPi] board. This procedure is tailored for and tested on Ubuntu 12.10, but it can be easily adapted for the use on other distributions.&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
* Install all the required software packages:&lt;br /&gt;
 &amp;lt;code&amp;gt;sudo apt-get install git rsync cmake&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''If you are using a 64-bit version of Ubuntu''', also install the 32-bit compatibility libraries:&lt;br /&gt;
 &amp;lt;code&amp;gt;sudo apt-get install ia32-libs&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''If you are using a 64-bit version of Debian''', the ia32-libs metapackage is no longer installable. Execute instead&lt;br /&gt;
  &amp;lt;code&amp;gt;su -&lt;br /&gt;
  dpkg --add-architecture i386&lt;br /&gt;
  apt-get update &amp;amp;&amp;amp; apt-get install libc6-i386 lib32stdc++6&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* The guide will take for granted that you are using the official Raspbian OS image, downloadable from the RaspberryPi website. &lt;br /&gt;
* Moreover, you will need a working SSH connection between the Raspberry and your computer (not covered by this guide).&lt;br /&gt;
&lt;br /&gt;
== Step One: installing the cross-compiler ==&lt;br /&gt;
&lt;br /&gt;
* Select a directory in which you will install everything. For the purposes of this guide, I will consider a subdirectory of your home folder, &amp;lt;code&amp;gt;~/raspberrypi&amp;lt;/code&amp;gt; . Create it and then access it:&lt;br /&gt;
 &amp;lt;code&amp;gt;cd&lt;br /&gt;
 mkdir raspberrypi&lt;br /&gt;
 cd raspberrypi&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Download the &amp;quot;official&amp;quot; cross-compiler of the Raspberry Pi project through &amp;lt;code&amp;gt;git&amp;lt;/code&amp;gt;:&lt;br /&gt;
 &amp;lt;code&amp;gt;git clone git://github.com/raspberrypi/tools.git&amp;lt;/code&amp;gt;&lt;br /&gt;
This will create, among other things, a &amp;lt;code&amp;gt;tools/arm-bcm2708&amp;lt;/code&amp;gt; subfolder containing three different compiler toolchains:&lt;br /&gt;
&lt;br /&gt;
arm-bcm2708-linux-gnueabi&lt;br /&gt;
&lt;br /&gt;
arm-bcm2708hardfp-linux-gnueabi&lt;br /&gt;
&lt;br /&gt;
gcc-linaro-arm-linux-gnueabihf-raspbian&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
We are going to use the third of these toolchains, since it's the most optimized and supports the FPU that is available on the RaspberryPi board.&lt;br /&gt;
&lt;br /&gt;
* Go back to your home directory, and open your &amp;lt;code&amp;gt;.bashrc&amp;lt;/code&amp;gt; configuration file with any text editor, like &amp;lt;code&amp;gt;nano&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;gedit&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;leafpad&amp;lt;/code&amp;gt;, and add this string at the bottom:&lt;br /&gt;
 &amp;lt;code&amp;gt;PATH=$PATH:$HOME/raspberrypi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Now, either logout and login back again, or just close and reopen the terminal window, and type:&lt;br /&gt;
 &amp;lt;code&amp;gt;arm-linux-gnueabihf-gcc -v&amp;lt;/code&amp;gt;&lt;br /&gt;
If all goes well, you should see something like&lt;br /&gt;
 &amp;lt;code&amp;gt;tudhalyas@gondor:~$ arm-linux-gnueabihf-gcc -v&lt;br /&gt;
 Using built-in specs.&lt;br /&gt;
 COLLECT_GCC=arm-linux-gnueabihf-gcc&lt;br /&gt;
 COLLECT_LTO_WRAPPER=/home/tudhalyas/raspberrypi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/../libexec/gcc/arm-linux-gnueabihf/4.7.2/lto-wrapper&lt;br /&gt;
 Target: arm-linux-gnueabihf&lt;br /&gt;
 Configured with: /cbuild/slaves/oort61/crosstool-ng/builds/arm-linux-gnueabihf-raspbian-linux/.build/src/gcc-linaro-4.7-2012.08/configure --build=i686-build_pc-linux-gnu --host=i686-build_pc-linux-gnu --target=arm-linux-gnueabihf --prefix=/cbuild/slaves/oort61/crosstool-ng/builds/arm-linux-gnueabihf-raspbian-linux/install --with-sysroot=/cbuild/slaves/oort61/crosstool-ng/builds/arm-linux-gnueabihf-raspbian-linux/install/arm-linux-gnueabihf/libc --enable-languages=c,c++,fortran --disable-multilib --with-arch=armv6 --with-tune=arm1176jz-s --with-fpu=vfp --with-float=hard --with-pkgversion='crosstool-NG linaro-1.13.1+bzr2458 - Linaro GCC 2012.08' --with-bugurl=https://bugs.launchpad.net/gcc-linaro --enable-__cxa_atexit --enable-libmudflap --enable-libgomp --enable-libssp --with-gmp=/cbuild/slaves/oort61/crosstool-ng/builds/arm-linux-gnueabihf-raspbian-linux/.build/arm-linux-gnueabihf/build/static --with-mpfr=/cbuild/slaves/oort61/crosstool-ng/builds/arm-linux-gnueabihf-raspbian-linux/.build/arm-linux-gnueabihf/build/static --with-mpc=/cbuild/slaves/oort61/crosstool-ng/builds/arm-linux-gnueabihf-raspbian-linux/.build/arm-linux-gnueabihf/build/static --with-ppl=/cbuild/slaves/oort61/crosstool-ng/builds/arm-linux-gnueabihf-raspbian-linux/.build/arm-linux-gnueabihf/build/static --with-cloog=/cbuild/slaves/oort61/crosstool-ng/builds/arm-linux-gnueabihf-raspbian-linux/.build/arm-linux-gnueabihf/build/static --with-libelf=/cbuild/slaves/oort61/crosstool-ng/builds/arm-linux-gnueabihf-raspbian-linux/.build/arm-linux-gnueabihf/build/static --with-host-libstdcxx='-L/cbuild/slaves/oort61/crosstool-ng/builds/arm-linux-gnueabihf-raspbian-linux/.build/arm-linux-gnueabihf/build/static/lib -lpwl' --enable-threads=posix --disable-libstdcxx-pch --enable-linker-build-id --enable-plugin --enable-gold --with-local-prefix=/cbuild/slaves/oort61/crosstool-ng/builds/arm-linux-gnueabihf-raspbian-linux/install/arm-linux-gnueabihf/libc --enable-c99 --enable-long-long&lt;br /&gt;
 Thread model: posix&lt;br /&gt;
 gcc version 4.7.2 20120731 (prerelease) (crosstool-NG linaro-1.13.1+bzr2458 - Linaro GCC 2012.08)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Step Two: set-up your compiling environment ==&lt;br /&gt;
&lt;br /&gt;
* Go back into the &amp;lt;code&amp;gt;raspberrypi&amp;lt;/code&amp;gt; directory and create a subfolder named &amp;lt;code&amp;gt;rootfs&amp;lt;/code&amp;gt;:&lt;br /&gt;
  &amp;lt;code&amp;gt;cd&lt;br /&gt;
 cd raspberrypi&lt;br /&gt;
 mkdir rootfs&amp;lt;/code&amp;gt;&lt;br /&gt;
* Now tell &amp;lt;code&amp;gt;rsync&amp;lt;/code&amp;gt; to copy the entirety of the &amp;lt;code&amp;gt;/usr&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;/lib&amp;lt;/code&amp;gt; directories of your RaspberryPi filesystem into the newly created folder on your computer:&lt;br /&gt;
 &amp;lt;code&amp;gt;rsync -rl --delete-after --safe-links pi@$RASPI:/{lib,usr} $HOME/raspberrypi/rootfs&amp;lt;/code&amp;gt;&lt;br /&gt;
where &amp;lt;code&amp;gt;$RASPI&amp;lt;/code&amp;gt; is the IP address of the Raspberry. You can put this line of code in a text file and save it as a shell script for your convenience.&lt;br /&gt;
* Create a text file called &amp;lt;code&amp;gt;Toolchain-RaspberryPi.cmake&amp;lt;/code&amp;gt; and insert the following into it:&lt;br /&gt;
&lt;br /&gt;
 SET(CMAKE_SYSTEM_NAME Linux)&lt;br /&gt;
 SET(CMAKE_SYSTEM_VERSION 1)&lt;br /&gt;
 # specify the cross compiler&lt;br /&gt;
 SET(CMAKE_C_COMPILER $ENV{HOME}/raspberrypi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/arm-linux-gnueabihf-gcc)&lt;br /&gt;
 SET(CMAKE_CXX_COMPILER $ENV{HOME}/raspberrypi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/arm-linux-gnueabihf-g++)&lt;br /&gt;
 # where is the target environment&lt;br /&gt;
 SET(CMAKE_FIND_ROOT_PATH $ENV{HOME}/raspberrypi/rootfs)&lt;br /&gt;
 # search for programs in the build host directories&lt;br /&gt;
 SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)&lt;br /&gt;
 # for libraries and headers in the target directories&lt;br /&gt;
 SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)&lt;br /&gt;
 SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)&lt;br /&gt;
&lt;br /&gt;
* Now you are able to compile your own projects using &amp;lt;code&amp;gt;cmake&amp;lt;/code&amp;gt;, by passing the path of the Toolchain specification file to the program (supposing that the sources are located into a &amp;lt;code&amp;gt;src&amp;lt;/code&amp;gt; directory which in turn is located into &amp;lt;code&amp;gt;${PROJECT_DIR}&amp;lt;/code&amp;gt;):&lt;br /&gt;
 &amp;lt;code&amp;gt;mkdir ${PROJECT_DIR}/build&lt;br /&gt;
 cd ${PROJECT_DIR}/build&lt;br /&gt;
 cmake -G&amp;quot;Eclipse CDT4 - Unix Makefiles&amp;quot; -D CMAKE_BUILD_TYPE=Debug -D CMAKE_TOOLCHAIN_FILE=$HOME/raspberrypi/Toolchain-RaspberryPi.cmake ../src&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Step Three: Remote program execution through Eclipse ==&lt;br /&gt;
&lt;br /&gt;
... to be continued ...&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
* http://hertaville.com/2012/09/28/development-environment-raspberry-pi-cross-compiler/&lt;br /&gt;
* http://www.kitware.com/blog/home/post/426&lt;br /&gt;
* http://www.cmake.org/Wiki/CMake_Cross_Compiling&lt;/div&gt;</summary>
		<author><name>AndreaSalvi</name></author>	</entry>

	<entry>
		<id>https://airwiki.deib.polimi.it/index.php?title=ODROID&amp;diff=16356</id>
		<title>ODROID</title>
		<link rel="alternate" type="text/html" href="https://airwiki.deib.polimi.it/index.php?title=ODROID&amp;diff=16356"/>
				<updated>2013-05-20T17:50:09Z</updated>
		
		<summary type="html">&lt;p&gt;AndreaSalvi: /* Tested OS and versions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There are two [http://www.hardkernel.com/ ODROID] U2 for development of small robots. Here are details and suggestions for their use.&lt;br /&gt;
&lt;br /&gt;
=== Useful How-Tos ===&lt;br /&gt;
* [http://forum.odroid.com/viewtopic.php?f=52&amp;amp;t=81 Kernel recompiling process for the ODROID-U2]; it is necessary to do this if you ever wish to install external/out-of-tree drivers, as the &amp;quot;official package&amp;quot; is missing several critical kernel headers.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Tested OS and versions ===&lt;br /&gt;
* [http://forum.odroid.com/viewtopic.php?f=8&amp;amp;t=1193 Xubuntu 13.04]  for armhf architectures, released by HardKernel with their [https://github.com/hardkernel/linux modified Linux kernel, version 3.0.75]. The kernel can be recompiled for using 3D video acceleration but this would prevent USB video cameras to work, so it's useless for robot development (even more so since OpenCL can't be even used).&lt;br /&gt;
* [http://forum.odroid.com/viewtopic.php?f=8&amp;amp;t=12 Linaro Ubuntu 12.11] with HardKernel's Linux kernel, version 3.0.60. Grab [http://dn.odroid.com/Ubuntu_U2/20130125/ this image] dated 25-01-2013, flash it on your microSD card and then apply the latest point kernel point update (at the time of writing, it is version 3.0.63, dated 13-02-2013) following the instructions given on the thread's opening post.&lt;br /&gt;
&lt;br /&gt;
'''All OSes have wireless networking issues, please read below for more information.'''&lt;br /&gt;
&lt;br /&gt;
=== Tested I/O devices ===&lt;br /&gt;
&lt;br /&gt;
==== Monitors ====&lt;br /&gt;
Monitors need a native HDMI interface to work with ODROIDs due to the strict requirements of the Exynos system-on-chip; for the same reason, external HDMI-to-DVI adapters are also '''not''' recommended, as you could result having a blank image screen ([http://odroid.us/mediawiki/index.php?title=Troubleshooting#My_Device_boots_.28The_alive_led_blinks.29.2C_but_it_doesnt_show_anything_on_the_display source] )&lt;br /&gt;
&lt;br /&gt;
This is a list of monitors and TV screens with native HDMI ports that are known to work.&lt;br /&gt;
* Sony KDL-32V4500&lt;br /&gt;
* Samsung Syncmaster XL2370 HD&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Tested wireless communication ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Tested wired communication ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Unresolved issues ===&lt;br /&gt;
&lt;br /&gt;
==== Wireless Networking (all tested OSes) ====&lt;br /&gt;
Wireless communications seem to be very troublesome, as the network interfaces tend to lose or drop a lot of packages, both in RX and TX, to the point that a reliable SSH connection cannot be established. This happens at least with the &amp;quot;officially supported&amp;quot; wireless NIC (with a Realtek RTL8191SU chipset), even if the wifi signal strength is excellent.&lt;br /&gt;
&lt;br /&gt;
A curious aspect of this issue is that only incoming packets get dropped a lot, while outgoing packets are very modestly affected.&lt;br /&gt;
&lt;br /&gt;
This being said, the RTL8191SU adapter loses some packets along the way also while being connected to other computers, so maybe it's really not the best USB wifi adapter ''ever''.&lt;br /&gt;
&lt;br /&gt;
  root@odroid:~# ifconfig wlan6&lt;br /&gt;
  wlan6     Link encap:Ethernet  HWaddr **:**:**:**:**:**&lt;br /&gt;
           inet addr:192.168.1.60  Bcast:192.168.1.255  Mask:255.255.255.0&lt;br /&gt;
           inet6 addr: fe80::ee1a:59ff:fe0e:f122/64 Scope:Link&lt;br /&gt;
           UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1&lt;br /&gt;
           RX packets:453 errors:0 dropped:600 overruns:0 frame:0&lt;br /&gt;
           TX packets:292 errors:0 dropped:7 overruns:0 carrier:0&lt;br /&gt;
           collisions:0 txqueuelen:1000&lt;br /&gt;
           RX bytes:79264 (79.2 KB)  TX bytes:35116 (35.1 KB)&lt;br /&gt;
&lt;br /&gt;
  odroid@odroid:~$ iwconfig wlan6&lt;br /&gt;
  wlan6     IEEE 802.11bg  ESSID:&amp;quot;MyWirelessNet&amp;quot;  Nickname:&amp;quot;&amp;lt;WIFI@REALTEK&amp;gt;&amp;quot;&lt;br /&gt;
          Mode:Managed  Frequency:2.437 GHz  Access Point: **:**:**:**:**:**&lt;br /&gt;
          Bit Rate:54 Mb/s   Sensitivity:0/0  &lt;br /&gt;
          Retry:off   RTS thr:off   Fragment thr:off&lt;br /&gt;
          Encryption key:****-****-****-****-****-****-****-****   Security mode:open&lt;br /&gt;
          Power Management:off&lt;br /&gt;
          Link Quality=100/100  Signal level=100/100  Noise level=0/100&lt;br /&gt;
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0&lt;br /&gt;
          Tx excessive retries:0  Invalid misc:0   Missed beacon:0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Realtek RTL8192CU =====&lt;br /&gt;
This chipset seems not to be even detected by the stock HK kernel (all versions of it), but it is possible to use it after recompiling the kernel, disabling the in-kernel module for the NIC, and integrating [http://www.realtek.com/downloads/downloadsView.aspx?Langid=1&amp;amp;PNid=21&amp;amp;PFid=48&amp;amp;Level=5&amp;amp;Conn=4&amp;amp;DownTypeID=3&amp;amp;GetDown=false&amp;amp;Downloads=true Realtek's official driver] for this chipset inside it (instructions are included in the package).&lt;br /&gt;
&lt;br /&gt;
However, you still get a huge packet loss rate, even if you disable the power saving feature of the driver by loading the kernel module with&lt;br /&gt;
  sudo modprobe 8192cu rtw_power_mgnt=0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Solved issues ===&lt;br /&gt;
&lt;br /&gt;
==== lshw glitches (all tested OSes) ====&lt;br /&gt;
With the stock kernel the lshw command seems to be partly broken, but this is resolved by calling it with&lt;br /&gt;
  sudo lshw -disable dmi&lt;br /&gt;
although this will prevent the detection of certain features of the board. Another way of fixing this issue is to recompile the kernel by hand (see the how-to linked above).&lt;/div&gt;</summary>
		<author><name>AndreaSalvi</name></author>	</entry>

	<entry>
		<id>https://airwiki.deib.polimi.it/index.php?title=ODROID&amp;diff=16355</id>
		<title>ODROID</title>
		<link rel="alternate" type="text/html" href="https://airwiki.deib.polimi.it/index.php?title=ODROID&amp;diff=16355"/>
				<updated>2013-05-20T17:46:19Z</updated>
		
		<summary type="html">&lt;p&gt;AndreaSalvi: Added Linaro Ubuntu 12.11; moved the issues Section below.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There are two [http://www.hardkernel.com/ ODROID] U2 for development of small robots. Here are details and suggestions for their use.&lt;br /&gt;
&lt;br /&gt;
=== Useful How-Tos ===&lt;br /&gt;
* [http://forum.odroid.com/viewtopic.php?f=52&amp;amp;t=81 Kernel recompiling process for the ODROID-U2]; it is necessary to do this if you ever wish to install external/out-of-tree drivers, as the &amp;quot;official package&amp;quot; is missing several critical kernel headers.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Tested OS and versions ===&lt;br /&gt;
* [http://forum.odroid.com/viewtopic.php?f=8&amp;amp;t=1193 Xubuntu 13.04]  for armhf architectures, released by HardKernel with their [https://github.com/hardkernel/linux modified Linux kernel, version 3.0.75]. The kernel can be recompiled for using 3D video acceleration but this would prevent USB video cameras to work, so it's useless for robot development (even more so since OpenCL can't be even used).&lt;br /&gt;
* [http://forum.odroid.com/viewtopic.php?f=8&amp;amp;t=12 Linaro Ubuntu 12.11] with HardKernel's Linux kernel, version 3.0.60. Grab [http://dn.odroid.com/Ubuntu_U2/20130125/ this image] dated 25-01-2013 and then apply the latest point kernel point update (at the time of writing, it is version 3.0.63, dated 13-02-2013) following the instructions given on the thread's opening post.&lt;br /&gt;
&lt;br /&gt;
'''All OSes have wireless networking issues, please read below for more information.'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Tested I/O devices ===&lt;br /&gt;
&lt;br /&gt;
==== Monitors ====&lt;br /&gt;
Monitors need a native HDMI interface to work with ODROIDs due to the strict requirements of the Exynos system-on-chip; for the same reason, external HDMI-to-DVI adapters are also '''not''' recommended, as you could result having a blank image screen ([http://odroid.us/mediawiki/index.php?title=Troubleshooting#My_Device_boots_.28The_alive_led_blinks.29.2C_but_it_doesnt_show_anything_on_the_display source] )&lt;br /&gt;
&lt;br /&gt;
This is a list of monitors and TV screens with native HDMI ports that are known to work.&lt;br /&gt;
* Sony KDL-32V4500&lt;br /&gt;
* Samsung Syncmaster XL2370 HD&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Tested wireless communication ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Tested wired communication ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Unresolved issues ===&lt;br /&gt;
&lt;br /&gt;
==== Wireless Networking (all tested OSes) ====&lt;br /&gt;
Wireless communications seem to be very troublesome, as the network interfaces tend to lose or drop a lot of packages, both in RX and TX, to the point that a reliable SSH connection cannot be established. This happens at least with the &amp;quot;officially supported&amp;quot; wireless NIC (with a Realtek RTL8191SU chipset), even if the wifi signal strength is excellent.&lt;br /&gt;
&lt;br /&gt;
A curious aspect of this issue is that only incoming packets get dropped a lot, while outgoing packets are very modestly affected.&lt;br /&gt;
&lt;br /&gt;
This being said, the RTL8191SU adapter loses some packets along the way also while being connected to other computers, so maybe it's really not the best USB wifi adapter ''ever''.&lt;br /&gt;
&lt;br /&gt;
  root@odroid:~# ifconfig wlan6&lt;br /&gt;
  wlan6     Link encap:Ethernet  HWaddr **:**:**:**:**:**&lt;br /&gt;
           inet addr:192.168.1.60  Bcast:192.168.1.255  Mask:255.255.255.0&lt;br /&gt;
           inet6 addr: fe80::ee1a:59ff:fe0e:f122/64 Scope:Link&lt;br /&gt;
           UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1&lt;br /&gt;
           RX packets:453 errors:0 dropped:600 overruns:0 frame:0&lt;br /&gt;
           TX packets:292 errors:0 dropped:7 overruns:0 carrier:0&lt;br /&gt;
           collisions:0 txqueuelen:1000&lt;br /&gt;
           RX bytes:79264 (79.2 KB)  TX bytes:35116 (35.1 KB)&lt;br /&gt;
&lt;br /&gt;
  odroid@odroid:~$ iwconfig wlan6&lt;br /&gt;
  wlan6     IEEE 802.11bg  ESSID:&amp;quot;MyWirelessNet&amp;quot;  Nickname:&amp;quot;&amp;lt;WIFI@REALTEK&amp;gt;&amp;quot;&lt;br /&gt;
          Mode:Managed  Frequency:2.437 GHz  Access Point: **:**:**:**:**:**&lt;br /&gt;
          Bit Rate:54 Mb/s   Sensitivity:0/0  &lt;br /&gt;
          Retry:off   RTS thr:off   Fragment thr:off&lt;br /&gt;
          Encryption key:****-****-****-****-****-****-****-****   Security mode:open&lt;br /&gt;
          Power Management:off&lt;br /&gt;
          Link Quality=100/100  Signal level=100/100  Noise level=0/100&lt;br /&gt;
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0&lt;br /&gt;
          Tx excessive retries:0  Invalid misc:0   Missed beacon:0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Realtek RTL8192CU =====&lt;br /&gt;
This chipset seems not to be even detected by the stock HK kernel (all versions of it), but it is possible to use it after recompiling the kernel, disabling the in-kernel module for the NIC, and integrating [http://www.realtek.com/downloads/downloadsView.aspx?Langid=1&amp;amp;PNid=21&amp;amp;PFid=48&amp;amp;Level=5&amp;amp;Conn=4&amp;amp;DownTypeID=3&amp;amp;GetDown=false&amp;amp;Downloads=true Realtek's official driver] for this chipset inside it (instructions are included in the package).&lt;br /&gt;
&lt;br /&gt;
However, you still get a huge packet loss rate, even if you disable the power saving feature of the driver by loading the kernel module with&lt;br /&gt;
  sudo modprobe 8192cu rtw_power_mgnt=0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Solved issues ===&lt;br /&gt;
&lt;br /&gt;
==== lshw glitches (all tested OSes) ====&lt;br /&gt;
With the stock kernel the lshw command seems to be partly broken, but this is resolved by calling it with&lt;br /&gt;
  sudo lshw -disable dmi&lt;br /&gt;
although this will prevent the detection of certain features of the board. Another way of fixing this issue is to recompile the kernel by hand (see the how-to linked above).&lt;/div&gt;</summary>
		<author><name>AndreaSalvi</name></author>	</entry>

	<entry>
		<id>https://airwiki.deib.polimi.it/index.php?title=ODROID&amp;diff=16338</id>
		<title>ODROID</title>
		<link rel="alternate" type="text/html" href="https://airwiki.deib.polimi.it/index.php?title=ODROID&amp;diff=16338"/>
				<updated>2013-05-19T17:14:43Z</updated>
		
		<summary type="html">&lt;p&gt;AndreaSalvi: /* Unresolved issues */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There are two [http://www.hardkernel.com/ ODROID] U2 for development of small robots. Here are details and suggestions for their use.&lt;br /&gt;
&lt;br /&gt;
=== Useful How-Tos ===&lt;br /&gt;
* [http://forum.odroid.com/viewtopic.php?f=52&amp;amp;t=81 Kernel recompiling process for the ODROID-U2]; it is necessary to do this if you ever wish to install external/out-of-tree drivers, as the &amp;quot;official package&amp;quot; is missing several critical kernel headers.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Unresolved issues ===&lt;br /&gt;
&lt;br /&gt;
==== Wireless Networking ====&lt;br /&gt;
Wireless communications seem to be very troublesome, as the network interfaces tend to lose or drop a lot of packages, both in RX and TX, to the point that a reliable SSH connection cannot be established. This happens at least with the &amp;quot;officially supported&amp;quot; wireless NIC (with a Realtek RTL8191SU chipset), even if the wifi signal strength is excellent.&lt;br /&gt;
&lt;br /&gt;
This being said, the RTL8191SU adapter loses some packets along the way also while being connected to other computers, so maybe it's really not the best USB wifi adapter ''ever''.&lt;br /&gt;
&lt;br /&gt;
  root@odroid:~# ifconfig wlan6&lt;br /&gt;
  wlan6     Link encap:Ethernet  HWaddr **:**:**:**:**:**&lt;br /&gt;
           inet addr:192.168.1.60  Bcast:192.168.1.255  Mask:255.255.255.0&lt;br /&gt;
           inet6 addr: fe80::ee1a:59ff:fe0e:f122/64 Scope:Link&lt;br /&gt;
           UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1&lt;br /&gt;
           RX packets:453 errors:0 dropped:600 overruns:0 frame:0&lt;br /&gt;
           TX packets:292 errors:0 dropped:7 overruns:0 carrier:0&lt;br /&gt;
           collisions:0 txqueuelen:1000&lt;br /&gt;
           RX bytes:79264 (79.2 KB)  TX bytes:35116 (35.1 KB)&lt;br /&gt;
&lt;br /&gt;
  odroid@odroid:~$ iwconfig wlan6&lt;br /&gt;
  wlan6     IEEE 802.11bg  ESSID:&amp;quot;MyWirelessNet&amp;quot;  Nickname:&amp;quot;&amp;lt;WIFI@REALTEK&amp;gt;&amp;quot;&lt;br /&gt;
          Mode:Managed  Frequency:2.437 GHz  Access Point: **:**:**:**:**:**&lt;br /&gt;
          Bit Rate:54 Mb/s   Sensitivity:0/0  &lt;br /&gt;
          Retry:off   RTS thr:off   Fragment thr:off&lt;br /&gt;
          Encryption key:****-****-****-****-****-****-****-****   Security mode:open&lt;br /&gt;
          Power Management:off&lt;br /&gt;
          Link Quality=100/100  Signal level=100/100  Noise level=0/100&lt;br /&gt;
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0&lt;br /&gt;
          Tx excessive retries:0  Invalid misc:0   Missed beacon:0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Realtek RTL8192CU =====&lt;br /&gt;
This chipset seems not to be even detected by the stock HK kernel, but it is possible to use it after recompiling the kernel, disabling the in-kernel module for the NIC, and integrating [http://www.realtek.com/downloads/downloadsView.aspx?Langid=1&amp;amp;PNid=21&amp;amp;PFid=48&amp;amp;Level=5&amp;amp;Conn=4&amp;amp;DownTypeID=3&amp;amp;GetDown=false&amp;amp;Downloads=true Realtek's official driver] for this chipset inside it (instructions are included in the package).&lt;br /&gt;
&lt;br /&gt;
However, you still get a huge packet loss rate, even if you disable the power saving feature of the driver by loading the kernel module with&lt;br /&gt;
  sudo modprobe 8192cu rtw_power_mgnt=0&lt;br /&gt;
&lt;br /&gt;
=== Tested OS and versions ===&lt;br /&gt;
* [http://forum.odroid.com/viewtopic.php?f=8&amp;amp;t=1193 Xubuntu 13.04]  for armhf architectures, released by HardKernel with their [https://github.com/hardkernel/linux modified Linux kernel, version 3.0.75]. The kernel can be recompiled for using 3D video acceleration but this would prevent USB video cameras to work, so it's useless for robot development (even more so since OpenCL can't be even used).&lt;br /&gt;
Note: in this version of the OS, the lshw command seems to be partly broken, but this is resolved by calling it with&lt;br /&gt;
  sudo lshw -disable dmi&lt;br /&gt;
although this will prevent the detection of certain features of the board.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Tested I/O devices ===&lt;br /&gt;
&lt;br /&gt;
==== Monitors ====&lt;br /&gt;
Monitors need a native HDMI interface to work with ODROIDs due to the strict requirements of the Exynos system-on-chip; for the same reason, external HDMI-to-DVI adapters are also '''not''' recommended, as you could result having a blank image screen ([http://odroid.us/mediawiki/index.php?title=Troubleshooting#My_Device_boots_.28The_alive_led_blinks.29.2C_but_it_doesnt_show_anything_on_the_display source] )&lt;br /&gt;
&lt;br /&gt;
This is a list of monitors and TV screens with native HDMI ports that are known to work.&lt;br /&gt;
* Sony KDL-32V4500&lt;br /&gt;
* Samsung Syncmaster XL2370 HD&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Tested wireless communication ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Tested wired communication ===&lt;/div&gt;</summary>
		<author><name>AndreaSalvi</name></author>	</entry>

	<entry>
		<id>https://airwiki.deib.polimi.it/index.php?title=ODROID&amp;diff=16337</id>
		<title>ODROID</title>
		<link rel="alternate" type="text/html" href="https://airwiki.deib.polimi.it/index.php?title=ODROID&amp;diff=16337"/>
				<updated>2013-05-19T16:50:58Z</updated>
		
		<summary type="html">&lt;p&gt;AndreaSalvi: /* Wireless Networking */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There are two [http://www.hardkernel.com/ ODROID] U2 for development of small robots. Here are details and suggestions for their use.&lt;br /&gt;
&lt;br /&gt;
=== Useful How-Tos ===&lt;br /&gt;
* [http://forum.odroid.com/viewtopic.php?f=52&amp;amp;t=81 Kernel recompiling process for the ODROID-U2]; it is necessary to do this if you ever wish to install external/out-of-tree drivers, as the &amp;quot;official package&amp;quot; is missing several critical kernel headers.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Unresolved issues ===&lt;br /&gt;
&lt;br /&gt;
==== Wireless Networking ====&lt;br /&gt;
Wireless communications seem to be very troublesome, as the network interfaces tend to lose or drop a lot of packages, both in RX and TX, to the point that a reliable SSH connection cannot be established. This happens at least with the &amp;quot;officially supported&amp;quot; wireless NIC (with a Realtek RTL 8191SU chipset), even if the wifi signal strength is excellent.&lt;br /&gt;
&lt;br /&gt;
  root@odroid:~# ifconfig wlan6&lt;br /&gt;
  wlan6     Link encap:Ethernet  HWaddr **:**:**:**:**:**&lt;br /&gt;
           inet addr:192.168.1.60  Bcast:192.168.1.255  Mask:255.255.255.0&lt;br /&gt;
           inet6 addr: fe80::ee1a:59ff:fe0e:f122/64 Scope:Link&lt;br /&gt;
           UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1&lt;br /&gt;
           RX packets:453 errors:0 dropped:600 overruns:0 frame:0&lt;br /&gt;
           TX packets:292 errors:0 dropped:7 overruns:0 carrier:0&lt;br /&gt;
           collisions:0 txqueuelen:1000&lt;br /&gt;
           RX bytes:79264 (79.2 KB)  TX bytes:35116 (35.1 KB)&lt;br /&gt;
&lt;br /&gt;
  odroid@odroid:~$ iwconfig wlan6&lt;br /&gt;
  wlan6     IEEE 802.11bg  ESSID:&amp;quot;MyWirelessNet&amp;quot;  Nickname:&amp;quot;&amp;lt;WIFI@REALTEK&amp;gt;&amp;quot;&lt;br /&gt;
          Mode:Managed  Frequency:2.437 GHz  Access Point: **:**:**:**:**:**&lt;br /&gt;
          Bit Rate:54 Mb/s   Sensitivity:0/0  &lt;br /&gt;
          Retry:off   RTS thr:off   Fragment thr:off&lt;br /&gt;
          Encryption key:****-****-****-****-****-****-****-****   Security mode:open&lt;br /&gt;
          Power Management:off&lt;br /&gt;
          Link Quality=100/100  Signal level=100/100  Noise level=0/100&lt;br /&gt;
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0&lt;br /&gt;
          Tx excessive retries:0  Invalid misc:0   Missed beacon:0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Realtek RTL8192CU =====&lt;br /&gt;
This chipset seems not to be even detected by the stock HK kernel, but it is possible to use it after recompiling the kernel, disabling the in-kernel module for the NIC, and integrating [http://www.realtek.com/downloads/downloadsView.aspx?Langid=1&amp;amp;PNid=21&amp;amp;PFid=48&amp;amp;Level=5&amp;amp;Conn=4&amp;amp;DownTypeID=3&amp;amp;GetDown=false&amp;amp;Downloads=true Realtek's official driver] for this chipset inside it (instructions are included in the package).&lt;br /&gt;
&lt;br /&gt;
However, you still get a huge packet loss rate, even if you disable the power saving feature of the driver by loading the kernel module with&lt;br /&gt;
  sudo modprobe 8192cu rtw_power_mgnt=0&lt;br /&gt;
&lt;br /&gt;
=== Tested OS and versions ===&lt;br /&gt;
* [http://forum.odroid.com/viewtopic.php?f=8&amp;amp;t=1193 Xubuntu 13.04]  for armhf architectures, released by HardKernel with their [https://github.com/hardkernel/linux modified Linux kernel, version 3.0.75]. The kernel can be recompiled for using 3D video acceleration but this would prevent USB video cameras to work, so it's useless for robot development (even more so since OpenCL can't be even used).&lt;br /&gt;
Note: in this version of the OS, the lshw command seems to be partly broken, but this is resolved by calling it with&lt;br /&gt;
  sudo lshw -disable dmi&lt;br /&gt;
although this will prevent the detection of certain features of the board.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Tested I/O devices ===&lt;br /&gt;
&lt;br /&gt;
==== Monitors ====&lt;br /&gt;
Monitors need a native HDMI interface to work with ODROIDs due to the strict requirements of the Exynos system-on-chip; for the same reason, external HDMI-to-DVI adapters are also '''not''' recommended, as you could result having a blank image screen ([http://odroid.us/mediawiki/index.php?title=Troubleshooting#My_Device_boots_.28The_alive_led_blinks.29.2C_but_it_doesnt_show_anything_on_the_display source] )&lt;br /&gt;
&lt;br /&gt;
This is a list of monitors and TV screens with native HDMI ports that are known to work.&lt;br /&gt;
* Sony KDL-32V4500&lt;br /&gt;
* Samsung Syncmaster XL2370 HD&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Tested wireless communication ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Tested wired communication ===&lt;/div&gt;</summary>
		<author><name>AndreaSalvi</name></author>	</entry>

	<entry>
		<id>https://airwiki.deib.polimi.it/index.php?title=ODROID&amp;diff=16336</id>
		<title>ODROID</title>
		<link rel="alternate" type="text/html" href="https://airwiki.deib.polimi.it/index.php?title=ODROID&amp;diff=16336"/>
				<updated>2013-05-19T16:43:55Z</updated>
		
		<summary type="html">&lt;p&gt;AndreaSalvi: /* Realtek RTL8192CU */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There are two [http://www.hardkernel.com/ ODROID] U2 for development of small robots. Here are details and suggestions for their use.&lt;br /&gt;
&lt;br /&gt;
=== Useful How-Tos ===&lt;br /&gt;
* [http://forum.odroid.com/viewtopic.php?f=52&amp;amp;t=81 Kernel recompiling process for the ODROID-U2]; it is necessary to do this if you ever wish to install external/out-of-tree drivers, as the &amp;quot;official package&amp;quot; is missing several critical kernel headers.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Unresolved issues ===&lt;br /&gt;
&lt;br /&gt;
==== Wireless Networking ====&lt;br /&gt;
Wireless communications seem to be very troublesome, as the network interfaces tend to lose or drop a lot of packages, both in RX and TX, to the point that a reliable SSH connection cannot be established. This happens at least with the &amp;quot;officially supported&amp;quot; wireless NIC (with a Realtek RTL 8191SU chipset).&lt;br /&gt;
&lt;br /&gt;
  root@odroid:~# ifconfig wlan6&lt;br /&gt;
  wlan6     Link encap:Ethernet  HWaddr **:**:**:**:**:**&lt;br /&gt;
           inet addr:192.168.1.60  Bcast:192.168.1.255  Mask:255.255.255.0&lt;br /&gt;
           inet6 addr: fe80::ee1a:59ff:fe0e:f122/64 Scope:Link&lt;br /&gt;
           UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1&lt;br /&gt;
           RX packets:453 errors:0 dropped:600 overruns:0 frame:0&lt;br /&gt;
           TX packets:292 errors:0 dropped:7 overruns:0 carrier:0&lt;br /&gt;
           collisions:0 txqueuelen:1000&lt;br /&gt;
           RX bytes:79264 (79.2 KB)  TX bytes:35116 (35.1 KB)&lt;br /&gt;
&lt;br /&gt;
===== Realtek RTL8192CU =====&lt;br /&gt;
This chipset seems not to be even detected by the stock HK kernel, but it is possible to use it after recompiling the kernel, disabling the in-kernel module for the NIC, and integrating [http://www.realtek.com/downloads/downloadsView.aspx?Langid=1&amp;amp;PNid=21&amp;amp;PFid=48&amp;amp;Level=5&amp;amp;Conn=4&amp;amp;DownTypeID=3&amp;amp;GetDown=false&amp;amp;Downloads=true Realtek's official driver] for this chipset inside it (instructions are included in the package).&lt;br /&gt;
&lt;br /&gt;
However, you still get a huge packet loss rate, even if you disable the power saving feature of the driver by loading the kernel module with&lt;br /&gt;
  sudo modprobe 8192cu rtw_power_mgnt=0&lt;br /&gt;
&lt;br /&gt;
=== Tested OS and versions ===&lt;br /&gt;
* [http://forum.odroid.com/viewtopic.php?f=8&amp;amp;t=1193 Xubuntu 13.04]  for armhf architectures, released by HardKernel with their [https://github.com/hardkernel/linux modified Linux kernel, version 3.0.75]. The kernel can be recompiled for using 3D video acceleration but this would prevent USB video cameras to work, so it's useless for robot development (even more so since OpenCL can't be even used).&lt;br /&gt;
Note: in this version of the OS, the lshw command seems to be partly broken, but this is resolved by calling it with&lt;br /&gt;
  sudo lshw -disable dmi&lt;br /&gt;
although this will prevent the detection of certain features of the board.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Tested I/O devices ===&lt;br /&gt;
&lt;br /&gt;
==== Monitors ====&lt;br /&gt;
Monitors need a native HDMI interface to work with ODROIDs due to the strict requirements of the Exynos system-on-chip; for the same reason, external HDMI-to-DVI adapters are also '''not''' recommended, as you could result having a blank image screen ([http://odroid.us/mediawiki/index.php?title=Troubleshooting#My_Device_boots_.28The_alive_led_blinks.29.2C_but_it_doesnt_show_anything_on_the_display source] )&lt;br /&gt;
&lt;br /&gt;
This is a list of monitors and TV screens with native HDMI ports that are known to work.&lt;br /&gt;
* Sony KDL-32V4500&lt;br /&gt;
* Samsung Syncmaster XL2370 HD&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Tested wireless communication ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Tested wired communication ===&lt;/div&gt;</summary>
		<author><name>AndreaSalvi</name></author>	</entry>

	<entry>
		<id>https://airwiki.deib.polimi.it/index.php?title=ODROID&amp;diff=16334</id>
		<title>ODROID</title>
		<link rel="alternate" type="text/html" href="https://airwiki.deib.polimi.it/index.php?title=ODROID&amp;diff=16334"/>
				<updated>2013-05-19T15:19:39Z</updated>
		
		<summary type="html">&lt;p&gt;AndreaSalvi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There are two [http://www.hardkernel.com/ ODROID] U2 for development of small robots. Here are details and suggestions for their use.&lt;br /&gt;
&lt;br /&gt;
=== Useful How-Tos ===&lt;br /&gt;
* [http://forum.odroid.com/viewtopic.php?f=52&amp;amp;t=81 Kernel recompiling process for the ODROID-U2]; it is necessary to do this if you ever wish to install external/out-of-tree drivers, as the &amp;quot;official package&amp;quot; is missing several critical kernel headers.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Unresolved issues ===&lt;br /&gt;
&lt;br /&gt;
==== Wireless Networking ====&lt;br /&gt;
Wireless communications seem to be very troublesome, as the network interfaces tend to lose or drop a lot of packages, both in RX and TX, to the point that a reliable SSH connection cannot be established. This happens at least with the &amp;quot;officially supported&amp;quot; wireless NIC (with a Realtek RTL 8191SU chipset).&lt;br /&gt;
&lt;br /&gt;
  root@odroid:~# ifconfig wlan6&lt;br /&gt;
  wlan6     Link encap:Ethernet  HWaddr **:**:**:**:**:**&lt;br /&gt;
           inet addr:192.168.1.60  Bcast:192.168.1.255  Mask:255.255.255.0&lt;br /&gt;
           inet6 addr: fe80::ee1a:59ff:fe0e:f122/64 Scope:Link&lt;br /&gt;
           UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1&lt;br /&gt;
           RX packets:453 errors:0 dropped:600 overruns:0 frame:0&lt;br /&gt;
           TX packets:292 errors:0 dropped:7 overruns:0 carrier:0&lt;br /&gt;
           collisions:0 txqueuelen:1000&lt;br /&gt;
           RX bytes:79264 (79.2 KB)  TX bytes:35116 (35.1 KB)&lt;br /&gt;
&lt;br /&gt;
===== Realtek RTL8192CU =====&lt;br /&gt;
This chipset seems not to be even detected by the stock HK kernel, but it is possible to use it after recompiling the kernel, disabling the in-kernel module for the NIC, and integrating [http://www.realtek.com/downloads/downloadsView.aspx?Langid=1&amp;amp;PNid=21&amp;amp;PFid=48&amp;amp;Level=5&amp;amp;Conn=4&amp;amp;DownTypeID=3&amp;amp;GetDown=false&amp;amp;Downloads=true Realtek's official driver] for this chipset inside it (instructions are included in the package).&lt;br /&gt;
&lt;br /&gt;
=== Tested OS and versions ===&lt;br /&gt;
* [http://forum.odroid.com/viewtopic.php?f=8&amp;amp;t=1193 Xubuntu 13.04]  for armhf architectures, released by HardKernel with their [https://github.com/hardkernel/linux modified Linux kernel, version 3.0.75]. The kernel can be recompiled for using 3D video acceleration but this would prevent USB video cameras to work, so it's useless for robot development (even more so since OpenCL can't be even used).&lt;br /&gt;
Note: in this version of the OS, the lshw command seems to be partly broken, but this is resolved by calling it with&lt;br /&gt;
  sudo lshw -disable dmi&lt;br /&gt;
although this will prevent the detection of certain features of the board.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Tested I/O devices ===&lt;br /&gt;
&lt;br /&gt;
==== Monitors ====&lt;br /&gt;
Monitors need a native HDMI interface to work with ODROIDs due to the strict requirements of the Exynos system-on-chip; for the same reason, external HDMI-to-DVI adapters are also '''not''' recommended, as you could result having a blank image screen ([http://odroid.us/mediawiki/index.php?title=Troubleshooting#My_Device_boots_.28The_alive_led_blinks.29.2C_but_it_doesnt_show_anything_on_the_display source] )&lt;br /&gt;
&lt;br /&gt;
This is a list of monitors and TV screens with native HDMI ports that are known to work.&lt;br /&gt;
* Sony KDL-32V4500&lt;br /&gt;
* Samsung Syncmaster XL2370 HD&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Tested wireless communication ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Tested wired communication ===&lt;/div&gt;</summary>
		<author><name>AndreaSalvi</name></author>	</entry>

	<entry>
		<id>https://airwiki.deib.polimi.it/index.php?title=ODROID&amp;diff=16333</id>
		<title>ODROID</title>
		<link rel="alternate" type="text/html" href="https://airwiki.deib.polimi.it/index.php?title=ODROID&amp;diff=16333"/>
				<updated>2013-05-19T14:55:20Z</updated>
		
		<summary type="html">&lt;p&gt;AndreaSalvi: /* Wireless Networking */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There are two [http://www.hardkernel.com/ ODROID] U2 for development of small robots. Here are details and suggestions for their use.&lt;br /&gt;
&lt;br /&gt;
=== Useful How-Tos ===&lt;br /&gt;
* [http://forum.odroid.com/viewtopic.php?f=52&amp;amp;t=81 Kernel recompiling process for the ODROID-U2]; it is necessary to do this if you ever wish to install external/out-of-tree drivers, as the &amp;quot;official package&amp;quot; is missing several critical kernel headers.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Unresolved issues ===&lt;br /&gt;
&lt;br /&gt;
==== Wireless Networking ====&lt;br /&gt;
Wireless communications seem to be very troublesome, as the network interfaces tend to lose or drop a lot of packages, both in RX and TX, to the point that a reliable SSH connection cannot be established. This happens at least with the &amp;quot;officially supported&amp;quot; wireless NIC (with a Realtek RTL 8191SU chipset).&lt;br /&gt;
&lt;br /&gt;
  root@odroid:~# ifconfig wlan6&lt;br /&gt;
  wlan6     Link encap:Ethernet  HWaddr **:**:**:**:**:**&lt;br /&gt;
           inet addr:192.168.1.60  Bcast:192.168.1.255  Mask:255.255.255.0&lt;br /&gt;
           inet6 addr: fe80::ee1a:59ff:fe0e:f122/64 Scope:Link&lt;br /&gt;
           UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1&lt;br /&gt;
           RX packets:453 errors:0 dropped:600 overruns:0 frame:0&lt;br /&gt;
           TX packets:292 errors:0 dropped:7 overruns:0 carrier:0&lt;br /&gt;
           collisions:0 txqueuelen:1000&lt;br /&gt;
           RX bytes:79264 (79.2 KB)  TX bytes:35116 (35.1 KB)&lt;br /&gt;
&lt;br /&gt;
===== Realtek RTL8192CU =====&lt;br /&gt;
This chipset seems not to be even detected by the stock HK kernel, but it is possible to use it after recompiling the kernel, disabling the in-kernel module for the NIC, and integrating [http://www.realtek.com/downloads/downloadsView.aspx?Langid=1&amp;amp;PNid=21&amp;amp;PFid=48&amp;amp;Level=5&amp;amp;Conn=4&amp;amp;DownTypeID=3&amp;amp;GetDown=false&amp;amp;Downloads=true Realtek's official driver] for this chipset inside it (instructions are included in the package).&lt;br /&gt;
&lt;br /&gt;
=== Tested OS and versions ===&lt;br /&gt;
* [http://forum.odroid.com/viewtopic.php?f=8&amp;amp;t=1193 Xubuntu 13.04]  for armhf architectures, released by HardKernel with their [https://github.com/hardkernel/linux modified Linux kernel, version 3.0.75]. The kernel can be recompiled for using 3D video acceleration but this would prevent USB video cameras to work, so it's useless for robot development (even more so since OpenCL can't be even used).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Tested I/O devices ===&lt;br /&gt;
&lt;br /&gt;
==== Monitors ====&lt;br /&gt;
Monitors need a native HDMI interface to work with ODROIDs due to the strict requirements of the Exynos system-on-chip; for the same reason, external HDMI-to-DVI adapters are also '''not''' recommended, as you could result having a blank image screen ([http://odroid.us/mediawiki/index.php?title=Troubleshooting#My_Device_boots_.28The_alive_led_blinks.29.2C_but_it_doesnt_show_anything_on_the_display source] )&lt;br /&gt;
&lt;br /&gt;
This is a list of monitors and TV screens with native HDMI ports that are known to work.&lt;br /&gt;
* Sony KDL-32V4500&lt;br /&gt;
* Samsung Syncmaster XL2370 HD&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Tested wireless communication ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Tested wired communication ===&lt;/div&gt;</summary>
		<author><name>AndreaSalvi</name></author>	</entry>

	<entry>
		<id>https://airwiki.deib.polimi.it/index.php?title=ODROID&amp;diff=16332</id>
		<title>ODROID</title>
		<link rel="alternate" type="text/html" href="https://airwiki.deib.polimi.it/index.php?title=ODROID&amp;diff=16332"/>
				<updated>2013-05-19T14:54:50Z</updated>
		
		<summary type="html">&lt;p&gt;AndreaSalvi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There are two [http://www.hardkernel.com/ ODROID] U2 for development of small robots. Here are details and suggestions for their use.&lt;br /&gt;
&lt;br /&gt;
=== Useful How-Tos ===&lt;br /&gt;
* [http://forum.odroid.com/viewtopic.php?f=52&amp;amp;t=81 Kernel recompiling process for the ODROID-U2]; it is necessary to do this if you ever wish to install external/out-of-tree drivers, as the &amp;quot;official package&amp;quot; is missing several critical kernel headers.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Unresolved issues ===&lt;br /&gt;
&lt;br /&gt;
==== Wireless Networking ====&lt;br /&gt;
Wireless communications seem to be very troublesome, as the network interfaces tend to lose or drop a lot of packages, both in RX and TX, to the point that a reliable SSH connection cannot be established. This happens at least with the &amp;quot;officially supported&amp;quot; wireless NIC (with a Realtek RTL 8191SU chipset).&lt;br /&gt;
&lt;br /&gt;
root@odroid:~# ifconfig wlan6&lt;br /&gt;
wlan6     Link encap:Ethernet  HWaddr **:**:**:**:**:**&lt;br /&gt;
           inet addr:192.168.1.60  Bcast:192.168.1.255  Mask:255.255.255.0&lt;br /&gt;
           inet6 addr: fe80::ee1a:59ff:fe0e:f122/64 Scope:Link&lt;br /&gt;
           UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1&lt;br /&gt;
           RX packets:453 errors:0 dropped:600 overruns:0 frame:0&lt;br /&gt;
           TX packets:292 errors:0 dropped:7 overruns:0 carrier:0&lt;br /&gt;
           collisions:0 txqueuelen:1000&lt;br /&gt;
           RX bytes:79264 (79.2 KB)  TX bytes:35116 (35.1 KB)&lt;br /&gt;
&lt;br /&gt;
===== Realtek RTL8192CU =====&lt;br /&gt;
This chipset seems not to be even detected by the stock HK kernel, but it is possible to use it after recompiling the kernel, disabling the in-kernel module for the NIC, and integrating [http://www.realtek.com/downloads/downloadsView.aspx?Langid=1&amp;amp;PNid=21&amp;amp;PFid=48&amp;amp;Level=5&amp;amp;Conn=4&amp;amp;DownTypeID=3&amp;amp;GetDown=false&amp;amp;Downloads=true Realtek's official driver] for this chipset inside it (instructions are included in the package).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Tested OS and versions ===&lt;br /&gt;
* [http://forum.odroid.com/viewtopic.php?f=8&amp;amp;t=1193 Xubuntu 13.04]  for armhf architectures, released by HardKernel with their [https://github.com/hardkernel/linux modified Linux kernel, version 3.0.75]. The kernel can be recompiled for using 3D video acceleration but this would prevent USB video cameras to work, so it's useless for robot development (even more so since OpenCL can't be even used).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Tested I/O devices ===&lt;br /&gt;
&lt;br /&gt;
==== Monitors ====&lt;br /&gt;
Monitors need a native HDMI interface to work with ODROIDs due to the strict requirements of the Exynos system-on-chip; for the same reason, external HDMI-to-DVI adapters are also '''not''' recommended, as you could result having a blank image screen ([http://odroid.us/mediawiki/index.php?title=Troubleshooting#My_Device_boots_.28The_alive_led_blinks.29.2C_but_it_doesnt_show_anything_on_the_display source] )&lt;br /&gt;
&lt;br /&gt;
This is a list of monitors and TV screens with native HDMI ports that are known to work.&lt;br /&gt;
* Sony KDL-32V4500&lt;br /&gt;
* Samsung Syncmaster XL2370 HD&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Tested wireless communication ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Tested wired communication ===&lt;/div&gt;</summary>
		<author><name>AndreaSalvi</name></author>	</entry>

	<entry>
		<id>https://airwiki.deib.polimi.it/index.php?title=ODROID&amp;diff=16331</id>
		<title>ODROID</title>
		<link rel="alternate" type="text/html" href="https://airwiki.deib.polimi.it/index.php?title=ODROID&amp;diff=16331"/>
				<updated>2013-05-19T14:48:37Z</updated>
		
		<summary type="html">&lt;p&gt;AndreaSalvi: Added new tested OS; added Unresolved Issues, How-Tos, and Monitors sections;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There are two [http://www.hardkernel.com/ ODROID] U2 for development of small robots. Here are details and suggestions for their use.&lt;br /&gt;
&lt;br /&gt;
=== Useful How-Tos ===&lt;br /&gt;
* [http://forum.odroid.com/viewtopic.php?f=52&amp;amp;t=81 Kernel recompiling process for the ODROID-U2]; it is necessary to do this if you ever wish to install external/out-of-tree drivers, as the &amp;quot;official package&amp;quot; is missing several critical kernel headers.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Unresolved issues ===&lt;br /&gt;
&lt;br /&gt;
==== Wireless Networking ====&lt;br /&gt;
Wireless communications seem to be very troublesome, as the network interfaces tend to lose or drop a lot of packages, both in RX and TX, to the point that a reliable SSH connection cannot be established. This happens at least with the &amp;quot;officially supported&amp;quot; wireless NIC (with a Realtek RTL 8191SU chipset).&lt;br /&gt;
&lt;br /&gt;
===== Realtek RTL8192CU =====&lt;br /&gt;
This chipset seems not to be even detected by the stock HK kernel, but it is possible to use it after recompiling the kernel, disabling the in-kernel module for the NIC, and integrating [http://www.realtek.com/downloads/downloadsView.aspx?Langid=1&amp;amp;PNid=21&amp;amp;PFid=48&amp;amp;Level=5&amp;amp;Conn=4&amp;amp;DownTypeID=3&amp;amp;GetDown=false&amp;amp;Downloads=true Realtek's official driver] for this chipset inside it (instructions are included in the package).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Tested OS and versions ===&lt;br /&gt;
* [http://forum.odroid.com/viewtopic.php?f=8&amp;amp;t=1193 Xubuntu 13.04]  for armhf architectures, released by HardKernel with their [https://github.com/hardkernel/linux modified Linux kernel, version 3.0.75]. The kernel can be recompiled for using 3D video acceleration but this would prevent USB video cameras to work, so it's useless for robot development (even more so since OpenCL can't be even used).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Tested I/O devices ===&lt;br /&gt;
&lt;br /&gt;
==== Monitors ====&lt;br /&gt;
Monitors need a native HDMI interface to work with ODROIDs due to the strict requirements of the Exynos system-on-chip; for the same reason, external HDMI-to-DVI adapters are also '''not''' recommended, as you could result having a blank image screen ([http://odroid.us/mediawiki/index.php?title=Troubleshooting#My_Device_boots_.28The_alive_led_blinks.29.2C_but_it_doesnt_show_anything_on_the_display source] )&lt;br /&gt;
&lt;br /&gt;
This is a list of monitors and TV screens with native HDMI ports that are known to work.&lt;br /&gt;
* Sony KDL-32V4500&lt;br /&gt;
* Samsung Syncmaster XL2370 HD&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Tested wireless communication ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Tested wired communication ===&lt;/div&gt;</summary>
		<author><name>AndreaSalvi</name></author>	</entry>

	<entry>
		<id>https://airwiki.deib.polimi.it/index.php?title=ODROID&amp;diff=16320</id>
		<title>ODROID</title>
		<link rel="alternate" type="text/html" href="https://airwiki.deib.polimi.it/index.php?title=ODROID&amp;diff=16320"/>
				<updated>2013-05-19T13:40:25Z</updated>
		
		<summary type="html">&lt;p&gt;AndreaSalvi: AndreaSalvi moved page O-Droid to ODROID: The platform name was not correct.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There are two [http://www.hardkernel.com/ O-Droid] U-2 for development of small robots. Here are details and suggestions for their use.&lt;br /&gt;
&lt;br /&gt;
==== Tested OS and versions ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Tested I/O devices ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Tested wireless communication ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Tested wired communication ====&lt;/div&gt;</summary>
		<author><name>AndreaSalvi</name></author>	</entry>

	<entry>
		<id>https://airwiki.deib.polimi.it/index.php?title=O-Droid&amp;diff=16321</id>
		<title>O-Droid</title>
		<link rel="alternate" type="text/html" href="https://airwiki.deib.polimi.it/index.php?title=O-Droid&amp;diff=16321"/>
				<updated>2013-05-19T13:40:25Z</updated>
		
		<summary type="html">&lt;p&gt;AndreaSalvi: AndreaSalvi moved page O-Droid to ODROID: The platform name was not correct.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[ODROID]]&lt;/div&gt;</summary>
		<author><name>AndreaSalvi</name></author>	</entry>

	<entry>
		<id>https://airwiki.deib.polimi.it/index.php?title=Cross-compiling_for_the_RaspberryPi&amp;diff=15851</id>
		<title>Cross-compiling for the RaspberryPi</title>
		<link rel="alternate" type="text/html" href="https://airwiki.deib.polimi.it/index.php?title=Cross-compiling_for_the_RaspberryPi&amp;diff=15851"/>
				<updated>2013-01-09T17:35:19Z</updated>
		
		<summary type="html">&lt;p&gt;AndreaSalvi: Added the &amp;quot;Step Two&amp;quot; section&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page will guide you to setup a complete cross-compiling environment for the [http://raspberrypi.org RaspberryPi] board. This procedure is tailored for and tested on Ubuntu 12.10, but it can be easily adapted for the use on other distributions.&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
* Install all the required software packages:&lt;br /&gt;
 &amp;lt;code&amp;gt;sudo apt-get install git rsync cmake&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''If you are using a 64-bit version of Ubuntu''', also install the 32-bit compatibility libraries:&lt;br /&gt;
 &amp;lt;code&amp;gt;sudo apt-get install ia32-libs&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* The guide will take for granted that you are using the official Raspbian OS image, downloadable from the RaspberryPi website. &lt;br /&gt;
* Moreover, you will need a working SSH connection between the Raspberry and your computer (not covered by this guide).&lt;br /&gt;
&lt;br /&gt;
== Step One: installing the cross-compiler ==&lt;br /&gt;
&lt;br /&gt;
* Select a directory in which you will install everything. For the purposes of this guide, I will consider a subdirectory of your home folder, &amp;lt;code&amp;gt;~/raspberrypi&amp;lt;/code&amp;gt; . Create it and then access it:&lt;br /&gt;
 &amp;lt;code&amp;gt;cd&lt;br /&gt;
 mkdir raspberrypi&lt;br /&gt;
 cd raspberrypi&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Download the &amp;quot;official&amp;quot; cross-compiler of the Raspberry Pi project through &amp;lt;code&amp;gt;git&amp;lt;/code&amp;gt;:&lt;br /&gt;
 &amp;lt;code&amp;gt;git clone git://github.com/raspberrypi/tools.git&amp;lt;/code&amp;gt;&lt;br /&gt;
This will create, among other things, a &amp;lt;code&amp;gt;tools/arm-bcm2708&amp;lt;/code&amp;gt; subfolder containing three different compiler toolchains:&lt;br /&gt;
&lt;br /&gt;
arm-bcm2708-linux-gnueabi&lt;br /&gt;
&lt;br /&gt;
arm-bcm2708hardfp-linux-gnueabi&lt;br /&gt;
&lt;br /&gt;
gcc-linaro-arm-linux-gnueabihf-raspbian&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
We are going to use the third of these toolchains, since it's the most optimized and supports the FPU that is available on the RaspberryPi board.&lt;br /&gt;
&lt;br /&gt;
* Go back to your home directory, and open your &amp;lt;code&amp;gt;.bashrc&amp;lt;/code&amp;gt; configuration file with any text editor, like &amp;lt;code&amp;gt;nano&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;gedit&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;leafpad&amp;lt;/code&amp;gt;, and add this string at the bottom:&lt;br /&gt;
 &amp;lt;code&amp;gt;PATH=$PATH:$HOME/raspberrypi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Now, either logout and login back again, or just close and reopen the terminal window, and type:&lt;br /&gt;
 &amp;lt;code&amp;gt;arm-linux-gnueabihf-gcc -v&amp;lt;/code&amp;gt;&lt;br /&gt;
If all goes well, you should see something like&lt;br /&gt;
 &amp;lt;code&amp;gt;tudhalyas@gondor:~$ arm-linux-gnueabihf-gcc -v&lt;br /&gt;
 Using built-in specs.&lt;br /&gt;
 COLLECT_GCC=arm-linux-gnueabihf-gcc&lt;br /&gt;
 COLLECT_LTO_WRAPPER=/home/tudhalyas/raspberrypi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/../libexec/gcc/arm-linux-gnueabihf/4.7.2/lto-wrapper&lt;br /&gt;
 Target: arm-linux-gnueabihf&lt;br /&gt;
 Configured with: /cbuild/slaves/oort61/crosstool-ng/builds/arm-linux-gnueabihf-raspbian-linux/.build/src/gcc-linaro-4.7-2012.08/configure --build=i686-build_pc-linux-gnu --host=i686-build_pc-linux-gnu --target=arm-linux-gnueabihf --prefix=/cbuild/slaves/oort61/crosstool-ng/builds/arm-linux-gnueabihf-raspbian-linux/install --with-sysroot=/cbuild/slaves/oort61/crosstool-ng/builds/arm-linux-gnueabihf-raspbian-linux/install/arm-linux-gnueabihf/libc --enable-languages=c,c++,fortran --disable-multilib --with-arch=armv6 --with-tune=arm1176jz-s --with-fpu=vfp --with-float=hard --with-pkgversion='crosstool-NG linaro-1.13.1+bzr2458 - Linaro GCC 2012.08' --with-bugurl=https://bugs.launchpad.net/gcc-linaro --enable-__cxa_atexit --enable-libmudflap --enable-libgomp --enable-libssp --with-gmp=/cbuild/slaves/oort61/crosstool-ng/builds/arm-linux-gnueabihf-raspbian-linux/.build/arm-linux-gnueabihf/build/static --with-mpfr=/cbuild/slaves/oort61/crosstool-ng/builds/arm-linux-gnueabihf-raspbian-linux/.build/arm-linux-gnueabihf/build/static --with-mpc=/cbuild/slaves/oort61/crosstool-ng/builds/arm-linux-gnueabihf-raspbian-linux/.build/arm-linux-gnueabihf/build/static --with-ppl=/cbuild/slaves/oort61/crosstool-ng/builds/arm-linux-gnueabihf-raspbian-linux/.build/arm-linux-gnueabihf/build/static --with-cloog=/cbuild/slaves/oort61/crosstool-ng/builds/arm-linux-gnueabihf-raspbian-linux/.build/arm-linux-gnueabihf/build/static --with-libelf=/cbuild/slaves/oort61/crosstool-ng/builds/arm-linux-gnueabihf-raspbian-linux/.build/arm-linux-gnueabihf/build/static --with-host-libstdcxx='-L/cbuild/slaves/oort61/crosstool-ng/builds/arm-linux-gnueabihf-raspbian-linux/.build/arm-linux-gnueabihf/build/static/lib -lpwl' --enable-threads=posix --disable-libstdcxx-pch --enable-linker-build-id --enable-plugin --enable-gold --with-local-prefix=/cbuild/slaves/oort61/crosstool-ng/builds/arm-linux-gnueabihf-raspbian-linux/install/arm-linux-gnueabihf/libc --enable-c99 --enable-long-long&lt;br /&gt;
 Thread model: posix&lt;br /&gt;
 gcc version 4.7.2 20120731 (prerelease) (crosstool-NG linaro-1.13.1+bzr2458 - Linaro GCC 2012.08)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Step Two: set-up your compiling environment ==&lt;br /&gt;
&lt;br /&gt;
* Go back into the &amp;lt;code&amp;gt;raspberrypi&amp;lt;/code&amp;gt; directory and create a subfolder named &amp;lt;code&amp;gt;rootfs&amp;lt;/code&amp;gt;:&lt;br /&gt;
  &amp;lt;code&amp;gt;cd&lt;br /&gt;
 cd raspberrypi&lt;br /&gt;
 mkdir rootfs&amp;lt;/code&amp;gt;&lt;br /&gt;
* Now tell &amp;lt;code&amp;gt;rsync&amp;lt;/code&amp;gt; to copy the entirety of the &amp;lt;code&amp;gt;/usr&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;/lib&amp;lt;/code&amp;gt; directories of your RaspberryPi filesystem into the newly created folder on your computer:&lt;br /&gt;
 &amp;lt;code&amp;gt;rsync -rl --delete-after --safe-links pi@$RASPI:/{lib,usr} $HOME/raspberrypi/rootfs&amp;lt;/code&amp;gt;&lt;br /&gt;
where &amp;lt;code&amp;gt;$RASPI&amp;lt;/code&amp;gt; is the IP address of the Raspberry. You can put this line of code in a text file and save it as a shell script for your convenience.&lt;br /&gt;
* Create a text file called &amp;lt;code&amp;gt;Toolchain-RaspberryPi.cmake&amp;lt;/code&amp;gt; and insert the following into it:&lt;br /&gt;
&lt;br /&gt;
 SET(CMAKE_SYSTEM_NAME Linux)&lt;br /&gt;
 SET(CMAKE_SYSTEM_VERSION 1)&lt;br /&gt;
 # specify the cross compiler&lt;br /&gt;
 SET(CMAKE_C_COMPILER $ENV{HOME}/raspberrypi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/arm-linux-gnueabihf-gcc)&lt;br /&gt;
 SET(CMAKE_CXX_COMPILER $ENV{HOME}/raspberrypi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/arm-linux-gnueabihf-g++)&lt;br /&gt;
 # where is the target environment&lt;br /&gt;
 SET(CMAKE_FIND_ROOT_PATH $ENV{HOME}/raspberrypi/rootfs)&lt;br /&gt;
 # search for programs in the build host directories&lt;br /&gt;
 SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)&lt;br /&gt;
 # for libraries and headers in the target directories&lt;br /&gt;
 SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)&lt;br /&gt;
 SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)&lt;br /&gt;
&lt;br /&gt;
* Now you are able to compile your own projects using &amp;lt;code&amp;gt;cmake&amp;lt;/code&amp;gt;, by passing the path of the Toolchain specification file to the program (supposing that the sources are located into a &amp;lt;code&amp;gt;src&amp;lt;/code&amp;gt; directory which in turn is located into &amp;lt;code&amp;gt;${PROJECT_DIR}&amp;lt;/code&amp;gt;):&lt;br /&gt;
 &amp;lt;code&amp;gt;mkdir ${PROJECT_DIR}/build&lt;br /&gt;
 cd ${PROJECT_DIR}/build&lt;br /&gt;
 cmake -G&amp;quot;Eclipse CDT4 - Unix Makefiles&amp;quot; -D CMAKE_BUILD_TYPE=Debug -D CMAKE_TOOLCHAIN_FILE=$HOME/raspberrypi/Toolchain-RaspberryPi.cmake ../src&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Step Three: Remote program execution through Eclipse ==&lt;br /&gt;
&lt;br /&gt;
... to be continued ...&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
* http://hertaville.com/2012/09/28/development-environment-raspberry-pi-cross-compiler/&lt;br /&gt;
* http://www.kitware.com/blog/home/post/426&lt;br /&gt;
* http://www.cmake.org/Wiki/CMake_Cross_Compiling&lt;/div&gt;</summary>
		<author><name>AndreaSalvi</name></author>	</entry>

	<entry>
		<id>https://airwiki.deib.polimi.it/index.php?title=Cross-compiling_for_the_RaspberryPi&amp;diff=15850</id>
		<title>Cross-compiling for the RaspberryPi</title>
		<link rel="alternate" type="text/html" href="https://airwiki.deib.polimi.it/index.php?title=Cross-compiling_for_the_RaspberryPi&amp;diff=15850"/>
				<updated>2013-01-08T10:27:32Z</updated>
		
		<summary type="html">&lt;p&gt;AndreaSalvi: /* Step One: installing the cross-compiler */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page will guide you to setup a complete cross-compiling environment for the [http://raspberrypi.org RaspberryPi] board. This procedure is tailored for and tested on Ubuntu 12.10, but it can be easily adapted for the use on other distributions.&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
* Install all the required software packages:&lt;br /&gt;
 &amp;lt;code&amp;gt;sudo apt-get install git&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''If you are using a 64-bit version of Ubuntu''', also install the 32-bit compatibility libraries:&lt;br /&gt;
 &amp;lt;code&amp;gt;sudo apt-get install ia32-libs&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* The guide will take for granted that you are using the official Raspbian OS image, downloadable from the RaspberryPi website. &lt;br /&gt;
* Moreover, you will need a working SSH connection between the Raspberry and your computer (not covered by this guide).&lt;br /&gt;
&lt;br /&gt;
== Step One: installing the cross-compiler ==&lt;br /&gt;
&lt;br /&gt;
* Select a directory in which you will install everything. For the purposes of this guide, I will consider a subdirectory of your home folder, &amp;lt;code&amp;gt;~/raspberrypi&amp;lt;/code&amp;gt; . Create it and then access it:&lt;br /&gt;
 &amp;lt;code&amp;gt;cd&lt;br /&gt;
 mkdir raspberrypi&lt;br /&gt;
 cd raspberrypi&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Download the &amp;quot;official&amp;quot; cross-compiler of the Raspberry Pi project through &amp;lt;code&amp;gt;git&amp;lt;/code&amp;gt;:&lt;br /&gt;
 &amp;lt;code&amp;gt;git clone git://github.com/raspberrypi/tools.git&amp;lt;/code&amp;gt;&lt;br /&gt;
This will create, among other things, a &amp;lt;code&amp;gt;tools/arm-bcm2708&amp;lt;/code&amp;gt; subfolder containing three different compiler toolchains:&lt;br /&gt;
&lt;br /&gt;
arm-bcm2708-linux-gnueabi&lt;br /&gt;
&lt;br /&gt;
arm-bcm2708hardfp-linux-gnueabi&lt;br /&gt;
&lt;br /&gt;
gcc-linaro-arm-linux-gnueabihf-raspbian&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
We are going to use the third of these toolchains, since it's the most optimized and supports the FPU that is available on the RaspberryPi board.&lt;br /&gt;
&lt;br /&gt;
* Go back to your home directory, and open your &amp;lt;code&amp;gt;.bashrc&amp;lt;/code&amp;gt; configuration file with any text editor, like &amp;lt;code&amp;gt;nano&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;gedit&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;leafpad&amp;lt;/code&amp;gt;, and add this string at the bottom:&lt;br /&gt;
 &amp;lt;code&amp;gt;PATH=$PATH:$HOME/raspberrypi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Now, either logout and login back again, or just close and reopen the terminal window, and type:&lt;br /&gt;
 &amp;lt;code&amp;gt;arm-linux-gnueabihf-gcc -v&amp;lt;/code&amp;gt;&lt;br /&gt;
If all goes well, you should see something like&lt;br /&gt;
 &amp;lt;code&amp;gt;tudhalyas@gondor:~$ arm-linux-gnueabihf-gcc -v&lt;br /&gt;
 Using built-in specs.&lt;br /&gt;
 COLLECT_GCC=arm-linux-gnueabihf-gcc&lt;br /&gt;
 COLLECT_LTO_WRAPPER=/home/tudhalyas/raspberrypi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/../libexec/gcc/arm-linux-gnueabihf/4.7.2/lto-wrapper&lt;br /&gt;
 Target: arm-linux-gnueabihf&lt;br /&gt;
 Configured with: /cbuild/slaves/oort61/crosstool-ng/builds/arm-linux-gnueabihf-raspbian-linux/.build/src/gcc-linaro-4.7-2012.08/configure --build=i686-build_pc-linux-gnu --host=i686-build_pc-linux-gnu --target=arm-linux-gnueabihf --prefix=/cbuild/slaves/oort61/crosstool-ng/builds/arm-linux-gnueabihf-raspbian-linux/install --with-sysroot=/cbuild/slaves/oort61/crosstool-ng/builds/arm-linux-gnueabihf-raspbian-linux/install/arm-linux-gnueabihf/libc --enable-languages=c,c++,fortran --disable-multilib --with-arch=armv6 --with-tune=arm1176jz-s --with-fpu=vfp --with-float=hard --with-pkgversion='crosstool-NG linaro-1.13.1+bzr2458 - Linaro GCC 2012.08' --with-bugurl=https://bugs.launchpad.net/gcc-linaro --enable-__cxa_atexit --enable-libmudflap --enable-libgomp --enable-libssp --with-gmp=/cbuild/slaves/oort61/crosstool-ng/builds/arm-linux-gnueabihf-raspbian-linux/.build/arm-linux-gnueabihf/build/static --with-mpfr=/cbuild/slaves/oort61/crosstool-ng/builds/arm-linux-gnueabihf-raspbian-linux/.build/arm-linux-gnueabihf/build/static --with-mpc=/cbuild/slaves/oort61/crosstool-ng/builds/arm-linux-gnueabihf-raspbian-linux/.build/arm-linux-gnueabihf/build/static --with-ppl=/cbuild/slaves/oort61/crosstool-ng/builds/arm-linux-gnueabihf-raspbian-linux/.build/arm-linux-gnueabihf/build/static --with-cloog=/cbuild/slaves/oort61/crosstool-ng/builds/arm-linux-gnueabihf-raspbian-linux/.build/arm-linux-gnueabihf/build/static --with-libelf=/cbuild/slaves/oort61/crosstool-ng/builds/arm-linux-gnueabihf-raspbian-linux/.build/arm-linux-gnueabihf/build/static --with-host-libstdcxx='-L/cbuild/slaves/oort61/crosstool-ng/builds/arm-linux-gnueabihf-raspbian-linux/.build/arm-linux-gnueabihf/build/static/lib -lpwl' --enable-threads=posix --disable-libstdcxx-pch --enable-linker-build-id --enable-plugin --enable-gold --with-local-prefix=/cbuild/slaves/oort61/crosstool-ng/builds/arm-linux-gnueabihf-raspbian-linux/install/arm-linux-gnueabihf/libc --enable-c99 --enable-long-long&lt;br /&gt;
 Thread model: posix&lt;br /&gt;
 gcc version 4.7.2 20120731 (prerelease) (crosstool-NG linaro-1.13.1+bzr2458 - Linaro GCC 2012.08)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Step Two: set-up your compiling environment ==&lt;br /&gt;
&lt;br /&gt;
... to be continued ...&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
* http://hertaville.com/2012/09/28/development-environment-raspberry-pi-cross-compiler/&lt;br /&gt;
* http://www.kitware.com/blog/home/post/426&lt;br /&gt;
* http://www.cmake.org/Wiki/CMake_Cross_Compiling&lt;/div&gt;</summary>
		<author><name>AndreaSalvi</name></author>	</entry>

	<entry>
		<id>https://airwiki.deib.polimi.it/index.php?title=Cross-compiling_for_the_RaspberryPi&amp;diff=15849</id>
		<title>Cross-compiling for the RaspberryPi</title>
		<link rel="alternate" type="text/html" href="https://airwiki.deib.polimi.it/index.php?title=Cross-compiling_for_the_RaspberryPi&amp;diff=15849"/>
				<updated>2013-01-08T10:26:00Z</updated>
		
		<summary type="html">&lt;p&gt;AndreaSalvi: /* Step One: installing the cross-compiler */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page will guide you to setup a complete cross-compiling environment for the [http://raspberrypi.org RaspberryPi] board. This procedure is tailored for and tested on Ubuntu 12.10, but it can be easily adapted for the use on other distributions.&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
* Install all the required software packages:&lt;br /&gt;
 &amp;lt;code&amp;gt;sudo apt-get install git&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''If you are using a 64-bit version of Ubuntu''', also install the 32-bit compatibility libraries:&lt;br /&gt;
 &amp;lt;code&amp;gt;sudo apt-get install ia32-libs&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* The guide will take for granted that you are using the official Raspbian OS image, downloadable from the RaspberryPi website. &lt;br /&gt;
* Moreover, you will need a working SSH connection between the Raspberry and your computer (not covered by this guide).&lt;br /&gt;
&lt;br /&gt;
== Step One: installing the cross-compiler ==&lt;br /&gt;
&lt;br /&gt;
* Select a directory in which you will install everything. For the purposes of this guide, I will consider a subdirectory of your home folder, &amp;lt;code&amp;gt;~/raspberrypi&amp;lt;/code&amp;gt; . Create it and then access it:&lt;br /&gt;
 &amp;lt;code&amp;gt;cd&lt;br /&gt;
 mkdir raspberrypi&lt;br /&gt;
 cd raspberrypi&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Download the &amp;quot;official&amp;quot; cross-compiler of the Raspberry Pi project through &amp;lt;code&amp;gt;git&amp;lt;/code&amp;gt;:&lt;br /&gt;
 &amp;lt;code&amp;gt;git clone git://github.com/raspberrypi/tools.git&amp;lt;/code&amp;gt;&lt;br /&gt;
This will create, among other things, a &amp;lt;code&amp;gt;tools/arm-bcm2708&amp;lt;/code&amp;gt; subfolder containing three different compiler toolchains:&lt;br /&gt;
&lt;br /&gt;
arm-bcm2708-linux-gnueabi&lt;br /&gt;
arm-bcm2708hardfp-linux-gnueabi&lt;br /&gt;
gcc-linaro-arm-linux-gnueabihf-raspbian&lt;br /&gt;
&lt;br /&gt;
We are going to use the third of these toolchains, since it's the most optimized and supports the FPU that is available on the RaspberryPi board.&lt;br /&gt;
&lt;br /&gt;
* Go back to your home directory, and open your &amp;lt;code&amp;gt;.bashrc&amp;lt;/code&amp;gt; configuration file with any text editor, like &amp;lt;code&amp;gt;nano&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;gedit&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;leafpad&amp;lt;/code&amp;gt;, and add this string at the bottom:&lt;br /&gt;
 &amp;lt;code&amp;gt;PATH=$PATH:$HOME/raspberrypi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Now, either logout and login back again, or just close and reopen the terminal window, and type:&lt;br /&gt;
 &amp;lt;code&amp;gt;arm-linux-gnueabihf-gcc -v&amp;lt;/code&amp;gt;&lt;br /&gt;
If all goes well, you should see something like&lt;br /&gt;
 &amp;lt;code&amp;gt;tudhalyas@gondor:~$ arm-linux-gnueabihf-gcc -v&lt;br /&gt;
 Using built-in specs.&lt;br /&gt;
 COLLECT_GCC=arm-linux-gnueabihf-gcc&lt;br /&gt;
 COLLECT_LTO_WRAPPER=/home/tudhalyas/raspberrypi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/../libexec/gcc/arm-linux-gnueabihf/4.7.2/lto-wrapper&lt;br /&gt;
 Target: arm-linux-gnueabihf&lt;br /&gt;
 Configured with: /cbuild/slaves/oort61/crosstool-ng/builds/arm-linux-gnueabihf-raspbian-linux/.build/src/gcc-linaro-4.7-2012.08/configure --build=i686-build_pc-linux-gnu --host=i686-build_pc-linux-gnu --target=arm-linux-gnueabihf --prefix=/cbuild/slaves/oort61/crosstool-ng/builds/arm-linux-gnueabihf-raspbian-linux/install --with-sysroot=/cbuild/slaves/oort61/crosstool-ng/builds/arm-linux-gnueabihf-raspbian-linux/install/arm-linux-gnueabihf/libc --enable-languages=c,c++,fortran --disable-multilib --with-arch=armv6 --with-tune=arm1176jz-s --with-fpu=vfp --with-float=hard --with-pkgversion='crosstool-NG linaro-1.13.1+bzr2458 - Linaro GCC 2012.08' --with-bugurl=https://bugs.launchpad.net/gcc-linaro --enable-__cxa_atexit --enable-libmudflap --enable-libgomp --enable-libssp --with-gmp=/cbuild/slaves/oort61/crosstool-ng/builds/arm-linux-gnueabihf-raspbian-linux/.build/arm-linux-gnueabihf/build/static --with-mpfr=/cbuild/slaves/oort61/crosstool-ng/builds/arm-linux-gnueabihf-raspbian-linux/.build/arm-linux-gnueabihf/build/static --with-mpc=/cbuild/slaves/oort61/crosstool-ng/builds/arm-linux-gnueabihf-raspbian-linux/.build/arm-linux-gnueabihf/build/static --with-ppl=/cbuild/slaves/oort61/crosstool-ng/builds/arm-linux-gnueabihf-raspbian-linux/.build/arm-linux-gnueabihf/build/static --with-cloog=/cbuild/slaves/oort61/crosstool-ng/builds/arm-linux-gnueabihf-raspbian-linux/.build/arm-linux-gnueabihf/build/static --with-libelf=/cbuild/slaves/oort61/crosstool-ng/builds/arm-linux-gnueabihf-raspbian-linux/.build/arm-linux-gnueabihf/build/static --with-host-libstdcxx='-L/cbuild/slaves/oort61/crosstool-ng/builds/arm-linux-gnueabihf-raspbian-linux/.build/arm-linux-gnueabihf/build/static/lib -lpwl' --enable-threads=posix --disable-libstdcxx-pch --enable-linker-build-id --enable-plugin --enable-gold --with-local-prefix=/cbuild/slaves/oort61/crosstool-ng/builds/arm-linux-gnueabihf-raspbian-linux/install/arm-linux-gnueabihf/libc --enable-c99 --enable-long-long&lt;br /&gt;
 Thread model: posix&lt;br /&gt;
 gcc version 4.7.2 20120731 (prerelease) (crosstool-NG linaro-1.13.1+bzr2458 - Linaro GCC 2012.08)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Step Two: set-up your compiling environment ==&lt;br /&gt;
&lt;br /&gt;
... to be continued ...&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
* http://hertaville.com/2012/09/28/development-environment-raspberry-pi-cross-compiler/&lt;br /&gt;
* http://www.kitware.com/blog/home/post/426&lt;br /&gt;
* http://www.cmake.org/Wiki/CMake_Cross_Compiling&lt;/div&gt;</summary>
		<author><name>AndreaSalvi</name></author>	</entry>

	<entry>
		<id>https://airwiki.deib.polimi.it/index.php?title=Cross-compiling_for_the_RaspberryPi&amp;diff=15848</id>
		<title>Cross-compiling for the RaspberryPi</title>
		<link rel="alternate" type="text/html" href="https://airwiki.deib.polimi.it/index.php?title=Cross-compiling_for_the_RaspberryPi&amp;diff=15848"/>
				<updated>2013-01-08T10:24:19Z</updated>
		
		<summary type="html">&lt;p&gt;AndreaSalvi: /* Step One: installing the cross-compiler */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page will guide you to setup a complete cross-compiling environment for the [http://raspberrypi.org RaspberryPi] board. This procedure is tailored for and tested on Ubuntu 12.10, but it can be easily adapted for the use on other distributions.&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
* Install all the required software packages:&lt;br /&gt;
 &amp;lt;code&amp;gt;sudo apt-get install git&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''If you are using a 64-bit version of Ubuntu''', also install the 32-bit compatibility libraries:&lt;br /&gt;
 &amp;lt;code&amp;gt;sudo apt-get install ia32-libs&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* The guide will take for granted that you are using the official Raspbian OS image, downloadable from the RaspberryPi website. &lt;br /&gt;
* Moreover, you will need a working SSH connection between the Raspberry and your computer (not covered by this guide).&lt;br /&gt;
&lt;br /&gt;
== Step One: installing the cross-compiler ==&lt;br /&gt;
&lt;br /&gt;
* Select a directory in which you will install everything. For the purposes of this guide, I will consider a subdirectory of your home folder, &amp;lt;code&amp;gt;~/raspberrypi&amp;lt;/code&amp;gt; . Create it and then access it:&lt;br /&gt;
 &amp;lt;code&amp;gt;cd&lt;br /&gt;
 mkdir raspberrypi&lt;br /&gt;
 cd raspberrypi&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Download the &amp;quot;official&amp;quot; cross-compiler of the Raspberry Pi project through &amp;lt;code&amp;gt;git&amp;lt;/code&amp;gt;:&lt;br /&gt;
 &amp;lt;code&amp;gt;git clone git://github.com/raspberrypi/tools.git&amp;lt;/code&amp;gt;&lt;br /&gt;
This will create, among other things, a &amp;lt;code&amp;gt;tools/arm-bcm2708&amp;lt;/code&amp;gt; subfolder containing three different compiler toolchains:&lt;br /&gt;
** arm-bcm2708-linux-gnueabi&lt;br /&gt;
** arm-bcm2708hardfp-linux-gnueabi&lt;br /&gt;
** gcc-linaro-arm-linux-gnueabihf-raspbian&lt;br /&gt;
&lt;br /&gt;
We are going to use the third of these toolchains, since it's the most optimized and supports the FPU that is available on the RaspberryPi board.&lt;br /&gt;
&lt;br /&gt;
* Go back to your home directory, and open your &amp;lt;code&amp;gt;.bashrc&amp;lt;/code&amp;gt; configuration file with any text editor, like &amp;lt;code&amp;gt;nano&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;gedit&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;leafpad&amp;lt;/code&amp;gt;, and add this string at the bottom:&lt;br /&gt;
 &amp;lt;code&amp;gt;PATH=$PATH:$HOME/raspberrypi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Now, either logout and login back again, or just close and reopen the terminal window, and type:&lt;br /&gt;
 &amp;lt;code&amp;gt;arm-linux-gnueabihf-gcc -v&amp;lt;/code&amp;gt;&lt;br /&gt;
If all goes well, you should see something like&lt;br /&gt;
 &amp;lt;code&amp;gt;tudhalyas@gondor:~$ arm-linux-gnueabihf-gcc -v&lt;br /&gt;
 Using built-in specs.&lt;br /&gt;
 COLLECT_GCC=arm-linux-gnueabihf-gcc&lt;br /&gt;
 COLLECT_LTO_WRAPPER=/home/tudhalyas/raspberrypi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/../libexec/gcc/arm-linux-gnueabihf/4.7.2/lto-wrapper&lt;br /&gt;
 Target: arm-linux-gnueabihf&lt;br /&gt;
 Configured with: /cbuild/slaves/oort61/crosstool-ng/builds/arm-linux-gnueabihf-raspbian-linux/.build/src/gcc-linaro-4.7-2012.08/configure --build=i686-build_pc-linux-gnu --host=i686-build_pc-linux-gnu --target=arm-linux-gnueabihf --prefix=/cbuild/slaves/oort61/crosstool-ng/builds/arm-linux-gnueabihf-raspbian-linux/install --with-sysroot=/cbuild/slaves/oort61/crosstool-ng/builds/arm-linux-gnueabihf-raspbian-linux/install/arm-linux-gnueabihf/libc --enable-languages=c,c++,fortran --disable-multilib --with-arch=armv6 --with-tune=arm1176jz-s --with-fpu=vfp --with-float=hard --with-pkgversion='crosstool-NG linaro-1.13.1+bzr2458 - Linaro GCC 2012.08' --with-bugurl=https://bugs.launchpad.net/gcc-linaro --enable-__cxa_atexit --enable-libmudflap --enable-libgomp --enable-libssp --with-gmp=/cbuild/slaves/oort61/crosstool-ng/builds/arm-linux-gnueabihf-raspbian-linux/.build/arm-linux-gnueabihf/build/static --with-mpfr=/cbuild/slaves/oort61/crosstool-ng/builds/arm-linux-gnueabihf-raspbian-linux/.build/arm-linux-gnueabihf/build/static --with-mpc=/cbuild/slaves/oort61/crosstool-ng/builds/arm-linux-gnueabihf-raspbian-linux/.build/arm-linux-gnueabihf/build/static --with-ppl=/cbuild/slaves/oort61/crosstool-ng/builds/arm-linux-gnueabihf-raspbian-linux/.build/arm-linux-gnueabihf/build/static --with-cloog=/cbuild/slaves/oort61/crosstool-ng/builds/arm-linux-gnueabihf-raspbian-linux/.build/arm-linux-gnueabihf/build/static --with-libelf=/cbuild/slaves/oort61/crosstool-ng/builds/arm-linux-gnueabihf-raspbian-linux/.build/arm-linux-gnueabihf/build/static --with-host-libstdcxx='-L/cbuild/slaves/oort61/crosstool-ng/builds/arm-linux-gnueabihf-raspbian-linux/.build/arm-linux-gnueabihf/build/static/lib -lpwl' --enable-threads=posix --disable-libstdcxx-pch --enable-linker-build-id --enable-plugin --enable-gold --with-local-prefix=/cbuild/slaves/oort61/crosstool-ng/builds/arm-linux-gnueabihf-raspbian-linux/install/arm-linux-gnueabihf/libc --enable-c99 --enable-long-long&lt;br /&gt;
 Thread model: posix&lt;br /&gt;
 gcc version 4.7.2 20120731 (prerelease) (crosstool-NG linaro-1.13.1+bzr2458 - Linaro GCC 2012.08)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Step Two: set-up your compiling environment ==&lt;br /&gt;
&lt;br /&gt;
... to be continued ...&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
* http://hertaville.com/2012/09/28/development-environment-raspberry-pi-cross-compiler/&lt;br /&gt;
* http://www.kitware.com/blog/home/post/426&lt;br /&gt;
* http://www.cmake.org/Wiki/CMake_Cross_Compiling&lt;/div&gt;</summary>
		<author><name>AndreaSalvi</name></author>	</entry>

	<entry>
		<id>https://airwiki.deib.polimi.it/index.php?title=Cross-compiling_for_the_RaspberryPi&amp;diff=15847</id>
		<title>Cross-compiling for the RaspberryPi</title>
		<link rel="alternate" type="text/html" href="https://airwiki.deib.polimi.it/index.php?title=Cross-compiling_for_the_RaspberryPi&amp;diff=15847"/>
				<updated>2013-01-08T10:23:43Z</updated>
		
		<summary type="html">&lt;p&gt;AndreaSalvi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page will guide you to setup a complete cross-compiling environment for the [http://raspberrypi.org RaspberryPi] board. This procedure is tailored for and tested on Ubuntu 12.10, but it can be easily adapted for the use on other distributions.&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
* Install all the required software packages:&lt;br /&gt;
 &amp;lt;code&amp;gt;sudo apt-get install git&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''If you are using a 64-bit version of Ubuntu''', also install the 32-bit compatibility libraries:&lt;br /&gt;
 &amp;lt;code&amp;gt;sudo apt-get install ia32-libs&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* The guide will take for granted that you are using the official Raspbian OS image, downloadable from the RaspberryPi website. &lt;br /&gt;
* Moreover, you will need a working SSH connection between the Raspberry and your computer (not covered by this guide).&lt;br /&gt;
&lt;br /&gt;
== Step One: installing the cross-compiler ==&lt;br /&gt;
&lt;br /&gt;
* Select a directory in which you will install everything. For the purposes of this guide, I will consider a subdirectory of your home folder, &amp;lt;code&amp;gt;~/raspberrypi&amp;lt;/code&amp;gt; . Create it and then access it:&lt;br /&gt;
 &amp;lt;code&amp;gt;cd&lt;br /&gt;
 mkdir raspberrypi&lt;br /&gt;
 cd raspberrypi&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Download the &amp;quot;official&amp;quot; cross-compiler of the Raspberry Pi project through &amp;lt;code&amp;gt;git&amp;lt;/code&amp;gt;:&lt;br /&gt;
 &amp;lt;code&amp;gt;sudo git clone git://github.com/raspberrypi/tools.git&amp;lt;/code&amp;gt;&lt;br /&gt;
This will create, among other things, a &amp;lt;code&amp;gt;tools/arm-bcm2708&amp;lt;/code&amp;gt; subfolder containing three different compiler toolchains:&lt;br /&gt;
** arm-bcm2708-linux-gnueabi&lt;br /&gt;
** arm-bcm2708hardfp-linux-gnueabi&lt;br /&gt;
** gcc-linaro-arm-linux-gnueabihf-raspbian&lt;br /&gt;
&lt;br /&gt;
We are going to use the third of these toolchains, since it's the most optimized and supports the FPU that is available on the RaspberryPi board.&lt;br /&gt;
&lt;br /&gt;
* Go back to your home directory, and open your &amp;lt;code&amp;gt;.bashrc&amp;lt;/code&amp;gt; configuration file with any text editor, like &amp;lt;code&amp;gt;nano&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;gedit&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;leafpad&amp;lt;/code&amp;gt;, and add this string at the bottom:&lt;br /&gt;
 &amp;lt;code&amp;gt;PATH=$PATH:$HOME/raspberrypi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Now, either logout and login back again, or just close and reopen the terminal window, and type:&lt;br /&gt;
 &amp;lt;code&amp;gt;arm-linux-gnueabihf-gcc -v&amp;lt;/code&amp;gt;&lt;br /&gt;
If all goes well, you should see something like&lt;br /&gt;
 &amp;lt;code&amp;gt;tudhalyas@gondor:~$ arm-linux-gnueabihf-gcc -v&lt;br /&gt;
 Using built-in specs.&lt;br /&gt;
 COLLECT_GCC=arm-linux-gnueabihf-gcc&lt;br /&gt;
 COLLECT_LTO_WRAPPER=/home/tudhalyas/raspberrypi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/../libexec/gcc/arm-linux-gnueabihf/4.7.2/lto-wrapper&lt;br /&gt;
 Target: arm-linux-gnueabihf&lt;br /&gt;
 Configured with: /cbuild/slaves/oort61/crosstool-ng/builds/arm-linux-gnueabihf-raspbian-linux/.build/src/gcc-linaro-4.7-2012.08/configure --build=i686-build_pc-linux-gnu --host=i686-build_pc-linux-gnu --target=arm-linux-gnueabihf --prefix=/cbuild/slaves/oort61/crosstool-ng/builds/arm-linux-gnueabihf-raspbian-linux/install --with-sysroot=/cbuild/slaves/oort61/crosstool-ng/builds/arm-linux-gnueabihf-raspbian-linux/install/arm-linux-gnueabihf/libc --enable-languages=c,c++,fortran --disable-multilib --with-arch=armv6 --with-tune=arm1176jz-s --with-fpu=vfp --with-float=hard --with-pkgversion='crosstool-NG linaro-1.13.1+bzr2458 - Linaro GCC 2012.08' --with-bugurl=https://bugs.launchpad.net/gcc-linaro --enable-__cxa_atexit --enable-libmudflap --enable-libgomp --enable-libssp --with-gmp=/cbuild/slaves/oort61/crosstool-ng/builds/arm-linux-gnueabihf-raspbian-linux/.build/arm-linux-gnueabihf/build/static --with-mpfr=/cbuild/slaves/oort61/crosstool-ng/builds/arm-linux-gnueabihf-raspbian-linux/.build/arm-linux-gnueabihf/build/static --with-mpc=/cbuild/slaves/oort61/crosstool-ng/builds/arm-linux-gnueabihf-raspbian-linux/.build/arm-linux-gnueabihf/build/static --with-ppl=/cbuild/slaves/oort61/crosstool-ng/builds/arm-linux-gnueabihf-raspbian-linux/.build/arm-linux-gnueabihf/build/static --with-cloog=/cbuild/slaves/oort61/crosstool-ng/builds/arm-linux-gnueabihf-raspbian-linux/.build/arm-linux-gnueabihf/build/static --with-libelf=/cbuild/slaves/oort61/crosstool-ng/builds/arm-linux-gnueabihf-raspbian-linux/.build/arm-linux-gnueabihf/build/static --with-host-libstdcxx='-L/cbuild/slaves/oort61/crosstool-ng/builds/arm-linux-gnueabihf-raspbian-linux/.build/arm-linux-gnueabihf/build/static/lib -lpwl' --enable-threads=posix --disable-libstdcxx-pch --enable-linker-build-id --enable-plugin --enable-gold --with-local-prefix=/cbuild/slaves/oort61/crosstool-ng/builds/arm-linux-gnueabihf-raspbian-linux/install/arm-linux-gnueabihf/libc --enable-c99 --enable-long-long&lt;br /&gt;
 Thread model: posix&lt;br /&gt;
 gcc version 4.7.2 20120731 (prerelease) (crosstool-NG linaro-1.13.1+bzr2458 - Linaro GCC 2012.08)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Step Two: set-up your compiling environment ==&lt;br /&gt;
&lt;br /&gt;
... to be continued ...&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
* http://hertaville.com/2012/09/28/development-environment-raspberry-pi-cross-compiler/&lt;br /&gt;
* http://www.kitware.com/blog/home/post/426&lt;br /&gt;
* http://www.cmake.org/Wiki/CMake_Cross_Compiling&lt;/div&gt;</summary>
		<author><name>AndreaSalvi</name></author>	</entry>

	<entry>
		<id>https://airwiki.deib.polimi.it/index.php?title=Talk:Robotic_Battlefield_Control&amp;diff=15846</id>
		<title>Talk:Robotic Battlefield Control</title>
		<link rel="alternate" type="text/html" href="https://airwiki.deib.polimi.it/index.php?title=Talk:Robotic_Battlefield_Control&amp;diff=15846"/>
				<updated>2013-01-08T10:22:04Z</updated>
		
		<summary type="html">&lt;p&gt;AndreaSalvi: /* Related files and pages */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Related files and pages ==&lt;br /&gt;
* [[File:RBC_state_diagrams.pdf‎]]&lt;br /&gt;
* [[Cross-compiling_for_the_RaspberryPi | How to setup a cross-compiling environment for the RasPi]]&lt;br /&gt;
&lt;br /&gt;
== Playfield geometry ==&lt;br /&gt;
The playfield is divided into three parts:&lt;br /&gt;
* two '''home fields''' (one for each player), colored in blue for the human player and in red for the autonomous robot. The robots begin a match in these fields, and they are invulnerable while they are inside them; moreover, while being inside of these areas, they will be automatically &amp;quot;repaired&amp;quot; of any damage that they have might suffered during the match. If a robot is severely damaged during fights, it will switch to an &amp;quot;emergency mode&amp;quot; that will force it to head back home for repairs.&lt;br /&gt;
* the '''midfield''', where the '''control point''' is also located. The midfield can be cluttered with obstacles of various nature.&lt;br /&gt;
&lt;br /&gt;
== Hardware Platforms ==&lt;br /&gt;
&lt;br /&gt;
=== Remotely controlled robot ===&lt;br /&gt;
The user-controlled robot will be based on the [http://www.spykeeworld.com/spykee/UK/index.html Spykee] platform, which features a reprogrammable Linux-based firmware, and has a frontal camera and a monodirectional microphone as main sensors. Spykee will be controlled through an Android-based program (for smartphones and tablets) which will also function as the setup application for the game itself.&lt;br /&gt;
&lt;br /&gt;
The robot will be also be &amp;quot;dressed&amp;quot; in blue on all sides, in order to be recognizable by the autonomous robot.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
=== Autonomous robot ===&lt;br /&gt;
As for the remotely-controlled robot, the autonomous robot will be colored (in red) in order to be easily recognizeable.&lt;br /&gt;
==== Software Architecture ====&lt;br /&gt;
In order to keep the architecture as light as possible, a subsumption architecture, enhanced with obstacle maps ([[#Pending further analysis|see below]]).&lt;br /&gt;
&lt;br /&gt;
==== Sensors ====&lt;br /&gt;
* An '''omni-directional microphone''': to sense the vicinity and the probable position of the remotely controlled robot, and to hear the beeper indicating the position of the control point.&lt;br /&gt;
* A '''frontal camera''', which is able to recognize arbitrarily shaped objects (blobs) of a certain color, and returns the coordinates of the vertices of the rectangles that enclose them at no additional cost for the main microcontroller/CPU. This is used:&lt;br /&gt;
** to recognize the &amp;quot;home fields&amp;quot; locations;&lt;br /&gt;
** to have a visual confirmation of the presence of the control point;&lt;br /&gt;
** to identify the remotely controlled robot.&lt;br /&gt;
* '''Proximity sensors''' on all sides of the robot, to understand if there are obstacles nearby. To avoid a too coarse identification of obstacles (that would rule out viable passages for the robot), different kind of sensors can be used: for example, ultrasound sonar sensors for coarse detection and infrared sensors for a more fine-grained sensing.&lt;br /&gt;
&lt;br /&gt;
==== Pending further analysis ====&lt;br /&gt;
* '''Odometry''': since we have decided to keep an &amp;quot;explorable map&amp;quot; (that is, the map of the explored world, with reasonable metrical errors) in memory, it is imperative to find an economic and simple way to track odometry. It doesn't have to be extremely accurate, but it needs to be accurate enough so that maps don't have to be recalculated from scratch in the middle of a match. Use encoders on wheels?&lt;br /&gt;
* '''Hardware architecture''': [http://www.arduino.cc Arduino]-like or ARM based? ARM based boards (like the [http://www.raspberrypi.org RaspberryPi]) are more expensive but also more powerful, and can run libraries like OpenCV. In case of non-availability of ARM-based boards it is possible to use nano-ITX or pico-ITX x86 boards.&lt;br /&gt;
&lt;br /&gt;
==== To be discussed ====&lt;br /&gt;
* '''Compass''': a compass might be useful for the robot, in order to know its orientation in the world. Is it also possible to add it to Spykee?&lt;br /&gt;
* '''Mobile robot type''': Wheeled with differential drive? Synchronous drive? With tracks?&lt;br /&gt;
* '''Tactical AI''': How to implement it? We want the robot's reactions to be as responsive and believable as possible, since the aim of the game is to entertain the user with a challenge.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Implementation ==&lt;br /&gt;
&lt;br /&gt;
=== Operating System ===&lt;br /&gt;
&lt;br /&gt;
==== Debian 6.0 &amp;quot;Squeeze&amp;quot; ====&lt;br /&gt;
If we are going to use Debian 6.0 as the &amp;quot;backbone&amp;quot; of our robot, and if we are going to use MRPT (see below) and all its features, then we must compile many libraries by hand, including MRPT itself, [http://www.vtk.org/ VTK], [http://eigen.tuxfamily.org/index.php?title=Main_Page Eigen], [http://pointclouds.org/ Point Cloud Library] and their dependencies. It can be quite a chore.&lt;br /&gt;
&lt;br /&gt;
==== ArchLinux ====&lt;br /&gt;
[http://www.archlinux.org/ The distro] follows a rolling release model (like Gentoo, but with precompiled and optimized packages), so all system packages are always up to date. This shortens compilation time '''a lot'''. Like Debian 6.0, it also supports the RaspberryPi through the ARM port [http://archlinuxarm.org/platforms/armv6/raspberry-pi ArchLinux ARM].&lt;br /&gt;
&lt;br /&gt;
==== Ubuntu 12.04 LTS ====&lt;br /&gt;
Ongoing testing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== &amp;quot;Strong&amp;quot; themes for the thesis ==&lt;br /&gt;
* &amp;quot;Reachable map&amp;quot; concept&lt;br /&gt;
* Planning movement through the identification of landmarks (the home field and the control point).&lt;br /&gt;
&lt;br /&gt;
== Useful and interesting links ==&lt;br /&gt;
&lt;br /&gt;
=== Frameworks, Libraries, etc. ===&lt;br /&gt;
* [http://eris.liralab.it/yarp/ YARP, Yet Another Robot Platform]: lightweight opensource robot platform, compatible with Linux, Windows and Mac, written in C++. It is first and foremost a middleware aimed to create an actual robot software platform, rather than being an integrated, all-inclusive environment per se.&lt;br /&gt;
** [http://eris.liralab.it/yarpdoc/index.html Documentation]&lt;br /&gt;
&lt;br /&gt;
* [http://www.mrpt.org Mobile Robot Programming Toolkit]: a C++ based framework. compatible with Linux and Windows. It seems much more complete than YARP, and it prominently features libraries aimed to SLAM-based navigation.&lt;br /&gt;
** [http://www.mrpt.org/Tutorials Tutorials and guides]&lt;br /&gt;
** [http://www.mrpt.org/downloads/mrpt-book.pdf Reference Guide]&lt;br /&gt;
** [http://www.youtube.com/watch?v=IHGcW_DCaps] Video about a demonstration of SLAM navigation done through MRPT.&lt;br /&gt;
&lt;br /&gt;
* [http://www.urbiforge.org/ URBI]: another opensource robot platform, but probably heavy on the CPU. It features a reusable library of modules written in C++, an orchestration/scripting language and compatibility with ROS modules.&lt;br /&gt;
&lt;br /&gt;
=== Papers ===&lt;br /&gt;
* [http://www.robots.ox.ac.uk/~lav/Papers/davison_etal_pami2007/davison_etal_pami2007.pdf MonoSLAM]: paper about the single-camera Simultaneous Localization And Mapping algorithm.&lt;br /&gt;
* [http://geology.heroy.smu.edu/~dpa-www/robo/subsumption/]: notes about implementing a subsumption architecture in plain C&lt;/div&gt;</summary>
		<author><name>AndreaSalvi</name></author>	</entry>

	<entry>
		<id>https://airwiki.deib.polimi.it/index.php?title=Cross-compiling_for_the_RaspberryPi&amp;diff=15845</id>
		<title>Cross-compiling for the RaspberryPi</title>
		<link rel="alternate" type="text/html" href="https://airwiki.deib.polimi.it/index.php?title=Cross-compiling_for_the_RaspberryPi&amp;diff=15845"/>
				<updated>2013-01-08T10:19:34Z</updated>
		
		<summary type="html">&lt;p&gt;AndreaSalvi: Created page with &amp;quot;This page will guide you to setup a complete cross-compiling environment for the [www.raspberrypi.org RaspberryPi] board. This procedure is tailored for and tested on Ubuntu 1...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page will guide you to setup a complete cross-compiling environment for the [www.raspberrypi.org RaspberryPi] board. This procedure is tailored for and tested on Ubuntu 12.10, but it can be easily adapted for the use on other distributions.&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
* Install all the required software packages:&lt;br /&gt;
 &amp;lt;code&amp;gt;sudo apt-get install git&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''If you are using a 64-bit version of Ubuntu''', also install the 32-bit compatibility libraries:&lt;br /&gt;
 &amp;lt;code&amp;gt;sudo apt-get install ia32-libs&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* The guide will take for granted that you are using the official Raspbian OS image, downloadable from the RaspberryPi website. &lt;br /&gt;
* Moreover, you will need a working SSH connection between the Raspberry and your computer (not covered by this guide).&lt;br /&gt;
&lt;br /&gt;
== Step One: installing the cross-compiler ==&lt;br /&gt;
&lt;br /&gt;
* Select a directory in which you will install everything. For the purposes of this guide, I will consider a subdirectory of your home folder, &amp;lt;code&amp;gt;~/raspberrypi&amp;lt;/code&amp;gt; . Create it and then access it:&lt;br /&gt;
 &amp;lt;code&amp;gt;cd&lt;br /&gt;
 mkdir raspberrypi&lt;br /&gt;
 cd raspberrypi&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Download the &amp;quot;official&amp;quot; cross-compiler of the Raspberry Pi project through &amp;lt;code&amp;gt;git&amp;lt;/code&amp;gt;:&lt;br /&gt;
 &amp;lt;code&amp;gt;sudo git clone git://github.com/raspberrypi/tools.git&amp;lt;/code&amp;gt;&lt;br /&gt;
This will create, among other things, a &amp;lt;code&amp;gt;tools/arm-bcm2708&amp;lt;/code&amp;gt; subfolder containing three different compiler toolchains:&lt;br /&gt;
** arm-bcm2708-linux-gnueabi&lt;br /&gt;
** arm-bcm2708hardfp-linux-gnueabi&lt;br /&gt;
** gcc-linaro-arm-linux-gnueabihf-raspbian&lt;br /&gt;
&lt;br /&gt;
We are going to use the third of these toolchains, since it's the most optimized and supports the FPU that is available on the RaspberryPi board.&lt;br /&gt;
&lt;br /&gt;
* Go back to your home directory, and open your &amp;lt;code&amp;gt;.bashrc&amp;lt;/code&amp;gt; configuration file with any text editor, like &amp;lt;code&amp;gt;nano&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;gedit&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;leafpad&amp;lt;/code&amp;gt;, and add this string at the bottom:&lt;br /&gt;
 &amp;lt;code&amp;gt;PATH=$PATH:$HOME/raspberrypi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Now, either logout and login back again, or just close and reopen the terminal window, and type:&lt;br /&gt;
 &amp;lt;code&amp;gt;arm-linux-gnueabihf-gcc -v&amp;lt;/code&amp;gt;&lt;br /&gt;
If all goes well, you should see something like&lt;br /&gt;
 &amp;lt;code&amp;gt;tudhalyas@gondor:~$ arm-linux-gnueabihf-gcc -v&lt;br /&gt;
 Using built-in specs.&lt;br /&gt;
 COLLECT_GCC=arm-linux-gnueabihf-gcc&lt;br /&gt;
 COLLECT_LTO_WRAPPER=/home/tudhalyas/raspberrypi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/../libexec/gcc/arm-linux-gnueabihf/4.7.2/lto-wrapper&lt;br /&gt;
 Target: arm-linux-gnueabihf&lt;br /&gt;
 Configured with: /cbuild/slaves/oort61/crosstool-ng/builds/arm-linux-gnueabihf-raspbian-linux/.build/src/gcc-linaro-4.7-2012.08/configure --build=i686-build_pc-linux-gnu --host=i686-build_pc-linux-gnu --target=arm-linux-gnueabihf --prefix=/cbuild/slaves/oort61/crosstool-ng/builds/arm-linux-gnueabihf-raspbian-linux/install --with-sysroot=/cbuild/slaves/oort61/crosstool-ng/builds/arm-linux-gnueabihf-raspbian-linux/install/arm-linux-gnueabihf/libc --enable-languages=c,c++,fortran --disable-multilib --with-arch=armv6 --with-tune=arm1176jz-s --with-fpu=vfp --with-float=hard --with-pkgversion='crosstool-NG linaro-1.13.1+bzr2458 - Linaro GCC 2012.08' --with-bugurl=https://bugs.launchpad.net/gcc-linaro --enable-__cxa_atexit --enable-libmudflap --enable-libgomp --enable-libssp --with-gmp=/cbuild/slaves/oort61/crosstool-ng/builds/arm-linux-gnueabihf-raspbian-linux/.build/arm-linux-gnueabihf/build/static --with-mpfr=/cbuild/slaves/oort61/crosstool-ng/builds/arm-linux-gnueabihf-raspbian-linux/.build/arm-linux-gnueabihf/build/static --with-mpc=/cbuild/slaves/oort61/crosstool-ng/builds/arm-linux-gnueabihf-raspbian-linux/.build/arm-linux-gnueabihf/build/static --with-ppl=/cbuild/slaves/oort61/crosstool-ng/builds/arm-linux-gnueabihf-raspbian-linux/.build/arm-linux-gnueabihf/build/static --with-cloog=/cbuild/slaves/oort61/crosstool-ng/builds/arm-linux-gnueabihf-raspbian-linux/.build/arm-linux-gnueabihf/build/static --with-libelf=/cbuild/slaves/oort61/crosstool-ng/builds/arm-linux-gnueabihf-raspbian-linux/.build/arm-linux-gnueabihf/build/static --with-host-libstdcxx='-L/cbuild/slaves/oort61/crosstool-ng/builds/arm-linux-gnueabihf-raspbian-linux/.build/arm-linux-gnueabihf/build/static/lib -lpwl' --enable-threads=posix --disable-libstdcxx-pch --enable-linker-build-id --enable-plugin --enable-gold --with-local-prefix=/cbuild/slaves/oort61/crosstool-ng/builds/arm-linux-gnueabihf-raspbian-linux/install/arm-linux-gnueabihf/libc --enable-c99 --enable-long-long&lt;br /&gt;
 Thread model: posix&lt;br /&gt;
 gcc version 4.7.2 20120731 (prerelease) (crosstool-NG linaro-1.13.1+bzr2458 - Linaro GCC 2012.08)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Step Two: set-up your compiling environment ==&lt;br /&gt;
&lt;br /&gt;
... to be continued ...&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
* http://hertaville.com/2012/09/28/development-environment-raspberry-pi-cross-compiler/&lt;br /&gt;
* http://www.kitware.com/blog/home/post/426&lt;br /&gt;
* http://www.cmake.org/Wiki/CMake_Cross_Compiling&lt;/div&gt;</summary>
		<author><name>AndreaSalvi</name></author>	</entry>

	<entry>
		<id>https://airwiki.deib.polimi.it/index.php?title=Talk:Robotic_Battlefield_Control&amp;diff=15458</id>
		<title>Talk:Robotic Battlefield Control</title>
		<link rel="alternate" type="text/html" href="https://airwiki.deib.polimi.it/index.php?title=Talk:Robotic_Battlefield_Control&amp;diff=15458"/>
				<updated>2012-09-06T07:59:14Z</updated>
		
		<summary type="html">&lt;p&gt;AndreaSalvi: /* ArchLinux */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Related files ==&lt;br /&gt;
* [[File:RBC_state_diagrams.pdf‎]]&lt;br /&gt;
&lt;br /&gt;
== Playfield geometry ==&lt;br /&gt;
The playfield is divided into three parts:&lt;br /&gt;
* two '''home fields''' (one for each player), colored in blue for the human player and in red for the autonomous robot. The robots begin a match in these fields, and they are invulnerable while they are inside them; moreover, while being inside of these areas, they will be automatically &amp;quot;repaired&amp;quot; of any damage that they have might suffered during the match. If a robot is severely damaged during fights, it will switch to an &amp;quot;emergency mode&amp;quot; that will force it to head back home for repairs.&lt;br /&gt;
* the '''midfield''', where the '''control point''' is also located. The midfield can be cluttered with obstacles of various nature.&lt;br /&gt;
&lt;br /&gt;
== Hardware Platforms ==&lt;br /&gt;
&lt;br /&gt;
=== Remotely controlled robot ===&lt;br /&gt;
The user-controlled robot will be based on the [http://www.spykeeworld.com/spykee/UK/index.html Spykee] platform, which features a reprogrammable Linux-based firmware, and has a frontal camera and a monodirectional microphone as main sensors. Spykee will be controlled through an Android-based program (for smartphones and tablets) which will also function as the setup application for the game itself.&lt;br /&gt;
&lt;br /&gt;
The robot will be also be &amp;quot;dressed&amp;quot; in blue on all sides, in order to be recognizable by the autonomous robot.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
=== Autonomous robot ===&lt;br /&gt;
As for the remotely-controlled robot, the autonomous robot will be colored (in red) in order to be easily recognizeable.&lt;br /&gt;
==== Software Architecture ====&lt;br /&gt;
In order to keep the architecture as light as possible, a subsumption architecture, enhanced with obstacle maps ([[#Pending further analysis|see below]]).&lt;br /&gt;
&lt;br /&gt;
==== Sensors ====&lt;br /&gt;
* An '''omni-directional microphone''': to sense the vicinity and the probable position of the remotely controlled robot, and to hear the beeper indicating the position of the control point.&lt;br /&gt;
* A '''frontal camera''', which is able to recognize arbitrarily shaped objects (blobs) of a certain color, and returns the coordinates of the vertices of the rectangles that enclose them at no additional cost for the main microcontroller/CPU. This is used:&lt;br /&gt;
** to recognize the &amp;quot;home fields&amp;quot; locations;&lt;br /&gt;
** to have a visual confirmation of the presence of the control point;&lt;br /&gt;
** to identify the remotely controlled robot.&lt;br /&gt;
* '''Proximity sensors''' on all sides of the robot, to understand if there are obstacles nearby. To avoid a too coarse identification of obstacles (that would rule out viable passages for the robot), different kind of sensors can be used: for example, ultrasound sonar sensors for coarse detection and infrared sensors for a more fine-grained sensing.&lt;br /&gt;
&lt;br /&gt;
==== Pending further analysis ====&lt;br /&gt;
* '''Odometry''': since we have decided to keep an &amp;quot;explorable map&amp;quot; (that is, the map of the explored world, with reasonable metrical errors) in memory, it is imperative to find an economic and simple way to track odometry. It doesn't have to be extremely accurate, but it needs to be accurate enough so that maps don't have to be recalculated from scratch in the middle of a match. Use encoders on wheels?&lt;br /&gt;
* '''Hardware architecture''': [http://www.arduino.cc Arduino]-like or ARM based? ARM based boards (like the [http://www.raspberrypi.org RaspberryPi]) are more expensive but also more powerful, and can run libraries like OpenCV. In case of non-availability of ARM-based boards it is possible to use nano-ITX or pico-ITX x86 boards.&lt;br /&gt;
&lt;br /&gt;
==== To be discussed ====&lt;br /&gt;
* '''Compass''': a compass might be useful for the robot, in order to know its orientation in the world. Is it also possible to add it to Spykee?&lt;br /&gt;
* '''Mobile robot type''': Wheeled with differential drive? Synchronous drive? With tracks?&lt;br /&gt;
* '''Tactical AI''': How to implement it? We want the robot's reactions to be as responsive and believable as possible, since the aim of the game is to entertain the user with a challenge.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Implementation ==&lt;br /&gt;
&lt;br /&gt;
=== Operating System ===&lt;br /&gt;
&lt;br /&gt;
==== Debian 6.0 &amp;quot;Squeeze&amp;quot; ====&lt;br /&gt;
If we are going to use Debian 6.0 as the &amp;quot;backbone&amp;quot; of our robot, and if we are going to use MRPT (see below) and all its features, then we must compile many libraries by hand, including MRPT itself, [http://www.vtk.org/ VTK], [http://eigen.tuxfamily.org/index.php?title=Main_Page Eigen], [http://pointclouds.org/ Point Cloud Library] and their dependencies. It can be quite a chore.&lt;br /&gt;
&lt;br /&gt;
==== ArchLinux ====&lt;br /&gt;
[http://www.archlinux.org/ The distro] follows a rolling release model (like Gentoo, but with precompiled and optimized packages), so all system packages are always up to date. This shortens compilation time '''a lot'''. Like Debian 6.0, it also supports the RaspberryPi through the ARM port [http://archlinuxarm.org/platforms/armv6/raspberry-pi ArchLinux ARM].&lt;br /&gt;
&lt;br /&gt;
==== Ubuntu 12.04 LTS ====&lt;br /&gt;
Ongoing testing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== &amp;quot;Strong&amp;quot; themes for the thesis ==&lt;br /&gt;
* &amp;quot;Reachable map&amp;quot; concept&lt;br /&gt;
* Planning movement through the identification of landmarks (the home field and the control point).&lt;br /&gt;
&lt;br /&gt;
== Useful and interesting links ==&lt;br /&gt;
&lt;br /&gt;
=== Frameworks, Libraries, etc. ===&lt;br /&gt;
* [http://eris.liralab.it/yarp/ YARP, Yet Another Robot Platform]: lightweight opensource robot platform, compatible with Linux, Windows and Mac, written in C++. It is first and foremost a middleware aimed to create an actual robot software platform, rather than being an integrated, all-inclusive environment per se.&lt;br /&gt;
** [http://eris.liralab.it/yarpdoc/index.html Documentation]&lt;br /&gt;
&lt;br /&gt;
* [http://www.mrpt.org Mobile Robot Programming Toolkit]: a C++ based framework. compatible with Linux and Windows. It seems much more complete than YARP, and it prominently features libraries aimed to SLAM-based navigation.&lt;br /&gt;
** [http://www.mrpt.org/Tutorials Tutorials and guides]&lt;br /&gt;
** [http://www.mrpt.org/downloads/mrpt-book.pdf Reference Guide]&lt;br /&gt;
** [http://www.youtube.com/watch?v=IHGcW_DCaps] Video about a demonstration of SLAM navigation done through MRPT.&lt;br /&gt;
&lt;br /&gt;
* [http://www.urbiforge.org/ URBI]: another opensource robot platform, but probably heavy on the CPU. It features a reusable library of modules written in C++, an orchestration/scripting language and compatibility with ROS modules.&lt;br /&gt;
&lt;br /&gt;
=== Papers ===&lt;br /&gt;
* [http://www.robots.ox.ac.uk/~lav/Papers/davison_etal_pami2007/davison_etal_pami2007.pdf MonoSLAM]: paper about the single-camera Simultaneous Localization And Mapping algorithm.&lt;br /&gt;
* [http://geology.heroy.smu.edu/~dpa-www/robo/subsumption/]: notes about implementing a subsumption architecture in plain C&lt;/div&gt;</summary>
		<author><name>AndreaSalvi</name></author>	</entry>

	<entry>
		<id>https://airwiki.deib.polimi.it/index.php?title=Talk:Robotic_Battlefield_Control&amp;diff=15457</id>
		<title>Talk:Robotic Battlefield Control</title>
		<link rel="alternate" type="text/html" href="https://airwiki.deib.polimi.it/index.php?title=Talk:Robotic_Battlefield_Control&amp;diff=15457"/>
				<updated>2012-09-06T07:58:52Z</updated>
		
		<summary type="html">&lt;p&gt;AndreaSalvi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Related files ==&lt;br /&gt;
* [[File:RBC_state_diagrams.pdf‎]]&lt;br /&gt;
&lt;br /&gt;
== Playfield geometry ==&lt;br /&gt;
The playfield is divided into three parts:&lt;br /&gt;
* two '''home fields''' (one for each player), colored in blue for the human player and in red for the autonomous robot. The robots begin a match in these fields, and they are invulnerable while they are inside them; moreover, while being inside of these areas, they will be automatically &amp;quot;repaired&amp;quot; of any damage that they have might suffered during the match. If a robot is severely damaged during fights, it will switch to an &amp;quot;emergency mode&amp;quot; that will force it to head back home for repairs.&lt;br /&gt;
* the '''midfield''', where the '''control point''' is also located. The midfield can be cluttered with obstacles of various nature.&lt;br /&gt;
&lt;br /&gt;
== Hardware Platforms ==&lt;br /&gt;
&lt;br /&gt;
=== Remotely controlled robot ===&lt;br /&gt;
The user-controlled robot will be based on the [http://www.spykeeworld.com/spykee/UK/index.html Spykee] platform, which features a reprogrammable Linux-based firmware, and has a frontal camera and a monodirectional microphone as main sensors. Spykee will be controlled through an Android-based program (for smartphones and tablets) which will also function as the setup application for the game itself.&lt;br /&gt;
&lt;br /&gt;
The robot will be also be &amp;quot;dressed&amp;quot; in blue on all sides, in order to be recognizable by the autonomous robot.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
=== Autonomous robot ===&lt;br /&gt;
As for the remotely-controlled robot, the autonomous robot will be colored (in red) in order to be easily recognizeable.&lt;br /&gt;
==== Software Architecture ====&lt;br /&gt;
In order to keep the architecture as light as possible, a subsumption architecture, enhanced with obstacle maps ([[#Pending further analysis|see below]]).&lt;br /&gt;
&lt;br /&gt;
==== Sensors ====&lt;br /&gt;
* An '''omni-directional microphone''': to sense the vicinity and the probable position of the remotely controlled robot, and to hear the beeper indicating the position of the control point.&lt;br /&gt;
* A '''frontal camera''', which is able to recognize arbitrarily shaped objects (blobs) of a certain color, and returns the coordinates of the vertices of the rectangles that enclose them at no additional cost for the main microcontroller/CPU. This is used:&lt;br /&gt;
** to recognize the &amp;quot;home fields&amp;quot; locations;&lt;br /&gt;
** to have a visual confirmation of the presence of the control point;&lt;br /&gt;
** to identify the remotely controlled robot.&lt;br /&gt;
* '''Proximity sensors''' on all sides of the robot, to understand if there are obstacles nearby. To avoid a too coarse identification of obstacles (that would rule out viable passages for the robot), different kind of sensors can be used: for example, ultrasound sonar sensors for coarse detection and infrared sensors for a more fine-grained sensing.&lt;br /&gt;
&lt;br /&gt;
==== Pending further analysis ====&lt;br /&gt;
* '''Odometry''': since we have decided to keep an &amp;quot;explorable map&amp;quot; (that is, the map of the explored world, with reasonable metrical errors) in memory, it is imperative to find an economic and simple way to track odometry. It doesn't have to be extremely accurate, but it needs to be accurate enough so that maps don't have to be recalculated from scratch in the middle of a match. Use encoders on wheels?&lt;br /&gt;
* '''Hardware architecture''': [http://www.arduino.cc Arduino]-like or ARM based? ARM based boards (like the [http://www.raspberrypi.org RaspberryPi]) are more expensive but also more powerful, and can run libraries like OpenCV. In case of non-availability of ARM-based boards it is possible to use nano-ITX or pico-ITX x86 boards.&lt;br /&gt;
&lt;br /&gt;
==== To be discussed ====&lt;br /&gt;
* '''Compass''': a compass might be useful for the robot, in order to know its orientation in the world. Is it also possible to add it to Spykee?&lt;br /&gt;
* '''Mobile robot type''': Wheeled with differential drive? Synchronous drive? With tracks?&lt;br /&gt;
* '''Tactical AI''': How to implement it? We want the robot's reactions to be as responsive and believable as possible, since the aim of the game is to entertain the user with a challenge.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Implementation ==&lt;br /&gt;
&lt;br /&gt;
=== Operating System ===&lt;br /&gt;
&lt;br /&gt;
==== Debian 6.0 &amp;quot;Squeeze&amp;quot; ====&lt;br /&gt;
If we are going to use Debian 6.0 as the &amp;quot;backbone&amp;quot; of our robot, and if we are going to use MRPT (see below) and all its features, then we must compile many libraries by hand, including MRPT itself, [http://www.vtk.org/ VTK], [http://eigen.tuxfamily.org/index.php?title=Main_Page Eigen], [http://pointclouds.org/ Point Cloud Library] and their dependencies. It can be quite a chore.&lt;br /&gt;
&lt;br /&gt;
==== ArchLinux ====&lt;br /&gt;
[http://www.archlinux.org/ The distro] follows a rolling release model (like Gentoo, but with precompiled and optimized packages), so all system packages are always up to date. This shortens compilation time ''ìa lot'''. Like Debian 6.0, it also supports the RaspberryPi through the ARM port [http://archlinuxarm.org/platforms/armv6/raspberry-pi ArchLinux ARM].&lt;br /&gt;
&lt;br /&gt;
==== Ubuntu 12.04 LTS ====&lt;br /&gt;
Ongoing testing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== &amp;quot;Strong&amp;quot; themes for the thesis ==&lt;br /&gt;
* &amp;quot;Reachable map&amp;quot; concept&lt;br /&gt;
* Planning movement through the identification of landmarks (the home field and the control point).&lt;br /&gt;
&lt;br /&gt;
== Useful and interesting links ==&lt;br /&gt;
&lt;br /&gt;
=== Frameworks, Libraries, etc. ===&lt;br /&gt;
* [http://eris.liralab.it/yarp/ YARP, Yet Another Robot Platform]: lightweight opensource robot platform, compatible with Linux, Windows and Mac, written in C++. It is first and foremost a middleware aimed to create an actual robot software platform, rather than being an integrated, all-inclusive environment per se.&lt;br /&gt;
** [http://eris.liralab.it/yarpdoc/index.html Documentation]&lt;br /&gt;
&lt;br /&gt;
* [http://www.mrpt.org Mobile Robot Programming Toolkit]: a C++ based framework. compatible with Linux and Windows. It seems much more complete than YARP, and it prominently features libraries aimed to SLAM-based navigation.&lt;br /&gt;
** [http://www.mrpt.org/Tutorials Tutorials and guides]&lt;br /&gt;
** [http://www.mrpt.org/downloads/mrpt-book.pdf Reference Guide]&lt;br /&gt;
** [http://www.youtube.com/watch?v=IHGcW_DCaps] Video about a demonstration of SLAM navigation done through MRPT.&lt;br /&gt;
&lt;br /&gt;
* [http://www.urbiforge.org/ URBI]: another opensource robot platform, but probably heavy on the CPU. It features a reusable library of modules written in C++, an orchestration/scripting language and compatibility with ROS modules.&lt;br /&gt;
&lt;br /&gt;
=== Papers ===&lt;br /&gt;
* [http://www.robots.ox.ac.uk/~lav/Papers/davison_etal_pami2007/davison_etal_pami2007.pdf MonoSLAM]: paper about the single-camera Simultaneous Localization And Mapping algorithm.&lt;br /&gt;
* [http://geology.heroy.smu.edu/~dpa-www/robo/subsumption/]: notes about implementing a subsumption architecture in plain C&lt;/div&gt;</summary>
		<author><name>AndreaSalvi</name></author>	</entry>

	<entry>
		<id>https://airwiki.deib.polimi.it/index.php?title=Talk:Robotic_Battlefield_Control&amp;diff=15456</id>
		<title>Talk:Robotic Battlefield Control</title>
		<link rel="alternate" type="text/html" href="https://airwiki.deib.polimi.it/index.php?title=Talk:Robotic_Battlefield_Control&amp;diff=15456"/>
				<updated>2012-09-05T16:51:46Z</updated>
		
		<summary type="html">&lt;p&gt;AndreaSalvi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Related files ==&lt;br /&gt;
* [[File:RBC_state_diagrams.pdf‎]]&lt;br /&gt;
&lt;br /&gt;
== Playfield geometry ==&lt;br /&gt;
The playfield is divided into three parts:&lt;br /&gt;
* two '''home fields''' (one for each player), colored in blue for the human player and in red for the autonomous robot. The robots begin a match in these fields, and they are invulnerable while they are inside them; moreover, while being inside of these areas, they will be automatically &amp;quot;repaired&amp;quot; of any damage that they have might suffered during the match. If a robot is severely damaged during fights, it will switch to an &amp;quot;emergency mode&amp;quot; that will force it to head back home for repairs.&lt;br /&gt;
* the '''midfield''', where the '''control point''' is also located. The midfield can be cluttered with obstacles of various nature.&lt;br /&gt;
&lt;br /&gt;
== Hardware Platforms ==&lt;br /&gt;
&lt;br /&gt;
=== Remotely controlled robot ===&lt;br /&gt;
The user-controlled robot will be based on the [http://www.spykeeworld.com/spykee/UK/index.html Spykee] platform, which features a reprogrammable Linux-based firmware, and has a frontal camera and a monodirectional microphone as main sensors. Spykee will be controlled through an Android-based program (for smartphones and tablets) which will also function as the setup application for the game itself.&lt;br /&gt;
&lt;br /&gt;
The robot will be also be &amp;quot;dressed&amp;quot; in blue on all sides, in order to be recognizable by the autonomous robot.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
=== Autonomous robot ===&lt;br /&gt;
As for the remotely-controlled robot, the autonomous robot will be colored (in red) in order to be easily recognizeable.&lt;br /&gt;
==== Software Architecture ====&lt;br /&gt;
In order to keep the architecture as light as possible, a subsumption architecture, enhanced with obstacle maps ([[#Pending further analysis|see below]]).&lt;br /&gt;
&lt;br /&gt;
==== Sensors ====&lt;br /&gt;
* An '''omni-directional microphone''': to sense the vicinity and the probable position of the remotely controlled robot, and to hear the beeper indicating the position of the control point.&lt;br /&gt;
* A '''frontal camera''', which is able to recognize arbitrarily shaped objects (blobs) of a certain color, and returns the coordinates of the vertices of the rectangles that enclose them at no additional cost for the main microcontroller/CPU. This is used:&lt;br /&gt;
** to recognize the &amp;quot;home fields&amp;quot; locations;&lt;br /&gt;
** to have a visual confirmation of the presence of the control point;&lt;br /&gt;
** to identify the remotely controlled robot.&lt;br /&gt;
* '''Proximity sensors''' on all sides of the robot, to understand if there are obstacles nearby. To avoid a too coarse identification of obstacles (that would rule out viable passages for the robot), different kind of sensors can be used: for example, ultrasound sonar sensors for coarse detection and infrared sensors for a more fine-grained sensing.&lt;br /&gt;
&lt;br /&gt;
==== Pending further analysis ====&lt;br /&gt;
* '''Odometry''': since we have decided to keep an &amp;quot;explorable map&amp;quot; (that is, the map of the explored world, with reasonable metrical errors) in memory, it is imperative to find an economic and simple way to track odometry. It doesn't have to be extremely accurate, but it needs to be accurate enough so that maps don't have to be recalculated from scratch in the middle of a match. Use encoders on wheels?&lt;br /&gt;
* '''Hardware architecture''': [http://www.arduino.cc Arduino]-like or ARM based? ARM based boards (like the [http://www.raspberrypi.org RaspberryPi]) are more expensive but also more powerful, and can run libraries like OpenCV. In case of non-availability of ARM-based boards it is possible to use nano-ITX or pico-ITX x86 boards.&lt;br /&gt;
&lt;br /&gt;
==== To be discussed ====&lt;br /&gt;
* '''Compass''': a compass might be useful for the robot, in order to know its orientation in the world. Is it also possible to add it to Spykee?&lt;br /&gt;
* '''Mobile robot type''': Wheeled with differential drive? Synchronous drive? With tracks?&lt;br /&gt;
* '''Tactical AI''': How to implement it? We want the robot's reactions to be as responsive and believable as possible, since the aim of the game is to entertain the user with a challenge.&lt;br /&gt;
&lt;br /&gt;
== &amp;quot;Strong&amp;quot; themes for the thesis ==&lt;br /&gt;
* &amp;quot;Reachable map&amp;quot; concept&lt;br /&gt;
* Planning movement through the identification of landmarks (the home field and the control point).&lt;br /&gt;
&lt;br /&gt;
== Implementation ==&lt;br /&gt;
&lt;br /&gt;
=== Operating System ===&lt;br /&gt;
&lt;br /&gt;
==== Debian 6.0 &amp;quot;Squeeze&amp;quot; ====&lt;br /&gt;
If we are going to use Debian 6.0 as the &amp;quot;backbone&amp;quot; of our robot, and if we are going to use MRPT (see below) and all its features, then we must compile many libraries by hand, including MRPT itself, [http://www.vtk.org/ VTK], [http://eigen.tuxfamily.org/index.php?title=Main_Page Eigen], [http://pointclouds.org/ Point Cloud Library] and their dependencies. It can be quite a chore.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Useful and interesting links ==&lt;br /&gt;
&lt;br /&gt;
=== Frameworks, Libraries, etc. ===&lt;br /&gt;
* [http://eris.liralab.it/yarp/ YARP, Yet Another Robot Platform]: lightweight opensource robot platform, compatible with Linux, Windows and Mac, written in C++. It is first and foremost a middleware aimed to create an actual robot software platform, rather than being an integrated, all-inclusive environment per se.&lt;br /&gt;
** [http://eris.liralab.it/yarpdoc/index.html Documentation]&lt;br /&gt;
&lt;br /&gt;
* [http://www.mrpt.org Mobile Robot Programming Toolkit]: a C++ based framework. compatible with Linux and Windows. It seems much more complete than YARP, and it prominently features libraries aimed to SLAM-based navigation.&lt;br /&gt;
** [http://www.mrpt.org/Tutorials Tutorials and guides]&lt;br /&gt;
** [http://www.mrpt.org/downloads/mrpt-book.pdf Reference Guide]&lt;br /&gt;
** [http://www.youtube.com/watch?v=IHGcW_DCaps] Video about a demonstration of SLAM navigation done through MRPT.&lt;br /&gt;
&lt;br /&gt;
* [http://www.urbiforge.org/ URBI]: another opensource robot platform, but probably heavy on the CPU. It features a reusable library of modules written in C++, an orchestration/scripting language and compatibility with ROS modules.&lt;br /&gt;
&lt;br /&gt;
=== Papers ===&lt;br /&gt;
* [http://www.robots.ox.ac.uk/~lav/Papers/davison_etal_pami2007/davison_etal_pami2007.pdf MonoSLAM]: paper about the single-camera Simultaneous Localization And Mapping algorithm.&lt;br /&gt;
* [http://geology.heroy.smu.edu/~dpa-www/robo/subsumption/]: notes about implementing a subsumption architecture in plain C&lt;/div&gt;</summary>
		<author><name>AndreaSalvi</name></author>	</entry>

	<entry>
		<id>https://airwiki.deib.polimi.it/index.php?title=Talk:Robotic_Battlefield_Control&amp;diff=15446</id>
		<title>Talk:Robotic Battlefield Control</title>
		<link rel="alternate" type="text/html" href="https://airwiki.deib.polimi.it/index.php?title=Talk:Robotic_Battlefield_Control&amp;diff=15446"/>
				<updated>2012-09-05T09:35:36Z</updated>
		
		<summary type="html">&lt;p&gt;AndreaSalvi: /* Useful and interesting links */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Related files ==&lt;br /&gt;
* [[File:RBC_state_diagrams.pdf‎]]&lt;br /&gt;
&lt;br /&gt;
== Playfield geometry ==&lt;br /&gt;
The playfield is divided into three parts:&lt;br /&gt;
* two '''home fields''' (one for each player), colored in blue for the human player and in red for the autonomous robot. The robots begin a match in these fields, and they are invulnerable while they are inside them; moreover, while being inside of these areas, they will be automatically &amp;quot;repaired&amp;quot; of any damage that they have might suffered during the match. If a robot is severely damaged during fights, it will switch to an &amp;quot;emergency mode&amp;quot; that will force it to head back home for repairs.&lt;br /&gt;
* the '''midfield''', where the '''control point''' is also located. The midfield can be cluttered with obstacles of various nature.&lt;br /&gt;
&lt;br /&gt;
== Hardware Platforms ==&lt;br /&gt;
&lt;br /&gt;
=== Remotely controlled robot ===&lt;br /&gt;
The user-controlled robot will be based on the [http://www.spykeeworld.com/spykee/UK/index.html Spykee] platform, which features a reprogrammable Linux-based firmware, and has a frontal camera and a monodirectional microphone as main sensors. Spykee will be controlled through an Android-based program (for smartphones and tablets) which will also function as the setup application for the game itself.&lt;br /&gt;
&lt;br /&gt;
The robot will be also be &amp;quot;dressed&amp;quot; in blue on all sides, in order to be recognizable by the autonomous robot.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
=== Autonomous robot ===&lt;br /&gt;
As for the remotely-controlled robot, the autonomous robot will be colored (in red) in order to be easily recognizeable.&lt;br /&gt;
==== Software Architecture ====&lt;br /&gt;
In order to keep the architecture as light as possible, a subsumption architecture, enhanced with obstacle maps ([[#Pending further analysis|see below]]).&lt;br /&gt;
&lt;br /&gt;
==== Sensors ====&lt;br /&gt;
* An '''omni-directional microphone''': to sense the vicinity and the probable position of the remotely controlled robot, and to hear the beeper indicating the position of the control point.&lt;br /&gt;
* A '''frontal camera''', which is able to recognize arbitrarily shaped objects (blobs) of a certain color, and returns the coordinates of the vertices of the rectangles that enclose them at no additional cost for the main microcontroller/CPU. This is used:&lt;br /&gt;
** to recognize the &amp;quot;home fields&amp;quot; locations;&lt;br /&gt;
** to have a visual confirmation of the presence of the control point;&lt;br /&gt;
** to identify the remotely controlled robot.&lt;br /&gt;
* '''Proximity sensors''' on all sides of the robot, to understand if there are obstacles nearby. To avoid a too coarse identification of obstacles (that would rule out viable passages for the robot), different kind of sensors can be used: for example, ultrasound sonar sensors for coarse detection and infrared sensors for a more fine-grained sensing.&lt;br /&gt;
&lt;br /&gt;
==== Pending further analysis ====&lt;br /&gt;
* '''Odometry''': since we have decided to keep an &amp;quot;explorable map&amp;quot; (that is, the map of the explored world, with reasonable metrical errors) in memory, it is imperative to find an economic and simple way to track odometry. It doesn't have to be extremely accurate, but it needs to be accurate enough so that maps don't have to be recalculated from scratch in the middle of a match. Use encoders on wheels?&lt;br /&gt;
* '''Hardware architecture''': [http://www.arduino.cc Arduino]-like or ARM based? ARM based boards (like the [http://www.raspberrypi.org RaspberryPi]) are more expensive but also more powerful, and can run libraries like OpenCV. In case of non-availability of ARM-based boards it is possible to use nano-ITX or pico-ITX x86 boards.&lt;br /&gt;
&lt;br /&gt;
==== To be discussed ====&lt;br /&gt;
* '''Compass''': a compass might be useful for the robot, in order to know its orientation in the world. Is it also possible to add it to Spykee?&lt;br /&gt;
* '''Mobile robot type''': Wheeled with differential drive? Synchronous drive? With tracks?&lt;br /&gt;
* '''Tactical AI''': How to implement it? We want the robot's reactions to be as responsive and believable as possible, since the aim of the game is to entertain the user with a challenge.&lt;br /&gt;
&lt;br /&gt;
== &amp;quot;Strong&amp;quot; themes for the thesis ==&lt;br /&gt;
* &amp;quot;Reachable map&amp;quot; concept&lt;br /&gt;
* Planning movement through the identification of landmarks (the home field and the control point).&lt;br /&gt;
&lt;br /&gt;
== Useful and interesting links ==&lt;br /&gt;
&lt;br /&gt;
=== Frameworks, Libraries, etc. ===&lt;br /&gt;
* [http://eris.liralab.it/yarp/ YARP, Yet Another Robot Platform]: lightweight opensource robot platform, compatible with Linux, Windows and Mac, written in C++. It is first and foremost a middleware aimed to create an actual robot software platform, rather than being an integrated, all-inclusive environment per se.&lt;br /&gt;
** [http://eris.liralab.it/yarpdoc/index.html Documentation]&lt;br /&gt;
&lt;br /&gt;
* [http://www.mrpt.org Mobile Robot Programming Toolkit]: a C++ based framework. compatible with Linux and Windows. It seems much more complete than YARP, and it prominently features libraries aimed to SLAM-based navigation.&lt;br /&gt;
** [http://www.mrpt.org/Tutorials Tutorials and guides]&lt;br /&gt;
** [http://www.mrpt.org/downloads/mrpt-book.pdf Reference Guide]&lt;br /&gt;
** [http://www.youtube.com/watch?v=IHGcW_DCaps] Video about a demonstration of SLAM navigation done through MRPT.&lt;br /&gt;
&lt;br /&gt;
* [http://www.urbiforge.org/ URBI]: another opensource robot platform, but probably heavy on the CPU. It features a reusable library of modules written in C++, an orchestration/scripting language and compatibility with ROS modules.&lt;br /&gt;
&lt;br /&gt;
=== Papers ===&lt;br /&gt;
* [http://www.robots.ox.ac.uk/~lav/Papers/davison_etal_pami2007/davison_etal_pami2007.pdf MonoSLAM]: paper about the single-camera Simultaneous Localization And Mapping algorithm.&lt;br /&gt;
* [http://geology.heroy.smu.edu/~dpa-www/robo/subsumption/]: notes about implementing a subsumption architecture in plain C&lt;/div&gt;</summary>
		<author><name>AndreaSalvi</name></author>	</entry>

	<entry>
		<id>https://airwiki.deib.polimi.it/index.php?title=Talk:Robotic_Battlefield_Control&amp;diff=15444</id>
		<title>Talk:Robotic Battlefield Control</title>
		<link rel="alternate" type="text/html" href="https://airwiki.deib.polimi.it/index.php?title=Talk:Robotic_Battlefield_Control&amp;diff=15444"/>
				<updated>2012-09-03T15:18:33Z</updated>
		
		<summary type="html">&lt;p&gt;AndreaSalvi: /* Frameworks, Libraries, etc. */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Related files ==&lt;br /&gt;
* [[File:RBC_state_diagrams.pdf‎]]&lt;br /&gt;
&lt;br /&gt;
== Playfield geometry ==&lt;br /&gt;
The playfield is divided into three parts:&lt;br /&gt;
* two '''home fields''' (one for each player), colored in blue for the human player and in red for the autonomous robot. The robots begin a match in these fields, and they are invulnerable while they are inside them; moreover, while being inside of these areas, they will be automatically &amp;quot;repaired&amp;quot; of any damage that they have might suffered during the match. If a robot is severely damaged during fights, it will switch to an &amp;quot;emergency mode&amp;quot; that will force it to head back home for repairs.&lt;br /&gt;
* the '''midfield''', where the '''control point''' is also located. The midfield can be cluttered with obstacles of various nature.&lt;br /&gt;
&lt;br /&gt;
== Hardware Platforms ==&lt;br /&gt;
&lt;br /&gt;
=== Remotely controlled robot ===&lt;br /&gt;
The user-controlled robot will be based on the [http://www.spykeeworld.com/spykee/UK/index.html Spykee] platform, which features a reprogrammable Linux-based firmware, and has a frontal camera and a monodirectional microphone as main sensors. Spykee will be controlled through an Android-based program (for smartphones and tablets) which will also function as the setup application for the game itself.&lt;br /&gt;
&lt;br /&gt;
The robot will be also be &amp;quot;dressed&amp;quot; in blue on all sides, in order to be recognizable by the autonomous robot.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
=== Autonomous robot ===&lt;br /&gt;
As for the remotely-controlled robot, the autonomous robot will be colored (in red) in order to be easily recognizeable.&lt;br /&gt;
==== Software Architecture ====&lt;br /&gt;
In order to keep the architecture as light as possible, a subsumption architecture, enhanced with obstacle maps ([[#Pending further analysis|see below]]).&lt;br /&gt;
&lt;br /&gt;
==== Sensors ====&lt;br /&gt;
* An '''omni-directional microphone''': to sense the vicinity and the probable position of the remotely controlled robot, and to hear the beeper indicating the position of the control point.&lt;br /&gt;
* A '''frontal camera''', which is able to recognize arbitrarily shaped objects (blobs) of a certain color, and returns the coordinates of the vertices of the rectangles that enclose them at no additional cost for the main microcontroller/CPU. This is used:&lt;br /&gt;
** to recognize the &amp;quot;home fields&amp;quot; locations;&lt;br /&gt;
** to have a visual confirmation of the presence of the control point;&lt;br /&gt;
** to identify the remotely controlled robot.&lt;br /&gt;
* '''Proximity sensors''' on all sides of the robot, to understand if there are obstacles nearby. To avoid a too coarse identification of obstacles (that would rule out viable passages for the robot), different kind of sensors can be used: for example, ultrasound sonar sensors for coarse detection and infrared sensors for a more fine-grained sensing.&lt;br /&gt;
&lt;br /&gt;
==== Pending further analysis ====&lt;br /&gt;
* '''Odometry''': since we have decided to keep an &amp;quot;explorable map&amp;quot; (that is, the map of the explored world, with reasonable metrical errors) in memory, it is imperative to find an economic and simple way to track odometry. It doesn't have to be extremely accurate, but it needs to be accurate enough so that maps don't have to be recalculated from scratch in the middle of a match. Use encoders on wheels?&lt;br /&gt;
* '''Hardware architecture''': [http://www.arduino.cc Arduino]-like or ARM based? ARM based boards (like the [http://www.raspberrypi.org RaspberryPi]) are more expensive but also more powerful, and can run libraries like OpenCV. In case of non-availability of ARM-based boards it is possible to use nano-ITX or pico-ITX x86 boards.&lt;br /&gt;
&lt;br /&gt;
==== To be discussed ====&lt;br /&gt;
* '''Compass''': a compass might be useful for the robot, in order to know its orientation in the world. Is it also possible to add it to Spykee?&lt;br /&gt;
* '''Mobile robot type''': Wheeled with differential drive? Synchronous drive? With tracks?&lt;br /&gt;
* '''Tactical AI''': How to implement it? We want the robot's reactions to be as responsive and believable as possible, since the aim of the game is to entertain the user with a challenge.&lt;br /&gt;
&lt;br /&gt;
== &amp;quot;Strong&amp;quot; themes for the thesis ==&lt;br /&gt;
* &amp;quot;Reachable map&amp;quot; concept&lt;br /&gt;
* Planning movement through the identification of landmarks (the home field and the control point).&lt;br /&gt;
&lt;br /&gt;
== Useful and interesting links ==&lt;br /&gt;
&lt;br /&gt;
=== Frameworks, Libraries, etc. ===&lt;br /&gt;
* [http://eris.liralab.it/yarp/ YARP, Yet Another Robot Platform]: lightweight opensource robot platform, compatible with Linux, Windows and Mac, written in C++. It is first and foremost a middleware aimed to create an actual robot software platform, rather than being an integrated, all-inclusive environment per se.&lt;br /&gt;
** [http://eris.liralab.it/yarpdoc/index.html Documentation]&lt;br /&gt;
&lt;br /&gt;
* [http://www.mrpt.org Mobile Robot Programming Toolkit]: a C++ based framework. compatible with Linux and Windows. It seems much more complete than YARP, and it prominently features libraries aimed to SLAM-based navigation.&lt;br /&gt;
** [http://www.mrpt.org/Tutorials Tutorials and guides]&lt;br /&gt;
** [http://www.mrpt.org/downloads/mrpt-book.pdf Reference Guide]&lt;br /&gt;
&lt;br /&gt;
* [http://www.urbiforge.org/ URBI]: another opensource robot platform, but probably heavy on the CPU. It features a reusable library of modules written in C++, an orchestration/scripting language and compatibility with ROS modules.&lt;br /&gt;
&lt;br /&gt;
=== Papers ===&lt;br /&gt;
* [http://www.robots.ox.ac.uk/~lav/Papers/davison_etal_pami2007/davison_etal_pami2007.pdf MonoSLAM]: paper about the single-camera Simultaneous Localization And Mapping algorithm.&lt;br /&gt;
* [http://geology.heroy.smu.edu/~dpa-www/robo/subsumption/]: notes about implementing a subsumption architecture in plain C&lt;/div&gt;</summary>
		<author><name>AndreaSalvi</name></author>	</entry>

	<entry>
		<id>https://airwiki.deib.polimi.it/index.php?title=Talk:Robotic_Battlefield_Control&amp;diff=15443</id>
		<title>Talk:Robotic Battlefield Control</title>
		<link rel="alternate" type="text/html" href="https://airwiki.deib.polimi.it/index.php?title=Talk:Robotic_Battlefield_Control&amp;diff=15443"/>
				<updated>2012-09-03T14:46:50Z</updated>
		
		<summary type="html">&lt;p&gt;AndreaSalvi: /* Useful and interesting links */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Related files ==&lt;br /&gt;
* [[File:RBC_state_diagrams.pdf‎]]&lt;br /&gt;
&lt;br /&gt;
== Playfield geometry ==&lt;br /&gt;
The playfield is divided into three parts:&lt;br /&gt;
* two '''home fields''' (one for each player), colored in blue for the human player and in red for the autonomous robot. The robots begin a match in these fields, and they are invulnerable while they are inside them; moreover, while being inside of these areas, they will be automatically &amp;quot;repaired&amp;quot; of any damage that they have might suffered during the match. If a robot is severely damaged during fights, it will switch to an &amp;quot;emergency mode&amp;quot; that will force it to head back home for repairs.&lt;br /&gt;
* the '''midfield''', where the '''control point''' is also located. The midfield can be cluttered with obstacles of various nature.&lt;br /&gt;
&lt;br /&gt;
== Hardware Platforms ==&lt;br /&gt;
&lt;br /&gt;
=== Remotely controlled robot ===&lt;br /&gt;
The user-controlled robot will be based on the [http://www.spykeeworld.com/spykee/UK/index.html Spykee] platform, which features a reprogrammable Linux-based firmware, and has a frontal camera and a monodirectional microphone as main sensors. Spykee will be controlled through an Android-based program (for smartphones and tablets) which will also function as the setup application for the game itself.&lt;br /&gt;
&lt;br /&gt;
The robot will be also be &amp;quot;dressed&amp;quot; in blue on all sides, in order to be recognizable by the autonomous robot.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
=== Autonomous robot ===&lt;br /&gt;
As for the remotely-controlled robot, the autonomous robot will be colored (in red) in order to be easily recognizeable.&lt;br /&gt;
==== Software Architecture ====&lt;br /&gt;
In order to keep the architecture as light as possible, a subsumption architecture, enhanced with obstacle maps ([[#Pending further analysis|see below]]).&lt;br /&gt;
&lt;br /&gt;
==== Sensors ====&lt;br /&gt;
* An '''omni-directional microphone''': to sense the vicinity and the probable position of the remotely controlled robot, and to hear the beeper indicating the position of the control point.&lt;br /&gt;
* A '''frontal camera''', which is able to recognize arbitrarily shaped objects (blobs) of a certain color, and returns the coordinates of the vertices of the rectangles that enclose them at no additional cost for the main microcontroller/CPU. This is used:&lt;br /&gt;
** to recognize the &amp;quot;home fields&amp;quot; locations;&lt;br /&gt;
** to have a visual confirmation of the presence of the control point;&lt;br /&gt;
** to identify the remotely controlled robot.&lt;br /&gt;
* '''Proximity sensors''' on all sides of the robot, to understand if there are obstacles nearby. To avoid a too coarse identification of obstacles (that would rule out viable passages for the robot), different kind of sensors can be used: for example, ultrasound sonar sensors for coarse detection and infrared sensors for a more fine-grained sensing.&lt;br /&gt;
&lt;br /&gt;
==== Pending further analysis ====&lt;br /&gt;
* '''Odometry''': since we have decided to keep an &amp;quot;explorable map&amp;quot; (that is, the map of the explored world, with reasonable metrical errors) in memory, it is imperative to find an economic and simple way to track odometry. It doesn't have to be extremely accurate, but it needs to be accurate enough so that maps don't have to be recalculated from scratch in the middle of a match. Use encoders on wheels?&lt;br /&gt;
* '''Hardware architecture''': [http://www.arduino.cc Arduino]-like or ARM based? ARM based boards (like the [http://www.raspberrypi.org RaspberryPi]) are more expensive but also more powerful, and can run libraries like OpenCV. In case of non-availability of ARM-based boards it is possible to use nano-ITX or pico-ITX x86 boards.&lt;br /&gt;
&lt;br /&gt;
==== To be discussed ====&lt;br /&gt;
* '''Compass''': a compass might be useful for the robot, in order to know its orientation in the world. Is it also possible to add it to Spykee?&lt;br /&gt;
* '''Mobile robot type''': Wheeled with differential drive? Synchronous drive? With tracks?&lt;br /&gt;
* '''Tactical AI''': How to implement it? We want the robot's reactions to be as responsive and believable as possible, since the aim of the game is to entertain the user with a challenge.&lt;br /&gt;
&lt;br /&gt;
== &amp;quot;Strong&amp;quot; themes for the thesis ==&lt;br /&gt;
* &amp;quot;Reachable map&amp;quot; concept&lt;br /&gt;
* Planning movement through the identification of landmarks (the home field and the control point).&lt;br /&gt;
&lt;br /&gt;
== Useful and interesting links ==&lt;br /&gt;
&lt;br /&gt;
=== Frameworks, Libraries, etc. ===&lt;br /&gt;
* [http://eris.liralab.it/yarp/ YARP, Yet Another Robot Platform]: lightweight opensource robot platform, compatible with Linux, Windows and Mac, written in C++&lt;br /&gt;
* [http://www.urbiforge.org/ URBI]: another opensource robot platform, but probably heavy on the CPU. It features a reusable library of modules written in C++, an orchestration/scripting language and compatibility with ROS modules.&lt;br /&gt;
* [http://www.mrpt.org Mobile Robot Programming Toolkit]: a C++ based framework for SLAM-based navigation, compatible with Linux and Windows.&lt;br /&gt;
&lt;br /&gt;
=== Papers ===&lt;br /&gt;
* [http://www.robots.ox.ac.uk/~lav/Papers/davison_etal_pami2007/davison_etal_pami2007.pdf MonoSLAM]: paper about the single-camera Simultaneous Localization And Mapping algorithm.&lt;br /&gt;
* [http://geology.heroy.smu.edu/~dpa-www/robo/subsumption/]: notes about implementing a subsumption architecture in plain C&lt;/div&gt;</summary>
		<author><name>AndreaSalvi</name></author>	</entry>

	<entry>
		<id>https://airwiki.deib.polimi.it/index.php?title=Talk:Robotic_Battlefield_Control&amp;diff=15442</id>
		<title>Talk:Robotic Battlefield Control</title>
		<link rel="alternate" type="text/html" href="https://airwiki.deib.polimi.it/index.php?title=Talk:Robotic_Battlefield_Control&amp;diff=15442"/>
				<updated>2012-09-03T13:31:44Z</updated>
		
		<summary type="html">&lt;p&gt;AndreaSalvi: Link to the state diagrams file inserted.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Related files ==&lt;br /&gt;
* [[File:RBC_state_diagrams.pdf‎]]&lt;br /&gt;
&lt;br /&gt;
== Playfield geometry ==&lt;br /&gt;
The playfield is divided into three parts:&lt;br /&gt;
* two '''home fields''' (one for each player), colored in blue for the human player and in red for the autonomous robot. The robots begin a match in these fields, and they are invulnerable while they are inside them; moreover, while being inside of these areas, they will be automatically &amp;quot;repaired&amp;quot; of any damage that they have might suffered during the match. If a robot is severely damaged during fights, it will switch to an &amp;quot;emergency mode&amp;quot; that will force it to head back home for repairs.&lt;br /&gt;
* the '''midfield''', where the '''control point''' is also located. The midfield can be cluttered with obstacles of various nature.&lt;br /&gt;
&lt;br /&gt;
== Hardware Platforms ==&lt;br /&gt;
&lt;br /&gt;
=== Remotely controlled robot ===&lt;br /&gt;
The user-controlled robot will be based on the [http://www.spykeeworld.com/spykee/UK/index.html Spykee] platform, which features a reprogrammable Linux-based firmware, and has a frontal camera and a monodirectional microphone as main sensors. Spykee will be controlled through an Android-based program (for smartphones and tablets) which will also function as the setup application for the game itself.&lt;br /&gt;
&lt;br /&gt;
The robot will be also be &amp;quot;dressed&amp;quot; in blue on all sides, in order to be recognizable by the autonomous robot.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
=== Autonomous robot ===&lt;br /&gt;
As for the remotely-controlled robot, the autonomous robot will be colored (in red) in order to be easily recognizeable.&lt;br /&gt;
==== Software Architecture ====&lt;br /&gt;
In order to keep the architecture as light as possible, a subsumption architecture, enhanced with obstacle maps ([[#Pending further analysis|see below]]).&lt;br /&gt;
&lt;br /&gt;
==== Sensors ====&lt;br /&gt;
* An '''omni-directional microphone''': to sense the vicinity and the probable position of the remotely controlled robot, and to hear the beeper indicating the position of the control point.&lt;br /&gt;
* A '''frontal camera''', which is able to recognize arbitrarily shaped objects (blobs) of a certain color, and returns the coordinates of the vertices of the rectangles that enclose them at no additional cost for the main microcontroller/CPU. This is used:&lt;br /&gt;
** to recognize the &amp;quot;home fields&amp;quot; locations;&lt;br /&gt;
** to have a visual confirmation of the presence of the control point;&lt;br /&gt;
** to identify the remotely controlled robot.&lt;br /&gt;
* '''Proximity sensors''' on all sides of the robot, to understand if there are obstacles nearby. To avoid a too coarse identification of obstacles (that would rule out viable passages for the robot), different kind of sensors can be used: for example, ultrasound sonar sensors for coarse detection and infrared sensors for a more fine-grained sensing.&lt;br /&gt;
&lt;br /&gt;
==== Pending further analysis ====&lt;br /&gt;
* '''Odometry''': since we have decided to keep an &amp;quot;explorable map&amp;quot; (that is, the map of the explored world, with reasonable metrical errors) in memory, it is imperative to find an economic and simple way to track odometry. It doesn't have to be extremely accurate, but it needs to be accurate enough so that maps don't have to be recalculated from scratch in the middle of a match. Use encoders on wheels?&lt;br /&gt;
* '''Hardware architecture''': [http://www.arduino.cc Arduino]-like or ARM based? ARM based boards (like the [http://www.raspberrypi.org RaspberryPi]) are more expensive but also more powerful, and can run libraries like OpenCV. In case of non-availability of ARM-based boards it is possible to use nano-ITX or pico-ITX x86 boards.&lt;br /&gt;
&lt;br /&gt;
==== To be discussed ====&lt;br /&gt;
* '''Compass''': a compass might be useful for the robot, in order to know its orientation in the world. Is it also possible to add it to Spykee?&lt;br /&gt;
* '''Mobile robot type''': Wheeled with differential drive? Synchronous drive? With tracks?&lt;br /&gt;
* '''Tactical AI''': How to implement it? We want the robot's reactions to be as responsive and believable as possible, since the aim of the game is to entertain the user with a challenge.&lt;br /&gt;
&lt;br /&gt;
== &amp;quot;Strong&amp;quot; themes for the thesis ==&lt;br /&gt;
* &amp;quot;Reachable map&amp;quot; concept&lt;br /&gt;
* Planning movement through the identification of landmarks (the home field and the control point).&lt;br /&gt;
&lt;br /&gt;
== Useful and interesting links ==&lt;br /&gt;
* [http://www.robots.ox.ac.uk/~lav/Papers/davison_etal_pami2007/davison_etal_pami2007.pdf MonoSLAM]: paper about the single-camera Simultaneous Localization And Mapping algorithm.&lt;/div&gt;</summary>
		<author><name>AndreaSalvi</name></author>	</entry>

	<entry>
		<id>https://airwiki.deib.polimi.it/index.php?title=File:RBC_state_diagrams.pdf&amp;diff=15441</id>
		<title>File:RBC state diagrams.pdf</title>
		<link rel="alternate" type="text/html" href="https://airwiki.deib.polimi.it/index.php?title=File:RBC_state_diagrams.pdf&amp;diff=15441"/>
				<updated>2012-09-03T13:23:58Z</updated>
		
		<summary type="html">&lt;p&gt;AndreaSalvi: State diagrams for the Robotic Battlefield Control, part of the Robogames effort.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;State diagrams for the Robotic Battlefield Control, part of the Robogames effort.&lt;/div&gt;</summary>
		<author><name>AndreaSalvi</name></author>	</entry>

	<entry>
		<id>https://airwiki.deib.polimi.it/index.php?title=Talk:Robotic_Battlefield_Control&amp;diff=15392</id>
		<title>Talk:Robotic Battlefield Control</title>
		<link rel="alternate" type="text/html" href="https://airwiki.deib.polimi.it/index.php?title=Talk:Robotic_Battlefield_Control&amp;diff=15392"/>
				<updated>2012-07-22T13:33:29Z</updated>
		
		<summary type="html">&lt;p&gt;AndreaSalvi: /* Useful and interesting links */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Playfield geometry ==&lt;br /&gt;
The playfield is divided into three parts:&lt;br /&gt;
* two '''home fields''' (one for each player), colored in blue for the human player and in red for the autonomous robot. The robots begin a match in these fields, and they are invulnerable while they are inside them; moreover, while being inside of these areas, they will be automatically &amp;quot;repaired&amp;quot; of any damage that they have might suffered during the match. If a robot is severely damaged during fights, it will switch to an &amp;quot;emergency mode&amp;quot; that will force it to head back home for repairs.&lt;br /&gt;
* the '''midfield''', where the '''control point''' is also located. The midfield can be cluttered with obstacles of various nature.&lt;br /&gt;
&lt;br /&gt;
== Hardware Platforms ==&lt;br /&gt;
&lt;br /&gt;
=== Remotely controlled robot ===&lt;br /&gt;
The user-controlled robot will be based on the [http://www.spykeeworld.com/spykee/UK/index.html Spykee] platform, which features a reprogrammable Linux-based firmware, and has a frontal camera and a monodirectional microphone as main sensors. Spykee will be controlled through an Android-based program (for smartphones and tablets) which will also function as the setup application for the game itself.&lt;br /&gt;
&lt;br /&gt;
The robot will be also be &amp;quot;dressed&amp;quot; in blue on all sides, in order to be recognizable by the autonomous robot.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
=== Autonomous robot ===&lt;br /&gt;
As for the remotely-controlled robot, the autonomous robot will be colored (in red) in order to be easily recognizeable.&lt;br /&gt;
==== Software Architecture ====&lt;br /&gt;
In order to keep the architecture as light as possible, a subsumption architecture, enhanced with obstacle maps ([[#Pending further analysis|see below]]).&lt;br /&gt;
&lt;br /&gt;
==== Sensors ====&lt;br /&gt;
* An '''omni-directional microphone''': to sense the vicinity and the probable position of the remotely controlled robot, and to hear the beeper indicating the position of the control point.&lt;br /&gt;
* A '''frontal camera''', which is able to recognize arbitrarily shaped objects (blobs) of a certain color, and returns the coordinates of the vertices of the rectangles that enclose them at no additional cost for the main microcontroller/CPU. This is used:&lt;br /&gt;
** to recognize the &amp;quot;home fields&amp;quot; locations;&lt;br /&gt;
** to have a visual confirmation of the presence of the control point;&lt;br /&gt;
** to identify the remotely controlled robot.&lt;br /&gt;
* '''Proximity sensors''' on all sides of the robot, to understand if there are obstacles nearby. To avoid a too coarse identification of obstacles (that would rule out viable passages for the robot), different kind of sensors can be used: for example, ultrasound sonar sensors for coarse detection and infrared sensors for a more fine-grained sensing.&lt;br /&gt;
&lt;br /&gt;
==== Pending further analysis ====&lt;br /&gt;
* '''Odometry''': since we have decided to keep an &amp;quot;explorable map&amp;quot; (that is, the map of the explored world, with reasonable metrical errors) in memory, it is imperative to find an economic and simple way to track odometry. It doesn't have to be extremely accurate, but it needs to be accurate enough so that maps don't have to be recalculated from scratch in the middle of a match. Use encoders on wheels?&lt;br /&gt;
* '''Hardware architecture''': [http://www.arduino.cc Arduino]-like or ARM based? ARM based boards (like the [http://www.raspberrypi.org RaspberryPi]) are more expensive but also more powerful, and can run libraries like OpenCV. In case of non-availability of ARM-based boards it is possible to use nano-ITX or pico-ITX x86 boards.&lt;br /&gt;
&lt;br /&gt;
==== To be discussed ====&lt;br /&gt;
* '''Compass''': a compass might be useful for the robot, in order to know its orientation in the world. Is it also possible to add it to Spykee?&lt;br /&gt;
* '''Mobile robot type''': Wheeled with differential drive? Synchronous drive? With tracks?&lt;br /&gt;
* '''Tactical AI''': How to implement it? We want the robot's reactions to be as responsive and believable as possible, since the aim of the game is to entertain the user with a challenge.&lt;br /&gt;
&lt;br /&gt;
== &amp;quot;Strong&amp;quot; themes for the thesis ==&lt;br /&gt;
* &amp;quot;Reachable map&amp;quot; concept&lt;br /&gt;
* Planning movement through the identification of landmarks (the home field and the control point).&lt;br /&gt;
&lt;br /&gt;
== Useful and interesting links ==&lt;br /&gt;
* [http://www.robots.ox.ac.uk/~lav/Papers/davison_etal_pami2007/davison_etal_pami2007.pdf MonoSLAM]: paper about the single-camera Simultaneous Localization And Mapping algorithm.&lt;/div&gt;</summary>
		<author><name>AndreaSalvi</name></author>	</entry>

	<entry>
		<id>https://airwiki.deib.polimi.it/index.php?title=Talk:Robotic_Battlefield_Control&amp;diff=15391</id>
		<title>Talk:Robotic Battlefield Control</title>
		<link rel="alternate" type="text/html" href="https://airwiki.deib.polimi.it/index.php?title=Talk:Robotic_Battlefield_Control&amp;diff=15391"/>
				<updated>2012-07-21T16:36:49Z</updated>
		
		<summary type="html">&lt;p&gt;AndreaSalvi: Created page with &amp;quot;== Playfield geometry == The playfield is divided into three parts: * two '''home fields''' (one for each player), colored in blue for the human player and in red for the auto...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Playfield geometry ==&lt;br /&gt;
The playfield is divided into three parts:&lt;br /&gt;
* two '''home fields''' (one for each player), colored in blue for the human player and in red for the autonomous robot. The robots begin a match in these fields, and they are invulnerable while they are inside them; moreover, while being inside of these areas, they will be automatically &amp;quot;repaired&amp;quot; of any damage that they have might suffered during the match. If a robot is severely damaged during fights, it will switch to an &amp;quot;emergency mode&amp;quot; that will force it to head back home for repairs.&lt;br /&gt;
* the '''midfield''', where the '''control point''' is also located. The midfield can be cluttered with obstacles of various nature.&lt;br /&gt;
&lt;br /&gt;
== Hardware Platforms ==&lt;br /&gt;
&lt;br /&gt;
=== Remotely controlled robot ===&lt;br /&gt;
The user-controlled robot will be based on the [http://www.spykeeworld.com/spykee/UK/index.html Spykee] platform, which features a reprogrammable Linux-based firmware, and has a frontal camera and a monodirectional microphone as main sensors. Spykee will be controlled through an Android-based program (for smartphones and tablets) which will also function as the setup application for the game itself.&lt;br /&gt;
&lt;br /&gt;
The robot will be also be &amp;quot;dressed&amp;quot; in blue on all sides, in order to be recognizable by the autonomous robot.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
=== Autonomous robot ===&lt;br /&gt;
As for the remotely-controlled robot, the autonomous robot will be colored (in red) in order to be easily recognizeable.&lt;br /&gt;
==== Software Architecture ====&lt;br /&gt;
In order to keep the architecture as light as possible, a subsumption architecture, enhanced with obstacle maps ([[#Pending further analysis|see below]]).&lt;br /&gt;
&lt;br /&gt;
==== Sensors ====&lt;br /&gt;
* An '''omni-directional microphone''': to sense the vicinity and the probable position of the remotely controlled robot, and to hear the beeper indicating the position of the control point.&lt;br /&gt;
* A '''frontal camera''', which is able to recognize arbitrarily shaped objects (blobs) of a certain color, and returns the coordinates of the vertices of the rectangles that enclose them at no additional cost for the main microcontroller/CPU. This is used:&lt;br /&gt;
** to recognize the &amp;quot;home fields&amp;quot; locations;&lt;br /&gt;
** to have a visual confirmation of the presence of the control point;&lt;br /&gt;
** to identify the remotely controlled robot.&lt;br /&gt;
* '''Proximity sensors''' on all sides of the robot, to understand if there are obstacles nearby. To avoid a too coarse identification of obstacles (that would rule out viable passages for the robot), different kind of sensors can be used: for example, ultrasound sonar sensors for coarse detection and infrared sensors for a more fine-grained sensing.&lt;br /&gt;
&lt;br /&gt;
==== Pending further analysis ====&lt;br /&gt;
* '''Odometry''': since we have decided to keep an &amp;quot;explorable map&amp;quot; (that is, the map of the explored world, with reasonable metrical errors) in memory, it is imperative to find an economic and simple way to track odometry. It doesn't have to be extremely accurate, but it needs to be accurate enough so that maps don't have to be recalculated from scratch in the middle of a match. Use encoders on wheels?&lt;br /&gt;
* '''Hardware architecture''': [http://www.arduino.cc Arduino]-like or ARM based? ARM based boards (like the [http://www.raspberrypi.org RaspberryPi]) are more expensive but also more powerful, and can run libraries like OpenCV. In case of non-availability of ARM-based boards it is possible to use nano-ITX or pico-ITX x86 boards.&lt;br /&gt;
&lt;br /&gt;
==== To be discussed ====&lt;br /&gt;
* '''Compass''': a compass might be useful for the robot, in order to know its orientation in the world. Is it also possible to add it to Spykee?&lt;br /&gt;
* '''Mobile robot type''': Wheeled with differential drive? Synchronous drive? With tracks?&lt;br /&gt;
* '''Tactical AI''': How to implement it? We want the robot's reactions to be as responsive and believable as possible, since the aim of the game is to entertain the user with a challenge.&lt;br /&gt;
&lt;br /&gt;
== &amp;quot;Strong&amp;quot; themes for the thesis ==&lt;br /&gt;
* &amp;quot;Reachable map&amp;quot; concept&lt;br /&gt;
* Planning movement through the identification of landmarks (the home field and the control point).&lt;br /&gt;
&lt;br /&gt;
== Useful and interesting links ==&lt;br /&gt;
* [http://www.robots.ox.ac.uk/~lav/Papers/davison_etal_pami2007/davison_etal_pami2007.pdf| MonoSLAM]: paper about the single-camera Simultaneous Localization And Mapping algorithm.&lt;/div&gt;</summary>
		<author><name>AndreaSalvi</name></author>	</entry>

	<entry>
		<id>https://airwiki.deib.polimi.it/index.php?title=Robotic_Battlefield_Control&amp;diff=15094</id>
		<title>Robotic Battlefield Control</title>
		<link rel="alternate" type="text/html" href="https://airwiki.deib.polimi.it/index.php?title=Robotic_Battlefield_Control&amp;diff=15094"/>
				<updated>2012-06-09T16:30:21Z</updated>
		
		<summary type="html">&lt;p&gt;AndreaSalvi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Project&lt;br /&gt;
 | title=Robotic Battlefield Control&lt;br /&gt;
 | short_descr=The goal of the project is to develop an interactive game between an autonomous robot and a remotely-controlled one, fighting for the control of a strategic point inside an arena-like playfield.&lt;br /&gt;
 | coordinator=AndreaBonarini&lt;br /&gt;
 | tutor=AndreaBonarini&lt;br /&gt;
 | students=AndreaSalvi&lt;br /&gt;
 | resarea=Robotics&lt;br /&gt;
 | restopic=Robogames&lt;br /&gt;
 | start=04/06/2012&lt;br /&gt;
 | end=31/12/2012&lt;br /&gt;
 | status=Active&lt;br /&gt;
 | level = Ms&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
'''Robotic Battlefield Control''' (or '''RBC''' for short) is a game developed as a part of the [[Robogames]] effort, loosely inspired by several videogames such as [http://www.leagueoflegends.com League of Legends] and [http://www.unrealtournament.com Unreal Tournament]'s ''Dominion mode''.&lt;br /&gt;
&lt;br /&gt;
== Game Description ==&lt;br /&gt;
&lt;br /&gt;
The participants are two identical robots, dubbed as ''RBC units'': one of these is autonomous, while the other one is remotely controlled by the player through an Android smartphone interface.&lt;br /&gt;
&lt;br /&gt;
The game objective is to take and hold an area of the playfield, called ''strategic point''. This territory is &amp;quot;being hold&amp;quot; whenever one of the robots is in its immediate vicinities; for every second while one of the robots satisfy this condition, a counter is increased until a certain threshold (for example 60 seconds, or more) is reached. The first robot which is able to reach the threshold, wins. Note that if both robots are close to the strategic point, the area is being ''contended'', and neither of them will earn points towards the goal -- unless one of the robots has been disabled.&lt;br /&gt;
&lt;br /&gt;
In fact, both robots are equipped with a (fictitious) rifle, and thus are able to shoot at each other. After a robot is hit several times, it shuts itself down for &amp;quot;autorepair&amp;quot; purposes for several seconds; once this operation is completed, it will reactivate itself at full health.&lt;br /&gt;
&lt;br /&gt;
The arena where the game is set is filled with walls that act as visual obstacles, which can provide cover for guerrilla actions such as ambushes.&lt;br /&gt;
&lt;br /&gt;
== Additional Information ==&lt;br /&gt;
&lt;br /&gt;
More information will be available both on this page, and on its relative [[{{TALKPAGENAME}}|Discussion]] page.&lt;/div&gt;</summary>
		<author><name>AndreaSalvi</name></author>	</entry>

	<entry>
		<id>https://airwiki.deib.polimi.it/index.php?title=User:AndreaSalvi&amp;diff=15093</id>
		<title>User:AndreaSalvi</title>
		<link rel="alternate" type="text/html" href="https://airwiki.deib.polimi.it/index.php?title=User:AndreaSalvi&amp;diff=15093"/>
				<updated>2012-06-09T16:26:26Z</updated>
		
		<summary type="html">&lt;p&gt;AndreaSalvi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SMWUser&lt;br /&gt;
|firstname=Andrea&lt;br /&gt;
|lastname=Salvi&lt;br /&gt;
|email=andrea2.salvi@mail.polimi.it&lt;br /&gt;
|advisor=AndreaBonarini&lt;br /&gt;
|projectpage=Robotic Battlefield Control&lt;br /&gt;
|photo=AndreaSalvi.jpg&lt;br /&gt;
|status=active&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Andrea Salvi&lt;br /&gt;
&lt;br /&gt;
Matricola: 721287&lt;br /&gt;
&lt;br /&gt;
Nato ad Alzano Lombardo il 03-05-1984&lt;br /&gt;
&lt;br /&gt;
Istruzione e formazione&lt;br /&gt;
&lt;br /&gt;
- settembre 2007: Laurea in Ingegneria Informatica (1° livello) presso il Politecnico di Milano&lt;br /&gt;
&lt;br /&gt;
- luglio 2003: Maturità Scientifica presso il Liceo Scientifico Mascheroni di Bergamo&lt;/div&gt;</summary>
		<author><name>AndreaSalvi</name></author>	</entry>

	<entry>
		<id>https://airwiki.deib.polimi.it/index.php?title=Robotic_Battlefield_Control&amp;diff=15092</id>
		<title>Robotic Battlefield Control</title>
		<link rel="alternate" type="text/html" href="https://airwiki.deib.polimi.it/index.php?title=Robotic_Battlefield_Control&amp;diff=15092"/>
				<updated>2012-06-09T16:22:14Z</updated>
		
		<summary type="html">&lt;p&gt;AndreaSalvi: Created page with &amp;quot;{{Project  | title=Robotic Battlefield Control  | short_descr=The goal of the project is to develop an interactive game between an autonomous robot and a remotely-controlled o...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Project&lt;br /&gt;
 | title=Robotic Battlefield Control&lt;br /&gt;
 | short_descr=The goal of the project is to develop an interactive game between an autonomous robot and a remotely-controlled one, fighting for the control of a strategic point inside an arena-like playfield.&lt;br /&gt;
 | coordinator=AndreaBonarini&lt;br /&gt;
 | tutor=AndreaBonarini&lt;br /&gt;
 | students=AndreaSalvi&lt;br /&gt;
 | resarea=Robotics&lt;br /&gt;
 | restopic=Robogames&lt;br /&gt;
 | start=04/06/2012&lt;br /&gt;
 | end=31/12/2012&lt;br /&gt;
 | status=Active&lt;br /&gt;
 | level = Ms&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
'''Robotic Battlefield Control''' (or '''RBC''' for short) is a game developed as a part of the [[Robogames]] effort, loosely inspired by several videogames such as [http://www.leagueoflegends.com League of Legends] and [http://www.unrealtournament.com Unreal Tournament]'s ''Dominion mode''.&lt;br /&gt;
&lt;br /&gt;
== Game Description ==&lt;br /&gt;
&lt;br /&gt;
The participants are two identical robots, dubbed as ''RBC units'': one of these is autonomous, while the other one is remotely controlled by the player through an Android smartphone interface.&lt;br /&gt;
&lt;br /&gt;
The game objective is to take and hold an area of the playfield, called ''strategic point''. This territory is &amp;quot;being hold&amp;quot; whenever one of the robots is in its immediate vicinities; for every second while one of the robots satisfy this condition, a counter is increased until a certain threshold (for example 60 seconds, or more) is reached. The first robot which is able to reach the threshold, wins. Note that if both robots are close to the strategic point, the area is being ''contended'', and neither of them will earn points towards the goal -- unless one of the robots has been disabled.&lt;br /&gt;
&lt;br /&gt;
In fact, both robots are equipped with a (fictitious) rifle, and thus are able to shoot at each other. After a robot is hit several times, it shuts itself down for &amp;quot;autorepair&amp;quot; purposes for several seconds; once this operation is completed, it will reactivate itself at full health.&lt;br /&gt;
&lt;br /&gt;
The arena where the game is set is filled with walls that act as visual obstacles, which can provide cover for guerrilla actions such as ambushes.&lt;br /&gt;
&lt;br /&gt;
== Additional Information ==&lt;br /&gt;
&lt;br /&gt;
More information will be available both on this page, and on its relative Discussion page.&lt;/div&gt;</summary>
		<author><name>AndreaSalvi</name></author>	</entry>

	<entry>
		<id>https://airwiki.deib.polimi.it/index.php?title=File:AndreaSalvi.jpg&amp;diff=15027</id>
		<title>File:AndreaSalvi.jpg</title>
		<link rel="alternate" type="text/html" href="https://airwiki.deib.polimi.it/index.php?title=File:AndreaSalvi.jpg&amp;diff=15027"/>
				<updated>2012-05-27T14:44:09Z</updated>
		
		<summary type="html">&lt;p&gt;AndreaSalvi: uploaded a new version of &amp;amp;quot;File:AndreaSalvi.jpg&amp;amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>AndreaSalvi</name></author>	</entry>

	<entry>
		<id>https://airwiki.deib.polimi.it/index.php?title=File:AndreaSalvi.jpg&amp;diff=5562</id>
		<title>File:AndreaSalvi.jpg</title>
		<link rel="alternate" type="text/html" href="https://airwiki.deib.polimi.it/index.php?title=File:AndreaSalvi.jpg&amp;diff=5562"/>
				<updated>2009-03-22T12:48:43Z</updated>
		
		<summary type="html">&lt;p&gt;AndreaSalvi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>AndreaSalvi</name></author>	</entry>

	<entry>
		<id>https://airwiki.deib.polimi.it/index.php?title=User:AndreaSalvi&amp;diff=5561</id>
		<title>User:AndreaSalvi</title>
		<link rel="alternate" type="text/html" href="https://airwiki.deib.polimi.it/index.php?title=User:AndreaSalvi&amp;diff=5561"/>
				<updated>2009-03-22T12:47:37Z</updated>
		
		<summary type="html">&lt;p&gt;AndreaSalvi: First version of the page.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SMWUser&lt;br /&gt;
|firstname=Andrea&lt;br /&gt;
|lastname=Salvi&lt;br /&gt;
|email=tudhalyas(at)gmail(dot)com&lt;br /&gt;
|advisor=NicolaGatti&lt;br /&gt;
|projectpage=Real-Time Strategy Games&lt;br /&gt;
|photo=AndreaSalvi.jpg&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Andrea Salvi&lt;br /&gt;
&lt;br /&gt;
Matricola: 721287&lt;br /&gt;
&lt;br /&gt;
Nato ad Alzano Lombardo il 03-05-1984&lt;br /&gt;
&lt;br /&gt;
Istruzione e formazione&lt;br /&gt;
&lt;br /&gt;
- settembre 2007: Laurea in Ingegneria Informatica (1° livello) presso il Politecnico di Milano&lt;br /&gt;
&lt;br /&gt;
- luglio 2003: Maturità Scientifica presso il Liceo Scientifico Mascheroni di Bergamo&lt;/div&gt;</summary>
		<author><name>AndreaSalvi</name></author>	</entry>

	</feed>