Difference between revisions of "User:Earthpatrol"

From PaparazziUAV
Jump to navigation Jump to search
m
Line 235: Line 235:




==== Command Line Tools
==== Command Line Tools ====


===== Ivyprobe =====
===== Ivyprobe =====

Revision as of 14:06, 13 February 2015

HooperFly Autonomy

Developing autonomous capabilities for HooperFly using the Lisa MX autopilot from 1BitSquared in tandem with PaparazziUAV.

Frames & Components

The collection of HooperFly frames configured to fly with Paparazzi.

HooperFly RacerPEX : Azul

HooperFly RacerPEX : Verde

Frame/Component Test Bench : MultiWii FC & DSM2 Receiver

Each frame and associated components(motors/escs/wiring harness) are tested for functionality using a MultiWii FC and DSM2 receiver prior to the Lisa/MX autopilot integration.

Multiwii dsm2 testfc.JPG

Flight Status

Airframes: HooperFly Racer-PEX, Autonomous Twins: Azul & Verde

Attempting to use PaparazziUAV to fly two HooperFly RacerPEX in a synchronized autonomous fashion.

Hooperfly racerpex azulverde.jpg

Airframe Configuration
Motor Layout Diagrams: Quad, Hexa, Octo

Motor position and rotation diagrams for "x" and "+" configurations of HooperFly quads, hexa, and octocopters. The top row consists of the "x" configuration frames and the bottom row contains the "+" configurations. Odd numbered motors(1, 3, 5, 7), blue in color, rotate clockwise. Even numbered motors(2, 4, 6, 8), green in color, rotate counter-clockwise.

Motor layout diagrams.png

All HooperFly airframe configuration files are located in the directory:

$PAPARAZZI_HOME/conf/airframes/HooperFly
Table of Airframe Config Files
Airframe File
TeensyFly Quad teensyfly_quad_lisa_mx_20.xml
TeensyFly Hexa teensyfly_hexa_lisa_mx_20.xml
RacerPEX Quad racerpex_quad_lisa_mx_20.xml
RacerPEX Hexa racerpex_hexa_lisa_mx_20.xml
RacerPEX Octo racerpex_octo_lisa_mx_20.xml
JSBSim Aircraft Configuration

Jsbsim coordinates.gif

JSBSim defines a "BODY" frame with the following cartesian coordinate system to quantify propulsion forces:

  • Top Left Quadrant (e.g.: NW, FL) -, -
  • Top Right Quadrant (e.g.: NE, FR) -, +
  • Bottom Right Quadrant (e.g.: SE, BR) +, +
  • Bottom Left Quadrant (e.g.: SW, BL) +, -

Reference the JSBSim Documentation for a discussion about the STRUCTURAL vs. BODY frame as well as details related to each section of a jsbsim configuration file.

All HooperFly JSBSim aircraft configuration files are located in the directory:

$PAPARAZZI_HOME/conf/simulator/jsbsim/aircraft/HooperFly
Table of JSBSim Aircraft Config Files
Airframe File
TeensyFly Quad teensyfly_quad.xml
TeensyFly Hexa teensyfly_hexa.xml
RacerPEX Quad racerpex_quad.xml
RacerPEX Hexa racerpex_hexa.xml
RacerPEX Octo racerpex_octo.xml

Telemetry - 2.4Ghz Xbee Radios

Radio Setup
Links

Receiver - 2.4Ghz DSM2/DSMX Satellite

Wiring/Binding

The transmitter must bind using the DSM2 protocol only. Note: The DSMX protocol is not currently support in Paparazzi.

Links
Verify TX/RX Connection
  • Lisa MX led 4 light on: red
  • Select the PPM settings and display the TX/RX related messages using the message tool.

Autopilot - Lisa/MX

Lisa MX Mounting Orientation

The default "front" of the Lisa MX controller is dependent on the placement of the IMU on the autopilot pcb board. This can differ between revisions of the autopilot. The PHI/THETA/PSI parameters, in the IMU section of the airframe definition file, are used to normalize the body to IMU placement.


