Difference between revisions of "Booz"

From PaparazziUAV
Jump to: navigation, search
(Overview)
m (Simulator)
 
(53 intermediate revisions by 7 users not shown)
Line 1: Line 1:
 +
<div style="float: right; width: 30%"><categorytree style="float:right; clear:right; margin-left:1ex; border: 1px solid gray; padding: 0.7ex;" mode=pages>Autopilots</categorytree></div>
 +
<div style="float: right; width: 40%">[[Image:booz_logo.jpg|480px|right]]</div>
 
== Overview ==
 
== Overview ==
<p>Booz is an extension of Paparazzi to VTOLs. At the current stage of the project, the system provides attitude stabilization, vertical guidance and automatic navigation. It is able to use simple Paparazzi flight plans ( only go instructions ) and uses Paparazzi telemetry and datalink, which means all the Paparazzi ground segment applications are available( plotter, settings, gcs, etc...)</p>
+
<p>Booz is an extension of Paparazzi to VTOLs. At the current stage of the project, the system provides attitude stabilization, vertical and horizontal guidance and automatic navigation. It is able to use Paparazzi flight plans and uses Paparazzi telemetry and datalink, which means all the Paparazzi ground segment applications are available( plotter, settings, gcs, etc...)</p>
  
<p>The current autopilot consist in 3 boards</p>
+
<p>The current avionics consist of 3 boards</p>
[[Image:Boozassy3.jpg]]
+
[[Image:booz2_main.jpg|240px]]
 +
[[Image:booz2_imu.jpg|240px]]
 +
[[Image:Boozassy2.jpg|300px]]
  
 
* The main board, comprising power supply, a LPC2148 and a barometer.
 
* The main board, comprising power supply, a LPC2148 and a barometer.
* The IMU board, comprising gyroscopes, accelerometers, magnetometers and a 16 bits ADC.
+
* The IMU board, comprising gyroscopes, accelerometers, magnetometers and a 16-bit ADC.
 
* The GPS board, using a LEA-5H by ublox.
 
* The GPS board, using a LEA-5H by ublox.
  
It flies on a variety of Quad-rotor platforms
+
<p>Additional Booz boards:</p>
 +
[[Image:Med_BoozPower03.jpg|240px]]
 +
* The "power" board.
 +
 
 +
<p>It flies on a variety of Quad-rotor platforms</p>
  
 
[[Image:small_quad.jpg|240px]]
 
[[Image:small_quad.jpg|240px]]
Line 21: Line 29:
 
[[Image:booz2_a5.jpg|240px]]
 
[[Image:booz2_a5.jpg|240px]]
  
== Program Sources ==
+
== Simulator ==
  
Everything is at savannah.  
+
Paparazzi features the advanced [[NPS]] simulator which can serve many purposes, from learning how to operate a vehicle to evaluating control or estimation algorithms.
-hardware in paparazzi4/trunk/hw/booz
 
-code in paparazzi3/trunk
 
  
 
== Hardware ==
 
