SlideShare a Scribd company logo
1 of 12
Download to read offline
PX4 Seminar
- On-board Applications and Makefile -
Jungtaek Kim
jtkim@postech.edu
2015.04.10
PX4 Autopilot
• Independent, open-source, open-hardware autopilot
system oriented toward autonomous aircraft
• BSD License
• Started in 2009
• Be being developed and used at Computer Vision
and Geometry Lab of ETH Zurich and supported by
the Autonomous Systems Lab and the Automatic
Control Laboratory
Main Software Modules
• PX4 Flight Stack
• Flight control modules (Controller, Attitude estimator, MAVLink and
etc)
• PX4 Middleware
• Drivers, uORB
• PX4 ESC Firmware
• PX4 Bootloader
• Operating System
• NuttX OS
On-board Applications
• System Applications
• mavlink – Sends and receives MAVLink
messages via serial port
• sdlog2 – Logs system/flight data to the
SD card
• tests – Test applications to test the
system (during bringup and
troubleshooting)
• top – Lists current processes and their
CPU load
• uORB – Micro Object Request Broker -
distributing information between other
applications
• Drivers
• mkblctrl – Mikrokopter BLCTRL Driver
• esc_calib – ESC calibration tool
• fmu – Configures FMU GPIO pins
• gpio_led – GPIO LED driver
• gps – GPS receiver driver
• pwm – Command to set PWM update
rates
• sensors – Sensor utility
• px4io – PX4IO driver
• uavcan – UAVCAN driver
On-board Applications (cont’d)
• Flight Control Applications
• Flight Safety and Navigation
• commander – main flight safety state
machine
• navigator – Mission, failsafe and RTL
navigator
• Attitude and Position Estimators
• attitude_estimator_ekf – EKF-based
attitude estimator
• ekf_att_pos_estimator – EKF-based
attitude and position estimator (Paul
Riseborough)
• position_estimator_inav – Inertial
navigation position estimator
• Multirotor Attitude and Position Controllers
• mc_att_control – Multirotor attitude
controller
• mc_pos_control – Multirotor position
controller
• Fixedwing Attitude and Position
Controllers
• fw_att_control – Fixed wing attitude
controller
• fw_pos_control_l1 – Fixed wing
position controller
• VTOL Attitude Controller
• vtol_att_control – VTOL attitude
controller
System Startup
• The boot process of PX4
• /etc/init.d/rcS (https://github.com/PX4/Firmware/blob/master/ROMFS/px4fmu_common/
init.d/rcS)
• /etc/rc.txt on the SD card (for advanced users)
• If /etc/rc.txt does not exist, set to autostart mode
• /etc/config.txt is executed if it exists
• Configuration to set the environment variables (https://pixhawk.org/dev/
system_startup#configuration_variables)
• /etc/extras.txt is executed if it exists
• Start custom apps after the autostart process
• All scripts belonging to the autostart process (https://github.com/PX4/Firmware/tree/master/
ROMFS/px4fmu_common/init.d)
/etc/config.txt Example for
Custom Model
#	
  Generic	
  Quadcopter	
  +	
  
set	
  VEHICLE_TYPE	
  mc	
  
set	
  MIXER	
  FMU_quad_+	
  
#	
  PX4IO	
  PWM	
  output	
  will	
  be	
  used	
  by	
  default	
  
set	
  PWM_OUT	
  1234	
  	
  	
  	
  #	
  Change	
  parameters	
  for	
  the	
  first	
  4	
  outputs	
  
set	
  PWM_RATE	
  400	
  	
  	
  	
  	
  	
  	
  	
  #	
  Set	
  PWM	
  rate	
  to	
  400	
  Hz	
  for	
  better	
  performance	
  
set	
  PWM_DISARMED	
  900	
  	
  	
  	
  #	
  Motors	
  should	
  stop	
  at	
  this	
  PWM	
  value	
  
set	
  PWM_MIN	
  1100	
  	
  	
  	
  	
  	
  	
  	
  #	
  Motors	
  should	
  spin	
  at	
  low,	
  idle	
  speed	
  at	
  this	
  PWM	
  value	
  
set	
  PWM_MAX	
  1900	
  	
  	
  	
  	
  	
  	
  	
  #	
  Motors	
  should	
  spin	
  at	
  max	
  speed	
  at	
  this	
  PWM	
  value
NuttShell
• An embedded equivalent to bash and similar Unix
shells
• It is used to start all on-board applications and
manage a executed process
• It interacts with the user over a serial port (FMU
system’s UARTS or USB)
• http://nuttx.org/doku.php?
id=documentation:nuttshell
Makefile
• Default available targets
• archives - Build the NuttX RTOS archives that are used by the firmware build.
• all - Build all firmware configs: aerocore_default px4fmu-v1_default px4fmu-v2_default px4fmu-v2_multiplatform px4fmu-
v2_test px4io-v1_default px4io-v2_default. A limited set of configs can be built with CONFIGS=<list-of-configs>
• aerocore_default - Build just the aerocore_default firmware configuration.
• px4fmu-v1_default - Build just the px4fmu-v1_default firmware configuration.
• px4fmu-v2_default - Build just the px4fmu-v2_default firmware configuration.
• px4fmu-v2_multiplatform - Build just the px4fmu-v2_multiplatform firmware configuration.
• px4fmu-v2_test - Build just the px4fmu-v2_test firmware configuration.
• px4io-v1_default - Build just the px4io-v1_default firmware configuration.
• px4io-v2_default - Build just the px4io-v2_default firmware configuration.
• clean - Remove all firmware build pieces.
• distclean - Remove all compilation products, including NuttX RTOS archives.
• upload - When exactly one config is being built, add this target to upload the firmware to the board when the build is
complete. Not supported for all configurations.
• testbuild - Perform a complete clean build of the entire tree.
Additional Rule for Makefile
• /makefiles/*.mk
• Details on /makefiles/README.txt (https://
github.com/PX4/Firmware/blob/master/makefiles/
README.txt)
Reference
• http://en.wikipedia.org/wiki/PX4_autopilot
• https://pixhawk.org/start
• https://pixhawk.org/firmware/source_code
• https://github.com/PX4
• https://pixhawk.org/dev/system_startup
• https://pixhawk.org/firmware/apps/start
• https://pixhawk.org/firmware/apps/nsh

More Related Content

What's hot

LAS16-210: Hardware Assisted Tracing on ARM with CoreSight and OpenCSD
LAS16-210: Hardware Assisted Tracing on ARM with CoreSight and OpenCSDLAS16-210: Hardware Assisted Tracing on ARM with CoreSight and OpenCSD
LAS16-210: Hardware Assisted Tracing on ARM with CoreSight and OpenCSDLinaro
 
BKK16-103 OpenCSD - Open for Business!
BKK16-103 OpenCSD - Open for Business!BKK16-103 OpenCSD - Open for Business!
BKK16-103 OpenCSD - Open for Business!Linaro
 
HKG18-110 - net_mdev: Fast path user space I/O
HKG18-110 - net_mdev: Fast path user space I/OHKG18-110 - net_mdev: Fast path user space I/O
HKG18-110 - net_mdev: Fast path user space I/OLinaro
 
LAS16-507: LXC support in LAVA
LAS16-507: LXC support in LAVALAS16-507: LXC support in LAVA
LAS16-507: LXC support in LAVALinaro
 
Kernel Recipes 2015: Greybus
Kernel Recipes 2015: GreybusKernel Recipes 2015: Greybus
Kernel Recipes 2015: GreybusAnne Nicolas
 
Heterogeneous multiprocessing on androd and i.mx7
Heterogeneous multiprocessing on androd and i.mx7Heterogeneous multiprocessing on androd and i.mx7
Heterogeneous multiprocessing on androd and i.mx7Kynetics
 
Asymmetric Multiprocessing - Kynetics ELC 2018 portland
Asymmetric Multiprocessing - Kynetics ELC 2018 portlandAsymmetric Multiprocessing - Kynetics ELC 2018 portland
Asymmetric Multiprocessing - Kynetics ELC 2018 portlandNicola La Gloria
 
BKK16-410 SoC Idling & CPU Cluster PM
BKK16-410 SoC Idling & CPU Cluster PMBKK16-410 SoC Idling & CPU Cluster PM
BKK16-410 SoC Idling & CPU Cluster PMLinaro
 
BKK16-304 The State of GDB on AArch64
BKK16-304 The State of GDB on AArch64BKK16-304 The State of GDB on AArch64
BKK16-304 The State of GDB on AArch64Linaro
 
Las16 309 - lua jit arm64 port - status
Las16 309 - lua jit arm64 port - statusLas16 309 - lua jit arm64 port - status
Las16 309 - lua jit arm64 port - statusLinaro
 
BKK16-213 Where's the Hardware?
BKK16-213 Where's the Hardware?BKK16-213 Where's the Hardware?
BKK16-213 Where's the Hardware?Linaro
 
LAS16-211: Using LAVA V2 for advanced KVM testing
LAS16-211: Using LAVA V2 for advanced KVM testingLAS16-211: Using LAVA V2 for advanced KVM testing
LAS16-211: Using LAVA V2 for advanced KVM testingLinaro
 
Las16 200 - firmware summit - ras what is it- why do we need it
Las16 200 - firmware summit - ras what is it- why do we need itLas16 200 - firmware summit - ras what is it- why do we need it
Las16 200 - firmware summit - ras what is it- why do we need itLinaro
 
LAS16-402: ARM Trusted Firmware – from Enterprise to Embedded
LAS16-402: ARM Trusted Firmware – from Enterprise to EmbeddedLAS16-402: ARM Trusted Firmware – from Enterprise to Embedded
LAS16-402: ARM Trusted Firmware – from Enterprise to EmbeddedLinaro
 
LAS16-400: Mini Conference 3 AOSP (Session 1)
LAS16-400: Mini Conference 3 AOSP (Session 1)LAS16-400: Mini Conference 3 AOSP (Session 1)
LAS16-400: Mini Conference 3 AOSP (Session 1)Linaro
 
BKK16-502 Suspend to Idle
BKK16-502 Suspend to IdleBKK16-502 Suspend to Idle
BKK16-502 Suspend to IdleLinaro
 
LAS16-207: Bus scaling QoS
LAS16-207: Bus scaling QoSLAS16-207: Bus scaling QoS
LAS16-207: Bus scaling QoSLinaro
 
LAS16-405:OpenDataPlane: Software Defined Dataplane leader
LAS16-405:OpenDataPlane: Software Defined Dataplane leaderLAS16-405:OpenDataPlane: Software Defined Dataplane leader
LAS16-405:OpenDataPlane: Software Defined Dataplane leaderLinaro
 
BKK16-303 96Boards - TV Platform
BKK16-303 96Boards - TV PlatformBKK16-303 96Boards - TV Platform
BKK16-303 96Boards - TV PlatformLinaro
 

What's hot (19)

LAS16-210: Hardware Assisted Tracing on ARM with CoreSight and OpenCSD
LAS16-210: Hardware Assisted Tracing on ARM with CoreSight and OpenCSDLAS16-210: Hardware Assisted Tracing on ARM with CoreSight and OpenCSD
LAS16-210: Hardware Assisted Tracing on ARM with CoreSight and OpenCSD
 
BKK16-103 OpenCSD - Open for Business!
BKK16-103 OpenCSD - Open for Business!BKK16-103 OpenCSD - Open for Business!
BKK16-103 OpenCSD - Open for Business!
 
HKG18-110 - net_mdev: Fast path user space I/O
HKG18-110 - net_mdev: Fast path user space I/OHKG18-110 - net_mdev: Fast path user space I/O
HKG18-110 - net_mdev: Fast path user space I/O
 
LAS16-507: LXC support in LAVA
LAS16-507: LXC support in LAVALAS16-507: LXC support in LAVA
LAS16-507: LXC support in LAVA
 
Kernel Recipes 2015: Greybus
Kernel Recipes 2015: GreybusKernel Recipes 2015: Greybus
Kernel Recipes 2015: Greybus
 
Heterogeneous multiprocessing on androd and i.mx7
Heterogeneous multiprocessing on androd and i.mx7Heterogeneous multiprocessing on androd and i.mx7
Heterogeneous multiprocessing on androd and i.mx7
 
Asymmetric Multiprocessing - Kynetics ELC 2018 portland
Asymmetric Multiprocessing - Kynetics ELC 2018 portlandAsymmetric Multiprocessing - Kynetics ELC 2018 portland
Asymmetric Multiprocessing - Kynetics ELC 2018 portland
 
BKK16-410 SoC Idling & CPU Cluster PM
BKK16-410 SoC Idling & CPU Cluster PMBKK16-410 SoC Idling & CPU Cluster PM
BKK16-410 SoC Idling & CPU Cluster PM
 
BKK16-304 The State of GDB on AArch64
BKK16-304 The State of GDB on AArch64BKK16-304 The State of GDB on AArch64
BKK16-304 The State of GDB on AArch64
 
Las16 309 - lua jit arm64 port - status
Las16 309 - lua jit arm64 port - statusLas16 309 - lua jit arm64 port - status
Las16 309 - lua jit arm64 port - status
 
BKK16-213 Where's the Hardware?
BKK16-213 Where's the Hardware?BKK16-213 Where's the Hardware?
BKK16-213 Where's the Hardware?
 
LAS16-211: Using LAVA V2 for advanced KVM testing
LAS16-211: Using LAVA V2 for advanced KVM testingLAS16-211: Using LAVA V2 for advanced KVM testing
LAS16-211: Using LAVA V2 for advanced KVM testing
 
Las16 200 - firmware summit - ras what is it- why do we need it
Las16 200 - firmware summit - ras what is it- why do we need itLas16 200 - firmware summit - ras what is it- why do we need it
Las16 200 - firmware summit - ras what is it- why do we need it
 
LAS16-402: ARM Trusted Firmware – from Enterprise to Embedded
LAS16-402: ARM Trusted Firmware – from Enterprise to EmbeddedLAS16-402: ARM Trusted Firmware – from Enterprise to Embedded
LAS16-402: ARM Trusted Firmware – from Enterprise to Embedded
 
LAS16-400: Mini Conference 3 AOSP (Session 1)
LAS16-400: Mini Conference 3 AOSP (Session 1)LAS16-400: Mini Conference 3 AOSP (Session 1)
LAS16-400: Mini Conference 3 AOSP (Session 1)
 
BKK16-502 Suspend to Idle
BKK16-502 Suspend to IdleBKK16-502 Suspend to Idle
BKK16-502 Suspend to Idle
 
LAS16-207: Bus scaling QoS
LAS16-207: Bus scaling QoSLAS16-207: Bus scaling QoS
LAS16-207: Bus scaling QoS
 
LAS16-405:OpenDataPlane: Software Defined Dataplane leader
LAS16-405:OpenDataPlane: Software Defined Dataplane leaderLAS16-405:OpenDataPlane: Software Defined Dataplane leader
LAS16-405:OpenDataPlane: Software Defined Dataplane leader
 
BKK16-303 96Boards - TV Platform
BKK16-303 96Boards - TV PlatformBKK16-303 96Boards - TV Platform
BKK16-303 96Boards - TV Platform
 

Similar to PX4 Seminar 02

The linux kernel hidden inside windows 10
The linux kernel hidden inside windows 10The linux kernel hidden inside windows 10
The linux kernel hidden inside windows 10mark-smith
 
2010 02 instrumentation_and_runtime_measurement
2010 02 instrumentation_and_runtime_measurement2010 02 instrumentation_and_runtime_measurement
2010 02 instrumentation_and_runtime_measurementPTIHPA
 
The power of linux advanced tracer [POUG18]
The power of linux advanced tracer [POUG18]The power of linux advanced tracer [POUG18]
The power of linux advanced tracer [POUG18]Mahmoud Hatem
 
Operating Systems 1 (3/12) - Architectures
Operating Systems 1 (3/12) - ArchitecturesOperating Systems 1 (3/12) - Architectures
Operating Systems 1 (3/12) - ArchitecturesPeter Tröger
 
OpenShift 4 installation
OpenShift 4 installationOpenShift 4 installation
OpenShift 4 installationRobert Bohne
 
OpenShift_Installation_Deep_Dive_Robert_Bohne.pdf
OpenShift_Installation_Deep_Dive_Robert_Bohne.pdfOpenShift_Installation_Deep_Dive_Robert_Bohne.pdf
OpenShift_Installation_Deep_Dive_Robert_Bohne.pdfssuser9e06a61
 
Linux sever building
Linux sever buildingLinux sever building
Linux sever buildingEdmond Yu
 
Best practices in Deploying SUSE CaaS Platform v3
Best practices in Deploying SUSE CaaS Platform v3Best practices in Deploying SUSE CaaS Platform v3
Best practices in Deploying SUSE CaaS Platform v3Juan Herrera Utande
 
SC'18 BoF Presentation
SC'18 BoF PresentationSC'18 BoF Presentation
SC'18 BoF Presentationrcastain
 
Deployment of WebObjects applications on CentOS Linux
Deployment of WebObjects applications on CentOS LinuxDeployment of WebObjects applications on CentOS Linux
Deployment of WebObjects applications on CentOS LinuxWO Community
 
Breaking hardware enforced security with hypervisors
Breaking hardware enforced security with hypervisorsBreaking hardware enforced security with hypervisors
Breaking hardware enforced security with hypervisorsPriyanka Aash
 
2022-05-03 SoC Interest Group Meeting - Deploying and testing firmware-softwa...
2022-05-03 SoC Interest Group Meeting - Deploying and testing firmware-softwa...2022-05-03 SoC Interest Group Meeting - Deploying and testing firmware-softwa...
2022-05-03 SoC Interest Group Meeting - Deploying and testing firmware-softwa...xiso
 

Similar to PX4 Seminar 02 (20)

PX4 Seminar 01
PX4 Seminar 01PX4 Seminar 01
PX4 Seminar 01
 
The linux kernel hidden inside windows 10
The linux kernel hidden inside windows 10The linux kernel hidden inside windows 10
The linux kernel hidden inside windows 10
 
Breach and attack simulation tools
Breach and attack simulation toolsBreach and attack simulation tools
Breach and attack simulation tools
 
2010 02 instrumentation_and_runtime_measurement
2010 02 instrumentation_and_runtime_measurement2010 02 instrumentation_and_runtime_measurement
2010 02 instrumentation_and_runtime_measurement
 
eBPF Basics
eBPF BasicseBPF Basics
eBPF Basics
 
The power of linux advanced tracer [POUG18]
The power of linux advanced tracer [POUG18]The power of linux advanced tracer [POUG18]
The power of linux advanced tracer [POUG18]
 
Operating Systems 1 (3/12) - Architectures
Operating Systems 1 (3/12) - ArchitecturesOperating Systems 1 (3/12) - Architectures
Operating Systems 1 (3/12) - Architectures
 
OpenShift 4 installation
OpenShift 4 installationOpenShift 4 installation
OpenShift 4 installation
 
OpenShift_Installation_Deep_Dive_Robert_Bohne.pdf
OpenShift_Installation_Deep_Dive_Robert_Bohne.pdfOpenShift_Installation_Deep_Dive_Robert_Bohne.pdf
OpenShift_Installation_Deep_Dive_Robert_Bohne.pdf
 
Linux sever building
Linux sever buildingLinux sever building
Linux sever building
 
Best practices in Deploying SUSE CaaS Platform v3
Best practices in Deploying SUSE CaaS Platform v3Best practices in Deploying SUSE CaaS Platform v3
Best practices in Deploying SUSE CaaS Platform v3
 
SC'18 BoF Presentation
SC'18 BoF PresentationSC'18 BoF Presentation
SC'18 BoF Presentation
 
Cache profiling on ARM Linux
Cache profiling on ARM LinuxCache profiling on ARM Linux
Cache profiling on ARM Linux
 
Mastering Real-time Linux
Mastering Real-time LinuxMastering Real-time Linux
Mastering Real-time Linux
 
Basic Linux Internals
Basic Linux InternalsBasic Linux Internals
Basic Linux Internals
 
Deployment of WebObjects applications on CentOS Linux
Deployment of WebObjects applications on CentOS LinuxDeployment of WebObjects applications on CentOS Linux
Deployment of WebObjects applications on CentOS Linux
 
Breaking hardware enforced security with hypervisors
Breaking hardware enforced security with hypervisorsBreaking hardware enforced security with hypervisors
Breaking hardware enforced security with hypervisors
 
TMS320DM8148 Embedded Linux
TMS320DM8148 Embedded LinuxTMS320DM8148 Embedded Linux
TMS320DM8148 Embedded Linux
 
2022-05-03 SoC Interest Group Meeting - Deploying and testing firmware-softwa...
2022-05-03 SoC Interest Group Meeting - Deploying and testing firmware-softwa...2022-05-03 SoC Interest Group Meeting - Deploying and testing firmware-softwa...
2022-05-03 SoC Interest Group Meeting - Deploying and testing firmware-softwa...
 
Powering up on power shell avengercon - 2018
Powering up on power shell   avengercon - 2018Powering up on power shell   avengercon - 2018
Powering up on power shell avengercon - 2018
 

More from Jungtaek Kim

05 다섯 번째_모임
05 다섯 번째_모임05 다섯 번째_모임
05 다섯 번째_모임Jungtaek Kim
 
04 네 번째_모임
04 네 번째_모임04 네 번째_모임
04 네 번째_모임Jungtaek Kim
 
03 세 번째_모임
03 세 번째_모임03 세 번째_모임
03 세 번째_모임Jungtaek Kim
 
02 두 번째_모임
02 두 번째_모임02 두 번째_모임
02 두 번째_모임Jungtaek Kim
 
01 첫 번째_모임
01 첫 번째_모임01 첫 번째_모임
01 첫 번째_모임Jungtaek Kim
 
다섯 번째 모임
다섯 번째 모임다섯 번째 모임
다섯 번째 모임Jungtaek Kim
 
네 번째 모임
네 번째 모임네 번째 모임
네 번째 모임Jungtaek Kim
 
두 번째 모임
두 번째 모임두 번째 모임
두 번째 모임Jungtaek Kim
 

More from Jungtaek Kim (9)

05 다섯 번째_모임
05 다섯 번째_모임05 다섯 번째_모임
05 다섯 번째_모임
 
04 네 번째_모임
04 네 번째_모임04 네 번째_모임
04 네 번째_모임
 
03 세 번째_모임
03 세 번째_모임03 세 번째_모임
03 세 번째_모임
 
02 두 번째_모임
02 두 번째_모임02 두 번째_모임
02 두 번째_모임
 
01 첫 번째_모임
01 첫 번째_모임01 첫 번째_모임
01 첫 번째_모임
 
다섯 번째 모임
다섯 번째 모임다섯 번째 모임
다섯 번째 모임
 
네 번째 모임
네 번째 모임네 번째 모임
네 번째 모임
 
두 번째 모임
두 번째 모임두 번째 모임
두 번째 모임
 
첫 번째 모임
첫 번째 모임첫 번째 모임
첫 번째 모임
 

Recently uploaded

Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusZilliz
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDropbox
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...apidays
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodJuan lago vázquez
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamUiPathCommunity
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Jeffrey Haguewood
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxRustici Software
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityWSO2
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxRemote DBA Services
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...apidays
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsNanddeep Nachan
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...Zilliz
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 

Recently uploaded (20)

Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 

PX4 Seminar 02

  • 1. PX4 Seminar - On-board Applications and Makefile - Jungtaek Kim jtkim@postech.edu 2015.04.10
  • 2. PX4 Autopilot • Independent, open-source, open-hardware autopilot system oriented toward autonomous aircraft • BSD License • Started in 2009 • Be being developed and used at Computer Vision and Geometry Lab of ETH Zurich and supported by the Autonomous Systems Lab and the Automatic Control Laboratory
  • 3. Main Software Modules • PX4 Flight Stack • Flight control modules (Controller, Attitude estimator, MAVLink and etc) • PX4 Middleware • Drivers, uORB • PX4 ESC Firmware • PX4 Bootloader • Operating System • NuttX OS
  • 4.
  • 5. On-board Applications • System Applications • mavlink – Sends and receives MAVLink messages via serial port • sdlog2 – Logs system/flight data to the SD card • tests – Test applications to test the system (during bringup and troubleshooting) • top – Lists current processes and their CPU load • uORB – Micro Object Request Broker - distributing information between other applications • Drivers • mkblctrl – Mikrokopter BLCTRL Driver • esc_calib – ESC calibration tool • fmu – Configures FMU GPIO pins • gpio_led – GPIO LED driver • gps – GPS receiver driver • pwm – Command to set PWM update rates • sensors – Sensor utility • px4io – PX4IO driver • uavcan – UAVCAN driver
  • 6. On-board Applications (cont’d) • Flight Control Applications • Flight Safety and Navigation • commander – main flight safety state machine • navigator – Mission, failsafe and RTL navigator • Attitude and Position Estimators • attitude_estimator_ekf – EKF-based attitude estimator • ekf_att_pos_estimator – EKF-based attitude and position estimator (Paul Riseborough) • position_estimator_inav – Inertial navigation position estimator • Multirotor Attitude and Position Controllers • mc_att_control – Multirotor attitude controller • mc_pos_control – Multirotor position controller • Fixedwing Attitude and Position Controllers • fw_att_control – Fixed wing attitude controller • fw_pos_control_l1 – Fixed wing position controller • VTOL Attitude Controller • vtol_att_control – VTOL attitude controller
  • 7. System Startup • The boot process of PX4 • /etc/init.d/rcS (https://github.com/PX4/Firmware/blob/master/ROMFS/px4fmu_common/ init.d/rcS) • /etc/rc.txt on the SD card (for advanced users) • If /etc/rc.txt does not exist, set to autostart mode • /etc/config.txt is executed if it exists • Configuration to set the environment variables (https://pixhawk.org/dev/ system_startup#configuration_variables) • /etc/extras.txt is executed if it exists • Start custom apps after the autostart process • All scripts belonging to the autostart process (https://github.com/PX4/Firmware/tree/master/ ROMFS/px4fmu_common/init.d)
  • 8. /etc/config.txt Example for Custom Model #  Generic  Quadcopter  +   set  VEHICLE_TYPE  mc   set  MIXER  FMU_quad_+   #  PX4IO  PWM  output  will  be  used  by  default   set  PWM_OUT  1234        #  Change  parameters  for  the  first  4  outputs   set  PWM_RATE  400                #  Set  PWM  rate  to  400  Hz  for  better  performance   set  PWM_DISARMED  900        #  Motors  should  stop  at  this  PWM  value   set  PWM_MIN  1100                #  Motors  should  spin  at  low,  idle  speed  at  this  PWM  value   set  PWM_MAX  1900                #  Motors  should  spin  at  max  speed  at  this  PWM  value
  • 9. NuttShell • An embedded equivalent to bash and similar Unix shells • It is used to start all on-board applications and manage a executed process • It interacts with the user over a serial port (FMU system’s UARTS or USB) • http://nuttx.org/doku.php? id=documentation:nuttshell
  • 10. Makefile • Default available targets • archives - Build the NuttX RTOS archives that are used by the firmware build. • all - Build all firmware configs: aerocore_default px4fmu-v1_default px4fmu-v2_default px4fmu-v2_multiplatform px4fmu- v2_test px4io-v1_default px4io-v2_default. A limited set of configs can be built with CONFIGS=<list-of-configs> • aerocore_default - Build just the aerocore_default firmware configuration. • px4fmu-v1_default - Build just the px4fmu-v1_default firmware configuration. • px4fmu-v2_default - Build just the px4fmu-v2_default firmware configuration. • px4fmu-v2_multiplatform - Build just the px4fmu-v2_multiplatform firmware configuration. • px4fmu-v2_test - Build just the px4fmu-v2_test firmware configuration. • px4io-v1_default - Build just the px4io-v1_default firmware configuration. • px4io-v2_default - Build just the px4io-v2_default firmware configuration. • clean - Remove all firmware build pieces. • distclean - Remove all compilation products, including NuttX RTOS archives. • upload - When exactly one config is being built, add this target to upload the firmware to the board when the build is complete. Not supported for all configurations. • testbuild - Perform a complete clean build of the entire tree.
  • 11. Additional Rule for Makefile • /makefiles/*.mk • Details on /makefiles/README.txt (https:// github.com/PX4/Firmware/blob/master/makefiles/ README.txt)
  • 12. Reference • http://en.wikipedia.org/wiki/PX4_autopilot • https://pixhawk.org/start • https://pixhawk.org/firmware/source_code • https://github.com/PX4 • https://pixhawk.org/dev/system_startup • https://pixhawk.org/firmware/apps/start • https://pixhawk.org/firmware/apps/nsh