File: conf/airframes/HooperFly/teensyfly_quad_lisa_mx_20.xml
 <section name="IMU" prefix="IMU_">
    <define name="ACCEL_X_NEUTRAL" value="11"/>
    <define name="ACCEL_Y_NEUTRAL" value="11"/>
    <define name="ACCEL_Z_NEUTRAL" value="-25"/>

    <!-- replace this with your own calibration -->
    <define name="MAG_X_NEUTRAL" value="-179"/>
    <define name="MAG_Y_NEUTRAL" value="-21"/>
    <define name="MAG_Z_NEUTRAL" value="79"/>
    <define name="MAG_X_SENS" value="4.17334785618" integer="16"/>
    <define name="MAG_Y_SENS" value="3.98885954135" integer="16"/>
    <define name="MAG_Z_SENS" value="4.40442339014" integer="16"/>

    <define name="BODY_TO_IMU_PHI"   value="0." unit="deg"/>
    <define name="BODY_TO_IMU_THETA" value="0." unit="deg"/>
    <define name="BODY_TO_IMU_PSI"   value="0." unit="deg"/>
  </section>
Command Line Loader Using Black Magic Probe(BMP)

The following command will upload firmware to the autopilot:

make AIRCRAFT=Teensy_Fly_Quad ap.upload BMP_PORT=/dev/cu.usbmodemE2B9BDC1

Add the clean_ac target prior to the ap.upload target to force a clean build and load:

make AIRCRAFT=Teensy_Fly_Quad clean_ac ap.upload BMP_PORT=/dev/cu.usbmodemE2B9BDC1

GPS - UBLOX LEA-6H

  • Verify firmware revision
  • Picoblade wiring diagram

Paparazzi UAV Project Development and Compilation

Project Related

Environment

OPAM