== Hardware ==
There are now vendors offering Booz hardware, Please see the [http://paparazzi.enac.fr/wiki/Get_Hardware Get Hardware] page for details.
 
  
== Running a simulator ==
+
=== Motor controllers ===
 +
Booz is able to handle a number of quadrotor specific brushless motor controllers.
  
=== Quick start guide ===
+
more info in [[BoozMotorControllers]]
  
Booz contains a sensors model and can use [http://jsbsim.sourceforge.net/ Jsbsim] to allow arbitrarily complex flight dynamic models.
+
=== Power board ===
 +
The power board allows to switch power on and off on your vehicle as well as to make a clean wiring by avoiding wired Y
  
 +
more info in [[BoozPowerBoard]]
  
* Extract a copy of paparazzi3 svn
+
=== Booz GPS ===
  svn co svn://svn.savannah.nongnu.org/paparazzi/paparazzi3/trunk paparazzi3
+
more info in [[BoozGPSBoard]]
  
* Install all required dependancies
+
=== IMU ===
apt-get install paparazzi-dev libtool
+
Booz has support for its custom designed IMU as well as for [http://www.cloudcaptech.com/ Cloudcap] Crista IMU
  
 +
more info in [[BoozIMU]]
  
* Compile JSBSIM
+
=== Autopilot ===
  cvs -z3 -d:pserver:anonymous@jsbsim.cvs.sourceforge.net:/cvsroot/jsbsim co -P JSBSim
+
Current version of Booz autopilot is based on a lpc2148
  cd JSBSim
 
  ./autogen.sh
 
  ./configure --enable-maintainer-mode --enable-compile-warnings --enable-libraries --enable-shared --prefix=/opt/jsbsim
 
  make
 
  sudo make install
 
  
Here is a ''[[Media:‎Jsbsim silent warnings.patch.gz.jpg|patch]]'' to silent warnings. Also be sure automake and autoconf are installed. If not sudo apt-get install automake autoconf
+
more info in [[BoozAutopilot]]
  
* Compile paparazzi
+
A new version of the autopilot, based on a STM32 is in development
  cd paparazzi3/trunk
 
  make
 
  
* Compile the vehicle
+
more info in [[Lisa]]
  make AIRCRAFT=BOOZ2_A1 clean_ac sim
 
  
 +
=== Airframes ===
  
* Start paparazzi_center if you want click to start programs
+
One nice thing about quadrotors is that the mechanics being extremely simple, they can be build with very few tools.
./paparazzi
+
Booz mounting holes are compatible with popular of the shelf frames.
  
* Start messages to monitor the middleware activity ( from the tool menu of paparazzi center) or with
+
more info in [[BoozAirframes]]
./sw/ground_segment/tmtc/messages
 
  
* Start the sim
+
===Purchasing Hardware===
LD_LIBRARY_PATH=/opt/jsbsim/lib ./var/BOOZ2_A1/sim/simsitl
+
<p>There are now vendors offering Booz hardware, Please see the [http://paparazzi.enac.fr/wiki/Get_Hardware Get Hardware] page for details.</p>
  
You should now see activity in the "messages" window
+
== Hardware Test ==
  
* Plot the value of a message field.
+
Booz comes with a number of simple test programs that you can use to validate a newly assembled board or learn how booz code works in case you want to extend it.
start 'plotter' ( from the tool menu of paparazzi center) or with
 
  ./sw/logalizer/plotter
 
for example drag the label 'int32 phi' from the BOOZ2_FP message to the drawing area of the plotter
 
  
 +
more info in [[BoozHardwareTest]]
  
* Use the datalink to change the temetry mode
+
== Software ==
start 'settings' ( from the tool menu of paparazzi center) or with
 
  ./sw/ground_segment/tmtc/settings -ac BOOZ2_A1
 
start 'server' to dispatch datalink messages ( from the tool menu of paparazzi center) or with
 
./sw/ground_segment/tmtc/server
 
change the field "telemetry" on the first page to "Att loop" and send by pressing the green check button. THe label on the left or the drop box should change to "Att loop" confirming your essage has been received. "message" should now show that the message "BOOZ2_STAB_ATTITUDE" is received
 
  
* Use flightgear to visualize your vehicle
+
=== Peripheral support ===
If you want a view of a quadrotor in flightgear, make a link from
 
/usr/share/games/FlightGear/Models/Aircraft/paparazzi to PAPARAZZI_SRC/conf/simulator/flightgear/
 
start flighgear with
 
fgfs --fdm=null --native-gui=socket,in,30,,5501,udp --prop:/sim/model/path=Models/Aircraft/paparazzi/mikrokopter.xml
 
restart your simulator with
 
  LD_LIBRARY_PATH=/opt/jsbsim/lib ./var/BOOZ2_A1/sim/simsitl --fg_host 127.0.0.1
 
  
* Save you session
+
{|border="1"  cellspacing="0" style="text-align:center" cellpadding="6"
 +
!''Type #''!!''Model''!!''Booz''!!''Lisa/L''
 +
|-
 +
|IMU      ||Boozv1  ||yes||yes
 +
|-
 +
|          ||crista  ||yes||yes
 +
|-
 +
|          ||mti      || ? ||no
 +
|-
 +
|          ||vn100    ||?  ||no
 +
|-
 +
|RC        ||PPM      ||yes||no
 +
|-
 +
|          ||spektrum ||yes||yes
 +
|-
 +
|Actuators ||asctec  ||yes||yes
 +
|-
 +
|          ||mkk      ||yes||yes
 +
|-
 +
|          ||servospwm|| 2 || 6
 +
|-
 +
|          ||CAN      ||no || in progress
 +
|-
 +
|}
  
=== Tunning the attitude control loop ===
 
  
Here we are going to use the simulator to demonstrate a way of tunning the attitude control loop.
 
  
* Restart your previous session
+
== Sensors Calibration ==
 
 
* Set telemetry mode to "Att loop"
 
 
 
* Display two real time plotter windows
 
 
 
In the first one, plot the field "m_phi" from the "BOOZ2_STAB_ATTITUDE" message. This is our estimation of roll angle.
 
On top of that, plot the field "phi" from the "BOOZ2_STAB_ATTITUDE_REFERENCE" message. This is our reference roll angle, that is, the roll value we are trying to achieve.
 
 
 
In the second plotter, plot the fields "delta_a_fb" and "delta_a_ff". Those are respectively the feddback and feedforward part of our roll command. The sum of those two terms is what is used as roll command.The feedforward part is the part used to follow our trajectory and the feedback part is the part used to reject perturbations.
 
 
 
 
 
* In "Settings", go to the "Att Loop" tab
 
We notice that the vehicle doesn't follow accurately the step trajectory we are trying to make him do.
 
 
Start by setting the value of the proportional gain ('pgain_phi') to 1000 instead of 400. The vehicle now follows the trajectory faster but overshoots. To prevent that, increase the value of the derivative gain ('dgain p') from -300 to -700.
 
  
If you look at the plotter where you're ploting the commands, you'll notice that during steps, the feedback command has to work hard. This means that our feedforward command is badly tunned, and namely not working hard enough.Increase the value of the feedforward gain ('ddgain p') from 300 to 540. You'll notice that now the feedback command has becomed marginal during the steps. This is the right value for the gain. Anything bigger will make the feedback command fight against the feedforward command during steps, anything smaller will make the feedback command have to complement the feedforward command.
+
All the sensors needs to be calibrated in order to provide useful informations. The calibration process needs to be performed after the assembly of the vehicle is complete.
  
=== Something else ===
+
**Note:  The barometer on the Booz Main board is designed to work between -300 to 928 meters MSL.  In this range it will create a zero offset, and then give 10cm resolution for 100 meters of altitude.  BEWARE! if you fly above 100m the ADC will saturate.  In addition, if you are someplace that is above 928 meters MSL the baro will not calibrate on boot, and will not output values.  If you look at the RAW messages you will see that the BARO_RAW message reads 0 for both values.  To fix the latter issue, the Value of R20 on the Main board can be changed to change the range.  An example: If R20 is changes from a 560ohm to a 100ohm resistor, the new measurable range would be from -300 to 1800 meters.  Because this changes the gain on the sensor it will also change the amount of altitude you can read from the ADC.  For this case we reduce the amount to ~90 meters. 
  
* try starting flightgear with
+
more info in [[BoozSensorsCalibration]]
  
fgfs --fdm=null --native-gui=socket,in,30,,5501,udp --prop:/sim/model/path=Models/Aircraft/paparazzi/simple_bipe.xml
+
== GCS notes ==
 +
* If you set your ground modems for an interface rate different than 9600bps you need to add a flag to the "link" program on startup. In GCS if you use "Execute" you will see "link" is the first. You can click stop, then modify the command line by clicking in the text area. Add the -s flag with the baud rate you use. In my case 57600. So I use: -s 57600. Then click "Redo" and link will be restarted with the new flag and value (and you will start seeing messages and GCS wil populate). So you don't have to repeat this each time do "Save Session" and this will save the changes.
  
an the sim with
+
== Airframe settings and Flight testing ==
 +
* [[BoozAirframe]]
  
LD_LIBRARY_PATH=/opt/jsbsim/lib ./var/BOOZ2_A1/sim/simsitl --fg_host 127.0.0.1 --rc_script 1
+
== User Gallery ==
  
 +
This page holds a list of current Booz users
  
== Hardware Test ==
+
[[BoozUserList]]
  
Booz comes with a number of simple test programs that you can use to validate a newly assembled board or learn how booz code works in case you want to extend it.
+
[[Category:Autopilots]] [[Category:Booz]]
The ''Makefile'' for those is in ''conf/autopilot/booz2_test_progs.makefile''
 
 
 
 
 
=== test_downlink ===
 
Paparazzi's Makefile allow you to build different ''TARGETS'' (aka programs) using a doted notation. The begining of the ''Makefile'' reads
 
 
 
<syntaxhighlight lang="make">
 
#
 
# test downlink
 
#
 
test_downlink.ARCHDIR = $(ARCHI)
 
test_downlink.ARCH = arm7tdmi
 
test_downlink.TARGET = test_downlink
 
test_downlink.TARGETDIR = test_downlink
 
#
 
test_downlink.CFLAGS += -DBOARD_CONFIG=$(BOARD_CFG) $(BOOZ_CFLAGS)
 
test_downlink.CFLAGS += -DPERIPHERALS_AUTO_INIT
 
test_downlink.srcs  += $(SRC_BOOZ_TEST)/booz2_test_downlink.c
 
test_downlink.CFLAGS += -DUSE_LED
 
test_downlink.CFLAGS += -DPERIODIC_TASK_PERIOD='SYS_TICS_OF_SEC((1./10.))' -DTIME_LED=1
 
test_downlink.srcs  += sys_time.c $(SRC_ARCH)/sys_time_hw.c $(SRC_ARCH)/armVIC.c
 
#
 
test_downlink.CFLAGS += -DUSE_UART1 -DUART1_BAUD=B57600
 
test_downlink.srcs  += $(SRC_ARCH)/uart_hw.c
 
#
 
test_downlink.CFLAGS += -DDOWNLINK -DDOWNLINK_TRANSPORT=PprzTransport -DDOWNLINK_DEVICE=Uart1
 
test_downlink.srcs  += downlink.c pprz_transport.c
 
</syntaxhighlight>
 
 
 
FIXME: More on this when syntax highlighting/line numbering works
 
 
 
The command line to compile the "test_downlink" target for the BOOZ2_A1 aircraft would be
 
 
 
make AIRCRAFT=BOOZ2_A1 test_downlink.compile
 
 
 
and to upload this program to your board ( you don't really need to type the previous command, make is smart and will compile your program if needed when you ask him to upload it )
 
 
 
make AIRCRAFT=BOOZ2_A1 test_downlink.upload
 
 
 
 
 
=== test_max1168 ===
 
 
 
the ''max1168'' is the 16 bits analog to digital converter chip used on the IMU to sample gyros and accels.
 
 
 
make AIRCRAFT=BOOZ2_A1 test_max1168.upload
 
 
 
 
 
== Sensors Calibration ==
 

Latest revision as of 14:53, 20 June 2012

Booz logo.jpg

Overview

Booz is an extension of Paparazzi to VTOLs. At the current stage of the project, the system provides attitude stabilization, vertical and horizontal guidance and automatic navigation. It is able to use Paparazzi flight plans and uses Paparazzi telemetry and datalink, which means all the Paparazzi ground segment applications are available( plotter, settings, gcs, etc...)

The current avionics consist of 3 boards

Booz2 main.jpg Booz2 imu.jpg Boozassy2.jpg

  • The main board, comprising power supply, a LPC2148 and a barometer.
  • The IMU board, comprising gyroscopes, accelerometers, magnetometers and a 16-bit ADC.
  • The GPS board, using a LEA-5H by ublox.

Additional Booz boards:

Med BoozPower03.jpg

  • The "power" board.

It flies on a variety of Quad-rotor platforms

Small quad.jpg Booz2 a2.jpg Booz2 a1.jpg

and less common vehicles

Booz2 a4.jpg Booz2 a4 2.jpg Booz2 a5.jpg

Simulator

Paparazzi features the advanced NPS simulator which can serve many purposes, from learning how to operate a vehicle to evaluating control or estimation algorithms.

Hardware

Motor controllers

Booz is able to handle a number of quadrotor specific brushless motor controllers.

more info in BoozMotorControllers

Power board

The power board allows to switch power on and off on your vehicle as well as to make a clean wiring by avoiding wired Y

more info in BoozPowerBoard

Booz GPS

more info in BoozGPSBoard

IMU

Booz has support for its custom designed IMU as well as for Cloudcap Crista IMU

more info in BoozIMU

Autopilot

Current version of Booz autopilot is based on a lpc2148

more info in BoozAutopilot

A new version of the autopilot, based on a STM32 is in development

more info in Lisa

Airframes

One nice thing about quadrotors is that the mechanics being extremely simple, they can be build with very few tools. Booz mounting holes are compatible with popular of the shelf frames.

more info in BoozAirframes

Purchasing Hardware

There are now vendors offering Booz hardware, Please see the Get Hardware page for details.

Hardware Test

Booz comes with a number of simple test programs that you can use to validate a newly assembled board or learn how booz code works in case you want to extend it.

more info in BoozHardwareTest

Software

Peripheral support

Type # Model Booz Lisa/L
IMU Boozv1 yes yes
crista yes yes
mti  ? no
vn100 ? no
RC PPM yes no
spektrum yes yes
Actuators asctec yes yes
mkk yes yes
servospwm 2 6
CAN no in progress


Sensors Calibration

All the sensors needs to be calibrated in order to provide useful informations. The calibration process needs to be performed after the assembly of the vehicle is complete.

    • Note: The barometer on the Booz Main board is designed to work between -300 to 928 meters MSL. In this range it will create a zero offset, and then give 10cm resolution for 100 meters of altitude. BEWARE! if you fly above 100m the ADC will saturate. In addition, if you are someplace that is above 928 meters MSL the baro will not calibrate on boot, and will not output values. If you look at the RAW messages you will see that the BARO_RAW message reads 0 for both values. To fix the latter issue, the Value of R20 on the Main board can be changed to change the range. An example: If R20 is changes from a 560ohm to a 100ohm resistor, the new measurable range would be from -300 to 1800 meters. Because this changes the gain on the sensor it will also change the amount of altitude you can read from the ADC. For this case we reduce the amount to ~90 meters.

more info in BoozSensorsCalibration

GCS notes

  • If you set your ground modems for an interface rate different than 9600bps you need to add a flag to the "link" program on startup. In GCS if you use "Execute" you will see "link" is the first. You can click stop, then modify the command line by clicking in the text area. Add the -s flag with the baud rate you use. In my case 57600. So I use: -s 57600. Then click "Redo" and link will be restarted with the new flag and value (and you will start seeing messages and GCS wil populate). So you don't have to repeat this each time do "Save Session" and this will save the changes.

Airframe settings and Flight testing

User Gallery

This page holds a list of current Booz users

BoozUserList