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-209: Finished and Upcoming Projects in LMG
LAS16-209: Finished and Upcoming Projects in LMGLAS16-209: Finished and Upcoming Projects in LMG
LAS16-209: Finished and Upcoming Projects in LMGLinaro
 
BKK16-400A LuvOS and ACPI Compliance Testing
BKK16-400A LuvOS and ACPI Compliance TestingBKK16-400A LuvOS and ACPI Compliance Testing
BKK16-400A LuvOS and ACPI Compliance TestingLinaro
 
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
 
OpenWrt From Top to Bottom
OpenWrt From Top to BottomOpenWrt From Top to Bottom
OpenWrt From Top to BottomKernel TLV
 
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
 
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
 
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
 
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
 
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
 
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
 
Emerging Persistent Memory Hardware and ZUFS - PM-based File Systems in User ...
Emerging Persistent Memory Hardware and ZUFS - PM-based File Systems in User ...Emerging Persistent Memory Hardware and ZUFS - PM-based File Systems in User ...
Emerging Persistent Memory Hardware and ZUFS - PM-based File Systems in User ...Kernel TLV
 
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-207: Bus scaling QoS
LAS16-207: Bus scaling QoSLAS16-207: Bus scaling QoS
LAS16-207: Bus scaling QoSLinaro
 
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 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-TR06: Remoteproc & rpmsg development
LAS16-TR06: Remoteproc & rpmsg developmentLAS16-TR06: Remoteproc & rpmsg development
LAS16-TR06: Remoteproc & rpmsg developmentLinaro
 
Mirko Damiani - An Embedded soft real time distributed system in Go
Mirko Damiani - An Embedded soft real time distributed system in GoMirko Damiani - An Embedded soft real time distributed system in Go
Mirko Damiani - An Embedded soft real time distributed system in Golinuxlab_conf
 
BKK16-409 VOSY Switch Port to ARMv8 Platforms and ODP Integration
BKK16-409 VOSY Switch Port to ARMv8 Platforms and ODP IntegrationBKK16-409 VOSY Switch Port to ARMv8 Platforms and ODP Integration
BKK16-409 VOSY Switch Port to ARMv8 Platforms and ODP IntegrationLinaro
 
Embedded Linux
Embedded LinuxEmbedded Linux
Embedded LinuxShiraz LUG
 

What's hot (20)

LAS16-209: Finished and Upcoming Projects in LMG
LAS16-209: Finished and Upcoming Projects in LMGLAS16-209: Finished and Upcoming Projects in LMG
LAS16-209: Finished and Upcoming Projects in LMG
 
BKK16-400A LuvOS and ACPI Compliance Testing
BKK16-400A LuvOS and ACPI Compliance TestingBKK16-400A LuvOS and ACPI Compliance Testing
BKK16-400A LuvOS and ACPI Compliance Testing
 
BKK16-103 OpenCSD - Open for Business!
BKK16-103 OpenCSD - Open for Business!BKK16-103 OpenCSD - Open for Business!
BKK16-103 OpenCSD - Open for Business!
 
OpenWrt From Top to Bottom
OpenWrt From Top to BottomOpenWrt From Top to Bottom
OpenWrt From Top to Bottom
 
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
 
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
 
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
 
BKK16-213 Where's the Hardware?
BKK16-213 Where's the Hardware?BKK16-213 Where's the Hardware?
BKK16-213 Where's the Hardware?
 
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
 
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)
 
Emerging Persistent Memory Hardware and ZUFS - PM-based File Systems in User ...
Emerging Persistent Memory Hardware and ZUFS - PM-based File Systems in User ...Emerging Persistent Memory Hardware and ZUFS - PM-based File Systems in User ...
Emerging Persistent Memory Hardware and ZUFS - PM-based File Systems in User ...
 
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-207: Bus scaling QoS
LAS16-207: Bus scaling QoSLAS16-207: Bus scaling QoS
LAS16-207: Bus scaling QoS
 
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 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-TR06: Remoteproc & rpmsg development
LAS16-TR06: Remoteproc & rpmsg developmentLAS16-TR06: Remoteproc & rpmsg development
LAS16-TR06: Remoteproc & rpmsg development
 
Mirko Damiani - An Embedded soft real time distributed system in Go
Mirko Damiani - An Embedded soft real time distributed system in GoMirko Damiani - An Embedded soft real time distributed system in Go
Mirko Damiani - An Embedded soft real time distributed system in Go
 
BKK16-409 VOSY Switch Port to ARMv8 Platforms and ODP Integration
BKK16-409 VOSY Switch Port to ARMv8 Platforms and ODP IntegrationBKK16-409 VOSY Switch Port to ARMv8 Platforms and ODP Integration
BKK16-409 VOSY Switch Port to ARMv8 Platforms and ODP Integration
 
Embedded Linux
Embedded LinuxEmbedded Linux
Embedded Linux
 

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
 

Recently uploaded

EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
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
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 

Recently uploaded (20)

EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.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
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 

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