Index: trunk/demos/MixedReality/real/simulator/CMakeLists.txt
===================================================================
--- trunk/demos/MixedReality/real/simulator/CMakeLists.txt	(revision 293)
+++ trunk/demos/MixedReality/real/simulator/CMakeLists.txt	(revision 293)
@@ -0,0 +1,41 @@
+PROJECT(MixedReality_simulator_real)
+cmake_minimum_required(VERSION 2.8)
+
+SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin)
+SET(FLAIR_USE_SIMULATOR TRUE)
+SET(FLAIR_USE_SIMULATOR_GL TRUE)
+
+include($ENV{FLAIR_ROOT}/flair-dev/cmake-modules/GlobalCmakeFlair.cmake)
+include(${FLAIR_USE_FILE})
+
+if("${CMAKE_SYSTEM_PROCESSOR_DEFAULTTUNE}" MATCHES "core2-64")
+
+SET(SRC_FILES
+	${CMAKE_SOURCE_DIR}/src/main.cpp
+)
+
+INCLUDE_DIRECTORIES(
+	${FLAIR_INCLUDE_DIR}
+)
+
+#real time executable
+ADD_EXECUTABLE(${PROJECT_NAME}_rt
+	${SRC_FILES}
+)
+
+TARGET_LINK_LIBRARIES(${PROJECT_NAME}_rt ${FLAIR_LIBRARIES_RT})
+
+#non real time executable
+ADD_EXECUTABLE(${PROJECT_NAME}_nrt
+	${SRC_FILES}
+)
+
+TARGET_LINK_LIBRARIES(${PROJECT_NAME}_nrt ${FLAIR_LIBRARIES_NRT})
+
+else()
+    if(DEFINED CMAKE_SYSTEM_PROCESSOR_DEFAULTTUNE)
+        warn("${PROJECT_NAME} will not be built for ${CMAKE_SYSTEM_PROCESSOR_DEFAULTTUNE} architecture")
+    else()
+        warn("${PROJECT_NAME} will not be built for ${CMAKE_SYSTEM_PROCESSOR} architecture")
+    endif()
+endif()
Index: trunk/demos/MixedReality/real/simulator/build_core2_64/bin/setup_x4.xml
===================================================================
--- trunk/demos/MixedReality/real/simulator/build_core2_64/bin/setup_x4.xml	(revision 293)
+++ trunk/demos/MixedReality/real/simulator/build_core2_64/bin/setup_x4.xml	(revision 293)
@@ -0,0 +1,102 @@
+<?xml version="1.0"?>
+<!DOCTYPE remote_ui_xml>
+<root name="interface">
+  <TabWidget name="Main_TabWidget">
+ <Tab name="Drone_0">
+  <TabWidget name="tabs">
+   <Tab name="sampling">
+    <DoubleSpinBox value="0.001" name="Tech (s):"/>
+   </Tab>
+   <Tab name="optitrack">
+    <CheckBox value="1" name="enabled"/>
+   </Tab>
+   <Tab name="init">
+    <DoubleSpinBox value="-1.5" name="x:"/>
+    <DoubleSpinBox value="0" name="y:"/>
+    <DoubleSpinBox value="-3.5" name="z:"/>
+    <SpinBox value="90" name="yaw (deg):"/>
+   <Vector3DSpinBox name="position" value_x="0.0" value_y="0.00" value_z="-1.00"/></Tab>
+   <Tab name="model">
+    <DoubleSpinBox value="1.2" name="mass (kg):"/>
+    <DoubleSpinBox value="0.2" name="arm length (m):"/>
+    <DoubleSpinBox value="0.001" name="k_mot:"/>
+    <DoubleSpinBox value="0.001" name="c_mot:"/>
+    <DoubleSpinBox value="0.01" name="f_air_vert:"/>
+    <DoubleSpinBox value="0.4" name="f_air_lat:"/>
+    <DoubleSpinBox value="0.006" name="j_roll:"/>
+    <DoubleSpinBox value="0.006" name="j_pitch:"/>
+    <DoubleSpinBox value="0.1" name="j_yaw:"/>
+   <SpinBox name="motor timeout:" value="100"/></Tab>
+   <Tab name="us">
+    <GroupBox name="position">
+     <DoubleSpinBox value="0" name="x:"/>
+     <DoubleSpinBox value="0" name="y:"/>
+     <DoubleSpinBox value="0.04" name="z:"/>
+    </GroupBox>
+    <GroupBox name="direction">
+     <DoubleSpinBox value="0" name="x:"/>
+     <DoubleSpinBox value="0" name="y:"/>
+     <DoubleSpinBox value="1" name="z:"/>
+    </GroupBox>
+    <DoubleSpinBox value="6" name="range:"/>
+   <Vector3DSpinBox name="position" value_x="0" value_y="0" value_z="0.04"/><Vector3DSpinBox name="direction" value_x="0" value_y="0" value_z="1"/></Tab>
+   <Tab name="bottom camera">
+    <GroupBox name="position">
+     <DoubleSpinBox value="0" name="x:"/>
+     <DoubleSpinBox value="0" name="y:"/>
+     <DoubleSpinBox value="0" name="z:"/>
+    </GroupBox>
+    <GroupBox name="direction">
+     <DoubleSpinBox value="0" name="x:"/>
+     <DoubleSpinBox value="0" name="y:"/>
+     <DoubleSpinBox value="1" name="z:"/>
+    </GroupBox>
+    <GroupBox name="up">
+     <DoubleSpinBox value="1" name="x:"/>
+     <DoubleSpinBox value="0" name="y:"/>
+     <DoubleSpinBox value="0" name="z:"/>
+    </GroupBox>
+    <DoubleSpinBox value="70" name="fov:"/>
+   <Vector3DSpinBox name="position" value_x="0" value_y="0" value_z="0"/><Vector3DSpinBox name="direction" value_x="0" value_y="0" value_z="1"/><Vector3DSpinBox name="up" value_x="1" value_y="0" value_z="0"/></Tab>
+   <Tab name="front camera">
+    <GroupBox name="position">
+     <DoubleSpinBox value="0" name="x:"/>
+     <DoubleSpinBox value="0" name="y:"/>
+     <DoubleSpinBox value="0" name="z:"/>
+    </GroupBox>
+    <GroupBox name="direction">
+     <DoubleSpinBox value="1" name="x:"/>
+     <DoubleSpinBox value="0" name="y:"/>
+     <DoubleSpinBox value="0" name="z:"/>
+    </GroupBox>
+    <GroupBox name="up">
+     <DoubleSpinBox value="0" name="x:"/>
+     <DoubleSpinBox value="0" name="y:"/>
+     <DoubleSpinBox value="-1" name="z:"/>
+    </GroupBox>
+    <DoubleSpinBox value="70" name="fov:"/>
+   <Vector3DSpinBox name="position" value_x="0" value_y="0" value_z="0"/><Vector3DSpinBox name="direction" value_x="1.00" value_y="0.00" value_z="0.00"/><Vector3DSpinBox name="up" value_x="0.00" value_y="0.00" value_z="-1.00"/></Tab>
+  </TabWidget>
+ </Tab>
+ <Tab name="target">
+  <TabWidget name="tabs">
+   <Tab name="sampling">
+    <DoubleSpinBox value="0.02" name="Tech (s):"/>
+   </Tab>
+   <Tab name="optitrack">
+    <CheckBox value="1" name="enabled"/>
+   </Tab>
+   <Tab name="init">
+    <DoubleSpinBox value="-1.5" name="x:"/>
+    <DoubleSpinBox value="1" name="y:"/>
+    <DoubleSpinBox value="0" name="z:"/>
+    <SpinBox value="90" name="yaw (deg):"/>
+   <Vector3DSpinBox name="position" value_x="-1.5" value_y="1" value_z="0"/></Tab>
+   <Tab name="model">
+    <DoubleSpinBox value="1.3" name="translational speed (m/s):"/>
+    <DoubleSpinBox value="60" name="rotational speed (deg/s):"/>
+   </Tab>
+  </TabWidget>
+</Tab>
+  </TabWidget>
+<TabWidget name="App_TabWidget"><Tab name="simulator"><PushButton name="save config on target" value="1"/></Tab></TabWidget><PushButton name="save config on target (simulator)" value="1"/><PushButton name="save config on target (simulator_real)" value="1"/></root>
Index: trunk/demos/MixedReality/real/simulator/build_core2_64/bin/simulator_x4.sh
===================================================================
--- trunk/demos/MixedReality/real/simulator/build_core2_64/bin/simulator_x4.sh	(revision 293)
+++ trunk/demos/MixedReality/real/simulator/build_core2_64/bin/simulator_x4.sh	(revision 293)
@@ -0,0 +1,10 @@
+#! /bin/bash
+if [ -f /proc/xenomai/version ];then
+	EXEC=./MixedReality_simulator_real_rt
+else
+	EXEC=./MixedReality_simulator_real_nrt
+fi
+
+. $FLAIR_ROOT/flair-dev/scripts/distribution_specific_hack.sh
+
+$EXEC -p 9000 -a 127.0.0.1 -x setup_x4.xml -o 10 -m $FLAIR_ROOT/flair-bin/models -s $FLAIR_ROOT/flair-bin/models/indoor_flight_arena.xml
Index: trunk/demos/MixedReality/real/simulator/src/main.cpp
===================================================================
--- trunk/demos/MixedReality/real/simulator/src/main.cpp	(revision 293)
+++ trunk/demos/MixedReality/real/simulator/src/main.cpp	(revision 293)
@@ -0,0 +1,94 @@
+//  created:    2012/04/18
+//  filename:   main.cpp
+//
+//  author:     Guillaume Sanahuja
+//              Copyright Heudiasyc UMR UTC/CNRS 6599
+//
+//  version:    $Id: $
+//
+//  purpose:    main simulateur
+//
+//
+/*********************************************************************/
+#ifdef GL
+
+#include <tclap/CmdLine.h>
+#include <Simulator.h>
+#include <X4.h>
+#include <SimuImu.h>
+#include <Parser.h>
+#include <SimuUsGL.h>
+#include <SimuCameraGL.h>
+
+#define UAV_REAL_MODEL_ID 0
+
+using namespace TCLAP;
+using namespace std;
+using namespace flair::simulator;
+using namespace flair::sensor;
+
+int port;
+int opti_time;
+string xml_file;
+string media_path;
+string scene_file;
+string address;
+
+void parseOptions(int argc, char** argv)
+{
+  try {
+    CmdLine cmd("Command description message", ' ', "0.1");
+
+    ValueArg<string> xmlArg("x", "xml", "xml file", true, "./reglages.xml", "string");
+    cmd.add(xmlArg);
+
+    ValueArg<int> portArg("p", "port", "ground station port", true, 9002, "int");
+    cmd.add(portArg);
+
+    ValueArg<string> addressArg("a", "address", "ground station address", true, "127.0.0.1", "string");
+    cmd.add(addressArg);
+    
+    ValueArg<int> optiArg("o", "opti", "optitrack time ms", false, 0, "int");
+    cmd.add(optiArg);
+    
+    ValueArg<string> mediaArg("m", "media", "path to media files", true, "./", "string");
+    cmd.add(mediaArg);
+
+    ValueArg<string> sceneArg("s", "scene", "path to scene file", true, "./voliere.xml", "string");
+    cmd.add(sceneArg);
+
+    cmd.parse(argc, argv);
+
+    // Get the value parsed by each arg.
+    port = portArg.getValue();
+    xml_file = xmlArg.getValue();
+    opti_time = optiArg.getValue();
+    address = addressArg.getValue();
+    media_path = mediaArg.getValue();
+    scene_file = sceneArg.getValue();
+  } catch(ArgException& e) {
+    cerr << "error: " << e.error() << " for arg " << e.argId() << endl;
+    exit(EXIT_FAILURE);
+  }
+}
+
+int main(int argc, char* argv[]) {
+  parseOptions(argc, argv);
+
+  Simulator* simu = new Simulator("simulator_real", opti_time, 90);
+  simu->SetupConnection(address, port);
+  simu->SetupUserInterface(xml_file);
+  Parser* gui = new Parser(960, 480, 640, 480, media_path, scene_file);
+ 
+  X4* uav_real = new X4("Drone_0", UAV_REAL_MODEL_ID);
+  SimuImu* imu = new SimuImu(uav_real, "imu", UAV_REAL_MODEL_ID,0);
+  SimuUsGL* us_gl = new SimuUsGL(uav_real, "us", UAV_REAL_MODEL_ID,0);
+  SimuCameraGL* cam_bas = new SimuCameraGL(uav_real, "bottom camera", 320, 240, 640, 0, UAV_REAL_MODEL_ID,0);
+
+  simu->RunSimu();
+
+  delete simu;
+  return 0;
+}
+
+#endif
Index: trunk/demos/MixedReality/real/uav/CMakeLists.txt
===================================================================
--- trunk/demos/MixedReality/real/uav/CMakeLists.txt	(revision 293)
+++ trunk/demos/MixedReality/real/uav/CMakeLists.txt	(revision 293)
@@ -0,0 +1,35 @@
+PROJECT(MixedReality_uav_real)
+cmake_minimum_required(VERSION 2.8)
+
+SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin)
+SET(FLAIR_USE_FILTER TRUE)
+SET(FLAIR_USE_SENSOR_ACTUATOR TRUE)
+SET(FLAIR_USE_VISION_FILTER TRUE)
+SET(FLAIR_USE_META TRUE)
+SET(FLAIR_USE_VRPN TRUE)
+
+include($ENV{FLAIR_ROOT}/flair-dev/cmake-modules/GlobalCmakeFlair.cmake)
+include(${FLAIR_USE_FILE})
+
+SET(SRC_FILES
+	${CMAKE_SOURCE_DIR}/src/main.cpp
+	${CMAKE_SOURCE_DIR}/src/CircleFollower.cpp
+)
+
+INCLUDE_DIRECTORIES(
+	${FLAIR_INCLUDE_DIR}
+)
+
+#real time executable
+ADD_EXECUTABLE(${PROJECT_NAME}_rt
+	${SRC_FILES}
+)
+
+TARGET_LINK_LIBRARIES(${PROJECT_NAME}_rt ${FLAIR_LIBRARIES_RT})
+
+#non real time executable
+ADD_EXECUTABLE(${PROJECT_NAME}_nrt
+	${SRC_FILES}
+)
+
+TARGET_LINK_LIBRARIES(${PROJECT_NAME}_nrt ${FLAIR_LIBRARIES_NRT})
Index: trunk/demos/MixedReality/real/uav/build_armv5te/bin/CircleFollower_minidrones.sh
===================================================================
--- trunk/demos/MixedReality/real/uav/build_armv5te/bin/CircleFollower_minidrones.sh	(revision 293)
+++ trunk/demos/MixedReality/real/uav/build_armv5te/bin/CircleFollower_minidrones.sh	(revision 293)
@@ -0,0 +1,1 @@
+./CircleFollower_nrt -a 192.168.2.2 -p 9000 -l /tmp -x CircleFollower_minidrones.xml -n Drone_0 -t mamboedu
Index: trunk/demos/MixedReality/real/uav/build_armv5te/bin/CircleFollower_minidrones.xml
===================================================================
--- trunk/demos/MixedReality/real/uav/build_armv5te/bin/CircleFollower_minidrones.xml	(revision 293)
+++ trunk/demos/MixedReality/real/uav/build_armv5te/bin/CircleFollower_minidrones.xml	(revision 293)
@@ -0,0 +1,357 @@
+<?xml version="1.0"?>
+<!DOCTYPE remote_ui_xml>
+<root name="interface">
+<TabWidget name="Main_TabWidget">
+ <Tab name="x4-multiplex">
+  <TabWidget name="UavMultiplex">
+   <Tab name="Setup">
+    <GroupBox name="x4 multiplex">
+     <ComboBox value="1" name="front left blade pitch:"/>
+    </GroupBox>
+    <GroupBox name="motor attribution">
+     <ComboBox value="2" name="front left"/>
+     <ComboBox value="0" name="front rigth"/>
+     <ComboBox value="3" name="rear left"/>
+     <ComboBox value="1" name="rear rigth"/>
+    </GroupBox>
+    <GroupBox name="bldc">
+     <Label name="flight time"/>
+     <DoubleSpinBox value="0.4" name="min value:"/>
+     <DoubleSpinBox value="1" name="max value:"/>
+     <DoubleSpinBox value="0.1" name="test value:"/>
+     <PushButton value="1" name="test motor 0"/>
+     <PushButton value="1" name="test motor 1"/>
+     <PushButton value="1" name="test motor 2"/>
+     <PushButton value="1" name="test motor 3"/>
+    </GroupBox>
+   <GroupBox name="battery"><Label name="battery"/><DoubleSpinBox name="threshold" value="10"/><SpinBox name="threshold time" value="10"/></GroupBox></Tab>
+   <Tab name="Values">
+    <DataPlot1D name="front left" period="100" enabled="0">
+     <Setup period="100" enabled="0"/>
+    </DataPlot1D>
+    <DataPlot1D name="front right" period="100" enabled="0">
+     <Setup period="100" enabled="0"/>
+    </DataPlot1D>
+    <DataPlot1D name="rear left" period="100" enabled="0">
+     <Setup period="100" enabled="0"/>
+    </DataPlot1D>
+    <DataPlot1D name="rear right" period="100" enabled="0">
+     <Setup period="100" enabled="0"/>
+    </DataPlot1D>
+   </Tab>
+  </TabWidget>
+ </Tab>
+ <Tab name="parrot-us">
+  <TabWidget name="parrot-us">
+   <Tab name="Reglages">
+    <GroupBox name="parrot-us"/>
+    <GroupBox name="Passe bas">
+     <DoubleSpinBox value="0.04" name="period, 0 for auto"/>
+     <DoubleSpinBox value="5" name="cutoff frequency"/>
+    </GroupBox>
+    <GroupBox name="Vz">
+     <DoubleSpinBox value="0.04" name="period, 0 for auto:"/>
+    </GroupBox>
+    <GroupBox name="Passe bas v">
+     <DoubleSpinBox value="0.04" name="period, 0 for auto"/>
+     <DoubleSpinBox value="10" name="cutoff frequency"/>
+    </GroupBox>
+    <GroupBox name="alt cons">
+     <DoubleSpinBox value="0" name="period, 0 for auto:"/>
+     <DoubleSpinBox value="1" name="velocity max (absolute):"/>
+     <DoubleSpinBox value="0.8" name="acceleration (absolute):"/>
+    </GroupBox>
+    <GroupBox name="decollage">
+     <DoubleSpinBox value="0.8" name="alt decollage"/>
+     <DoubleSpinBox value="0" name="alt atterissage"/>
+    </GroupBox>
+   </Tab>
+   <Tab name="Mesures">
+    <DataPlot1D name="parrot-us" period="100" enabled="1">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="vz" period="100" enabled="1">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+   </Tab>
+  </TabWidget>
+ </Tab>
+ <Tab name="minidrones-imu">
+  <TabWidget name="parrot-imu">
+   <Tab name="Reglages">
+    <GroupBox name="parrot-imu"/>
+    <GroupBox name="post rotation">
+     <DoubleSpinBox value="0" name="value"/>
+     <ComboBox value="0" name="axis"/>
+    </GroupBox>
+    <DoubleSpinBox value="0.5" name="k_a[0]:"/>
+    <DoubleSpinBox value="0.5" name="k_a[1]:"/>
+    <DoubleSpinBox value="0" name="k_a[2]:"/>
+    <DoubleSpinBox value="0.01" name="k_b[0]:"/>
+    <DoubleSpinBox value="0.01" name="k_b[1]:"/>
+    <DoubleSpinBox value="0.01" name="k_b[2]:"/>
+   </Tab>
+   <Tab name="AHRS">
+    <DataPlot1D name="roll" period="100" enabled="1">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="pitch" period="100" enabled="1">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="yaw" period="100" enabled="0">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="w_x" period="100" enabled="0">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="w_y" period="100" enabled="0">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="w_z" period="100" enabled="0">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+   </Tab>
+   <Tab name="IMU">
+    <DataPlot1D name="acc_x" period="100" enabled="0">
+     <Setup period="100" enabled="0"/>
+    </DataPlot1D>
+    <DataPlot1D name="acc_y" period="100" enabled="0">
+     <Setup period="100" enabled="0"/>
+    </DataPlot1D>
+    <DataPlot1D name="acc_z" period="100" enabled="0">
+     <Setup period="100" enabled="0"/>
+    </DataPlot1D>
+    <DataPlot1D name="gyr_x" period="100" enabled="0">
+     <Setup period="100" enabled="0"/>
+    </DataPlot1D>
+    <DataPlot1D name="gyr_y" period="100" enabled="0">
+     <Setup period="100" enabled="0"/>
+    </DataPlot1D>
+    <DataPlot1D name="gyr_z" period="100" enabled="0">
+     <Setup period="100" enabled="0"/>
+    </DataPlot1D>
+    <DataPlot1D name="mag_x" period="100" enabled="0">
+     <Setup period="100" enabled="0"/>
+    </DataPlot1D>
+    <DataPlot1D name="mag_y" period="100" enabled="0">
+     <Setup period="100" enabled="0"/>
+    </DataPlot1D>
+    <DataPlot1D name="mag_z" period="100" enabled="0">
+     <Setup period="100" enabled="0"/>
+    </DataPlot1D>
+   </Tab>
+  </TabWidget>
+ <TabWidget name="minidrones-imu"><Tab name="Reglages"><GroupBox name="minidrones-imu"><ComboBox name="acc scale:" value="0"/><ComboBox name="gyr scale:" value="0"/><Vector3DSpinBox name="magnetic offset (uT)" value_x="0" value_y="0" value_z="0"/><GroupBox name="magnetometers transformation"><DoubleSpinBox name="0,0" value="1"/><DoubleSpinBox name="0,1" value="0"/><DoubleSpinBox name="0,2" value="0"/><DoubleSpinBox name="1,0" value="0"/><DoubleSpinBox name="1,1" value="1"/><DoubleSpinBox name="1,2" value="0"/><DoubleSpinBox name="2,0" value="0"/><DoubleSpinBox name="2,1" value="0"/><DoubleSpinBox name="2,2" value="1"/></GroupBox></GroupBox><DoubleSpinBox name="ka[0]:" value="0.5"/><DoubleSpinBox name="ka[1]:" value="0.5"/><DoubleSpinBox name="ka[2]:" value="0"/><DoubleSpinBox name="kb[0]:" value="0.01"/><DoubleSpinBox name="kb[1]:" value="0.01"/><DoubleSpinBox name="kb[2]:" value="0.01"/><DoubleSpinBox name="km[0]:" value="0"/><DoubleSpinBox name="km[1]:" value="0"/><DoubleSpinBox name="km[2]:" value="0"/><Vector3DSpinBox name="ref magnetic field (uT)" value_x="20.5324001312256" value_y="0.236699998378754" value_z="43.6682014465332"/></Tab><Tab name="AHRS"><DataPlot1D name="roll" period="100" enabled="0"/><DataPlot1D name="pitch" period="100" enabled="0"/><DataPlot1D name="yaw" period="100" enabled="0"/><DataPlot1D name="w_x" period="100" enabled="0"/><DataPlot1D name="w_y" period="100" enabled="0"/><DataPlot1D name="w_z" period="100" enabled="0"/></Tab><Tab name="Quaternion"><DataPlot1D name="q0" period="100" enabled="0"/><DataPlot1D name="q1" period="100" enabled="0"/><DataPlot1D name="q2" period="100" enabled="0"/><DataPlot1D name="q3" period="100" enabled="0"/></Tab><Tab name="IMU"><DataPlot1D name="acc_x" period="100" enabled="0"/><DataPlot1D name="acc_y" period="100" enabled="0"/><DataPlot1D name="acc_z" period="100" enabled="0"/><DataPlot1D name="gyr_x" period="100" enabled="0"/><DataPlot1D name="gyr_y" period="100" enabled="0"/><DataPlot1D name="gyr_z" period="100" enabled="0"/><DataPlot1D name="mag_x" period="100" enabled="0"/><DataPlot1D name="mag_y" period="100" enabled="0"/><DataPlot1D name="mag_z" period="100" enabled="0"/></Tab></TabWidget></Tab>
+ <Tab name="battery">
+  <GroupBox name="battery">
+   <Label name="battery"/>
+   <DoubleSpinBox value="10.5" name="threshold"/>
+  </GroupBox>
+ </Tab>
+ <Tab name="vrpn">
+  <TabWidget name="vrpn">
+   <Tab name="Reglages">
+    <GroupBox name="post rotation 1">
+     <DoubleSpinBox value="90" name="value"/>
+     <ComboBox value="1" name="axis"/>
+    </GroupBox>
+    <GroupBox name="post rotation 2">
+     <DoubleSpinBox value="90" name="value"/>
+     <ComboBox value="0" name="axis"/>
+    </GroupBox>
+    <GroupBox name="Drone_0 Passe bas">
+     <DoubleSpinBox value="0" name="period, 0 for auto"/>
+     <DoubleSpinBox value="2" name="cutoff frequency"/>
+    </GroupBox>
+    <GroupBox name="Drone_0_euler">
+     <DoubleSpinBox value="0" name="period, 0 for auto:"/>
+    </GroupBox>
+    <GroupBox name="target Passe bas">
+     <DoubleSpinBox value="0" name="period, 0 for auto"/>
+     <DoubleSpinBox value="2" name="cutoff frequency"/>
+    </GroupBox>
+    <GroupBox name="target_euler">
+     <DoubleSpinBox value="0" name="period, 0 for auto:"/>
+    </GroupBox>
+    <GroupBox name="circle">
+     <DoubleSpinBox value="0" name="period, 0 for auto"/>
+     <DoubleSpinBox value="1" name="R"/>
+     <DoubleSpinBox value="0.5" name="velocity"/>
+     <DoubleSpinBox value="0.1" name="acceleration (absolute)"/>
+    </GroupBox>
+   </Tab>
+   <Tab name="Mesures Drone_0">
+    <DataPlot1D name="x" period="100" enabled="0">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="y" period="100" enabled="0">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="z" period="100" enabled="0">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="vx" period="100" enabled="0">
+     <Setup period="100" enabled="0"/>
+    </DataPlot1D>
+    <DataPlot1D name="vy" period="100" enabled="0">
+     <Setup period="100" enabled="0"/>
+    </DataPlot1D>
+    <DataPlot1D name="vz" period="100" enabled="0">
+     <Setup period="100" enabled="0"/>
+    </DataPlot1D>
+   </Tab>
+   <Tab name="Mesures (xy) Drone_0">
+    <DataPlot2D name="xy" period="100" enabled="0">
+     <Setup period="100" enabled="1"/>
+    </DataPlot2D>
+   </Tab>
+   <Tab name="Mesures target">
+    <DataPlot1D name="x" period="100" enabled="0">
+     <Setup period="100" enabled="0"/>
+    </DataPlot1D>
+    <DataPlot1D name="y" period="100" enabled="0">
+     <Setup period="100" enabled="0"/>
+    </DataPlot1D>
+    <DataPlot1D name="z" period="100" enabled="0">
+     <Setup period="100" enabled="0"/>
+    </DataPlot1D>
+    <DataPlot1D name="vx" period="100" enabled="0">
+     <Setup period="100" enabled="0"/>
+    </DataPlot1D>
+    <DataPlot1D name="vy" period="100" enabled="0">
+     <Setup period="100" enabled="0"/>
+    </DataPlot1D>
+    <DataPlot1D name="vz" period="100" enabled="0">
+     <Setup period="100" enabled="0"/>
+    </DataPlot1D>
+   </Tab>
+   <Tab name="Mesures (xy) target">
+    <DataPlot2D name="xy" period="100" enabled="0">
+     <Setup period="100" enabled="0"/>
+    </DataPlot2D>
+   </Tab>
+  </TabWidget>
+ </Tab>
+ <Tab name="camv">
+  <TabWidget name="camv">
+   <Tab name="Setup">
+    <GroupBox name="camv">
+     <DoubleSpinBox value="0" name="gain:"/>
+     <DoubleSpinBox value="0" name="exposure:"/>
+     <DoubleSpinBox value="0" name="bright:"/>
+     <DoubleSpinBox value="0" name="contrast:"/>
+     <DoubleSpinBox value="0" name="hue:"/>
+     <DoubleSpinBox value="0" name="sharpness:"/>
+     <DoubleSpinBox value="0" name="saturation:"/>
+     <CheckBox value="1" name="autogain:"/>
+     <CheckBox value="1" name="autoexposure:"/>
+     <CheckBox value="1" name="awb:"/>
+    <Label name="fps"/></GroupBox>
+    <GridLayout name="setup"/>
+   </Tab>
+  </TabWidget>
+ </Tab>
+ <Tab name="uav">
+  <GridLayout name="buttons">
+   <PushButton value="0" name="kill"/>
+   <PushButton value="1" name="start_log"/>
+   <PushButton value="0" name="stop_log"/>
+   <PushButton value="0" name="take_off"/>
+   <PushButton value="0" name="landing"/>
+   <PushButton value="0" name="start_circle"/>
+   <PushButton value="0" name="stop_circle"/>
+  <PushButton name="land"/><PushButton name="position hold"/></GridLayout>
+ <GroupBox name="takeoff/landing"><DoubleSpinBox name="desired takeoff altitude" value="1"/><DoubleSpinBox name="desired landing altitude" value="0"/></GroupBox><GroupBox name="alt cons"><DoubleSpinBox name="period, 0 for auto:" value="0"/><DoubleSpinBox name="velocity max (absolute):" value="1"/><DoubleSpinBox name="acceleration (absolute):" value="0.8"/></GroupBox></Tab>
+ <Tab name="control laws">
+  <TabWidget name="laws">
+   <Tab name="Setup">
+    <GroupBox name="u_roll">
+     <DoubleSpinBox value="20" name="sat ref:"/>
+     <DoubleSpinBox value="12" name="kp:"/>
+     <DoubleSpinBox value="1000" name="sat dref:"/>
+     <DoubleSpinBox value="0.2" name="kd:"/>
+     <DoubleSpinBox value="0.4" name="sat u:"/>
+    </GroupBox>
+    <GroupBox name="u_pitch">
+     <DoubleSpinBox value="20" name="sat ref:"/>
+     <DoubleSpinBox value="12" name="kp:"/>
+     <DoubleSpinBox value="1000" name="sat dref:"/>
+     <DoubleSpinBox value="0.2" name="kd:"/>
+     <DoubleSpinBox value="0.4" name="sat u:"/>
+    </GroupBox>
+    <GroupBox name="u_yaw">
+     <DoubleSpinBox value="0" name="period, 0 for auto"/>
+     <DoubleSpinBox value="0.6" name="kp:"/>
+     <DoubleSpinBox value="0.1" name="ki:"/>
+     <DoubleSpinBox value="0.2" name="sat i:"/>
+     <DoubleSpinBox value="0.2" name="kd:"/>
+     <DoubleSpinBox value="0.5" name="sat:"/>
+    </GroupBox>
+    <GroupBox name="u_x">
+     <DoubleSpinBox value="0" name="period, 0 for auto"/>
+     <DoubleSpinBox value="0.4" name="kp:"/>
+     <DoubleSpinBox value="0.4" name="ki:"/>
+     <DoubleSpinBox value="0" name="sat i:"/>
+     <DoubleSpinBox value="0.2" name="kd:"/>
+     <DoubleSpinBox value="0.4" name="sat:"/>
+    </GroupBox>
+    <GroupBox name="u_y">
+     <DoubleSpinBox value="0" name="period, 0 for auto"/>
+     <DoubleSpinBox value="0.4" name="kp:"/>
+     <DoubleSpinBox value="0.1" name="ki:"/>
+     <DoubleSpinBox value="0" name="sat i:"/>
+     <DoubleSpinBox value="0.2" name="kd:"/>
+     <DoubleSpinBox value="0.4" name="sat:"/>
+    </GroupBox>
+    <GroupBox name="u_z">
+     <DoubleSpinBox value="0" name="period, 0 for auto"/>
+     <DoubleSpinBox value="0.6" name="kp:"/>
+     <DoubleSpinBox value="0.2" name="ki:"/>
+     <DoubleSpinBox value="0.4" name="sat i:"/>
+     <DoubleSpinBox value="0.4" name="kd:"/>
+     <DoubleSpinBox value="0.6" name="offset g:"/>
+     <DoubleSpinBox value="1" name="sat:"/>
+     <DoubleSpinBox value="0.0002" name="offset step:"/>
+    </GroupBox>
+   </Tab>
+   <Tab name="Graphes">
+    <DataPlot1D name="u_roll" period="100" enabled="0">
+     <Setup period="100" enabled="0"/>
+    </DataPlot1D>
+    <DataPlot1D name="u_pitch" period="100" enabled="0">
+     <Setup period="100" enabled="0"/>
+    </DataPlot1D>
+    <DataPlot1D name="u_yaw" period="100" enabled="0">
+     <Setup period="100" enabled="0"/>
+    </DataPlot1D>
+    <DataPlot1D name="u_x" period="100" enabled="0">
+     <Setup period="100" enabled="0"/>
+    </DataPlot1D>
+    <DataPlot1D name="u_y" period="100" enabled="0">
+     <Setup period="100" enabled="0"/>
+    </DataPlot1D>
+    <DataPlot1D name="u_z" period="100" enabled="0">
+     <Setup period="100" enabled="0"/>
+    </DataPlot1D>
+   </Tab>
+  </TabWidget>
+ </Tab>
+ <Tab name="Dualshock3">
+  <TabWidget name="Dualshock3">
+   <Tab name="Reglages">
+    <GroupBox name="consignes joy">
+     <DoubleSpinBox value="-15" name="debattement roll"/>
+     <DoubleSpinBox value="-15" name="debattement pitch"/>
+     <DoubleSpinBox value="90" name="debattement wz"/>
+     <DoubleSpinBox value="-0.5" name="debattement dz"/>
+     <DoubleSpinBox value="0.02" name="trim"/>
+     <Label name="trim roll"/>
+     <PushButton value="0" name="reset roll trim"/>
+     <Label name="trim pitch"/>
+     <PushButton value="0" name="reset pitch trim"/>
+    </GroupBox>
+   </Tab>
+  </TabWidget>
+ </Tab>
+<Tab name="predictor"><DataPlot1D name="u_pitch" period="100" enabled="1"/></Tab><Tab name="minidrones-us"><TabWidget name="minidrones-us"><Tab name="Reglages"><GroupBox name="minidrones-us"/><GroupBox name="Passe  bas"><DoubleSpinBox name="period, 0 for auto" value="0"/><DoubleSpinBox name="cutoff frequency" value="1"/></GroupBox><GroupBox name="Vz"><DoubleSpinBox name="period, 0 for auto:" value="0"/></GroupBox><GroupBox name="Passe bas  v"><DoubleSpinBox name="period, 0 for auto" value="0"/><DoubleSpinBox name="cutoff frequency" value="1"/></GroupBox><GroupBox name="Passe bas"><DoubleSpinBox name="period, 0 for auto" value="0"/><DoubleSpinBox name="cutoff frequency" value="1"/></GroupBox><GroupBox name="Passe bas v"><DoubleSpinBox name="period, 0 for auto" value="0"/><DoubleSpinBox name="cutoff frequency" value="1"/></GroupBox></Tab><Tab name="Mesures"><DataPlot1D name="minidrones-us" period="100" enabled="1"/><DataPlot1D name="vz" period="100" enabled="0"/></Tab></TabWidget></Tab><Tab name="minidrones-imu_old"><TabWidget name="minidrones-imu"><Tab name="Reglages"><GroupBox name="minidrones-imu"/><DoubleSpinBox name="ka[0]:" value="0.5"/><DoubleSpinBox name="ka[1]:" value="0.5"/><DoubleSpinBox name="ka[2]:" value="0"/><DoubleSpinBox name="kb[0]:" value="0.01"/><DoubleSpinBox name="kb[1]:" value="0.01"/><DoubleSpinBox name="kb[2]:" value="0.01"/><DoubleSpinBox name="km[0]:" value="0.01"/><DoubleSpinBox name="km[1]:" value="0.01"/><DoubleSpinBox name="km[2]:" value="0.01"/><Vector3DSpinBox name="ref magnetic field (uT)" value_x="20.5324001312256" value_y="0.236699998378754" value_z="43.6682014465332"/></Tab><Tab name="AHRS"><DataPlot1D name="roll" period="100" enabled="0"/><DataPlot1D name="pitch" period="100" enabled="0"/><DataPlot1D name="yaw" period="100" enabled="0"/><DataPlot1D name="w_x" period="100" enabled="0"/><DataPlot1D name="w_y" period="100" enabled="0"/><DataPlot1D name="w_z" period="100" enabled="0"/></Tab><Tab name="Quaternion"><DataPlot1D name="q0" period="100" enabled="0"/><DataPlot1D name="q1" period="100" enabled="0"/><DataPlot1D name="q2" period="100" enabled="0"/><DataPlot1D name="q3" period="100" enabled="0"/></Tab><Tab name="IMU"><DataPlot1D name="acc_x" period="100" enabled="0"/><DataPlot1D name="acc_y" period="100" enabled="0"/><DataPlot1D name="acc_z" period="100" enabled="0"/><DataPlot1D name="gyr_x" period="100" enabled="0"/><DataPlot1D name="gyr_y" period="100" enabled="0"/><DataPlot1D name="gyr_z" period="100" enabled="0"/><DataPlot1D name="mag_x" period="100" enabled="0"/><DataPlot1D name="mag_y" period="100" enabled="0"/><DataPlot1D name="mag_z" period="100" enabled="0"/></Tab></TabWidget></Tab></TabWidget>
+<TabWidget name="App_TabWidget"><Tab name="Drone_0"><PushButton name="save config on target" value="1"/></Tab></TabWidget><PushButton name="save config on target (Drone_0)" value="1"/></root>
Index: trunk/demos/MixedReality/real/uav/build_armv7a_neon/bin/CircleFollower_ardrone2.sh
===================================================================
--- trunk/demos/MixedReality/real/uav/build_armv7a_neon/bin/CircleFollower_ardrone2.sh	(revision 293)
+++ trunk/demos/MixedReality/real/uav/build_armv7a_neon/bin/CircleFollower_ardrone2.sh	(revision 293)
@@ -0,0 +1,1 @@
+./CircleFollower_nrt -a 192.168.147.193 -p 9000 -l /tmp -x CircleFollower_ardrone2.xml -n Drone_0 -t ardrone2
Index: trunk/demos/MixedReality/real/uav/build_armv7a_neon/bin/CircleFollower_ardrone2.xml
===================================================================
--- trunk/demos/MixedReality/real/uav/build_armv7a_neon/bin/CircleFollower_ardrone2.xml	(revision 293)
+++ trunk/demos/MixedReality/real/uav/build_armv7a_neon/bin/CircleFollower_ardrone2.xml	(revision 293)
@@ -0,0 +1,357 @@
+<?xml version="1.0"?>
+<!DOCTYPE remote_ui_xml>
+<root name="interface">
+<TabWidget name="Main_TabWidget">
+ <Tab name="x4-multiplex">
+  <TabWidget name="UavMultiplex">
+   <Tab name="Setup">
+    <GroupBox name="x4 multiplex">
+     <ComboBox value="1" name="front left blade pitch:"/>
+    </GroupBox>
+    <GroupBox name="motor attribution">
+     <ComboBox value="0" name="front left"/>
+     <ComboBox value="1" name="front rigth"/>
+     <ComboBox value="2" name="rear left"/>
+     <ComboBox value="3" name="rear rigth"/>
+    </GroupBox>
+    <GroupBox name="bldc">
+     <Label name="flight time"/>
+     <DoubleSpinBox value="0.4" name="min value:"/>
+     <DoubleSpinBox value="1" name="max value:"/>
+     <DoubleSpinBox value="0.1" name="test value:"/>
+     <PushButton value="0" name="test motor 0"/>
+     <PushButton value="0" name="test motor 1"/>
+     <PushButton value="0" name="test motor 2"/>
+     <PushButton value="0" name="test motor 3"/>
+    </GroupBox>
+   </Tab>
+   <Tab name="Values">
+    <DataPlot1D name="front left" period="100" enabled="0">
+     <Setup period="100" enabled="0"/>
+    </DataPlot1D>
+    <DataPlot1D name="front right" period="100" enabled="0">
+     <Setup period="100" enabled="0"/>
+    </DataPlot1D>
+    <DataPlot1D name="rear left" period="100" enabled="0">
+     <Setup period="100" enabled="0"/>
+    </DataPlot1D>
+    <DataPlot1D name="rear right" period="100" enabled="0">
+     <Setup period="100" enabled="0"/>
+    </DataPlot1D>
+   </Tab>
+  </TabWidget>
+ </Tab>
+ <Tab name="parrot-us">
+  <TabWidget name="parrot-us">
+   <Tab name="Reglages">
+    <GroupBox name="parrot-us"/>
+    <GroupBox name="Passe bas">
+     <DoubleSpinBox value="0.04" name="period, 0 for auto"/>
+     <DoubleSpinBox value="5" name="cutoff frequency"/>
+    </GroupBox>
+    <GroupBox name="Vz">
+     <DoubleSpinBox value="0.04" name="period, 0 for auto:"/>
+    </GroupBox>
+    <GroupBox name="Passe bas v">
+     <DoubleSpinBox value="0.04" name="period, 0 for auto"/>
+     <DoubleSpinBox value="10" name="cutoff frequency"/>
+    </GroupBox>
+    <GroupBox name="alt cons">
+     <DoubleSpinBox value="0" name="period, 0 for auto:"/>
+     <DoubleSpinBox value="1" name="velocity max (absolute):"/>
+     <DoubleSpinBox value="0.8" name="acceleration (absolute):"/>
+    </GroupBox>
+    <GroupBox name="decollage">
+     <DoubleSpinBox value="0.8" name="alt decollage"/>
+     <DoubleSpinBox value="0" name="alt atterissage"/>
+    </GroupBox>
+   </Tab>
+   <Tab name="Mesures">
+    <DataPlot1D name="parrot-us" period="100" enabled="1">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="vz" period="100" enabled="1">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+   </Tab>
+  </TabWidget>
+ </Tab>
+ <Tab name="parrot-imu">
+  <TabWidget name="parrot-imu">
+   <Tab name="Reglages">
+    <GroupBox name="parrot-imu"/>
+    <GroupBox name="post rotation">
+     <DoubleSpinBox value="0" name="value"/>
+     <ComboBox value="0" name="axis"/>
+    </GroupBox>
+    <DoubleSpinBox value="0.5" name="k_a[0]:"/>
+    <DoubleSpinBox value="0.5" name="k_a[1]:"/>
+    <DoubleSpinBox value="0" name="k_a[2]:"/>
+    <DoubleSpinBox value="0.01" name="k_b[0]:"/>
+    <DoubleSpinBox value="0.01" name="k_b[1]:"/>
+    <DoubleSpinBox value="0.01" name="k_b[2]:"/>
+   </Tab>
+   <Tab name="AHRS">
+    <DataPlot1D name="roll" period="100" enabled="1">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="pitch" period="100" enabled="1">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="yaw" period="100" enabled="0">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="w_x" period="100" enabled="0">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="w_y" period="100" enabled="0">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="w_z" period="100" enabled="0">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+   </Tab>
+   <Tab name="IMU">
+    <DataPlot1D name="acc_x" period="100" enabled="0">
+     <Setup period="100" enabled="0"/>
+    </DataPlot1D>
+    <DataPlot1D name="acc_y" period="100" enabled="0">
+     <Setup period="100" enabled="0"/>
+    </DataPlot1D>
+    <DataPlot1D name="acc_z" period="100" enabled="0">
+     <Setup period="100" enabled="0"/>
+    </DataPlot1D>
+    <DataPlot1D name="gyr_x" period="100" enabled="0">
+     <Setup period="100" enabled="0"/>
+    </DataPlot1D>
+    <DataPlot1D name="gyr_y" period="100" enabled="0">
+     <Setup period="100" enabled="0"/>
+    </DataPlot1D>
+    <DataPlot1D name="gyr_z" period="100" enabled="0">
+     <Setup period="100" enabled="0"/>
+    </DataPlot1D>
+    <DataPlot1D name="mag_x" period="100" enabled="0">
+     <Setup period="100" enabled="0"/>
+    </DataPlot1D>
+    <DataPlot1D name="mag_y" period="100" enabled="0">
+     <Setup period="100" enabled="0"/>
+    </DataPlot1D>
+    <DataPlot1D name="mag_z" period="100" enabled="0">
+     <Setup period="100" enabled="0"/>
+    </DataPlot1D>
+   </Tab>
+  </TabWidget>
+ </Tab>
+ <Tab name="battery">
+  <GroupBox name="battery">
+   <Label name="battery"/>
+   <DoubleSpinBox value="10.5" name="threshold"/>
+  </GroupBox>
+ </Tab>
+ <Tab name="vrpn">
+  <TabWidget name="vrpn">
+   <Tab name="Reglages">
+    <GroupBox name="post rotation 1">
+     <DoubleSpinBox value="90" name="value"/>
+     <ComboBox value="1" name="axis"/>
+    </GroupBox>
+    <GroupBox name="post rotation 2">
+     <DoubleSpinBox value="90" name="value"/>
+     <ComboBox value="0" name="axis"/>
+    </GroupBox>
+    <GroupBox name="Drone_0 Passe bas">
+     <DoubleSpinBox value="0" name="period, 0 for auto"/>
+     <DoubleSpinBox value="2" name="cutoff frequency"/>
+    </GroupBox>
+    <GroupBox name="Drone_0_euler">
+     <DoubleSpinBox value="0" name="period, 0 for auto:"/>
+    </GroupBox>
+    <GroupBox name="target Passe bas">
+     <DoubleSpinBox value="0" name="period, 0 for auto"/>
+     <DoubleSpinBox value="2" name="cutoff frequency"/>
+    </GroupBox>
+    <GroupBox name="target_euler">
+     <DoubleSpinBox value="0" name="period, 0 for auto:"/>
+    </GroupBox>
+    <GroupBox name="circle">
+     <DoubleSpinBox value="0" name="period, 0 for auto"/>
+     <DoubleSpinBox value="1" name="R"/>
+     <DoubleSpinBox value="0.5" name="velocity"/>
+     <DoubleSpinBox value="0.1" name="acceleration (absolute)"/>
+    </GroupBox>
+   </Tab>
+   <Tab name="Mesures Drone_0">
+    <DataPlot1D name="x" period="100" enabled="0">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="y" period="100" enabled="0">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="z" period="100" enabled="0">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="vx" period="100" enabled="0">
+     <Setup period="100" enabled="0"/>
+    </DataPlot1D>
+    <DataPlot1D name="vy" period="100" enabled="0">
+     <Setup period="100" enabled="0"/>
+    </DataPlot1D>
+    <DataPlot1D name="vz" period="100" enabled="0">
+     <Setup period="100" enabled="0"/>
+    </DataPlot1D>
+   </Tab>
+   <Tab name="Mesures (xy) Drone_0">
+    <DataPlot2D name="xy" period="100" enabled="0">
+     <Setup period="100" enabled="1"/>
+    </DataPlot2D>
+   </Tab>
+   <Tab name="Mesures target">
+    <DataPlot1D name="x" period="100" enabled="0">
+     <Setup period="100" enabled="0"/>
+    </DataPlot1D>
+    <DataPlot1D name="y" period="100" enabled="0">
+     <Setup period="100" enabled="0"/>
+    </DataPlot1D>
+    <DataPlot1D name="z" period="100" enabled="0">
+     <Setup period="100" enabled="0"/>
+    </DataPlot1D>
+    <DataPlot1D name="vx" period="100" enabled="0">
+     <Setup period="100" enabled="0"/>
+    </DataPlot1D>
+    <DataPlot1D name="vy" period="100" enabled="0">
+     <Setup period="100" enabled="0"/>
+    </DataPlot1D>
+    <DataPlot1D name="vz" period="100" enabled="0">
+     <Setup period="100" enabled="0"/>
+    </DataPlot1D>
+   </Tab>
+   <Tab name="Mesures (xy) target">
+    <DataPlot2D name="xy" period="100" enabled="0">
+     <Setup period="100" enabled="0"/>
+    </DataPlot2D>
+   </Tab>
+  </TabWidget>
+ </Tab>
+ <Tab name="camv">
+  <TabWidget name="camv">
+   <Tab name="Setup">
+    <GroupBox name="camv">
+     <DoubleSpinBox value="0" name="gain:"/>
+     <DoubleSpinBox value="0" name="exposure:"/>
+     <DoubleSpinBox value="0" name="bright:"/>
+     <DoubleSpinBox value="0" name="contrast:"/>
+     <DoubleSpinBox value="0" name="hue:"/>
+     <DoubleSpinBox value="0" name="sharpness:"/>
+     <DoubleSpinBox value="0" name="saturation:"/>
+     <CheckBox value="1" name="autogain:"/>
+     <CheckBox value="1" name="autoexposure:"/>
+     <CheckBox value="1" name="awb:"/>
+    <Label name="fps"/></GroupBox>
+    <GridLayout name="setup"/>
+   </Tab>
+  </TabWidget>
+ </Tab>
+ <Tab name="uav">
+  <GridLayout name="buttons">
+   <PushButton value="0" name="kill"/>
+   <PushButton value="1" name="start_log"/>
+   <PushButton value="0" name="stop_log"/>
+   <PushButton value="0" name="take_off"/>
+   <PushButton value="0" name="landing"/>
+   <PushButton value="0" name="start_circle"/>
+   <PushButton value="0" name="stop_circle"/>
+  <PushButton name="land"/></GridLayout>
+ <GroupBox name="takeoff/landing"><DoubleSpinBox name="desired takeoff altitude" value="1"/><DoubleSpinBox name="desired landing altitude" value="0"/></GroupBox><GroupBox name="alt cons"><DoubleSpinBox name="period, 0 for auto:" value="0"/><DoubleSpinBox name="velocity max (absolute):" value="1"/><DoubleSpinBox name="acceleration (absolute):" value="0.8"/></GroupBox></Tab>
+ <Tab name="control laws">
+  <TabWidget name="laws">
+   <Tab name="Setup">
+    <GroupBox name="u_roll">
+     <DoubleSpinBox value="20" name="sat ref:"/>
+     <DoubleSpinBox value="12" name="kp:"/>
+     <DoubleSpinBox value="1000" name="sat dref:"/>
+     <DoubleSpinBox value="0.2" name="kd:"/>
+     <DoubleSpinBox value="0.4" name="sat u:"/>
+    </GroupBox>
+    <GroupBox name="u_pitch">
+     <DoubleSpinBox value="20" name="sat ref:"/>
+     <DoubleSpinBox value="12" name="kp:"/>
+     <DoubleSpinBox value="1000" name="sat dref:"/>
+     <DoubleSpinBox value="0.2" name="kd:"/>
+     <DoubleSpinBox value="0.4" name="sat u:"/>
+    </GroupBox>
+    <GroupBox name="u_yaw">
+     <DoubleSpinBox value="0" name="period, 0 for auto"/>
+     <DoubleSpinBox value="0.6" name="kp:"/>
+     <DoubleSpinBox value="0.1" name="ki:"/>
+     <DoubleSpinBox value="0.2" name="sat i:"/>
+     <DoubleSpinBox value="0.2" name="kd:"/>
+     <DoubleSpinBox value="0.5" name="sat:"/>
+    </GroupBox>
+    <GroupBox name="u_x">
+     <DoubleSpinBox value="0" name="period, 0 for auto"/>
+     <DoubleSpinBox value="0.4" name="kp:"/>
+     <DoubleSpinBox value="0.4" name="ki:"/>
+     <DoubleSpinBox value="0" name="sat i:"/>
+     <DoubleSpinBox value="0.2" name="kd:"/>
+     <DoubleSpinBox value="0.4" name="sat:"/>
+    </GroupBox>
+    <GroupBox name="u_y">
+     <DoubleSpinBox value="0" name="period, 0 for auto"/>
+     <DoubleSpinBox value="0.4" name="kp:"/>
+     <DoubleSpinBox value="0.1" name="ki:"/>
+     <DoubleSpinBox value="0" name="sat i:"/>
+     <DoubleSpinBox value="0.2" name="kd:"/>
+     <DoubleSpinBox value="0.4" name="sat:"/>
+    </GroupBox>
+    <GroupBox name="u_z">
+     <DoubleSpinBox value="0" name="period, 0 for auto"/>
+     <DoubleSpinBox value="0.6" name="kp:"/>
+     <DoubleSpinBox value="0.2" name="ki:"/>
+     <DoubleSpinBox value="0.4" name="sat i:"/>
+     <DoubleSpinBox value="0.4" name="kd:"/>
+     <DoubleSpinBox value="0.6" name="offset g:"/>
+     <DoubleSpinBox value="1" name="sat:"/>
+     <DoubleSpinBox value="0.0002" name="offset step:"/>
+    </GroupBox>
+   </Tab>
+   <Tab name="Graphes">
+    <DataPlot1D name="u_roll" period="100" enabled="0">
+     <Setup period="100" enabled="0"/>
+    </DataPlot1D>
+    <DataPlot1D name="u_pitch" period="100" enabled="0">
+     <Setup period="100" enabled="0"/>
+    </DataPlot1D>
+    <DataPlot1D name="u_yaw" period="100" enabled="0">
+     <Setup period="100" enabled="0"/>
+    </DataPlot1D>
+    <DataPlot1D name="u_x" period="100" enabled="0">
+     <Setup period="100" enabled="0"/>
+    </DataPlot1D>
+    <DataPlot1D name="u_y" period="100" enabled="0">
+     <Setup period="100" enabled="0"/>
+    </DataPlot1D>
+    <DataPlot1D name="u_z" period="100" enabled="0">
+     <Setup period="100" enabled="0"/>
+    </DataPlot1D>
+   </Tab>
+  </TabWidget>
+ </Tab>
+ <Tab name="Dualshock3">
+  <TabWidget name="Dualshock3">
+   <Tab name="Reglages">
+    <GroupBox name="consignes joy">
+     <DoubleSpinBox value="-15" name="debattement roll"/>
+     <DoubleSpinBox value="-15" name="debattement pitch"/>
+     <DoubleSpinBox value="90" name="debattement wz"/>
+     <DoubleSpinBox value="-0.5" name="debattement dz"/>
+     <DoubleSpinBox value="0.02" name="trim"/>
+     <Label name="trim roll"/>
+     <PushButton value="0" name="reset roll trim"/>
+     <Label name="trim pitch"/>
+     <PushButton value="0" name="reset pitch trim"/>
+    </GroupBox>
+   </Tab>
+  </TabWidget>
+ </Tab>
+<Tab name="predictor"><DataPlot1D name="u_pitch" period="100" enabled="1"/></Tab></TabWidget>
+<TabWidget name="App_TabWidget"><Tab name="Drone_0"><PushButton name="save config on target" value="1"/></Tab></TabWidget></root>
Index: trunk/demos/MixedReality/real/uav/build_armv7a_neon/bin/CircleFollower_bebop.sh
===================================================================
--- trunk/demos/MixedReality/real/uav/build_armv7a_neon/bin/CircleFollower_bebop.sh	(revision 293)
+++ trunk/demos/MixedReality/real/uav/build_armv7a_neon/bin/CircleFollower_bebop.sh	(revision 293)
@@ -0,0 +1,1 @@
+./CircleFollower_nrt -a 192.168.42.24 -p 9000 -l /tmp -x CircleFollower_bebop.xml -n Drone_0 -t bebop
Index: trunk/demos/MixedReality/real/uav/build_armv7a_neon/bin/CircleFollower_bebop.xml
===================================================================
--- trunk/demos/MixedReality/real/uav/build_armv7a_neon/bin/CircleFollower_bebop.xml	(revision 293)
+++ trunk/demos/MixedReality/real/uav/build_armv7a_neon/bin/CircleFollower_bebop.xml	(revision 293)
@@ -0,0 +1,268 @@
+<?xml version="1.0"?>
+<root name="FrameworkManager">
+  <TabWidget name="Main_TabWidget">
+    <Tab name="x4-multiplex">
+      <TabWidget name="UavMultiplex">
+        <Tab name="Setup">
+          <GroupBox name="x4 multiplex">
+            <ComboBox name="front left blade pitch:" value="0"/>
+          </GroupBox>
+          <GroupBox name="motor attribution">
+            <ComboBox name="front left" value="0"/>
+            <ComboBox name="front rigth" value="1"/>
+            <ComboBox name="rear left" value="3"/>
+            <ComboBox name="rear rigth" value="2"/>
+          </GroupBox>
+          <GroupBox name="bldc">
+            <Label name="flight time"/>
+            <DoubleSpinBox name="min value:" value="0"/>
+            <DoubleSpinBox name="max value:" value="1"/>
+            <DoubleSpinBox name="test value:" value="0.4"/>
+            <PushButton name="test motor 0"/>
+            <PushButton name="test motor 1"/>
+            <PushButton name="test motor 2"/>
+            <PushButton name="test motor 3"/>
+          </GroupBox>
+          <GroupBox name="battery">
+            <Label name="battery"/>
+            <DoubleSpinBox name="threshold" value="10.5"/>
+            <SpinBox name="threshold time" value="10"/>
+          </GroupBox>
+        </Tab>
+        <Tab name="Values">
+          <DataPlot1D name="front left" period="100" enabled="0"/>
+          <DataPlot1D name="front right" period="100" enabled="0"/>
+          <DataPlot1D name="rear left" period="100" enabled="0"/>
+          <DataPlot1D name="rear right" period="100" enabled="0"/>
+        </Tab>
+        <Tab name="Speeds">
+          <DataPlot1D name="front left" period="100" enabled="0"/>
+          <DataPlot1D name="front right" period="100" enabled="0"/>
+          <DataPlot1D name="rear left" period="100" enabled="0"/>
+          <DataPlot1D name="rear right" period="100" enabled="0"/>
+        </Tab>
+      </TabWidget>
+    </Tab>
+    <Tab name="bebop-us">
+      <TabWidget name="bebop-us">
+        <Tab name="Reglages">
+          <GroupBox name="bebop-us"/>
+          <GroupBox name="Passe bas">
+            <DoubleSpinBox name="period, 0 for auto" value="0"/>
+            <DoubleSpinBox name="cutoff frequency" value="5"/>
+          </GroupBox>
+          <GroupBox name="Vz">
+            <DoubleSpinBox name="period, 0 for auto:" value="0"/>
+          </GroupBox>
+          <GroupBox name="Passe bas v">
+            <DoubleSpinBox name="period, 0 for auto" value="0"/>
+            <DoubleSpinBox name="cutoff frequency" value="5"/>
+          </GroupBox>
+        </Tab>
+        <Tab name="Mesures">
+          <DataPlot1D name="bebop-us" period="100" enabled="1"/>
+          <DataPlot1D name="vz" period="100" enabled="0"/>
+        </Tab>
+      </TabWidget>
+    </Tab>
+    <Tab name="bebop-imu">
+      <TabWidget name="bebop-imu">
+        <Tab name="Reglages">
+          <GroupBox name="bebop-imu"/>
+          <GroupBox name="post rotation">
+            <DoubleSpinBox name="value" value="180"/>
+            <ComboBox name="axis" value="0"/>
+          </GroupBox>
+          <DoubleSpinBox name="ka[0]:" value="0.5"/>
+          <DoubleSpinBox name="ka[1]:" value="0.5"/>
+          <DoubleSpinBox name="ka[2]:" value="0"/>
+          <DoubleSpinBox name="kb[0]:" value="0.01"/>
+          <DoubleSpinBox name="kb[1]:" value="0.01"/>
+          <DoubleSpinBox name="kb[2]:" value="0.01"/>
+        </Tab>
+        <Tab name="AHRS">
+          <DataPlot1D name="roll" period="100" enabled="1"/>
+          <DataPlot1D name="pitch" period="100" enabled="0"/>
+          <DataPlot1D name="yaw" period="100" enabled="0"/>
+          <DataPlot1D name="w_x" period="100" enabled="1"/>
+          <DataPlot1D name="w_y" period="100" enabled="0"/>
+          <DataPlot1D name="w_z" period="100" enabled="0"/>
+        </Tab>
+        <Tab name="Quaternion">
+          <DataPlot1D name="q0" period="100" enabled="0"/>
+          <DataPlot1D name="q1" period="100" enabled="0"/>
+          <DataPlot1D name="q2" period="100" enabled="0"/>
+          <DataPlot1D name="q3" period="100" enabled="0"/>
+        </Tab>
+        <Tab name="IMU">
+          <DataPlot1D name="acc_x" period="100" enabled="0"/>
+          <DataPlot1D name="acc_y" period="100" enabled="0"/>
+          <DataPlot1D name="acc_z" period="100" enabled="0"/>
+          <DataPlot1D name="gyr_x" period="100" enabled="0"/>
+          <DataPlot1D name="gyr_y" period="100" enabled="0"/>
+          <DataPlot1D name="gyr_z" period="100" enabled="0"/>
+          <DataPlot1D name="mag_x" period="100" enabled="0"/>
+          <DataPlot1D name="mag_y" period="100" enabled="0"/>
+          <DataPlot1D name="mag_z" period="100" enabled="0"/>
+        </Tab>
+      </TabWidget>
+    </Tab>
+    <Tab name="Dualshock3">
+      <TabWidget name="Dualshock3">
+        <Tab name="Reglages">
+          <GroupBox name="consignes joy">
+            <DoubleSpinBox name="debattement roll" value="-15"/>
+            <DoubleSpinBox name="debattement pitch" value="-15"/>
+            <DoubleSpinBox name="debattement wz" value="90"/>
+            <DoubleSpinBox name="debattement dz" value="-0.5"/>
+            <DoubleSpinBox name="trim" value="0.01"/>
+            <Label name="trim roll"/>
+            <PushButton name="reset roll trim"/>
+            <Label name="trim pitch"/>
+            <PushButton name="reset pitch trim"/>
+          </GroupBox>
+        </Tab>
+      </TabWidget>
+    </Tab>
+    <Tab name="uav">
+      <GridLayout name="buttons">
+        <PushButton name="kill"/>
+        <PushButton name="start_log"/>
+        <PushButton name="stop_log"/>
+        <PushButton name="take_off"/>
+        <PushButton name="land"/>
+        <PushButton name="start_circle"/>
+        <PushButton name="stop_circle"/>
+        <PushButton name="position hold"/>
+      </GridLayout>
+      <GroupBox name="takeoff/landing">
+        <DoubleSpinBox name="desired takeoff altitude" value="0.5"/>
+        <DoubleSpinBox name="desired landing altitude" value="0"/>
+      </GroupBox>
+      <GroupBox name="alt cons">
+        <DoubleSpinBox name="period, 0 for auto:" value="0"/>
+        <DoubleSpinBox name="velocity max (absolute):" value="1"/>
+        <DoubleSpinBox name="acceleration (absolute):" value="1"/>
+      </GroupBox>
+    </Tab>
+    <Tab name="control laws">
+      <TabWidget name="laws">
+        <Tab name="Setup">
+          <GroupBox name="u_roll">
+            <DoubleSpinBox name="sat ref:" value="20"/>
+            <DoubleSpinBox name="kp:" value="15.00"/>
+            <DoubleSpinBox name="sat dref:" value="1000"/>
+            <DoubleSpinBox name="kd:" value="0.04"/>
+            <DoubleSpinBox name="sat u:" value="0.5"/>
+          </GroupBox>
+          <GroupBox name="u_pitch">
+            <DoubleSpinBox name="sat ref:" value="20"/>
+            <DoubleSpinBox name="kp:" value="15"/>
+            <DoubleSpinBox name="sat dref:" value="1000"/>
+            <DoubleSpinBox name="kd:" value="0.05"/>
+            <DoubleSpinBox name="sat u:" value="0.5"/>
+          </GroupBox>
+          <GroupBox name="u_yaw">
+            <DoubleSpinBox name="period, 0 for auto" value="0"/>
+            <DoubleSpinBox name="kp:" value="0.6"/>
+            <DoubleSpinBox name="ki:" value="0"/>
+            <DoubleSpinBox name="sat i:" value="0"/>
+            <DoubleSpinBox name="kd:" value="0.15"/>
+            <DoubleSpinBox name="sat:" value="0.5"/>
+          </GroupBox>
+          <GroupBox name="u_z">
+            <DoubleSpinBox name="period, 0 for auto" value="0"/>
+            <DoubleSpinBox name="kp:" value="0.3"/>
+            <DoubleSpinBox name="ki:" value="0.2"/>
+            <DoubleSpinBox name="sat i:" value="0.4"/>
+            <DoubleSpinBox name="kd:" value="0.15"/>
+            <DoubleSpinBox name="offset g:" value="0.37"/>
+            <DoubleSpinBox name="sat:" value="1"/>
+            <DoubleSpinBox name="offset step:" value="0.0002"/>
+          </GroupBox>
+          <GroupBox name="u_x">
+            <DoubleSpinBox name="period, 0 for auto" value="0"/>
+            <DoubleSpinBox name="kp:" value="0"/>
+            <DoubleSpinBox name="ki:" value="0"/>
+            <DoubleSpinBox name="sat i:" value="0"/>
+            <DoubleSpinBox name="kd:" value="0"/>
+            <DoubleSpinBox name="sat:" value="0"/>
+          </GroupBox>
+          <GroupBox name="u_y">
+            <DoubleSpinBox name="period, 0 for auto" value="0"/>
+            <DoubleSpinBox name="kp:" value="0"/>
+            <DoubleSpinBox name="ki:" value="0"/>
+            <DoubleSpinBox name="sat i:" value="0"/>
+            <DoubleSpinBox name="kd:" value="0"/>
+            <DoubleSpinBox name="sat:" value="0"/>
+          </GroupBox>
+        </Tab>
+        <Tab name="Graphes">
+          <DataPlot1D name="u_roll" period="100" enabled="0"/>
+          <DataPlot1D name="u_pitch" period="100" enabled="0"/>
+          <DataPlot1D name="u_yaw" period="100" enabled="0"/>
+          <DataPlot1D name="u_z" period="100" enabled="0"/>
+          <DataPlot1D name="u_x" period="100" enabled="0"/>
+          <DataPlot1D name="u_y" period="100" enabled="0"/>
+        </Tab>
+      </TabWidget>
+    </Tab>
+    <Tab name="vrpn">
+      <TabWidget name="vrpn">
+        <Tab name="Reglages">
+          <GroupBox name="post rotation 1">
+            <DoubleSpinBox name="value" value="0"/>
+            <ComboBox name="axis" value="0"/>
+          </GroupBox>
+          <GroupBox name="post rotation 2">
+            <DoubleSpinBox name="value" value="0"/>
+            <ComboBox name="axis" value="0"/>
+          </GroupBox>
+          <GroupBox name="Drone_0 Passe bas">
+            <DoubleSpinBox name="period, 0 for auto" value="0"/>
+            <DoubleSpinBox name="cutoff frequency" value="1"/>
+          </GroupBox>
+          <GroupBox name="Drone_0_euler">
+            <DoubleSpinBox name="period, 0 for auto:" value="0"/>
+          </GroupBox>
+          <GroupBox name="target Passe bas">
+            <DoubleSpinBox name="period, 0 for auto" value="0"/>
+            <DoubleSpinBox name="cutoff frequency" value="1"/>
+          </GroupBox>
+          <GroupBox name="target_euler">
+            <DoubleSpinBox name="period, 0 for auto:" value="0"/>
+          </GroupBox>
+          <GroupBox name="circle">
+            <DoubleSpinBox name="period, 0 for auto" value="0"/>
+            <DoubleSpinBox name="R" value="0"/>
+            <DoubleSpinBox name="velocity" value="0"/>
+            <DoubleSpinBox name="acceleration (absolute)" value="0"/>
+          </GroupBox>
+        </Tab>
+        <Tab name="Mesures Drone_0">
+          <DataPlot1D name="x" period="100" enabled="0"/>
+          <DataPlot1D name="y" period="100" enabled="0"/>
+          <DataPlot1D name="z" period="100" enabled="0"/>
+          <DataPlot1D name="vx" period="100" enabled="0"/>
+          <DataPlot1D name="vy" period="100" enabled="0"/>
+          <DataPlot1D name="vz" period="100" enabled="0"/>
+        </Tab>
+        <Tab name="Mesures (xy) Drone_0">
+          <DataPlot2D name="xy" period="100" enabled="0"/>
+        </Tab>
+        <Tab name="Mesures target">
+          <DataPlot1D name="x" period="100" enabled="0"/>
+          <DataPlot1D name="y" period="100" enabled="0"/>
+          <DataPlot1D name="z" period="100" enabled="0"/>
+          <DataPlot1D name="vx" period="100" enabled="0"/>
+          <DataPlot1D name="vy" period="100" enabled="0"/>
+          <DataPlot1D name="vz" period="100" enabled="0"/>
+        </Tab>
+        <Tab name="Mesures (xy) target">
+          <DataPlot2D name="xy" period="100" enabled="0"/>
+        </Tab>
+      </TabWidget>
+    </Tab>
+  </TabWidget>
+  <PushButton name="save config on target (Drone_0)" value="1"/>
+</root>
Index: trunk/demos/MixedReality/real/uav/build_armv7a_neon/bin/CircleFollower_hdsx8.sh
===================================================================
--- trunk/demos/MixedReality/real/uav/build_armv7a_neon/bin/CircleFollower_hdsx8.sh	(revision 293)
+++ trunk/demos/MixedReality/real/uav/build_armv7a_neon/bin/CircleFollower_hdsx8.sh	(revision 293)
@@ -0,0 +1,1 @@
+./CircleFollower_rt -a 192.168.147.217 -p 9000 -l /tmp -x CircleFollower_hdsx8.xml -n x8_0 -t hds_x8
Index: trunk/demos/MixedReality/real/uav/build_armv7a_neon/bin/CircleFollower_hdsx8.xml
===================================================================
--- trunk/demos/MixedReality/real/uav/build_armv7a_neon/bin/CircleFollower_hdsx8.xml	(revision 293)
+++ trunk/demos/MixedReality/real/uav/build_armv7a_neon/bin/CircleFollower_hdsx8.xml	(revision 293)
@@ -0,0 +1,478 @@
+<?xml version="1.0"?>
+<!DOCTYPE remote_ui_xml>
+<root name="interface">
+<TabWidget name="Main_TabWidget">
+ <Tab name="dualshock3">
+  <TabWidget name="dualshock3">
+   <Tab name="Reglages">
+    <GroupBox name="dualshock3">
+     <SpinBox value="10" name="dead zone:"/>
+     <Label name="batterie"/>
+    </GroupBox>
+    <GroupBox name="consignes joy">
+     <DoubleSpinBox value="-10" name="debattement roll"/>
+     <DoubleSpinBox value="-10" name="debattement pitch"/>
+     <DoubleSpinBox value="40" name="debattement dyaw"/>
+     <DoubleSpinBox value="-0.5" name="debattement dz"/>
+     <DoubleSpinBox value="0.01" name="trim"/>
+     <Label name="trim roll"/>
+     <PushButton value="0" name="reset roll trim"/>
+     <Label name="trim pitch"/>
+     <PushButton value="0" name="reset pitch trim"/>
+    </GroupBox>
+   <GroupBox name="consignes fo"><DoubleSpinBox name="debattement x" value="-3"/><DoubleSpinBox name="debattement y" value="3"/></GroupBox></Tab>
+   <Tab name="Mesures">
+    <DataPlot1D name="roll">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="pitch">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="yaw">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="gaz">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+   </Tab>
+  </TabWidget>
+ </Tab>
+ <Tab name="uav">
+  <PushButton value="0" name="kill"/>
+  <PushButton value="0" name="start_log"/>
+  <PushButton value="0" name="stop_log"/>
+  <PushButton value="0" name="take_off"/>
+  <PushButton value="0" name="landing"/>
+  <PushButton value="0" name="start_cercle"/>
+  <PushButton value="0" name="stop_cercle"/>
+  <PushButton value="0" name="start_2D"/>
+  <PushButton value="0" name="stop_2D"/>
+  <PushButton value="0" name="Test0"/>
+  <PushButton value="0" name="Test1"/>
+  <PushButton value="0" name="Test11"/>
+  <PushButton value="0" name="Test2"/>
+  <PushButton value="0" name="Test3"/>
+  <PushButton value="0" name="Test4"/>
+  <PushButton value="0" name="Test5"/>
+  <PushButton value="0" name="f1"/>
+  <PushButton value="0" name="f2"/>
+  <PushButton value="0" name="f3"/>
+  <PushButton value="0" name="f4"/>
+  <PushButton value="0" name="f5"/>
+  <PushButton value="0" name="f6"/>
+  <PushButton value="0" name="f7"/>
+  <PushButton value="0" name="f8"/>
+  <PushButton value="0" name="Start_Obs"/>
+ <GridLayout name="buttons"><PushButton name="kill"/><PushButton name="start_log"/><PushButton name="stop_log"/><PushButton name="take_off"/><PushButton name="land"/><PushButton name="f1"/><PushButton name="f2"/><PushButton name="f3"/><PushButton name="f4"/><PushButton name="Reset"/><PushButton name="Start_Obs"/><PushButton name="Optical_flow"/><PushButton name="start_circle"/><PushButton name="stop_circle"/><PushButton name="position hold"/></GridLayout><GroupBox name="takeoff/landing"><DoubleSpinBox name="desired takeoff altitude" value="1"/><DoubleSpinBox name="desired landing altitude" value="0"/></GroupBox><GroupBox name="alt cons"><DoubleSpinBox name="period, 0 for auto:" value="0"/><DoubleSpinBox name="velocity max (absolute):" value="0.3"/><DoubleSpinBox name="acceleration (absolute):" value="0.2"/></GroupBox></Tab>
+ <Tab name="multi">
+  <TabWidget name="UavMultiplex">
+   <Tab name="Setup">
+    <GroupBox name="fault">
+     <DoubleSpinBox value="0.72" name="Coef:"/>
+     <DoubleSpinBox value="0.0025" name="coefficientKf:"/>
+    </GroupBox>
+    <GroupBox name="x8 multiplex">
+     <ComboBox value="1" name="top front left blade pitch:"/>
+    </GroupBox>
+    <GroupBox name="motor attribution">
+     <ComboBox value="0" name="top front left"/>
+     <ComboBox value="7" name="top front rigth"/>
+     <ComboBox value="4" name="top rear left"/>
+     <ComboBox value="1" name="top rear rigth"/>
+     <ComboBox value="3" name="bottom front left"/>
+     <ComboBox value="5" name="bottom front rigth"/>
+     <ComboBox value="6" name="bottom rear left"/>
+     <ComboBox value="2" name="bottom rear rigth"/>
+    </GroupBox>
+    <GroupBox name="bldc">
+     <Label name="flight time"/>
+     <DoubleSpinBox value="0.2" name="min value:"/>
+     <DoubleSpinBox value="1" name="max value:"/>
+     <DoubleSpinBox value="0.1" name="test value:"/>
+     <PushButton value="1" name="test motor 0"/>
+     <PushButton value="1" name="test motor 1"/>
+     <PushButton value="1" name="test motor 2"/>
+     <PushButton value="1" name="test motor 3"/>
+     <PushButton value="1" name="test motor 4"/>
+     <PushButton value="1" name="test motor 5"/>
+     <PushButton value="1" name="test motor 6"/>
+     <PushButton value="1" name="test motor 7"/>
+    </GroupBox>
+    <GroupBox name="battery">
+     <Label name="battery"/>
+     <DoubleSpinBox value="10" name="threshold"/>
+    </GroupBox>
+    <GroupBox name="Motors">
+     <SpinBox value="14" name="nb poles:"/>
+    </GroupBox>
+    <GroupBox name="startup">
+     <DoubleSpinBox value="0" name="prc_fault:"/>
+     <DoubleSpinBox value="0" name="prc_retab:"/>
+    </GroupBox>
+   </Tab>
+   <Tab name="Values">
+    <DataPlot1D name="top front left" period="100" enabled="0">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="top front right" period="100" enabled="0">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="top rear left" period="100" enabled="0">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="top rear right" period="100" enabled="0">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="bottom front left" period="100" enabled="0">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="bottom front right" period="100" enabled="0">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="bottom rear left" period="100" enabled="0">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="bottom rear right" period="100" enabled="0">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+   </Tab>
+   <Tab name="Speeds">
+    <DataPlot1D name="front left" period="100" enabled="0">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="front right" period="100" enabled="0">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="rear left" period="100" enabled="0">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="rear right" period="100" enabled="0">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+   </Tab>
+  </TabWidget>
+ </Tab>
+ <Tab name="SRF08">
+  <TabWidget name="SRF08">
+   <Tab name="Reglages">
+    <GroupBox name="SRF08">
+     <SpinBox value="8" name="gain:"/>
+     <SpinBox value="46" name="range:"/>
+    </GroupBox>
+    <GroupBox name="Passe bas">
+     <DoubleSpinBox value="0" name="period, 0 for auto"/>
+     <DoubleSpinBox value="5" name="cutoff frequency"/>
+    </GroupBox>
+    <GroupBox name="Vz">
+     <DoubleSpinBox value="0" name="period, 0 for auto:"/>
+    </GroupBox>
+    <GroupBox name="Passe bas v">
+     <DoubleSpinBox value="0" name="period, 0 for auto"/>
+     <DoubleSpinBox value="5" name="cutoff frequency"/>
+    </GroupBox>
+    <GroupBox name="alt cons">
+     <DoubleSpinBox value="0" name="period, 0 for auto:"/>
+     <DoubleSpinBox value="0.3" name="velocity max (absolute):"/>
+     <DoubleSpinBox value="0.2" name="acceleration (absolute):"/>
+    </GroupBox>
+    <GroupBox name="decollage">
+     <DoubleSpinBox value="0.7" name="alt decollage"/>
+     <DoubleSpinBox value="0" name="alt atterissage"/>
+    </GroupBox>
+   </Tab>
+   <Tab name="Mesures">
+    <DataPlot1D name="SRF08" period="100" enabled="0">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="vz" period="100" enabled="0">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+   </Tab>
+  </TabWidget>
+ </Tab>
+ <Tab name="imu">
+  <TabWidget name="imu">
+   <Tab name="Reglages">
+    <GroupBox name="imu">
+     <PushButton value="0" name="gyros bias"/>
+     <SpinBox value="100" name="data rate (Hz):"/>
+     <Label name="data_rate"/>
+     <SpinBox value="15" name="gyro and acc filter win size:"/>
+     <SpinBox value="17" name="mag filter win size:"/>
+     <SpinBox value="10" name="up compensation (s):"/>
+     <SpinBox value="10" name="north compensation (s):"/>
+     <CheckBox value="1" name="enable Coning&amp;Sculling:"/>
+     <CheckBox value="1" name="disable magnetometer:"/>
+     <CheckBox value="1" name="disable magnetic north compensation:"/>
+     <CheckBox value="1" name="disable gravity compensation:"/>
+    </GroupBox>
+    <GroupBox name="post rotation">
+     <DoubleSpinBox value="180" name="value"/>
+     <ComboBox value="2" name="axis"/>
+    </GroupBox>
+   </Tab>
+   <Tab name="AHRS">
+    <DataPlot1D name="roll" period="100" enabled="1">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="pitch" period="100" enabled="1">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="yaw" period="100" enabled="1">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="w_x" period="100" enabled="0">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="w_y" period="100" enabled="0">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="w_z" period="100" enabled="0">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+   </Tab>
+  <Tab name="Quaternion"><DataPlot1D name="q0" period="100" enabled="0"/><DataPlot1D name="q1" period="100" enabled="0"/><DataPlot1D name="q2" period="100" enabled="0"/><DataPlot1D name="q3" period="100" enabled="0"/></Tab><Tab name="IMU"><DataPlot1D name="acc_x" period="100" enabled="0"/><DataPlot1D name="acc_y" period="100" enabled="0"/><DataPlot1D name="acc_z" period="100" enabled="0"/><DataPlot1D name="gyr_x" period="100" enabled="0"/><DataPlot1D name="gyr_y" period="100" enabled="0"/><DataPlot1D name="gyr_z" period="100" enabled="0"/><DataPlot1D name="mag_x" period="100" enabled="0"/><DataPlot1D name="mag_y" period="100" enabled="0"/><DataPlot1D name="mag_z" period="100" enabled="0"/></Tab></TabWidget>
+ </Tab>
+ <Tab name="control laws">
+  <TabWidget name="laws">
+   <Tab name="Setup">
+    <GroupBox name="u_roll">
+     <DoubleSpinBox value="10" name="sat ref:"/>
+     <DoubleSpinBox value="10" name="satf ref:"/>
+     <DoubleSpinBox value="10" name="sat2f ref:"/>
+     <DoubleSpinBox value="7" name="kp:"/>
+     <DoubleSpinBox value="7" name="kpf:"/>
+     <DoubleSpinBox value="10" name="kp2f:"/>
+     <DoubleSpinBox value="100" name="sat dref:"/>
+     <DoubleSpinBox value="110" name="satf dref:"/>
+     <DoubleSpinBox value="140" name="sat2f dref:"/>
+     <DoubleSpinBox value="0.12" name="kd:"/>
+     <DoubleSpinBox value="0.12" name="kdf:"/>
+     <DoubleSpinBox value="0.13" name="kd2f:"/>
+     <DoubleSpinBox value="0.4" name="sat u:"/>
+     <DoubleSpinBox value="0.4" name="satf u:"/>
+     <DoubleSpinBox value="0.6" name="sat2f u:"/>
+    </GroupBox>
+    <GroupBox name="u_pitch">
+     <DoubleSpinBox value="10" name="sat ref:"/>
+     <DoubleSpinBox value="10" name="satf ref:"/>
+     <DoubleSpinBox value="10" name="sat2f ref:"/>
+     <DoubleSpinBox value="7" name="kp:"/>
+     <DoubleSpinBox value="7" name="kpf:"/>
+     <DoubleSpinBox value="10" name="kp2f:"/>
+     <DoubleSpinBox value="100" name="sat dref:"/>
+     <DoubleSpinBox value="110" name="satf dref:"/>
+     <DoubleSpinBox value="140" name="sat2f dref:"/>
+     <DoubleSpinBox value="0.12" name="kd:"/>
+     <DoubleSpinBox value="0.12" name="kdf:"/>
+     <DoubleSpinBox value="0.13" name="kd2f:"/>
+     <DoubleSpinBox value="0.4" name="sat u:"/>
+     <DoubleSpinBox value="0.4" name="satf u:"/>
+     <DoubleSpinBox value="0.6" name="sat2f u:"/>
+    </GroupBox>
+    <GroupBox name="u_yaw">
+     <DoubleSpinBox value="0" name="period, 0 for auto"/>
+     <DoubleSpinBox value="1" name="kp:"/>
+     <DoubleSpinBox value="1.5" name="kpf:"/>
+     <DoubleSpinBox value="2" name="kp2f:"/>
+     <DoubleSpinBox value="0.2" name="ki:"/>
+     <DoubleSpinBox value="0.35" name="kif:"/>
+     <DoubleSpinBox value="0.5" name="ki2f:"/>
+     <DoubleSpinBox value="0.2" name="sat i:"/>
+     <DoubleSpinBox value="0.3" name="satf i:"/>
+     <DoubleSpinBox value="0.4" name="sat2f i:"/>
+     <DoubleSpinBox value="0.1" name="kd:"/>
+     <DoubleSpinBox value="0.2" name="kdf:"/>
+     <DoubleSpinBox value="0.3" name="kd2f:"/>
+     <DoubleSpinBox value="1" name="sat:"/>
+    </GroupBox>
+    <GroupBox name="x_pid">
+     <DoubleSpinBox value="0" name="period, 0 for auto"/>
+     <DoubleSpinBox value="0.01" name="kp:"/>
+     <DoubleSpinBox value="0.015" name="kpf:"/>
+     <DoubleSpinBox value="0.01" name="kp2f:"/>
+     <DoubleSpinBox value="0.03" name="ki:"/>
+     <DoubleSpinBox value="0.035" name="kif:"/>
+     <DoubleSpinBox value="0.02" name="ki2f:"/>
+     <DoubleSpinBox value="0.3" name="sat i:"/>
+     <DoubleSpinBox value="0.3" name="satf i:"/>
+     <DoubleSpinBox value="0.3" name="sat2f i:"/>
+     <DoubleSpinBox value="0" name="kd:"/>
+     <DoubleSpinBox value="0" name="kdf:"/>
+     <DoubleSpinBox value="0" name="kd2f:"/>
+     <DoubleSpinBox value="0.5" name="sat:"/>
+    </GroupBox>
+    <GroupBox name="y_pid">
+     <DoubleSpinBox value="0" name="period, 0 for auto"/>
+     <DoubleSpinBox value="0.01" name="kp:"/>
+     <DoubleSpinBox value="0.015" name="kpf:"/>
+     <DoubleSpinBox value="0.01" name="kp2f:"/>
+     <DoubleSpinBox value="0.03" name="ki:"/>
+     <DoubleSpinBox value="0.035" name="kif:"/>
+     <DoubleSpinBox value="0.02" name="ki2f:"/>
+     <DoubleSpinBox value="0.3" name="sat i:"/>
+     <DoubleSpinBox value="0.3" name="satf i:"/>
+     <DoubleSpinBox value="0.3" name="sat2f i:"/>
+     <DoubleSpinBox value="0" name="kd:"/>
+     <DoubleSpinBox value="0" name="kdf:"/>
+     <DoubleSpinBox value="0" name="kd2f:"/>
+     <DoubleSpinBox value="0.5" name="sat:"/>
+    </GroupBox>
+    <GroupBox name="u_z">
+     <DoubleSpinBox value="0" name="period, 0 for auto"/>
+     <DoubleSpinBox value="0.3" name="kp:"/>
+     <DoubleSpinBox value="0.4" name="kpf:"/>
+     <DoubleSpinBox value="0.5" name="kp2f:"/>
+     <DoubleSpinBox value="0.2" name="ki:"/>
+     <DoubleSpinBox value="0.4" name="kif:"/>
+     <DoubleSpinBox value="0.4" name="ki2f:"/>
+     <DoubleSpinBox value="0.5" name="sat i:"/>
+     <DoubleSpinBox value="0.8" name="satf i:"/>
+     <DoubleSpinBox value="0.8" name="sat2f i:"/>
+     <DoubleSpinBox value="0.1" name="kd:"/>
+     <DoubleSpinBox value="0.3" name="kdf:"/>
+     <DoubleSpinBox value="0.3" name="kd2f:"/>
+     <DoubleSpinBox value="0.4" name="offset g:"/>
+     <DoubleSpinBox value="1" name="sat:"/>
+     <DoubleSpinBox value="0.0001" name="offset step:"/>
+    </GroupBox>
+   <GroupBox name="u_x"><DoubleSpinBox name="period, 0 for auto" value="0"/><DoubleSpinBox name="kp:" value="0.40"/><DoubleSpinBox name="ki:" value="0.40"/><DoubleSpinBox name="sat i:" value="0.0"/><DoubleSpinBox name="kd:" value="0.200"/><DoubleSpinBox name="sat:" value="0.4"/></GroupBox><GroupBox name="u_y"><DoubleSpinBox name="period, 0 for auto" value="0"/><DoubleSpinBox name="kp:" value="0.40"/><DoubleSpinBox name="ki:" value="0.40"/><DoubleSpinBox name="sat i:" value="0.0"/><DoubleSpinBox name="kd:" value="0.200"/><DoubleSpinBox name="sat:" value="0.4"/></GroupBox></Tab>
+   <Tab name="Graphes">
+    <DataPlot1D name="u_roll" period="100" enabled="0">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="u_pitch" period="100" enabled="0">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="u_yaw" period="100" enabled="0">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="u_z" period="100" enabled="0">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+   <DataPlot1D name="x_pid" period="100" enabled="1"/><DataPlot1D name="y_pid" period="100" enabled="1"/><DataPlot1D name="u_x" period="100" enabled="0"/><DataPlot1D name="u_y" period="100" enabled="0"/></Tab>
+   <Tab name="HighOrder">
+    <GroupBox name="HighOrder">
+     <DoubleSpinBox value="1" name="lambda1:"/>
+     <DoubleSpinBox value="1" name="alpha1:"/>
+     <DoubleSpinBox value="1" name="lambda2:"/>
+     <DoubleSpinBox value="1" name="alpha2:"/>
+     <DoubleSpinBox value="1.5" name="lambda3:"/>
+     <DoubleSpinBox value="2" name="alpha3:"/>
+     <DoubleSpinBox value="2" name="lambda11:"/>
+     <DoubleSpinBox value="2" name="alpha11:"/>
+     <DoubleSpinBox value="2" name="lambda21:"/>
+     <DoubleSpinBox value="2" name="alpha21:"/>
+     <DoubleSpinBox value="2.5" name="lambda31:"/>
+     <DoubleSpinBox value="3" name="alpha31:"/>
+     <DoubleSpinBox value="3" name="lambda12:"/>
+     <DoubleSpinBox value="3" name="alpha12:"/>
+     <DoubleSpinBox value="3" name="lambda22:"/>
+     <DoubleSpinBox value="3" name="alpha22:"/>
+     <DoubleSpinBox value="3" name="lambda32:"/>
+     <DoubleSpinBox value="3.5" name="alpha32:"/>
+    </GroupBox>
+    <DataPlot1D name="phi/dphi">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="theta/dtheta">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="psi/dpsi">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="F">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="Filter">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+   </Tab>
+  </TabWidget>
+ </Tab>
+ <Tab name="vrpn">
+  <TabWidget name="vrpn">
+   <Tab name="Reglages">
+    <GroupBox name="post rotation 1">
+     <DoubleSpinBox value="90" name="value"/>
+     <ComboBox value="1" name="axis"/>
+    </GroupBox>
+    <GroupBox name="post rotation 2">
+     <DoubleSpinBox value="90" name="value"/>
+     <ComboBox value="0" name="axis"/>
+    </GroupBox>
+    <GroupBox name="x8_0 Passe bas">
+     <DoubleSpinBox value="0" name="period, 0 for auto"/>
+     <DoubleSpinBox value="2" name="cutoff frequency"/>
+    </GroupBox>
+    <GroupBox name="x8_0_euler">
+     <DoubleSpinBox value="0" name="period, 0 for auto:"/>
+    </GroupBox>
+    <GroupBox name="cercle">
+     <DoubleSpinBox value="0" name="period, 0 for auto"/>
+     <DoubleSpinBox value="1" name="R"/>
+     <DoubleSpinBox value="0.4" name="velocity"/>
+     <DoubleSpinBox value="0.1" name="acceleration (absolute)"/>
+    </GroupBox>
+    <GroupBox name="Cible Passe bas">
+     <DoubleSpinBox value="0" name="period, 0 for auto"/>
+     <DoubleSpinBox value="2" name="cutoff frequency"/>
+    </GroupBox>
+    <GroupBox name="Cible_euler">
+     <DoubleSpinBox value="0" name="period, 0 for auto:"/>
+    </GroupBox>
+   <GroupBox name="target Passe bas"><DoubleSpinBox name="period, 0 for auto" value="0"/><DoubleSpinBox name="cutoff frequency" value="1"/></GroupBox><GroupBox name="target_euler"><DoubleSpinBox name="period, 0 for auto:" value="0"/></GroupBox><GroupBox name="circle"><DoubleSpinBox name="period, 0 for auto" value="0"/><DoubleSpinBox name="R" value="1"/><DoubleSpinBox name="velocity" value="0.5"/><DoubleSpinBox name="acceleration (absolute)" value="0.1"/></GroupBox></Tab>
+   <Tab name="Mesures x8_0">
+    <DataPlot1D name="x" period="100" enabled="1">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="y" period="100" enabled="0">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="z" period="100" enabled="0">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="vx" period="100" enabled="0">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="vy" period="100" enabled="0">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="vz" period="100" enabled="0">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+   </Tab>
+   <Tab name="Mesures (xy) x8_0">
+    <DataPlot2D name="xy" period="100" enabled="0">
+     <Setup period="100" enabled="1"/>
+    </DataPlot2D>
+   </Tab>
+   <Tab name="Mesures Cible">
+    <DataPlot1D name="x">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="y">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="z">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="vx">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="vy">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="vz">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+   </Tab>
+   <Tab name="Mesures (xy) Cible">
+    <DataPlot2D name="xy">
+     <Setup period="100" enabled="1"/>
+    </DataPlot2D>
+   </Tab>
+  <Tab name="Mesures target"><DataPlot1D name="x" period="100" enabled="0"/><DataPlot1D name="y" period="100" enabled="0"/><DataPlot1D name="z" period="100" enabled="0"/><DataPlot1D name="vx" period="100" enabled="0"/><DataPlot1D name="vy" period="100" enabled="0"/><DataPlot1D name="vz" period="100" enabled="0"/></Tab><Tab name="Mesures (xy) target"><DataPlot2D name="xy" period="100" enabled="0"/></Tab></TabWidget>
+ </Tab>
+ <Tab name="camv"><TabWidget name="camv"><Tab name="Setup"><GroupBox name="camv"><DoubleSpinBox name="gain:" value="0.2"/><DoubleSpinBox name="exposure:" value="0.25"/><DoubleSpinBox name="bright:" value="0.3"/><DoubleSpinBox name="contrast:" value="0.4"/><DoubleSpinBox name="hue:" value="1"/><DoubleSpinBox name="sharpness:" value="0.5"/><DoubleSpinBox name="saturation:" value="0"/><CheckBox name="autogain:" value="0"/><CheckBox name="autoexposure:" value="0"/><CheckBox name="awb:" value="0"/><Label name="fps"/></GroupBox><GridLayout name="setup"><GroupBox name="flux optique"><GroupBox name="post rotation"><DoubleSpinBox name="value" value="-90"/><ComboBox name="axis" value="2"/></GroupBox><SpinBox name="max features:" value="64"/></GroupBox><GroupBox name="passe bas"><DoubleSpinBox name="period, 0 for auto" value="0"/><DoubleSpinBox name="cutoff frequency" value="5"/></GroupBox></GridLayout></Tab><Tab name="Picture"><Picture name="camv" period="200" enabled="0"/></Tab></TabWidget></Tab><Tab name="flux optique"><DataPlot1D name="x_velocity" period="100" enabled="0"/><DataPlot1D name="y_velocity" period="100" enabled="0"/></Tab><Tab name="motors"><TabWidget name="UavMultiplex"><Tab name="Setup"><GroupBox name="x8 multiplex"><ComboBox name="top front left blade pitch:" value="1"/></GroupBox><GroupBox name="motor attribution"><ComboBox name="top front left" value="0"/><ComboBox name="top front rigth" value="7"/><ComboBox name="top rear left" value="4"/><ComboBox name="top rear rigth" value="1"/><ComboBox name="bottom front left" value="3"/><ComboBox name="bottom front rigth" value="5"/><ComboBox name="bottom rear left" value="6"/><ComboBox name="bottom rear rigth" value="2"/></GroupBox><GroupBox name="bldc"><Label name="flight time"/><DoubleSpinBox name="min value:" value="0.2"/><DoubleSpinBox name="max value:" value="1"/><DoubleSpinBox name="test value:" value="0.1"/><PushButton name="test motor 0"/><PushButton name="test motor 1"/><PushButton name="test motor 2"/><PushButton name="test motor 3"/><PushButton name="test motor 4"/><PushButton name="test motor 5"/><PushButton name="test motor 6"/><PushButton name="test motor 7"/></GroupBox><GroupBox name="battery"><Label name="battery"/><DoubleSpinBox name="threshold" value="10"/><SpinBox name="threshold time" value="10"/></GroupBox><GroupBox name="Motors"><SpinBox name="nb poles:" value="14"/></GroupBox></Tab><Tab name="Values"><DataPlot1D name="front left" period="100" enabled="0"/><DataPlot1D name="front right" period="100" enabled="0"/><DataPlot1D name="rear left" period="100" enabled="0"/><DataPlot1D name="rear right" period="100" enabled="0"/></Tab><Tab name="Speeds"><DataPlot1D name="front left" period="100" enabled="0"/><DataPlot1D name="front right" period="100" enabled="0"/><DataPlot1D name="rear left" period="100" enabled="0"/><DataPlot1D name="rear right" period="100" enabled="0"/></Tab><Tab name="Currents"><DataPlot1D name="front left" period="100" enabled="0"/><DataPlot1D name="front right" period="100" enabled="0"/><DataPlot1D name="rear left" period="100" enabled="0"/><DataPlot1D name="rear right" period="100" enabled="0"/></Tab></TabWidget></Tab><Tab name="Dualshock3"><TabWidget name="Dualshock3"><Tab name="Reglages"><GroupBox name="consignes joy"><DoubleSpinBox name="debattement roll" value="-15"/><DoubleSpinBox name="debattement pitch" value="-15"/><DoubleSpinBox name="debattement wz" value="90"/><DoubleSpinBox name="debattement dz" value="-0.5"/><DoubleSpinBox name="trim" value="0.02"/><Label name="trim roll"/><PushButton name="reset roll trim"/><Label name="trim pitch"/><PushButton name="reset pitch trim"/></GroupBox></Tab></TabWidget></Tab></TabWidget>
+<TabWidget name="App_TabWidget"><Tab name="x8_0"><PushButton name="save config on target" value="1"/></Tab></TabWidget><PushButton name="save config on target (x8_0)" value="1"/></root>
Index: trunk/demos/MixedReality/real/uav/build_core2_64/bin/setup_x4.xml
===================================================================
--- trunk/demos/MixedReality/real/uav/build_core2_64/bin/setup_x4.xml	(revision 293)
+++ trunk/demos/MixedReality/real/uav/build_core2_64/bin/setup_x4.xml	(revision 293)
@@ -0,0 +1,361 @@
+<?xml version="1.0"?>
+<!DOCTYPE remote_ui_xml>
+<root name="interface">
+<TabWidget name="Main_TabWidget">
+ <Tab name="Dualshock3">
+  <TabWidget name="Dualshock3">
+   <Tab name="Reglages">
+    <GroupBox name="Dualshock3">
+     <SpinBox value="10" name="dead zone:"/>
+     <Label name="batterie"/>
+    </GroupBox>
+    <GroupBox name="consignes joy">
+     <DoubleSpinBox value="-20" name="debattement roll"/>
+     <DoubleSpinBox value="-20" name="debattement pitch"/>
+     <DoubleSpinBox value="90" name="debattement wz"/>
+     <DoubleSpinBox value="-0.7" name="debattement dz"/>
+     <DoubleSpinBox value="0" name="trim"/>
+     <Label name="trim roll"/>
+     <PushButton value="0" name="reset roll trim"/>
+     <Label name="trim pitch"/>
+     <PushButton value="0" name="reset pitch trim"/>
+    <DoubleSpinBox name="debattement wz" value="90"/></GroupBox>
+   </Tab>
+   <Tab name="Mesures">
+    <DataPlot1D name="roll">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="pitch">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="yaw">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="gaz">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+   </Tab>
+  </TabWidget>
+ </Tab>
+ <Tab name="motors">
+  <TabWidget name="UavMultiplex">
+   <Tab name="Setup">
+    <GroupBox name="x4 multiplex">
+     <ComboBox value="0" name="front left blade pitch:"/>
+    </GroupBox>
+    <GroupBox name="motor attribution">
+     <ComboBox value="0" name="front left"/>
+     <ComboBox value="1" name="front rigth"/>
+     <ComboBox value="2" name="rear left"/>
+     <ComboBox value="3" name="rear rigth"/>
+    </GroupBox>
+    <GroupBox name="bldc">
+     <Label name="flight time"/>
+     <DoubleSpinBox value="0.4" name="min value:"/>
+     <DoubleSpinBox value="1" name="max value:"/>
+     <DoubleSpinBox value="0.1" name="test value:"/>
+     <PushButton value="0" name="test motor 0"/>
+     <PushButton value="0" name="test motor 1"/>
+     <PushButton value="0" name="test motor 2"/>
+     <PushButton value="0" name="test motor 3"/>
+    </GroupBox>
+    <GroupBox name="simubldc">
+     <DoubleSpinBox value="86" name="k driver:"/>
+    </GroupBox>
+   </Tab>
+   <Tab name="Values">
+    <DataPlot1D name="front left" period="100" enabled="0">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="front right" period="100" enabled="0">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="rear left" period="100" enabled="0">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="rear right" period="100" enabled="0">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+   </Tab>
+   <Tab name="Speeds">
+    <DataPlot1D name="front left" period="100" enabled="0">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="front right" period="100" enabled="0">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="rear left" period="100" enabled="0">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="rear right" period="100" enabled="0">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+   </Tab>
+  <Tab name="Currents"><DataPlot1D name="front left" period="100" enabled="0"/><DataPlot1D name="front right" period="100" enabled="0"/><DataPlot1D name="rear left" period="100" enabled="0"/><DataPlot1D name="rear right" period="100" enabled="0"/></Tab></TabWidget>
+ </Tab>
+ <Tab name="us">
+  <TabWidget name="us">
+   <Tab name="Reglages">
+    <GroupBox name="us">
+     <SpinBox value="50" name="data rate"/>
+    </GroupBox>
+    <GroupBox name="Passe bas">
+     <DoubleSpinBox value="0" name="period, 0 for auto"/>
+     <DoubleSpinBox value="5" name="cutoff frequency"/>
+    </GroupBox>
+    <GroupBox name="Vz">
+     <DoubleSpinBox value="0" name="period, 0 for auto:"/>
+    <DoubleSpinBox name="saturation, -1 to disable:" value="-1"/></GroupBox>
+    <GroupBox name="Passe bas v">
+     <DoubleSpinBox value="0" name="period, 0 for auto"/>
+     <DoubleSpinBox value="5" name="cutoff frequency"/>
+    </GroupBox>
+    <GroupBox name="alt cons">
+     <DoubleSpinBox value="0" name="period, 0 for auto:"/>
+     <DoubleSpinBox value="0.5" name="velocity max (absolute):"/>
+     <DoubleSpinBox value="0.2" name="acceleration (absolute):"/>
+    </GroupBox>
+    <GroupBox name="decollage">
+     <DoubleSpinBox value="1" name="alt decollage"/>
+     <DoubleSpinBox value="0" name="alt atterissage"/>
+    </GroupBox>
+   </Tab>
+   <Tab name="Mesures">
+    <DataPlot1D name="us" period="100" enabled="0">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="vz" period="100" enabled="0">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+   </Tab>
+  </TabWidget>
+ </Tab>
+ <Tab name="imu">
+  <TabWidget name="imu">
+   <Tab name="Reglages">
+    <GroupBox name="imu">
+     <SpinBox value="200" name="data rate"/>
+    </GroupBox>
+    <GroupBox name="post rotation">
+     <DoubleSpinBox value="0" name="value"/>
+     <ComboBox value="0" name="axis"/>
+    </GroupBox>
+   </Tab>
+   <Tab name="AHRS">
+    <DataPlot1D name="roll" period="100" enabled="0">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="pitch" period="100" enabled="0">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="yaw" period="100" enabled="0">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="w_x" period="100" enabled="0">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="w_y" period="100" enabled="0">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="w_z" period="100" enabled="0">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+   </Tab>
+  <Tab name="Quaternion"><DataPlot1D name="q0" period="100" enabled="0"/><DataPlot1D name="q1" period="100" enabled="0"/><DataPlot1D name="q2" period="100" enabled="0"/><DataPlot1D name="q3" period="100" enabled="0"/></Tab><Tab name="IMU"><DataPlot1D name="acc_x" period="100" enabled="0"/><DataPlot1D name="acc_y" period="100" enabled="0"/><DataPlot1D name="acc_z" period="100" enabled="0"/><DataPlot1D name="gyr_x" period="100" enabled="0"/><DataPlot1D name="gyr_y" period="100" enabled="0"/><DataPlot1D name="gyr_z" period="100" enabled="0"/><DataPlot1D name="mag_x" period="100" enabled="0"/><DataPlot1D name="mag_y" period="100" enabled="0"/><DataPlot1D name="mag_z" period="100" enabled="0"/></Tab></TabWidget>
+ </Tab>
+ <Tab name="battery">
+  <GroupBox name="battery">
+   <Label name="battery"/>
+   <DoubleSpinBox value="10" name="threshold"/>
+  <SpinBox name="threshold time" value="10"/></GroupBox>
+ </Tab>
+ <Tab name="simu_cam_v">
+  <TabWidget name="simu_cam_v">
+   <Tab name="Setup">
+    <GroupBox name="simu_cam_v">
+     <SpinBox value="50" name="data rate"/>
+    </GroupBox>
+    <GridLayout name="setup"/>
+   </Tab>
+  </TabWidget>
+ </Tab>
+ <Tab name="vrpn">
+  <TabWidget name="vrpn">
+   <Tab name="Reglages">
+    <GroupBox name="post rotation 1">
+     <DoubleSpinBox value="0" name="value"/>
+     <ComboBox value="0" name="axis"/>
+    </GroupBox>
+    <GroupBox name="post rotation 2">
+     <DoubleSpinBox value="0" name="value"/>
+     <ComboBox value="0" name="axis"/>
+    </GroupBox>
+    <GroupBox name="Drone_0 Passe bas">
+     <DoubleSpinBox value="0" name="period, 0 for auto"/>
+     <DoubleSpinBox value="2" name="cutoff frequency"/>
+    </GroupBox>
+    <GroupBox name="Drone_0_euler">
+     <DoubleSpinBox value="0" name="period, 0 for auto:"/>
+    <DoubleSpinBox name="saturation, -1 to disable:" value="-1"/></GroupBox>
+    <GroupBox name="target Passe bas">
+     <DoubleSpinBox value="0" name="period, 0 for auto"/>
+     <DoubleSpinBox value="2" name="cutoff frequency"/>
+    </GroupBox>
+    <GroupBox name="target_euler">
+     <DoubleSpinBox value="0" name="period, 0 for auto:"/>
+    <DoubleSpinBox name="saturation, -1 to disable:" value="-1"/></GroupBox>
+    <GroupBox name="circle">
+     <DoubleSpinBox value="0" name="period, 0 for auto"/>
+     <DoubleSpinBox value="1.5" name="R"/>
+     <DoubleSpinBox value="1" name="velocity"/>
+     <DoubleSpinBox value="0.1" name="acceleration (absolute)"/>
+    </GroupBox>
+   </Tab>
+   <Tab name="Mesures Drone_0">
+    <DataPlot1D name="x" period="100" enabled="1">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="y" period="100" enabled="1">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="z" period="100" enabled="0">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="vx" period="100" enabled="0">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="vy" period="100" enabled="0">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="vz" period="100" enabled="0">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+   </Tab>
+   <Tab name="Mesures (xy) Drone_0">
+    <DataPlot2D name="xy" period="100" enabled="0">
+     <Setup period="100" enabled="1"/>
+    </DataPlot2D>
+   </Tab>
+   <Tab name="Mesures target">
+    <DataPlot1D name="x" period="100" enabled="0">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="y" period="100" enabled="0">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="z" period="100" enabled="0">
+     <Setup period="100" enabled="0"/>
+    </DataPlot1D>
+    <DataPlot1D name="vx" period="100" enabled="0">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="vy" period="100" enabled="0">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="vz" period="100" enabled="0">
+     <Setup period="100" enabled="0"/>
+    </DataPlot1D>
+   </Tab>
+   <Tab name="Mesures (xy) target">
+    <DataPlot2D name="xy" period="100" enabled="0">
+     <Setup period="100" enabled="1"/>
+    </DataPlot2D>
+   </Tab>
+  </TabWidget>
+ </Tab>
+ <Tab name="uav">
+  <GridLayout name="buttons">
+   <PushButton value="0" name="kill"/>
+   <PushButton value="0" name="start_log"/>
+   <PushButton value="0" name="stop_log"/>
+   <PushButton value="0" name="take_off"/>
+   <PushButton value="0" name="land"/>
+   <PushButton value="0" name="start_circle"/>
+   <PushButton value="0" name="stop_circle"/>
+  <PushButton name="position hold"/></GridLayout>
+  <GroupBox name="takeoff/landing">
+   <DoubleSpinBox value="1" name="desired takeoff altitude"/>
+   <DoubleSpinBox value="0" name="desired landing altitude"/>
+  </GroupBox>
+  <GroupBox name="alt cons">
+   <DoubleSpinBox value="0" name="period, 0 for auto:"/>
+   <DoubleSpinBox value="0.5" name="velocity max (absolute):"/>
+   <DoubleSpinBox value="0.2" name="acceleration (absolute):"/>
+  </GroupBox>
+ </Tab>
+ <Tab name="control laws">
+  <TabWidget name="laws">
+   <Tab name="Setup">
+    <GroupBox name="u_roll">
+     <DoubleSpinBox value="15" name="sat ref:"/>
+     <DoubleSpinBox value="15" name="kp:"/>
+     <DoubleSpinBox value="100" name="sat dref:"/>
+     <DoubleSpinBox value="0.1" name="kd:"/>
+     <DoubleSpinBox value="0.5" name="sat u:"/>
+    </GroupBox>
+    <GroupBox name="u_pitch">
+     <DoubleSpinBox value="15" name="sat ref:"/>
+     <DoubleSpinBox value="15" name="kp:"/>
+     <DoubleSpinBox value="100" name="sat dref:"/>
+     <DoubleSpinBox value="0.1" name="kd:"/>
+     <DoubleSpinBox value="0.5" name="sat u:"/>
+    </GroupBox>
+    <GroupBox name="u_yaw">
+     <DoubleSpinBox value="0" name="period, 0 for auto"/>
+     <DoubleSpinBox value="1" name="kp:"/>
+     <DoubleSpinBox value="0" name="ki:"/>
+     <DoubleSpinBox value="0" name="sat i:"/>
+     <DoubleSpinBox value="0.1" name="kd:"/>
+     <DoubleSpinBox value="0.2" name="sat:"/>
+    </GroupBox>
+    <GroupBox name="u_z">
+     <DoubleSpinBox value="0" name="period, 0 for auto"/>
+     <DoubleSpinBox value="0.3" name="kp:"/>
+     <DoubleSpinBox value="0.2" name="ki:"/>
+     <DoubleSpinBox value="0.5" name="sat i:"/>
+     <DoubleSpinBox value="0.1" name="kd:"/>
+     <DoubleSpinBox value="0.6" name="offset g:"/>
+     <DoubleSpinBox value="1" name="sat:"/>
+     <DoubleSpinBox value="0.0002" name="offset step:"/>
+    </GroupBox>
+    <GroupBox name="u_x">
+     <DoubleSpinBox value="0" name="period, 0 for auto"/>
+     <DoubleSpinBox value="0.2" name="kp:"/>
+     <DoubleSpinBox value="0" name="ki:"/>
+     <DoubleSpinBox value="0" name="sat i:"/>
+     <DoubleSpinBox value="0.2" name="kd:"/>
+     <DoubleSpinBox value="1" name="sat:"/>
+    </GroupBox>
+    <GroupBox name="u_y">
+     <DoubleSpinBox value="0" name="period, 0 for auto"/>
+     <DoubleSpinBox value="0.2" name="kp:"/>
+     <DoubleSpinBox value="0" name="ki:"/>
+     <DoubleSpinBox value="0" name="sat i:"/>
+     <DoubleSpinBox value="0.2" name="kd:"/>
+     <DoubleSpinBox value="1" name="sat:"/>
+    </GroupBox>
+   </Tab>
+   <Tab name="Graphes">
+    <DataPlot1D name="u_roll" period="100" enabled="0">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="u_pitch" period="100" enabled="0">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="u_yaw" period="100" enabled="0">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="u_z" period="100" enabled="0">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="u_x" period="100" enabled="0">
+     <Setup period="100" enabled="0"/>
+    </DataPlot1D>
+    <DataPlot1D name="u_y" period="100" enabled="0">
+     <Setup period="100" enabled="0"/>
+    </DataPlot1D>
+   </Tab>
+  </TabWidget>
+ </Tab>
+<Tab name="simu_cam_h"><TabWidget name="simu_cam_h"><Tab name="Setup"><GroupBox name="simu_cam_h"/><GridLayout name="setup"/></Tab></TabWidget></Tab><Tab name="real_vrpn"><TabWidget name="real_vrpn"><Tab name="Reglages"><GroupBox name="post rotation 1"><DoubleSpinBox name="value" value="0"/><ComboBox name="axis" value="0"/></GroupBox><GroupBox name="post rotation 2"><DoubleSpinBox name="value" value="0"/><ComboBox name="axis" value="0"/></GroupBox><GroupBox name="Drone_0 Passe bas"><DoubleSpinBox name="period, 0 for auto" value="0"/><DoubleSpinBox name="cutoff frequency" value="1"/></GroupBox><GroupBox name="Drone_0_euler"><DoubleSpinBox name="period, 0 for auto:" value="0"/><DoubleSpinBox name="saturation, -1 to disable:" value="-1"/></GroupBox><GroupBox name="circle"><DoubleSpinBox name="period, 0 for auto" value="0"/><DoubleSpinBox name="R" value="1.50"/><DoubleSpinBox name="velocity" value="1.00"/><DoubleSpinBox name="acceleration (absolute)" value="0.10"/></GroupBox></Tab><Tab name="Mesures Drone_0"><DataPlot1D name="x" period="100" enabled="1"/><DataPlot1D name="y" period="100" enabled="1"/><DataPlot1D name="z" period="100" enabled="0"/><DataPlot1D name="vx" period="100" enabled="0"/><DataPlot1D name="vy" period="100" enabled="0"/><DataPlot1D name="vz" period="100" enabled="0"/></Tab><Tab name="Mesures (xy) Drone_0"><DataPlot2D name="xy" period="100" enabled="0"/></Tab></TabWidget></Tab><Tab name="simu_vrpn"><TabWidget name="simu_vrpn"><Tab name="Reglages"><GroupBox name="post rotation 1"><DoubleSpinBox name="value" value="0"/><ComboBox name="axis" value="0"/></GroupBox><GroupBox name="post rotation 2"><DoubleSpinBox name="value" value="0"/><ComboBox name="axis" value="0"/></GroupBox><GroupBox name="Drone_1 Passe bas"><DoubleSpinBox name="period, 0 for auto" value="0"/><DoubleSpinBox name="cutoff frequency" value="1"/></GroupBox><GroupBox name="Drone_1_euler"><DoubleSpinBox name="period, 0 for auto:" value="0"/><DoubleSpinBox name="saturation, -1 to disable:" value="-1"/></GroupBox></Tab><Tab name="Mesures Drone_1"><DataPlot1D name="x" period="100" enabled="0"/><DataPlot1D name="y" period="100" enabled="0"/><DataPlot1D name="z" period="100" enabled="0"/><DataPlot1D name="vx" period="100" enabled="0"/><DataPlot1D name="vy" period="100" enabled="0"/><DataPlot1D name="vz" period="100" enabled="0"/></Tab><Tab name="Mesures (xy) Drone_1"><DataPlot2D name="xy" period="100" enabled="0"/></Tab></TabWidget></Tab></TabWidget>
+<TabWidget name="App_TabWidget"><Tab name="Drone_0"><PushButton name="save config on target" value="1"/></Tab></TabWidget><PushButton name="save config on target (Drone_0)" value="1"/></root>
Index: trunk/demos/MixedReality/real/uav/build_core2_64/bin/x4.sh
===================================================================
--- trunk/demos/MixedReality/real/uav/build_core2_64/bin/x4.sh	(revision 293)
+++ trunk/demos/MixedReality/real/uav/build_core2_64/bin/x4.sh	(revision 293)
@@ -0,0 +1,11 @@
+#! /bin/bash
+
+if [ -f /proc/xenomai/version ];then
+	EXEC=./MixedReality_uav_real_rt
+else
+	EXEC=./MixedReality_uav_real_nrt
+fi
+
+. $FLAIR_ROOT/flair-dev/scripts/distribution_specific_hack.sh
+
+$EXEC -a 127.0.0.1 -p 9000 -l /tmp -x setup_x4.xml -t x4_simu0 -v 127.0.0.1:3884
Index: trunk/demos/MixedReality/real/uav/src/CircleFollower.cpp
===================================================================
--- trunk/demos/MixedReality/real/uav/src/CircleFollower.cpp	(revision 293)
+++ trunk/demos/MixedReality/real/uav/src/CircleFollower.cpp	(revision 293)
@@ -0,0 +1,282 @@
+//  created:    2019/01/09
+//  filename:   CircleFollower.cpp
+//
+//  author:     Guillaume Sanahuja
+//              Copyright Heudiasyc UMR UTC/CNRS 7253
+//
+//  version:    $Id: $
+//
+//  purpose:    mixed reality demo, real uav side
+//
+//
+/*********************************************************************/
+
+#include "CircleFollower.h"
+#include <TargetController.h>
+#include <Uav.h>
+#include <GridLayout.h>
+#include <PushButton.h>
+#include <DataPlot1D.h>
+#include <DataPlot2D.h>
+#include <MetaDualShock3.h>
+#include <FrameworkManager.h>
+#include <VrpnClient.h>
+#include <MetaVrpnObject.h>
+#include <TrajectoryGenerator2DCircle.h>
+#include <Matrix.h>
+#include <cvmatrix.h>
+#include <cmath>
+#include <Tab.h>
+#include <Pid.h>
+#include <Ahrs.h>
+#include <AhrsData.h>
+
+using namespace std;
+using namespace flair::core;
+using namespace flair::gui;
+using namespace flair::sensor;
+using namespace flair::filter;
+using namespace flair::meta;
+
+CircleFollower::CircleFollower(TargetController *controller,string vrpn): UavStateMachine(controller), behaviourMode(BehaviourMode_t::Default), vrpnLost(false) {
+    Uav* uav=GetUav();
+
+    VrpnClient* realVrpnClient=new VrpnClient("real_vrpn", uav->GetDefaultVrpnAddress(),80);
+    uavVrpn = new MetaVrpnObject(uav->ObjectName());
+    getFrameworkManager()->AddDeviceToLog(uavVrpn);
+    uav->GetAhrs()->YawPlot()->AddCurve(uavVrpn->State()->Element(2),DataPlot::Green);
+																 
+    startCircle=new PushButton(GetButtonsLayout()->NewRow(),"start_circle");
+    stopCircle=new PushButton(GetButtonsLayout()->LastRowLastCol(),"stop_circle");
+    positionHold=new PushButton(GetButtonsLayout()->LastRowLastCol(),"position hold");
+
+    VrpnClient* simuVrpnClient=new VrpnClient("simu_vrpn", vrpn,80);//simu_simu vrpn server
+    targetVrpn=new MetaVrpnObject("Drone_1",simuVrpnClient);
+		simuVrpnClient->Start();
+		realVrpnClient->Start();
+
+    getFrameworkManager()->AddDeviceToLog(targetVrpn);
+
+    circle=new TrajectoryGenerator2DCircle(realVrpnClient->GetLayout()->NewRow(),"circle");
+    uavVrpn->xPlot()->AddCurve(circle->GetMatrix()->Element(0,0),DataPlot::Blue);
+    uavVrpn->yPlot()->AddCurve(circle->GetMatrix()->Element(0,1),DataPlot::Blue);
+    uavVrpn->VxPlot()->AddCurve(circle->GetMatrix()->Element(1,0),DataPlot::Blue);
+    uavVrpn->VyPlot()->AddCurve(circle->GetMatrix()->Element(1,1),DataPlot::Blue);
+    uavVrpn->XyPlot()->AddCurve(circle->GetMatrix()->Element(0,1),circle->GetMatrix()->Element(0,0),DataPlot::Blue,"circle");
+
+    uX=new Pid(setupLawTab->At(1,0),"u_x");
+    uX->UseDefaultPlot(graphLawTab->NewRow());
+    uY=new Pid(setupLawTab->At(1,1),"u_y");
+    uY->UseDefaultPlot(graphLawTab->LastRowLastCol());
+
+    customReferenceOrientation= new AhrsData(this,"reference");
+    uav->GetAhrs()->AddPlot(customReferenceOrientation,DataPlot::Yellow);
+    AddDataToControlLawLog(customReferenceOrientation);
+
+    customOrientation=new AhrsData(this,"orientation");
+}
+
+CircleFollower::~CircleFollower() {
+}
+
+const AhrsData *CircleFollower::GetOrientation(void) const {
+    //get yaw from vrpn
+		Quaternion vrpnQuaternion;
+    uavVrpn->GetQuaternion(vrpnQuaternion);
+
+    //get roll, pitch and w from imu
+    Quaternion ahrsQuaternion;
+    Vector3Df ahrsAngularSpeed;
+    GetDefaultOrientation()->GetQuaternionAndAngularRates(ahrsQuaternion, ahrsAngularSpeed);
+
+    Euler ahrsEuler=ahrsQuaternion.ToEuler();
+    ahrsEuler.yaw=vrpnQuaternion.ToEuler().yaw;
+    Quaternion mixQuaternion=ahrsEuler.ToQuaternion();
+
+    customOrientation->SetQuaternionAndAngularRates(mixQuaternion,ahrsAngularSpeed);
+
+    return customOrientation;
+}
+
+void CircleFollower::AltitudeValues(float &z,float &dz) const{
+    Vector3Df uav_pos,uav_vel;
+
+    uavVrpn->GetPosition(uav_pos);
+    uavVrpn->GetSpeed(uav_vel);
+    //z and dz must be in uav's frame
+    z=-uav_pos.z;
+    dz=-uav_vel.z;
+}
+
+AhrsData *CircleFollower::GetReferenceOrientation(void) {
+    Vector2Df pos_err, vel_err; // in Uav coordinate system
+    float yaw_ref;
+    Euler refAngles;
+
+    PositionValues(pos_err, vel_err, yaw_ref);
+
+    refAngles.yaw=yaw_ref;
+
+    uX->SetValues(pos_err.x, vel_err.x);
+    uX->Update(GetTime());
+    refAngles.pitch=uX->Output();
+
+    uY->SetValues(pos_err.y, vel_err.y);
+    uY->Update(GetTime());
+    refAngles.roll=-uY->Output();
+
+    customReferenceOrientation->SetQuaternionAndAngularRates(refAngles.ToQuaternion(),Vector3Df(0,0,0));
+
+    return customReferenceOrientation;
+}
+
+void CircleFollower::PositionValues(Vector2Df &pos_error,Vector2Df &vel_error,float &yaw_ref) {
+    Vector3Df uav_pos,uav_vel; // in VRPN coordinate system
+    Vector2Df uav_2Dpos,uav_2Dvel; // in VRPN coordinate system
+
+    uavVrpn->GetPosition(uav_pos);
+    uavVrpn->GetSpeed(uav_vel);
+
+    uav_pos.To2Dxy(uav_2Dpos);
+    uav_vel.To2Dxy(uav_2Dvel);
+
+    if (behaviourMode==BehaviourMode_t::PositionHold) {
+        pos_error=uav_2Dpos-posHold;
+        vel_error=uav_2Dvel;
+        yaw_ref=yawHold;
+    } else { //Circle
+        Vector3Df target_pos;
+        Vector2Df circle_pos,circle_vel;
+        Vector2Df target_2Dpos;
+
+        targetVrpn->GetPosition(target_pos);
+        target_pos.To2Dxy(target_2Dpos);
+        circle->SetCenter(target_2Dpos);
+
+        //circle reference
+        circle->Update(GetTime());
+        circle->GetPosition(circle_pos);
+        circle->GetSpeed(circle_vel);
+
+        //error in optitrack frame
+        pos_error=uav_2Dpos-circle_pos;
+        vel_error=uav_2Dvel-circle_vel;
+        yaw_ref=atan2(target_pos.y-uav_pos.y,target_pos.x-uav_pos.x);
+    }
+
+    //error in uav frame
+    Quaternion currentQuaternion=GetCurrentQuaternion();
+    Euler currentAngles;//in vrpn frame
+    currentQuaternion.ToEuler(currentAngles);
+    pos_error.Rotate(-currentAngles.yaw);
+    vel_error.Rotate(-currentAngles.yaw);
+}
+
+void CircleFollower::SignalEvent(Event_t event) {
+    UavStateMachine::SignalEvent(event);
+    switch(event) {
+    case Event_t::TakingOff:
+        behaviourMode=BehaviourMode_t::Default;
+        vrpnLost=false;
+        break;
+    case Event_t::EnteringControlLoop:
+        if ((behaviourMode==BehaviourMode_t::Circle) && (!circle->IsRunning())) {
+            VrpnPositionHold();
+        }
+        break;
+    case Event_t::EnteringFailSafeMode:
+        behaviourMode=BehaviourMode_t::Default;
+        break;
+    }
+}
+
+void CircleFollower::ExtraSecurityCheck(void) {
+    if ((!vrpnLost) && ((behaviourMode==BehaviourMode_t::Circle) || (behaviourMode==BehaviourMode_t::PositionHold))) {
+        if (!targetVrpn->IsTracked(500)) {
+            Thread::Err("VRPN, target lost\n");
+            vrpnLost=true;
+            EnterFailSafeMode();
+            Land();
+        }
+        if (!uavVrpn->IsTracked(500)) {
+            Thread::Err("VRPN, uav lost\n");
+            vrpnLost=true;
+            EnterFailSafeMode();
+            Land();
+        }
+    }
+}
+
+void CircleFollower::ExtraCheckPushButton(void) {
+    if(startCircle->Clicked() && (behaviourMode!=BehaviourMode_t::Circle)) {
+        StartCircle();
+    }
+    if(stopCircle->Clicked() && (behaviourMode==BehaviourMode_t::Circle)) {
+        StopCircle();
+    }
+    if(positionHold->Clicked() && (behaviourMode==BehaviourMode_t::Default)) {
+        VrpnPositionHold();
+    }
+}
+
+void CircleFollower::ExtraCheckJoystick(void) {
+    //R1 and Circle
+    if(GetJoystick()->IsButtonPressed(9) && GetJoystick()->IsButtonPressed(4) && (behaviourMode!=BehaviourMode_t::Circle)) {
+        StartCircle();
+    }
+
+    //R1 and Cross
+    if(GetJoystick()->IsButtonPressed(9) && GetJoystick()->IsButtonPressed(5) && (behaviourMode==BehaviourMode_t::Circle)) {
+        StopCircle();
+    }
+    
+    //R1 and Square
+    if(GetJoystick()->IsButtonPressed(9) && GetJoystick()->IsButtonPressed(2) && (behaviourMode==BehaviourMode_t::Default)) {
+        VrpnPositionHold();
+    }
+}
+
+void CircleFollower::StartCircle(void) {
+    if (SetOrientationMode(OrientationMode_t::Custom)) {
+        Thread::Info("CircleFollower: start circle\n");
+    } else {
+        Thread::Warn("CircleFollower: could not start circle\n");
+        return;
+    }
+    Vector3Df uav_pos,target_pos;
+    Vector2Df uav_2Dpos,target_2Dpos;
+
+    targetVrpn->GetPosition(target_pos);
+    target_pos.To2Dxy(target_2Dpos);
+    circle->SetCenter(target_2Dpos);
+
+    uavVrpn->GetPosition(uav_pos);
+    uav_pos.To2Dxy(uav_2Dpos);
+    circle->StartTraj(uav_2Dpos);
+
+    uX->Reset();
+    uY->Reset();
+    behaviourMode=BehaviourMode_t::Circle;
+}
+
+void CircleFollower::StopCircle(void) {
+    circle->FinishTraj();
+    //GetJoystick()->Rumble(0x70);
+    Thread::Info("CircleFollower: finishing circle\n");
+}
+
+void CircleFollower::VrpnPositionHold(void) {
+		Quaternion vrpnQuaternion;
+    uavVrpn->GetQuaternion(vrpnQuaternion);
+		yawHold=vrpnQuaternion.ToEuler().yaw;
+
+    Vector3Df vrpnPosition;
+    uavVrpn->GetPosition(vrpnPosition);
+    vrpnPosition.To2Dxy(posHold);
+
+    uX->Reset();
+    uY->Reset();
+    behaviourMode=BehaviourMode_t::PositionHold;
+    SetOrientationMode(OrientationMode_t::Custom);
+    Thread::Info("CircleFollower: holding position\n");
+}
Index: trunk/demos/MixedReality/real/uav/src/CircleFollower.h
===================================================================
--- trunk/demos/MixedReality/real/uav/src/CircleFollower.h	(revision 293)
+++ trunk/demos/MixedReality/real/uav/src/CircleFollower.h	(revision 293)
@@ -0,0 +1,74 @@
+//  created:    2019/01/09
+//  filename:   CircleFollower.h
+//
+//  author:     Guillaume Sanahuja
+//              Copyright Heudiasyc UMR UTC/CNRS 7253
+//
+//  version:    $Id: $
+//
+//  purpose:    mixed reality demo, real uav side
+//
+//
+/*********************************************************************/
+
+#ifndef CIRCLEFOLLOWER_H
+#define CIRCLEFOLLOWER_H
+
+#include <UavStateMachine.h>
+
+namespace flair {
+    namespace gui {
+        class PushButton;
+    }
+    namespace filter {
+        class TrajectoryGenerator2DCircle;
+	class CvtColor;
+    }
+    namespace meta {
+        class MetaVrpnObject;
+    }
+    namespace sensor {
+        class TargetController;
+    }
+}
+
+class CircleFollower : public flair::meta::UavStateMachine {
+    public:
+        CircleFollower(flair::sensor::TargetController *controller,std::string vrpn);
+        ~CircleFollower();
+
+    private:
+
+	enum class BehaviourMode_t {
+            Default,
+            PositionHold,
+            Circle
+        };
+
+        BehaviourMode_t behaviourMode;
+        bool vrpnLost;
+
+        void VrpnPositionHold(void);//flight mode
+        void StartCircle(void);
+        void StopCircle(void);
+        void ExtraSecurityCheck(void);
+        void ExtraCheckPushButton(void);
+        void ExtraCheckJoystick(void);
+        const flair::core::AhrsData *GetOrientation(void) const;
+        void AltitudeValues(float &z,float &dz) const;
+        void PositionValues(flair::core::Vector2Df &pos_error,flair::core::Vector2Df &vel_error,float &yaw_ref);
+        flair::core::AhrsData *GetReferenceOrientation(void);
+        void SignalEvent(Event_t event);
+
+        flair::filter::Pid *uX, *uY;
+
+        flair::core::Vector2Df posHold;
+        float yawHold;
+
+        flair::gui::PushButton *startCircle,*stopCircle,*positionHold;
+        flair::meta::MetaVrpnObject *targetVrpn,*uavVrpn;
+        flair::filter::TrajectoryGenerator2DCircle *circle;
+        flair::core::AhrsData *customReferenceOrientation,*customOrientation;
+};
+
+#endif // CIRCLEFOLLOWER_H
Index: trunk/demos/MixedReality/real/uav/src/main.cpp
===================================================================
--- trunk/demos/MixedReality/real/uav/src/main.cpp	(revision 293)
+++ trunk/demos/MixedReality/real/uav/src/main.cpp	(revision 293)
@@ -0,0 +1,98 @@
+//  created:    2011/05/01
+//  filename:   main.cpp
+//
+//  author:     Guillaume Sanahuja
+//              Copyright Heudiasyc UMR UTC/CNRS 7253
+//
+//  version:    $Id: $
+//
+//  purpose:    exemple de code uav
+//
+//
+/*********************************************************************/
+
+#include "CircleFollower.h"
+#include <UavFactory.h>
+#include <FrameworkManager.h>
+#include <stdio.h>
+#include <tclap/CmdLine.h>
+#include <TargetEthController.h>
+
+using namespace TCLAP;
+using namespace std;
+using namespace flair::core;
+using namespace flair::meta;
+using namespace flair::sensor;
+
+string uav_type;
+string log_path;
+int port;
+int ds3port;
+string xml_file;
+string address;
+string vrpn;
+
+void parseOptions(int argc, char** argv);
+
+
+int main(int argc, char* argv[]) {
+    parseOptions(argc,argv);
+
+    FrameworkManager *manager;
+    manager= new FrameworkManager("Drone_0");
+    manager->SetupConnection(address,port);
+    manager->SetupUserInterface(xml_file);
+    manager->SetupLogger(log_path);
+
+    Uav* drone=CreateUav("Drone_0",uav_type);
+    TargetEthController *controller=new TargetEthController("Dualshock3",ds3port);
+    CircleFollower* demo=new CircleFollower(controller,vrpn);
+
+    demo->Start();
+    demo->Join();
+
+    delete manager;
+}
+
+void parseOptions(int argc, char** argv) {
+	try {
+
+        CmdLine cmd("Command description message", ' ', "0.1");
+
+        ValueArg<string> typeArg("t","type","uav type: ardrone2, hds_x4, hds_x8, hds_xufo, x4_simu, x8_simu or x4_simux (with x the number of the simulated uav)",true,"hds_x4","string");
+        cmd.add( typeArg );
+
+        ValueArg<string> xmlArg("x","xml","fichier xml",true,"./reglages.xml","string");
+        cmd.add( xmlArg );
+
+        ValueArg<string> logsArg("l","logs","repertoire des logs",true,"/media/ram","string");
+        cmd.add( logsArg );
+
+        ValueArg<int> portArg("p","port","port pour station sol",true,9000,"int");
+        cmd.add( portArg );
+
+        ValueArg<string> addressArg("a","address","adresse station sol",true,"127.0.0.1","string");
+        cmd.add( addressArg );
+
+        ValueArg<int> ds3portArg("d","ds3_port","port pour ds3",false,20000,"int");
+        cmd.add( ds3portArg );
+        
+        ValueArg<string> vrpnArg("v","vrpn","simu vrpn address and port",true,"127.0.0.1:3884","string");
+        cmd.add( vrpnArg );
+
+        cmd.parse( argc, argv );
+
+        // Get the value parsed by each arg.
+        log_path = logsArg.getValue();
+        port=portArg.getValue();
+        ds3port=ds3portArg.getValue();
+        xml_file = xmlArg.getValue();
+        uav_type=typeArg.getValue();
+        address=addressArg.getValue();
+        vrpn=vrpnArg.getValue();
+
+	} catch (ArgException &e) { // catch any exceptions
+        cerr << "error: " << e.error() << " for arg " << e.argId() << endl;
+        exit(EXIT_FAILURE);
+	}
+}
Index: trunk/demos/MixedReality/virtual/simulator/CMakeLists.txt
===================================================================
--- trunk/demos/MixedReality/virtual/simulator/CMakeLists.txt	(revision 293)
+++ trunk/demos/MixedReality/virtual/simulator/CMakeLists.txt	(revision 293)
@@ -0,0 +1,42 @@
+PROJECT(MixedReality_simulator_virtual)
+cmake_minimum_required(VERSION 2.8)
+
+SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin)
+SET(FLAIR_USE_SIMULATOR TRUE)
+SET(FLAIR_USE_SIMULATOR_GL TRUE)
+SET(FLAIR_USE_SENSOR_ACTUATOR TRUE)
+
+include($ENV{FLAIR_ROOT}/flair-dev/cmake-modules/GlobalCmakeFlair.cmake)
+include(${FLAIR_USE_FILE})
+
+if("${CMAKE_SYSTEM_PROCESSOR_DEFAULTTUNE}" MATCHES "core2-64")
+
+SET(SRC_FILES
+	${CMAKE_SOURCE_DIR}/src/main.cpp
+)
+
+INCLUDE_DIRECTORIES(
+	${FLAIR_INCLUDE_DIR}
+)
+
+#real time executable
+ADD_EXECUTABLE(${PROJECT_NAME}_rt
+	${SRC_FILES}
+)
+
+TARGET_LINK_LIBRARIES(${PROJECT_NAME}_rt ${FLAIR_LIBRARIES_RT})
+
+#non real time executable
+ADD_EXECUTABLE(${PROJECT_NAME}_nrt
+	${SRC_FILES}
+)
+
+TARGET_LINK_LIBRARIES(${PROJECT_NAME}_nrt ${FLAIR_LIBRARIES_NRT})
+
+else()
+    if(DEFINED CMAKE_SYSTEM_PROCESSOR_DEFAULTTUNE)
+        warn("${PROJECT_NAME} will not be built for ${CMAKE_SYSTEM_PROCESSOR_DEFAULTTUNE} architecture")
+    else()
+        warn("${PROJECT_NAME} will not be built for ${CMAKE_SYSTEM_PROCESSOR} architecture")
+    endif()
+endif()
Index: trunk/demos/MixedReality/virtual/simulator/build_core2_64/bin/setup_x4.xml
===================================================================
--- trunk/demos/MixedReality/virtual/simulator/build_core2_64/bin/setup_x4.xml	(revision 293)
+++ trunk/demos/MixedReality/virtual/simulator/build_core2_64/bin/setup_x4.xml	(revision 293)
@@ -0,0 +1,102 @@
+<?xml version="1.0"?>
+<!DOCTYPE remote_ui_xml>
+<root name="interface">
+  <TabWidget name="Main_TabWidget">
+ <Tab name="Drone_1">
+  <TabWidget name="tabs">
+   <Tab name="sampling">
+    <DoubleSpinBox value="0.001" name="Tech (s):"/>
+   </Tab>
+   <Tab name="optitrack">
+    <CheckBox value="1" name="enabled"/>
+   </Tab>
+   <Tab name="init">
+    <DoubleSpinBox value="-1.5" name="x:"/>
+    <DoubleSpinBox value="0" name="y:"/>
+    <DoubleSpinBox value="-3.5" name="z:"/>
+    <SpinBox value="90" name="yaw (deg):"/>
+   <Vector3DSpinBox name="position" value_x="-1.5" value_y="0" value_z="-1"/></Tab>
+   <Tab name="model">
+    <DoubleSpinBox value="1.2" name="mass (kg):"/>
+    <DoubleSpinBox value="0.2" name="arm length (m):"/>
+    <DoubleSpinBox value="0.001" name="k_mot:"/>
+    <DoubleSpinBox value="0.001" name="c_mot:"/>
+    <DoubleSpinBox value="0.01" name="f_air_vert:"/>
+    <DoubleSpinBox value="0.4" name="f_air_lat:"/>
+    <DoubleSpinBox value="0.006" name="j_roll:"/>
+    <DoubleSpinBox value="0.006" name="j_pitch:"/>
+    <DoubleSpinBox value="0.1" name="j_yaw:"/>
+   <SpinBox name="motor timeout:" value="100"/></Tab>
+   <Tab name="us">
+    <GroupBox name="position">
+     <DoubleSpinBox value="0" name="x:"/>
+     <DoubleSpinBox value="0" name="y:"/>
+     <DoubleSpinBox value="0.04" name="z:"/>
+    </GroupBox>
+    <GroupBox name="direction">
+     <DoubleSpinBox value="0" name="x:"/>
+     <DoubleSpinBox value="0" name="y:"/>
+     <DoubleSpinBox value="1" name="z:"/>
+    </GroupBox>
+    <DoubleSpinBox value="6" name="range:"/>
+   <Vector3DSpinBox name="position" value_x="0" value_y="0" value_z="0.04"/><Vector3DSpinBox name="direction" value_x="0" value_y="0" value_z="1"/></Tab>
+   <Tab name="bottom camera">
+    <GroupBox name="position">
+     <DoubleSpinBox value="0" name="x:"/>
+     <DoubleSpinBox value="0" name="y:"/>
+     <DoubleSpinBox value="0" name="z:"/>
+    </GroupBox>
+    <GroupBox name="direction">
+     <DoubleSpinBox value="0" name="x:"/>
+     <DoubleSpinBox value="0" name="y:"/>
+     <DoubleSpinBox value="1" name="z:"/>
+    </GroupBox>
+    <GroupBox name="up">
+     <DoubleSpinBox value="1" name="x:"/>
+     <DoubleSpinBox value="0" name="y:"/>
+     <DoubleSpinBox value="0" name="z:"/>
+    </GroupBox>
+    <DoubleSpinBox value="70" name="fov:"/>
+   <Vector3DSpinBox name="position" value_x="0" value_y="0" value_z="0"/><Vector3DSpinBox name="direction" value_x="0" value_y="0" value_z="1"/><Vector3DSpinBox name="up" value_x="1" value_y="0" value_z="0"/></Tab>
+   <Tab name="front camera">
+    <GroupBox name="position">
+     <DoubleSpinBox value="0" name="x:"/>
+     <DoubleSpinBox value="0" name="y:"/>
+     <DoubleSpinBox value="0" name="z:"/>
+    </GroupBox>
+    <GroupBox name="direction">
+     <DoubleSpinBox value="1" name="x:"/>
+     <DoubleSpinBox value="0" name="y:"/>
+     <DoubleSpinBox value="0" name="z:"/>
+    </GroupBox>
+    <GroupBox name="up">
+     <DoubleSpinBox value="0" name="x:"/>
+     <DoubleSpinBox value="0" name="y:"/>
+     <DoubleSpinBox value="-1" name="z:"/>
+    </GroupBox>
+    <DoubleSpinBox value="70" name="fov:"/>
+   <Vector3DSpinBox name="position" value_x="0" value_y="0" value_z="0"/><Vector3DSpinBox name="direction" value_x="1.00" value_y="0.00" value_z="0.00"/><Vector3DSpinBox name="up" value_x="0.00" value_y="0.00" value_z="-1.00"/></Tab>
+  </TabWidget>
+ </Tab>
+ <Tab name="target">
+  <TabWidget name="tabs">
+   <Tab name="sampling">
+    <DoubleSpinBox value="0.02" name="Tech (s):"/>
+   </Tab>
+   <Tab name="optitrack">
+    <CheckBox value="1" name="enabled"/>
+   </Tab>
+   <Tab name="init">
+    <DoubleSpinBox value="-1.5" name="x:"/>
+    <DoubleSpinBox value="1" name="y:"/>
+    <DoubleSpinBox value="0" name="z:"/>
+    <SpinBox value="90" name="yaw (deg):"/>
+   <Vector3DSpinBox name="position" value_x="-1.5" value_y="1" value_z="0"/></Tab>
+   <Tab name="model">
+    <DoubleSpinBox value="1.3" name="translational speed (m/s):"/>
+    <DoubleSpinBox value="60" name="rotational speed (deg/s):"/>
+   </Tab>
+  </TabWidget>
+</Tab>
+  <Tab name="Drone_0"><DoubleSpinBox name="arm length (m):" value="0.20"/></Tab></TabWidget>
+<TabWidget name="App_TabWidget"><Tab name="simulator"><PushButton name="save config on target" value="1"/></Tab></TabWidget><PushButton name="save config on target (simulator)" value="1"/><PushButton name="save config on target (simulator_simu)" value="1"/></root>
Index: trunk/demos/MixedReality/virtual/simulator/build_core2_64/bin/simulator_x4.sh
===================================================================
--- trunk/demos/MixedReality/virtual/simulator/build_core2_64/bin/simulator_x4.sh	(revision 293)
+++ trunk/demos/MixedReality/virtual/simulator/build_core2_64/bin/simulator_x4.sh	(revision 293)
@@ -0,0 +1,10 @@
+#! /bin/bash
+if [ -f /proc/xenomai/version ];then
+	EXEC=./MixedReality_simulator_virtual_rt
+else
+	EXEC=./MixedReality_simulator_virtual_nrt
+fi
+
+. $FLAIR_ROOT/flair-dev/scripts/distribution_specific_hack.sh
+
+$EXEC -p 9000 -a 127.0.0.1 -x setup_x4.xml -o 10 -m $FLAIR_ROOT/flair-bin/models -s $FLAIR_ROOT/flair-bin/models/indoor_flight_arena.xml -v 127.0.0.1:3883
Index: trunk/demos/MixedReality/virtual/simulator/src/main.cpp
===================================================================
--- trunk/demos/MixedReality/virtual/simulator/src/main.cpp	(revision 293)
+++ trunk/demos/MixedReality/virtual/simulator/src/main.cpp	(revision 293)
@@ -0,0 +1,106 @@
+//  created:    2012/04/18
+//  filename:   main.cpp
+//
+//  author:     Guillaume Sanahuja
+//              Copyright Heudiasyc UMR UTC/CNRS 6599
+//
+//  version:    $Id: $
+//
+//  purpose:    main simulateur
+//
+//
+/*********************************************************************/
+#ifdef GL
+
+#include <tclap/CmdLine.h>
+#include <Simulator.h>
+#include <X4.h>
+#include <SimuImu.h>
+#include <Parser.h>
+#include <SimuUsGL.h>
+#include <SimuCameraGL.h>
+#include <UavVrpnObject.h>
+#include <VrpnClient.h>
+
+#define UAV_SIMU_MODEL_ID 1
+
+using namespace TCLAP;
+using namespace std;
+using namespace flair::simulator;
+using namespace flair::sensor;
+
+int port;
+int opti_time;
+string xml_file;
+string media_path;
+string scene_file;
+string address;
+string vrpn;
+
+void parseOptions(int argc, char** argv)
+{
+  try {
+    CmdLine cmd("Command description message", ' ', "0.1");
+
+    ValueArg<string> xmlArg("x", "xml", "xml file", true, "./reglages.xml", "string");
+    cmd.add(xmlArg);
+
+    ValueArg<int> portArg("p", "port", "ground station port", true, 9002, "int");
+    cmd.add(portArg);
+
+    ValueArg<string> addressArg("a", "address", "ground station address", true, "127.0.0.1", "string");
+    cmd.add(addressArg);
+
+    ValueArg<int> optiArg("o", "opti", "optitrack time ms", false, 0, "int");
+    cmd.add(optiArg);
+
+    ValueArg<string> mediaArg("m", "media", "path to media files", true, "./", "string");
+    cmd.add(mediaArg);
+
+    ValueArg<string> sceneArg("s", "scene", "path to scene file", true, "./voliere.xml", "string");
+    cmd.add(sceneArg);
+
+    ValueArg<string> vrpnArg("v","vrpn","simu vrpn address and port",true,"127.0.0.1:3884","string");
+    cmd.add( vrpnArg );
+        
+    cmd.parse(argc, argv);
+
+    // Get the value parsed by each arg.
+    port = portArg.getValue();
+    xml_file = xmlArg.getValue();
+    opti_time = optiArg.getValue();
+    address = addressArg.getValue();
+    media_path = mediaArg.getValue();
+    scene_file = sceneArg.getValue();
+    vrpn=vrpnArg.getValue();
+
+  } catch(ArgException& e) {
+    cerr << "error: " << e.error() << " for arg " << e.argId() << endl;
+    exit(EXIT_FAILURE);
+  }
+}
+
+int main(int argc, char* argv[]) {
+  parseOptions(argc, argv);
+
+  Simulator* simu = new Simulator("simulator_simu", opti_time, 90,3884);
+  simu->SetupConnection(address, port);
+  simu->SetupUserInterface(xml_file);
+  Parser*gui = new Parser(960, 480, 640, 480, media_path, scene_file);
+
+  X4* uav_simu = new X4("Drone_1", UAV_SIMU_MODEL_ID);
+  SimuImu* imu = new SimuImu(uav_simu, "imu", UAV_SIMU_MODEL_ID,0);
+  SimuUsGL* us_gl = new SimuUsGL(uav_simu, "us", UAV_SIMU_MODEL_ID,0);
+  SimuCameraGL* cam_bas = new SimuCameraGL(uav_simu, "bottom camera", 320, 240, 640, 0,UAV_SIMU_MODEL_ID,0);
+
+  VrpnClient* vrpnclient=new VrpnClient("vrpn", vrpn,80);//simu_real or real vrpn server
+  UavVrpnObject* uav_real=new UavVrpnObject("Drone_0",vrpnclient);
+  
+  vrpnclient->Start();
+  simu->RunSimu();
+
+  delete simu;
+  return 0;
+}
+
+#endif
Index: trunk/demos/MixedReality/virtual/uav/CMakeLists.txt
===================================================================
--- trunk/demos/MixedReality/virtual/uav/CMakeLists.txt	(revision 293)
+++ trunk/demos/MixedReality/virtual/uav/CMakeLists.txt	(revision 293)
@@ -0,0 +1,35 @@
+PROJECT(MixedReality_uav_virtual)
+cmake_minimum_required(VERSION 2.8)
+
+SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin)
+SET(FLAIR_USE_FILTER TRUE)
+SET(FLAIR_USE_SENSOR_ACTUATOR TRUE)
+SET(FLAIR_USE_VISION_FILTER TRUE)
+SET(FLAIR_USE_META TRUE)
+SET(FLAIR_USE_VRPN TRUE)
+
+include($ENV{FLAIR_ROOT}/flair-dev/cmake-modules/GlobalCmakeFlair.cmake)
+include(${FLAIR_USE_FILE})
+
+SET(SRC_FILES
+	${CMAKE_SOURCE_DIR}/src/main.cpp
+	${CMAKE_SOURCE_DIR}/src/App.cpp
+)
+
+INCLUDE_DIRECTORIES(
+	${FLAIR_INCLUDE_DIR}
+)
+
+#real time executable
+ADD_EXECUTABLE(${PROJECT_NAME}_rt
+	${SRC_FILES}
+)
+
+TARGET_LINK_LIBRARIES(${PROJECT_NAME}_rt ${FLAIR_LIBRARIES_RT})
+
+#non real time executable
+ADD_EXECUTABLE(${PROJECT_NAME}_nrt
+	${SRC_FILES}
+)
+
+TARGET_LINK_LIBRARIES(${PROJECT_NAME}_nrt ${FLAIR_LIBRARIES_NRT})
Index: trunk/demos/MixedReality/virtual/uav/build_armv5te/bin/MixedReality_minidrones.sh
===================================================================
--- trunk/demos/MixedReality/virtual/uav/build_armv5te/bin/MixedReality_minidrones.sh	(revision 293)
+++ trunk/demos/MixedReality/virtual/uav/build_armv5te/bin/MixedReality_minidrones.sh	(revision 293)
@@ -0,0 +1,1 @@
+./CircleFollower_nrt -a 192.168.2.2 -p 9000 -l /tmp -x CircleFollower_minidrones.xml -n Drone_0 -t mamboedu
Index: trunk/demos/MixedReality/virtual/uav/build_armv5te/bin/MixedReality_minidrones.xml
===================================================================
--- trunk/demos/MixedReality/virtual/uav/build_armv5te/bin/MixedReality_minidrones.xml	(revision 293)
+++ trunk/demos/MixedReality/virtual/uav/build_armv5te/bin/MixedReality_minidrones.xml	(revision 293)
@@ -0,0 +1,357 @@
+<?xml version="1.0"?>
+<!DOCTYPE remote_ui_xml>
+<root name="interface">
+<TabWidget name="Main_TabWidget">
+ <Tab name="x4-multiplex">
+  <TabWidget name="UavMultiplex">
+   <Tab name="Setup">
+    <GroupBox name="x4 multiplex">
+     <ComboBox value="1" name="front left blade pitch:"/>
+    </GroupBox>
+    <GroupBox name="motor attribution">
+     <ComboBox value="2" name="front left"/>
+     <ComboBox value="0" name="front rigth"/>
+     <ComboBox value="3" name="rear left"/>
+     <ComboBox value="1" name="rear rigth"/>
+    </GroupBox>
+    <GroupBox name="bldc">
+     <Label name="flight time"/>
+     <DoubleSpinBox value="0.4" name="min value:"/>
+     <DoubleSpinBox value="1" name="max value:"/>
+     <DoubleSpinBox value="0.1" name="test value:"/>
+     <PushButton value="1" name="test motor 0"/>
+     <PushButton value="1" name="test motor 1"/>
+     <PushButton value="1" name="test motor 2"/>
+     <PushButton value="1" name="test motor 3"/>
+    </GroupBox>
+   <GroupBox name="battery"><Label name="battery"/><DoubleSpinBox name="threshold" value="10"/><SpinBox name="threshold time" value="10"/></GroupBox></Tab>
+   <Tab name="Values">
+    <DataPlot1D name="front left" period="100" enabled="0">
+     <Setup period="100" enabled="0"/>
+    </DataPlot1D>
+    <DataPlot1D name="front right" period="100" enabled="0">
+     <Setup period="100" enabled="0"/>
+    </DataPlot1D>
+    <DataPlot1D name="rear left" period="100" enabled="0">
+     <Setup period="100" enabled="0"/>
+    </DataPlot1D>
+    <DataPlot1D name="rear right" period="100" enabled="0">
+     <Setup period="100" enabled="0"/>
+    </DataPlot1D>
+   </Tab>
+  </TabWidget>
+ </Tab>
+ <Tab name="parrot-us">
+  <TabWidget name="parrot-us">
+   <Tab name="Reglages">
+    <GroupBox name="parrot-us"/>
+    <GroupBox name="Passe bas">
+     <DoubleSpinBox value="0.04" name="period, 0 for auto"/>
+     <DoubleSpinBox value="5" name="cutoff frequency"/>
+    </GroupBox>
+    <GroupBox name="Vz">
+     <DoubleSpinBox value="0.04" name="period, 0 for auto:"/>
+    </GroupBox>
+    <GroupBox name="Passe bas v">
+     <DoubleSpinBox value="0.04" name="period, 0 for auto"/>
+     <DoubleSpinBox value="10" name="cutoff frequency"/>
+    </GroupBox>
+    <GroupBox name="alt cons">
+     <DoubleSpinBox value="0" name="period, 0 for auto:"/>
+     <DoubleSpinBox value="1" name="velocity max (absolute):"/>
+     <DoubleSpinBox value="0.8" name="acceleration (absolute):"/>
+    </GroupBox>
+    <GroupBox name="decollage">
+     <DoubleSpinBox value="0.8" name="alt decollage"/>
+     <DoubleSpinBox value="0" name="alt atterissage"/>
+    </GroupBox>
+   </Tab>
+   <Tab name="Mesures">
+    <DataPlot1D name="parrot-us" period="100" enabled="1">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="vz" period="100" enabled="1">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+   </Tab>
+  </TabWidget>
+ </Tab>
+ <Tab name="minidrones-imu">
+  <TabWidget name="parrot-imu">
+   <Tab name="Reglages">
+    <GroupBox name="parrot-imu"/>
+    <GroupBox name="post rotation">
+     <DoubleSpinBox value="0" name="value"/>
+     <ComboBox value="0" name="axis"/>
+    </GroupBox>
+    <DoubleSpinBox value="0.5" name="k_a[0]:"/>
+    <DoubleSpinBox value="0.5" name="k_a[1]:"/>
+    <DoubleSpinBox value="0" name="k_a[2]:"/>
+    <DoubleSpinBox value="0.01" name="k_b[0]:"/>
+    <DoubleSpinBox value="0.01" name="k_b[1]:"/>
+    <DoubleSpinBox value="0.01" name="k_b[2]:"/>
+   </Tab>
+   <Tab name="AHRS">
+    <DataPlot1D name="roll" period="100" enabled="1">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="pitch" period="100" enabled="1">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="yaw" period="100" enabled="0">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="w_x" period="100" enabled="0">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="w_y" period="100" enabled="0">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="w_z" period="100" enabled="0">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+   </Tab>
+   <Tab name="IMU">
+    <DataPlot1D name="acc_x" period="100" enabled="0">
+     <Setup period="100" enabled="0"/>
+    </DataPlot1D>
+    <DataPlot1D name="acc_y" period="100" enabled="0">
+     <Setup period="100" enabled="0"/>
+    </DataPlot1D>
+    <DataPlot1D name="acc_z" period="100" enabled="0">
+     <Setup period="100" enabled="0"/>
+    </DataPlot1D>
+    <DataPlot1D name="gyr_x" period="100" enabled="0">
+     <Setup period="100" enabled="0"/>
+    </DataPlot1D>
+    <DataPlot1D name="gyr_y" period="100" enabled="0">
+     <Setup period="100" enabled="0"/>
+    </DataPlot1D>
+    <DataPlot1D name="gyr_z" period="100" enabled="0">
+     <Setup period="100" enabled="0"/>
+    </DataPlot1D>
+    <DataPlot1D name="mag_x" period="100" enabled="0">
+     <Setup period="100" enabled="0"/>
+    </DataPlot1D>
+    <DataPlot1D name="mag_y" period="100" enabled="0">
+     <Setup period="100" enabled="0"/>
+    </DataPlot1D>
+    <DataPlot1D name="mag_z" period="100" enabled="0">
+     <Setup period="100" enabled="0"/>
+    </DataPlot1D>
+   </Tab>
+  </TabWidget>
+ <TabWidget name="minidrones-imu"><Tab name="Reglages"><GroupBox name="minidrones-imu"><ComboBox name="acc scale:" value="0"/><ComboBox name="gyr scale:" value="0"/><Vector3DSpinBox name="magnetic offset (uT)" value_x="0" value_y="0" value_z="0"/><GroupBox name="magnetometers transformation"><DoubleSpinBox name="0,0" value="1"/><DoubleSpinBox name="0,1" value="0"/><DoubleSpinBox name="0,2" value="0"/><DoubleSpinBox name="1,0" value="0"/><DoubleSpinBox name="1,1" value="1"/><DoubleSpinBox name="1,2" value="0"/><DoubleSpinBox name="2,0" value="0"/><DoubleSpinBox name="2,1" value="0"/><DoubleSpinBox name="2,2" value="1"/></GroupBox></GroupBox><DoubleSpinBox name="ka[0]:" value="0.5"/><DoubleSpinBox name="ka[1]:" value="0.5"/><DoubleSpinBox name="ka[2]:" value="0"/><DoubleSpinBox name="kb[0]:" value="0.01"/><DoubleSpinBox name="kb[1]:" value="0.01"/><DoubleSpinBox name="kb[2]:" value="0.01"/><DoubleSpinBox name="km[0]:" value="0"/><DoubleSpinBox name="km[1]:" value="0"/><DoubleSpinBox name="km[2]:" value="0"/><Vector3DSpinBox name="ref magnetic field (uT)" value_x="20.5324001312256" value_y="0.236699998378754" value_z="43.6682014465332"/></Tab><Tab name="AHRS"><DataPlot1D name="roll" period="100" enabled="0"/><DataPlot1D name="pitch" period="100" enabled="0"/><DataPlot1D name="yaw" period="100" enabled="0"/><DataPlot1D name="w_x" period="100" enabled="0"/><DataPlot1D name="w_y" period="100" enabled="0"/><DataPlot1D name="w_z" period="100" enabled="0"/></Tab><Tab name="Quaternion"><DataPlot1D name="q0" period="100" enabled="0"/><DataPlot1D name="q1" period="100" enabled="0"/><DataPlot1D name="q2" period="100" enabled="0"/><DataPlot1D name="q3" period="100" enabled="0"/></Tab><Tab name="IMU"><DataPlot1D name="acc_x" period="100" enabled="0"/><DataPlot1D name="acc_y" period="100" enabled="0"/><DataPlot1D name="acc_z" period="100" enabled="0"/><DataPlot1D name="gyr_x" period="100" enabled="0"/><DataPlot1D name="gyr_y" period="100" enabled="0"/><DataPlot1D name="gyr_z" period="100" enabled="0"/><DataPlot1D name="mag_x" period="100" enabled="0"/><DataPlot1D name="mag_y" period="100" enabled="0"/><DataPlot1D name="mag_z" period="100" enabled="0"/></Tab></TabWidget></Tab>
+ <Tab name="battery">
+  <GroupBox name="battery">
+   <Label name="battery"/>
+   <DoubleSpinBox value="10.5" name="threshold"/>
+  </GroupBox>
+ </Tab>
+ <Tab name="vrpn">
+  <TabWidget name="vrpn">
+   <Tab name="Reglages">
+    <GroupBox name="post rotation 1">
+     <DoubleSpinBox value="90" name="value"/>
+     <ComboBox value="1" name="axis"/>
+    </GroupBox>
+    <GroupBox name="post rotation 2">
+     <DoubleSpinBox value="90" name="value"/>
+     <ComboBox value="0" name="axis"/>
+    </GroupBox>
+    <GroupBox name="Drone_0 Passe bas">
+     <DoubleSpinBox value="0" name="period, 0 for auto"/>
+     <DoubleSpinBox value="2" name="cutoff frequency"/>
+    </GroupBox>
+    <GroupBox name="Drone_0_euler">
+     <DoubleSpinBox value="0" name="period, 0 for auto:"/>
+    </GroupBox>
+    <GroupBox name="target Passe bas">
+     <DoubleSpinBox value="0" name="period, 0 for auto"/>
+     <DoubleSpinBox value="2" name="cutoff frequency"/>
+    </GroupBox>
+    <GroupBox name="target_euler">
+     <DoubleSpinBox value="0" name="period, 0 for auto:"/>
+    </GroupBox>
+    <GroupBox name="circle">
+     <DoubleSpinBox value="0" name="period, 0 for auto"/>
+     <DoubleSpinBox value="1" name="R"/>
+     <DoubleSpinBox value="0.5" name="velocity"/>
+     <DoubleSpinBox value="0.1" name="acceleration (absolute)"/>
+    </GroupBox>
+   </Tab>
+   <Tab name="Mesures Drone_0">
+    <DataPlot1D name="x" period="100" enabled="0">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="y" period="100" enabled="0">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="z" period="100" enabled="0">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="vx" period="100" enabled="0">
+     <Setup period="100" enabled="0"/>
+    </DataPlot1D>
+    <DataPlot1D name="vy" period="100" enabled="0">
+     <Setup period="100" enabled="0"/>
+    </DataPlot1D>
+    <DataPlot1D name="vz" period="100" enabled="0">
+     <Setup period="100" enabled="0"/>
+    </DataPlot1D>
+   </Tab>
+   <Tab name="Mesures (xy) Drone_0">
+    <DataPlot2D name="xy" period="100" enabled="0">
+     <Setup period="100" enabled="1"/>
+    </DataPlot2D>
+   </Tab>
+   <Tab name="Mesures target">
+    <DataPlot1D name="x" period="100" enabled="0">
+     <Setup period="100" enabled="0"/>
+    </DataPlot1D>
+    <DataPlot1D name="y" period="100" enabled="0">
+     <Setup period="100" enabled="0"/>
+    </DataPlot1D>
+    <DataPlot1D name="z" period="100" enabled="0">
+     <Setup period="100" enabled="0"/>
+    </DataPlot1D>
+    <DataPlot1D name="vx" period="100" enabled="0">
+     <Setup period="100" enabled="0"/>
+    </DataPlot1D>
+    <DataPlot1D name="vy" period="100" enabled="0">
+     <Setup period="100" enabled="0"/>
+    </DataPlot1D>
+    <DataPlot1D name="vz" period="100" enabled="0">
+     <Setup period="100" enabled="0"/>
+    </DataPlot1D>
+   </Tab>
+   <Tab name="Mesures (xy) target">
+    <DataPlot2D name="xy" period="100" enabled="0">
+     <Setup period="100" enabled="0"/>
+    </DataPlot2D>
+   </Tab>
+  </TabWidget>
+ </Tab>
+ <Tab name="camv">
+  <TabWidget name="camv">
+   <Tab name="Setup">
+    <GroupBox name="camv">
+     <DoubleSpinBox value="0" name="gain:"/>
+     <DoubleSpinBox value="0" name="exposure:"/>
+     <DoubleSpinBox value="0" name="bright:"/>
+     <DoubleSpinBox value="0" name="contrast:"/>
+     <DoubleSpinBox value="0" name="hue:"/>
+     <DoubleSpinBox value="0" name="sharpness:"/>
+     <DoubleSpinBox value="0" name="saturation:"/>
+     <CheckBox value="1" name="autogain:"/>
+     <CheckBox value="1" name="autoexposure:"/>
+     <CheckBox value="1" name="awb:"/>
+    <Label name="fps"/></GroupBox>
+    <GridLayout name="setup"/>
+   </Tab>
+  </TabWidget>
+ </Tab>
+ <Tab name="uav">
+  <GridLayout name="buttons">
+   <PushButton value="0" name="kill"/>
+   <PushButton value="1" name="start_log"/>
+   <PushButton value="0" name="stop_log"/>
+   <PushButton value="0" name="take_off"/>
+   <PushButton value="0" name="landing"/>
+   <PushButton value="0" name="start_circle"/>
+   <PushButton value="0" name="stop_circle"/>
+  <PushButton name="land"/><PushButton name="position hold"/></GridLayout>
+ <GroupBox name="takeoff/landing"><DoubleSpinBox name="desired takeoff altitude" value="1"/><DoubleSpinBox name="desired landing altitude" value="0"/></GroupBox><GroupBox name="alt cons"><DoubleSpinBox name="period, 0 for auto:" value="0"/><DoubleSpinBox name="velocity max (absolute):" value="1"/><DoubleSpinBox name="acceleration (absolute):" value="0.8"/></GroupBox></Tab>
+ <Tab name="control laws">
+  <TabWidget name="laws">
+   <Tab name="Setup">
+    <GroupBox name="u_roll">
+     <DoubleSpinBox value="20" name="sat ref:"/>
+     <DoubleSpinBox value="12" name="kp:"/>
+     <DoubleSpinBox value="1000" name="sat dref:"/>
+     <DoubleSpinBox value="0.2" name="kd:"/>
+     <DoubleSpinBox value="0.4" name="sat u:"/>
+    </GroupBox>
+    <GroupBox name="u_pitch">
+     <DoubleSpinBox value="20" name="sat ref:"/>
+     <DoubleSpinBox value="12" name="kp:"/>
+     <DoubleSpinBox value="1000" name="sat dref:"/>
+     <DoubleSpinBox value="0.2" name="kd:"/>
+     <DoubleSpinBox value="0.4" name="sat u:"/>
+    </GroupBox>
+    <GroupBox name="u_yaw">
+     <DoubleSpinBox value="0" name="period, 0 for auto"/>
+     <DoubleSpinBox value="0.6" name="kp:"/>
+     <DoubleSpinBox value="0.1" name="ki:"/>
+     <DoubleSpinBox value="0.2" name="sat i:"/>
+     <DoubleSpinBox value="0.2" name="kd:"/>
+     <DoubleSpinBox value="0.5" name="sat:"/>
+    </GroupBox>
+    <GroupBox name="u_x">
+     <DoubleSpinBox value="0" name="period, 0 for auto"/>
+     <DoubleSpinBox value="0.4" name="kp:"/>
+     <DoubleSpinBox value="0.4" name="ki:"/>
+     <DoubleSpinBox value="0" name="sat i:"/>
+     <DoubleSpinBox value="0.2" name="kd:"/>
+     <DoubleSpinBox value="0.4" name="sat:"/>
+    </GroupBox>
+    <GroupBox name="u_y">
+     <DoubleSpinBox value="0" name="period, 0 for auto"/>
+     <DoubleSpinBox value="0.4" name="kp:"/>
+     <DoubleSpinBox value="0.1" name="ki:"/>
+     <DoubleSpinBox value="0" name="sat i:"/>
+     <DoubleSpinBox value="0.2" name="kd:"/>
+     <DoubleSpinBox value="0.4" name="sat:"/>
+    </GroupBox>
+    <GroupBox name="u_z">
+     <DoubleSpinBox value="0" name="period, 0 for auto"/>
+     <DoubleSpinBox value="0.6" name="kp:"/>
+     <DoubleSpinBox value="0.2" name="ki:"/>
+     <DoubleSpinBox value="0.4" name="sat i:"/>
+     <DoubleSpinBox value="0.4" name="kd:"/>
+     <DoubleSpinBox value="0.6" name="offset g:"/>
+     <DoubleSpinBox value="1" name="sat:"/>
+     <DoubleSpinBox value="0.0002" name="offset step:"/>
+    </GroupBox>
+   </Tab>
+   <Tab name="Graphes">
+    <DataPlot1D name="u_roll" period="100" enabled="0">
+     <Setup period="100" enabled="0"/>
+    </DataPlot1D>
+    <DataPlot1D name="u_pitch" period="100" enabled="0">
+     <Setup period="100" enabled="0"/>
+    </DataPlot1D>
+    <DataPlot1D name="u_yaw" period="100" enabled="0">
+     <Setup period="100" enabled="0"/>
+    </DataPlot1D>
+    <DataPlot1D name="u_x" period="100" enabled="0">
+     <Setup period="100" enabled="0"/>
+    </DataPlot1D>
+    <DataPlot1D name="u_y" period="100" enabled="0">
+     <Setup period="100" enabled="0"/>
+    </DataPlot1D>
+    <DataPlot1D name="u_z" period="100" enabled="0">
+     <Setup period="100" enabled="0"/>
+    </DataPlot1D>
+   </Tab>
+  </TabWidget>
+ </Tab>
+ <Tab name="Dualshock3">
+  <TabWidget name="Dualshock3">
+   <Tab name="Reglages">
+    <GroupBox name="consignes joy">
+     <DoubleSpinBox value="-15" name="debattement roll"/>
+     <DoubleSpinBox value="-15" name="debattement pitch"/>
+     <DoubleSpinBox value="90" name="debattement wz"/>
+     <DoubleSpinBox value="-0.5" name="debattement dz"/>
+     <DoubleSpinBox value="0.02" name="trim"/>
+     <Label name="trim roll"/>
+     <PushButton value="0" name="reset roll trim"/>
+     <Label name="trim pitch"/>
+     <PushButton value="0" name="reset pitch trim"/>
+    </GroupBox>
+   </Tab>
+  </TabWidget>
+ </Tab>
+<Tab name="predictor"><DataPlot1D name="u_pitch" period="100" enabled="1"/></Tab><Tab name="minidrones-us"><TabWidget name="minidrones-us"><Tab name="Reglages"><GroupBox name="minidrones-us"/><GroupBox name="Passe  bas"><DoubleSpinBox name="period, 0 for auto" value="0"/><DoubleSpinBox name="cutoff frequency" value="1"/></GroupBox><GroupBox name="Vz"><DoubleSpinBox name="period, 0 for auto:" value="0"/></GroupBox><GroupBox name="Passe bas  v"><DoubleSpinBox name="period, 0 for auto" value="0"/><DoubleSpinBox name="cutoff frequency" value="1"/></GroupBox><GroupBox name="Passe bas"><DoubleSpinBox name="period, 0 for auto" value="0"/><DoubleSpinBox name="cutoff frequency" value="1"/></GroupBox><GroupBox name="Passe bas v"><DoubleSpinBox name="period, 0 for auto" value="0"/><DoubleSpinBox name="cutoff frequency" value="1"/></GroupBox></Tab><Tab name="Mesures"><DataPlot1D name="minidrones-us" period="100" enabled="1"/><DataPlot1D name="vz" period="100" enabled="0"/></Tab></TabWidget></Tab><Tab name="minidrones-imu_old"><TabWidget name="minidrones-imu"><Tab name="Reglages"><GroupBox name="minidrones-imu"/><DoubleSpinBox name="ka[0]:" value="0.5"/><DoubleSpinBox name="ka[1]:" value="0.5"/><DoubleSpinBox name="ka[2]:" value="0"/><DoubleSpinBox name="kb[0]:" value="0.01"/><DoubleSpinBox name="kb[1]:" value="0.01"/><DoubleSpinBox name="kb[2]:" value="0.01"/><DoubleSpinBox name="km[0]:" value="0.01"/><DoubleSpinBox name="km[1]:" value="0.01"/><DoubleSpinBox name="km[2]:" value="0.01"/><Vector3DSpinBox name="ref magnetic field (uT)" value_x="20.5324001312256" value_y="0.236699998378754" value_z="43.6682014465332"/></Tab><Tab name="AHRS"><DataPlot1D name="roll" period="100" enabled="0"/><DataPlot1D name="pitch" period="100" enabled="0"/><DataPlot1D name="yaw" period="100" enabled="0"/><DataPlot1D name="w_x" period="100" enabled="0"/><DataPlot1D name="w_y" period="100" enabled="0"/><DataPlot1D name="w_z" period="100" enabled="0"/></Tab><Tab name="Quaternion"><DataPlot1D name="q0" period="100" enabled="0"/><DataPlot1D name="q1" period="100" enabled="0"/><DataPlot1D name="q2" period="100" enabled="0"/><DataPlot1D name="q3" period="100" enabled="0"/></Tab><Tab name="IMU"><DataPlot1D name="acc_x" period="100" enabled="0"/><DataPlot1D name="acc_y" period="100" enabled="0"/><DataPlot1D name="acc_z" period="100" enabled="0"/><DataPlot1D name="gyr_x" period="100" enabled="0"/><DataPlot1D name="gyr_y" period="100" enabled="0"/><DataPlot1D name="gyr_z" period="100" enabled="0"/><DataPlot1D name="mag_x" period="100" enabled="0"/><DataPlot1D name="mag_y" period="100" enabled="0"/><DataPlot1D name="mag_z" period="100" enabled="0"/></Tab></TabWidget></Tab></TabWidget>
+<TabWidget name="App_TabWidget"><Tab name="Drone_0"><PushButton name="save config on target" value="1"/></Tab></TabWidget><PushButton name="save config on target (Drone_0)" value="1"/></root>
Index: trunk/demos/MixedReality/virtual/uav/build_armv7a_neon/bin/MixedReality_ardrone2.sh
===================================================================
--- trunk/demos/MixedReality/virtual/uav/build_armv7a_neon/bin/MixedReality_ardrone2.sh	(revision 293)
+++ trunk/demos/MixedReality/virtual/uav/build_armv7a_neon/bin/MixedReality_ardrone2.sh	(revision 293)
@@ -0,0 +1,1 @@
+./CircleFollower_nrt -a 192.168.147.193 -p 9000 -l /tmp -x CircleFollower_ardrone2.xml -n Drone_0 -t ardrone2
Index: trunk/demos/MixedReality/virtual/uav/build_armv7a_neon/bin/MixedReality_ardrone2.xml
===================================================================
--- trunk/demos/MixedReality/virtual/uav/build_armv7a_neon/bin/MixedReality_ardrone2.xml	(revision 293)
+++ trunk/demos/MixedReality/virtual/uav/build_armv7a_neon/bin/MixedReality_ardrone2.xml	(revision 293)
@@ -0,0 +1,357 @@
+<?xml version="1.0"?>
+<!DOCTYPE remote_ui_xml>
+<root name="interface">
+<TabWidget name="Main_TabWidget">
+ <Tab name="x4-multiplex">
+  <TabWidget name="UavMultiplex">
+   <Tab name="Setup">
+    <GroupBox name="x4 multiplex">
+     <ComboBox value="1" name="front left blade pitch:"/>
+    </GroupBox>
+    <GroupBox name="motor attribution">
+     <ComboBox value="0" name="front left"/>
+     <ComboBox value="1" name="front rigth"/>
+     <ComboBox value="2" name="rear left"/>
+     <ComboBox value="3" name="rear rigth"/>
+    </GroupBox>
+    <GroupBox name="bldc">
+     <Label name="flight time"/>
+     <DoubleSpinBox value="0.4" name="min value:"/>
+     <DoubleSpinBox value="1" name="max value:"/>
+     <DoubleSpinBox value="0.1" name="test value:"/>
+     <PushButton value="0" name="test motor 0"/>
+     <PushButton value="0" name="test motor 1"/>
+     <PushButton value="0" name="test motor 2"/>
+     <PushButton value="0" name="test motor 3"/>
+    </GroupBox>
+   </Tab>
+   <Tab name="Values">
+    <DataPlot1D name="front left" period="100" enabled="0">
+     <Setup period="100" enabled="0"/>
+    </DataPlot1D>
+    <DataPlot1D name="front right" period="100" enabled="0">
+     <Setup period="100" enabled="0"/>
+    </DataPlot1D>
+    <DataPlot1D name="rear left" period="100" enabled="0">
+     <Setup period="100" enabled="0"/>
+    </DataPlot1D>
+    <DataPlot1D name="rear right" period="100" enabled="0">
+     <Setup period="100" enabled="0"/>
+    </DataPlot1D>
+   </Tab>
+  </TabWidget>
+ </Tab>
+ <Tab name="parrot-us">
+  <TabWidget name="parrot-us">
+   <Tab name="Reglages">
+    <GroupBox name="parrot-us"/>
+    <GroupBox name="Passe bas">
+     <DoubleSpinBox value="0.04" name="period, 0 for auto"/>
+     <DoubleSpinBox value="5" name="cutoff frequency"/>
+    </GroupBox>
+    <GroupBox name="Vz">
+     <DoubleSpinBox value="0.04" name="period, 0 for auto:"/>
+    </GroupBox>
+    <GroupBox name="Passe bas v">
+     <DoubleSpinBox value="0.04" name="period, 0 for auto"/>
+     <DoubleSpinBox value="10" name="cutoff frequency"/>
+    </GroupBox>
+    <GroupBox name="alt cons">
+     <DoubleSpinBox value="0" name="period, 0 for auto:"/>
+     <DoubleSpinBox value="1" name="velocity max (absolute):"/>
+     <DoubleSpinBox value="0.8" name="acceleration (absolute):"/>
+    </GroupBox>
+    <GroupBox name="decollage">
+     <DoubleSpinBox value="0.8" name="alt decollage"/>
+     <DoubleSpinBox value="0" name="alt atterissage"/>
+    </GroupBox>
+   </Tab>
+   <Tab name="Mesures">
+    <DataPlot1D name="parrot-us" period="100" enabled="1">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="vz" period="100" enabled="1">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+   </Tab>
+  </TabWidget>
+ </Tab>
+ <Tab name="parrot-imu">
+  <TabWidget name="parrot-imu">
+   <Tab name="Reglages">
+    <GroupBox name="parrot-imu"/>
+    <GroupBox name="post rotation">
+     <DoubleSpinBox value="0" name="value"/>
+     <ComboBox value="0" name="axis"/>
+    </GroupBox>
+    <DoubleSpinBox value="0.5" name="k_a[0]:"/>
+    <DoubleSpinBox value="0.5" name="k_a[1]:"/>
+    <DoubleSpinBox value="0" name="k_a[2]:"/>
+    <DoubleSpinBox value="0.01" name="k_b[0]:"/>
+    <DoubleSpinBox value="0.01" name="k_b[1]:"/>
+    <DoubleSpinBox value="0.01" name="k_b[2]:"/>
+   </Tab>
+   <Tab name="AHRS">
+    <DataPlot1D name="roll" period="100" enabled="1">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="pitch" period="100" enabled="1">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="yaw" period="100" enabled="0">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="w_x" period="100" enabled="0">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="w_y" period="100" enabled="0">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="w_z" period="100" enabled="0">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+   </Tab>
+   <Tab name="IMU">
+    <DataPlot1D name="acc_x" period="100" enabled="0">
+     <Setup period="100" enabled="0"/>
+    </DataPlot1D>
+    <DataPlot1D name="acc_y" period="100" enabled="0">
+     <Setup period="100" enabled="0"/>
+    </DataPlot1D>
+    <DataPlot1D name="acc_z" period="100" enabled="0">
+     <Setup period="100" enabled="0"/>
+    </DataPlot1D>
+    <DataPlot1D name="gyr_x" period="100" enabled="0">
+     <Setup period="100" enabled="0"/>
+    </DataPlot1D>
+    <DataPlot1D name="gyr_y" period="100" enabled="0">
+     <Setup period="100" enabled="0"/>
+    </DataPlot1D>
+    <DataPlot1D name="gyr_z" period="100" enabled="0">
+     <Setup period="100" enabled="0"/>
+    </DataPlot1D>
+    <DataPlot1D name="mag_x" period="100" enabled="0">
+     <Setup period="100" enabled="0"/>
+    </DataPlot1D>
+    <DataPlot1D name="mag_y" period="100" enabled="0">
+     <Setup period="100" enabled="0"/>
+    </DataPlot1D>
+    <DataPlot1D name="mag_z" period="100" enabled="0">
+     <Setup period="100" enabled="0"/>
+    </DataPlot1D>
+   </Tab>
+  </TabWidget>
+ </Tab>
+ <Tab name="battery">
+  <GroupBox name="battery">
+   <Label name="battery"/>
+   <DoubleSpinBox value="10.5" name="threshold"/>
+  </GroupBox>
+ </Tab>
+ <Tab name="vrpn">
+  <TabWidget name="vrpn">
+   <Tab name="Reglages">
+    <GroupBox name="post rotation 1">
+     <DoubleSpinBox value="90" name="value"/>
+     <ComboBox value="1" name="axis"/>
+    </GroupBox>
+    <GroupBox name="post rotation 2">
+     <DoubleSpinBox value="90" name="value"/>
+     <ComboBox value="0" name="axis"/>
+    </GroupBox>
+    <GroupBox name="Drone_0 Passe bas">
+     <DoubleSpinBox value="0" name="period, 0 for auto"/>
+     <DoubleSpinBox value="2" name="cutoff frequency"/>
+    </GroupBox>
+    <GroupBox name="Drone_0_euler">
+     <DoubleSpinBox value="0" name="period, 0 for auto:"/>
+    </GroupBox>
+    <GroupBox name="target Passe bas">
+     <DoubleSpinBox value="0" name="period, 0 for auto"/>
+     <DoubleSpinBox value="2" name="cutoff frequency"/>
+    </GroupBox>
+    <GroupBox name="target_euler">
+     <DoubleSpinBox value="0" name="period, 0 for auto:"/>
+    </GroupBox>
+    <GroupBox name="circle">
+     <DoubleSpinBox value="0" name="period, 0 for auto"/>
+     <DoubleSpinBox value="1" name="R"/>
+     <DoubleSpinBox value="0.5" name="velocity"/>
+     <DoubleSpinBox value="0.1" name="acceleration (absolute)"/>
+    </GroupBox>
+   </Tab>
+   <Tab name="Mesures Drone_0">
+    <DataPlot1D name="x" period="100" enabled="0">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="y" period="100" enabled="0">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="z" period="100" enabled="0">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="vx" period="100" enabled="0">
+     <Setup period="100" enabled="0"/>
+    </DataPlot1D>
+    <DataPlot1D name="vy" period="100" enabled="0">
+     <Setup period="100" enabled="0"/>
+    </DataPlot1D>
+    <DataPlot1D name="vz" period="100" enabled="0">
+     <Setup period="100" enabled="0"/>
+    </DataPlot1D>
+   </Tab>
+   <Tab name="Mesures (xy) Drone_0">
+    <DataPlot2D name="xy" period="100" enabled="0">
+     <Setup period="100" enabled="1"/>
+    </DataPlot2D>
+   </Tab>
+   <Tab name="Mesures target">
+    <DataPlot1D name="x" period="100" enabled="0">
+     <Setup period="100" enabled="0"/>
+    </DataPlot1D>
+    <DataPlot1D name="y" period="100" enabled="0">
+     <Setup period="100" enabled="0"/>
+    </DataPlot1D>
+    <DataPlot1D name="z" period="100" enabled="0">
+     <Setup period="100" enabled="0"/>
+    </DataPlot1D>
+    <DataPlot1D name="vx" period="100" enabled="0">
+     <Setup period="100" enabled="0"/>
+    </DataPlot1D>
+    <DataPlot1D name="vy" period="100" enabled="0">
+     <Setup period="100" enabled="0"/>
+    </DataPlot1D>
+    <DataPlot1D name="vz" period="100" enabled="0">
+     <Setup period="100" enabled="0"/>
+    </DataPlot1D>
+   </Tab>
+   <Tab name="Mesures (xy) target">
+    <DataPlot2D name="xy" period="100" enabled="0">
+     <Setup period="100" enabled="0"/>
+    </DataPlot2D>
+   </Tab>
+  </TabWidget>
+ </Tab>
+ <Tab name="camv">
+  <TabWidget name="camv">
+   <Tab name="Setup">
+    <GroupBox name="camv">
+     <DoubleSpinBox value="0" name="gain:"/>
+     <DoubleSpinBox value="0" name="exposure:"/>
+     <DoubleSpinBox value="0" name="bright:"/>
+     <DoubleSpinBox value="0" name="contrast:"/>
+     <DoubleSpinBox value="0" name="hue:"/>
+     <DoubleSpinBox value="0" name="sharpness:"/>
+     <DoubleSpinBox value="0" name="saturation:"/>
+     <CheckBox value="1" name="autogain:"/>
+     <CheckBox value="1" name="autoexposure:"/>
+     <CheckBox value="1" name="awb:"/>
+    <Label name="fps"/></GroupBox>
+    <GridLayout name="setup"/>
+   </Tab>
+  </TabWidget>
+ </Tab>
+ <Tab name="uav">
+  <GridLayout name="buttons">
+   <PushButton value="0" name="kill"/>
+   <PushButton value="1" name="start_log"/>
+   <PushButton value="0" name="stop_log"/>
+   <PushButton value="0" name="take_off"/>
+   <PushButton value="0" name="landing"/>
+   <PushButton value="0" name="start_circle"/>
+   <PushButton value="0" name="stop_circle"/>
+  <PushButton name="land"/></GridLayout>
+ <GroupBox name="takeoff/landing"><DoubleSpinBox name="desired takeoff altitude" value="1"/><DoubleSpinBox name="desired landing altitude" value="0"/></GroupBox><GroupBox name="alt cons"><DoubleSpinBox name="period, 0 for auto:" value="0"/><DoubleSpinBox name="velocity max (absolute):" value="1"/><DoubleSpinBox name="acceleration (absolute):" value="0.8"/></GroupBox></Tab>
+ <Tab name="control laws">
+  <TabWidget name="laws">
+   <Tab name="Setup">
+    <GroupBox name="u_roll">
+     <DoubleSpinBox value="20" name="sat ref:"/>
+     <DoubleSpinBox value="12" name="kp:"/>
+     <DoubleSpinBox value="1000" name="sat dref:"/>
+     <DoubleSpinBox value="0.2" name="kd:"/>
+     <DoubleSpinBox value="0.4" name="sat u:"/>
+    </GroupBox>
+    <GroupBox name="u_pitch">
+     <DoubleSpinBox value="20" name="sat ref:"/>
+     <DoubleSpinBox value="12" name="kp:"/>
+     <DoubleSpinBox value="1000" name="sat dref:"/>
+     <DoubleSpinBox value="0.2" name="kd:"/>
+     <DoubleSpinBox value="0.4" name="sat u:"/>
+    </GroupBox>
+    <GroupBox name="u_yaw">
+     <DoubleSpinBox value="0" name="period, 0 for auto"/>
+     <DoubleSpinBox value="0.6" name="kp:"/>
+     <DoubleSpinBox value="0.1" name="ki:"/>
+     <DoubleSpinBox value="0.2" name="sat i:"/>
+     <DoubleSpinBox value="0.2" name="kd:"/>
+     <DoubleSpinBox value="0.5" name="sat:"/>
+    </GroupBox>
+    <GroupBox name="u_x">
+     <DoubleSpinBox value="0" name="period, 0 for auto"/>
+     <DoubleSpinBox value="0.4" name="kp:"/>
+     <DoubleSpinBox value="0.4" name="ki:"/>
+     <DoubleSpinBox value="0" name="sat i:"/>
+     <DoubleSpinBox value="0.2" name="kd:"/>
+     <DoubleSpinBox value="0.4" name="sat:"/>
+    </GroupBox>
+    <GroupBox name="u_y">
+     <DoubleSpinBox value="0" name="period, 0 for auto"/>
+     <DoubleSpinBox value="0.4" name="kp:"/>
+     <DoubleSpinBox value="0.1" name="ki:"/>
+     <DoubleSpinBox value="0" name="sat i:"/>
+     <DoubleSpinBox value="0.2" name="kd:"/>
+     <DoubleSpinBox value="0.4" name="sat:"/>
+    </GroupBox>
+    <GroupBox name="u_z">
+     <DoubleSpinBox value="0" name="period, 0 for auto"/>
+     <DoubleSpinBox value="0.6" name="kp:"/>
+     <DoubleSpinBox value="0.2" name="ki:"/>
+     <DoubleSpinBox value="0.4" name="sat i:"/>
+     <DoubleSpinBox value="0.4" name="kd:"/>
+     <DoubleSpinBox value="0.6" name="offset g:"/>
+     <DoubleSpinBox value="1" name="sat:"/>
+     <DoubleSpinBox value="0.0002" name="offset step:"/>
+    </GroupBox>
+   </Tab>
+   <Tab name="Graphes">
+    <DataPlot1D name="u_roll" period="100" enabled="0">
+     <Setup period="100" enabled="0"/>
+    </DataPlot1D>
+    <DataPlot1D name="u_pitch" period="100" enabled="0">
+     <Setup period="100" enabled="0"/>
+    </DataPlot1D>
+    <DataPlot1D name="u_yaw" period="100" enabled="0">
+     <Setup period="100" enabled="0"/>
+    </DataPlot1D>
+    <DataPlot1D name="u_x" period="100" enabled="0">
+     <Setup period="100" enabled="0"/>
+    </DataPlot1D>
+    <DataPlot1D name="u_y" period="100" enabled="0">
+     <Setup period="100" enabled="0"/>
+    </DataPlot1D>
+    <DataPlot1D name="u_z" period="100" enabled="0">
+     <Setup period="100" enabled="0"/>
+    </DataPlot1D>
+   </Tab>
+  </TabWidget>
+ </Tab>
+ <Tab name="Dualshock3">
+  <TabWidget name="Dualshock3">
+   <Tab name="Reglages">
+    <GroupBox name="consignes joy">
+     <DoubleSpinBox value="-15" name="debattement roll"/>
+     <DoubleSpinBox value="-15" name="debattement pitch"/>
+     <DoubleSpinBox value="90" name="debattement wz"/>
+     <DoubleSpinBox value="-0.5" name="debattement dz"/>
+     <DoubleSpinBox value="0.02" name="trim"/>
+     <Label name="trim roll"/>
+     <PushButton value="0" name="reset roll trim"/>
+     <Label name="trim pitch"/>
+     <PushButton value="0" name="reset pitch trim"/>
+    </GroupBox>
+   </Tab>
+  </TabWidget>
+ </Tab>
+<Tab name="predictor"><DataPlot1D name="u_pitch" period="100" enabled="1"/></Tab></TabWidget>
+<TabWidget name="App_TabWidget"><Tab name="Drone_0"><PushButton name="save config on target" value="1"/></Tab></TabWidget></root>
Index: trunk/demos/MixedReality/virtual/uav/build_armv7a_neon/bin/MixedReality_bebop.sh
===================================================================
--- trunk/demos/MixedReality/virtual/uav/build_armv7a_neon/bin/MixedReality_bebop.sh	(revision 293)
+++ trunk/demos/MixedReality/virtual/uav/build_armv7a_neon/bin/MixedReality_bebop.sh	(revision 293)
@@ -0,0 +1,1 @@
+./CircleFollower_nrt -a 192.168.42.24 -p 9000 -l /tmp -x CircleFollower_bebop.xml -n Drone_0 -t bebop
Index: trunk/demos/MixedReality/virtual/uav/build_armv7a_neon/bin/MixedReality_bebop.xml
===================================================================
--- trunk/demos/MixedReality/virtual/uav/build_armv7a_neon/bin/MixedReality_bebop.xml	(revision 293)
+++ trunk/demos/MixedReality/virtual/uav/build_armv7a_neon/bin/MixedReality_bebop.xml	(revision 293)
@@ -0,0 +1,268 @@
+<?xml version="1.0"?>
+<root name="FrameworkManager">
+  <TabWidget name="Main_TabWidget">
+    <Tab name="x4-multiplex">
+      <TabWidget name="UavMultiplex">
+        <Tab name="Setup">
+          <GroupBox name="x4 multiplex">
+            <ComboBox name="front left blade pitch:" value="0"/>
+          </GroupBox>
+          <GroupBox name="motor attribution">
+            <ComboBox name="front left" value="0"/>
+            <ComboBox name="front rigth" value="1"/>
+            <ComboBox name="rear left" value="3"/>
+            <ComboBox name="rear rigth" value="2"/>
+          </GroupBox>
+          <GroupBox name="bldc">
+            <Label name="flight time"/>
+            <DoubleSpinBox name="min value:" value="0"/>
+            <DoubleSpinBox name="max value:" value="1"/>
+            <DoubleSpinBox name="test value:" value="0.4"/>
+            <PushButton name="test motor 0"/>
+            <PushButton name="test motor 1"/>
+            <PushButton name="test motor 2"/>
+            <PushButton name="test motor 3"/>
+          </GroupBox>
+          <GroupBox name="battery">
+            <Label name="battery"/>
+            <DoubleSpinBox name="threshold" value="10.5"/>
+            <SpinBox name="threshold time" value="10"/>
+          </GroupBox>
+        </Tab>
+        <Tab name="Values">
+          <DataPlot1D name="front left" period="100" enabled="0"/>
+          <DataPlot1D name="front right" period="100" enabled="0"/>
+          <DataPlot1D name="rear left" period="100" enabled="0"/>
+          <DataPlot1D name="rear right" period="100" enabled="0"/>
+        </Tab>
+        <Tab name="Speeds">
+          <DataPlot1D name="front left" period="100" enabled="0"/>
+          <DataPlot1D name="front right" period="100" enabled="0"/>
+          <DataPlot1D name="rear left" period="100" enabled="0"/>
+          <DataPlot1D name="rear right" period="100" enabled="0"/>
+        </Tab>
+      </TabWidget>
+    </Tab>
+    <Tab name="bebop-us">
+      <TabWidget name="bebop-us">
+        <Tab name="Reglages">
+          <GroupBox name="bebop-us"/>
+          <GroupBox name="Passe bas">
+            <DoubleSpinBox name="period, 0 for auto" value="0"/>
+            <DoubleSpinBox name="cutoff frequency" value="5"/>
+          </GroupBox>
+          <GroupBox name="Vz">
+            <DoubleSpinBox name="period, 0 for auto:" value="0"/>
+          </GroupBox>
+          <GroupBox name="Passe bas v">
+            <DoubleSpinBox name="period, 0 for auto" value="0"/>
+            <DoubleSpinBox name="cutoff frequency" value="5"/>
+          </GroupBox>
+        </Tab>
+        <Tab name="Mesures">
+          <DataPlot1D name="bebop-us" period="100" enabled="1"/>
+          <DataPlot1D name="vz" period="100" enabled="0"/>
+        </Tab>
+      </TabWidget>
+    </Tab>
+    <Tab name="bebop-imu">
+      <TabWidget name="bebop-imu">
+        <Tab name="Reglages">
+          <GroupBox name="bebop-imu"/>
+          <GroupBox name="post rotation">
+            <DoubleSpinBox name="value" value="180"/>
+            <ComboBox name="axis" value="0"/>
+          </GroupBox>
+          <DoubleSpinBox name="ka[0]:" value="0.5"/>
+          <DoubleSpinBox name="ka[1]:" value="0.5"/>
+          <DoubleSpinBox name="ka[2]:" value="0"/>
+          <DoubleSpinBox name="kb[0]:" value="0.01"/>
+          <DoubleSpinBox name="kb[1]:" value="0.01"/>
+          <DoubleSpinBox name="kb[2]:" value="0.01"/>
+        </Tab>
+        <Tab name="AHRS">
+          <DataPlot1D name="roll" period="100" enabled="1"/>
+          <DataPlot1D name="pitch" period="100" enabled="0"/>
+          <DataPlot1D name="yaw" period="100" enabled="0"/>
+          <DataPlot1D name="w_x" period="100" enabled="1"/>
+          <DataPlot1D name="w_y" period="100" enabled="0"/>
+          <DataPlot1D name="w_z" period="100" enabled="0"/>
+        </Tab>
+        <Tab name="Quaternion">
+          <DataPlot1D name="q0" period="100" enabled="0"/>
+          <DataPlot1D name="q1" period="100" enabled="0"/>
+          <DataPlot1D name="q2" period="100" enabled="0"/>
+          <DataPlot1D name="q3" period="100" enabled="0"/>
+        </Tab>
+        <Tab name="IMU">
+          <DataPlot1D name="acc_x" period="100" enabled="0"/>
+          <DataPlot1D name="acc_y" period="100" enabled="0"/>
+          <DataPlot1D name="acc_z" period="100" enabled="0"/>
+          <DataPlot1D name="gyr_x" period="100" enabled="0"/>
+          <DataPlot1D name="gyr_y" period="100" enabled="0"/>
+          <DataPlot1D name="gyr_z" period="100" enabled="0"/>
+          <DataPlot1D name="mag_x" period="100" enabled="0"/>
+          <DataPlot1D name="mag_y" period="100" enabled="0"/>
+          <DataPlot1D name="mag_z" period="100" enabled="0"/>
+        </Tab>
+      </TabWidget>
+    </Tab>
+    <Tab name="Dualshock3">
+      <TabWidget name="Dualshock3">
+        <Tab name="Reglages">
+          <GroupBox name="consignes joy">
+            <DoubleSpinBox name="debattement roll" value="-15"/>
+            <DoubleSpinBox name="debattement pitch" value="-15"/>
+            <DoubleSpinBox name="debattement wz" value="90"/>
+            <DoubleSpinBox name="debattement dz" value="-0.5"/>
+            <DoubleSpinBox name="trim" value="0.01"/>
+            <Label name="trim roll"/>
+            <PushButton name="reset roll trim"/>
+            <Label name="trim pitch"/>
+            <PushButton name="reset pitch trim"/>
+          </GroupBox>
+        </Tab>
+      </TabWidget>
+    </Tab>
+    <Tab name="uav">
+      <GridLayout name="buttons">
+        <PushButton name="kill"/>
+        <PushButton name="start_log"/>
+        <PushButton name="stop_log"/>
+        <PushButton name="take_off"/>
+        <PushButton name="land"/>
+        <PushButton name="start_circle"/>
+        <PushButton name="stop_circle"/>
+        <PushButton name="position hold"/>
+      </GridLayout>
+      <GroupBox name="takeoff/landing">
+        <DoubleSpinBox name="desired takeoff altitude" value="0.5"/>
+        <DoubleSpinBox name="desired landing altitude" value="0"/>
+      </GroupBox>
+      <GroupBox name="alt cons">
+        <DoubleSpinBox name="period, 0 for auto:" value="0"/>
+        <DoubleSpinBox name="velocity max (absolute):" value="1"/>
+        <DoubleSpinBox name="acceleration (absolute):" value="1"/>
+      </GroupBox>
+    </Tab>
+    <Tab name="control laws">
+      <TabWidget name="laws">
+        <Tab name="Setup">
+          <GroupBox name="u_roll">
+            <DoubleSpinBox name="sat ref:" value="20"/>
+            <DoubleSpinBox name="kp:" value="15.00"/>
+            <DoubleSpinBox name="sat dref:" value="1000"/>
+            <DoubleSpinBox name="kd:" value="0.04"/>
+            <DoubleSpinBox name="sat u:" value="0.5"/>
+          </GroupBox>
+          <GroupBox name="u_pitch">
+            <DoubleSpinBox name="sat ref:" value="20"/>
+            <DoubleSpinBox name="kp:" value="15"/>
+            <DoubleSpinBox name="sat dref:" value="1000"/>
+            <DoubleSpinBox name="kd:" value="0.05"/>
+            <DoubleSpinBox name="sat u:" value="0.5"/>
+          </GroupBox>
+          <GroupBox name="u_yaw">
+            <DoubleSpinBox name="period, 0 for auto" value="0"/>
+            <DoubleSpinBox name="kp:" value="0.6"/>
+            <DoubleSpinBox name="ki:" value="0"/>
+            <DoubleSpinBox name="sat i:" value="0"/>
+            <DoubleSpinBox name="kd:" value="0.15"/>
+            <DoubleSpinBox name="sat:" value="0.5"/>
+          </GroupBox>
+          <GroupBox name="u_z">
+            <DoubleSpinBox name="period, 0 for auto" value="0"/>
+            <DoubleSpinBox name="kp:" value="0.3"/>
+            <DoubleSpinBox name="ki:" value="0.2"/>
+            <DoubleSpinBox name="sat i:" value="0.4"/>
+            <DoubleSpinBox name="kd:" value="0.15"/>
+            <DoubleSpinBox name="offset g:" value="0.37"/>
+            <DoubleSpinBox name="sat:" value="1"/>
+            <DoubleSpinBox name="offset step:" value="0.0002"/>
+          </GroupBox>
+          <GroupBox name="u_x">
+            <DoubleSpinBox name="period, 0 for auto" value="0"/>
+            <DoubleSpinBox name="kp:" value="0"/>
+            <DoubleSpinBox name="ki:" value="0"/>
+            <DoubleSpinBox name="sat i:" value="0"/>
+            <DoubleSpinBox name="kd:" value="0"/>
+            <DoubleSpinBox name="sat:" value="0"/>
+          </GroupBox>
+          <GroupBox name="u_y">
+            <DoubleSpinBox name="period, 0 for auto" value="0"/>
+            <DoubleSpinBox name="kp:" value="0"/>
+            <DoubleSpinBox name="ki:" value="0"/>
+            <DoubleSpinBox name="sat i:" value="0"/>
+            <DoubleSpinBox name="kd:" value="0"/>
+            <DoubleSpinBox name="sat:" value="0"/>
+          </GroupBox>
+        </Tab>
+        <Tab name="Graphes">
+          <DataPlot1D name="u_roll" period="100" enabled="0"/>
+          <DataPlot1D name="u_pitch" period="100" enabled="0"/>
+          <DataPlot1D name="u_yaw" period="100" enabled="0"/>
+          <DataPlot1D name="u_z" period="100" enabled="0"/>
+          <DataPlot1D name="u_x" period="100" enabled="0"/>
+          <DataPlot1D name="u_y" period="100" enabled="0"/>
+        </Tab>
+      </TabWidget>
+    </Tab>
+    <Tab name="vrpn">
+      <TabWidget name="vrpn">
+        <Tab name="Reglages">
+          <GroupBox name="post rotation 1">
+            <DoubleSpinBox name="value" value="0"/>
+            <ComboBox name="axis" value="0"/>
+          </GroupBox>
+          <GroupBox name="post rotation 2">
+            <DoubleSpinBox name="value" value="0"/>
+            <ComboBox name="axis" value="0"/>
+          </GroupBox>
+          <GroupBox name="Drone_0 Passe bas">
+            <DoubleSpinBox name="period, 0 for auto" value="0"/>
+            <DoubleSpinBox name="cutoff frequency" value="1"/>
+          </GroupBox>
+          <GroupBox name="Drone_0_euler">
+            <DoubleSpinBox name="period, 0 for auto:" value="0"/>
+          </GroupBox>
+          <GroupBox name="target Passe bas">
+            <DoubleSpinBox name="period, 0 for auto" value="0"/>
+            <DoubleSpinBox name="cutoff frequency" value="1"/>
+          </GroupBox>
+          <GroupBox name="target_euler">
+            <DoubleSpinBox name="period, 0 for auto:" value="0"/>
+          </GroupBox>
+          <GroupBox name="circle">
+            <DoubleSpinBox name="period, 0 for auto" value="0"/>
+            <DoubleSpinBox name="R" value="0"/>
+            <DoubleSpinBox name="velocity" value="0"/>
+            <DoubleSpinBox name="acceleration (absolute)" value="0"/>
+          </GroupBox>
+        </Tab>
+        <Tab name="Mesures Drone_0">
+          <DataPlot1D name="x" period="100" enabled="0"/>
+          <DataPlot1D name="y" period="100" enabled="0"/>
+          <DataPlot1D name="z" period="100" enabled="0"/>
+          <DataPlot1D name="vx" period="100" enabled="0"/>
+          <DataPlot1D name="vy" period="100" enabled="0"/>
+          <DataPlot1D name="vz" period="100" enabled="0"/>
+        </Tab>
+        <Tab name="Mesures (xy) Drone_0">
+          <DataPlot2D name="xy" period="100" enabled="0"/>
+        </Tab>
+        <Tab name="Mesures target">
+          <DataPlot1D name="x" period="100" enabled="0"/>
+          <DataPlot1D name="y" period="100" enabled="0"/>
+          <DataPlot1D name="z" period="100" enabled="0"/>
+          <DataPlot1D name="vx" period="100" enabled="0"/>
+          <DataPlot1D name="vy" period="100" enabled="0"/>
+          <DataPlot1D name="vz" period="100" enabled="0"/>
+        </Tab>
+        <Tab name="Mesures (xy) target">
+          <DataPlot2D name="xy" period="100" enabled="0"/>
+        </Tab>
+      </TabWidget>
+    </Tab>
+  </TabWidget>
+  <PushButton name="save config on target (Drone_0)" value="1"/>
+</root>
Index: trunk/demos/MixedReality/virtual/uav/build_armv7a_neon/bin/MixedReality_hdsx8.sh
===================================================================
--- trunk/demos/MixedReality/virtual/uav/build_armv7a_neon/bin/MixedReality_hdsx8.sh	(revision 293)
+++ trunk/demos/MixedReality/virtual/uav/build_armv7a_neon/bin/MixedReality_hdsx8.sh	(revision 293)
@@ -0,0 +1,1 @@
+./CircleFollower_rt -a 192.168.147.217 -p 9000 -l /tmp -x CircleFollower_hdsx8.xml -n x8_0 -t hds_x8
Index: trunk/demos/MixedReality/virtual/uav/build_armv7a_neon/bin/MixedReality_hdsx8.xml
===================================================================
--- trunk/demos/MixedReality/virtual/uav/build_armv7a_neon/bin/MixedReality_hdsx8.xml	(revision 293)
+++ trunk/demos/MixedReality/virtual/uav/build_armv7a_neon/bin/MixedReality_hdsx8.xml	(revision 293)
@@ -0,0 +1,478 @@
+<?xml version="1.0"?>
+<!DOCTYPE remote_ui_xml>
+<root name="interface">
+<TabWidget name="Main_TabWidget">
+ <Tab name="dualshock3">
+  <TabWidget name="dualshock3">
+   <Tab name="Reglages">
+    <GroupBox name="dualshock3">
+     <SpinBox value="10" name="dead zone:"/>
+     <Label name="batterie"/>
+    </GroupBox>
+    <GroupBox name="consignes joy">
+     <DoubleSpinBox value="-10" name="debattement roll"/>
+     <DoubleSpinBox value="-10" name="debattement pitch"/>
+     <DoubleSpinBox value="40" name="debattement dyaw"/>
+     <DoubleSpinBox value="-0.5" name="debattement dz"/>
+     <DoubleSpinBox value="0.01" name="trim"/>
+     <Label name="trim roll"/>
+     <PushButton value="0" name="reset roll trim"/>
+     <Label name="trim pitch"/>
+     <PushButton value="0" name="reset pitch trim"/>
+    </GroupBox>
+   <GroupBox name="consignes fo"><DoubleSpinBox name="debattement x" value="-3"/><DoubleSpinBox name="debattement y" value="3"/></GroupBox></Tab>
+   <Tab name="Mesures">
+    <DataPlot1D name="roll">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="pitch">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="yaw">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="gaz">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+   </Tab>
+  </TabWidget>
+ </Tab>
+ <Tab name="uav">
+  <PushButton value="0" name="kill"/>
+  <PushButton value="0" name="start_log"/>
+  <PushButton value="0" name="stop_log"/>
+  <PushButton value="0" name="take_off"/>
+  <PushButton value="0" name="landing"/>
+  <PushButton value="0" name="start_cercle"/>
+  <PushButton value="0" name="stop_cercle"/>
+  <PushButton value="0" name="start_2D"/>
+  <PushButton value="0" name="stop_2D"/>
+  <PushButton value="0" name="Test0"/>
+  <PushButton value="0" name="Test1"/>
+  <PushButton value="0" name="Test11"/>
+  <PushButton value="0" name="Test2"/>
+  <PushButton value="0" name="Test3"/>
+  <PushButton value="0" name="Test4"/>
+  <PushButton value="0" name="Test5"/>
+  <PushButton value="0" name="f1"/>
+  <PushButton value="0" name="f2"/>
+  <PushButton value="0" name="f3"/>
+  <PushButton value="0" name="f4"/>
+  <PushButton value="0" name="f5"/>
+  <PushButton value="0" name="f6"/>
+  <PushButton value="0" name="f7"/>
+  <PushButton value="0" name="f8"/>
+  <PushButton value="0" name="Start_Obs"/>
+ <GridLayout name="buttons"><PushButton name="kill"/><PushButton name="start_log"/><PushButton name="stop_log"/><PushButton name="take_off"/><PushButton name="land"/><PushButton name="f1"/><PushButton name="f2"/><PushButton name="f3"/><PushButton name="f4"/><PushButton name="Reset"/><PushButton name="Start_Obs"/><PushButton name="Optical_flow"/><PushButton name="start_circle"/><PushButton name="stop_circle"/><PushButton name="position hold"/></GridLayout><GroupBox name="takeoff/landing"><DoubleSpinBox name="desired takeoff altitude" value="1"/><DoubleSpinBox name="desired landing altitude" value="0"/></GroupBox><GroupBox name="alt cons"><DoubleSpinBox name="period, 0 for auto:" value="0"/><DoubleSpinBox name="velocity max (absolute):" value="0.3"/><DoubleSpinBox name="acceleration (absolute):" value="0.2"/></GroupBox></Tab>
+ <Tab name="multi">
+  <TabWidget name="UavMultiplex">
+   <Tab name="Setup">
+    <GroupBox name="fault">
+     <DoubleSpinBox value="0.72" name="Coef:"/>
+     <DoubleSpinBox value="0.0025" name="coefficientKf:"/>
+    </GroupBox>
+    <GroupBox name="x8 multiplex">
+     <ComboBox value="1" name="top front left blade pitch:"/>
+    </GroupBox>
+    <GroupBox name="motor attribution">
+     <ComboBox value="0" name="top front left"/>
+     <ComboBox value="7" name="top front rigth"/>
+     <ComboBox value="4" name="top rear left"/>
+     <ComboBox value="1" name="top rear rigth"/>
+     <ComboBox value="3" name="bottom front left"/>
+     <ComboBox value="5" name="bottom front rigth"/>
+     <ComboBox value="6" name="bottom rear left"/>
+     <ComboBox value="2" name="bottom rear rigth"/>
+    </GroupBox>
+    <GroupBox name="bldc">
+     <Label name="flight time"/>
+     <DoubleSpinBox value="0.2" name="min value:"/>
+     <DoubleSpinBox value="1" name="max value:"/>
+     <DoubleSpinBox value="0.1" name="test value:"/>
+     <PushButton value="1" name="test motor 0"/>
+     <PushButton value="1" name="test motor 1"/>
+     <PushButton value="1" name="test motor 2"/>
+     <PushButton value="1" name="test motor 3"/>
+     <PushButton value="1" name="test motor 4"/>
+     <PushButton value="1" name="test motor 5"/>
+     <PushButton value="1" name="test motor 6"/>
+     <PushButton value="1" name="test motor 7"/>
+    </GroupBox>
+    <GroupBox name="battery">
+     <Label name="battery"/>
+     <DoubleSpinBox value="10" name="threshold"/>
+    </GroupBox>
+    <GroupBox name="Motors">
+     <SpinBox value="14" name="nb poles:"/>
+    </GroupBox>
+    <GroupBox name="startup">
+     <DoubleSpinBox value="0" name="prc_fault:"/>
+     <DoubleSpinBox value="0" name="prc_retab:"/>
+    </GroupBox>
+   </Tab>
+   <Tab name="Values">
+    <DataPlot1D name="top front left" period="100" enabled="0">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="top front right" period="100" enabled="0">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="top rear left" period="100" enabled="0">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="top rear right" period="100" enabled="0">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="bottom front left" period="100" enabled="0">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="bottom front right" period="100" enabled="0">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="bottom rear left" period="100" enabled="0">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="bottom rear right" period="100" enabled="0">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+   </Tab>
+   <Tab name="Speeds">
+    <DataPlot1D name="front left" period="100" enabled="0">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="front right" period="100" enabled="0">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="rear left" period="100" enabled="0">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="rear right" period="100" enabled="0">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+   </Tab>
+  </TabWidget>
+ </Tab>
+ <Tab name="SRF08">
+  <TabWidget name="SRF08">
+   <Tab name="Reglages">
+    <GroupBox name="SRF08">
+     <SpinBox value="8" name="gain:"/>
+     <SpinBox value="46" name="range:"/>
+    </GroupBox>
+    <GroupBox name="Passe bas">
+     <DoubleSpinBox value="0" name="period, 0 for auto"/>
+     <DoubleSpinBox value="5" name="cutoff frequency"/>
+    </GroupBox>
+    <GroupBox name="Vz">
+     <DoubleSpinBox value="0" name="period, 0 for auto:"/>
+    </GroupBox>
+    <GroupBox name="Passe bas v">
+     <DoubleSpinBox value="0" name="period, 0 for auto"/>
+     <DoubleSpinBox value="5" name="cutoff frequency"/>
+    </GroupBox>
+    <GroupBox name="alt cons">
+     <DoubleSpinBox value="0" name="period, 0 for auto:"/>
+     <DoubleSpinBox value="0.3" name="velocity max (absolute):"/>
+     <DoubleSpinBox value="0.2" name="acceleration (absolute):"/>
+    </GroupBox>
+    <GroupBox name="decollage">
+     <DoubleSpinBox value="0.7" name="alt decollage"/>
+     <DoubleSpinBox value="0" name="alt atterissage"/>
+    </GroupBox>
+   </Tab>
+   <Tab name="Mesures">
+    <DataPlot1D name="SRF08" period="100" enabled="0">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="vz" period="100" enabled="0">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+   </Tab>
+  </TabWidget>
+ </Tab>
+ <Tab name="imu">
+  <TabWidget name="imu">
+   <Tab name="Reglages">
+    <GroupBox name="imu">
+     <PushButton value="0" name="gyros bias"/>
+     <SpinBox value="100" name="data rate (Hz):"/>
+     <Label name="data_rate"/>
+     <SpinBox value="15" name="gyro and acc filter win size:"/>
+     <SpinBox value="17" name="mag filter win size:"/>
+     <SpinBox value="10" name="up compensation (s):"/>
+     <SpinBox value="10" name="north compensation (s):"/>
+     <CheckBox value="1" name="enable Coning&amp;Sculling:"/>
+     <CheckBox value="1" name="disable magnetometer:"/>
+     <CheckBox value="1" name="disable magnetic north compensation:"/>
+     <CheckBox value="1" name="disable gravity compensation:"/>
+    </GroupBox>
+    <GroupBox name="post rotation">
+     <DoubleSpinBox value="180" name="value"/>
+     <ComboBox value="2" name="axis"/>
+    </GroupBox>
+   </Tab>
+   <Tab name="AHRS">
+    <DataPlot1D name="roll" period="100" enabled="1">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="pitch" period="100" enabled="1">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="yaw" period="100" enabled="1">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="w_x" period="100" enabled="0">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="w_y" period="100" enabled="0">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="w_z" period="100" enabled="0">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+   </Tab>
+  <Tab name="Quaternion"><DataPlot1D name="q0" period="100" enabled="0"/><DataPlot1D name="q1" period="100" enabled="0"/><DataPlot1D name="q2" period="100" enabled="0"/><DataPlot1D name="q3" period="100" enabled="0"/></Tab><Tab name="IMU"><DataPlot1D name="acc_x" period="100" enabled="0"/><DataPlot1D name="acc_y" period="100" enabled="0"/><DataPlot1D name="acc_z" period="100" enabled="0"/><DataPlot1D name="gyr_x" period="100" enabled="0"/><DataPlot1D name="gyr_y" period="100" enabled="0"/><DataPlot1D name="gyr_z" period="100" enabled="0"/><DataPlot1D name="mag_x" period="100" enabled="0"/><DataPlot1D name="mag_y" period="100" enabled="0"/><DataPlot1D name="mag_z" period="100" enabled="0"/></Tab></TabWidget>
+ </Tab>
+ <Tab name="control laws">
+  <TabWidget name="laws">
+   <Tab name="Setup">
+    <GroupBox name="u_roll">
+     <DoubleSpinBox value="10" name="sat ref:"/>
+     <DoubleSpinBox value="10" name="satf ref:"/>
+     <DoubleSpinBox value="10" name="sat2f ref:"/>
+     <DoubleSpinBox value="7" name="kp:"/>
+     <DoubleSpinBox value="7" name="kpf:"/>
+     <DoubleSpinBox value="10" name="kp2f:"/>
+     <DoubleSpinBox value="100" name="sat dref:"/>
+     <DoubleSpinBox value="110" name="satf dref:"/>
+     <DoubleSpinBox value="140" name="sat2f dref:"/>
+     <DoubleSpinBox value="0.12" name="kd:"/>
+     <DoubleSpinBox value="0.12" name="kdf:"/>
+     <DoubleSpinBox value="0.13" name="kd2f:"/>
+     <DoubleSpinBox value="0.4" name="sat u:"/>
+     <DoubleSpinBox value="0.4" name="satf u:"/>
+     <DoubleSpinBox value="0.6" name="sat2f u:"/>
+    </GroupBox>
+    <GroupBox name="u_pitch">
+     <DoubleSpinBox value="10" name="sat ref:"/>
+     <DoubleSpinBox value="10" name="satf ref:"/>
+     <DoubleSpinBox value="10" name="sat2f ref:"/>
+     <DoubleSpinBox value="7" name="kp:"/>
+     <DoubleSpinBox value="7" name="kpf:"/>
+     <DoubleSpinBox value="10" name="kp2f:"/>
+     <DoubleSpinBox value="100" name="sat dref:"/>
+     <DoubleSpinBox value="110" name="satf dref:"/>
+     <DoubleSpinBox value="140" name="sat2f dref:"/>
+     <DoubleSpinBox value="0.12" name="kd:"/>
+     <DoubleSpinBox value="0.12" name="kdf:"/>
+     <DoubleSpinBox value="0.13" name="kd2f:"/>
+     <DoubleSpinBox value="0.4" name="sat u:"/>
+     <DoubleSpinBox value="0.4" name="satf u:"/>
+     <DoubleSpinBox value="0.6" name="sat2f u:"/>
+    </GroupBox>
+    <GroupBox name="u_yaw">
+     <DoubleSpinBox value="0" name="period, 0 for auto"/>
+     <DoubleSpinBox value="1" name="kp:"/>
+     <DoubleSpinBox value="1.5" name="kpf:"/>
+     <DoubleSpinBox value="2" name="kp2f:"/>
+     <DoubleSpinBox value="0.2" name="ki:"/>
+     <DoubleSpinBox value="0.35" name="kif:"/>
+     <DoubleSpinBox value="0.5" name="ki2f:"/>
+     <DoubleSpinBox value="0.2" name="sat i:"/>
+     <DoubleSpinBox value="0.3" name="satf i:"/>
+     <DoubleSpinBox value="0.4" name="sat2f i:"/>
+     <DoubleSpinBox value="0.1" name="kd:"/>
+     <DoubleSpinBox value="0.2" name="kdf:"/>
+     <DoubleSpinBox value="0.3" name="kd2f:"/>
+     <DoubleSpinBox value="1" name="sat:"/>
+    </GroupBox>
+    <GroupBox name="x_pid">
+     <DoubleSpinBox value="0" name="period, 0 for auto"/>
+     <DoubleSpinBox value="0.01" name="kp:"/>
+     <DoubleSpinBox value="0.015" name="kpf:"/>
+     <DoubleSpinBox value="0.01" name="kp2f:"/>
+     <DoubleSpinBox value="0.03" name="ki:"/>
+     <DoubleSpinBox value="0.035" name="kif:"/>
+     <DoubleSpinBox value="0.02" name="ki2f:"/>
+     <DoubleSpinBox value="0.3" name="sat i:"/>
+     <DoubleSpinBox value="0.3" name="satf i:"/>
+     <DoubleSpinBox value="0.3" name="sat2f i:"/>
+     <DoubleSpinBox value="0" name="kd:"/>
+     <DoubleSpinBox value="0" name="kdf:"/>
+     <DoubleSpinBox value="0" name="kd2f:"/>
+     <DoubleSpinBox value="0.5" name="sat:"/>
+    </GroupBox>
+    <GroupBox name="y_pid">
+     <DoubleSpinBox value="0" name="period, 0 for auto"/>
+     <DoubleSpinBox value="0.01" name="kp:"/>
+     <DoubleSpinBox value="0.015" name="kpf:"/>
+     <DoubleSpinBox value="0.01" name="kp2f:"/>
+     <DoubleSpinBox value="0.03" name="ki:"/>
+     <DoubleSpinBox value="0.035" name="kif:"/>
+     <DoubleSpinBox value="0.02" name="ki2f:"/>
+     <DoubleSpinBox value="0.3" name="sat i:"/>
+     <DoubleSpinBox value="0.3" name="satf i:"/>
+     <DoubleSpinBox value="0.3" name="sat2f i:"/>
+     <DoubleSpinBox value="0" name="kd:"/>
+     <DoubleSpinBox value="0" name="kdf:"/>
+     <DoubleSpinBox value="0" name="kd2f:"/>
+     <DoubleSpinBox value="0.5" name="sat:"/>
+    </GroupBox>
+    <GroupBox name="u_z">
+     <DoubleSpinBox value="0" name="period, 0 for auto"/>
+     <DoubleSpinBox value="0.3" name="kp:"/>
+     <DoubleSpinBox value="0.4" name="kpf:"/>
+     <DoubleSpinBox value="0.5" name="kp2f:"/>
+     <DoubleSpinBox value="0.2" name="ki:"/>
+     <DoubleSpinBox value="0.4" name="kif:"/>
+     <DoubleSpinBox value="0.4" name="ki2f:"/>
+     <DoubleSpinBox value="0.5" name="sat i:"/>
+     <DoubleSpinBox value="0.8" name="satf i:"/>
+     <DoubleSpinBox value="0.8" name="sat2f i:"/>
+     <DoubleSpinBox value="0.1" name="kd:"/>
+     <DoubleSpinBox value="0.3" name="kdf:"/>
+     <DoubleSpinBox value="0.3" name="kd2f:"/>
+     <DoubleSpinBox value="0.4" name="offset g:"/>
+     <DoubleSpinBox value="1" name="sat:"/>
+     <DoubleSpinBox value="0.0001" name="offset step:"/>
+    </GroupBox>
+   <GroupBox name="u_x"><DoubleSpinBox name="period, 0 for auto" value="0"/><DoubleSpinBox name="kp:" value="0.40"/><DoubleSpinBox name="ki:" value="0.40"/><DoubleSpinBox name="sat i:" value="0.0"/><DoubleSpinBox name="kd:" value="0.200"/><DoubleSpinBox name="sat:" value="0.4"/></GroupBox><GroupBox name="u_y"><DoubleSpinBox name="period, 0 for auto" value="0"/><DoubleSpinBox name="kp:" value="0.40"/><DoubleSpinBox name="ki:" value="0.40"/><DoubleSpinBox name="sat i:" value="0.0"/><DoubleSpinBox name="kd:" value="0.200"/><DoubleSpinBox name="sat:" value="0.4"/></GroupBox></Tab>
+   <Tab name="Graphes">
+    <DataPlot1D name="u_roll" period="100" enabled="0">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="u_pitch" period="100" enabled="0">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="u_yaw" period="100" enabled="0">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="u_z" period="100" enabled="0">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+   <DataPlot1D name="x_pid" period="100" enabled="1"/><DataPlot1D name="y_pid" period="100" enabled="1"/><DataPlot1D name="u_x" period="100" enabled="0"/><DataPlot1D name="u_y" period="100" enabled="0"/></Tab>
+   <Tab name="HighOrder">
+    <GroupBox name="HighOrder">
+     <DoubleSpinBox value="1" name="lambda1:"/>
+     <DoubleSpinBox value="1" name="alpha1:"/>
+     <DoubleSpinBox value="1" name="lambda2:"/>
+     <DoubleSpinBox value="1" name="alpha2:"/>
+     <DoubleSpinBox value="1.5" name="lambda3:"/>
+     <DoubleSpinBox value="2" name="alpha3:"/>
+     <DoubleSpinBox value="2" name="lambda11:"/>
+     <DoubleSpinBox value="2" name="alpha11:"/>
+     <DoubleSpinBox value="2" name="lambda21:"/>
+     <DoubleSpinBox value="2" name="alpha21:"/>
+     <DoubleSpinBox value="2.5" name="lambda31:"/>
+     <DoubleSpinBox value="3" name="alpha31:"/>
+     <DoubleSpinBox value="3" name="lambda12:"/>
+     <DoubleSpinBox value="3" name="alpha12:"/>
+     <DoubleSpinBox value="3" name="lambda22:"/>
+     <DoubleSpinBox value="3" name="alpha22:"/>
+     <DoubleSpinBox value="3" name="lambda32:"/>
+     <DoubleSpinBox value="3.5" name="alpha32:"/>
+    </GroupBox>
+    <DataPlot1D name="phi/dphi">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="theta/dtheta">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="psi/dpsi">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="F">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="Filter">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+   </Tab>
+  </TabWidget>
+ </Tab>
+ <Tab name="vrpn">
+  <TabWidget name="vrpn">
+   <Tab name="Reglages">
+    <GroupBox name="post rotation 1">
+     <DoubleSpinBox value="90" name="value"/>
+     <ComboBox value="1" name="axis"/>
+    </GroupBox>
+    <GroupBox name="post rotation 2">
+     <DoubleSpinBox value="90" name="value"/>
+     <ComboBox value="0" name="axis"/>
+    </GroupBox>
+    <GroupBox name="x8_0 Passe bas">
+     <DoubleSpinBox value="0" name="period, 0 for auto"/>
+     <DoubleSpinBox value="2" name="cutoff frequency"/>
+    </GroupBox>
+    <GroupBox name="x8_0_euler">
+     <DoubleSpinBox value="0" name="period, 0 for auto:"/>
+    </GroupBox>
+    <GroupBox name="cercle">
+     <DoubleSpinBox value="0" name="period, 0 for auto"/>
+     <DoubleSpinBox value="1" name="R"/>
+     <DoubleSpinBox value="0.4" name="velocity"/>
+     <DoubleSpinBox value="0.1" name="acceleration (absolute)"/>
+    </GroupBox>
+    <GroupBox name="Cible Passe bas">
+     <DoubleSpinBox value="0" name="period, 0 for auto"/>
+     <DoubleSpinBox value="2" name="cutoff frequency"/>
+    </GroupBox>
+    <GroupBox name="Cible_euler">
+     <DoubleSpinBox value="0" name="period, 0 for auto:"/>
+    </GroupBox>
+   <GroupBox name="target Passe bas"><DoubleSpinBox name="period, 0 for auto" value="0"/><DoubleSpinBox name="cutoff frequency" value="1"/></GroupBox><GroupBox name="target_euler"><DoubleSpinBox name="period, 0 for auto:" value="0"/></GroupBox><GroupBox name="circle"><DoubleSpinBox name="period, 0 for auto" value="0"/><DoubleSpinBox name="R" value="1"/><DoubleSpinBox name="velocity" value="0.5"/><DoubleSpinBox name="acceleration (absolute)" value="0.1"/></GroupBox></Tab>
+   <Tab name="Mesures x8_0">
+    <DataPlot1D name="x" period="100" enabled="1">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="y" period="100" enabled="0">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="z" period="100" enabled="0">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="vx" period="100" enabled="0">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="vy" period="100" enabled="0">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="vz" period="100" enabled="0">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+   </Tab>
+   <Tab name="Mesures (xy) x8_0">
+    <DataPlot2D name="xy" period="100" enabled="0">
+     <Setup period="100" enabled="1"/>
+    </DataPlot2D>
+   </Tab>
+   <Tab name="Mesures Cible">
+    <DataPlot1D name="x">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="y">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="z">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="vx">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="vy">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="vz">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+   </Tab>
+   <Tab name="Mesures (xy) Cible">
+    <DataPlot2D name="xy">
+     <Setup period="100" enabled="1"/>
+    </DataPlot2D>
+   </Tab>
+  <Tab name="Mesures target"><DataPlot1D name="x" period="100" enabled="0"/><DataPlot1D name="y" period="100" enabled="0"/><DataPlot1D name="z" period="100" enabled="0"/><DataPlot1D name="vx" period="100" enabled="0"/><DataPlot1D name="vy" period="100" enabled="0"/><DataPlot1D name="vz" period="100" enabled="0"/></Tab><Tab name="Mesures (xy) target"><DataPlot2D name="xy" period="100" enabled="0"/></Tab></TabWidget>
+ </Tab>
+ <Tab name="camv"><TabWidget name="camv"><Tab name="Setup"><GroupBox name="camv"><DoubleSpinBox name="gain:" value="0.2"/><DoubleSpinBox name="exposure:" value="0.25"/><DoubleSpinBox name="bright:" value="0.3"/><DoubleSpinBox name="contrast:" value="0.4"/><DoubleSpinBox name="hue:" value="1"/><DoubleSpinBox name="sharpness:" value="0.5"/><DoubleSpinBox name="saturation:" value="0"/><CheckBox name="autogain:" value="0"/><CheckBox name="autoexposure:" value="0"/><CheckBox name="awb:" value="0"/><Label name="fps"/></GroupBox><GridLayout name="setup"><GroupBox name="flux optique"><GroupBox name="post rotation"><DoubleSpinBox name="value" value="-90"/><ComboBox name="axis" value="2"/></GroupBox><SpinBox name="max features:" value="64"/></GroupBox><GroupBox name="passe bas"><DoubleSpinBox name="period, 0 for auto" value="0"/><DoubleSpinBox name="cutoff frequency" value="5"/></GroupBox></GridLayout></Tab><Tab name="Picture"><Picture name="camv" period="200" enabled="0"/></Tab></TabWidget></Tab><Tab name="flux optique"><DataPlot1D name="x_velocity" period="100" enabled="0"/><DataPlot1D name="y_velocity" period="100" enabled="0"/></Tab><Tab name="motors"><TabWidget name="UavMultiplex"><Tab name="Setup"><GroupBox name="x8 multiplex"><ComboBox name="top front left blade pitch:" value="1"/></GroupBox><GroupBox name="motor attribution"><ComboBox name="top front left" value="0"/><ComboBox name="top front rigth" value="7"/><ComboBox name="top rear left" value="4"/><ComboBox name="top rear rigth" value="1"/><ComboBox name="bottom front left" value="3"/><ComboBox name="bottom front rigth" value="5"/><ComboBox name="bottom rear left" value="6"/><ComboBox name="bottom rear rigth" value="2"/></GroupBox><GroupBox name="bldc"><Label name="flight time"/><DoubleSpinBox name="min value:" value="0.2"/><DoubleSpinBox name="max value:" value="1"/><DoubleSpinBox name="test value:" value="0.1"/><PushButton name="test motor 0"/><PushButton name="test motor 1"/><PushButton name="test motor 2"/><PushButton name="test motor 3"/><PushButton name="test motor 4"/><PushButton name="test motor 5"/><PushButton name="test motor 6"/><PushButton name="test motor 7"/></GroupBox><GroupBox name="battery"><Label name="battery"/><DoubleSpinBox name="threshold" value="10"/><SpinBox name="threshold time" value="10"/></GroupBox><GroupBox name="Motors"><SpinBox name="nb poles:" value="14"/></GroupBox></Tab><Tab name="Values"><DataPlot1D name="front left" period="100" enabled="0"/><DataPlot1D name="front right" period="100" enabled="0"/><DataPlot1D name="rear left" period="100" enabled="0"/><DataPlot1D name="rear right" period="100" enabled="0"/></Tab><Tab name="Speeds"><DataPlot1D name="front left" period="100" enabled="0"/><DataPlot1D name="front right" period="100" enabled="0"/><DataPlot1D name="rear left" period="100" enabled="0"/><DataPlot1D name="rear right" period="100" enabled="0"/></Tab><Tab name="Currents"><DataPlot1D name="front left" period="100" enabled="0"/><DataPlot1D name="front right" period="100" enabled="0"/><DataPlot1D name="rear left" period="100" enabled="0"/><DataPlot1D name="rear right" period="100" enabled="0"/></Tab></TabWidget></Tab><Tab name="Dualshock3"><TabWidget name="Dualshock3"><Tab name="Reglages"><GroupBox name="consignes joy"><DoubleSpinBox name="debattement roll" value="-15"/><DoubleSpinBox name="debattement pitch" value="-15"/><DoubleSpinBox name="debattement wz" value="90"/><DoubleSpinBox name="debattement dz" value="-0.5"/><DoubleSpinBox name="trim" value="0.02"/><Label name="trim roll"/><PushButton name="reset roll trim"/><Label name="trim pitch"/><PushButton name="reset pitch trim"/></GroupBox></Tab></TabWidget></Tab></TabWidget>
+<TabWidget name="App_TabWidget"><Tab name="x8_0"><PushButton name="save config on target" value="1"/></Tab></TabWidget><PushButton name="save config on target (x8_0)" value="1"/></root>
Index: trunk/demos/MixedReality/virtual/uav/build_core2_64/bin/setup_x4.xml
===================================================================
--- trunk/demos/MixedReality/virtual/uav/build_core2_64/bin/setup_x4.xml	(revision 293)
+++ trunk/demos/MixedReality/virtual/uav/build_core2_64/bin/setup_x4.xml	(revision 293)
@@ -0,0 +1,361 @@
+<?xml version="1.0"?>
+<!DOCTYPE remote_ui_xml>
+<root name="interface">
+<TabWidget name="Main_TabWidget">
+ <Tab name="Dualshock3">
+  <TabWidget name="Dualshock3">
+   <Tab name="Reglages">
+    <GroupBox name="Dualshock3">
+     <SpinBox value="10" name="dead zone:"/>
+     <Label name="batterie"/>
+    </GroupBox>
+    <GroupBox name="consignes joy">
+     <DoubleSpinBox value="-20" name="debattement roll"/>
+     <DoubleSpinBox value="-20" name="debattement pitch"/>
+     <DoubleSpinBox value="90" name="debattement wz"/>
+     <DoubleSpinBox value="-0.7" name="debattement dz"/>
+     <DoubleSpinBox value="0" name="trim"/>
+     <Label name="trim roll"/>
+     <PushButton value="0" name="reset roll trim"/>
+     <Label name="trim pitch"/>
+     <PushButton value="0" name="reset pitch trim"/>
+    <DoubleSpinBox name="debattement wz" value="90"/></GroupBox>
+   </Tab>
+   <Tab name="Mesures">
+    <DataPlot1D name="roll">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="pitch">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="yaw">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="gaz">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+   </Tab>
+  </TabWidget>
+ </Tab>
+ <Tab name="motors">
+  <TabWidget name="UavMultiplex">
+   <Tab name="Setup">
+    <GroupBox name="x4 multiplex">
+     <ComboBox value="0" name="front left blade pitch:"/>
+    </GroupBox>
+    <GroupBox name="motor attribution">
+     <ComboBox value="0" name="front left"/>
+     <ComboBox value="1" name="front rigth"/>
+     <ComboBox value="2" name="rear left"/>
+     <ComboBox value="3" name="rear rigth"/>
+    </GroupBox>
+    <GroupBox name="bldc">
+     <Label name="flight time"/>
+     <DoubleSpinBox value="0.4" name="min value:"/>
+     <DoubleSpinBox value="1" name="max value:"/>
+     <DoubleSpinBox value="0.1" name="test value:"/>
+     <PushButton value="0" name="test motor 0"/>
+     <PushButton value="0" name="test motor 1"/>
+     <PushButton value="0" name="test motor 2"/>
+     <PushButton value="0" name="test motor 3"/>
+    </GroupBox>
+    <GroupBox name="simubldc">
+     <DoubleSpinBox value="86" name="k driver:"/>
+    </GroupBox>
+   </Tab>
+   <Tab name="Values">
+    <DataPlot1D name="front left" period="100" enabled="0">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="front right" period="100" enabled="0">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="rear left" period="100" enabled="0">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="rear right" period="100" enabled="0">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+   </Tab>
+   <Tab name="Speeds">
+    <DataPlot1D name="front left" period="100" enabled="0">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="front right" period="100" enabled="0">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="rear left" period="100" enabled="0">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="rear right" period="100" enabled="0">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+   </Tab>
+  <Tab name="Currents"><DataPlot1D name="front left" period="100" enabled="0"/><DataPlot1D name="front right" period="100" enabled="0"/><DataPlot1D name="rear left" period="100" enabled="0"/><DataPlot1D name="rear right" period="100" enabled="0"/></Tab></TabWidget>
+ </Tab>
+ <Tab name="us">
+  <TabWidget name="us">
+   <Tab name="Reglages">
+    <GroupBox name="us">
+     <SpinBox value="50" name="data rate"/>
+    </GroupBox>
+    <GroupBox name="Passe bas">
+     <DoubleSpinBox value="0" name="period, 0 for auto"/>
+     <DoubleSpinBox value="5" name="cutoff frequency"/>
+    </GroupBox>
+    <GroupBox name="Vz">
+     <DoubleSpinBox value="0" name="period, 0 for auto:"/>
+    <DoubleSpinBox name="saturation, -1 to disable:" value="-1"/></GroupBox>
+    <GroupBox name="Passe bas v">
+     <DoubleSpinBox value="0" name="period, 0 for auto"/>
+     <DoubleSpinBox value="5" name="cutoff frequency"/>
+    </GroupBox>
+    <GroupBox name="alt cons">
+     <DoubleSpinBox value="0" name="period, 0 for auto:"/>
+     <DoubleSpinBox value="0.5" name="velocity max (absolute):"/>
+     <DoubleSpinBox value="0.2" name="acceleration (absolute):"/>
+    </GroupBox>
+    <GroupBox name="decollage">
+     <DoubleSpinBox value="1" name="alt decollage"/>
+     <DoubleSpinBox value="0" name="alt atterissage"/>
+    </GroupBox>
+   </Tab>
+   <Tab name="Mesures">
+    <DataPlot1D name="us" period="100" enabled="0">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="vz" period="100" enabled="0">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+   </Tab>
+  </TabWidget>
+ </Tab>
+ <Tab name="imu">
+  <TabWidget name="imu">
+   <Tab name="Reglages">
+    <GroupBox name="imu">
+     <SpinBox value="200" name="data rate"/>
+    </GroupBox>
+    <GroupBox name="post rotation">
+     <DoubleSpinBox value="0" name="value"/>
+     <ComboBox value="0" name="axis"/>
+    </GroupBox>
+   </Tab>
+   <Tab name="AHRS">
+    <DataPlot1D name="roll" period="100" enabled="0">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="pitch" period="100" enabled="0">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="yaw" period="100" enabled="0">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="w_x" period="100" enabled="0">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="w_y" period="100" enabled="0">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="w_z" period="100" enabled="0">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+   </Tab>
+  <Tab name="Quaternion"><DataPlot1D name="q0" period="100" enabled="0"/><DataPlot1D name="q1" period="100" enabled="0"/><DataPlot1D name="q2" period="100" enabled="0"/><DataPlot1D name="q3" period="100" enabled="0"/></Tab><Tab name="IMU"><DataPlot1D name="acc_x" period="100" enabled="0"/><DataPlot1D name="acc_y" period="100" enabled="0"/><DataPlot1D name="acc_z" period="100" enabled="0"/><DataPlot1D name="gyr_x" period="100" enabled="0"/><DataPlot1D name="gyr_y" period="100" enabled="0"/><DataPlot1D name="gyr_z" period="100" enabled="0"/><DataPlot1D name="mag_x" period="100" enabled="0"/><DataPlot1D name="mag_y" period="100" enabled="0"/><DataPlot1D name="mag_z" period="100" enabled="0"/></Tab></TabWidget>
+ </Tab>
+ <Tab name="battery">
+  <GroupBox name="battery">
+   <Label name="battery"/>
+   <DoubleSpinBox value="10" name="threshold"/>
+  <SpinBox name="threshold time" value="10"/></GroupBox>
+ </Tab>
+ <Tab name="simu_cam_v">
+  <TabWidget name="simu_cam_v">
+   <Tab name="Setup">
+    <GroupBox name="simu_cam_v">
+     <SpinBox value="50" name="data rate"/>
+    </GroupBox>
+    <GridLayout name="setup"/>
+   </Tab>
+  </TabWidget>
+ </Tab>
+ <Tab name="vrpn">
+  <TabWidget name="vrpn">
+   <Tab name="Reglages">
+    <GroupBox name="post rotation 1">
+     <DoubleSpinBox value="0" name="value"/>
+     <ComboBox value="0" name="axis"/>
+    </GroupBox>
+    <GroupBox name="post rotation 2">
+     <DoubleSpinBox value="0" name="value"/>
+     <ComboBox value="0" name="axis"/>
+    </GroupBox>
+    <GroupBox name="Drone_0 Passe bas">
+     <DoubleSpinBox value="0" name="period, 0 for auto"/>
+     <DoubleSpinBox value="2" name="cutoff frequency"/>
+    </GroupBox>
+    <GroupBox name="Drone_0_euler">
+     <DoubleSpinBox value="0" name="period, 0 for auto:"/>
+    </GroupBox>
+    <GroupBox name="target Passe bas">
+     <DoubleSpinBox value="0" name="period, 0 for auto"/>
+     <DoubleSpinBox value="2" name="cutoff frequency"/>
+    </GroupBox>
+    <GroupBox name="target_euler">
+     <DoubleSpinBox value="0" name="period, 0 for auto:"/>
+    <DoubleSpinBox name="saturation, -1 to disable:" value="-1"/></GroupBox>
+    <GroupBox name="circle">
+     <DoubleSpinBox value="0" name="period, 0 for auto"/>
+     <DoubleSpinBox value="1.5" name="R"/>
+     <DoubleSpinBox value="1" name="velocity"/>
+     <DoubleSpinBox value="0.1" name="acceleration (absolute)"/>
+    </GroupBox>
+   <GroupBox name="Drone_1 Passe bas"><DoubleSpinBox name="period, 0 for auto" value="0"/><DoubleSpinBox name="cutoff frequency" value="1"/></GroupBox><GroupBox name="Drone_1_euler"><DoubleSpinBox name="period, 0 for auto:" value="0"/><DoubleSpinBox name="saturation, -1 to disable:" value="-1"/></GroupBox></Tab>
+   <Tab name="Mesures Drone_0">
+    <DataPlot1D name="x" period="100" enabled="0">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="y" period="100" enabled="0">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="z" period="100" enabled="0">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="vx" period="100" enabled="0">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="vy" period="100" enabled="0">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="vz" period="100" enabled="0">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+   </Tab>
+   <Tab name="Mesures (xy) Drone_0">
+    <DataPlot2D name="xy" period="100" enabled="0">
+     <Setup period="100" enabled="1"/>
+    </DataPlot2D>
+   </Tab>
+   <Tab name="Mesures target">
+    <DataPlot1D name="x" period="100" enabled="0">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="y" period="100" enabled="0">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="z" period="100" enabled="0">
+     <Setup period="100" enabled="0"/>
+    </DataPlot1D>
+    <DataPlot1D name="vx" period="100" enabled="0">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="vy" period="100" enabled="0">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="vz" period="100" enabled="0">
+     <Setup period="100" enabled="0"/>
+    </DataPlot1D>
+   </Tab>
+   <Tab name="Mesures (xy) target">
+    <DataPlot2D name="xy" period="100" enabled="0">
+     <Setup period="100" enabled="1"/>
+    </DataPlot2D>
+   </Tab>
+  <Tab name="Mesures Drone_1"><DataPlot1D name="x" period="100" enabled="1"/><DataPlot1D name="y" period="100" enabled="1"/><DataPlot1D name="z" period="100" enabled="0"/><DataPlot1D name="vx" period="100" enabled="0"/><DataPlot1D name="vy" period="100" enabled="0"/><DataPlot1D name="vz" period="100" enabled="0"/></Tab><Tab name="Mesures (xy) Drone_1"><DataPlot2D name="xy" period="100" enabled="0"/></Tab></TabWidget>
+ </Tab>
+ <Tab name="uav">
+  <GridLayout name="buttons">
+   <PushButton value="0" name="kill"/>
+   <PushButton value="0" name="start_log"/>
+   <PushButton value="0" name="stop_log"/>
+   <PushButton value="0" name="take_off"/>
+   <PushButton value="0" name="land"/>
+   <PushButton value="0" name="start_circle"/>
+   <PushButton value="0" name="stop_circle"/>
+  <PushButton name="position hold"/></GridLayout>
+  <GroupBox name="takeoff/landing">
+   <DoubleSpinBox value="1" name="desired takeoff altitude"/>
+   <DoubleSpinBox value="0" name="desired landing altitude"/>
+  </GroupBox>
+  <GroupBox name="alt cons">
+   <DoubleSpinBox value="0" name="period, 0 for auto:"/>
+   <DoubleSpinBox value="0.5" name="velocity max (absolute):"/>
+   <DoubleSpinBox value="0.2" name="acceleration (absolute):"/>
+  </GroupBox>
+ </Tab>
+ <Tab name="control laws">
+  <TabWidget name="laws">
+   <Tab name="Setup">
+    <GroupBox name="u_roll">
+     <DoubleSpinBox value="15" name="sat ref:"/>
+     <DoubleSpinBox value="15" name="kp:"/>
+     <DoubleSpinBox value="100" name="sat dref:"/>
+     <DoubleSpinBox value="0.1" name="kd:"/>
+     <DoubleSpinBox value="0.5" name="sat u:"/>
+    </GroupBox>
+    <GroupBox name="u_pitch">
+     <DoubleSpinBox value="15" name="sat ref:"/>
+     <DoubleSpinBox value="15" name="kp:"/>
+     <DoubleSpinBox value="100" name="sat dref:"/>
+     <DoubleSpinBox value="0.1" name="kd:"/>
+     <DoubleSpinBox value="0.5" name="sat u:"/>
+    </GroupBox>
+    <GroupBox name="u_yaw">
+     <DoubleSpinBox value="0" name="period, 0 for auto"/>
+     <DoubleSpinBox value="1" name="kp:"/>
+     <DoubleSpinBox value="0" name="ki:"/>
+     <DoubleSpinBox value="0" name="sat i:"/>
+     <DoubleSpinBox value="0.1" name="kd:"/>
+     <DoubleSpinBox value="0.2" name="sat:"/>
+    </GroupBox>
+    <GroupBox name="u_z">
+     <DoubleSpinBox value="0" name="period, 0 for auto"/>
+     <DoubleSpinBox value="0.3" name="kp:"/>
+     <DoubleSpinBox value="0.2" name="ki:"/>
+     <DoubleSpinBox value="0.5" name="sat i:"/>
+     <DoubleSpinBox value="0.1" name="kd:"/>
+     <DoubleSpinBox value="0.6" name="offset g:"/>
+     <DoubleSpinBox value="1" name="sat:"/>
+     <DoubleSpinBox value="0.0002" name="offset step:"/>
+    </GroupBox>
+    <GroupBox name="u_x">
+     <DoubleSpinBox value="0" name="period, 0 for auto"/>
+     <DoubleSpinBox value="0.2" name="kp:"/>
+     <DoubleSpinBox value="0" name="ki:"/>
+     <DoubleSpinBox value="0" name="sat i:"/>
+     <DoubleSpinBox value="0.2" name="kd:"/>
+     <DoubleSpinBox value="1" name="sat:"/>
+    </GroupBox>
+    <GroupBox name="u_y">
+     <DoubleSpinBox value="0" name="period, 0 for auto"/>
+     <DoubleSpinBox value="0.2" name="kp:"/>
+     <DoubleSpinBox value="0" name="ki:"/>
+     <DoubleSpinBox value="0" name="sat i:"/>
+     <DoubleSpinBox value="0.2" name="kd:"/>
+     <DoubleSpinBox value="1" name="sat:"/>
+    </GroupBox>
+   </Tab>
+   <Tab name="Graphes">
+    <DataPlot1D name="u_roll" period="100" enabled="0">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="u_pitch" period="100" enabled="0">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="u_yaw" period="100" enabled="0">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="u_z" period="100" enabled="0">
+     <Setup period="100" enabled="1"/>
+    </DataPlot1D>
+    <DataPlot1D name="u_x" period="100" enabled="0">
+     <Setup period="100" enabled="0"/>
+    </DataPlot1D>
+    <DataPlot1D name="u_y" period="100" enabled="0">
+     <Setup period="100" enabled="0"/>
+    </DataPlot1D>
+   </Tab>
+  </TabWidget>
+ </Tab>
+<Tab name="simu_cam_h"><TabWidget name="simu_cam_h"><Tab name="Setup"><GroupBox name="simu_cam_h"/><GridLayout name="setup"/></Tab></TabWidget></Tab></TabWidget>
+<TabWidget name="App_TabWidget"><Tab name="Drone_0"><PushButton name="save config on target" value="1"/></Tab></TabWidget><PushButton name="save config on target (Drone_0)" value="1"/><PushButton name="save config on target (Drone_1)" value="1"/></root>
Index: trunk/demos/MixedReality/virtual/uav/build_core2_64/bin/x4.sh
===================================================================
--- trunk/demos/MixedReality/virtual/uav/build_core2_64/bin/x4.sh	(revision 293)
+++ trunk/demos/MixedReality/virtual/uav/build_core2_64/bin/x4.sh	(revision 293)
@@ -0,0 +1,11 @@
+#! /bin/bash
+
+if [ -f /proc/xenomai/version ];then
+	EXEC=./MixedReality_uav_virtual_rt
+else
+	EXEC=./MixedReality_uav_virtual_nrt
+fi
+
+. $FLAIR_ROOT/flair-dev/scripts/distribution_specific_hack.sh
+
+$EXEC -a 127.0.0.1 -p 9000 -l /tmp -x setup_x4.xml -t x4_simu1 -d 20001
Index: trunk/demos/MixedReality/virtual/uav/src/App.cpp
===================================================================
--- trunk/demos/MixedReality/virtual/uav/src/App.cpp	(revision 293)
+++ trunk/demos/MixedReality/virtual/uav/src/App.cpp	(revision 293)
@@ -0,0 +1,190 @@
+//  created:    2019/01/09
+//  filename:   App.cpp
+//
+//  author:     Guillaume Sanahuja
+//              Copyright Heudiasyc UMR UTC/CNRS 7253
+//
+//  version:    $Id: $
+//
+//  purpose:    mixed reality demo, virtual uav side
+//
+//
+/*********************************************************************/
+
+#include "App.h"
+#include <TargetController.h>
+#include <Uav.h>
+#include <GridLayout.h>
+#include <PushButton.h>
+#include <DataPlot1D.h>
+#include <MetaDualShock3.h>
+#include <FrameworkManager.h>
+#include <VrpnClient.h>
+#include <MetaVrpnObject.h>
+#include <Matrix.h>
+#include <Tab.h>
+#include <Pid.h>
+#include <Ahrs.h>
+#include <AhrsData.h>
+
+using namespace std;
+using namespace flair::core;
+using namespace flair::gui;
+using namespace flair::sensor;
+using namespace flair::filter;
+using namespace flair::meta;
+
+App::App(TargetController *controller): UavStateMachine(controller), behaviourMode(BehaviourMode_t::Default), vrpnLost(false) {
+    Uav* uav=GetUav();
+
+    VrpnClient* vrpnclient=new VrpnClient("vrpn", "127.0.0.1:3884",80);//local ip, and specific port for simulator_simu's vrpn
+    uavVrpn = new MetaVrpnObject(uav->ObjectName());
+    getFrameworkManager()->AddDeviceToLog(uavVrpn);
+    uav->GetAhrs()->YawPlot()->AddCurve(uavVrpn->State()->Element(2),DataPlot::Green);
+																 
+    positionHold=new PushButton(GetButtonsLayout()->LastRowLastCol(),"position hold");
+
+		vrpnclient->Start();
+
+    uX=new Pid(setupLawTab->At(1,0),"u_x");
+    uX->UseDefaultPlot(graphLawTab->NewRow());
+    uY=new Pid(setupLawTab->At(1,1),"u_y");
+    uY->UseDefaultPlot(graphLawTab->LastRowLastCol());
+
+    customReferenceOrientation= new AhrsData(this,"reference");
+    uav->GetAhrs()->AddPlot(customReferenceOrientation,DataPlot::Yellow);
+    AddDataToControlLawLog(customReferenceOrientation);
+
+    customOrientation=new AhrsData(this,"orientation");
+}
+
+App::~App() {
+}
+
+const AhrsData *App::GetOrientation(void) const {
+    //get yaw from vrpn
+		Quaternion vrpnQuaternion;
+    uavVrpn->GetQuaternion(vrpnQuaternion);
+
+    //get roll, pitch and w from imu
+    Quaternion ahrsQuaternion;
+    Vector3Df ahrsAngularSpeed;
+    GetDefaultOrientation()->GetQuaternionAndAngularRates(ahrsQuaternion, ahrsAngularSpeed);
+
+    Euler ahrsEuler=ahrsQuaternion.ToEuler();
+    ahrsEuler.yaw=vrpnQuaternion.ToEuler().yaw;
+    Quaternion mixQuaternion=ahrsEuler.ToQuaternion();
+
+    customOrientation->SetQuaternionAndAngularRates(mixQuaternion,ahrsAngularSpeed);
+
+    return customOrientation;
+}
+
+void App::AltitudeValues(float &z,float &dz) const{
+    Vector3Df uav_pos,uav_vel;
+
+    uavVrpn->GetPosition(uav_pos);
+    uavVrpn->GetSpeed(uav_vel);
+    //z and dz must be in uav's frame
+    z=-uav_pos.z;
+    dz=-uav_vel.z;
+}
+
+AhrsData *App::GetReferenceOrientation(void) {
+    Vector2Df pos_err, vel_err; // in Uav coordinate system
+    float yaw_ref;
+    Euler refAngles;
+
+    PositionValues(pos_err, vel_err, yaw_ref);
+
+    refAngles.yaw=yaw_ref;
+
+    uX->SetValues(pos_err.x, vel_err.x);
+    uX->Update(GetTime());
+    refAngles.pitch=uX->Output();
+
+    uY->SetValues(pos_err.y, vel_err.y);
+    uY->Update(GetTime());
+    refAngles.roll=-uY->Output();
+
+    customReferenceOrientation->SetQuaternionAndAngularRates(refAngles.ToQuaternion(),Vector3Df(0,0,0));
+
+    return customReferenceOrientation;
+}
+
+void App::PositionValues(Vector2Df &pos_error,Vector2Df &vel_error,float &yaw_ref) {
+    Vector3Df uav_pos,uav_vel; // in VRPN coordinate system
+    Vector2Df uav_2Dpos,uav_2Dvel; // in VRPN coordinate system
+
+    uavVrpn->GetPosition(uav_pos);
+    uavVrpn->GetSpeed(uav_vel);
+
+    uav_pos.To2Dxy(uav_2Dpos);
+    uav_vel.To2Dxy(uav_2Dvel);
+
+    pos_error=uav_2Dpos-posHold;
+    vel_error=uav_2Dvel;
+    yaw_ref=yawHold;
+    
+    //error in uav frame
+    Quaternion currentQuaternion=GetCurrentQuaternion();
+    Euler currentAngles;//in vrpn frame
+    currentQuaternion.ToEuler(currentAngles);
+    pos_error.Rotate(-currentAngles.yaw);
+    vel_error.Rotate(-currentAngles.yaw);
+}
+
+void App::SignalEvent(Event_t event) {
+    UavStateMachine::SignalEvent(event);
+    switch(event) {
+    case Event_t::TakingOff:
+        behaviourMode=BehaviourMode_t::Default;
+        vrpnLost=false;
+        break;
+    case Event_t::EnteringControlLoop:
+        break;
+    case Event_t::EnteringFailSafeMode:
+        behaviourMode=BehaviourMode_t::Default;
+        break;
+    }
+}
+
+void App::ExtraSecurityCheck(void) {
+    if ((!vrpnLost) && (behaviourMode==BehaviourMode_t::PositionHold)) {
+        if (!uavVrpn->IsTracked(500)) {
+            Thread::Err("VRPN, uav lost\n");
+            vrpnLost=true;
+            EnterFailSafeMode();
+            Land();
+        }
+    }
+}
+
+void App::ExtraCheckPushButton(void) {
+    if(positionHold->Clicked() && (behaviourMode==BehaviourMode_t::Default)) {
+        VrpnPositionHold();
+    }
+}
+
+void App::ExtraCheckJoystick(void) {
+    //R1 and Square
+    if(GetJoystick()->IsButtonPressed(9) && GetJoystick()->IsButtonPressed(2) && (behaviourMode==BehaviourMode_t::Default)) {
+        VrpnPositionHold();
+    }
+}
+
+void App::VrpnPositionHold(void) {
+		Quaternion vrpnQuaternion;
+    uavVrpn->GetQuaternion(vrpnQuaternion);
+		yawHold=vrpnQuaternion.ToEuler().yaw;
+
+    Vector3Df vrpnPosition;
+    uavVrpn->GetPosition(vrpnPosition);
+    vrpnPosition.To2Dxy(posHold);
+
+    uX->Reset();
+    uY->Reset();
+    behaviourMode=BehaviourMode_t::PositionHold;
+    SetOrientationMode(OrientationMode_t::Custom);
+    Thread::Info("App: holding position\n");
+}
Index: trunk/demos/MixedReality/virtual/uav/src/App.h
===================================================================
--- trunk/demos/MixedReality/virtual/uav/src/App.h	(revision 293)
+++ trunk/demos/MixedReality/virtual/uav/src/App.h	(revision 293)
@@ -0,0 +1,66 @@
+//  created:    2019/01/09
+//  filename:   App.h
+//
+//  author:     Guillaume Sanahuja
+//              Copyright Heudiasyc UMR UTC/CNRS 7253
+//
+//  version:    $Id: $
+//
+//  purpose:    mixed reality demo, virtual uav side
+//
+//
+/*********************************************************************/
+
+#ifndef APP_H
+#define APP_H
+
+#include <UavStateMachine.h>
+
+namespace flair {
+    namespace gui {
+        class PushButton;
+    }
+    namespace meta {
+        class MetaVrpnObject;
+    }
+    namespace sensor {
+        class TargetController;
+    }
+}
+
+class App : public flair::meta::UavStateMachine {
+    public:
+        App(flair::sensor::TargetController *controller);
+        ~App();
+
+    private:
+
+	enum class BehaviourMode_t {
+            Default,
+            PositionHold,
+        };
+
+        BehaviourMode_t behaviourMode;
+        bool vrpnLost;
+
+        void VrpnPositionHold(void);
+        void ExtraSecurityCheck(void);
+        void ExtraCheckPushButton(void);
+        void ExtraCheckJoystick(void);
+        const flair::core::AhrsData *GetOrientation(void) const;
+        void AltitudeValues(float &z,float &dz) const;
+        void PositionValues(flair::core::Vector2Df &pos_error,flair::core::Vector2Df &vel_error,float &yaw_ref);
+        flair::core::AhrsData *GetReferenceOrientation(void);
+        void SignalEvent(Event_t event);
+
+        flair::filter::Pid *uX, *uY;
+
+        flair::core::Vector2Df posHold;
+        float yawHold;
+
+        flair::gui::PushButton *positionHold;
+        flair::meta::MetaVrpnObject *uavVrpn;
+        flair::core::AhrsData *customReferenceOrientation,*customOrientation;
+};
+
+#endif // APP_H
Index: trunk/demos/MixedReality/virtual/uav/src/main.cpp
===================================================================
--- trunk/demos/MixedReality/virtual/uav/src/main.cpp	(revision 293)
+++ trunk/demos/MixedReality/virtual/uav/src/main.cpp	(revision 293)
@@ -0,0 +1,93 @@
+//  created:    2011/05/01
+//  filename:   main.cpp
+//
+//  author:     Guillaume Sanahuja
+//              Copyright Heudiasyc UMR UTC/CNRS 7253
+//
+//  version:    $Id: $
+//
+//  purpose:    exemple de code uav
+//
+//
+/*********************************************************************/
+
+#include "App.h"
+#include <UavFactory.h>
+#include <FrameworkManager.h>
+#include <stdio.h>
+#include <tclap/CmdLine.h>
+#include <TargetEthController.h>
+
+using namespace TCLAP;
+using namespace std;
+using namespace flair::core;
+using namespace flair::meta;
+using namespace flair::sensor;
+
+string uav_type;
+string log_path;
+int port;
+int ds3port;
+string xml_file;
+string address;
+
+void parseOptions(int argc, char** argv);
+
+
+int main(int argc, char* argv[]) {
+    parseOptions(argc,argv);
+
+    FrameworkManager *manager;
+    manager= new FrameworkManager("Drone_1");
+    manager->SetupConnection(address,port);
+    manager->SetupUserInterface(xml_file);
+    manager->SetupLogger(log_path);
+
+    Uav* drone=CreateUav("Drone_1",uav_type);
+    TargetEthController *controller=new TargetEthController("Dualshock3",ds3port);
+    App* demo=new App(controller);
+
+    demo->Start();
+    demo->Join();
+
+    delete manager;
+}
+
+void parseOptions(int argc, char** argv) {
+	try {
+
+        CmdLine cmd("Command description message", ' ', "0.1");
+
+        ValueArg<string> typeArg("t","type","uav type: ardrone2, hds_x4, hds_x8, hds_xufo, x4_simu, x8_simu or x4_simux (with x the number of the simulated uav)",true,"hds_x4","string");
+        cmd.add( typeArg );
+
+        ValueArg<string> xmlArg("x","xml","fichier xml",true,"./reglages.xml","string");
+        cmd.add( xmlArg );
+
+        ValueArg<string> logsArg("l","logs","repertoire des logs",true,"/media/ram","string");
+        cmd.add( logsArg );
+
+        ValueArg<int> portArg("p","port","port pour station sol",true,9000,"int");
+        cmd.add( portArg );
+
+        ValueArg<string> addressArg("a","address","adresse station sol",true,"127.0.0.1","string");
+        cmd.add( addressArg );
+
+        ValueArg<int> ds3portArg("d","ds3_port","port pour ds3",false,20000,"int");
+        cmd.add( ds3portArg );
+
+        cmd.parse( argc, argv );
+
+        // Get the value parsed by each arg.
+        log_path = logsArg.getValue();
+        port=portArg.getValue();
+        ds3port=ds3portArg.getValue();
+        xml_file = xmlArg.getValue();
+        uav_type=typeArg.getValue();
+        address=addressArg.getValue();
+
+	} catch (ArgException &e) { // catch any exceptions
+        cerr << "error: " << e.error() << " for arg " << e.argId() << endl;
+        exit(EXIT_FAILURE);
+	}
+}