$ opam list
Installed packages for 4.01.0:
base-bigarray    base  Bigarray library distributed with the OCaml compiler
base-threads     base  Threads library distributed with the OCaml compiler
base-unix        base  Unix library distributed with the OCaml compiler
camlp4         4.01.0  Camlp4 is a system for writing extensible parsers for programming language
ivy             1.2.2  This OCaml-library interfaces the Ivy software bus C-library.
lablgtk        2.18.2  OCaml interface to GTK+
ocamlfind       1.5.3  A library manager for OCaml
ocamlnet        3.7.6  Internet protocols (http, cgi, email etc.) and helper data structures (mai
xml-light         2.4  Xml-Light is a minimal XML parser & printer for OCaml 

$ opam switch
system  I system  System compiler (4.02.0)
4.02.0  I 4.02.0  Official 4.02.0 release
4.01.0  C 4.01.0  Official 4.01.0 release
--     -- 3.11.2  Official 3.11.2 release
--     -- 3.12.1  Official 3.12.1 release
--     -- 4.00.0  Official 4.00.0 release
--     -- 4.00.1  Official 4.00.1 release

$ opam switch 4.01.0
# To complete the configuration of OPAM, you need to run:
eval `opam config env`

eval `opam config env`
 


Command Line Tools

Ivyprobe

With the command line tool ivyprobe, you can see what is being sent over the IVY bus.

$ ivyprobe -help
ivyprobe: illegal option -- h
usage: ivyprobe [options] [regexps]
	-b bus	defines the Ivy bus to which to connect to, defaults to 127:2010
	-t	triggers the timer test
	-n name	changes the name of the agent, defaults to IVYPROBE
	-v	prints the ivy relase number

regexp is a Perl5 compatible regular expression (see ivyprobe(1) and pcrepattern(3) for more info
use .help within ivyprobe
	-s bindcall	active the interception of regexp's subscribing or unscribing
	-f regexfile	read list of regexp's from file one by line
	-c msg1,msg2,msg3,...	filter the regexp's not beginning with words
 

The following command will display all packages with all their content:

ivyprobe "(.*)"

You can constrain what ivyprobe displays by extending the regular expression for example, the following command will display raw accelerometer data that is being sent over the IVY bus

ivyprobe “[\d]+ IMU_ACCEL_RAW (.*)”

ivyprobe takes that regular expression and prints the match inside the (), by default it is only showing telemetry:*

Note: The packages/class names returned by ivyprobe can be used as input to the messages tool.

Messages
$ ./messages -help
Usage: 
  -b <ivy bus> Default is 224.255.255.255:2010
  -c class name
  -help  Display this list of options
  --help  Display this list of options
 
GCS
$ ./gcs -help
Usage: 
  -auto_ortho IGN tiles path
  -b <ivy bus> Default is 224.255.255.255:2010
  -center Initial map center (e.g. 'WGS84 43.605 1.443')
  -center_ac Centers the map on any new A/C
  -edit Flight plan editor
  -fullscreen Fullscreen window
  -maps_fill Automatically start loading background maps
  -maps_zoom Background maps zoomlevel (default: 20, min: 18, max: 22)
  -ign IGN tiles path
  -lambertIIe Switch to LambertIIe projection
  -layout <XML layout specification> GUI layout. Default: horizontal.xml
  -m Map XML description file
  -maximize Maximize window
  -mercator Switch to Mercator projection, default
  -mplayer Launch mplayer with the given argument as X plugin
  -no_alarm Disables alarm page
  -maps_no_http Switch off downloading of maps, always use cached maps
  -ortho IGN tiles path
  -osm Use OpenStreetMap database (default is Google)
  -ms Use Microsoft maps database (default is Google)
  -particules Display particules
  -plugin External X application (launched with the id of the plugin window as argument)
  -ref Geographic ref (e.g. 'WGS84 43.605 1.443')
  -speech Enable vocal messages
  -srtm Enable SRTM elevation display
  -track_size Default track length (500)
  -utm Switch to UTM local projection
  -wid <window id> Id of an existing window to be attached to
  -zoom Initial zoom
  -auto_hide_fp Automatically hide flight plans of unselected aircraft
  -help  Display this list of options
  --help  Display this list of options
 
===== Link =====
$ ./link --help
Usage: 
  -aerocomm Set serial Aerocomm data mode
  -audio Listen a modulated audio signal on <port>. Sets <port> to /dev/dsp (the -d option must used after this one if needed)
  -b <ivy bus> Default is 224.255.255.255:2010
  -d <port> Default is /dev/ttyUSB0
  -dtr Set serial DTR to false (deprecated)
  -fg Enable trafic statistics on standard output
  -noac_info Disables AC traffic info (uplink).
  -nouplink Disables the uplink (from the ground to the aircraft).
  -s <baudrate>  Default is 9600
  -hfc Enable UART hardware flow control (CTS/RTS)
  -local_timestamp Add local timestamp to messages sent over ivy
  -transport <transport> Available protocols are modem,pprz,pprz2 and xbee. Default is pprz
  -udp Listen a UDP connection on <udp_port>
  -udp_port <UDP port> Default is 4242
  -udp_uplink_port <UDP uplink port> Default is 4243
  -udp_port <UDP port> Default is 4242
  -uplink Deprecated (now default)
  -xbee_addr <my_addr> (256)
  -xbee_retries <nb retries> (10)
  -xbee_868 Enables the 868 protocol
  -redlink Sets whether the link is a redundant link. Set this flag and the id flag to use multiple links
  -id Sets the link id. If multiple links are used, each must have a unique id. Default is 0
  -help  Display this list of options
  --help  Display this list of options
 
Server
$ ./server --help
Usage: 
  -b Bus	Default is 224.255.255.255:2010
  -hostname <hostname> Set the address for the http server
  -http Send http: URLs (default is file:)
  -kml Enable KML file updating
  -kml_no_http KML without web server (local files only)
  -kml_port Port for KML files (default is 8889)
  -n Disable log
  -no_md5_check Disable safety matching of live and current configurations
  -replay_old_log Enable aircraft registering on PPRZ_MODE messages
  -help  Display this list of options
  --help  Display this list of options