Difference between revisions of "Subsystems"

From PaparazziUAV
Jump to navigation Jump to search
(16 intermediate revisions by 6 users not shown)
Line 5: Line 5:


They are selected and configured with a <source lang="xml" enclose="none"><subsystem name="foo" type="bar"></source> in the [[Airframe_Configuration#Firmware_and_Hardware_definitions|firmware section of the airframe file]].
They are selected and configured with a <source lang="xml" enclose="none"><subsystem name="foo" type="bar"></source> in the [[Airframe_Configuration#Firmware_and_Hardware_definitions|firmware section of the airframe file]].
{| class="wikitable"
|-
| Since '''v5.8''' it is possible to safely replace ''subsystem'' by ''module'' in your airframe file. The roadmap of Paparazzi is to convert existing subsystems to [[modules]].
|}


All this does is basically include a makefile <tt>foo_bar.makefile</tt> that adds the respective sources and adds a few configuration options. (See <tt>conf/firmwares/subsystems/...</tt>)
All this does is basically include a makefile <tt>foo_bar.makefile</tt> that adds the respective sources and adds a few configuration options. (See <tt>conf/firmwares/subsystems/...</tt>)
Line 10: Line 14:
This makes it easier to put an airframe file together (they replace the old raw makefile section) and also allows us to change the code and move/rename files behind the scenes without breaking everyones airframe files.
This makes it easier to put an airframe file together (they replace the old raw makefile section) and also allows us to change the code and move/rename files behind the scenes without breaking everyones airframe files.


See [[FirmwareArchitecture]] for the differences to [[Modules]].
See [[FirmwareArchitecture]] for the differences to [[Modules]], as well as how to write a new subsystem.


== Available Subsystems ==
== Available Subsystems ==


{| class="wikitable" border="1"
{| class="wikitable sortable" border="1"
! Name !! Types !! Firmwares !! Architecture !! Description
! Name !! Types !! Firmwares !! Architecture !! Description
|-
|-
Line 23: Line 27:
* nmea
* nmea
* mediatek_diy
* mediatek_diy
* skytraq  
* skytraq
* sirf
|
|
* all
* all
* fixedwing
* fixedwing
* all
* all
* all
* fixedwing
* rotorcraft
* rotorcraft
* rotorcraft
|
|
Line 36: Line 42:
|[[Subsystem/imu|imu]]
|[[Subsystem/imu|imu]]
||
||
* analog
* apogee
* aspirin_v1.0
* aspirin_v1.0
* aspirin_v1.5
* aspirin_v1.5
* aspirin_v2.1
* aspirin_v2.1
* aspirin_v2.2
* aspirin_i2c_v1.0
* aspirin_i2c_v1.5
* aspirin2_i2c
* b2_v1.0
* b2_v1.0
* b2_v1.1
* b2_v1.1
* b2_v1.2
* b2_v1.2
* drotek_10dof_v2
* gl1
* yai
* yai
* aspirin_i2c
* krooz_sd
* aspirin2_i2c
* navgo
* analog
* umarin
* ppzuav
* crista
* crista
* crista_hmc5843
* crista_hmc5843
* ppzuav
|
|
* all
* all
Line 57: Line 71:
* all
* all
* all
* all
* fixedwing
* all
* fixedwing
* all
* fixedwing
* all
* fixedwing
* all
* all
* all
* all
* all
* all
* all
* all
* rotorcraft
* rotorcraft
* rotorcraft
* rotorcraft
* fixedwing
|
|
* STM32
* all
* STM32
* stm32f4
* STM32
* all
* all
* all
* all
* all
* all
* all
* all
* all
* all
Line 74: Line 101:
* all
* all
* all
* all
* stm32f4
* lpc21
* lpc21
* all
* all
* all
* all
Line 85: Line 115:
|[[Subsystem/ahrs|ahrs]]
|[[Subsystem/ahrs|ahrs]]
||
||
* int_cmpl_quat
* float_cmpl
* float_dcm  
* float_dcm  
* int_cmpl_euler
* int_cmpl_euler
* int_cmpl_quat
* float_mlkf
* infrared
* infrared
|
|
Line 94: Line 126:
* all
* all
|| AHRS algorithms
|| AHRS algorithms
|-
|[[Subsystem/ins|ins]]
||
* alt_float
* gps_passthrough
* xsens
* xsens700
* ''no_type''
* hff
* extended
* ardrone2
* float_invariant
|
* fixedwing
* fixedwing
* fixedwing
* fixedwing
* rotorcraft
* rotorcraft
* rotorcraft
* rotorcraft
* all (experimental, only tested on fw)
|
* all
* all
* all
* all
* all
* all
* all
* all
* mcu with fpu (e.g. stm32f4)
|| INS algorithms
Most of the INS filters are only providing position and speed, and they need to be used together with an AHRS filter for attitude
Currently, only the experimental invariant filter is a full INS
|-
|-
|[[Subsystem/radio_control|radio_control]]
|[[Subsystem/radio_control|radio_control]]
Line 100: Line 168:
* spektrum
* spektrum
* datalink
* datalink
* superbitrf_rc
* sbus
* sbus_dual
|  
|  
* all
* all
|
* all
* all
* fixedwing
* STM32
|
* all
* all
* STM32
* STM32
* all
* all
* all
| Radio Control implementations
| Radio Control implementations
Line 115: Line 187:
* transparent_usb
* transparent_usb
* xbee_api
* xbee_api
* superbitrf
|  
|  
* all
* all
* all
* all
* rotorcraft
|
|
* all
* all
* LPC21xx
* LPC21xx
* all
* all
* STM32
| Telemetry implementations
| Telemetry implementations
|-
|-
Line 126: Line 203:
||
||
* mkk
* mkk
* mkk_v2
* asctec
* asctec
* asctec_v2
* asctec_v2
* pwm_supervision
* pwm
* dualpwm
* skiron
* skiron
* heli
|  
|  
* rotorcraft
* all
* rotorcraft
* rotorcraft
* rotorcraft
* rotorcraft
* rotorcraft
|  
|  
* all
* all
* all
| Drivers for different ESCs and servos
* all
* all
* all
* all
| Drivers for different ESCs for rotorcraft
Fixedwing ESCs and servos are
 
possible on all firmwares/architectures
|-
|-
|[[Subsystem/stabilization|stabilization]]
|[[Subsystem/stabilization|stabilization]]
Line 154: Line 219:
* int_quat
* int_quat
* float_quat
* float_quat
* euler
* int_euler
* float_euler
* indi
|  
|  
* rotorcraft
* rotorcraft
* rotorcraft
* rotorcraft
|  
|  
* all
* all
* all
* all
| Attitude control system for rotorcraft
| Attitude control system for rotorcraft

Revision as of 11:33, 16 February 2016

Mostly a subsystem is a part offering a specific functionality with a defined interface and can have multiple different implementations. (See sw/airborne/subsystems/...)

They are selected and configured with a <subsystem name="foo" type="bar"> in the firmware section of the airframe file.

Since v5.8 it is possible to safely replace subsystem by module in your airframe file. The roadmap of Paparazzi is to convert existing subsystems to modules.

All this does is basically include a makefile foo_bar.makefile that adds the respective sources and adds a few configuration options. (See conf/firmwares/subsystems/...)

This makes it easier to put an airframe file together (they replace the old raw makefile section) and also allows us to change the code and move/rename files behind the scenes without breaking everyones airframe files.

See FirmwareArchitecture for the differences to Modules, as well as how to write a new subsystem.

Available Subsystems

Name Types Firmwares Architecture Description
gps
  • ublox
  • ublox_utm
  • nmea
  • mediatek_diy
  • skytraq
  • sirf
  • all
  • fixedwing
  • all
  • fixedwing
  • rotorcraft
  • rotorcraft
  • all
GPS drivers
imu
  • analog
  • apogee
  • aspirin_v1.0
  • aspirin_v1.5
  • aspirin_v2.1
  • aspirin_v2.2
  • aspirin_i2c_v1.0
  • aspirin_i2c_v1.5
  • aspirin2_i2c
  • b2_v1.0
  • b2_v1.1
  • b2_v1.2
  • drotek_10dof_v2
  • gl1
  • yai
  • krooz_sd
  • navgo
  • umarin
  • crista
  • crista_hmc5843
  • ppzuav
  • all
  • all
  • all
  • all
  • all
  • all
  • all
  • all
  • all
  • all
  • all
  • all
  • all
  • all
  • all
  • all
  • all
  • all
  • rotorcraft
  • rotorcraft
  • fixedwing
  • all
  • stm32f4
  • all
  • all
  • all
  • all
  • all
  • all
  • all
  • all
  • all
  • all
  • all
  • all
  • all
  • stm32f4
  • lpc21
  • lpc21
  • all
  • all
  • all
IMU drivers

Traditional IR sensors can be used for fixedwing

but an IMU subsystem is not required

ahrs
  • int_cmpl_quat
  • float_cmpl
  • float_dcm
  • int_cmpl_euler
  • float_mlkf
  • infrared
  • all
  • all
AHRS algorithms
ins
  • alt_float
  • gps_passthrough
  • xsens
  • xsens700
  • no_type
  • hff
  • extended
  • ardrone2
  • float_invariant
  • fixedwing
  • fixedwing
  • fixedwing
  • fixedwing
  • rotorcraft
  • rotorcraft
  • rotorcraft
  • rotorcraft
  • all (experimental, only tested on fw)
  • all
  • all
  • all
  • all
  • all
  • all
  • all
  • all
  • mcu with fpu (e.g. stm32f4)
INS algorithms

Most of the INS filters are only providing position and speed, and they need to be used together with an AHRS filter for attitude

Currently, only the experimental invariant filter is a full INS

radio_control
  • ppm
  • spektrum
  • datalink
  • superbitrf_rc
  • sbus
  • sbus_dual
  • all
  • all
  • STM32
  • all
  • STM32
  • all
  • all
Radio Control implementations
telemetry
  • transparent
  • transparent_usb
  • xbee_api
  • superbitrf
  • all
  • all
  • all
  • rotorcraft
  • all
  • LPC21xx
  • all
  • STM32
Telemetry implementations
actuators
  • mkk
  • mkk_v2
  • asctec
  • asctec_v2
  • pwm
  • dualpwm
  • skiron
  • all
  • all
Drivers for different ESCs and servos
stabilization
  • int_quat
  • float_quat
  • int_euler
  • float_euler
  • indi
  • rotorcraft
  • all
Attitude control system for rotorcraft