├── .gitignore ├── .gitmodules ├── .travis.yml ├── .ycm_extra_conf.py ├── CMakeLists.txt ├── CONTRIBUTING.md ├── Debug ├── ARMv7M ├── NuttX ├── NuttX_BMP ├── Nuttx.py ├── PX4 ├── dot.gdbinit ├── memdump ├── olimex-px4fmu-debug.cfg ├── openocd.gdbinit ├── poor-mans-profiler.sh ├── px4fmu-v1-board.cfg └── runopenocd.sh ├── Documentation ├── Doxyfile ├── README ├── arming_state_machine.odg ├── arming_state_machine.pdf ├── code_structure_diagrams.odg ├── code_structure_diagrams.pdf ├── control_flow.graffle ├── doxygen.sh ├── dsm_bind.odt ├── dsm_bind.pdf ├── fixed_wing_control.odg ├── flight_mode_state_machine.odg ├── flight_mode_state_machine.pdf ├── fw_landing.png ├── mixing_architecture.graffle ├── px4_block_diagram.odg ├── px4_block_diagram.pdf ├── px4_general_structure.png ├── px4_hil │ ├── SITL_Diagram.png │ ├── SITL_Diagram_QGC.png │ ├── UserGuide.md │ ├── docs │ │ └── readme.txt │ └── px4_hil.doxyfile ├── rc_mode_switch.odg ├── rc_mode_switch.pdf └── versionfilter.sh ├── Firmware.sublime-project ├── Images ├── aerocore.prototype ├── mindpx-v2.prototype ├── px4-stm32f4discovery.prototype ├── px4fmu-v1.prototype ├── px4fmu-v2.prototype ├── px4fmu-v4.prototype ├── px4io-v1.prototype ├── px4io-v2.prototype └── px4iov2.prototype ├── LICENSE.md ├── Makefile ├── Makefile.make ├── README.md ├── ROMFS ├── px4fmu_common │ ├── init.d │ │ ├── 1000_rc_fw_easystar.hil │ │ ├── 10015_tbs_discovery │ │ ├── 10016_3dr_iris │ │ ├── 10017_steadidrone_qu4d │ │ ├── 10018_tbs_endurance │ │ ├── 10019_sk450_deadcat │ │ ├── 1001_rc_quad_x.hil │ │ ├── 10020_3dr_quad │ │ ├── 1003_rc_quad_+.hil │ │ ├── 1004_rc_fw_Rascal110.hil │ │ ├── 1005_rc_fw_Malolo1.hil │ │ ├── 11001_hexa_cox │ │ ├── 12001_octo_cox │ │ ├── 12002_steadidrone_mavrik │ │ ├── 13001_caipirinha_vtol │ │ ├── 13002_firefly6 │ │ ├── 13003_quad_tailsitter │ │ ├── 13004_quad+_tailsitter │ │ ├── 13005_vtol_AAERT_quad │ │ ├── 13006_vtol_standard_delta │ │ ├── 13007_vtol_AAVVT_quad │ │ ├── 13008_QuadRanger │ │ ├── 14001_tri_y_yaw+ │ │ ├── 14002_tri_y_yaw- │ │ ├── 15001_coax_heli │ │ ├── 20000_snapdragon_rc_pwm │ │ ├── 2100_mpx_easystar │ │ ├── 2101_fw_AERT │ │ ├── 2102_3dr_skywalker │ │ ├── 2103_skyhunter_1800 │ │ ├── 2104_fw_AETR │ │ ├── 2105_maja │ │ ├── 2106_albatross │ │ ├── 3030_io_camflyer │ │ ├── 3031_phantom │ │ ├── 3032_skywalker_x5 │ │ ├── 3033_wingwing │ │ ├── 3034_fx79 │ │ ├── 3035_viper │ │ ├── 3100_tbs_caipirinha │ │ ├── 4001_quad_x │ │ ├── 4008_ardrone │ │ ├── 4009_qav250 │ │ ├── 4010_dji_f330 │ │ ├── 4011_dji_f450 │ │ ├── 4012_quad_x_can │ │ ├── 4020_hk_micro_pcb │ │ ├── 4030_solo │ │ ├── 4040_reaper │ │ ├── 4050_generic_250 │ │ ├── 50001_axialracing_ax10 │ │ ├── 5001_quad_+ │ │ ├── 6001_hexa_x │ │ ├── 7001_hexa_+ │ │ ├── 8001_octo_x │ │ ├── 9001_octo_+ │ │ ├── rc.axialracing_ax10_apps │ │ ├── rc.axialracing_ax10_defaults │ │ ├── rc.fw_apps │ │ ├── rc.fw_defaults │ │ ├── rc.interface │ │ ├── rc.io │ │ ├── rc.logging │ │ ├── rc.mc_apps │ │ ├── rc.mc_defaults │ │ ├── rc.sensors │ │ ├── rc.uavcan │ │ ├── rc.usb │ │ ├── rc.vtol_apps │ │ ├── rc.vtol_defaults │ │ └── rcS │ ├── logging │ │ └── conv.zip │ └── mixers │ │ ├── AAERTWF.main.mix │ │ ├── AAVVTWFF.main.mix │ │ ├── AERT.main.mix │ │ ├── AET.main.mix │ │ ├── AETR.main.mix │ │ ├── CCPM.main.mix │ │ ├── FMU_pass.mix │ │ ├── FX79.main.mix │ │ ├── IO_pass.main.mix │ │ ├── IO_pass.mix │ │ ├── Q.main.mix │ │ ├── README.md │ │ ├── RET.main.mix │ │ ├── Viper.main.mix │ │ ├── X5.main.mix │ │ ├── caipi.main.mix │ │ ├── caipirinha_vtol.main.mix │ │ ├── coax.main.mix │ │ ├── delta.main.mix │ │ ├── easystar.main.mix │ │ ├── firefly6.aux.mix │ │ ├── firefly6.main.mix │ │ ├── hexa_+.main.mix │ │ ├── hexa_cox.main.mix │ │ ├── hexa_x.main.mix │ │ ├── octo_+.main.mix │ │ ├── octo_cox.main.mix │ │ ├── octo_cox_w.main.mix │ │ ├── octo_x.main.mix │ │ ├── pass.aux.mix │ │ ├── phantom.main.mix │ │ ├── plane_sitl.main.mix │ │ ├── quad_+.main.mix │ │ ├── quad_+_vtol.main.mix │ │ ├── quad_h.main.mix │ │ ├── quad_v.main.mix │ │ ├── quad_w.main.mix │ │ ├── quad_x.main.mix │ │ ├── quad_x_vtol.main.mix │ │ ├── sk450_deadcat.aux.mix │ │ ├── sk450_deadcat.main.mix │ │ ├── skywalker.main.mix │ │ ├── solo.main.mix │ │ ├── standard_vtol_sitl.main.mix │ │ ├── tri_y_yaw+.main.mix │ │ ├── tri_y_yaw-.main.mix │ │ ├── vtol_AAERT.aux.mix │ │ ├── vtol_AAVVT.aux.mix │ │ ├── vtol_delta.aux.mix │ │ ├── vtol_quad_x.main.mix │ │ └── wingwing.main.mix └── px4fmu_test │ ├── init.d │ ├── rc.standalone │ └── rcS │ ├── mixers │ └── IO_pass.mix │ └── unit_test_data │ └── mavlink_tests │ ├── empty_dir │ └── .gitignore │ ├── test_238.data │ ├── test_239.data │ └── test_240.data ├── Tools ├── .gitignore ├── CI │ ├── MissionCheck.py │ └── VTOLmission.txt ├── Matlab │ ├── ellipsoid_fit.m │ ├── motors.m │ └── plot_mag.m ├── adb_upload.sh ├── airframes.xml ├── astylerc ├── boot_now.py ├── check_cmake.sh ├── check_code_style.sh ├── check_submodules.sh ├── decode_backtrace.py ├── dist │ └── vehicle_configs.xml ├── fetch_file.py ├── fix_code_style.sh ├── fsm_visualisation.py ├── generate_listener.py ├── make_color.sh ├── mavlink_px4.py ├── parameters_injected.xml ├── posix.gdbinit ├── posix_apps.py ├── posix_lldbinit ├── pre-commit ├── px4airframes │ ├── README.md │ ├── __init__.py │ ├── rcout.py │ ├── srcparser.py │ ├── srcscanner.py │ └── xmlout.py ├── px4params │ ├── README.md │ ├── __init__.py │ ├── dokuwikiout.py │ ├── dokuwikirpc.py │ ├── srcparser.py │ ├── srcscanner.py │ └── xmlout.py ├── px_generate_params.py ├── px_generate_uorb_topic_headers.py ├── px_generate_xml.sh ├── px_mkfw.py ├── px_process_airframes.py ├── px_process_params.py ├── px_romfs_pruner.py ├── px_update_wiki.sh ├── px_uploader.py ├── qurt_apps.py ├── sdlog2 │ ├── README.txt │ ├── geotagging.py │ ├── logconv.m │ └── sdlog2_dump.py ├── sitl_run.sh ├── uavcan_copy.sh ├── upload.sh └── usb_serialload.py ├── Vagrantfile ├── cmake ├── common │ └── px4_base.cmake ├── configs │ ├── nuttx_mindpx-v2_default.cmake │ ├── nuttx_px4-stm32f4discovery_default.cmake │ ├── nuttx_px4fmu-v1_default.cmake │ ├── nuttx_px4fmu-v2_default.cmake │ ├── nuttx_px4fmu-v2_ekf2.cmake │ ├── nuttx_px4fmu-v2_lpe.cmake │ ├── nuttx_px4fmu-v4_default.cmake │ ├── posix_eagle_default.cmake │ ├── posix_eagle_hil.cmake │ ├── posix_eagle_muorb.cmake │ ├── posix_eagle_release.cmake │ ├── posix_rpi2_default.cmake │ ├── posix_rpi2_release.cmake │ ├── posix_sitl_default.cmake │ ├── posix_sitl_ekf2.cmake │ ├── posix_sitl_lpe.cmake │ ├── posix_sitl_replay.cmake │ ├── qurt_eagle_default.cmake │ ├── qurt_eagle_hello.cmake │ ├── qurt_eagle_hil.cmake │ ├── qurt_eagle_muorb.cmake │ ├── qurt_eagle_release.cmake │ ├── qurt_eagle_test.cmake │ └── qurt_eagle_travis.cmake ├── nuttx │ ├── bin_to_obj.py │ ├── builtin_commands.c.in │ └── px4_impl_nuttx.cmake ├── posix │ ├── apps.h_in │ ├── ld.script │ └── px4_impl_posix.cmake ├── qurt │ ├── apps.h_in │ ├── px4_impl_qurt.cmake │ ├── qurt_eigen.patch │ └── qurt_funcs.cmake ├── ros-CMakeLists.txt ├── scripts │ ├── convert_modules_to_cmake.py │ └── test_compare.py ├── templates │ ├── build_git_version.h.in │ └── cmake_lists.jinja ├── test │ ├── cmake_tester.py │ ├── px4_simple_app_correct.txt │ └── px4_simple_app_input.txt └── toolchains │ ├── Toolchain-arm-linux-gnueabihf.cmake │ ├── Toolchain-arm-none-eabi.cmake │ └── Toolchain-native.cmake ├── integrationtests └── demo_tests │ ├── direct_manual_input_test.py │ ├── direct_offboard_posctl_test.py │ ├── direct_tests.launch │ ├── flight_path_assertion.py │ ├── manual_input.py │ ├── mavros_offboard_attctl_test.py │ ├── mavros_offboard_posctl_test.py │ ├── mavros_tests.launch │ └── px4_test_helper.py ├── launch ├── ardrone.launch ├── example.launch ├── gazebo_ardrone_empty_world.launch ├── gazebo_ardrone_empty_world_offboard_attitudedemo.launch ├── gazebo_ardrone_empty_world_offboard_positiondemo.launch ├── gazebo_ardrone_house_world.launch ├── gazebo_iris_empty_world.launch ├── gazebo_iris_house_world.launch ├── gazebo_iris_mavros_posix_sitl.launch ├── gazebo_iris_outdoor_world.launch ├── iris.launch ├── mavros_sitl.launch ├── multi_uav.launch ├── multicopter.launch ├── multicopter_w.launch └── multicopter_x.launch ├── makefiles ├── README.txt ├── firmware.mk ├── firmware_nuttx.mk ├── firmware_posix.mk ├── firmware_qurt.mk ├── library.mk ├── module.mk ├── nuttx.mk ├── nuttx │ ├── .gitignore │ ├── board_aerocore.mk │ ├── board_px4-stm32f4discovery.mk │ ├── board_px4fmu-v1.mk │ ├── board_px4fmu-v2.mk │ ├── board_px4fmu-v4.mk │ ├── board_px4io-v1.mk │ ├── board_px4io-v2.mk │ ├── config_aerocore_default.mk │ ├── config_px4-stm32f4discovery_default.mk │ ├── config_px4fmu-v1_APM.mk │ ├── config_px4fmu-v1_default.mk │ ├── config_px4fmu-v2_APM.mk │ ├── config_px4fmu-v2_default.mk │ ├── config_px4fmu-v2_multiplatform.mk │ ├── config_px4fmu-v2_test.mk │ ├── config_px4io-v1_default.mk │ ├── config_px4io-v2_default.mk │ └── gumstix-aerocore.cfg ├── nuttx_romfs.mk ├── posix.mk ├── posix │ ├── board_posix.mk │ └── config_posix_default.mk ├── posix_elf.mk ├── qurt.mk ├── qurt │ ├── board_qurt.mk │ ├── config_qurt_default.mk │ └── config_qurt_hello.mk ├── qurt_elf.mk ├── setup.mk ├── toolchain_gnu-arm-eabi.mk ├── toolchain_hexagon.mk ├── toolchain_native.mk └── upload.mk ├── misc └── tones │ ├── charge.txt │ ├── cucuracha.txt │ ├── daisy.txt │ ├── dixie.txt │ ├── tell.txt │ └── yankee.txt ├── msg ├── actuator_armed.msg ├── actuator_controls.msg ├── actuator_controls_0.msg ├── actuator_controls_1.msg ├── actuator_controls_2.msg ├── actuator_controls_3.msg ├── actuator_controls_virtual_fw.msg ├── actuator_controls_virtual_mc.msg ├── actuator_direct.msg ├── actuator_outputs.msg ├── airspeed.msg ├── att_pos_mocap.msg ├── battery_status.msg ├── camera_trigger.msg ├── control_state.msg ├── debug_key_value.msg ├── differential_pressure.msg ├── distance_sensor.msg ├── ekf2_innovations.msg ├── ekf2_replay.msg ├── encoders.msg ├── esc_report.msg ├── esc_status.msg ├── estimator_status.msg ├── fence.msg ├── fence_vertex.msg ├── filtered_bottom_flow.msg ├── follow_target.msg ├── fw_virtual_attitude_setpoint.msg ├── fw_virtual_rates_setpoint.msg ├── geofence_result.msg ├── hil_sensor.msg ├── home_position.msg ├── input_rc.msg ├── manual_control_setpoint.msg ├── mavlink_log.msg ├── mc_att_ctrl_status.msg ├── mc_virtual_attitude_setpoint.msg ├── mc_virtual_rates_setpoint.msg ├── mission.msg ├── mission_result.msg ├── multirotor_motor_limits.msg ├── navigation_capabilities.msg ├── offboard_control_mode.msg ├── optical_flow.msg ├── output_pwm.msg ├── parameter_update.msg ├── position_setpoint.msg ├── position_setpoint_triplet.msg ├── pwm_input.msg ├── qshell_req.msg ├── rc_channels.msg ├── rc_parameter_map.msg ├── safety.msg ├── satellite_info.msg ├── sensor_accel.msg ├── sensor_baro.msg ├── sensor_combined.msg ├── sensor_gyro.msg ├── sensor_mag.msg ├── servorail_status.msg ├── subsystem_info.msg ├── system_power.msg ├── tecs_status.msg ├── telemetry_status.msg ├── templates │ ├── px4 │ │ ├── ros │ │ │ └── msg.h.template │ │ └── uorb │ │ │ └── msg.h.template │ └── uorb │ │ └── msg.h.template ├── test_motor.msg ├── time_offset.msg ├── uavcan_parameter_request.msg ├── uavcan_parameter_value.msg ├── vehicle_attitude.msg ├── vehicle_attitude_setpoint.msg ├── vehicle_command.msg ├── vehicle_command_ack.msg ├── vehicle_control_mode.msg ├── vehicle_force_setpoint.msg ├── vehicle_global_position.msg ├── vehicle_global_velocity_setpoint.msg ├── vehicle_gps_position.msg ├── vehicle_land_detected.msg ├── vehicle_local_position.msg ├── vehicle_local_position_setpoint.msg ├── vehicle_rates_setpoint.msg ├── vehicle_status.msg ├── vision_position_estimate.msg ├── vtol_vehicle_status.msg └── wind_estimate.msg ├── nuttx-configs ├── aerocore │ ├── include │ │ ├── board.h │ │ └── nsh_romfsimg.h │ ├── nsh │ │ ├── Make.defs │ │ ├── appconfig │ │ ├── defconfig │ │ └── setenv.sh │ ├── scripts │ │ └── ld.script │ └── src │ │ ├── Makefile │ │ └── empty.c ├── mindpx-v2 │ ├── include │ │ ├── board.h │ │ └── nsh_romfsimg.h │ ├── nsh │ │ ├── Make.defs │ │ ├── appconfig │ │ ├── defconfig │ │ └── setenv.sh │ ├── scripts │ │ └── ld.script │ └── src │ │ ├── Makefile │ │ └── empty.c ├── px4-stm32f4discovery │ ├── include │ │ ├── board.h │ │ └── nsh_romfsimg.h │ ├── nsh │ │ ├── Make.defs │ │ ├── appconfig │ │ ├── defconfig │ │ └── setenv.sh │ ├── scripts │ │ └── ld.script │ └── src │ │ ├── Makefile │ │ └── empty.c ├── px4fmu-v1 │ ├── include │ │ ├── board.h │ │ └── nsh_romfsimg.h │ ├── nsh │ │ ├── Make.defs │ │ ├── defconfig │ │ └── setenv.sh │ ├── scripts │ │ └── ld.script │ └── src │ │ ├── Makefile │ │ └── empty.c ├── px4fmu-v2 │ ├── include │ │ ├── board.h │ │ └── nsh_romfsimg.h │ ├── nsh │ │ ├── Make.defs │ │ ├── appconfig │ │ ├── defconfig │ │ └── setenv.sh │ ├── scripts │ │ └── ld.script │ └── src │ │ ├── Makefile │ │ └── empty.c ├── px4fmu-v4 │ ├── include │ │ ├── board.h │ │ └── nsh_romfsimg.h │ ├── nsh │ │ ├── Make.defs │ │ ├── appconfig │ │ ├── defconfig │ │ └── setenv.sh │ ├── scripts │ │ └── ld.script │ └── src │ │ ├── Makefile │ │ └── empty.c ├── px4io-v1 │ ├── include │ │ ├── README.txt │ │ └── board.h │ ├── nsh │ │ ├── Make.defs │ │ ├── appconfig │ │ ├── defconfig │ │ └── setenv.sh │ ├── scripts │ │ └── ld.script │ └── src │ │ ├── Makefile │ │ └── empty.c ├── px4io-v2 │ ├── include │ │ └── board.h │ ├── nsh │ │ ├── Make.defs │ │ ├── appconfig │ │ ├── defconfig │ │ └── setenv.sh │ ├── scripts │ │ └── ld.script │ └── src │ │ ├── Makefile │ │ └── empty.c └── sim │ ├── include │ ├── README.txt │ └── board.h │ └── nsh │ ├── Make.defs │ ├── defconfig │ └── setenv.sh ├── package.xml ├── posix-configs ├── SITL │ ├── README.md │ ├── SITL_Diagram.png │ └── init │ │ ├── rc.fixed_wing │ │ ├── rcS_ekf2_jmavsim_iris │ │ ├── rcS_gazebo_iris │ │ ├── rcS_gazebo_iris_opt_flow │ │ ├── rcS_gazebo_plane │ │ ├── rcS_gazebo_standard_vtol │ │ ├── rcS_gazebo_tailsitter │ │ ├── rcS_jmavsim_iris │ │ ├── rcS_lpe_gazebo_iris │ │ ├── rcS_lpe_gazebo_iris_opt_flow │ │ ├── rcS_lpe_jmavsim_iris │ │ ├── rcS_replay_iris │ │ └── rc_iris_ros ├── eagle │ ├── 200qx │ │ ├── mainapp-calib.config │ │ ├── mainapp-flight.config │ │ ├── px4-calib.config │ │ ├── px4-flight-v1-board.config │ │ └── px4-flight-v2-board.config │ ├── 210qc │ │ ├── mainapp-calib.config │ │ ├── mainapp-flight.config │ │ ├── px4-calib.config │ │ └── px4-flight.config │ ├── flight │ │ ├── mainapp.config │ │ └── px4.config │ └── hil │ │ ├── mainapphil.config │ │ └── px4.config └── rpi2 │ └── init │ └── rcS_navio ├── src ├── drivers │ ├── airspeed │ │ ├── CMakeLists.txt │ │ ├── airspeed.cpp │ │ ├── airspeed.h │ │ └── module.mk │ ├── ardrone_interface │ │ ├── CMakeLists.txt │ │ ├── ardrone_interface.c │ │ ├── ardrone_motor_control.c │ │ ├── ardrone_motor_control.h │ │ └── module.mk │ ├── batt_smbus │ │ ├── CMakeLists.txt │ │ ├── batt_smbus.cpp │ │ └── module.mk │ ├── blinkm │ │ ├── CMakeLists.txt │ │ ├── blinkm.cpp │ │ └── module.mk │ ├── bma180 │ │ ├── CMakeLists.txt │ │ ├── bma180.cpp │ │ └── module.mk │ ├── boards │ │ ├── aerocore │ │ │ ├── CMakeLists.txt │ │ │ ├── aerocore_init.c │ │ │ ├── aerocore_led.c │ │ │ ├── aerocore_spi.c │ │ │ ├── aerocore_timer_config.c │ │ │ ├── board_config.h │ │ │ └── module.mk │ │ ├── mindpx-v2 │ │ │ ├── CMakeLists.txt │ │ │ ├── board_config.h │ │ │ ├── mindpx2_init.c │ │ │ ├── mindpx2_led.c │ │ │ ├── mindpx_can.c │ │ │ ├── mindpx_spi.c │ │ │ ├── mindpx_timer_config.c │ │ │ └── mindpx_usb.c │ │ ├── px4-stm32f4discovery │ │ │ ├── CMakeLists.txt │ │ │ ├── board_config.h │ │ │ ├── module.mk │ │ │ ├── px4discovery_init.c │ │ │ ├── px4discovery_led.c │ │ │ └── px4discovery_usb.c │ │ ├── px4fmu-v1 │ │ │ ├── CMakeLists.txt │ │ │ ├── board_config.h │ │ │ ├── module.mk │ │ │ ├── px4fmu_can.c │ │ │ ├── px4fmu_init.c │ │ │ ├── px4fmu_led.c │ │ │ ├── px4fmu_spi.c │ │ │ ├── px4fmu_timer_config.c │ │ │ └── px4fmu_usb.c │ │ ├── px4fmu-v2 │ │ │ ├── CMakeLists.txt │ │ │ ├── board_config.h │ │ │ ├── module.mk │ │ │ ├── px4fmu2_init.c │ │ │ ├── px4fmu2_led.c │ │ │ ├── px4fmu_can.c │ │ │ ├── px4fmu_spi.c │ │ │ ├── px4fmu_timer_config.c │ │ │ └── px4fmu_usb.c │ │ ├── px4fmu-v4 │ │ │ ├── CMakeLists.txt │ │ │ ├── board_config.h │ │ │ ├── module.mk │ │ │ ├── px4fmu_can.c │ │ │ ├── px4fmu_init.c │ │ │ ├── px4fmu_led.c │ │ │ ├── px4fmu_spi.c │ │ │ ├── px4fmu_timer_config.c │ │ │ └── px4fmu_usb.c │ │ ├── px4io-v1 │ │ │ ├── CMakeLists.txt │ │ │ ├── board_config.h │ │ │ ├── module.mk │ │ │ ├── px4io_init.c │ │ │ └── px4io_timer_config.c │ │ ├── px4io-v2 │ │ │ ├── CMakeLists.txt │ │ │ ├── board_config.h │ │ │ ├── module.mk │ │ │ ├── px4io_init.c │ │ │ └── px4io_timer_config.c │ │ ├── sim │ │ │ └── board_config.h │ │ └── sitl │ │ │ ├── CMakeLists.txt │ │ │ └── sitl_led.c │ ├── bst │ │ ├── CMakeLists.txt │ │ └── bst.cpp │ ├── camera_trigger │ │ ├── CMakeLists.txt │ │ ├── camera_trigger.cpp │ │ └── camera_trigger_params.c │ ├── device │ │ ├── CMakeLists.txt │ │ ├── cdev.cpp │ │ ├── device.h │ │ ├── device_nuttx.cpp │ │ ├── device_nuttx.h │ │ ├── device_posix.cpp │ │ ├── i2c.h │ │ ├── i2c_nuttx.cpp │ │ ├── i2c_nuttx.h │ │ ├── i2c_posix.cpp │ │ ├── i2c_posix.h │ │ ├── integrator.cpp │ │ ├── integrator.h │ │ ├── module.mk │ │ ├── pio.cpp │ │ ├── ringbuffer.cpp │ │ ├── ringbuffer.h │ │ ├── sim.cpp │ │ ├── sim.h │ │ ├── spi.cpp │ │ ├── spi.h │ │ ├── vdev.cpp │ │ ├── vdev.h │ │ ├── vdev_posix.cpp │ │ ├── vfile.cpp │ │ └── vfile.h │ ├── drv_accel.h │ ├── drv_adc.h │ ├── drv_airspeed.h │ ├── drv_baro.h │ ├── drv_batt_smbus.h │ ├── drv_blinkm.h │ ├── drv_device.h │ ├── drv_gpio.h │ ├── drv_gps.h │ ├── drv_gyro.h │ ├── drv_hrt.h │ ├── drv_input_capture.h │ ├── drv_io_expander.h │ ├── drv_irlock.h │ ├── drv_led.h │ ├── drv_mag.h │ ├── drv_mixer.h │ ├── drv_orb_dev.h │ ├── drv_oreoled.h │ ├── drv_oreoled_bootloader.h │ ├── drv_pwm_input.h │ ├── drv_pwm_output.h │ ├── drv_px4flow.h │ ├── drv_range_finder.h │ ├── drv_rc_input.h │ ├── drv_rgbled.h │ ├── drv_sbus.h │ ├── drv_sensor.h │ ├── drv_tone_alarm.h │ ├── ets_airspeed │ │ ├── CMakeLists.txt │ │ ├── ets_airspeed.cpp │ │ └── module.mk │ ├── frsky_telemetry │ │ ├── CMakeLists.txt │ │ ├── frsky_data.c │ │ ├── frsky_data.h │ │ ├── frsky_telemetry.c │ │ ├── module.mk │ │ ├── sPort_data.c │ │ └── sPort_data.h │ ├── gimbal │ │ ├── CMakeLists.txt │ │ ├── gimbal.cpp │ │ ├── gimbal_params.c │ │ └── module.mk │ ├── gps │ │ ├── CMakeLists.txt │ │ ├── ashtech.cpp │ │ ├── ashtech.h │ │ ├── gps.cpp │ │ ├── gps_helper.cpp │ │ ├── gps_helper.h │ │ ├── module.mk │ │ ├── mtk.cpp │ │ ├── mtk.h │ │ ├── ubx.cpp │ │ └── ubx.h │ ├── hc_sr04 │ │ ├── CMakeLists.txt │ │ └── hc_sr04.cpp │ ├── hmc5883 │ │ ├── CMakeLists.txt │ │ ├── hmc5883.cpp │ │ ├── hmc5883.h │ │ ├── hmc5883_i2c.cpp │ │ ├── hmc5883_spi.cpp │ │ └── module.mk │ ├── hott │ │ ├── CMakeLists.txt │ │ ├── comms.cpp │ │ ├── comms.h │ │ ├── hott_sensors │ │ │ ├── CMakeLists.txt │ │ │ ├── hott_sensors.cpp │ │ │ └── module.mk │ │ ├── hott_telemetry │ │ │ ├── CMakeLists.txt │ │ │ ├── hott_telemetry.cpp │ │ │ └── module.mk │ │ ├── messages.cpp │ │ ├── messages.h │ │ └── module.mk │ ├── irlock │ │ ├── CMakeLists.txt │ │ ├── irlock.cpp │ │ └── module.mk │ ├── l3gd20 │ │ ├── CMakeLists.txt │ │ ├── l3gd20.cpp │ │ └── module.mk │ ├── led │ │ ├── CMakeLists.txt │ │ ├── led.cpp │ │ └── module.mk │ ├── ll40ls │ │ ├── CMakeLists.txt │ │ ├── LidarLite.cpp │ │ ├── LidarLite.h │ │ ├── LidarLiteI2C.cpp │ │ ├── LidarLiteI2C.h │ │ ├── LidarLitePWM.cpp │ │ ├── LidarLitePWM.h │ │ ├── ll40ls.cpp │ │ └── module.mk │ ├── lsm303d │ │ ├── CMakeLists.txt │ │ ├── lsm303d.cpp │ │ └── module.mk │ ├── mb12xx │ │ ├── CMakeLists.txt │ │ ├── mb12xx.cpp │ │ └── module.mk │ ├── md25 │ │ ├── BlockSysIdent.cpp │ │ ├── BlockSysIdent.hpp │ │ ├── CMakeLists.txt │ │ ├── md25.cpp │ │ ├── md25.hpp │ │ ├── md25_main.cpp │ │ └── module.mk │ ├── meas_airspeed │ │ ├── CMakeLists.txt │ │ ├── meas_airspeed.cpp │ │ └── module.mk │ ├── mkblctrl │ │ ├── CMakeLists.txt │ │ ├── mkblctrl.cpp │ │ ├── mkblctrl_params.c │ │ └── module.mk │ ├── mpu6000 │ │ ├── CMakeLists.txt │ │ ├── module.mk │ │ └── mpu6000.cpp │ ├── mpu6500 │ │ ├── CMakeLists.txt │ │ └── mpu6500.cpp │ ├── mpu9250 │ │ ├── CMakeLists.txt │ │ ├── gyro.cpp │ │ ├── gyro.h │ │ ├── mag.cpp │ │ ├── mag.h │ │ ├── main.cpp │ │ ├── module.mk │ │ ├── mpu9250.cpp │ │ └── mpu9250.h │ ├── ms5611 │ │ ├── CMakeLists.txt │ │ ├── module.mk │ │ ├── ms5611.h │ │ ├── ms5611_i2c.cpp │ │ ├── ms5611_nuttx.cpp │ │ ├── ms5611_posix.cpp │ │ ├── ms5611_sim.cpp │ │ └── ms5611_spi.cpp │ ├── oreoled │ │ ├── CMakeLists.txt │ │ ├── module.mk │ │ ├── oreoled.cpp │ │ └── oreoled_bootloader │ │ │ ├── CMakeLists.txt │ │ │ ├── module.mk │ │ │ ├── oreoled_bootloader.cpp │ │ │ ├── oreoled_bootloader.h │ │ │ ├── oreoled_bootloader_avr.cpp │ │ │ └── oreoled_bootloader_avr.h │ ├── pca8574 │ │ ├── CMakeLists.txt │ │ ├── module.mk │ │ └── pca8574.cpp │ ├── pca9685 │ │ ├── CMakeLists.txt │ │ ├── arduino_Adafruit_PWM_Servo_Driver_Library_license.txt │ │ ├── module.mk │ │ └── pca9685.cpp │ ├── pwm_input │ │ ├── CMakeLists.txt │ │ ├── module.mk │ │ └── pwm_input.cpp │ ├── pwm_out_sim │ │ ├── CMakeLists.txt │ │ └── pwm_out_sim.cpp │ ├── px4flow │ │ ├── CMakeLists.txt │ │ ├── i2c_frame.h │ │ ├── module.mk │ │ └── px4flow.cpp │ ├── px4fmu │ │ ├── CMakeLists.txt │ │ ├── fmu.cpp │ │ ├── module.mk │ │ └── px4fmu_params.c │ ├── px4io │ │ ├── CMakeLists.txt │ │ ├── module.mk │ │ ├── px4io.cpp │ │ ├── px4io_driver.h │ │ ├── px4io_i2c.cpp │ │ ├── px4io_params.c │ │ ├── px4io_serial.cpp │ │ ├── px4io_uploader.cpp │ │ └── uploader.h │ ├── qshell │ │ ├── posix │ │ │ ├── CMakeLists.txt │ │ │ ├── module.mk │ │ │ ├── qshell.cpp │ │ │ ├── qshell.h │ │ │ └── qshell_start_posix.cpp │ │ └── qurt │ │ │ ├── CMakeLists.txt │ │ │ ├── module.mk │ │ │ ├── qshell.cpp │ │ │ ├── qshell.h │ │ │ ├── qshell_main.cpp │ │ │ └── qshell_start_qurt.cpp │ ├── rgbled │ │ ├── CMakeLists.txt │ │ ├── module.mk │ │ ├── rgbled.cpp │ │ └── rgbled_params.c │ ├── rgbled_pwm │ │ ├── CMakeLists.txt │ │ ├── drv_led_pwm.cpp │ │ └── rgbled_pwm.cpp │ ├── roboclaw │ │ ├── CMakeLists.txt │ │ ├── RoboClaw.cpp │ │ ├── RoboClaw.hpp │ │ ├── module.mk │ │ └── roboclaw_main.cpp │ ├── sf0x │ │ ├── CMakeLists.txt │ │ ├── module.mk │ │ ├── sf0x.cpp │ │ ├── sf0x_parser.cpp │ │ └── sf0x_parser.h │ ├── sf10a │ │ ├── CMakeLists.txt │ │ └── sf10a.cpp │ ├── snapdragon_rc_pwm │ │ ├── CMakeLists.txt │ │ └── snapdragon_rc_pwm.cpp │ ├── srf02 │ │ ├── CMakeLists.txt │ │ └── srf02.cpp │ ├── srf02_i2c │ │ ├── CMakeLists.txt │ │ └── srf02_i2c.cpp │ ├── stm32 │ │ ├── CMakeLists.txt │ │ ├── adc │ │ │ ├── CMakeLists.txt │ │ │ ├── adc.cpp │ │ │ └── module.mk │ │ ├── drv_hrt.c │ │ ├── drv_input_capture.c │ │ ├── drv_input_capture.h │ │ ├── drv_io_timer.c │ │ ├── drv_io_timer.h │ │ ├── drv_pwm_servo.c │ │ ├── drv_pwm_servo.h │ │ ├── module.mk │ │ └── tone_alarm │ │ │ ├── CMakeLists.txt │ │ │ ├── module.mk │ │ │ └── tone_alarm.cpp │ ├── test_ppm │ │ ├── CMakeLists.txt │ │ └── test_ppm.cpp │ ├── trone │ │ ├── CMakeLists.txt │ │ ├── module.mk │ │ └── trone.cpp │ └── uart_esc │ │ ├── CMakeLists.txt │ │ └── uart_esc.cpp ├── examples │ ├── fixedwing_control │ │ ├── CMakeLists.txt │ │ ├── main.c │ │ ├── module.mk │ │ ├── params.c │ │ └── params.h │ ├── hwtest │ │ ├── CMakeLists.txt │ │ ├── hwtest.c │ │ └── module.mk │ ├── matlab_csv_serial │ │ ├── CMakeLists.txt │ │ ├── matlab_csv_serial.c │ │ └── module.mk │ ├── publisher │ │ ├── CMakeLists.txt │ │ ├── module.mk │ │ ├── publisher_example.cpp │ │ ├── publisher_example.h │ │ ├── publisher_main.cpp │ │ └── publisher_start_nuttx.cpp │ ├── px4_daemon_app │ │ ├── CMakeLists.txt │ │ ├── module.mk │ │ └── px4_daemon_app.c │ ├── px4_mavlink_debug │ │ ├── CMakeLists.txt │ │ ├── module.mk │ │ └── px4_mavlink_debug.c │ ├── px4_simple_app │ │ ├── CMakeLists.txt │ │ ├── module.mk │ │ └── px4_simple_app.c │ ├── rover_steering_control │ │ ├── CMakeLists.txt │ │ ├── main.cpp │ │ ├── module.mk │ │ ├── params.c │ │ └── params.h │ └── subscriber │ │ ├── CMakeLists.txt │ │ ├── module.mk │ │ ├── subscriber_example.cpp │ │ ├── subscriber_example.h │ │ ├── subscriber_main.cpp │ │ ├── subscriber_params.c │ │ ├── subscriber_params.h │ │ └── subscriber_start_nuttx.cpp ├── firmware │ ├── nuttx │ │ ├── CMakeLists.txt │ │ └── gdbinit.in │ ├── posix │ │ └── CMakeLists.txt │ └── qurt │ │ ├── CMakeLists.txt │ │ └── px4muorb.idl ├── include │ ├── containers │ │ └── List.hpp │ ├── px4.h │ └── visibility.h ├── lib │ ├── conversion │ │ ├── CMakeLists.txt │ │ ├── module.mk │ │ ├── rotation.cpp │ │ └── rotation.h │ ├── external_lgpl │ │ ├── CMakeLists.txt │ │ ├── module.mk │ │ └── tecs │ │ │ ├── tecs.cpp │ │ │ └── tecs.h │ ├── geo │ │ ├── CMakeLists.txt │ │ ├── geo.c │ │ ├── geo.h │ │ └── module.mk │ ├── geo_lookup │ │ ├── CMakeLists.txt │ │ ├── geo_mag_declination.c │ │ ├── geo_mag_declination.h │ │ └── module.mk │ ├── launchdetection │ │ ├── CMakeLists.txt │ │ ├── CatapultLaunchMethod.cpp │ │ ├── CatapultLaunchMethod.h │ │ ├── LaunchDetector.cpp │ │ ├── LaunchDetector.h │ │ ├── LaunchMethod.h │ │ ├── launchdetection_params.c │ │ └── module.mk │ ├── mathlib │ │ ├── CMakeLists.txt │ │ ├── math │ │ │ ├── Limits.cpp │ │ │ ├── Limits.hpp │ │ │ ├── Matrix.hpp │ │ │ ├── Quaternion.hpp │ │ │ ├── Vector.hpp │ │ │ ├── filter │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── LowPassFilter2p.cpp │ │ │ │ ├── LowPassFilter2p.hpp │ │ │ │ └── module.mk │ │ │ ├── nasa_rotation_def.pdf │ │ │ ├── test │ │ │ │ ├── test.cpp │ │ │ │ └── test.hpp │ │ │ └── test_math.sce │ │ ├── mathlib.h │ │ └── module.mk │ ├── px4_eigen.h │ ├── rc │ │ ├── CMakeLists.txt │ │ ├── dsm.c │ │ ├── dsm.h │ │ ├── module.mk │ │ ├── sbus.c │ │ ├── sbus.h │ │ ├── st24.c │ │ ├── st24.h │ │ ├── sumd.c │ │ └── sumd.h │ ├── runway_takeoff │ │ ├── CMakeLists.txt │ │ ├── RunwayTakeoff.cpp │ │ ├── RunwayTakeoff.h │ │ └── runway_takeoff_params.c │ ├── tailsitter_recovery │ │ ├── CMakeLists.txt │ │ ├── tailsitter_recovery.cpp │ │ └── tailsitter_recovery.h │ ├── terrain_estimation │ │ ├── CMakeLists.txt │ │ ├── terrain_estimator.cpp │ │ └── terrain_estimator.h │ └── version │ │ └── version.h ├── mainpage.dox ├── modules │ ├── attitude_estimator_ekf │ │ ├── AttitudeEKF.m │ │ ├── CMakeLists.txt │ │ ├── attitudeKalmanfilter.prj │ │ ├── attitude_estimator_ekf_main.cpp │ │ ├── attitude_estimator_ekf_params.c │ │ ├── attitude_estimator_ekf_params.h │ │ ├── codegen │ │ │ ├── AttitudeEKF.c │ │ │ ├── AttitudeEKF.h │ │ │ ├── AttitudeEKF_types.h │ │ │ └── rtwtypes.h │ │ └── module.mk │ ├── attitude_estimator_q │ │ ├── CMakeLists.txt │ │ ├── attitude_estimator_q_main.cpp │ │ ├── attitude_estimator_q_params.c │ │ └── module.mk │ ├── bottle_drop │ │ ├── CMakeLists.txt │ │ ├── bottle_drop.cpp │ │ ├── bottle_drop_params.c │ │ └── module.mk │ ├── commander │ │ ├── CMakeLists.txt │ │ ├── PreflightCheck.cpp │ │ ├── PreflightCheck.h │ │ ├── accelerometer_calibration.cpp │ │ ├── accelerometer_calibration.h │ │ ├── airspeed_calibration.cpp │ │ ├── airspeed_calibration.h │ │ ├── baro_calibration.cpp │ │ ├── baro_calibration.h │ │ ├── calibration_messages.h │ │ ├── calibration_routines.cpp │ │ ├── calibration_routines.h │ │ ├── commander.cpp │ │ ├── commander_helper.cpp │ │ ├── commander_helper.h │ │ ├── commander_params.c │ │ ├── commander_tests │ │ │ ├── CMakeLists.txt │ │ │ ├── commander_tests.cpp │ │ │ ├── module.mk │ │ │ ├── state_machine_helper_test.cpp │ │ │ └── state_machine_helper_test.h │ │ ├── esc_calibration.cpp │ │ ├── esc_calibration.h │ │ ├── gyro_calibration.cpp │ │ ├── gyro_calibration.h │ │ ├── mag_calibration.cpp │ │ ├── mag_calibration.h │ │ ├── module.mk │ │ ├── px4_custom_mode.h │ │ ├── rc_calibration.cpp │ │ ├── rc_calibration.h │ │ ├── state_machine_helper.cpp │ │ └── state_machine_helper.h │ ├── controllib │ │ ├── CMakeLists.txt │ │ ├── block │ │ │ ├── Block.cpp │ │ │ ├── Block.hpp │ │ │ ├── BlockParam.cpp │ │ │ └── BlockParam.hpp │ │ ├── blocks.cpp │ │ ├── blocks.hpp │ │ ├── controllib_test_main.cpp │ │ ├── module.mk │ │ ├── test_params.c │ │ └── uorb │ │ │ ├── blocks.cpp │ │ │ └── blocks.hpp │ ├── dataman │ │ ├── CMakeLists.txt │ │ ├── dataman.c │ │ ├── dataman.h │ │ └── module.mk │ ├── ekf2 │ │ ├── CMakeLists.txt │ │ ├── ekf2_main.cpp │ │ └── ekf2_params.c │ ├── ekf2_replay │ │ ├── CMakeLists.txt │ │ └── ekf2_replay_main.cpp │ ├── ekf_att_pos_estimator │ │ ├── AttitudePositionEstimatorEKF.h │ │ ├── CMakeLists.txt │ │ ├── ekf_att_pos_estimator_main.cpp │ │ ├── ekf_att_pos_estimator_params.c │ │ ├── estimator_22states.cpp │ │ ├── estimator_22states.h │ │ ├── estimator_utilities.cpp │ │ ├── estimator_utilities.h │ │ └── module.mk │ ├── fw_att_control │ │ ├── CMakeLists.txt │ │ ├── fw_att_control_main.cpp │ │ ├── fw_att_control_params.c │ │ └── module.mk │ ├── fw_pos_control_l1 │ │ ├── CMakeLists.txt │ │ ├── fw_pos_control_l1_main.cpp │ │ ├── fw_pos_control_l1_params.c │ │ ├── landingslope.cpp │ │ ├── landingslope.h │ │ ├── module.mk │ │ └── mtecs │ │ │ ├── limitoverride.cpp │ │ │ ├── limitoverride.h │ │ │ ├── mTecs.cpp │ │ │ ├── mTecs.h │ │ │ ├── mTecs_blocks.h │ │ │ └── mTecs_params.c │ ├── gpio_led │ │ ├── CMakeLists.txt │ │ ├── gpio_led.c │ │ └── module.mk │ ├── land_detector │ │ ├── CMakeLists.txt │ │ ├── FixedwingLandDetector.cpp │ │ ├── FixedwingLandDetector.h │ │ ├── LandDetector.cpp │ │ ├── LandDetector.h │ │ ├── MulticopterLandDetector.cpp │ │ ├── MulticopterLandDetector.h │ │ ├── VtolLandDetector.cpp │ │ ├── VtolLandDetector.h │ │ ├── land_detector_main.cpp │ │ ├── land_detector_params.c │ │ └── module.mk │ ├── local_position_estimator │ │ ├── BlockLocalPositionEstimator.cpp │ │ ├── BlockLocalPositionEstimator.hpp │ │ ├── CMakeLists.txt │ │ ├── fault_table.py │ │ ├── local_position_estimator_main.cpp │ │ └── params.c │ ├── mavlink │ │ ├── .gitignore │ │ ├── CMakeLists.txt │ │ ├── mavlink.c │ │ ├── mavlink_bridge_header.h │ │ ├── mavlink_ftp.cpp │ │ ├── mavlink_ftp.h │ │ ├── mavlink_log_handler.cpp │ │ ├── mavlink_log_handler.h │ │ ├── mavlink_main.cpp │ │ ├── mavlink_main.h │ │ ├── mavlink_messages.cpp │ │ ├── mavlink_messages.h │ │ ├── mavlink_mission.cpp │ │ ├── mavlink_mission.h │ │ ├── mavlink_orb_subscription.cpp │ │ ├── mavlink_orb_subscription.h │ │ ├── mavlink_parameters.cpp │ │ ├── mavlink_parameters.h │ │ ├── mavlink_params.c │ │ ├── mavlink_rate_limiter.cpp │ │ ├── mavlink_rate_limiter.h │ │ ├── mavlink_receiver.cpp │ │ ├── mavlink_receiver.h │ │ ├── mavlink_stream.cpp │ │ ├── mavlink_stream.h │ │ ├── mavlink_tests │ │ │ ├── CMakeLists.txt │ │ │ ├── mavlink_ftp_test.cpp │ │ │ ├── mavlink_ftp_test.h │ │ │ ├── mavlink_ftp_test_data.py │ │ │ ├── mavlink_tests.cpp │ │ │ └── module.mk │ │ └── module.mk │ ├── mc_att_control │ │ ├── CMakeLists.txt │ │ ├── mc_att_control_main.cpp │ │ ├── mc_att_control_params.c │ │ └── module.mk │ ├── mc_att_control_multiplatform │ │ ├── CMakeLists.txt │ │ ├── mc_att_control.cpp │ │ ├── mc_att_control.h │ │ ├── mc_att_control_base.cpp │ │ ├── mc_att_control_base.h │ │ ├── mc_att_control_main.cpp │ │ ├── mc_att_control_params.c │ │ ├── mc_att_control_params.h │ │ ├── mc_att_control_sim.cpp │ │ ├── mc_att_control_sim.h │ │ ├── mc_att_control_start_nuttx.cpp │ │ └── module.mk │ ├── mc_pos_control │ │ ├── CMakeLists.txt │ │ ├── mc_pos_control_main.cpp │ │ ├── mc_pos_control_params.c │ │ └── module.mk │ ├── mc_pos_control_multiplatform │ │ ├── CMakeLists.txt │ │ ├── mc_pos_control.cpp │ │ ├── mc_pos_control.h │ │ ├── mc_pos_control_main.cpp │ │ ├── mc_pos_control_params.c │ │ ├── mc_pos_control_params.h │ │ ├── mc_pos_control_start_nuttx.cpp │ │ └── module.mk │ ├── muorb │ │ ├── adsp │ │ │ ├── CMakeLists.txt │ │ │ ├── module.mk │ │ │ ├── px4muorb.cpp │ │ │ ├── px4muorb.hpp │ │ │ ├── uORBFastRpcChannel.cpp │ │ │ └── uORBFastRpcChannel.hpp │ │ └── krait │ │ │ ├── CMakeLists.txt │ │ │ ├── module.mk │ │ │ ├── muorb_main.cpp │ │ │ ├── px4muorb_KraitRpcWrapper.cpp │ │ │ ├── px4muorb_KraitRpcWrapper.hpp │ │ │ ├── uORBKraitFastRpcChannel.cpp │ │ │ └── uORBKraitFastRpcChannel.hpp │ ├── navigator │ │ ├── CMakeLists.txt │ │ ├── datalinkloss.cpp │ │ ├── datalinkloss.h │ │ ├── datalinkloss_params.c │ │ ├── enginefailure.cpp │ │ ├── enginefailure.h │ │ ├── follow_target.cpp │ │ ├── follow_target.h │ │ ├── geofence.cpp │ │ ├── geofence.h │ │ ├── geofence_params.c │ │ ├── gpsfailure.cpp │ │ ├── gpsfailure.h │ │ ├── gpsfailure_params.c │ │ ├── land.cpp │ │ ├── land.h │ │ ├── loiter.cpp │ │ ├── loiter.h │ │ ├── mission.cpp │ │ ├── mission.h │ │ ├── mission_block.cpp │ │ ├── mission_block.h │ │ ├── mission_feasibility_checker.cpp │ │ ├── mission_feasibility_checker.h │ │ ├── mission_params.c │ │ ├── module.mk │ │ ├── navigation.h │ │ ├── navigator.h │ │ ├── navigator_main.cpp │ │ ├── navigator_mode.cpp │ │ ├── navigator_mode.h │ │ ├── navigator_params.c │ │ ├── rcloss.cpp │ │ ├── rcloss.h │ │ ├── rcloss_params.c │ │ ├── rtl.cpp │ │ ├── rtl.h │ │ ├── rtl_params.c │ │ ├── takeoff.cpp │ │ └── takeoff.h │ ├── param │ │ └── CMakeLists.txt │ ├── position_estimator_inav │ │ ├── CMakeLists.txt │ │ ├── inertial_filter.cpp │ │ ├── inertial_filter.h │ │ ├── module.mk │ │ ├── position_estimator_inav_main.cpp │ │ ├── position_estimator_inav_params.cpp │ │ └── position_estimator_inav_params.h │ ├── px4iofirmware │ │ ├── CMakeLists.txt │ │ ├── adc.c │ │ ├── controls.c │ │ ├── i2c.c │ │ ├── mixer.cpp │ │ ├── module.mk │ │ ├── protocol.h │ │ ├── px4io.c │ │ ├── px4io.h │ │ ├── registers.c │ │ ├── safety.c │ │ └── serial.c │ ├── sdlog2 │ │ ├── CMakeLists.txt │ │ ├── logbuffer.c │ │ ├── logbuffer.h │ │ ├── module.mk │ │ ├── params.c │ │ ├── sdlog2.c │ │ ├── sdlog2_format.h │ │ └── sdlog2_messages.h │ ├── segway │ │ ├── BlockSegwayController.cpp │ │ ├── BlockSegwayController.hpp │ │ ├── CMakeLists.txt │ │ ├── module.mk │ │ ├── params.c │ │ └── segway_main.cpp │ ├── sensors │ │ ├── CMakeLists.txt │ │ ├── module.mk │ │ ├── sensor_params.c │ │ ├── sensors.cpp │ │ ├── sensors_init.cpp │ │ ├── sensors_init.h │ │ └── sensors_init_qurt.cpp │ ├── simulator │ │ ├── CMakeLists.txt │ │ ├── module.mk │ │ ├── simulator.cpp │ │ ├── simulator.h │ │ └── simulator_mavlink.cpp │ ├── systemlib │ │ ├── CMakeLists.txt │ │ ├── airspeed.c │ │ ├── airspeed.h │ │ ├── board_serial.c │ │ ├── board_serial.h │ │ ├── bson │ │ │ ├── tinybson.c │ │ │ └── tinybson.h │ │ ├── circuit_breaker.cpp │ │ ├── circuit_breaker.h │ │ ├── circuit_breaker_params.c │ │ ├── conversions.c │ │ ├── conversions.h │ │ ├── cpuload.c │ │ ├── cpuload.h │ │ ├── err.c │ │ ├── err.h │ │ ├── getopt_long.c │ │ ├── getopt_long.h │ │ ├── git_version.h │ │ ├── hx_stream.c │ │ ├── hx_stream.h │ │ ├── mavlink_log.c │ │ ├── mavlink_log.h │ │ ├── mcu_version.c │ │ ├── mcu_version.h │ │ ├── mixer │ │ │ ├── CMakeLists.txt │ │ │ ├── mixer.cpp │ │ │ ├── mixer.h │ │ │ ├── mixer_group.cpp │ │ │ ├── mixer_load.c │ │ │ ├── mixer_load.h │ │ │ ├── mixer_multirotor.cpp │ │ │ ├── mixer_simple.cpp │ │ │ ├── module.mk │ │ │ ├── multi_tables.mk │ │ │ └── multi_tables.py │ │ ├── module.mk │ │ ├── otp.c │ │ ├── otp.h │ │ ├── param │ │ │ ├── param.c │ │ │ ├── param.h │ │ │ └── param_shmem.c │ │ ├── perf_counter.c │ │ ├── perf_counter.h │ │ ├── pid │ │ │ ├── pid.c │ │ │ └── pid.h │ │ ├── ppm_decode.c │ │ ├── ppm_decode.h │ │ ├── print_load_posix.c │ │ ├── printload.c │ │ ├── printload.h │ │ ├── pwm_limit │ │ │ ├── pwm_limit.c │ │ │ └── pwm_limit.h │ │ ├── rc_check.c │ │ ├── rc_check.h │ │ ├── scheduling_priorities.h │ │ ├── state_table.h │ │ ├── system_params.c │ │ ├── systemlib.h │ │ ├── up_cxxinitialize.c │ │ ├── uthash │ │ │ ├── doc │ │ │ │ ├── userguide.txt │ │ │ │ ├── utarray.txt │ │ │ │ ├── utlist.txt │ │ │ │ └── utstring.txt │ │ │ ├── utarray.h │ │ │ ├── uthash.h │ │ │ ├── utlist.h │ │ │ └── utstring.h │ │ └── visibility.h │ ├── uORB │ │ ├── CMakeLists.txt │ │ ├── ORBMap.hpp │ │ ├── ORBSet.hpp │ │ ├── Publication.cpp │ │ ├── Publication.hpp │ │ ├── Subscription.cpp │ │ ├── Subscription.hpp │ │ ├── module.mk │ │ ├── objects_common.cpp │ │ ├── uORB.cpp │ │ ├── uORB.h │ │ ├── uORBCommon.hpp │ │ ├── uORBCommunicator.hpp │ │ ├── uORBDevices.hpp │ │ ├── uORBDevices_nuttx.cpp │ │ ├── uORBDevices_nuttx.hpp │ │ ├── uORBDevices_posix.cpp │ │ ├── uORBDevices_posix.hpp │ │ ├── uORBMain.cpp │ │ ├── uORBManager.hpp │ │ ├── uORBManager_nuttx.cpp │ │ ├── uORBManager_posix.cpp │ │ ├── uORBTest_UnitTest.cpp │ │ ├── uORBTest_UnitTest.hpp │ │ ├── uORBUtils.cpp │ │ └── uORBUtils.hpp │ ├── uavcan │ │ ├── .gitignore │ │ ├── CMakeLists.txt │ │ ├── actuators │ │ │ ├── esc.cpp │ │ │ ├── esc.hpp │ │ │ ├── hardpoint.cpp │ │ │ └── hardpoint.hpp │ │ ├── allocator.hpp │ │ ├── module.mk │ │ ├── sensors │ │ │ ├── baro.cpp │ │ │ ├── baro.hpp │ │ │ ├── gnss.cpp │ │ │ ├── gnss.hpp │ │ │ ├── mag.cpp │ │ │ ├── mag.hpp │ │ │ ├── sensor_bridge.cpp │ │ │ └── sensor_bridge.hpp │ │ ├── uavcan_main.cpp │ │ ├── uavcan_main.hpp │ │ ├── uavcan_module.hpp │ │ ├── uavcan_params.c │ │ ├── uavcan_servers.cpp │ │ ├── uavcan_servers.hpp │ │ └── uavcan_virtual_can_driver.hpp │ ├── unit_test │ │ ├── CMakeLists.txt │ │ ├── module.mk │ │ ├── unit_test.cpp │ │ └── unit_test.h │ └── vtol_att_control │ │ ├── CMakeLists.txt │ │ ├── module.mk │ │ ├── standard.cpp │ │ ├── standard.h │ │ ├── standard_params.c │ │ ├── tailsitter.cpp │ │ ├── tailsitter.h │ │ ├── tailsitter_params.c │ │ ├── tiltrotor.cpp │ │ ├── tiltrotor.h │ │ ├── tiltrotor_params.c │ │ ├── vtol_att_control_main.cpp │ │ ├── vtol_att_control_main.h │ │ ├── vtol_att_control_params.c │ │ ├── vtol_type.cpp │ │ └── vtol_type.h ├── platforms │ ├── common │ │ ├── CMakeLists.txt │ │ ├── module.mk │ │ └── px4_getopt.c │ ├── empty.c │ ├── nuttx │ │ ├── CMakeLists.txt │ │ ├── module.mk │ │ ├── px4_layer │ │ │ ├── CMakeLists.txt │ │ │ ├── module.mk │ │ │ └── px4_nuttx_tasks.c │ │ └── px4_nuttx_impl.cpp │ ├── posix │ │ ├── drivers │ │ │ ├── accelsim │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── accelsim.cpp │ │ │ │ └── module.mk │ │ │ ├── adcsim │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── adcsim.cpp │ │ │ │ └── module.mk │ │ │ ├── airspeedsim │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── airspeedsim.cpp │ │ │ │ ├── airspeedsim.h │ │ │ │ ├── meas_airspeed_sim.cpp │ │ │ │ └── module.mk │ │ │ ├── barosim │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── baro.cpp │ │ │ │ ├── barosim.h │ │ │ │ └── module.mk │ │ │ ├── df_bmp280_wrapper │ │ │ │ ├── CMakeLists.txt │ │ │ │ └── df_bmp280_wrapper.cpp │ │ │ ├── df_hmc5883_wrapper │ │ │ │ ├── CMakeLists.txt │ │ │ │ └── df_hmc5883_wrapper.cpp │ │ │ ├── df_mpu9250_wrapper │ │ │ │ ├── CMakeLists.txt │ │ │ │ └── df_mpu9250_wrapper.cpp │ │ │ ├── df_trone_wrapper │ │ │ │ ├── CMakeLists.txt │ │ │ │ └── df_trone_wrapper.cpp │ │ │ ├── gpssim │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── gpssim.cpp │ │ │ │ ├── module.mk │ │ │ │ ├── ubx_sim.cpp │ │ │ │ └── ubx_sim.h │ │ │ ├── gyrosim │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── gyrosim.cpp │ │ │ │ └── module.mk │ │ │ ├── ledsim │ │ │ │ ├── CMakeLists.txt │ │ │ │ └── led.cpp │ │ │ ├── rgbledsim │ │ │ │ ├── CMakeLists.txt │ │ │ │ └── rgbled.cpp │ │ │ └── tonealrmsim │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── module.mk │ │ │ │ └── tone_alarm.cpp │ │ ├── include │ │ │ ├── arch │ │ │ │ └── board │ │ │ │ │ └── board.h │ │ │ ├── board_config.h │ │ │ ├── crc32.h │ │ │ ├── hrt_work.h │ │ │ ├── px4_platform_types.h │ │ │ └── queue.h │ │ ├── main.cpp │ │ ├── px4_layer │ │ │ ├── CMakeLists.txt │ │ │ ├── drv_hrt.c │ │ │ ├── lib_crc32.c │ │ │ ├── module.mk │ │ │ ├── px4_log.c │ │ │ ├── px4_posix_impl.cpp │ │ │ ├── px4_posix_tasks.cpp │ │ │ ├── px4_sem.cpp │ │ │ └── shmem_posix.c │ │ ├── tests │ │ │ ├── hello │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── hello_example.cpp │ │ │ │ ├── hello_example.h │ │ │ │ ├── hello_main.cpp │ │ │ │ ├── hello_start_posix.cpp │ │ │ │ └── module.mk │ │ │ ├── hrt_test │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── hrt_test.cpp │ │ │ │ ├── hrt_test.h │ │ │ │ ├── hrt_test_main.cpp │ │ │ │ ├── hrt_test_start_posix.cpp │ │ │ │ └── module.mk │ │ │ ├── muorb │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── module.mk │ │ │ │ ├── muorb_test_example.cpp │ │ │ │ ├── muorb_test_example.h │ │ │ │ ├── muorb_test_main.cpp │ │ │ │ └── muorb_test_start_posix.cpp │ │ │ ├── vcdev_test │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── module.mk │ │ │ │ ├── vcdevtest_example.cpp │ │ │ │ ├── vcdevtest_example.h │ │ │ │ ├── vcdevtest_main.cpp │ │ │ │ └── vcdevtest_start_posix.cpp │ │ │ └── wqueue │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── module.mk │ │ │ │ ├── wqueue_main.cpp │ │ │ │ ├── wqueue_start_posix.cpp │ │ │ │ ├── wqueue_test.cpp │ │ │ │ └── wqueue_test.h │ │ └── work_queue │ │ │ ├── CMakeLists.txt │ │ │ ├── dq_addlast.c │ │ │ ├── dq_rem.c │ │ │ ├── dq_remfirst.c │ │ │ ├── hrt_queue.c │ │ │ ├── hrt_thread.c │ │ │ ├── hrt_work_cancel.c │ │ │ ├── module.mk │ │ │ ├── queue.c │ │ │ ├── sq_addafter.c │ │ │ ├── sq_addlast.c │ │ │ ├── sq_remfirst.c │ │ │ ├── work_cancel.c │ │ │ ├── work_lock.c │ │ │ ├── work_lock.h │ │ │ ├── work_queue.c │ │ │ └── work_thread.c │ ├── px4_adc.h │ ├── px4_app.h │ ├── px4_common.h │ ├── px4_config.h │ ├── px4_defines.h │ ├── px4_getopt.h │ ├── px4_i2c.h │ ├── px4_includes.h │ ├── px4_log.h │ ├── px4_message.h │ ├── px4_middleware.h │ ├── px4_nodehandle.h │ ├── px4_parameter.h │ ├── px4_posix.h │ ├── px4_publisher.h │ ├── px4_spi.h │ ├── px4_subscriber.h │ ├── px4_tasks.h │ ├── px4_time.h │ ├── px4_workqueue.h │ ├── qurt │ │ ├── include │ │ │ ├── arch │ │ │ │ └── board │ │ │ │ │ └── board.h │ │ │ ├── board_config.h │ │ │ ├── crc32.h │ │ │ ├── hrt_work.h │ │ │ ├── i2c.h │ │ │ ├── poll.h │ │ │ ├── queue.h │ │ │ ├── qurt_log.h │ │ │ └── sys │ │ │ │ └── ioctl.h │ │ ├── px4_layer │ │ │ ├── CMakeLists.txt │ │ │ ├── commands_hil.c │ │ │ ├── drv_hrt.c │ │ │ ├── get_commands.h │ │ │ ├── lib_crc32.c │ │ │ ├── main.cpp │ │ │ ├── module.mk │ │ │ ├── params.c │ │ │ ├── px4_qurt_impl.cpp │ │ │ ├── px4_qurt_tasks.cpp │ │ │ ├── qurt_stubs.c │ │ │ └── shmem_qurt.c │ │ ├── stubs │ │ │ ├── stubs_posix.c │ │ │ └── stubs_qurt.c │ │ └── tests │ │ │ ├── hello │ │ │ ├── CMakeLists.txt │ │ │ ├── hello_example.cpp │ │ │ ├── hello_example.h │ │ │ ├── hello_main.cpp │ │ │ ├── hello_start_qurt.cpp │ │ │ └── module.mk │ │ │ └── muorb │ │ │ ├── CMakeLists.txt │ │ │ ├── module.mk │ │ │ ├── muorb_test_example.cpp │ │ │ ├── muorb_test_example.h │ │ │ ├── muorb_test_main.cpp │ │ │ └── muorb_test_start_qurt.cpp │ ├── ros │ │ ├── eigen_math.h │ │ ├── geo.cpp │ │ ├── nodes │ │ │ ├── README.md │ │ │ ├── attitude_estimator │ │ │ │ ├── attitude_estimator.cpp │ │ │ │ └── attitude_estimator.h │ │ │ ├── commander │ │ │ │ ├── commander.cpp │ │ │ │ └── commander.h │ │ │ ├── demo_offboard_attitude_setpoints │ │ │ │ ├── demo_offboard_attitude_setpoints.cpp │ │ │ │ └── demo_offboard_attitude_setpoints.h │ │ │ ├── demo_offboard_position_setpoints │ │ │ │ ├── demo_offboard_position_setpoints.cpp │ │ │ │ └── demo_offboard_position_setpoints.h │ │ │ ├── manual_input │ │ │ │ ├── manual_input.cpp │ │ │ │ └── manual_input.h │ │ │ ├── mavlink │ │ │ │ ├── mavlink.cpp │ │ │ │ └── mavlink.h │ │ │ ├── mc_mixer │ │ │ │ └── mc_mixer.cpp │ │ │ └── position_estimator │ │ │ │ ├── position_estimator.cpp │ │ │ │ └── position_estimator.h │ │ ├── perf_counter.cpp │ │ ├── px4_nodehandle.cpp │ │ ├── px4_publisher.cpp │ │ └── px4_ros_impl.cpp │ └── shmem.h └── systemcmds │ ├── bl_update │ ├── CMakeLists.txt │ ├── bl_update.c │ └── module.mk │ ├── config │ ├── CMakeLists.txt │ ├── config.c │ └── module.mk │ ├── dumpfile │ ├── CMakeLists.txt │ ├── dumpfile.c │ └── module.mk │ ├── esc_calib │ ├── CMakeLists.txt │ ├── esc_calib.c │ └── module.mk │ ├── i2c │ ├── CMakeLists.txt │ ├── i2c.c │ └── module.mk │ ├── mixer │ ├── CMakeLists.txt │ ├── mixer.cpp │ └── module.mk │ ├── motor_test │ ├── CMakeLists.txt │ ├── module.mk │ └── motor_test.c │ ├── mtd │ ├── 24xxxx_mtd.c │ ├── CMakeLists.txt │ ├── module.mk │ └── mtd.c │ ├── nshterm │ ├── CMakeLists.txt │ ├── module.mk │ └── nshterm.c │ ├── param │ ├── CMakeLists.txt │ ├── module.mk │ └── param.c │ ├── perf │ ├── CMakeLists.txt │ ├── module.mk │ └── perf.c │ ├── pwm │ ├── CMakeLists.txt │ ├── module.mk │ └── pwm.c │ ├── reboot │ ├── CMakeLists.txt │ ├── module.mk │ └── reboot.c │ ├── reflect │ ├── CMakeLists.txt │ ├── module.mk │ └── reflect.c │ ├── tests │ ├── CMakeLists.txt │ ├── module.mk │ ├── test_adc.c │ ├── test_bson.c │ ├── test_conv.cpp │ ├── test_dataman.c │ ├── test_eigen.cpp │ ├── test_file.c │ ├── test_file2.c │ ├── test_float.c │ ├── test_gpio.c │ ├── test_hott_telemetry.c │ ├── test_hrt.c │ ├── test_int.c │ ├── test_jig_voltages.c │ ├── test_led.c │ ├── test_mathlib.cpp │ ├── test_mixer.cpp │ ├── test_mount.c │ ├── test_params.c │ ├── test_ppm_loopback.c │ ├── test_rc.c │ ├── test_sensors.c │ ├── test_servo.c │ ├── test_sleep.c │ ├── test_time.c │ ├── test_uart_baudchange.c │ ├── test_uart_console.c │ ├── test_uart_loopback.c │ ├── test_uart_send.c │ ├── tests.h │ └── tests_main.c │ ├── top │ ├── CMakeLists.txt │ ├── module.mk │ └── top.c │ ├── topic_listener │ ├── CMakeLists.txt │ └── module.mk │ ├── usb_connected │ ├── CMakeLists.txt │ ├── module.mk │ └── usb_connected.c │ └── ver │ ├── CMakeLists.txt │ ├── module.mk │ └── ver.c ├── template_.cproject ├── template_.project └── unittests ├── .gitignore ├── CMakeLists.txt ├── arch └── board │ └── board.h ├── autodeclination_test.cpp ├── board_config.h ├── conversion_test.cpp ├── data ├── fit_linear_voltage.m └── px4io_v1.3.csv ├── debug.h ├── dsm_test.cpp ├── hrt.cpp ├── mixer_test.cpp ├── nuttx └── config.h ├── param_test.cpp ├── queue.h ├── sbus2_test.cpp ├── sf0x_test.cpp ├── st24_test.cpp ├── sumd_test.cpp ├── testdata ├── dsm_x_data.txt ├── sbus2_r7008SB.txt ├── st24_data.txt └── sumd_data.txt ├── uorb_stub.cpp └── uorb_unittests ├── uORBCommunicatorMock.cpp ├── uORBCommunicatorMock.hpp ├── uORBCommunicatorMockLoopback.cpp ├── uORBCommunicatorMockLoopback.hpp ├── uORBCommunicator_gtests.cpp └── uORBGtestTopics.hpp /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "mavlink/include/mavlink/v1.0"] 2 | path = mavlink/include/mavlink/v1.0 3 | url = git://github.com/mavlink/c_library.git 4 | [submodule "src/modules/uavcan/libuavcan"] 5 | path = src/modules/uavcan/libuavcan 6 | url = git://github.com/UAVCAN/libuavcan.git 7 | [submodule "Tools/genmsg"] 8 | path = Tools/genmsg 9 | url = https://github.com/ros/genmsg.git 10 | [submodule "Tools/gencpp"] 11 | path = Tools/gencpp 12 | url = https://github.com/ros/gencpp.git 13 | [submodule "src/lib/matrix"] 14 | path = src/lib/matrix 15 | url = https://github.com/PX4/Matrix.git 16 | [submodule "src/lib/DriverFramework"] 17 | path = src/lib/DriverFramework 18 | url = https://github.com/PX4/DriverFramework.git 19 | [submodule "src/lib/ecl"] 20 | path = src/lib/ecl 21 | url = https://github.com/PX4/ecl.git 22 | -------------------------------------------------------------------------------- /Debug/NuttX_BMP: -------------------------------------------------------------------------------- 1 | # 2 | # Setup macros for the BlackMagic debug probe and NuttX. 3 | # 4 | 5 | mon swdp_scan 6 | attach 1 7 | -------------------------------------------------------------------------------- /Debug/dot.gdbinit: -------------------------------------------------------------------------------- 1 | # copy the file to .gdbinit in your Firmware tree, and adjust the path 2 | # below to match your system 3 | # For example: 4 | # target extended /dev/serial/by-id/usb-Black_Sphere_Technologies_Black_Magic_Probe_DDE5A1C4-if00 5 | # target extended /dev/ttyACM4 6 | 7 | 8 | monitor swdp_scan 9 | attach 1 10 | monitor vector_catch disable hard 11 | set mem inaccessible-by-default off 12 | set print pretty 13 | source Debug/PX4 14 | -------------------------------------------------------------------------------- /Debug/memdump: -------------------------------------------------------------------------------- 1 | define f4_memdump 2 | shell mkdir -p /tmp/dump 3 | printf "Dumping CCSRAM to /tmp/dump/ccsram\n" 4 | dump memory /tmp/dump/ccsram 0x10000000 0x10010000 5 | printf "Dumping SRAM to /tmp/dump/sram\n" 6 | dump memory /tmp/dump/sram 0x20000000 0x20020000 7 | end 8 | 9 | document f4_memdump 10 | Dumps the STM32F4 memory to files in /tmp/dump. 11 | end 12 | -------------------------------------------------------------------------------- /Debug/olimex-px4fmu-debug.cfg: -------------------------------------------------------------------------------- 1 | # program a bootable device load on a mavstation 2 | # To run type openocd -f mavprogram.cfg 3 | 4 | source [find interface/olimex-arm-usb-ocd-h.cfg] 5 | source [find px4fmu-v1-board.cfg] 6 | 7 | init 8 | halt 9 | 10 | # Find the flash inside this CPU 11 | flash probe 0 12 | 13 | # erase it (128 pages) then program and exit 14 | 15 | #flash erase_sector 0 0 127 16 | # stm32f1x mass_erase 0 17 | 18 | # It seems that Pat's image has a start address offset of 0x1000 but the vectors need to be at zero, so fixbin.sh moves things around 19 | #flash write_bank 0 fixed.bin 0 20 | #flash write_image firmware.elf 21 | #shutdown 22 | 23 | -------------------------------------------------------------------------------- /Debug/openocd.gdbinit: -------------------------------------------------------------------------------- 1 | target remote :3333 2 | 3 | # Don't let GDB get confused while stepping 4 | define hook-step 5 | mon cortex_m maskisr on 6 | end 7 | define hookpost-step 8 | mon cortex_m maskisr off 9 | end 10 | 11 | mon init 12 | mon stm32_init 13 | # mon reset halt 14 | mon poll 15 | mon cortex_m maskisr auto 16 | set mem inaccessible-by-default off 17 | set print pretty 18 | source Debug/PX4 19 | 20 | echo PX4 resumed, press ctrl-c to interrupt\n 21 | continue 22 | -------------------------------------------------------------------------------- /Debug/px4fmu-v1-board.cfg: -------------------------------------------------------------------------------- 1 | # The latest defaults in OpenOCD 0.7.0 are actually prettymuch correct for the px4fmu 2 | 3 | # increase working area to 32KB for faster flash programming 4 | set WORKAREASIZE 0x8000 5 | 6 | source [find target/stm32f4x.cfg] 7 | 8 | # needed for px4 9 | reset_config trst_only 10 | 11 | proc stm32_reset {} { 12 | reset halt 13 | # FIXME - needed to init periphs on reset 14 | # 0x40023800 RCC base 15 | # 0x24 RCC_APB2 0x75933 16 | # RCC_APB2 0 17 | } 18 | 19 | # perform init that is required on each connection to the target 20 | proc stm32_init {} { 21 | 22 | # force jtag to not shutdown during sleep 23 | #uint32_t cr = getreg32(STM32_DBGMCU_CR); 24 | #cr |= DBGMCU_CR_STANDBY | DBGMCU_CR_STOP | DBGMCU_CR_SLEEP; 25 | #putreg32(cr, STM32_DBGMCU_CR); 26 | mww 0xe0042004 00000007 27 | } 28 | 29 | # if srst is not fitted use SYSRESETREQ to 30 | # perform a soft reset 31 | cortex_m reset_config sysresetreq 32 | 33 | # Let GDB directly program elf binaries 34 | gdb_memory_map enable 35 | 36 | # doesn't work yet 37 | gdb_flash_program disable 38 | 39 | -------------------------------------------------------------------------------- /Debug/runopenocd.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" 4 | 5 | openocd -f interface/olimex-arm-usb-ocd-h.cfg -f $DIR/px4fmu-v1-board.cfg 6 | -------------------------------------------------------------------------------- /Documentation/README: -------------------------------------------------------------------------------- 1 | Linux/Mac OS X 2 | ============== 3 | To install doxygen: 4 | $sudo apt-get install doxygen 5 | 6 | If the above does not work go to: 7 | http://www.stack.nl/~dimitri/doxygen/download.html for the correct download. 8 | 9 | Then go to the following website for inforamtion on the install: 10 | http://www.stack.nl/~dimitri/doxygen/install.html 11 | 12 | Then to generate the html, run the following code while you are in the qgroundcontrol/doc directory: 13 | $doxygen Doxyfile 14 | 15 | The html file index.html should be in doc/html unless you changed the output directory. 16 | 17 | The other option for generating the documentation is to use the wizard: 18 | $doxywizard & 19 | 20 | doxywizard information: 21 | http://www.stack.nl/~dimitri/doxygen/doxywizard_usage.html 22 | 23 | Or go to the Doxygen Manual for information at the website noted below. 24 | 25 | Windows 26 | ======= 27 | Go to the following website for the correct download and follow the wizard to install: 28 | http://www.stack.nl/~dimitri/doxygen/download.html 29 | 30 | Run the wizard to generate the documentation. 31 | Go to the website below or the Doxygen Manual for information on running doxywizard. 32 | http://www.stack.nl/~dimitri/doxygen/doxywizard_usage.html 33 | 34 | Doxygen Manual 35 | ============== 36 | http://www.stack.nl/~dimitri/doxygen/ 37 | 38 | -------------------------------------------------------------------------------- /Documentation/arming_state_machine.odg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3drobotics/PX4Firmware/b1cc118ef6408235abda896cc29f5c75ae256de4/Documentation/arming_state_machine.odg -------------------------------------------------------------------------------- /Documentation/arming_state_machine.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3drobotics/PX4Firmware/b1cc118ef6408235abda896cc29f5c75ae256de4/Documentation/arming_state_machine.pdf -------------------------------------------------------------------------------- /Documentation/code_structure_diagrams.odg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3drobotics/PX4Firmware/b1cc118ef6408235abda896cc29f5c75ae256de4/Documentation/code_structure_diagrams.odg -------------------------------------------------------------------------------- /Documentation/code_structure_diagrams.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3drobotics/PX4Firmware/b1cc118ef6408235abda896cc29f5c75ae256de4/Documentation/code_structure_diagrams.pdf -------------------------------------------------------------------------------- /Documentation/doxygen.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | rm -rf html 3 | doxygen -------------------------------------------------------------------------------- /Documentation/dsm_bind.odt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3drobotics/PX4Firmware/b1cc118ef6408235abda896cc29f5c75ae256de4/Documentation/dsm_bind.odt -------------------------------------------------------------------------------- /Documentation/dsm_bind.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3drobotics/PX4Firmware/b1cc118ef6408235abda896cc29f5c75ae256de4/Documentation/dsm_bind.pdf -------------------------------------------------------------------------------- /Documentation/fixed_wing_control.odg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3drobotics/PX4Firmware/b1cc118ef6408235abda896cc29f5c75ae256de4/Documentation/fixed_wing_control.odg -------------------------------------------------------------------------------- /Documentation/flight_mode_state_machine.odg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3drobotics/PX4Firmware/b1cc118ef6408235abda896cc29f5c75ae256de4/Documentation/flight_mode_state_machine.odg -------------------------------------------------------------------------------- /Documentation/flight_mode_state_machine.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3drobotics/PX4Firmware/b1cc118ef6408235abda896cc29f5c75ae256de4/Documentation/flight_mode_state_machine.pdf -------------------------------------------------------------------------------- /Documentation/fw_landing.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3drobotics/PX4Firmware/b1cc118ef6408235abda896cc29f5c75ae256de4/Documentation/fw_landing.png -------------------------------------------------------------------------------- /Documentation/px4_block_diagram.odg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3drobotics/PX4Firmware/b1cc118ef6408235abda896cc29f5c75ae256de4/Documentation/px4_block_diagram.odg -------------------------------------------------------------------------------- /Documentation/px4_block_diagram.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3drobotics/PX4Firmware/b1cc118ef6408235abda896cc29f5c75ae256de4/Documentation/px4_block_diagram.pdf -------------------------------------------------------------------------------- /Documentation/px4_general_structure.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3drobotics/PX4Firmware/b1cc118ef6408235abda896cc29f5c75ae256de4/Documentation/px4_general_structure.png -------------------------------------------------------------------------------- /Documentation/px4_hil/SITL_Diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3drobotics/PX4Firmware/b1cc118ef6408235abda896cc29f5c75ae256de4/Documentation/px4_hil/SITL_Diagram.png -------------------------------------------------------------------------------- /Documentation/px4_hil/SITL_Diagram_QGC.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3drobotics/PX4Firmware/b1cc118ef6408235abda896cc29f5c75ae256de4/Documentation/px4_hil/SITL_Diagram_QGC.png -------------------------------------------------------------------------------- /Documentation/px4_hil/docs/readme.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3drobotics/PX4Firmware/b1cc118ef6408235abda896cc29f5c75ae256de4/Documentation/px4_hil/docs/readme.txt -------------------------------------------------------------------------------- /Documentation/rc_mode_switch.odg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3drobotics/PX4Firmware/b1cc118ef6408235abda896cc29f5c75ae256de4/Documentation/rc_mode_switch.odg -------------------------------------------------------------------------------- /Documentation/rc_mode_switch.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3drobotics/PX4Firmware/b1cc118ef6408235abda896cc29f5c75ae256de4/Documentation/rc_mode_switch.pdf -------------------------------------------------------------------------------- /Documentation/versionfilter.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | git log --pretty=format:"Last change: commit %h - %aN, %ar : %s" -1 $1 || echo no git -------------------------------------------------------------------------------- /Images/aerocore.prototype: -------------------------------------------------------------------------------- 1 | { 2 | "board_id": 19, 3 | "magic": "AeroCore", 4 | "description": "Firmware for the Gumstix AeroCore board", 5 | "image": "", 6 | "build_time": 0, 7 | "summary": "AEROCORE", 8 | "version": "0.1", 9 | "image_size": 0, 10 | "git_identity": "", 11 | "board_revision": 0 12 | } 13 | -------------------------------------------------------------------------------- /Images/mindpx-v2.prototype: -------------------------------------------------------------------------------- 1 | { 2 | "board_id": 9, 3 | "magic": "PX4FWv1", 4 | "description": "Firmware for the MindPx-V2 board", 5 | "image": "", 6 | "build_time": 0, 7 | "summary": "MindPx-v2", 8 | "version": "2.1", 9 | "image_size": 0, 10 | "git_identity": "", 11 | "board_revision": 0 12 | } 13 | -------------------------------------------------------------------------------- /Images/px4-stm32f4discovery.prototype: -------------------------------------------------------------------------------- 1 | { 2 | "board_id": 99, 3 | "magic": "PX4FWv1", 4 | "description": "Firmware for the STM32F4Discovery board", 5 | "image": "", 6 | "build_time": 0, 7 | "summary": "PX4/STM32F4Discovery", 8 | "version": "0.1", 9 | "image_size": 0, 10 | "git_identity": "", 11 | "board_revision": 0 12 | } 13 | -------------------------------------------------------------------------------- /Images/px4fmu-v1.prototype: -------------------------------------------------------------------------------- 1 | { 2 | "board_id": 5, 3 | "magic": "PX4FWv1", 4 | "description": "Firmware for the PX4FMU board", 5 | "image": "", 6 | "build_time": 0, 7 | "summary": "PX4FMU", 8 | "version": "0.1", 9 | "image_size": 0, 10 | "git_identity": "", 11 | "board_revision": 0 12 | } 13 | -------------------------------------------------------------------------------- /Images/px4fmu-v2.prototype: -------------------------------------------------------------------------------- 1 | { 2 | "board_id": 9, 3 | "magic": "PX4FWv1", 4 | "description": "Firmware for the PX4FMUv2 board", 5 | "image": "", 6 | "build_time": 0, 7 | "summary": "PX4FMUv2", 8 | "version": "0.1", 9 | "image_size": 0, 10 | "git_identity": "", 11 | "board_revision": 0 12 | } 13 | -------------------------------------------------------------------------------- /Images/px4fmu-v4.prototype: -------------------------------------------------------------------------------- 1 | { 2 | "board_id": 11, 3 | "magic": "PX4FWv1", 4 | "description": "Firmware for the PX4FMUv4 board", 5 | "image": "", 6 | "build_time": 0, 7 | "summary": "PX4FMUv4", 8 | "version": "0.1", 9 | "image_size": 0, 10 | "git_identity": "", 11 | "board_revision": 0 12 | } 13 | -------------------------------------------------------------------------------- /Images/px4io-v1.prototype: -------------------------------------------------------------------------------- 1 | { 2 | "board_id": 7, 3 | "magic": "PX4FWv1", 4 | "description": "Firmware for the PX4IO board", 5 | "image": "", 6 | "build_time": 0, 7 | "summary": "PX4IO", 8 | "version": "0.1", 9 | "image_size": 0, 10 | "git_identity": "", 11 | "board_revision": 0 12 | } 13 | -------------------------------------------------------------------------------- /Images/px4io-v2.prototype: -------------------------------------------------------------------------------- 1 | { 2 | "board_id": 10, 3 | "magic": "PX4FWv2", 4 | "description": "Firmware for the PX4IOv2 board", 5 | "image": "", 6 | "build_time": 0, 7 | "summary": "PX4IOv2", 8 | "version": "2.0", 9 | "image_size": 0, 10 | "git_identity": "", 11 | "board_revision": 0 12 | } 13 | -------------------------------------------------------------------------------- /Images/px4iov2.prototype: -------------------------------------------------------------------------------- 1 | { 2 | "board_id": 10, 3 | "magic": "PX4FWv2", 4 | "description": "Firmware for the PX4IOv2 board", 5 | "image": "", 6 | "build_time": 0, 7 | "summary": "PX4IOv2", 8 | "version": "2.0", 9 | "image_size": 0, 10 | "git_identity": "", 11 | "board_revision": 0 12 | } 13 | -------------------------------------------------------------------------------- /ROMFS/px4fmu_common/init.d/1000_rc_fw_easystar.hil: -------------------------------------------------------------------------------- 1 | #!nsh 2 | # 3 | # @name HILStar (XPlane) 4 | # 5 | # @type Simulation 6 | # 7 | # @output MAIN1 aileron 8 | # @output MAIN2 elevator 9 | # @output MAIN3 rudder 10 | # @output MAIN4 throttle 11 | # 12 | # @maintainer Lorenz Meier 13 | # 14 | 15 | sh /etc/init.d/rc.fw_defaults 16 | 17 | if [ $AUTOCNF == yes ] 18 | then 19 | param set BAT_N_CELLS 3 20 | param set FW_AIRSPD_MAX 20 21 | param set FW_AIRSPD_MIN 12 22 | param set FW_AIRSPD_TRIM 14 23 | param set FW_R_TC 0.3 24 | param set FW_P_TC 0.3 25 | param set FW_L1_DAMPING 0.74 26 | param set FW_L1_PERIOD 16 27 | param set FW_LND_ANG 15 28 | param set FW_LND_FLALT 5 29 | param set FW_LND_HHDIST 15 30 | param set FW_LND_HVIRT 13 31 | param set FW_LND_TLALT 5 32 | param set FW_THR_LND_MAX 0 33 | param set FW_PR_FF 0.35 34 | param set FW_PR_I 0.1 35 | param set FW_PR_IMAX 0.4 36 | param set FW_PR_P 0.2 37 | param set FW_RR_FF 0.6 38 | param set FW_RR_I 0.1 39 | param set FW_RR_IMAX 0.2 40 | param set FW_RR_P 0.3 41 | param set RWTO_TKOFF 1 42 | fi 43 | 44 | set HIL yes 45 | set MIXER AERT 46 | -------------------------------------------------------------------------------- /ROMFS/px4fmu_common/init.d/10015_tbs_discovery: -------------------------------------------------------------------------------- 1 | #!nsh 2 | # 3 | # @name Team Blacksheep Discovery 4 | # 5 | # @type Quadrotor Wide 6 | # 7 | # @maintainer Anton Babushkin , Simon Wilks 8 | # 9 | 10 | sh /etc/init.d/rc.mc_defaults 11 | 12 | if [ $AUTOCNF == yes ] 13 | then 14 | param set MC_ROLL_P 6.5 15 | param set MC_ROLLRATE_P 0.1 16 | param set MC_ROLLRATE_I 0.05 17 | param set MC_ROLLRATE_D 0.0017 18 | param set MC_PITCH_P 6.5 19 | param set MC_PITCHRATE_P 0.14 20 | param set MC_PITCHRATE_I 0.1 21 | param set MC_PITCHRATE_D 0.0025 22 | param set MC_YAW_P 2.8 23 | param set MC_YAWRATE_P 0.28 24 | param set MC_YAWRATE_I 0.1 25 | param set MC_YAWRATE_D 0.0 26 | fi 27 | 28 | set MIXER quad_w 29 | 30 | set PWM_OUT 1234 31 | -------------------------------------------------------------------------------- /ROMFS/px4fmu_common/init.d/10016_3dr_iris: -------------------------------------------------------------------------------- 1 | #!nsh 2 | # 3 | # @name 3DR Iris Quadrotor 4 | # 5 | # @type Quadrotor Wide 6 | # 7 | # @maintainer Anton Babushkin 8 | # 9 | 10 | sh /etc/init.d/rc.mc_defaults 11 | 12 | if [ $AUTOCNF == yes ] 13 | then 14 | # TODO tune roll/pitch separately 15 | param set MC_ROLL_P 7.0 16 | param set MC_ROLLRATE_P 0.15 17 | param set MC_ROLLRATE_I 0.05 18 | param set MC_ROLLRATE_D 0.004 19 | param set MC_PITCH_P 7.0 20 | param set MC_PITCHRATE_P 0.15 21 | param set MC_PITCHRATE_I 0.05 22 | param set MC_PITCHRATE_D 0.004 23 | param set MC_YAW_P 2.5 24 | param set MC_YAWRATE_P 0.25 25 | param set MC_YAWRATE_I 0.25 26 | param set MC_YAWRATE_D 0.0 27 | 28 | param set BAT_V_SCALING 0.00989 29 | param set BAT_C_SCALING 0.0124 30 | fi 31 | 32 | set MIXER quad_w 33 | 34 | set PWM_OUT 1234 35 | -------------------------------------------------------------------------------- /ROMFS/px4fmu_common/init.d/10017_steadidrone_qu4d: -------------------------------------------------------------------------------- 1 | #!nsh 2 | # 3 | # @name Steadidrone QU4D 4 | # 5 | # @type Quadrotor Wide 6 | # 7 | # @maintainer Thomas Gubler 8 | # 9 | 10 | sh /etc/init.d/rc.mc_defaults 11 | 12 | if [ $AUTOCNF == yes ] 13 | then 14 | param set MC_ROLL_P 7.0 15 | param set MC_ROLLRATE_P 0.13 16 | param set MC_ROLLRATE_I 0.05 17 | param set MC_ROLLRATE_D 0.004 18 | param set MC_PITCH_P 7.0 19 | param set MC_PITCHRATE_P 0.19 20 | param set MC_PITCHRATE_I 0.05 21 | param set MC_PITCHRATE_D 0.004 22 | param set MC_YAW_P 4.0 23 | param set MC_YAWRATE_P 0.2 24 | param set MC_YAWRATE_I 0.1 25 | param set MC_YAWRATE_D 0.0 26 | param set MC_YAW_FF 0.5 27 | 28 | param set BAT_N_CELLS 4 29 | fi 30 | 31 | set MIXER quad_w 32 | 33 | set PWM_OUT 1234 34 | -------------------------------------------------------------------------------- /ROMFS/px4fmu_common/init.d/10018_tbs_endurance: -------------------------------------------------------------------------------- 1 | #!nsh 2 | # 3 | # @name Team Blacksheep Discovery Endurance 4 | # 5 | # @type Quadrotor Wide 6 | # 7 | # @maintainer Simon Wilks 8 | # 9 | 10 | sh /etc/init.d/rc.mc_defaults 11 | 12 | if [ $AUTOCNF == yes ] 13 | then 14 | param set BAT_N_CELLS 6 15 | param set BAT_V_EMPTY 3.5 16 | 17 | param set MC_ROLL_P 7.0 18 | param set MC_ROLLRATE_P 0.08 19 | param set MC_ROLLRATE_I 0.02 20 | param set MC_ROLLRATE_D 0.003 21 | param set MC_PITCH_P 7.0 22 | param set MC_PITCHRATE_P 0.13 23 | param set MC_PITCHRATE_I 0.02 24 | param set MC_PITCHRATE_D 0.005 25 | param set MC_YAW_P 2.8 26 | param set MC_YAWRATE_P 0.2 27 | param set MC_YAWRATE_I 0.1 28 | param set MC_YAWRATE_D 0.0 29 | 30 | param set MPC_XY_FF 0.2 31 | param set MPC_XY_VEL_MAX 2 32 | fi 33 | 34 | set MIXER quad_w 35 | 36 | set PWM_OUT 1234 37 | set PWM_MIN 1080 38 | -------------------------------------------------------------------------------- /ROMFS/px4fmu_common/init.d/10019_sk450_deadcat: -------------------------------------------------------------------------------- 1 | #!nsh 2 | # 3 | # @name HobbyKing SK450 DeadCat modification 4 | # 5 | # @type Quadrotor Wide 6 | # 7 | # @maintainer Anton Matosov 8 | # 9 | 10 | sh /etc/init.d/rc.mc_defaults 11 | 12 | if [ $AUTOCNF == yes ] 13 | then 14 | param set MC_ROLL_P 6.0 15 | param set MC_ROLLRATE_P 0.08 16 | param set MC_ROLLRATE_I 0.03 17 | param set MC_ROLLRATE_D 0.0015 18 | 19 | param set MC_PITCH_P 6.0 20 | param set MC_PITCHRATE_P 0.1 21 | param set MC_PITCHRATE_I 0.03 22 | param set MC_PITCHRATE_D 0.0015 23 | 24 | param set MC_YAW_P 2.8 25 | param set MC_YAWRATE_P 0.1 26 | param set MC_YAWRATE_I 0.07 27 | param set MC_YAWRATE_D 0.0 28 | fi 29 | 30 | set MIXER sk450_deadcat 31 | 32 | set PWM_OUT 1234 33 | 34 | set PWM_AUX_OUT 1234 35 | # set PWM_AUX_MIN 900 36 | # set PWM_AUX_MAX 2100 37 | set PWM_AUX_RATE 100 38 | 39 | gimbal start 40 | -------------------------------------------------------------------------------- /ROMFS/px4fmu_common/init.d/1001_rc_quad_x.hil: -------------------------------------------------------------------------------- 1 | #!nsh 2 | # 3 | # @name HIL Quadcopter X 4 | # 5 | # @type Simulation 6 | # 7 | # @maintainer Anton Babushkin 8 | # 9 | 10 | sh /etc/init.d/rc.mc_defaults 11 | 12 | set MIXER quad_x 13 | 14 | set HIL yes 15 | -------------------------------------------------------------------------------- /ROMFS/px4fmu_common/init.d/10020_3dr_quad: -------------------------------------------------------------------------------- 1 | #!nsh 2 | # 3 | # @name 3DR DIY Quad 4 | # 5 | # @type Quadrotor x 6 | # 7 | # @maintainer Lorenz Meier 8 | # 9 | 10 | sh /etc/init.d/rc.mc_defaults 11 | 12 | if [ $AUTOCNF == yes ] 13 | then 14 | param set MC_ROLL_P 6.5 15 | param set MC_ROLLRATE_P 0.14 16 | param set MC_ROLLRATE_I 0.1 17 | param set MC_ROLLRATE_D 0.004 18 | param set MC_PITCH_P 6.0 19 | param set MC_PITCHRATE_P 0.14 20 | param set MC_PITCHRATE_I 0.09 21 | param set MC_PITCHRATE_D 0.004 22 | param set MC_YAW_P 4 23 | fi 24 | 25 | set MIXER quad_x 26 | 27 | set PWM_OUT 1234 28 | 29 | set PWM_MIN 1100 30 | set PWM_MAX 1950 31 | -------------------------------------------------------------------------------- /ROMFS/px4fmu_common/init.d/1003_rc_quad_+.hil: -------------------------------------------------------------------------------- 1 | #!nsh 2 | # 3 | # @name HIL Quadcopter + 4 | # 5 | # @type Simulation 6 | # 7 | # @maintainer Anton Babushkin 8 | # 9 | 10 | sh /etc/init.d/rc.mc_defaults 11 | 12 | set MIXER quad_+ 13 | 14 | set HIL yes 15 | -------------------------------------------------------------------------------- /ROMFS/px4fmu_common/init.d/1004_rc_fw_Rascal110.hil: -------------------------------------------------------------------------------- 1 | #!nsh 2 | # 3 | # @name HIL Rascal 110 (Flightgear) 4 | # 5 | # @type Simulation 6 | # 7 | # @maintainer Thomas Gubler 8 | # 9 | 10 | sh /etc/init.d/rc.fw_defaults 11 | 12 | set HIL yes 13 | 14 | set MIXER AERT 15 | -------------------------------------------------------------------------------- /ROMFS/px4fmu_common/init.d/1005_rc_fw_Malolo1.hil: -------------------------------------------------------------------------------- 1 | #!nsh 2 | # 3 | # @name HIL Malolo 1 (Flightgear) 4 | # 5 | # @type Simulation 6 | # 7 | # @maintainer Thomas Gubler 8 | # 9 | 10 | sh /etc/init.d/rc.fw_defaults 11 | 12 | if [ $AUTOCNF == yes ] 13 | then 14 | param set FW_AIRSPD_MIN 12 15 | param set FW_AIRSPD_TRIM 25 16 | param set FW_AIRSPD_MAX 40 17 | param set FW_R_TC 0.3 18 | param set FW_P_TC 0.3 19 | param set FW_L1_DAMPING 0.74 20 | param set FW_L1_PERIOD 15 21 | param set FW_PR_FF 0.8 22 | param set FW_PR_I 0.05 23 | param set FW_PR_IMAX 0.2 24 | param set FW_PR_P 0.1 25 | param set FW_P_ROLLFF 0 26 | param set FW_RR_FF 0.6 27 | param set FW_RR_I 0.02 28 | param set FW_RR_IMAX 0.2 29 | param set FW_RR_P 0.1 30 | param set FW_R_LIM 45 31 | param set FW_R_RMAX 0 32 | param set FW_YR_FF 0.0 33 | param set FW_YR_I 0 34 | param set FW_YR_IMAX 0.2 35 | param set FW_YR_P 0.0 36 | fi 37 | 38 | set HIL yes 39 | 40 | # Set the AERT mixer for HIL (even if the malolo is a flying wing) 41 | set MIXER AERT 42 | -------------------------------------------------------------------------------- /ROMFS/px4fmu_common/init.d/11001_hexa_cox: -------------------------------------------------------------------------------- 1 | #!nsh 2 | # 3 | # @name Generic Hexa coaxial geometry 4 | # 5 | # @type Hexarotor Coaxial 6 | # 7 | # @output MAIN1 front right top, CW; angle:60; direction:CW 8 | # @output MAIN2 front right bottom, CCW; angle:60; direction:CCW 9 | # @output MAIN3 back top, CW; angle:180; direction:CW 10 | # @output MAIN4 back bottom, CCW; angle:180; direction:CCW 11 | # @output MAIN5 front left top, CW; angle:-60; direction:CW 12 | # @output MAIN6 front left bottom, CCW;angle:-60; direction:CCW 13 | # 14 | # @output AUX1 feed-through of RC AUX1 channel 15 | # @output AUX2 feed-through of RC AUX2 channel 16 | # @output AUX3 feed-through of RC AUX3 channel 17 | # 18 | # @maintainer Lorenz Meier 19 | # 20 | 21 | sh /etc/init.d/rc.mc_defaults 22 | 23 | set MIXER hexa_cox 24 | 25 | # Need to set all 8 channels 26 | set PWM_OUT 12345678 27 | -------------------------------------------------------------------------------- /ROMFS/px4fmu_common/init.d/12001_octo_cox: -------------------------------------------------------------------------------- 1 | #!nsh 2 | # 3 | # @name Generic 10" Octo coaxial geometry 4 | # 5 | # @type Octorotor Coaxial 6 | # 7 | # @maintainer Lorenz Meier 8 | # 9 | 10 | sh /etc/init.d/rc.mc_defaults 11 | 12 | set MIXER octo_cox 13 | 14 | set PWM_OUT 12345678 15 | -------------------------------------------------------------------------------- /ROMFS/px4fmu_common/init.d/12002_steadidrone_mavrik: -------------------------------------------------------------------------------- 1 | #!nsh 2 | # 3 | # @name Steadidrone MAVRIK 4 | # 5 | # @type Octo Coax Wide 6 | # 7 | # @maintainer Simon Wilks 8 | # 9 | 10 | sh /etc/init.d/rc.mc_defaults 11 | 12 | if [ $AUTOCNF == yes ] 13 | then 14 | param set MC_PITCH_P 4.0 15 | param set MC_PITCHRATE_P 0.24 16 | param set MC_PITCHRATE_I 0.09 17 | param set MC_PITCHRATE_D 0.013 18 | param set MC_PITCHRATE_MAX 180.0 19 | 20 | param set MC_ROLL_P 4.0 21 | param set MC_ROLLRATE_P 0.16 22 | param set MC_ROLLRATE_I 0.07 23 | param set MC_ROLLRATE_D 0.009 24 | param set MC_ROLLRATE_MAX 180.0 25 | 26 | param set MC_YAW_P 3.0 27 | param set MC_YAWRATE_P 0.2 28 | param set MC_YAWRATE_I 0.1 29 | param set MC_YAWRATE_D 0.0 30 | param set MC_YAW_FF 0.5 31 | 32 | param set MPC_HOLD_MAX_XY 0.25 33 | param set MPC_THR_MIN 0.15 34 | param set MPC_Z_VEL_MAX 2.0 35 | 36 | param set BAT_N_CELLS 4 37 | fi 38 | 39 | set MIXER octo_cox_w 40 | 41 | set PWM_OUT 12345678 42 | -------------------------------------------------------------------------------- /ROMFS/px4fmu_common/init.d/13001_caipirinha_vtol: -------------------------------------------------------------------------------- 1 | #!nsh 2 | # 3 | # @name Caipiroshka Duo Tailsitter 4 | # 5 | # @type VTOL Duo Tailsitter 6 | # 7 | # @output MAIN1 motor left 8 | # @output MAIN2 motor right 9 | # @output MAIN5 elevon left 10 | # @output MAIN6 elevon right 11 | # 12 | # @maintainer Roman Bapst 13 | # 14 | 15 | sh /etc/init.d/rc.vtol_defaults 16 | 17 | if [ $AUTOCNF == yes ] 18 | then 19 | param set MC_ROLL_P 6.0 20 | param set MC_ROLLRATE_P 0.12 21 | param set MC_ROLLRATE_I 0.002 22 | param set MC_ROLLRATE_D 0.003 23 | param set MC_ROLLRATE_FF 0.0 24 | param set MC_PITCH_P 4.5 25 | param set MC_PITCHRATE_P 0.3 26 | param set MC_PITCHRATE_I 0.002 27 | param set MC_PITCHRATE_D 0.003 28 | param set MC_PITCHRATE_FF 0.0 29 | param set MC_YAW_P 3.8 30 | param set MC_YAW_FF 0.5 31 | param set MC_YAWRATE_P 0.22 32 | param set MC_YAWRATE_I 0.02 33 | param set MC_YAWRATE_D 0.0 34 | param set MC_YAWRATE_FF 0.0 35 | 36 | fi 37 | 38 | set MIXER caipirinha_vtol 39 | 40 | set PWM_OUT 1234 41 | param set VT_MOT_COUNT 2 42 | param set VT_IDLE_PWM_MC 1080 43 | param set VT_TYPE 0 44 | param set MAV_TYPE 19 45 | -------------------------------------------------------------------------------- /ROMFS/px4fmu_common/init.d/13002_firefly6: -------------------------------------------------------------------------------- 1 | #!nsh 2 | # 3 | # @name BirdsEyeView Aerobotics FireFly6 4 | # 5 | # @type VTOL Tiltrotor 6 | # 7 | # @maintainer Roman Bapst 8 | # 9 | 10 | sh /etc/init.d/rc.vtol_defaults 11 | 12 | if [ $AUTOCNF == yes ] 13 | then 14 | param set MC_ROLL_P 7.0 15 | param set MC_ROLLRATE_P 0.17 16 | param set MC_ROLLRATE_I 0.002 17 | param set MC_ROLLRATE_D 0.003 18 | param set MC_ROLLRATE_FF 0.0 19 | param set MC_PITCH_P 7.0 20 | param set MC_PITCHRATE_P 0.14 21 | param set MC_PITCHRATE_I 0.002 22 | param set MC_PITCHRATE_D 0.003 23 | param set MC_PITCHRATE_FF 0.0 24 | param set MC_YAW_P 3.8 25 | param set MC_YAW_FF 0.5 26 | param set MC_YAWRATE_P 0.22 27 | param set MC_YAWRATE_I 0.02 28 | param set MC_YAWRATE_D 0.0 29 | param set MC_YAWRATE_FF 0.0 30 | 31 | param set VT_TILT_MC 0.08 32 | param set VT_TILT_TRANS 0.5 33 | param set VT_TILT_FW 0.9 34 | fi 35 | 36 | set MIXER firefly6 37 | set PWM_OUT 12345678 38 | set PWM_RATE 400 39 | 40 | set MIXER_AUX firefly6 41 | 42 | set MAV_TYPE 21 43 | 44 | param set VT_MOT_COUNT 6 45 | param set VT_FW_MOT_OFFID 34 46 | param set VT_IDLE_PWM_MC 1080 47 | param set VT_TYPE 1 48 | -------------------------------------------------------------------------------- /ROMFS/px4fmu_common/init.d/13003_quad_tailsitter: -------------------------------------------------------------------------------- 1 | #!nsh 2 | # 3 | # @name Quadrotor X Tailsitter 4 | # 5 | # @type VTOL Quad Tailsitter 6 | # 7 | # @maintainer Roman Bapst 8 | # 9 | 10 | sh /etc/init.d/rc.vtol_defaults 11 | 12 | set MIXER quad_x_vtol 13 | 14 | set PWM_OUT 1234 15 | set PWM_MAX 2000 16 | set PWM_RATE 400 17 | set MAV_TYPE 20 18 | param set VT_MOT_COUNT 4 19 | param set VT_IDLE_PWM_MC 1080 20 | param set VT_TYPE 0 21 | param set VT_ELEV_MC_LOCK 1 22 | -------------------------------------------------------------------------------- /ROMFS/px4fmu_common/init.d/13004_quad+_tailsitter: -------------------------------------------------------------------------------- 1 | #!nsh 2 | # 3 | # @name Quadrotor + Tailsitter 4 | # 5 | # @type VTOL Quad Tailsitter 6 | # 7 | # @maintainer Roman Bapst 8 | # 9 | 10 | sh /etc/init.d/rc.vtol_defaults 11 | 12 | set MIXER quad_+_vtol 13 | 14 | set PWM_OUT 1234 15 | set PWM_MAX 2000 16 | set PWM_RATE 400 17 | set MAV_TYPE 20 18 | param set VT_MOT_COUNT 4 19 | param set VT_IDLE_PWM_MC 1080 20 | param set VT_TYPE 0 21 | param set VT_ELEV_MC_LOCK 1 22 | -------------------------------------------------------------------------------- /ROMFS/px4fmu_common/init.d/13006_vtol_standard_delta: -------------------------------------------------------------------------------- 1 | #!nsh 2 | # 3 | # @name Generic quad delta VTOL. 4 | # 5 | # @type Standard VTOL 6 | # 7 | # @maintainer Simon Wilks 8 | # 9 | 10 | sh /etc/init.d/rc.vtol_defaults 11 | 12 | if [ $AUTOCNF == yes ] 13 | then 14 | param set VT_TYPE 2 15 | param set VT_MOT_COUNT 4 16 | param set VT_TRANS_THR 0.75 17 | 18 | param set MC_ROLL_P 7.0 19 | param set MC_ROLLRATE_P 0.15 20 | param set MC_ROLLRATE_I 0.002 21 | param set MC_ROLLRATE_D 0.003 22 | param set MC_ROLLRATE_FF 0.0 23 | param set MC_PITCH_P 7.0 24 | param set MC_PITCHRATE_P 0.12 25 | param set MC_PITCHRATE_I 0.002 26 | param set MC_PITCHRATE_D 0.003 27 | param set MC_PITCHRATE_FF 0.0 28 | param set MC_YAW_P 2.8 29 | param set MC_YAW_FF 0.5 30 | param set MC_YAWRATE_P 0.22 31 | param set MC_YAWRATE_I 0.02 32 | param set MC_YAWRATE_D 0.0 33 | param set MC_YAWRATE_FF 0.0 34 | fi 35 | 36 | set MIXER vtol_quad_x 37 | set PWM_OUT 1234 38 | set PWM_RATE 400 39 | 40 | set MIXER_AUX vtol_delta 41 | set PWM_ACHDIS 3 42 | set PWM_AUX_DISARMED 950 43 | 44 | set MAV_TYPE 22 45 | 46 | param set VT_MOT_COUNT 4 47 | param set VT_IDLE_PWM_MC 1080 48 | param set VT_TYPE 2 49 | -------------------------------------------------------------------------------- /ROMFS/px4fmu_common/init.d/13007_vtol_AAVVT_quad: -------------------------------------------------------------------------------- 1 | #!nsh 2 | # 3 | # @name Generic AAVVT v-tail plane airframe with Quad VTOL. 4 | # 5 | # @type Standard VTOL 6 | # 7 | # @maintainer Sander Smeets 8 | # 9 | 10 | sh /etc/init.d/rc.vtol_defaults 11 | 12 | if [ $AUTOCNF == yes ] 13 | then 14 | param set VT_TYPE 2 15 | param set VT_MOT_COUNT 4 16 | param set VT_TRANS_THR 0.75 17 | 18 | param set MC_ROLL_P 7.0 19 | param set MC_ROLLRATE_P 0.15 20 | param set MC_ROLLRATE_I 0.002 21 | param set MC_ROLLRATE_D 0.003 22 | param set MC_ROLLRATE_FF 0.0 23 | param set MC_PITCH_P 7.0 24 | param set MC_PITCHRATE_P 0.12 25 | param set MC_PITCHRATE_I 0.002 26 | param set MC_PITCHRATE_D 0.003 27 | param set MC_PITCHRATE_FF 0.0 28 | param set MC_YAW_P 2.8 29 | param set MC_YAW_FF 0.5 30 | param set MC_YAWRATE_P 0.22 31 | param set MC_YAWRATE_I 0.02 32 | param set MC_YAWRATE_D 0.0 33 | param set MC_YAWRATE_FF 0.0 34 | fi 35 | 36 | set MIXER vtol_quad_x 37 | set PWM_OUT 1234 38 | set PWM_RATE 400 39 | 40 | set MIXER_AUX vtol_AAVVT 41 | set PWM_ACHDIS 5 42 | set PWM_AUX_DISARMED 950 43 | 44 | set MAV_TYPE 22 45 | 46 | param set VT_MOT_COUNT 4 47 | param set VT_IDLE_PWM_MC 1080 48 | param set VT_TYPE 2 49 | -------------------------------------------------------------------------------- /ROMFS/px4fmu_common/init.d/14001_tri_y_yaw+: -------------------------------------------------------------------------------- 1 | #!nsh 2 | # 3 | # @name Generic Tricopter Y+ Geometry 4 | # 5 | # @type Tricopter Y+ 6 | # 7 | # @maintainer Trent Lukaczyk 8 | # 9 | 10 | sh /etc/init.d/rc.mc_defaults 11 | 12 | set MIXER tri_y_yaw+ 13 | 14 | set PWM_OUT 1234 15 | 16 | -------------------------------------------------------------------------------- /ROMFS/px4fmu_common/init.d/14002_tri_y_yaw-: -------------------------------------------------------------------------------- 1 | #!nsh 2 | # 3 | # @name Generic Tricopter Y- Geometry 4 | # 5 | # @type Tricopter Y- 6 | # 7 | # @maintainer Trent Lukaczyk 8 | # 9 | 10 | sh /etc/init.d/rc.mc_defaults 11 | 12 | set MIXER tri_y_yaw- 13 | 14 | set PWM_OUT 1234 15 | 16 | 17 | -------------------------------------------------------------------------------- /ROMFS/px4fmu_common/init.d/20000_snapdragon_rc_pwm: -------------------------------------------------------------------------------- 1 | #!nsh 2 | # 3 | # @name Passthrough mode for Snapdragon 4 | # 5 | # @type custom 6 | # 7 | # @maintainer Julian Oes 8 | # 9 | # This startup can be used on Pixhawk/Pixfalcon/Pixracer for the 10 | # passthrough of RC input and PWM output. 11 | 12 | set VEHICLE_TYPE passthrough 13 | -------------------------------------------------------------------------------- /ROMFS/px4fmu_common/init.d/2100_mpx_easystar: -------------------------------------------------------------------------------- 1 | #!nsh 2 | # 3 | # @name Multiplex Easystar 4 | # 5 | # @type Standard Plane 6 | # 7 | # @maintainer Lorenz Meier 8 | # 9 | 10 | sh /etc/init.d/rc.fw_defaults 11 | 12 | set MIXER easystar 13 | -------------------------------------------------------------------------------- /ROMFS/px4fmu_common/init.d/2101_fw_AERT: -------------------------------------------------------------------------------- 1 | #!nsh 2 | # 3 | # @name Standard AERT Plane 4 | # 5 | # @type Standard Plane 6 | # 7 | # @output MAIN1 aileron 8 | # @output MAIN2 elevator 9 | # @output MAIN3 rudder 10 | # @output MAIN4 throttle 11 | # @output MAIN5 flaps 12 | # 13 | # @output AUX1 feed-through of RC AUX1 channel 14 | # @output AUX2 feed-through of RC AUX2 channel 15 | # @output AUX3 feed-through of RC AUX3 channel 16 | # 17 | # @maintainer Lorenz Meier 18 | # 19 | 20 | sh /etc/init.d/rc.fw_defaults 21 | 22 | set MIXER AERT 23 | 24 | # use PWM parameters for throttle channel 25 | set PWM_OUT 4 26 | set PWM_DISARMED p:PWM_DISARMED 27 | set PWM_MIN p:PWM_MIN 28 | set PWM_MAX p:PWM_MAX 29 | -------------------------------------------------------------------------------- /ROMFS/px4fmu_common/init.d/2102_3dr_skywalker: -------------------------------------------------------------------------------- 1 | #!nsh 2 | # 3 | # @name Skywalker (3DR Aero) 4 | # 5 | # @type Standard Plane 6 | # 7 | # @output MAIN1 aileron 8 | # @output MAIN2 elevator 9 | # @output MAIN4 rudder 10 | # @output MAIN3 throttle 11 | # @output MAIN5 flaps 12 | # 13 | # @output AUX1 feed-through of RC AUX1 channel 14 | # @output AUX2 feed-through of RC AUX2 channel 15 | # @output AUX3 feed-through of RC AUX3 channel 16 | # 17 | # @maintainer Lorenz Meier 18 | # 19 | 20 | sh /etc/init.d/rc.fw_defaults 21 | 22 | set MIXER skywalker -------------------------------------------------------------------------------- /ROMFS/px4fmu_common/init.d/2103_skyhunter_1800: -------------------------------------------------------------------------------- 1 | #!nsh 2 | # 3 | # @name Skyhunter 1800 4 | # 5 | # @type Standard Plane 6 | # 7 | # @output MAIN1 aileron 8 | # @output MAIN2 elevator 9 | # @output MAIN4 throttle 10 | # 11 | # @output AUX1 feed-through of RC AUX1 channel 12 | # @output AUX2 feed-through of RC AUX2 channel 13 | # @output AUX3 feed-through of RC AUX3 channel 14 | # 15 | # @maintainer Lorenz Meier 16 | # 17 | 18 | sh /etc/init.d/rc.fw_defaults 19 | 20 | set MIXER AET 21 | -------------------------------------------------------------------------------- /ROMFS/px4fmu_common/init.d/2104_fw_AETR: -------------------------------------------------------------------------------- 1 | #!nsh 2 | # 3 | # @name Standard AETR Plane 4 | # 5 | # @type Standard Plane 6 | # 7 | # @output MAIN1 aileron 8 | # @output MAIN2 elevator 9 | # @output MAIN3 throttle 10 | # @output MAIN4 rudder 11 | # @output MAIN5 flaps 12 | # 13 | # @output AUX1 feed-through of RC AUX1 channel 14 | # @output AUX2 feed-through of RC AUX2 channel 15 | # @output AUX3 feed-through of RC AUX3 channel 16 | # 17 | # @maintainer Lorenz Meier 18 | # 19 | 20 | sh /etc/init.d/rc.fw_defaults 21 | 22 | set MIXER AETR 23 | 24 | # use PWM parameters for throttle channel 25 | set PWM_OUT 3 26 | set PWM_DISARMED p:PWM_DISARMED 27 | set PWM_MIN p:PWM_MIN 28 | set PWM_MAX p:PWM_MAX 29 | -------------------------------------------------------------------------------- /ROMFS/px4fmu_common/init.d/2105_maja: -------------------------------------------------------------------------------- 1 | #!nsh 2 | # 3 | # @name Bormatec Maja 4 | # 5 | # @type Standard Plane 6 | # 7 | # @output MAIN1 aileron 8 | # @output MAIN2 aileron 9 | # @output MAIN3 elevator 10 | # @output MAIN4 rudder 11 | # @output MAIN5 throttle 12 | # @output MAIN6 wheel 13 | # @output MAIN7 flaps 14 | # 15 | # @output AUX1 feed-through of RC AUX1 channel 16 | # @output AUX2 feed-through of RC AUX2 channel 17 | # @output AUX3 feed-through of RC AUX3 channel 18 | # 19 | # @maintainer Andreas Antener 20 | # 21 | 22 | sh /etc/init.d/rc.fw_defaults 23 | 24 | if [ $AUTOCNF == yes ] 25 | then 26 | param set FW_AIRSPD_MIN 10 27 | param set FW_AIRSPD_TRIM 15 28 | param set FW_AIRSPD_MAX 20 29 | 30 | param set FW_MAN_P_MAX 55 31 | param set FW_MAN_R_MAX 55 32 | param set FW_R_LIM 55 33 | 34 | param set FW_WR_FF 0.2 35 | param set FW_WR_I 0.2 36 | param set FW_WR_IMAX 0.8 37 | param set FW_WR_P 1 38 | param set FW_W_RMAX 0 39 | 40 | # set disarmed value for the ESC 41 | param set PWM_DISARMED 1000 42 | fi 43 | 44 | set MIXER AAERTWF 45 | 46 | # use PWM parameters for throttle channel 47 | set PWM_OUT 5 48 | set PWM_DISARMED p:PWM_DISARMED 49 | set PWM_MIN p:PWM_MIN 50 | set PWM_MAX p:PWM_MAX 51 | -------------------------------------------------------------------------------- /ROMFS/px4fmu_common/init.d/2106_albatross: -------------------------------------------------------------------------------- 1 | #!nsh 2 | # 3 | # @name Applied Aeronautics Albatross 4 | # 5 | # @type Plane A-Tail 6 | # 7 | # @output MAIN1 aileron right 8 | # @output MAIN2 aileron left 9 | # @output MAIN3 v-tail right 10 | # @output MAIN4 v-tail left 11 | # @output MAIN5 throttle 12 | # @output MAIN6 wheel 13 | # @output MAIN7 flaps right 14 | # @output MAIN8 flaps left 15 | # 16 | # @output AUX1 feed-through of RC AUX1 channel 17 | # @output AUX2 feed-through of RC AUX2 channel 18 | # @output AUX3 feed-through of RC AUX3 channel 19 | # 20 | # @maintainer Andreas Antener 21 | # 22 | 23 | sh /etc/init.d/rc.fw_defaults 24 | 25 | if [ $AUTOCNF == yes ] 26 | then 27 | param set FW_AIRSPD_MIN 10 28 | param set FW_AIRSPD_TRIM 15 29 | param set FW_AIRSPD_MAX 20 30 | 31 | param set FW_MAN_P_MAX 55 32 | param set FW_MAN_R_MAX 55 33 | param set FW_R_LIM 55 34 | 35 | param set FW_WR_FF 0.2 36 | param set FW_WR_I 0.2 37 | param set FW_WR_IMAX 0.8 38 | param set FW_WR_P 1 39 | param set FW_W_RMAX 0 40 | 41 | # set disarmed value for the ESC 42 | param set PWM_DISARMED 1000 43 | fi 44 | 45 | set MIXER AAVVTWFF 46 | 47 | # use PWM parameters for throttle channel 48 | set PWM_OUT 5 49 | set PWM_DISARMED p:PWM_DISARMED 50 | set PWM_MIN p:PWM_MIN 51 | set PWM_MAX p:PWM_MAX 52 | -------------------------------------------------------------------------------- /ROMFS/px4fmu_common/init.d/3030_io_camflyer: -------------------------------------------------------------------------------- 1 | #!nsh 2 | # 3 | # @name IO Camflyer 4 | # 5 | # @url https://pixhawk.org/platforms/planes/bormatec_camflyer_q 6 | # 7 | # @type Flying Wing 8 | # 9 | # @output MAIN1 left aileron 10 | # @output MAIN2 right aileron 11 | # @output MAIN4 throttle 12 | # 13 | # @output AUX1 feed-through of RC AUX1 channel 14 | # @output AUX2 feed-through of RC AUX2 channel 15 | # @output AUX3 feed-through of RC AUX3 channel 16 | # 17 | # @maintainer Simon Wilks 18 | # 19 | 20 | sh /etc/init.d/rc.fw_defaults 21 | 22 | if [ $AUTOCNF == yes ] 23 | then 24 | param set FW_AIRSPD_MAX 15 25 | param set FW_AIRSPD_MIN 10 26 | param set FW_AIRSPD_TRIM 13 27 | param set FW_R_TC 0.3 28 | param set FW_P_TC 0.3 29 | param set FW_L1_DAMPING 0.74 30 | param set FW_L1_PERIOD 16 31 | param set FW_LND_ANG 15 32 | param set FW_LND_FLALT 5 33 | param set FW_LND_HHDIST 15 34 | param set FW_LND_HVIRT 13 35 | param set FW_LND_TLALT 5 36 | param set FW_THR_LND_MAX 0 37 | param set FW_PR_FF 0.35 38 | param set FW_PR_IMAX 0.4 39 | param set FW_PR_P 0.08 40 | param set FW_RR_FF 0.6 41 | param set FW_RR_IMAX 0.2 42 | param set FW_RR_P 0.04 43 | fi 44 | 45 | set MIXER Q 46 | # Provide ESC a constant 1000 us pulse while disarmed 47 | set PWM_OUT 4 48 | set PWM_DISARMED 1000 49 | -------------------------------------------------------------------------------- /ROMFS/px4fmu_common/init.d/3032_skywalker_x5: -------------------------------------------------------------------------------- 1 | #!nsh 2 | # 3 | # @name Skywalker X5 Flying Wing 4 | # 5 | # @url https://pixhawk.org/platforms/planes/skywalker_x5 6 | # 7 | # @type Flying Wing 8 | # 9 | # @output MAIN1 left aileron 10 | # @output MAIN2 right aileron 11 | # @output MAIN4 throttle 12 | # 13 | # @output AUX1 feed-through of RC AUX1 channel 14 | # @output AUX2 feed-through of RC AUX2 channel 15 | # @output AUX3 feed-through of RC AUX3 channel 16 | # 17 | # @maintainer Thomas Gubler , Julian Oes 18 | # 19 | 20 | sh /etc/init.d/rc.fw_defaults 21 | 22 | if [ $AUTOCNF == yes ] 23 | then 24 | param set FW_AIRSPD_MIN 15 25 | param set FW_AIRSPD_TRIM 20 26 | param set FW_AIRSPD_MAX 40 27 | param set FW_R_TC 0.3 28 | param set FW_P_TC 0.3 29 | param set FW_L1_DAMPING 0.74 30 | param set FW_L1_PERIOD 16 31 | param set FW_LND_ANG 15 32 | param set FW_LND_FLALT 5 33 | param set FW_LND_HHDIST 15 34 | param set FW_LND_HVIRT 13 35 | param set FW_LND_TLALT 5 36 | param set FW_THR_LND_MAX 0 37 | param set FW_PR_FF 0.35 38 | param set FW_RR_FF 0.6 39 | param set FW_RR_P 0.04 40 | fi 41 | 42 | set MIXER X5 43 | -------------------------------------------------------------------------------- /ROMFS/px4fmu_common/init.d/3033_wingwing: -------------------------------------------------------------------------------- 1 | #!nsh 2 | # 3 | # @name Wing Wing (aka Z-84) Flying Wing 4 | # 5 | # @url https://pixhawk.org/platforms/planes/z-84_wing_wing 6 | # 7 | # @type Flying Wing 8 | # 9 | # @output MAIN1 left aileron 10 | # @output MAIN2 right aileron 11 | # @output MAIN4 throttle 12 | # 13 | # @output AUX1 feed-through of RC AUX1 channel 14 | # @output AUX2 feed-through of RC AUX2 channel 15 | # @output AUX3 feed-through of RC AUX3 channel 16 | # 17 | # @maintainer Lorenz Meier 18 | # 19 | 20 | sh /etc/init.d/rc.fw_defaults 21 | 22 | if [ $AUTOCNF == yes ] 23 | then 24 | param set BAT_N_CELLS 2 25 | param set FW_AIRSPD_MAX 15 26 | param set FW_AIRSPD_MIN 10 27 | param set FW_AIRSPD_TRIM 13 28 | param set FW_R_TC 0.3 29 | param set FW_P_TC 0.3 30 | param set FW_L1_DAMPING 0.74 31 | param set FW_L1_PERIOD 16 32 | param set FW_LND_ANG 15 33 | param set FW_LND_FLALT 5 34 | param set FW_LND_HHDIST 15 35 | param set FW_LND_HVIRT 13 36 | param set FW_LND_TLALT 5 37 | param set FW_THR_LND_MAX 0 38 | param set FW_PR_FF 0.35 39 | param set FW_RR_FF 0.6 40 | param set FW_RR_P 0.04 41 | fi 42 | 43 | # Configure this as plane 44 | set MAV_TYPE 1 45 | # Set mixer 46 | set MIXER wingwing 47 | # Provide ESC a constant 1000 us pulse 48 | set PWM_OUT 4 49 | set PWM_DISARMED 1000 50 | -------------------------------------------------------------------------------- /ROMFS/px4fmu_common/init.d/3034_fx79: -------------------------------------------------------------------------------- 1 | #!nsh 2 | # 3 | # @name FX-79 Buffalo Flying Wing 4 | # 5 | # @type Flying Wing 6 | # 7 | # @maintainer Simon Wilks 8 | # 9 | 10 | sh /etc/init.d/rc.fw_defaults 11 | 12 | if [ $AUTOCNF == yes ] 13 | then 14 | param set NAV_LOITER_RAD 150 15 | param set FW_AIRSPD_MAX 30 16 | param set FW_AIRSPD_MIN 13 17 | param set FW_AIRSPD_TRIM 15 18 | fi 19 | 20 | set MIXER FX79 21 | -------------------------------------------------------------------------------- /ROMFS/px4fmu_common/init.d/3035_viper: -------------------------------------------------------------------------------- 1 | # 2 | #!nsh 3 | # 4 | # @name Viper 5 | # 6 | # @type Flying Wing 7 | # 8 | # @maintainer Simon Wilks 9 | # 10 | 11 | sh /etc/init.d/rc.fw_defaults 12 | 13 | set MIXER Viper 14 | 15 | -------------------------------------------------------------------------------- /ROMFS/px4fmu_common/init.d/3100_tbs_caipirinha: -------------------------------------------------------------------------------- 1 | #!nsh 2 | # 3 | # @name TBS Caipirinha 4 | # 5 | # @type Flying Wing 6 | # 7 | # @maintainer Lorenz Meier 8 | # 9 | 10 | sh /etc/init.d/rc.fw_defaults 11 | 12 | if [ $AUTOCNF == yes ] 13 | then 14 | param set FW_AIRSPD_MAX 20 15 | param set FW_AIRSPD_MIN 12 16 | param set FW_AIRSPD_TRIM 16 17 | param set FW_R_TC 0.3 18 | param set FW_P_TC 0.3 19 | param set FW_L1_DAMPING 0.74 20 | param set FW_L1_PERIOD 16 21 | param set FW_LND_ANG 15 22 | param set FW_LND_FLALT 5 23 | param set FW_LND_HHDIST 15 24 | param set FW_LND_HVIRT 13 25 | param set FW_LND_TLALT 5 26 | param set FW_THR_LND_MAX 0 27 | param set FW_PR_FF 0.35 28 | param set FW_PR_IMAX 0.4 29 | param set FW_PR_P 0.08 30 | param set FW_RR_FF 0.6 31 | param set FW_RR_IMAX 0.2 32 | param set FW_RR_P 0.04 33 | param set SYS_COMPANION 157600 34 | param set PWM_MAIN_REV0 1 35 | param set PWM_MAIN_REV1 1 36 | param set PWM_DISARMED 0 37 | param set PWM_MIN 900 38 | param set PWM_MAX 2100 39 | fi 40 | 41 | set PWM_DISARMED p:PWM_DISARMED 42 | set PWM_MIN p:PWM_MIN 43 | set PWM_MAX p:PWM_MAX 44 | 45 | set MIXER caipi 46 | set PWM_OUT 1234 47 | -------------------------------------------------------------------------------- /ROMFS/px4fmu_common/init.d/4001_quad_x: -------------------------------------------------------------------------------- 1 | #!nsh 2 | # 3 | # @name Generic Quadrotor X config 4 | # 5 | # @type Quadrotor x 6 | # 7 | # @output AUX1 feed-through of RC AUX1 channel 8 | # @output AUX2 feed-through of RC AUX2 channel 9 | # @output AUX3 feed-through of RC AUX3 channel 10 | # 11 | # @maintainer Lorenz Meier 12 | # 13 | 14 | sh /etc/init.d/rc.mc_defaults 15 | 16 | set MIXER quad_x 17 | 18 | set PWM_OUT 1234 19 | -------------------------------------------------------------------------------- /ROMFS/px4fmu_common/init.d/4008_ardrone: -------------------------------------------------------------------------------- 1 | #!nsh 2 | # 3 | # @name AR.Drone Frame 4 | # 5 | # @type Quadrotor x 6 | # 7 | # @maintainer Lorenz Meier 8 | # 9 | 10 | sh /etc/init.d/rc.mc_defaults 11 | 12 | # 13 | # Load default params for this platform 14 | # 15 | if [ $AUTOCNF == yes ] 16 | then 17 | # Set all params here, then disable autoconfig 18 | param set MC_ROLL_P 6.0 19 | param set MC_ROLLRATE_P 0.14 20 | param set MC_ROLLRATE_I 0.1 21 | param set MC_ROLLRATE_D 0.002 22 | param set MC_PITCH_P 6.0 23 | param set MC_PITCHRATE_P 0.14 24 | param set MC_PITCHRATE_I 0.1 25 | param set MC_PITCHRATE_D 0.002 26 | param set MC_YAW_P 2.0 27 | param set MC_YAWRATE_P 0.2 28 | param set MC_YAWRATE_I 0.2 29 | param set MC_YAWRATE_D 0.0 30 | param set MC_YAW_FF 0.8 31 | 32 | param set BAT_V_SCALING 0.00838095238 33 | fi 34 | 35 | set OUTPUT_MODE ardrone 36 | set USE_IO no 37 | set MIXER skip 38 | # set MAV_TYPE because no specific mixer is set 39 | set MAV_TYPE 2 40 | -------------------------------------------------------------------------------- /ROMFS/px4fmu_common/init.d/4009_qav250: -------------------------------------------------------------------------------- 1 | #!nsh 2 | # 3 | # @name Lumenier QAV250 4 | # 5 | # @type Quadrotor x 6 | # 7 | # @output AUX1 feed-through of RC AUX1 channel 8 | # @output AUX2 feed-through of RC AUX2 channel 9 | # @output AUX3 feed-through of RC AUX3 channel 10 | # 11 | # @maintainer Mark Whitehorn 12 | # 13 | 14 | sh /etc/init.d/4001_quad_x 15 | 16 | if [ $AUTOCNF == yes ] 17 | then 18 | param set MC_ROLL_P 7.0 19 | param set MC_ROLLRATE_P 0.05 20 | param set MC_ROLLRATE_I 0.05 21 | param set MC_ROLLRATE_D 0.002 22 | param set MC_PITCH_P 7.0 23 | param set MC_PITCHRATE_P 0.08 24 | param set MC_PITCHRATE_I 0.1 25 | param set MC_PITCHRATE_D 0.003 26 | param set MC_YAW_P 2.8 27 | param set MC_YAWRATE_P 0.2 28 | param set MC_YAWRATE_I 0.1 29 | param set MC_YAWRATE_D 0.0 30 | param set PWM_MIN 1075 31 | param set MPC_THR_MIN 0.06 32 | param set MPC_MANTHR_MIN 0.06 33 | param set CBRK_IO_SAFETY 22027 34 | fi 35 | -------------------------------------------------------------------------------- /ROMFS/px4fmu_common/init.d/4010_dji_f330: -------------------------------------------------------------------------------- 1 | #!nsh 2 | # 3 | # @name DJI Flame Wheel F330 4 | # 5 | # @type Quadrotor x 6 | # 7 | # @output AUX1 feed-through of RC AUX1 channel 8 | # @output AUX2 feed-through of RC AUX2 channel 9 | # @output AUX3 feed-through of RC AUX3 channel 10 | # 11 | # @maintainer Lorenz Meier 12 | # 13 | 14 | sh /etc/init.d/4001_quad_x 15 | 16 | if [ $AUTOCNF == yes ] 17 | then 18 | param set MC_ROLL_P 7.0 19 | param set MC_ROLLRATE_P 0.15 20 | param set MC_ROLLRATE_I 0.05 21 | param set MC_ROLLRATE_D 0.003 22 | param set MC_PITCH_P 7.0 23 | param set MC_PITCHRATE_P 0.15 24 | param set MC_PITCHRATE_I 0.05 25 | param set MC_PITCHRATE_D 0.003 26 | param set MC_YAW_P 2.8 27 | param set MC_YAWRATE_P 0.2 28 | param set MC_YAWRATE_I 0.1 29 | param set MC_YAWRATE_D 0.0 30 | # DJI ESCs do not support calibration and need a higher min 31 | param set PWM_MIN 1230 32 | fi 33 | -------------------------------------------------------------------------------- /ROMFS/px4fmu_common/init.d/4011_dji_f450: -------------------------------------------------------------------------------- 1 | #!nsh 2 | # 3 | # @name DJI Flame Wheel F450 4 | # 5 | # @type Quadrotor x 6 | # 7 | # @output AUX1 feed-through of RC AUX1 channel 8 | # @output AUX2 feed-through of RC AUX2 channel 9 | # @output AUX3 feed-through of RC AUX3 channel 10 | # 11 | # @maintainer Lorenz Meier 12 | # 13 | 14 | sh /etc/init.d/4001_quad_x 15 | 16 | if [ $AUTOCNF == yes ] 17 | then 18 | param set MC_ROLL_P 7.0 19 | param set MC_ROLLRATE_P 0.15 20 | param set MC_ROLLRATE_I 0.05 21 | param set MC_ROLLRATE_D 0.003 22 | param set MC_PITCH_P 7.0 23 | param set MC_PITCHRATE_P 0.15 24 | param set MC_PITCHRATE_I 0.05 25 | param set MC_PITCHRATE_D 0.003 26 | param set MC_YAW_P 2.8 27 | param set MC_YAWRATE_P 0.3 28 | param set MC_YAWRATE_I 0.1 29 | param set MC_YAWRATE_D 0.0 30 | # DJI ESCs do not support calibration and need a higher min 31 | param set PWM_MIN 1230 32 | fi 33 | -------------------------------------------------------------------------------- /ROMFS/px4fmu_common/init.d/4012_quad_x_can: -------------------------------------------------------------------------------- 1 | #!nsh 2 | # 3 | # @name F450-sized quadrotor with CAN 4 | # 5 | # @type Quadrotor x 6 | # 7 | # @maintainer Pavel Kirienko 8 | # 9 | 10 | sh /etc/init.d/4001_quad_x 11 | 12 | if [ $AUTOCNF == yes ] 13 | then 14 | param set MC_ROLL_P 7.0 15 | param set MC_ROLLRATE_P 0.16 16 | param set MC_ROLLRATE_I 0.05 17 | param set MC_ROLLRATE_D 0.003 18 | param set MC_PITCH_P 7.0 19 | param set MC_PITCHRATE_P 0.16 20 | param set MC_PITCHRATE_I 0.05 21 | param set MC_PITCHRATE_D 0.003 22 | param set MC_YAW_P 2.8 23 | param set MC_YAWRATE_P 0.3 24 | param set MC_YAWRATE_I 0.1 25 | param set MC_YAWRATE_D 0.0 26 | fi 27 | 28 | set OUTPUT_MODE uavcan_esc 29 | -------------------------------------------------------------------------------- /ROMFS/px4fmu_common/init.d/4020_hk_micro_pcb: -------------------------------------------------------------------------------- 1 | #!nsh 2 | # 3 | # @name Hobbyking Micro PCB 4 | # 5 | # @type Quadrotor x 6 | # 7 | # @maintainer Thomas Gubler 8 | # 9 | 10 | sh /etc/init.d/4001_quad_x 11 | 12 | if [ $AUTOCNF == yes ] 13 | then 14 | param set MC_ROLL_P 7.0 15 | param set MC_ROLLRATE_P 0.1 16 | param set MC_ROLLRATE_I 0.05 17 | param set MC_ROLLRATE_D 0.003 18 | param set MC_PITCH_P 7.0 19 | param set MC_PITCHRATE_P 0.1 20 | param set MC_PITCHRATE_I 0.05 21 | param set MC_PITCHRATE_D 0.003 22 | param set MC_YAW_P 2.8 23 | param set MC_YAWRATE_P 0.2 24 | param set MC_YAWRATE_I 0.1 25 | param set MC_YAWRATE_D 0.0 26 | fi 27 | 28 | set PWM_MIN 1200 29 | -------------------------------------------------------------------------------- /ROMFS/px4fmu_common/init.d/4040_reaper: -------------------------------------------------------------------------------- 1 | #!nsh 2 | # 3 | # @name Reaper 500 Quad 4 | # 5 | # @type Quadrotor x 6 | # 7 | # @maintainer Blankered 8 | # 9 | 10 | sh /etc/init.d/rc.mc_defaults 11 | 12 | if [ $AUTOCNF == yes ] 13 | then 14 | param set MC_ROLL_P 6.5 15 | param set MC_ROLLRATE_P 0.14 16 | param set MC_ROLLRATE_I 0.1 17 | param set MC_ROLLRATE_D 0.004 18 | param set MC_PITCH_P 6.0 19 | param set MC_PITCHRATE_P 0.14 20 | param set MC_PITCHRATE_I 0.09 21 | param set MC_PITCHRATE_D 0.004 22 | param set MC_YAW_P 4 23 | 24 | param set NAV_ACC_RAD 2.0 25 | param set RTL_RETURN_ALT 30.0 26 | param set RTL_DESCEND_ALT 10.0 27 | fi 28 | 29 | set MIXER quad_h 30 | 31 | set PWM_RATE 50 32 | set PWM_OUT 1234 33 | set PWM_MIN 1100 34 | set PWM_MAX 1900 35 | set PWM_DISARMED 1500 36 | 37 | set MIXER_AUX pass 38 | set PWM_AUX_RATE 50 39 | set PWM_AUX_OUT 1234 40 | set PWM_AUX_MIN 1000 41 | set PWM_AUX_MAX 2000 42 | set PWM_AUX_DISARMED 950 43 | -------------------------------------------------------------------------------- /ROMFS/px4fmu_common/init.d/4050_generic_250: -------------------------------------------------------------------------------- 1 | #!nsh 2 | # 3 | # @name Generic 250 Racer 4 | # 5 | # @type Quadrotor x 6 | # 7 | # @output AUX1 feed-through of RC AUX1 channel 8 | # @output AUX2 feed-through of RC AUX2 channel 9 | # @output AUX3 feed-through of RC AUX3 channel 10 | # 11 | # @maintainer Mark Whitehorn 12 | # 13 | 14 | sh /etc/init.d/4001_quad_x 15 | 16 | if [ $AUTOCNF == yes ] 17 | then 18 | param set MC_ROLL_P 7.0 19 | param set MC_ROLLRATE_P 0.1 20 | param set MC_ROLLRATE_I 0.1 21 | param set MC_ROLLRATE_D 0.005 22 | param set MC_PITCH_P 7.0 23 | param set MC_PITCHRATE_P 0.1 24 | param set MC_PITCHRATE_I 0.2 25 | param set MC_PITCHRATE_D 0.005 26 | param set MC_YAW_P 2.8 27 | param set MC_YAWRATE_P 0.2 28 | param set MC_YAWRATE_I 0.1 29 | param set MC_YAWRATE_D 0.0 30 | param set PWM_MIN 1075 31 | param set MPC_THR_MIN 0.06 32 | param set MPC_MANTHR_MIN 0.06 33 | param set MC_ROLLRATE_MAX 1000.0 34 | param set MC_PITCHRATE_MAX 1000.0 35 | param set MC_YAWRATE_MAX 400.0 36 | param set ATT_BIAS_MAX 0.0 37 | param set CBRK_IO_SAFETY 22027 38 | fi 39 | -------------------------------------------------------------------------------- /ROMFS/px4fmu_common/init.d/50001_axialracing_ax10: -------------------------------------------------------------------------------- 1 | #!nsh 2 | # 3 | # @name Axial Racing AX10 4 | # 5 | # @type Rover 6 | # 7 | 8 | sh /etc/init.d/rc.axialracing_ax10_defaults 9 | 10 | #choose a mixer, for rover control we need a plain passthrough to the servos 11 | set MIXER IO_pass 12 | -------------------------------------------------------------------------------- /ROMFS/px4fmu_common/init.d/5001_quad_+: -------------------------------------------------------------------------------- 1 | #!nsh 2 | # 3 | # @name Generic 10" Quad + geometry 4 | # 5 | # @type Quadrotor + 6 | # 7 | # @maintainer Anton Babushkin 8 | # 9 | 10 | sh /etc/init.d/rc.mc_defaults 11 | 12 | set MIXER quad_+ 13 | 14 | set PWM_OUT 1234 15 | -------------------------------------------------------------------------------- /ROMFS/px4fmu_common/init.d/6001_hexa_x: -------------------------------------------------------------------------------- 1 | #!nsh 2 | # 3 | # @name Generic Hexarotor x geometry 4 | # 5 | # @type Hexarotor x 6 | # 7 | # @output AUX1 feed-through of RC AUX1 channel 8 | # @output AUX2 feed-through of RC AUX2 channel 9 | # @output AUX3 feed-through of RC AUX3 channel 10 | # 11 | # @maintainer Anton Babushkin 12 | # 13 | 14 | sh /etc/init.d/rc.mc_defaults 15 | 16 | set MIXER hexa_x 17 | 18 | # Need to set all 8 channels 19 | set PWM_OUT 12345678 20 | -------------------------------------------------------------------------------- /ROMFS/px4fmu_common/init.d/7001_hexa_+: -------------------------------------------------------------------------------- 1 | #!nsh 2 | # 3 | # @name Generic Hexarotor + geometry 4 | # 5 | # @type Hexarotor + 6 | # 7 | # @output AUX1 feed-through of RC AUX1 channel 8 | # @output AUX2 feed-through of RC AUX2 channel 9 | # @output AUX3 feed-through of RC AUX3 channel 10 | # 11 | # @maintainer Anton Babushkin 12 | # 13 | 14 | sh /etc/init.d/rc.mc_defaults 15 | 16 | set MIXER hexa_+ 17 | 18 | # Need to set all 8 channels 19 | set PWM_OUT 12345678 20 | -------------------------------------------------------------------------------- /ROMFS/px4fmu_common/init.d/8001_octo_x: -------------------------------------------------------------------------------- 1 | #!nsh 2 | # 3 | # @name Generic Octocopter X geometry 4 | # 5 | # @type Octorotor x 6 | # 7 | # @output AUX1 feed-through of RC AUX1 channel 8 | # @output AUX2 feed-through of RC AUX2 channel 9 | # @output AUX3 feed-through of RC AUX3 channel 10 | # 11 | # @maintainer Anton Babushkin 12 | # 13 | 14 | sh /etc/init.d/rc.mc_defaults 15 | 16 | set MIXER octo_x 17 | 18 | set PWM_OUT 12345678 19 | -------------------------------------------------------------------------------- /ROMFS/px4fmu_common/init.d/9001_octo_+: -------------------------------------------------------------------------------- 1 | #!nsh 2 | # 3 | # @name Generic Octocopter + geometry 4 | # 5 | # @type Octorotor + 6 | # 7 | # @output AUX1 feed-through of RC AUX1 channel 8 | # @output AUX2 feed-through of RC AUX2 channel 9 | # @output AUX3 feed-through of RC AUX3 channel 10 | # 11 | # @maintainer Anton Babushkin 12 | # 13 | 14 | sh /etc/init.d/rc.mc_defaults 15 | 16 | set MIXER octo_+ 17 | 18 | set PWM_OUT 12345678 19 | -------------------------------------------------------------------------------- /ROMFS/px4fmu_common/init.d/rc.axialracing_ax10_apps: -------------------------------------------------------------------------------- 1 | #!nsh 2 | # 3 | # Standard apps for rovers: 4 | # att & pos estimator, rover steering control 5 | # 6 | 7 | ekf_att_pos_estimator start 8 | 9 | # disabled the start of steering control app due to use of offboard mode only 10 | # rover_steering_control start 11 | -------------------------------------------------------------------------------- /ROMFS/px4fmu_common/init.d/rc.axialracing_ax10_defaults: -------------------------------------------------------------------------------- 1 | #!nsh 2 | 3 | set VEHICLE_TYPE rover 4 | 5 | # This section can be enabled once tuning parameters for this particular 6 | # rover model are known. It allows to configure default gains via the GUI 7 | #if [ $AUTOCNF == yes ] 8 | #then 9 | # # param set MC_ROLL_P 7.0 10 | #fi 11 | 12 | # PWM Hz - 50 Hz is the normal rate in RC cars, higher rates 13 | # may damage analog servos. 14 | set PWM_RATE 50 15 | 16 | # PWM default value for "disarmed" mode 17 | # this centers the steering and throttle, which means no motion 18 | # for a rover 19 | set PWM_DISARMED 1500 20 | 21 | # PWM range 22 | set PWM_MIN 1200 23 | set PWM_MAX 1800 24 | 25 | # Enable servo output on pins 3 and 4 (steering and thrust) 26 | # but also include 1+2 as they form together one output group 27 | # and need to be set together. 28 | set PWM_OUT 1234 29 | -------------------------------------------------------------------------------- /ROMFS/px4fmu_common/init.d/rc.fw_apps: -------------------------------------------------------------------------------- 1 | #!nsh 2 | # 3 | # Standard apps for fixed wing 4 | # 5 | 6 | # 7 | # Start the attitude and position estimator 8 | # 9 | ekf_att_pos_estimator start 10 | 11 | # 12 | # Start attitude controller 13 | # 14 | fw_att_control start 15 | fw_pos_control_l1 start 16 | 17 | # 18 | # Start Land Detector 19 | # 20 | land_detector start fixedwing 21 | 22 | # 23 | # Misc apps 24 | # 25 | -------------------------------------------------------------------------------- /ROMFS/px4fmu_common/init.d/rc.fw_defaults: -------------------------------------------------------------------------------- 1 | #!nsh 2 | 3 | set VEHICLE_TYPE fw 4 | 5 | if [ $AUTOCNF == yes ] 6 | then 7 | # 8 | # Default parameters for FW 9 | # 10 | param set RTL_RETURN_ALT 100 11 | param set RTL_DESCEND_ALT 100 12 | param set RTL_LAND_DELAY -1 13 | 14 | param set NAV_ACC_RAD 50 15 | 16 | param set PE_VELNE_NOISE 0.3 17 | param set PE_VELD_NOISE 0.35 18 | param set PE_POSNE_NOISE 0.5 19 | param set PE_POSD_NOISE 1.0 20 | fi 21 | 22 | # This is the gimbal pass mixer 23 | set MIXER_AUX pass 24 | set PWM_AUX_RATE 50 25 | set PWM_AUX_OUT 1234 26 | set PWM_AUX_DISARMED 1500 27 | set PWM_AUX_MIN 1000 28 | set PWM_AUX_MAX 2000 29 | -------------------------------------------------------------------------------- /ROMFS/px4fmu_common/init.d/rc.io: -------------------------------------------------------------------------------- 1 | # 2 | # Init PX4IO interface 3 | # 4 | 5 | # 6 | # Allow PX4IO to recover from midair restarts. 7 | # 8 | px4io recovery 9 | 10 | # 11 | # Adjust PX4IO update rate limit 12 | # 13 | set PX4IO_LIMIT 400 14 | if ver hwcmp PX4FMU_V1 15 | then 16 | set PX4IO_LIMIT 200 17 | fi 18 | 19 | if px4io limit $PX4IO_LIMIT 20 | then 21 | else 22 | echo "[i] Set PX4IO update rate to $PX4IO_LIMIT Hz failed!" 23 | fi 24 | -------------------------------------------------------------------------------- /ROMFS/px4fmu_common/init.d/rc.logging: -------------------------------------------------------------------------------- 1 | #!nsh 2 | # 3 | # Initialize logging services. 4 | # 5 | 6 | if [ -d /fs/microsd ] 7 | then 8 | if ver hwcmp PX4FMU_V1 9 | then 10 | if sdlog2 start -r 40 -a -b 3 -t 11 | then 12 | fi 13 | else 14 | # check if we should increase logging rate for ekf2 replay message logging 15 | if param greater EKF2_REC_RPL 0 16 | then 17 | if sdlog2 start -r 500 -e -b 20 -t 18 | then 19 | fi 20 | else 21 | if sdlog2 start -r 100 -a -b 12 -t 22 | then 23 | fi 24 | fi 25 | fi 26 | fi 27 | -------------------------------------------------------------------------------- /ROMFS/px4fmu_common/init.d/rc.mc_apps: -------------------------------------------------------------------------------- 1 | #!nsh 2 | # 3 | # Standard apps for multirotors: 4 | # att & pos estimator, att & pos control. 5 | # 6 | 7 | # The system is defaulting to INAV_ENABLED = 1 8 | # but users can alternatively try the EKF-based 9 | # filter by setting INAV_ENABLED = 0 10 | if param compare INAV_ENABLED 1 11 | then 12 | attitude_estimator_q start 13 | position_estimator_inav start 14 | else 15 | if param compare LPE_ENABLED 1 16 | then 17 | attitude_estimator_q start 18 | local_position_estimator start 19 | else 20 | ekf2 start 21 | fi 22 | fi 23 | 24 | if mc_att_control start 25 | then 26 | else 27 | # try the multiplatform version 28 | mc_att_control_m start 29 | fi 30 | 31 | if mc_pos_control start 32 | then 33 | else 34 | # try the multiplatform version 35 | mc_pos_control_m start 36 | fi 37 | 38 | # 39 | # Start Land Detector 40 | # 41 | land_detector start multicopter 42 | -------------------------------------------------------------------------------- /ROMFS/px4fmu_common/init.d/rc.mc_defaults: -------------------------------------------------------------------------------- 1 | #!nsh 2 | 3 | set VEHICLE_TYPE mc 4 | 5 | if [ $AUTOCNF == yes ] 6 | then 7 | param set PE_VELNE_NOISE 0.5 8 | param set PE_VELD_NOISE 0.35 9 | param set PE_POSNE_NOISE 0.5 10 | param set PE_POSD_NOISE 1.25 11 | 12 | param set NAV_ACC_RAD 2.0 13 | param set RTL_RETURN_ALT 30.0 14 | param set RTL_DESCEND_ALT 10.0 15 | param set PWM_DISARMED 900 16 | param set PWM_MIN 1075 17 | param set PWM_MAX 1950 18 | fi 19 | 20 | # set environment variables (!= parameters) 21 | set PWM_RATE 400 22 | # tell the mixer to use parameters for these instead 23 | set PWM_DISARMED p:PWM_DISARMED 24 | set PWM_MIN p:PWM_MIN 25 | set PWM_MAX p:PWM_MAX 26 | 27 | # This is the gimbal pass mixer 28 | set MIXER_AUX pass 29 | set PWM_AUX_RATE 50 30 | set PWM_AUX_OUT 1234 31 | set PWM_AUX_DISARMED 1500 32 | set PWM_AUX_MIN 1000 33 | set PWM_AUX_MAX 2000 34 | 35 | # Transitional support: ensure suitable PWM min/max param values 36 | if param compare PWM_MIN 1000 37 | then 38 | param set PWM_MIN 1075 39 | fi 40 | if param compare PWM_MAX 2000 41 | then 42 | param set PWM_MAX 1950 43 | fi 44 | if param compare PWM_DISARMED 0 45 | then 46 | param set PWM_DISARMED 900 47 | fi 48 | -------------------------------------------------------------------------------- /ROMFS/px4fmu_common/init.d/rc.uavcan: -------------------------------------------------------------------------------- 1 | #!nsh 2 | # 3 | # UAVCAN initialization script. 4 | # 5 | 6 | # 7 | # Starting stuff according to UAVCAN_ENABLE value 8 | # 9 | if param greater UAVCAN_ENABLE 0 10 | then 11 | if uavcan start 12 | then 13 | echo "[i] UAVCAN started" 14 | else 15 | echo "[i] ERROR: Could not start UAVCAN" 16 | tone_alarm $TUNE_ERR 17 | fi 18 | fi 19 | 20 | if param greater UAVCAN_ENABLE 1 21 | then 22 | if uavcan start fw 23 | then 24 | echo "[i] UAVCAN servers started" 25 | else 26 | echo "[i] ERROR: Could not start UAVCAN servers" 27 | tone_alarm $TUNE_ERR 28 | fi 29 | fi 30 | -------------------------------------------------------------------------------- /ROMFS/px4fmu_common/init.d/rc.usb: -------------------------------------------------------------------------------- 1 | #!nsh 2 | # 3 | # USB MAVLink start 4 | # 5 | 6 | mavlink start -r 800000 -d /dev/ttyACM0 -m config -x 7 | 8 | # Exit shell to make it available to MAVLink 9 | exit 10 | -------------------------------------------------------------------------------- /ROMFS/px4fmu_common/init.d/rc.vtol_apps: -------------------------------------------------------------------------------- 1 | #!nsh 2 | # 3 | # Standard apps for vtol: 4 | # att & pos estimator, att & pos control. 5 | # 6 | 7 | attitude_estimator_q start 8 | #ekf_att_pos_estimator start 9 | position_estimator_inav start 10 | 11 | vtol_att_control start 12 | mc_att_control start 13 | mc_pos_control start 14 | fw_att_control start 15 | fw_pos_control_l1 start 16 | 17 | # 18 | # Start Land Detector 19 | # Multicopter for now until we have something for VTOL 20 | # 21 | land_detector start vtol 22 | -------------------------------------------------------------------------------- /ROMFS/px4fmu_common/init.d/rc.vtol_defaults: -------------------------------------------------------------------------------- 1 | #!nsh 2 | 3 | set VEHICLE_TYPE vtol 4 | 5 | if [ $AUTOCNF == yes ] 6 | then 7 | param set MC_ROLL_P 6.0 8 | param set MC_PITCH_P 6.0 9 | param set MC_YAW_P 4 10 | 11 | param set PE_VELNE_NOISE 0.5 12 | param set PE_VELD_NOISE 0.3 13 | param set PE_POSNE_NOISE 0.5 14 | param set PE_POSD_NOISE 1.25 15 | param set PE_ABIAS_PNOISE 0.0001 16 | 17 | # 18 | # Default parameters for mission and position handling 19 | # 20 | param set NAV_ACC_RAD 3 21 | param set MPC_TKO_SPEED 1.0 22 | param set MPC_LAND_SPEED 0.7 23 | param set MPC_Z_VEL_MAX 1.5 24 | param set MPC_XY_VEL_MAX 4.0 25 | param set MIS_YAW_TMT 10 26 | param set MPC_ACC_HOR_MAX 2.0 27 | fi 28 | 29 | # set environment variables (!= parameters) 30 | set PWM_RATE 400 31 | # tell the mixer to use parameters for these instead 32 | set PWM_DISARMED p:PWM_DISARMED 33 | set PWM_MIN p:PWM_MIN 34 | set PWM_MAX p:PWM_MAX 35 | 36 | # Transitional support: ensure suitable PWM min/max param values 37 | if param compare PWM_MIN 1000 38 | then 39 | param set PWM_MIN 1075 40 | fi 41 | if param compare PWM_MAX 2000 42 | then 43 | param set PWM_MAX 1950 44 | fi 45 | if param compare PWM_DISARMED 0 46 | then 47 | param set PWM_DISARMED 900 48 | fi 49 | -------------------------------------------------------------------------------- /ROMFS/px4fmu_common/logging/conv.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3drobotics/PX4Firmware/b1cc118ef6408235abda896cc29f5c75ae256de4/ROMFS/px4fmu_common/logging/conv.zip -------------------------------------------------------------------------------- /ROMFS/px4fmu_common/mixers/FMU_pass.mix: -------------------------------------------------------------------------------- 1 | Passthrough mixer for PX4FMU 2 | ============================ 3 | 4 | This file defines passthrough mixers suitable for testing. 5 | 6 | Channel group 0, channels 0-3 are passed directly through to the outputs. 7 | 8 | M: 1 9 | O: 10000 10000 0 -10000 10000 10 | S: 0 0 10000 10000 0 -10000 10000 11 | 12 | M: 1 13 | O: 10000 10000 0 -10000 10000 14 | S: 0 1 10000 10000 0 -10000 10000 15 | 16 | M: 1 17 | O: 10000 10000 0 -10000 10000 18 | S: 0 2 10000 10000 0 -10000 10000 19 | 20 | M: 1 21 | O: 10000 10000 0 -10000 10000 22 | S: 0 3 10000 10000 0 -10000 10000 23 | 24 | -------------------------------------------------------------------------------- /ROMFS/px4fmu_common/mixers/IO_pass.main.mix: -------------------------------------------------------------------------------- 1 | Passthrough mixer for PX4IO 2 | ============================ 3 | 4 | This file defines passthrough mixers suitable for testing. 5 | 6 | Channel group 0, channels 0-7 are passed directly through to the outputs. 7 | 8 | M: 1 9 | O: 10000 10000 0 -10000 10000 10 | S: 0 0 10000 10000 0 -10000 10000 11 | 12 | M: 1 13 | O: 10000 10000 0 -10000 10000 14 | S: 0 1 10000 10000 0 -10000 10000 15 | 16 | M: 1 17 | O: 10000 10000 0 -10000 10000 18 | S: 0 2 10000 10000 0 -10000 10000 19 | 20 | M: 1 21 | O: 10000 10000 0 -10000 10000 22 | S: 0 3 10000 10000 0 -10000 10000 23 | 24 | M: 1 25 | O: 10000 10000 0 -10000 10000 26 | S: 0 4 10000 10000 0 -10000 10000 27 | 28 | M: 1 29 | O: 10000 10000 0 -10000 10000 30 | S: 0 5 10000 10000 0 -10000 10000 31 | 32 | M: 1 33 | O: 10000 10000 0 -10000 10000 34 | S: 0 6 10000 10000 0 -10000 10000 35 | 36 | M: 1 37 | O: 10000 10000 0 -10000 10000 38 | S: 0 7 10000 10000 0 -10000 10000 39 | -------------------------------------------------------------------------------- /ROMFS/px4fmu_common/mixers/IO_pass.mix: -------------------------------------------------------------------------------- 1 | Passthrough mixer for PX4IO 2 | ============================ 3 | 4 | This file defines passthrough mixers suitable for testing. 5 | 6 | Channel group 0, channels 0-7 are passed directly through to the outputs. 7 | 8 | M: 1 9 | O: 10000 10000 0 -10000 10000 10 | S: 0 0 10000 10000 0 -10000 10000 11 | 12 | M: 1 13 | O: 10000 10000 0 -10000 10000 14 | S: 0 1 10000 10000 0 -10000 10000 15 | 16 | M: 1 17 | O: 10000 10000 0 -10000 10000 18 | S: 0 2 10000 10000 0 -10000 10000 19 | 20 | M: 1 21 | O: 10000 10000 0 -10000 10000 22 | S: 0 3 10000 10000 0 -10000 10000 23 | 24 | M: 1 25 | O: 10000 10000 0 -10000 10000 26 | S: 0 4 10000 10000 0 -10000 10000 27 | 28 | M: 1 29 | O: 10000 10000 0 -10000 10000 30 | S: 0 5 10000 10000 0 -10000 10000 31 | 32 | M: 1 33 | O: 10000 10000 0 -10000 10000 34 | S: 0 6 10000 10000 0 -10000 10000 35 | 36 | M: 1 37 | O: 10000 10000 0 -10000 10000 38 | S: 0 7 10000 10000 0 -10000 10000 39 | -------------------------------------------------------------------------------- /ROMFS/px4fmu_common/mixers/caipirinha_vtol.main.mix: -------------------------------------------------------------------------------- 1 | Caipirinha tailsitter mixer 2 | ============================ 3 | 4 | This file defines a mixer for the TBS Caipirinha tailsitter edition. This vehicle 5 | has two motors in total, one attached to each wing. It also has two elevons which 6 | are located in the slipstream of the propellers. This mixer generates 4 PWM outputs 7 | on the main PWM ouput port, two at 400Hz for the motors, and two at 50Hz for the 8 | elevon servos. Channels 1-4 are configured to run at 400Hz, while channels 5-8 run 9 | at the default rate of 50Hz. Note that channels 3 and 4 are assigned but not used. 10 | 11 | Motor mixer 12 | ------------ 13 | Channel 1 connects to the right (starboard) motor. 14 | Channel 2 connects to the left (port) motor. 15 | 16 | R: 2- 10000 10000 10000 0 17 | 18 | Zero mixer (2x) 19 | --------------- 20 | Channels 3,4 are unused. 21 | 22 | Z: 23 | 24 | Z: 25 | 26 | Elevons mixer 27 | -------------- 28 | Channel 5 connects to the right (starboard) elevon. 29 | Channel 6 connects to the left (port) elevon. 30 | 31 | M: 2 32 | O: 7500 7500 0 -10000 10000 33 | S: 1 0 -10000 -10000 0 -10000 10000 34 | S: 1 1 10000 10000 0 -10000 10000 35 | 36 | M: 2 37 | O: 7500 7500 0 -10000 10000 38 | S: 1 0 -10000 -10000 0 -10000 10000 39 | S: 1 1 -10000 -10000 0 -10000 10000 40 | -------------------------------------------------------------------------------- /ROMFS/px4fmu_common/mixers/coax.main.mix: -------------------------------------------------------------------------------- 1 | Coaxial helicopter mixer 2 | - Two servomotors act on the swashplate (90° angle on the swashplate, decoupled effect on roll and pitch). 3 | - No collective pitch. 4 | - One motor per rotor. 5 | =========================== 6 | 7 | Left swashplate servomotor, pitch axis 8 | ------------- 9 | M: 1 10 | O: 10000 10000 0 -10000 10000 11 | S: 0 1 -10000 -10000 0 -10000 10000 12 | 13 | Right swashplate servomotor, roll axis 14 | ------------- 15 | M: 1 16 | O: 10000 10000 0 -10000 10000 17 | S: 0 0 10000 10000 0 -10000 10000 18 | 19 | Upper rotor (CCW) 20 | Mixing between yaw and thrust 21 | ------------- 22 | M: 2 23 | O: 10000 10000 0 -10000 10000 24 | S: 0 2 10000 10000 0 -10000 10000 25 | S: 0 3 0 20000 -10000 -10000 10000 26 | 27 | Lower rotor (CW) 28 | Mixing between yaw and thrust 29 | ------------- 30 | M: 2 31 | O: 10000 10000 0 -10000 10000 32 | S: 0 2 -10000 -10000 0 -10000 10000 33 | S: 0 3 0 20000 -10000 -10000 10000 34 | -------------------------------------------------------------------------------- /ROMFS/px4fmu_common/mixers/easystar.main.mix: -------------------------------------------------------------------------------- 1 | EASYSTAR / EASYSTAR II MIXER 2 | ============================ 3 | 4 | Aileron mixer 5 | ------------- 6 | One output - would be easy to add support for 2 servos 7 | 8 | M: 1 9 | O: 10000 10000 0 -10000 10000 10 | S: 0 0 10000 10000 0 -10000 10000 11 | 12 | Elevator mixer 13 | ------------ 14 | 15 | M: 1 16 | O: 10000 10000 0 -10000 10000 17 | S: 0 1 -10000 -10000 0 -10000 10000 18 | 19 | Rudder mixer 20 | ------------ 21 | 22 | M: 1 23 | O: 10000 10000 0 -10000 10000 24 | S: 0 2 -10000 -10000 0 -10000 10000 25 | 26 | Motor speed mixer 27 | ----------------- 28 | 29 | M: 1 30 | O: 10000 10000 0 -10000 10000 31 | S: 0 3 0 20000 -10000 -10000 10000 32 | -------------------------------------------------------------------------------- /ROMFS/px4fmu_common/mixers/firefly6.aux.mix: -------------------------------------------------------------------------------- 1 | # mixer for the FireFly6 tilt mechansim servo, elevons and landing gear 2 | ======================================================================= 3 | 4 | Tilt mechanism servo mixer 5 | --------------------------- 6 | M: 1 7 | O: 10000 10000 0 -10000 10000 8 | S: 1 4 0 20000 -10000 -10000 10000 9 | 10 | Elevon mixers 11 | ------------- 12 | M: 2 13 | O: 10000 10000 0 -10000 10000 14 | S: 1 0 -7500 -7500 0 -10000 10000 15 | S: 1 1 8000 8000 0 -10000 10000 16 | 17 | M: 2 18 | O: 10000 10000 0 -10000 10000 19 | S: 1 0 -7500 -7500 0 -10000 10000 20 | S: 1 1 -8000 -8000 0 -10000 10000 21 | 22 | Landing gear mixer 23 | ------------------ 24 | M: 1 25 | O: 10000 10000 0 -10000 10000 26 | S: 3 6 10000 10000 0 -10000 10000 27 | -------------------------------------------------------------------------------- /ROMFS/px4fmu_common/mixers/firefly6.main.mix: -------------------------------------------------------------------------------- 1 | # FireFly6 mixer for PX4FMU 2 | # 3 | #=========================== 4 | R: 6c 10000 10000 10000 0 5 | -------------------------------------------------------------------------------- /ROMFS/px4fmu_common/mixers/hexa_+.main.mix: -------------------------------------------------------------------------------- 1 | # Hexa + 2 | 3 | R: 6+ 10000 10000 10000 0 4 | -------------------------------------------------------------------------------- /ROMFS/px4fmu_common/mixers/hexa_cox.main.mix: -------------------------------------------------------------------------------- 1 | # Hexa coaxial 2 | 3 | R: 6c 10000 10000 10000 0 4 | -------------------------------------------------------------------------------- /ROMFS/px4fmu_common/mixers/hexa_x.main.mix: -------------------------------------------------------------------------------- 1 | # Hexa X 2 | 3 | R: 6x 10000 10000 10000 0 4 | -------------------------------------------------------------------------------- /ROMFS/px4fmu_common/mixers/octo_+.main.mix: -------------------------------------------------------------------------------- 1 | # Octo + 2 | 3 | R: 8+ 10000 10000 10000 0 4 | -------------------------------------------------------------------------------- /ROMFS/px4fmu_common/mixers/octo_cox.main.mix: -------------------------------------------------------------------------------- 1 | # Octo coaxial 2 | 3 | R: 8c 10000 10000 10000 0 4 | -------------------------------------------------------------------------------- /ROMFS/px4fmu_common/mixers/octo_cox_w.main.mix: -------------------------------------------------------------------------------- 1 | # Octo coaxial with wide arms 2 | 3 | R: 8cw 10000 10000 10000 0 4 | -------------------------------------------------------------------------------- /ROMFS/px4fmu_common/mixers/octo_x.main.mix: -------------------------------------------------------------------------------- 1 | # Octo X 2 | 3 | R: 8x 10000 10000 10000 0 4 | -------------------------------------------------------------------------------- /ROMFS/px4fmu_common/mixers/pass.aux.mix: -------------------------------------------------------------------------------- 1 | # Manual pass through mixer for servo outputs 1-4 2 | 3 | # AUX1 channel (select RC channel with RC_MAP_AUX1 param) 4 | M: 1 5 | O: 10000 10000 0 -10000 10000 6 | S: 3 5 10000 10000 0 -10000 10000 7 | 8 | # AUX2 channel (select RC channel with RC_MAP_AUX2 param) 9 | M: 1 10 | O: 10000 10000 0 -10000 10000 11 | S: 3 6 10000 10000 0 -10000 10000 12 | 13 | # AUX3 channel (select RC channel with RC_MAP_AUX3 param) 14 | M: 1 15 | O: 10000 10000 0 -10000 10000 16 | S: 3 7 10000 10000 0 -10000 10000 17 | 18 | # FLAPS channel (select RC channel with RC_MAP_FLAPS param) 19 | M: 1 20 | O: 10000 10000 0 -10000 10000 21 | S: 3 4 10000 10000 0 -10000 10000 22 | -------------------------------------------------------------------------------- /ROMFS/px4fmu_common/mixers/plane_sitl.main.mix: -------------------------------------------------------------------------------- 1 | Mixer for SITL plane, using the VTOL airframe for now 2 | ========================================================= 3 | 4 | Z: 5 | 6 | Z: 7 | 8 | Z: 9 | 10 | Z: 11 | 12 | # mixer for the elevons 13 | M: 2 14 | O: 10000 10000 0 -10000 10000 15 | S: 0 0 5000 5000 0 -10000 10000 16 | S: 0 1 -5000 -5000 0 -10000 10000 17 | 18 | M: 2 19 | O: 10000 10000 0 -10000 10000 20 | S: 0 0 5000 5000 0 -10000 10000 21 | S: 0 1 5000 5000 0 -10000 10000 22 | 23 | # mixer for the pusher/puller throttle 24 | M: 1 25 | O: 10000 10000 0 -10000 10000 26 | S: 0 3 0 20000 -10000 -10000 10000 27 | -------------------------------------------------------------------------------- /ROMFS/px4fmu_common/mixers/quad_+.main.mix: -------------------------------------------------------------------------------- 1 | Multirotor mixer for PX4FMU 2 | =========================== 3 | 4 | This file defines a single mixer for a quadrotor in the + configuration. All controls 5 | are mixed 100%. 6 | 7 | R: 4+ 10000 10000 10000 0 8 | 9 | 10 | Gimbal / payload mixer for last four channels 11 | ----------------------------------------------------- 12 | 13 | M: 1 14 | O: 10000 10000 0 -10000 10000 15 | S: 0 4 10000 10000 0 -10000 10000 16 | 17 | M: 1 18 | O: 10000 10000 0 -10000 10000 19 | S: 0 5 10000 10000 0 -10000 10000 20 | 21 | M: 1 22 | O: 10000 10000 0 -10000 10000 23 | S: 0 6 10000 10000 0 -10000 10000 24 | 25 | M: 1 26 | O: 10000 10000 0 -10000 10000 27 | S: 0 7 10000 10000 0 -10000 10000 28 | -------------------------------------------------------------------------------- /ROMFS/px4fmu_common/mixers/quad_+_vtol.main.mix: -------------------------------------------------------------------------------- 1 | Mixer for Tailsitter with + motor configuration and elevons 2 | =========================================================== 3 | 4 | This file defines a single mixer for tailsitter with motors in X configuration. All controls 5 | are mixed 100%. 6 | 7 | R: 4+ 10000 10000 10000 0 8 | 9 | # mixer for the elevons 10 | M: 2 11 | O: 10000 10000 0 -10000 10000 12 | S: 1 0 10000 10000 0 -10000 10000 13 | S: 1 1 10000 10000 0 -10000 10000 14 | 15 | M: 2 16 | O: 10000 10000 0 -10000 10000 17 | S: 1 0 10000 10000 0 -10000 10000 18 | S: 1 1 -10000 -10000 0 -10000 10000 19 | 20 | # mixer for canard surface 21 | M: 1 22 | O: 10000 10000 0 -10000 10000 23 | S: 1 1 -10000 -10000 0 -10000 10000 24 | 25 | # mixer for rudder 26 | M: 1 27 | O: 10000 10000 0 -10000 10000 28 | S: 1 2 -10000 -10000 0 -10000 10000 29 | -------------------------------------------------------------------------------- /ROMFS/px4fmu_common/mixers/quad_h.main.mix: -------------------------------------------------------------------------------- 1 | Multirotor mixer for PX4FMU 2 | =========================== 3 | 4 | This file defines a single mixer for a quadrotor in the H configuration. All controls 5 | are mixed 100%. 6 | 7 | R: 4h 10000 10000 10000 0 8 | 9 | Gimbal / payload mixer for last three channels 10 | ----------------------------------------------------- 11 | 12 | M: 1 13 | O: 10000 10000 0 -10000 10000 14 | S: 0 4 10000 10000 0 -10000 10000 15 | 16 | M: 1 17 | O: 10000 10000 0 -10000 10000 18 | S: 0 5 10000 10000 0 -10000 10000 19 | 20 | M: 1 21 | O: 10000 10000 0 -10000 10000 22 | S: 0 6 10000 10000 0 -10000 10000 23 | -------------------------------------------------------------------------------- /ROMFS/px4fmu_common/mixers/quad_v.main.mix: -------------------------------------------------------------------------------- 1 | Multirotor mixer for PX4FMU 2 | =========================== 3 | 4 | This file defines a single mixer for a quadrotor in the V configuration. All controls 5 | are mixed 100%. 6 | 7 | R: 4v 10000 10000 10000 0 8 | 9 | Gimbal / payload mixer for last three channels 10 | ----------------------------------------------------- 11 | 12 | M: 1 13 | O: 10000 10000 0 -10000 10000 14 | S: 0 4 10000 10000 0 -10000 10000 15 | 16 | M: 1 17 | O: 10000 10000 0 -10000 10000 18 | S: 0 5 10000 10000 0 -10000 10000 19 | 20 | M: 1 21 | O: 10000 10000 0 -10000 10000 22 | S: 0 6 10000 10000 0 -10000 10000 23 | -------------------------------------------------------------------------------- /ROMFS/px4fmu_common/mixers/quad_w.main.mix: -------------------------------------------------------------------------------- 1 | Multirotor mixer for PX4FMU 2 | =========================== 3 | 4 | This file defines a single mixer for a quadrotor with a wide configuration. All controls are mixed 100%. 5 | 6 | R: 4w 10000 10000 10000 0 7 | 8 | Gimbal / payload mixer for last three channels 9 | ----------------------------------------------------- 10 | 11 | M: 1 12 | O: 10000 10000 0 -10000 10000 13 | S: 0 4 10000 10000 0 -10000 10000 14 | 15 | M: 1 16 | O: 10000 10000 0 -10000 10000 17 | S: 0 5 10000 10000 0 -10000 10000 18 | 19 | M: 1 20 | O: 10000 10000 0 -10000 10000 21 | S: 0 6 10000 10000 0 -10000 10000 22 | -------------------------------------------------------------------------------- /ROMFS/px4fmu_common/mixers/quad_x.main.mix: -------------------------------------------------------------------------------- 1 | R: 4x 10000 10000 10000 0 2 | M: 1 3 | O: 10000 10000 0 -10000 10000 4 | S: 0 4 10000 10000 0 -10000 10000 5 | M: 1 6 | O: 10000 10000 0 -10000 10000 7 | S: 0 5 10000 10000 0 -10000 10000 8 | M: 1 9 | O: 10000 10000 0 -10000 10000 10 | S: 0 6 10000 10000 0 -10000 10000 11 | -------------------------------------------------------------------------------- /ROMFS/px4fmu_common/mixers/quad_x_vtol.main.mix: -------------------------------------------------------------------------------- 1 | Mixer for Tailsitter with x motor configuration and elevons 2 | =========================================================== 3 | 4 | This file defines a single mixer for tailsitter with motors in X configuration. All controls 5 | are mixed 100%. 6 | 7 | R: 4x 10000 10000 10000 0 8 | 9 | #mixer for the elevons 10 | M: 2 11 | O: 10000 10000 0 -10000 10000 12 | S: 1 0 5000 5000 0 -10000 10000 13 | S: 1 1 5000 5000 0 -10000 10000 14 | 15 | M: 2 16 | O: 10000 10000 0 -10000 10000 17 | S: 1 0 5000 5000 0 -10000 10000 18 | S: 1 1 -5000 -5000 0 -10000 10000 19 | -------------------------------------------------------------------------------- /ROMFS/px4fmu_common/mixers/sk450_deadcat.aux.mix: -------------------------------------------------------------------------------- 1 | Gimbal / payload mixer for PX4FMU 2 | =========================== 3 | 4 | Configuration with 2 gimbals: 5 | - 2 axes inline GoPro gimbal (pitch, roll) 6 | - 2 axes FPV gimbal (pitch, yaw), physically attached GoPro gimbal's roll stabilization 7 | ----------------------------------------------------- 8 | 9 | # gimbal roll 10 | M: 1 11 | O: 10000 10000 0 -10000 10000 12 | S: 2 0 -11500 -10000 900 -10000 10000 13 | 14 | # gimbal pitch 15 | M: 1 16 | O: 10000 10000 0 -10000 10000 17 | S: 2 1 12000 12000 2000 -10000 10000 18 | 19 | # FPV gimbal yaw (not implemented, yet) 20 | M: 1 21 | O: 10000 10000 0 -10000 10000 22 | S: 2 2 10000 10000 0 -10000 10000 23 | 24 | # FPV gimbal pitch 25 | M: 1 26 | O: 10000 10000 0 -10000 10000 27 | S: 2 1 -12000 -12000 -3000 -10000 10000 28 | 29 | # reserved, not used 30 | M: 1 31 | O: 10000 10000 0 -10000 10000 32 | S: 2 4 10000 10000 0 -10000 10000 33 | 34 | # parachute 35 | M: 1 36 | O: 10000 10000 0 -10000 10000 37 | S: 2 7 10000 10000 0 -10000 10000 38 | 39 | -------------------------------------------------------------------------------- /ROMFS/px4fmu_common/mixers/sk450_deadcat.main.mix: -------------------------------------------------------------------------------- 1 | Multirotor mixer for PX4IO 2 | =========================== 3 | 4 | This file defines a single mixer for a quadrotor in SK450 DeadCat configuration. All controls are mixed 100%. 5 | 6 | R: 4dc 10000 10000 10000 0 7 | 8 | Gimbal / payload mixer for last three channels 9 | ----------------------------------------------------- 10 | 11 | M: 1 12 | O: 10000 10000 0 -10000 10000 13 | S: 0 4 10000 10000 0 -10000 10000 14 | 15 | M: 1 16 | O: 10000 10000 0 -10000 10000 17 | S: 0 5 10000 10000 0 -10000 10000 18 | 19 | M: 1 20 | O: 10000 10000 0 -10000 10000 21 | S: 0 6 10000 10000 0 -10000 10000 22 | -------------------------------------------------------------------------------- /ROMFS/px4fmu_common/mixers/solo.main.mix: -------------------------------------------------------------------------------- 1 | Multirotor mixer for PX4FMU 2 | =========================== 3 | 4 | This file defines a single mixer for a quadrotor in the X configuration. All controls 5 | are mixed 100%. 6 | 7 | R: 4x 10000 10000 10000 0 8 | -------------------------------------------------------------------------------- /ROMFS/px4fmu_common/mixers/standard_vtol_sitl.main.mix: -------------------------------------------------------------------------------- 1 | Mixer for standard vtol plane (SITL) with motor x configuration 2 | ========================================================= 3 | 4 | This file defines a single mixer for a standard vtol plane (SITL gazebo) with motors in X configuration. 5 | The plane has two ailerons and one elevator. The ailerons and elevator are treated as elevons 6 | in order to make the standard vtol simulation compatible with the tailsitter simulation. 7 | 8 | R: 4x 10000 10000 10000 0 9 | 10 | # mixer for the elevons 11 | M: 2 12 | O: 10000 10000 0 -10000 10000 13 | S: 1 0 5000 5000 0 -10000 10000 14 | S: 1 1 -5000 -5000 0 -10000 10000 15 | 16 | M: 2 17 | O: 10000 10000 0 -10000 10000 18 | S: 1 0 5000 5000 0 -10000 10000 19 | S: 1 1 5000 5000 0 -10000 10000 20 | 21 | # mixer for the pusher/puller throttle 22 | M: 1 23 | O: 10000 10000 0 -10000 10000 24 | S: 1 3 0 20000 -10000 -10000 10000 25 | -------------------------------------------------------------------------------- /ROMFS/px4fmu_common/mixers/tri_y_yaw+.main.mix: -------------------------------------------------------------------------------- 1 | 2 | 3 | # Tricopter Y-Configuration Mixer 4 | # Yaw Servo +Output ==> +Yaw Vehicle Rotation 5 | 6 | # Motors 7 | R: 3y 10000 10000 10000 0 8 | 9 | # Yaw Servo 10 | M: 1 11 | O: 10000 10000 0 -10000 10000 12 | S: 0 2 10000 10000 0 -10000 10000 13 | -------------------------------------------------------------------------------- /ROMFS/px4fmu_common/mixers/tri_y_yaw-.main.mix: -------------------------------------------------------------------------------- 1 | 2 | 3 | # Tricopter Y-Configuration Mixer 4 | # Yaw Servo +Output ==> -Yaw Vehicle Rotation 5 | 6 | # Motors 7 | R: 3y 10000 10000 10000 0 8 | 9 | # Yaw Servo 10 | M: 1 11 | O: 10000 10000 0 -10000 10000 12 | S: 0 2 -10000 -10000 0 -10000 10000 13 | 14 | -------------------------------------------------------------------------------- /ROMFS/px4fmu_common/mixers/vtol_AAERT.aux.mix: -------------------------------------------------------------------------------- 1 | Mixer for an AAERT VTOL 2 | ======================= 3 | 4 | Aileron 1 mixer 5 | --------------- 6 | M: 1 7 | O: 10000 10000 0 -10000 10000 8 | S: 1 0 -7500 -7500 0 -10000 10000 9 | 10 | Aileron 2 mixer 11 | --------------- 12 | M: 1 13 | O: 10000 10000 0 -10000 10000 14 | S: 1 0 -7500 -7500 0 -10000 10000 15 | 16 | Elevator mixer 17 | -------------- 18 | M: 1 19 | O: 10000 10000 0 -10000 10000 20 | S: 1 1 10000 10000 0 -10000 10000 21 | 22 | Rudder mixer 23 | ------------ 24 | M: 1 25 | O: 10000 10000 0 -10000 10000 26 | S: 1 2 -10000 -10000 0 -10000 10000 27 | 28 | Throttle mixer 29 | -------------- 30 | M: 1 31 | O: 10000 10000 0 -10000 10000 32 | S: 1 3 0 20000 -10000 -10000 10000 33 | -------------------------------------------------------------------------------- /ROMFS/px4fmu_common/mixers/vtol_delta.aux.mix: -------------------------------------------------------------------------------- 1 | Delta-wing VTOL mixer 2 | ===================== 3 | 4 | This file defines mixers suitable for controlling a delta wing VTOL aircraft using 5 | PX4FMU. The configuration assumes the elevon servos are connected to PX4FMU 6 | AUX servo outputs 0 and 1 and the motor speed control to output 2. 7 | 8 | Inputs to the mixer come from channel group 0 (vehicle attitude), channels 0 9 | (roll), 1 (pitch) and 3 (thrust). 10 | 11 | See the README for more information on the scaler format. 12 | 13 | Elevon mixers 14 | ------------- 15 | Three scalers total (output, roll, pitch). 16 | 17 | On the assumption that the two elevon servos are physically reversed, the pitch 18 | input is inverted between the two servos. 19 | 20 | M: 2 21 | O: 10000 10000 0 -10000 10000 22 | S: 1 0 -6000 -6000 0 -10000 10000 23 | S: 1 1 6500 6500 0 -10000 10000 24 | 25 | M: 2 26 | O: 10000 10000 0 -10000 10000 27 | S: 1 0 -6000 -6000 0 -10000 10000 28 | S: 1 1 -6500 -6500 0 -10000 10000 29 | 30 | Motor speed mixer 31 | ----------------- 32 | Two scalers total (output, thrust). 33 | 34 | This mixer generates a full-range output (-1 to 1) from an input in the (0 - 1) 35 | range. Inputs below zero are treated as zero. 36 | 37 | M: 1 38 | O: 10000 10000 0 -10000 10000 39 | S: 1 3 0 20000 -10000 -10000 10000 40 | -------------------------------------------------------------------------------- /ROMFS/px4fmu_common/mixers/vtol_quad_x.main.mix: -------------------------------------------------------------------------------- 1 | # VTOL quad X mixer for PX4FMU 2 | #============================= 3 | 4 | R: 4x 10000 10000 10000 0 5 | -------------------------------------------------------------------------------- /ROMFS/px4fmu_test/init.d/rc.standalone: -------------------------------------------------------------------------------- 1 | #!nsh 2 | # 3 | # Flight startup script for PX4FMU standalone configuration. 4 | # 5 | 6 | echo "[i] doing standalone PX4FMU startup..." 7 | 8 | # 9 | # Start the ORB 10 | # 11 | uorb start 12 | 13 | echo "[i] startup done" 14 | -------------------------------------------------------------------------------- /ROMFS/px4fmu_test/mixers/IO_pass.mix: -------------------------------------------------------------------------------- 1 | M: 1 2 | O: 10000 10000 0 -10000 10000 3 | S: 0 0 10000 10000 0 -10000 10000 4 | M: 1 5 | O: 10000 10000 0 -10000 10000 6 | S: 0 1 10000 10000 0 -10000 10000 7 | M: 1 8 | O: 10000 10000 0 -10000 10000 9 | S: 0 2 10000 10000 0 -10000 10000 10 | M: 1 11 | O: 10000 10000 0 -10000 10000 12 | S: 0 3 10000 10000 0 -10000 10000 13 | M: 1 14 | O: 10000 10000 0 -10000 10000 15 | S: 0 4 10000 10000 0 -10000 10000 16 | M: 1 17 | O: 10000 10000 0 -10000 10000 18 | S: 0 5 10000 10000 0 -10000 10000 19 | M: 1 20 | O: 10000 10000 0 -10000 10000 21 | S: 0 6 10000 10000 0 -10000 10000 22 | M: 1 23 | O: 10000 10000 0 -10000 10000 24 | S: 0 7 10000 10000 0 -10000 10000 25 | -------------------------------------------------------------------------------- /ROMFS/px4fmu_test/unit_test_data/mavlink_tests/empty_dir/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3drobotics/PX4Firmware/b1cc118ef6408235abda896cc29f5c75ae256de4/ROMFS/px4fmu_test/unit_test_data/mavlink_tests/empty_dir/.gitignore -------------------------------------------------------------------------------- /ROMFS/px4fmu_test/unit_test_data/mavlink_tests/test_238.data: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3drobotics/PX4Firmware/b1cc118ef6408235abda896cc29f5c75ae256de4/ROMFS/px4fmu_test/unit_test_data/mavlink_tests/test_238.data -------------------------------------------------------------------------------- /ROMFS/px4fmu_test/unit_test_data/mavlink_tests/test_239.data: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3drobotics/PX4Firmware/b1cc118ef6408235abda896cc29f5c75ae256de4/ROMFS/px4fmu_test/unit_test_data/mavlink_tests/test_239.data -------------------------------------------------------------------------------- /ROMFS/px4fmu_test/unit_test_data/mavlink_tests/test_240.data: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3drobotics/PX4Firmware/b1cc118ef6408235abda896cc29f5c75ae256de4/ROMFS/px4fmu_test/unit_test_data/mavlink_tests/test_240.data -------------------------------------------------------------------------------- /Tools/.gitignore: -------------------------------------------------------------------------------- 1 | parameters.wiki 2 | parameters.xml 3 | -------------------------------------------------------------------------------- /Tools/CI/VTOLmission.txt: -------------------------------------------------------------------------------- 1 | QGC WPL 110 2 | 0 1 0 16 0 0 0 0 47.3979949951 8.54559612274 25.0 1 3 | 1 0 2 3000 4.0 0.0 0.0 0.0 47.3980331421 8.54578971863 25.0 1 4 | 2 0 3 16 0.0 0.0 -0.0 0.0 47.399269104 8.54557228088 25.0 1 5 | 3 0 3 16 0.0 0.0 -0.0 0.0 47.3992652893 8.54230213165 25.0 1 6 | 4 0 3 16 0.0 0.0 -0.0 0.0 47.3974761963 8.54239082336 25.0 1 7 | 5 0 3 16 0.0 0.0 -0.0 0.0 47.3976669312 8.54509449005 25.0 1 8 | 6 0 2 3000 3.0 0.0 0.0 0.0 47.3977851868 8.54526233673 25.0 1 9 | 7 0 3 21 25.0 0.0 -0.0 0.0 47.3979797363 8.54460906982 25.0 1 10 | -------------------------------------------------------------------------------- /Tools/adb_upload.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | if [[ "$#" < 2 ]]; then 4 | echo "usage: adb_upload.sh SRC1 [SRC2 ...] DEST" 5 | exit 6 | fi 7 | 8 | echo "Wait for device..." 9 | adb wait-for-device 10 | echo "Uploading..." 11 | 12 | # Get last argument 13 | for last; do true; done 14 | 15 | # Go through source files and push them one by one. 16 | i=0 17 | for arg 18 | do 19 | if [[ $((i+1)) == "$#" ]]; then 20 | break 21 | fi 22 | # echo "Pushing $arg to $last" 23 | adb push $arg $last 24 | ((i+=1)) 25 | done 26 | -------------------------------------------------------------------------------- /Tools/airframes.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 1 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /Tools/astylerc: -------------------------------------------------------------------------------- 1 | indent=force-tab=8 2 | style=linux 3 | indent-preprocessor 4 | indent-cases 5 | break-blocks=all 6 | pad-oper 7 | pad-header 8 | unpad-paren 9 | keep-one-line-blocks 10 | keep-one-line-statements 11 | align-pointer=name 12 | align-reference=name 13 | -n #--suffix=none 14 | ignore-exclude-errors-x 15 | lineend=linux 16 | exclude=EASTL 17 | add-brackets 18 | max-code-length=120 19 | -------------------------------------------------------------------------------- /Tools/check_cmake.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | cmake_ver=`cmake --version` 3 | 4 | if [[ $cmake_ver == "" ]] 5 | then 6 | exit 1; 7 | fi 8 | 9 | if [[ $cmake_ver == *" 2.8"* ]] || [[ $cmake_ver == *" 2.9"* ]] || [[ $cmake_ver == *" 3.0"* ]] || [[ $cmake_ver == *" 3.1"* ]] 10 | then 11 | exit 1; 12 | fi 13 | 14 | exit 0; 15 | -------------------------------------------------------------------------------- /Tools/dist/vehicle_configs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Standard 8" Prop Quadrotor (x) 5 | Standard quadrotor configuration in x configuration for 8-" propellers 6 | /etc/mixers/quad_x.main.mix 7 | 8 | 9 | Standard 8" Prop Quadrotor (+) 10 | Standard quadrotor configuration in + configuration for 8-" propellers 11 | /etc/mixers/quad_+.main.mix 12 | 13 | 14 | Standard 8" Prop Quadrotor (x) 15 | Standard quadrotor configuration in x configuration for 8-" propellers 16 | /etc/mixers/quad_x.main.mix 17 | 18 | 19 | Zeta Science Wing Wing Z-84 20 | Configuration for a small flying wing. 21 | /etc/mixers/wingwing.main.mix 22 | 23 | 24 | -------------------------------------------------------------------------------- /Tools/fix_code_style.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | ASTYLE_VER=`astyle --version` 4 | ASTYLE_VER_REQUIRED="Artistic Style Version 2.05.1" 5 | 6 | if [ "$ASTYLE_VER" != "$ASTYLE_VER_REQUIRED" ]; then 7 | echo "Error: you're using ${ASTYLE_VER}, but PX4 requires ${ASTYLE_VER_REQUIRED}" 8 | echo "You can get the correct version here: https://github.com/PX4/astyle/releases/tag/2.05.1" 9 | exit 1 10 | fi 11 | 12 | DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd ) 13 | astyle \ 14 | --options=$DIR/astylerc \ 15 | --preserve-date \ 16 | $* 17 | -------------------------------------------------------------------------------- /Tools/make_color.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # make_color.sh 3 | # 4 | # Author: Simon Wilks (simon@uaventure.com) 5 | # 6 | # A compiler color coder. 7 | # 8 | # To invoke this script everytime you run make simply create the alias: 9 | # 10 | # alias make='/Tools/make_color.sh' 11 | # 12 | # Color codes: 13 | # 14 | # white "\033[1,37m" 15 | # yellow "\033[1,33m" 16 | # green "\033[1,32m" 17 | # blue "\033[1,34m" 18 | # cyan "\033[1,36m" 19 | # red "\033[1,31m" 20 | # magenta "\033[1,35m" 21 | # black "\033[1,30m" 22 | # darkwhite "\033[0,37m" 23 | # darkyellow "\033[0,33m" 24 | # darkgreen "\033[0,32m" 25 | # darkblue "\033[0,34m" 26 | # darkcyan "\033[0,36m" 27 | # darkred "\033[0,31m" 28 | # darkmagenta "\033[0,35m" 29 | # off "\033[0,0m" 30 | # 31 | OFF="\o033[0m" 32 | WARN="\o033[1;33m" 33 | ERROR="\o033[1;31m" 34 | INFO="\o033[0;37m" 35 | 36 | make ${@} 2>&1 | sed "s/make\[[0-9]\].*/$INFO & $OFF/;s/.*: warning: .*/$WARN & $OFF/;s/.*: error: .*/$ERROR & $OFF/" 37 | -------------------------------------------------------------------------------- /Tools/posix.gdbinit: -------------------------------------------------------------------------------- 1 | handle SIGCONT nostop noprint nopass 2 | run 3 | -------------------------------------------------------------------------------- /Tools/posix_lldbinit: -------------------------------------------------------------------------------- 1 | run 2 | pro hand -p true -s false -n false SIGCONT 3 | continue 4 | -------------------------------------------------------------------------------- /Tools/pre-commit: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | if git rev-parse --verify HEAD >/dev/null 2>&1 3 | then 4 | against=HEAD 5 | else 6 | # Initial commit: diff against an empty tree object 7 | against=4b825dc642cb6eb9a060e54bf8d69288fbee4904 8 | fi 9 | 10 | # Redirect output to stderr. 11 | exec 1>&2 12 | 13 | CHANGED_FILES=`git diff --cached --name-only --diff-filter=ACM $against | grep '\.c\|\.cpp\|\.h\|\.hpp'` 14 | FAILED=0 15 | if [ ! -z "$CHANGED_FILES" -a "$CHANGED_FILES" != " " ]; then 16 | for FILE in $CHANGED_FILES; do 17 | ./Tools/fix_code_style.sh --quiet < $FILE > $FILE.pretty 18 | diff -u $FILE $FILE.pretty || FAILED=1 19 | rm -f $FILE.pretty 20 | if [ $FAILED -ne 0 ]; then 21 | echo "There are code formatting errors. Please fix them by running ./Tools/fix_code_style.sh $FILE" 22 | exit $FAILED 23 | fi 24 | done 25 | fi 26 | exit 0 27 | -------------------------------------------------------------------------------- /Tools/px4airframes/README.md: -------------------------------------------------------------------------------- 1 | This folder contains a python library used by px_process_params.py 2 | -------------------------------------------------------------------------------- /Tools/px4airframes/__init__.py: -------------------------------------------------------------------------------- 1 | __all__ = ["srcscanner", "srcparser", "xmlout", "rcout"] -------------------------------------------------------------------------------- /Tools/px4params/README.md: -------------------------------------------------------------------------------- 1 | This folder contains a python library used by px_process_params.py 2 | -------------------------------------------------------------------------------- /Tools/px4params/__init__.py: -------------------------------------------------------------------------------- 1 | __all__ = ["srcscanner", "srcparser", "xmlout", "dokuwikiout", "dokuwikirpc"] -------------------------------------------------------------------------------- /Tools/px4params/dokuwikirpc.py: -------------------------------------------------------------------------------- 1 | try: 2 | import xmlrpclib 3 | except ImportError: 4 | import xmlrpc.client as xmlrpclib 5 | 6 | # See https://www.dokuwiki.org/devel:xmlrpc for a list of available functions! 7 | # Usage example: 8 | # xmlrpc = dokuwikirpc.get_xmlrpc(url, username, password) 9 | # print(xmlrpc.dokuwiki.getVersion()) 10 | 11 | def get_xmlrpc(url, username, password): 12 | #proto, url = url.split("://") 13 | #url = proto + "://" + username + ":" + password + "@" + url + "/lib/exe/xmlrpc.php" 14 | url += "/lib/exe/xmlrpc.php?u=" + username + "&p=" + password 15 | 16 | return xmlrpclib.ServerProxy(url) 17 | -------------------------------------------------------------------------------- /Tools/px_generate_xml.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | python px_process_params.py --xml 3 | -------------------------------------------------------------------------------- /Tools/px_update_wiki.sh: -------------------------------------------------------------------------------- 1 | # Remember to set the XMLRPCUSER and XMLRPCPASS environment variables 2 | python px_process_params.py --wiki-update 3 | -------------------------------------------------------------------------------- /Tools/sdlog2/README.txt: -------------------------------------------------------------------------------- 1 | ====== PX4 LOG CONVERSION ====== 2 | 3 | On each log session (commonly started and stopped by arming and disarming the vehicle) a new file logxxx.bin is created. In many cases there will be only one logfile named log001.bin (only one flight). 4 | 5 | There are two conversion scripts in this ZIP file: 6 | 7 | logconv.m: This is a MATLAB script which will automatically convert and display the flight data with a GUI. If running this script, the second script can be ignored. 8 | 9 | sdlog2_dump.py: This is a Python script (compatible with v2 and v3) which converts the self-describing binary log format to a CSV file. To export a CSV file from within a shell (Windows CMD or BASH on Linux / Mac OS), run: 10 | 11 | python sdlog2_dump.py log001.bin -f "export.csv" -t "TIME" -d "," -n "" 12 | 13 | Python can be downloaded from http://python.org, but is available as default on Mac OS and Linux. -------------------------------------------------------------------------------- /Tools/sdlog2/logconv.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3drobotics/PX4Firmware/b1cc118ef6408235abda896cc29f5c75ae256de4/Tools/sdlog2/logconv.m -------------------------------------------------------------------------------- /Tools/upload.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | EXEDIR=`pwd` 4 | BASEDIR=$(dirname $0) 5 | 6 | SYSTYPE=`uname -s` 7 | 8 | # 9 | # Serial port defaults. 10 | # 11 | # XXX The uploader should be smarter than this. 12 | # 13 | if [ $SYSTYPE = "Darwin" ]; 14 | then 15 | SERIAL_PORTS="/dev/tty.usbmodemPX*,/dev/tty.usbmodem*" 16 | fi 17 | 18 | if [ $SYSTYPE = "Linux" ]; 19 | then 20 | SERIAL_PORTS="/dev/serial/by-id/usb-3D_Robotics*" 21 | fi 22 | 23 | if [ $SYSTYPE = "" ]; 24 | then 25 | SERIAL_PORTS="COM32,COM31,COM30,COM29,COM28,COM27,COM26,COM25,COM24,COM23,COM22,COM21,COM20,COM19,COM18,COM17,COM16,COM15,COM14,COM13,COM12,COM11,COM10,COM9,COM8,COM7,COM6,COM5,COM4,COM3,COM2,COM1,COM0" 26 | fi 27 | 28 | python $BASEDIR/px_uploader.py --port $SERIAL_PORTS $1 -------------------------------------------------------------------------------- /cmake/configs/nuttx_px4fmu-v2_lpe.cmake: -------------------------------------------------------------------------------- 1 | include(cmake/configs/nuttx_px4fmu-v2_default.cmake) 2 | 3 | list(REMOVE_ITEM config_module_list 4 | modules/ekf_att_pos_estimator 5 | ) 6 | 7 | list(APPEND config_module_list 8 | modules/local_position_estimator 9 | ) 10 | -------------------------------------------------------------------------------- /cmake/configs/posix_eagle_hil.cmake: -------------------------------------------------------------------------------- 1 | include(posix/px4_impl_posix) 2 | 3 | # Use build stubs unless explicitly set not to 4 | if("${DSPAL_STUBS_ENABLE}" STREQUAL "") 5 | set(DSPAL_STUBS_ENABLE "1") 6 | endif() 7 | 8 | set(CMAKE_TOOLCHAIN_FILE ${CMAKE_SOURCE_DIR}/cmake/toolchains/Toolchain-arm-linux-gnueabihf.cmake) 9 | 10 | set(config_module_list 11 | drivers/device 12 | drivers/boards/sitl 13 | drivers/led 14 | 15 | systemcmds/param 16 | systemcmds/ver 17 | 18 | modules/mavlink 19 | 20 | modules/param 21 | modules/systemlib 22 | modules/uORB 23 | modules/sensors 24 | modules/dataman 25 | modules/sdlog2 26 | modules/simulator 27 | modules/commander 28 | 29 | lib/mathlib 30 | lib/mathlib/math/filter 31 | lib/geo 32 | lib/geo_lookup 33 | lib/conversion 34 | 35 | platforms/common 36 | platforms/posix/px4_layer 37 | platforms/posix/work_queue 38 | modules/muorb/krait 39 | ) 40 | 41 | -------------------------------------------------------------------------------- /cmake/configs/posix_eagle_muorb.cmake: -------------------------------------------------------------------------------- 1 | include(posix/px4_impl_posix) 2 | 3 | set(CMAKE_TOOLCHAIN_FILE cmake/toolchains/Toolchain-arm-linux-gnueabihf.cmake) 4 | 5 | set(config_module_list 6 | drivers/device 7 | 8 | modules/uORB 9 | 10 | platforms/posix/px4_layer 11 | platforms/posix/work_queue 12 | 13 | modules/muorb/krait 14 | ) 15 | 16 | -------------------------------------------------------------------------------- /cmake/configs/posix_eagle_release.cmake: -------------------------------------------------------------------------------- 1 | include(posix/px4_impl_posix) 2 | 3 | set(CMAKE_TOOLCHAIN_FILE ${CMAKE_SOURCE_DIR}/cmake/toolchains/Toolchain-arm-linux-gnueabihf.cmake) 4 | 5 | set(CONFIG_SHMEM "1") 6 | 7 | include(${CMAKE_SOURCE_DIR}/cmake/cmake_hexagon/qurt_app.cmake) 8 | 9 | set(config_module_list 10 | drivers/device 11 | drivers/boards/sitl 12 | drivers/led 13 | 14 | systemcmds/param 15 | systemcmds/ver 16 | 17 | modules/mavlink 18 | 19 | modules/param 20 | modules/systemlib 21 | modules/uORB 22 | modules/dataman 23 | modules/sdlog2 24 | modules/simulator 25 | modules/commander 26 | 27 | lib/mathlib 28 | lib/mathlib/math/filter 29 | lib/geo 30 | lib/geo_lookup 31 | lib/conversion 32 | 33 | platforms/common 34 | platforms/posix/px4_layer 35 | platforms/posix/work_queue 36 | 37 | modules/muorb/krait 38 | ) 39 | 40 | -------------------------------------------------------------------------------- /cmake/configs/posix_rpi2_default.cmake: -------------------------------------------------------------------------------- 1 | include(posix/px4_impl_posix) 2 | 3 | set(CMAKE_TOOLCHAIN_FILE ${CMAKE_SOURCE_DIR}/cmake/toolchains/Toolchain-native.cmake) 4 | 5 | set(config_module_list 6 | drivers/device 7 | platforms/common 8 | platforms/posix/px4_layer 9 | platforms/posix/work_queue 10 | systemcmds/param 11 | systemcmds/mixer 12 | systemcmds/ver 13 | systemcmds/esc_calib 14 | systemcmds/reboot 15 | systemcmds/topic_listener 16 | systemcmds/perf 17 | modules/uORB 18 | modules/param 19 | modules/systemlib 20 | modules/systemlib/mixer 21 | modules/sensors 22 | modules/mavlink 23 | modules/attitude_estimator_q 24 | modules/position_estimator_inav 25 | modules/navigator 26 | modules/vtol_att_control 27 | modules/mc_pos_control 28 | modules/mc_att_control 29 | modules/land_detector 30 | modules/fw_att_control 31 | modules/fw_pos_control_l1 32 | modules/dataman 33 | modules/sdlog2 34 | modules/commander 35 | modules/controllib 36 | lib/mathlib 37 | lib/mathlib/math/filter 38 | lib/conversion 39 | lib/ecl 40 | lib/external_lgpl 41 | lib/geo 42 | lib/geo_lookup 43 | lib/launchdetection 44 | lib/terrain_estimation 45 | lib/runway_takeoff 46 | lib/tailsitter_recovery 47 | ) 48 | -------------------------------------------------------------------------------- /cmake/configs/posix_sitl_lpe.cmake: -------------------------------------------------------------------------------- 1 | include(cmake/configs/posix_sitl_default.cmake) 2 | 3 | list(APPEND config_module_list 4 | modules/local_position_estimator 5 | ) 6 | 7 | set(config_sitl_rcS 8 | posix-configs/SITL/init/rcS_lpe 9 | ) 10 | -------------------------------------------------------------------------------- /cmake/configs/qurt_eagle_hello.cmake: -------------------------------------------------------------------------------- 1 | include(qurt/px4_impl_qurt) 2 | 3 | set(CMAKE_TOOLCHAIN_FILE ${CMAKE_SOURCE_DIR}/cmake/cmake_hexagon/toolchain/Toolchain-qurt.cmake) 4 | include(${CMAKE_SOURCE_DIR}/cmake/cmake_hexagon/qurt_app.cmake) 5 | 6 | 7 | set(config_module_list 8 | drivers/device 9 | 10 | # 11 | # System commands 12 | # 13 | systemcmds/param 14 | 15 | # 16 | # Library modules 17 | # 18 | modules/param 19 | modules/systemlib 20 | modules/uORB 21 | 22 | # 23 | # QuRT port 24 | # 25 | platforms/common 26 | platforms/qurt/px4_layer 27 | platforms/posix/work_queue 28 | platforms/qurt/tests/hello 29 | ) 30 | 31 | -------------------------------------------------------------------------------- /cmake/configs/qurt_eagle_muorb.cmake: -------------------------------------------------------------------------------- 1 | include(qurt/px4_impl_qurt) 2 | 3 | set(CMAKE_TOOLCHAIN_FILE ${CMAKE_SOURCE_DIR}/cmake/cmake_hexagon/toolchain/Toolchain-qurt.cmake) 4 | include(${CMAKE_SOURCE_DIR}/cmake/cmake_hexagon/qurt_app.cmake) 5 | 6 | 7 | set(config_module_list 8 | drivers/device 9 | 10 | # 11 | # System commands 12 | # 13 | systemcmds/param 14 | 15 | # 16 | # Library modules 17 | # 18 | modules/param 19 | modules/systemlib 20 | modules/uORB 21 | 22 | # 23 | # Libraries 24 | # 25 | lib/mathlib 26 | lib/mathlib/math/filter 27 | lib/geo 28 | lib/geo_lookup 29 | lib/conversion 30 | 31 | # 32 | # QuRT port 33 | # 34 | platforms/common 35 | platforms/qurt/px4_layer 36 | platforms/posix/work_queue 37 | platforms/qurt/tests/muorb 38 | 39 | # 40 | # sources for muorb over fastrpc 41 | # 42 | modules/muorb/adsp 43 | ) 44 | -------------------------------------------------------------------------------- /cmake/configs/qurt_eagle_test.cmake: -------------------------------------------------------------------------------- 1 | include(qurt/px4_impl_qurt) 2 | 3 | set(CMAKE_TOOLCHAIN_FILE ${CMAKE_SOURCE_DIR}/cmake/cmake_hexagon/toolchain/Toolchain-qurt.cmake) 4 | include(${CMAKE_SOURCE_DIR}/cmake/cmake_hexagon/qurt_app.cmake) 5 | 6 | set(config_module_list 7 | drivers/device 8 | 9 | # 10 | # System commands 11 | # 12 | systemcmds/param 13 | 14 | # 15 | # Library modules 16 | # 17 | modules/param 18 | modules/systemlib 19 | modules/systemlib/mixer 20 | modules/uORB 21 | 22 | # 23 | # Libraries 24 | # 25 | lib/mathlib 26 | lib/mathlib/math/filter 27 | lib/conversion 28 | 29 | # 30 | # QuRT port 31 | # 32 | platforms/common 33 | platforms/qurt/px4_layer 34 | platforms/posix/work_queue 35 | platforms/qurt/tests/hello 36 | platforms/posix/tests/vcdev_test 37 | platforms/posix/tests/hrt_test 38 | platforms/posix/tests/wqueue 39 | ) 40 | 41 | -------------------------------------------------------------------------------- /cmake/nuttx/builtin_commands.c.in: -------------------------------------------------------------------------------- 1 | /* builtin command list - automatically generated, do not edit */ 2 | #include 3 | #include 4 | #include 5 | ${builtin_apps_decl_string} 6 | const struct builtin_s g_builtins[] = { 7 | ${builtin_apps_string} 8 | {NULL, 0, 0, NULL} 9 | }; 10 | const int g_builtin_count = ${command_count}; 11 | -------------------------------------------------------------------------------- /cmake/qurt/qurt_eigen.patch: -------------------------------------------------------------------------------- 1 | diff --git a/Eigen/src/Core/util/Macros.h b/Eigen/src/Core/util/Macros.h 2 | index 1ca1d66..9bc928b 100644 3 | --- a/Eigen/src/Core/util/Macros.h 4 | +++ b/Eigen/src/Core/util/Macros.h 5 | @@ -194,6 +194,12 @@ 6 | #define EIGEN_ARCH_PPC 0 7 | #endif 8 | 9 | +/// \internal EIGEN_ARCH_HEXAGON set to 1 if the architecture is Hexagon 10 | +#ifdef __HEXAGON_ARCH__ 11 | + #define EIGEN_ARCH_HEXAGON 1 12 | +#else 13 | + #define EIGEN_ARCH_HEXAGON 0 14 | +#endif 15 | 16 | 17 | // Operating system identification, EIGEN_OS_* 18 | @@ -334,15 +340,16 @@ 19 | #endif 20 | 21 | // Do we support r-value references? 22 | -#if (__has_feature(cxx_rvalue_references) || \ 23 | +#if ((__has_feature(cxx_rvalue_references) || \ 24 | (defined(__cplusplus) && __cplusplus >= 201103L) || \ 25 | defined(__GXX_EXPERIMENTAL_CXX0X__) || \ 26 | - (EIGEN_COMP_MSVC >= 1600)) 27 | + (EIGEN_COMP_MSVC >= 1600)) && (!defined(EIGEN_ARCH_HEXAGON))) 28 | #define EIGEN_HAVE_RVALUE_REFERENCES 29 | #endif 30 | 31 | // Does the compiler support result_of? 32 | -#if (__has_feature(cxx_lambdas) || (defined(__cplusplus) && __cplusplus >= 201103L)) 33 | +#if ((__has_feature(cxx_lambdas) || (defined(__cplusplus) && __cplusplus >= 201103L)) && \ 34 | + (!defined(EIGEN_ARCH_HEXAGON))) 35 | #define EIGEN_HAS_STD_RESULT_OF 1 36 | #endif 37 | 38 | -------------------------------------------------------------------------------- /cmake/templates/build_git_version.h.in: -------------------------------------------------------------------------------- 1 | /* Auto Magically Generated file */ 2 | /* Do not edit! */ 3 | #define PX4_GIT_VERSION_STR "@git_desc@" 4 | #define PX4_GIT_VERSION_BINARY 0x@git_desc_short@ 5 | -------------------------------------------------------------------------------- /cmake/test/px4_simple_app_correct.txt: -------------------------------------------------------------------------------- 1 | INFO Shell id is 47996278451456 2 | WARN 1 starting task wkr_high (file /home/jgoppert/git/px4/cmake-Firmware/src/platforms/posix/px4_layer/px4_posix_tasks.cpp line 146) 3 | WARN 54 starting task wkr_low (file /home/jgoppert/git/px4/cmake-Firmware/src/platforms/posix/px4_layer/px4_posix_tasks.cpp line 146) 4 | WARN 100 starting task wkr_hrt (file /home/jgoppert/git/px4/cmake-Firmware/src/platforms/posix/px4_layer/px4_posix_tasks.cpp line 146) 5 | App name: mainapp 6 | Enter a command and its args: 7 | ---------------------------------- 8 | Running: uorb 9 | Returning: uorb 10 | Enter a command and its args: 11 | ---------------------------------- 12 | Running: accelsim 13 | Returning: accelsim 14 | Enter a command and its args: 15 | ---------------------------------- 16 | Running: px4_simple_app 17 | Hello Sky! 18 | [px4_simple_app] Got no data within a second 19 | [px4_simple_app] Got no data within a second 20 | [px4_simple_app] Got no data within a second 21 | [px4_simple_app] Got no data within a second 22 | [px4_simple_app] Got no data within a second 23 | Returning: px4_simple_app 24 | Enter a command and its args: 25 | ---------------------------------- 26 | Running: shutdown 27 | Shutting down 28 | -------------------------------------------------------------------------------- /cmake/test/px4_simple_app_input.txt: -------------------------------------------------------------------------------- 1 | uorb start 2 | accelsim start 3 | px4_simple_app 4 | shutdown 5 | -------------------------------------------------------------------------------- /cmake/toolchains/Toolchain-native.cmake: -------------------------------------------------------------------------------- 1 | # compiler tools 2 | foreach(tool nm ld) 3 | string(TOUPPER ${tool} TOOL) 4 | find_program(${TOOL} ${tool}) 5 | if(NOT ${TOOL}) 6 | message(FATAL_ERROR "could not find ${tool}") 7 | endif() 8 | endforeach() 9 | 10 | # os tools 11 | foreach(tool echo patch grep rm mkdir nm genromfs cp touch make unzip) 12 | string(TOUPPER ${tool} TOOL) 13 | find_program(${TOOL} ${tool}) 14 | if(NOT ${TOOL}) 15 | message(FATAL_ERROR "could not find ${TOOL}") 16 | endif() 17 | endforeach() 18 | -------------------------------------------------------------------------------- /integrationtests/demo_tests/direct_tests.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /integrationtests/demo_tests/mavros_tests.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /launch/ardrone.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /launch/example.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /launch/gazebo_ardrone_empty_world.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /launch/gazebo_ardrone_empty_world_offboard_attitudedemo.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /launch/gazebo_ardrone_empty_world_offboard_positiondemo.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /launch/gazebo_ardrone_house_world.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /launch/gazebo_iris_empty_world.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /launch/gazebo_iris_house_world.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /launch/gazebo_iris_mavros_posix_sitl.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /launch/gazebo_iris_outdoor_world.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /launch/iris.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /launch/mavros_sitl.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /launch/multicopter.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /launch/multicopter_w.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /launch/multicopter_x.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /makefiles/nuttx/.gitignore: -------------------------------------------------------------------------------- 1 | /config_px4fmu-v4_APM.mk 2 | -------------------------------------------------------------------------------- /makefiles/nuttx/board_aerocore.mk: -------------------------------------------------------------------------------- 1 | # 2 | # Board-specific definitions for the Gumstix AeroCore 3 | # 4 | 5 | # 6 | # Configure the toolchain 7 | # 8 | CONFIG_ARCH = CORTEXM4F 9 | CONFIG_BOARD = AEROCORE 10 | 11 | include $(PX4_MK_DIR)/toolchain_gnu-arm-eabi.mk 12 | -------------------------------------------------------------------------------- /makefiles/nuttx/board_px4-stm32f4discovery.mk: -------------------------------------------------------------------------------- 1 | # 2 | # Board-specific definitions for the PX4_STM32F4DISCOVERY 3 | # 4 | 5 | # 6 | # Configure the toolchain 7 | # 8 | CONFIG_ARCH = CORTEXM4F 9 | CONFIG_BOARD = PX4_STM32F4DISCOVERY 10 | 11 | include $(PX4_MK_DIR)/toolchain_gnu-arm-eabi.mk 12 | -------------------------------------------------------------------------------- /makefiles/nuttx/board_px4fmu-v1.mk: -------------------------------------------------------------------------------- 1 | # 2 | # Board-specific definitions for the PX4FMU 3 | # 4 | 5 | # 6 | # Configure the toolchain 7 | # 8 | CONFIG_ARCH = CORTEXM4F 9 | CONFIG_BOARD = PX4FMU_V1 10 | 11 | include $(PX4_MK_DIR)/toolchain_gnu-arm-eabi.mk 12 | -------------------------------------------------------------------------------- /makefiles/nuttx/board_px4fmu-v2.mk: -------------------------------------------------------------------------------- 1 | # 2 | # Board-specific definitions for the PX4FMUv2 3 | # 4 | 5 | # 6 | # Configure the toolchain 7 | # 8 | CONFIG_ARCH = CORTEXM4F 9 | CONFIG_BOARD = PX4FMU_V2 10 | 11 | include $(PX4_MK_DIR)/toolchain_gnu-arm-eabi.mk 12 | -------------------------------------------------------------------------------- /makefiles/nuttx/board_px4fmu-v4.mk: -------------------------------------------------------------------------------- 1 | # 2 | # Board-specific definitions for the PX4FMUv4 3 | # 4 | 5 | # 6 | # Configure the toolchain 7 | # 8 | CONFIG_ARCH = CORTEXM4F 9 | CONFIG_BOARD = PX4FMU_V4 10 | 11 | include $(PX4_MK_DIR)/toolchain_gnu-arm-eabi.mk 12 | -------------------------------------------------------------------------------- /makefiles/nuttx/board_px4io-v1.mk: -------------------------------------------------------------------------------- 1 | # 2 | # Board-specific definitions for the PX4IO 3 | # 4 | 5 | # 6 | # Configure the toolchain 7 | # 8 | CONFIG_ARCH = CORTEXM3 9 | CONFIG_BOARD = PX4IO_V1 10 | 11 | include $(PX4_MK_DIR)/toolchain_gnu-arm-eabi.mk 12 | -------------------------------------------------------------------------------- /makefiles/nuttx/board_px4io-v2.mk: -------------------------------------------------------------------------------- 1 | # 2 | # Board-specific definitions for the PX4IOv2 3 | # 4 | 5 | # 6 | # Configure the toolchain 7 | # 8 | CONFIG_ARCH = CORTEXM3 9 | CONFIG_BOARD = PX4IO_V2 10 | 11 | include $(PX4_MK_DIR)/toolchain_gnu-arm-eabi.mk 12 | -------------------------------------------------------------------------------- /makefiles/nuttx/config_px4fmu-v1_APM.mk: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for the px4fmu-v1_APM configuration 3 | # 4 | include $(SKETCHBOOK)/mk/PX4/px4_common.mk 5 | 6 | MODULES += drivers/boards/px4fmu-v1 7 | MODULES += drivers/px4io 8 | MODULES += drivers/px4flow 9 | -------------------------------------------------------------------------------- /makefiles/nuttx/config_px4fmu-v2_APM.mk: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for the px4fmu-v2_APM configuration 3 | # 4 | include $(SKETCHBOOK)/mk/PX4/px4_common.mk 5 | 6 | MODULES += drivers/lsm303d 7 | MODULES += drivers/l3gd20 8 | MODULES += drivers/mpu9250 9 | MODULES += drivers/boards/px4fmu-v2 10 | MODULES += drivers/pwm_input 11 | MODULES += modules/uavcan 12 | MODULES += lib/mathlib 13 | MODULES += drivers/px4io 14 | MODULES += drivers/px4flow 15 | MODULES += drivers/oreoled 16 | -------------------------------------------------------------------------------- /makefiles/nuttx/config_px4io-v1_default.mk: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for the px4io_default configuration 3 | # 4 | 5 | # 6 | # Board support modules 7 | # 8 | MODULES += drivers/stm32 9 | MODULES += drivers/boards/px4io-v1 10 | MODULES += modules/px4iofirmware -------------------------------------------------------------------------------- /makefiles/nuttx/config_px4io-v2_default.mk: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for the px4iov2_default configuration 3 | # 4 | 5 | # 6 | # Board support modules 7 | # 8 | MODULES += drivers/stm32 9 | MODULES += drivers/boards/px4io-v2 10 | MODULES += modules/px4iofirmware -------------------------------------------------------------------------------- /makefiles/nuttx/gumstix-aerocore.cfg: -------------------------------------------------------------------------------- 1 | # JTAG for the STM32F4x chip used on the Gumstix AeroCore is available on 2 | # the first interface of a Quad FTDI chip. nTRST is bit 4. 3 | interface ftdi 4 | ftdi_vid_pid 0x0403 0x6011 5 | 6 | ftdi_layout_init 0x0000 0x001b 7 | ftdi_layout_signal nTRST -data 0x0010 8 | 9 | source [find target/stm32f4x.cfg] 10 | reset_config trst_only 11 | -------------------------------------------------------------------------------- /makefiles/posix/board_posix.mk: -------------------------------------------------------------------------------- 1 | # 2 | # Board-specific definitions for the POSIX port of PX4 3 | # 4 | 5 | # 6 | # Configure the toolchain 7 | # 8 | CONFIG_ARCH = NATIVE 9 | CONFIG_BOARD = POSIXTEST 10 | 11 | include $(PX4_MK_DIR)/toolchain_native.mk 12 | -------------------------------------------------------------------------------- /makefiles/qurt/board_qurt.mk: -------------------------------------------------------------------------------- 1 | # 2 | # Board-specific definitions for the Linux port of PX4 3 | # 4 | 5 | # 6 | # Configure the toolchain 7 | # 8 | CONFIG_ARCH = HEXAGON 9 | CONFIG_BOARD = QURTTEST 10 | 11 | include $(PX4_MK_DIR)/toolchain_hexagon.mk 12 | -------------------------------------------------------------------------------- /misc/tones/charge.txt: -------------------------------------------------------------------------------- 1 | MFT90O3C16.C32C16.C32C16.C32G16.E32G16.E32G16.E32C16.C32C16.C32C16.C32G16.E32G16.E32G16.E32C4 -------------------------------------------------------------------------------- /misc/tones/cucuracha.txt: -------------------------------------------------------------------------------- 1 | MFT90O2C16C16C16F8.A8C16C16C16F8.A4P16P8 -------------------------------------------------------------------------------- /misc/tones/daisy.txt: -------------------------------------------------------------------------------- 1 | MFT200O3C4.O2A4.G4.F4.D8E8F8D4F8C2.O2G4.O3C4.O2A4.F4.D8E8F8G4A8G2P8 -------------------------------------------------------------------------------- /misc/tones/dixie.txt: -------------------------------------------------------------------------------- 1 | MFT60O3C32O2A32F16F16F32G32A32A+32O3C16C16C16O2A16 -------------------------------------------------------------------------------- /misc/tones/yankee.txt: -------------------------------------------------------------------------------- 1 | MNT150L8O2GGABGBADGGABL4GL8F+ -------------------------------------------------------------------------------- /msg/actuator_armed.msg: -------------------------------------------------------------------------------- 1 | 2 | uint64 timestamp # Microseconds since system boot 3 | bool armed # Set to true if system is armed 4 | bool prearmed # Set to true if the actuator safety is disabled but motors are not armed 5 | bool ready_to_arm # Set to true if system is ready to be armed 6 | bool lockdown # Set to true if actuators are forced to being disabled (due to emergency or HIL) 7 | bool force_failsafe # Set to true if the actuators are forced to the failsafe position 8 | bool in_esc_calibration_mode # IO/FMU should ignore messages from the actuator controls topics 9 | -------------------------------------------------------------------------------- /msg/actuator_controls.msg: -------------------------------------------------------------------------------- 1 | uint8 NUM_ACTUATOR_CONTROLS = 8 2 | uint8 NUM_ACTUATOR_CONTROL_GROUPS = 4 3 | uint8 INDEX_ROLL = 0 4 | uint8 INDEX_PITCH = 1 5 | uint8 INDEX_YAW = 2 6 | uint8 INDEX_THROTTLE = 3 7 | uint8 INDEX_FLAPS = 4 8 | uint8 INDEX_SPOILERS = 5 9 | uint8 INDEX_AIRBRAKES = 6 10 | uint8 INDEX_LANDING_GEAR = 7 11 | uint8 GROUP_INDEX_ATTITUDE = 0 12 | uint8 GROUP_INDEX_ATTITUDE_ALTERNATE = 1 13 | uint64 timestamp 14 | uint64 timestamp_sample # the timestamp the data this control response is based on was sampled 15 | float32[8] control 16 | -------------------------------------------------------------------------------- /msg/actuator_controls_0.msg: -------------------------------------------------------------------------------- 1 | uint8 NUM_ACTUATOR_CONTROLS = 8 2 | uint8 NUM_ACTUATOR_CONTROL_GROUPS = 4 3 | uint64 timestamp 4 | uint64 timestamp_sample # the timestamp the data this control response is based on was sampled 5 | float32[8] control 6 | -------------------------------------------------------------------------------- /msg/actuator_controls_1.msg: -------------------------------------------------------------------------------- 1 | uint8 NUM_ACTUATOR_CONTROLS = 8 2 | uint8 NUM_ACTUATOR_CONTROL_GROUPS = 4 3 | uint64 timestamp 4 | uint64 timestamp_sample # the timestamp the data this control response is based on was sampled 5 | float32[8] control 6 | -------------------------------------------------------------------------------- /msg/actuator_controls_2.msg: -------------------------------------------------------------------------------- 1 | uint8 NUM_ACTUATOR_CONTROLS = 8 2 | uint8 NUM_ACTUATOR_CONTROL_GROUPS = 4 3 | uint64 timestamp 4 | uint64 timestamp_sample # the timestamp the data this control response is based on was sampled 5 | float32[8] control 6 | -------------------------------------------------------------------------------- /msg/actuator_controls_3.msg: -------------------------------------------------------------------------------- 1 | uint8 NUM_ACTUATOR_CONTROLS = 8 2 | uint8 NUM_ACTUATOR_CONTROL_GROUPS = 4 3 | uint64 timestamp 4 | uint64 timestamp_sample # the timestamp the data this control response is based on was sampled 5 | float32[8] control 6 | -------------------------------------------------------------------------------- /msg/actuator_controls_virtual_fw.msg: -------------------------------------------------------------------------------- 1 | uint8 NUM_ACTUATOR_CONTROLS = 8 2 | uint8 NUM_ACTUATOR_CONTROL_GROUPS = 4 3 | uint64 timestamp 4 | uint64 timestamp_sample # the timestamp the data this control response is based on was sampled 5 | float32[8] control 6 | -------------------------------------------------------------------------------- /msg/actuator_controls_virtual_mc.msg: -------------------------------------------------------------------------------- 1 | uint8 NUM_ACTUATOR_CONTROLS = 8 2 | uint8 NUM_ACTUATOR_CONTROL_GROUPS = 4 3 | uint64 timestamp 4 | uint64 timestamp_sample # the timestamp the data this control response is based on was sampled 5 | float32[8] control 6 | -------------------------------------------------------------------------------- /msg/actuator_direct.msg: -------------------------------------------------------------------------------- 1 | uint8 NUM_ACTUATORS_DIRECT = 16 2 | uint64 timestamp # timestamp in us since system boot 3 | uint32 nvalues # number of valid values 4 | float32[16] values # actuator values, from -1 to 1 5 | -------------------------------------------------------------------------------- /msg/actuator_outputs.msg: -------------------------------------------------------------------------------- 1 | uint8 NUM_ACTUATOR_OUTPUTS = 16 2 | uint8 NUM_ACTUATOR_OUTPUT_GROUPS = 4 # for sanity checking 3 | uint64 timestamp # output timestamp in us since system boot 4 | uint32 noutputs # valid outputs 5 | float32[16] output # output data, in natural output units 6 | -------------------------------------------------------------------------------- /msg/airspeed.msg: -------------------------------------------------------------------------------- 1 | uint64 timestamp # microseconds since system boot, needed to integrate 2 | float32 indicated_airspeed_m_s # indicated airspeed in meters per second, -1 if unknown 3 | float32 true_airspeed_m_s # true filtered airspeed in meters per second, -1 if unknown 4 | float32 true_airspeed_unfiltered_m_s # true airspeed in meters per second, -1 if unknown 5 | float32 air_temperature_celsius # air temperature in degrees celsius, -1000 if unknown 6 | float32 confidence # confidence value from 0 to 1 for this sensor 7 | -------------------------------------------------------------------------------- /msg/att_pos_mocap.msg: -------------------------------------------------------------------------------- 1 | uint32 id # ID of the estimator, commonly the component ID of the incoming message 2 | 3 | uint64 timestamp_boot # time of this estimate, in microseconds since system start 4 | uint64 timestamp_computer # timestamp provided by the companion computer, in us 5 | 6 | float32[4] q # Estimated attitude as quaternion 7 | 8 | float32 x # X position in meters in NED earth-fixed frame 9 | float32 y # Y position in meters in NED earth-fixed frame 10 | float32 z # Z position in meters in NED earth-fixed frame (negative altitude) 11 | -------------------------------------------------------------------------------- /msg/battery_status.msg: -------------------------------------------------------------------------------- 1 | uint64 timestamp # microseconds since system boot, needed to integrate 2 | float32 voltage_v # Battery voltage in volts, 0 if unknown 3 | float32 voltage_filtered_v # Battery voltage in volts, filtered, 0 if unknown 4 | float32 current_a # Battery current in amperes, -1 if unknown 5 | float32 discharged_mah # Discharged amount in mAh, -1 if unknown 6 | bool is_powering_off # Power off event imminent indication, false if unknown 7 | -------------------------------------------------------------------------------- /msg/camera_trigger.msg: -------------------------------------------------------------------------------- 1 | 2 | uint64 timestamp # Timestamp when camera was triggered 3 | uint32 seq # Image sequence 4 | 5 | -------------------------------------------------------------------------------- /msg/control_state.msg: -------------------------------------------------------------------------------- 1 | # This is similar to the mavlink message CONTROL_SYSTEM_STATE, but for onboard use */ 2 | uint64 timestamp # in microseconds since system start 3 | float32 x_acc # X acceleration in body frame 4 | float32 y_acc # Y acceleration in body frame 5 | float32 z_acc # Z acceleration in body frame 6 | float32 x_vel # X velocity in body frame 7 | float32 y_vel # Y velocity in body frame 8 | float32 z_vel # Z velocity in body frame 9 | float32 x_pos # X position in local frame 10 | float32 y_pos # Y position in local frame 11 | float32 z_pos # z position in local frame 12 | float32 airspeed # Airspeed, estimated 13 | bool airspeed_valid # False: Non-finite values or non-updating sensor 14 | float32[3] vel_variance # Variance in body velocity estimate 15 | float32[3] pos_variance # Variance in local position estimate 16 | float32[4] q # Attitude Quaternion 17 | float32 roll_rate # Roll body angular rate (rad/s, x forward/y right/z down) 18 | float32 pitch_rate # Pitch body angular rate (rad/s, x forward/y right/z down) 19 | float32 yaw_rate # Yaw body angular rate (rad/s, x forward/y right/z down) 20 | float32 horz_acc_mag # Magnitude of the horizontal acceleration 21 | -------------------------------------------------------------------------------- /msg/debug_key_value.msg: -------------------------------------------------------------------------------- 1 | uint32 timestamp_ms # in milliseconds since system start 2 | int8[10] key # max. 10 characters as key / name 3 | float32 value # the value to send as debug output 4 | -------------------------------------------------------------------------------- /msg/differential_pressure.msg: -------------------------------------------------------------------------------- 1 | uint64 timestamp # Microseconds since system boot, needed to integrate 2 | uint64 error_count # Number of errors detected by driver 3 | float32 differential_pressure_raw_pa # Raw differential pressure reading (may be negative) 4 | float32 differential_pressure_filtered_pa # Low pass filtered differential pressure reading 5 | float32 max_differential_pressure_pa # Maximum differential pressure reading 6 | float32 temperature # Temperature provided by sensor, -1000.0f if unknown 7 | -------------------------------------------------------------------------------- /msg/distance_sensor.msg: -------------------------------------------------------------------------------- 1 | # DISTANCE_SENSOR message data 2 | 3 | uint64 timestamp # Microseconds since system boot 4 | 5 | float32 min_distance # Minimum distance the sensor can measure (in m) 6 | float32 max_distance # Maximum distance the sensor can measure (in m) 7 | float32 current_distance # Current distance reading (in m) 8 | float32 covariance # Measurement covariance (in m), 0 for unknown / invalid readings 9 | 10 | uint8 type # Type from MAV_DISTANCE_SENSOR enum 11 | uint8 MAV_DISTANCE_SENSOR_LASER = 0 12 | uint8 MAV_DISTANCE_SENSOR_ULTRASOUND = 1 13 | uint8 MAV_DISTANCE_SENSOR_INFRARED = 2 14 | 15 | uint8 id # Onboard ID of the sensor 16 | 17 | uint8 orientation # Direction the sensor faces from MAV_SENSOR_ORIENTATION enum 18 | -------------------------------------------------------------------------------- /msg/ekf2_innovations.msg: -------------------------------------------------------------------------------- 1 | uint64 timestamp # Timestamp in microseconds since boot 2 | float32[6] vel_pos_innov # velocity and position innovations 3 | float32[3] mag_innov # earth magnetic field innovations 4 | float32 heading_innov # heading innovation 5 | float32 airspeed_innov # airspeed innovation 6 | float32[2] flow_innov # flow innovation 7 | float32 hagl_innov # innovation from the terrain estimator for the height above ground level measurement (m) 8 | float32[6] vel_pos_innov_var # velocity and position innovation variances 9 | float32[3] mag_innov_var # earth magnetic field innovation variance 10 | float32 heading_innov_var # heading innovation variance 11 | float32 airspeed_innov_var # Airspeed innovation variance 12 | float32[2] flow_innov_var # flow innovation variance 13 | float32 hagl_innov_var # innovation variance from the terrain estimator for the height above ground level measurement (m^2) 14 | -------------------------------------------------------------------------------- /msg/encoders.msg: -------------------------------------------------------------------------------- 1 | uint8 NUM_ENCODERS = 4 2 | 3 | uint64 timestamp 4 | int64[4] counts # counts of encoder 5 | float32[4] velocity # counts of encoder/ second 6 | -------------------------------------------------------------------------------- /msg/esc_report.msg: -------------------------------------------------------------------------------- 1 | uint8 esc_vendor # Vendor of current ESC 2 | uint32 esc_errorcount # Number of reported errors by ESC - if supported 3 | int32 esc_rpm # Motor RPM, negative for reverse rotation [RPM] - if supported 4 | float32 esc_voltage # Voltage measured from current ESC [V] - if supported 5 | float32 esc_current # Current measured from current ESC [A] - if supported 6 | float32 esc_temperature # Temperature measured from current ESC [degC] - if supported 7 | float32 esc_setpoint # setpoint of current ESC 8 | uint16 esc_setpoint_raw # setpoint of current ESC (Value sent to ESC) 9 | uint16 esc_address # Address of current ESC (in most cases 1-8 / must be set by driver) 10 | uint16 esc_version # Version of current ESC - if supported 11 | uint16 esc_state # State of ESC - depend on Vendor 12 | -------------------------------------------------------------------------------- /msg/esc_status.msg: -------------------------------------------------------------------------------- 1 | uint8 CONNECTED_ESC_MAX = 8 # The number of ESCs supported. Current (Q2/2013) we support 8 ESCs 2 | 3 | uint8 ESC_VENDOR_GENERIC = 0 # generic ESC 4 | uint8 ESC_VENDOR_MIKROKOPTER = 1 # Mikrokopter 5 | uint8 ESC_VENDOR_GRAUPNER_HOTT = 2 # Graupner HoTT ESC 6 | 7 | uint8 ESC_CONNECTION_TYPE_PPM = 0 # Traditional PPM ESC 8 | uint8 ESC_CONNECTION_TYPE_SERIAL = 1 # Serial Bus connected ESC 9 | uint8 ESC_CONNECTION_TYPE_ONESHOOT = 2 # One Shoot PPM 10 | uint8 ESC_CONNECTION_TYPE_I2C = 3 # I2C 11 | uint8 ESC_CONNECTION_TYPE_CAN = 4 # CAN-Bus 12 | 13 | uint16 counter # incremented by the writing thread everytime new data is stored 14 | uint64 timestamp # in microseconds since system start, is set whenever the writing thread stores new data 15 | 16 | uint8 esc_count # number of connected ESCs 17 | uint8 esc_connectiontype # how ESCs connected to the system 18 | 19 | esc_report[8] esc 20 | -------------------------------------------------------------------------------- /msg/estimator_status.msg: -------------------------------------------------------------------------------- 1 | uint64 timestamp # Timestamp in microseconds since boot 2 | float32[32] states # Internal filter states 3 | float32 n_states # Number of states effectively used 4 | float32[3] vibe # Vibration levels in X, Y and Z 5 | uint8 nan_flags # Bitmask to indicate NaN states 6 | uint8 health_flags # Bitmask to indicate sensor health states (vel, pos, hgt) 7 | uint8 timeout_flags # Bitmask to indicate timeout flags (vel, pos, hgt) 8 | float32[28] covariances # Diagonal Elements of Covariance Matrix 9 | uint16 gps_check_fail_flags # Bitmask to indicate status of GPS checks - see definition below 10 | # bits are true when corresponding test has failed 11 | # 0 : minimum required sat count fail 12 | # 1 : minimum required GDoP fail 13 | # 2 : maximum allowed horizontal position error fail 14 | # 3 : maximum allowed vertical position error fail 15 | # 4 : maximum allowed speed error fail 16 | # 5 : maximum allowed horizontal position drift fail 17 | # 6 : maximum allowed vertical position drift fail 18 | # 7 : maximum allowed horizontal speed fail 19 | # 8 : maximum allowed vertical velocity discrepancy fail 20 | -------------------------------------------------------------------------------- /msg/fence.msg: -------------------------------------------------------------------------------- 1 | uint8 GEOFENCE_MAX_VERTICES = 16 2 | 3 | uint32 count # number of actual vertices 4 | fence_vertex[16] vertices # geofence positions 5 | -------------------------------------------------------------------------------- /msg/fence_vertex.msg: -------------------------------------------------------------------------------- 1 | float32 lat # latitude in degrees, worst case float precision gives us 2 meter resolution at the equator 2 | float32 lon # longitude in degrees, worst case float precision gives us 2 meter resolution at the equator 3 | -------------------------------------------------------------------------------- /msg/filtered_bottom_flow.msg: -------------------------------------------------------------------------------- 1 | # Filtered bottom flow in bodyframe. 2 | uint64 timestamp # time of this estimate, in microseconds since system start 3 | 4 | float32 sumx # Integrated bodyframe x flow in meters 5 | float32 sumy # Integrated bodyframe y flow in meters 6 | 7 | float32 vx # Flow bodyframe x speed, m/s 8 | float32 vy # Flow bodyframe y Speed, m/s 9 | -------------------------------------------------------------------------------- /msg/follow_target.msg: -------------------------------------------------------------------------------- 1 | uint64 timestamp # timestamp, UNIX epoch (GPS synced) 2 | float64 lat # target position (deg * 1e7) 3 | float64 lon # target position (deg * 1e7) 4 | float32 alt # target position 5 | -------------------------------------------------------------------------------- /msg/fw_virtual_rates_setpoint.msg: -------------------------------------------------------------------------------- 1 | ############################################################################################### 2 | # The vehicle_rates_setpoint.msg needs to be in sync with the virtual setpoint messages 3 | # 4 | # Please keep the following messages identical; 5 | # vehicle_rates_setpoint.msg 6 | # mc_virtual_rates_setpoint.msg 7 | # fw_virtual_rates_setpoint.msg 8 | # 9 | ############################################################################################### 10 | 11 | uint64 timestamp # in microseconds since system start 12 | 13 | float32 roll # body angular rates in NED frame 14 | float32 pitch # body angular rates in NED frame 15 | float32 yaw # body angular rates in NED frame 16 | float32 thrust # thrust normalized to 0..1 17 | -------------------------------------------------------------------------------- /msg/geofence_result.msg: -------------------------------------------------------------------------------- 1 | uint8 GF_ACTION_NONE = 0 # no action on geofence violation 2 | uint8 GF_ACTION_WARN = 1 # critical mavlink message 3 | uint8 GF_ACTION_LOITER = 2 # switch to AUTO|LOITER 4 | uint8 GF_ACTION_RTL = 3 # switch to AUTO|RTL 5 | uint8 GF_ACTION_TERMINATE = 4 # flight termination 6 | 7 | bool geofence_violated # true if the geofence is violated 8 | uint8 geofence_action # action to take when geofence is violated -------------------------------------------------------------------------------- /msg/home_position.msg: -------------------------------------------------------------------------------- 1 | # GPS home position in WGS84 coordinates. 2 | uint64 timestamp # Timestamp (microseconds since system boot) 3 | 4 | float64 lat # Latitude in degrees 5 | float64 lon # Longitude in degrees 6 | float32 alt # Altitude in meters (AMSL) 7 | 8 | float32 x # X coordinate in meters 9 | float32 y # Y coordinate in meters 10 | float32 z # Z coordinate in meters 11 | 12 | float32 yaw # Yaw angle in radians 13 | float32 direction_x # Takeoff direction in NED X 14 | float32 direction_y # Takeoff direction in NED Y 15 | float32 direction_z # Takeoff direction in NED Z 16 | -------------------------------------------------------------------------------- /msg/mavlink_log.msg: -------------------------------------------------------------------------------- 1 | uint64 timestamp # Timestamp in microseconds since boot 2 | 3 | uint8[51] text 4 | uint8 severity 5 | -------------------------------------------------------------------------------- /msg/mc_att_ctrl_status.msg: -------------------------------------------------------------------------------- 1 | uint64 timestamp # in microseconds since system start 2 | 3 | float32 roll_rate_integ # roll rate inegrator 4 | float32 pitch_rate_integ # pitch rate integrator 5 | float32 yaw_rate_integ # yaw rate integrator 6 | -------------------------------------------------------------------------------- /msg/mc_virtual_rates_setpoint.msg: -------------------------------------------------------------------------------- 1 | ############################################################################################### 2 | # The vehicle_rates_setpoint.msg needs to be in sync with the virtual setpoint messages 3 | # 4 | # Please keep the following messages identical; 5 | # vehicle_rates_setpoint.msg 6 | # mc_virtual_rates_setpoint.msg 7 | # fw_virtual_rates_setpoint.msg 8 | # 9 | ############################################################################################### 10 | 11 | uint64 timestamp # in microseconds since system start 12 | 13 | float32 roll # body angular rates in NED frame 14 | float32 pitch # body angular rates in NED frame 15 | float32 yaw # body angular rates in NED frame 16 | float32 thrust # thrust normalized to 0..1 17 | -------------------------------------------------------------------------------- /msg/mission.msg: -------------------------------------------------------------------------------- 1 | int32 dataman_id # default 0, there are two offboard storage places in the dataman: 0 or 1 2 | uint32 count # count of the missions stored in the dataman 3 | int32 current_seq # default -1, start at the one changed latest 4 | -------------------------------------------------------------------------------- /msg/mission_result.msg: -------------------------------------------------------------------------------- 1 | uint32 instance_count # Instance count of this mission. Increments monotonically whenever the mission is modified 2 | uint32 seq_reached # Sequence of the mission item which has been reached 3 | uint32 seq_current # Sequence of the current mission item 4 | bool valid # true if mission is valid 5 | bool warning # true if mission is valid, but has potentially problematic items leading to safety warnings 6 | bool reached # true if mission has been reached 7 | bool finished # true if mission has been completed 8 | bool stay_in_failsafe # true if the commander should not switch out of the failsafe mode 9 | bool flight_termination # true if the navigator demands a flight termination from the commander app 10 | bool item_do_jump_changed # true if the number of do jumps remaining has changed 11 | uint32 item_changed_index # indicate which item has changed 12 | uint32 item_do_jump_remaining # set to the number of do jumps remaining for that item 13 | bool mission_failure # true if the mission cannot continue or be completed for some reason 14 | -------------------------------------------------------------------------------- /msg/multirotor_motor_limits.msg: -------------------------------------------------------------------------------- 1 | uint8 lower_limit # at least one actuator command has saturated on the lower limit 2 | uint8 upper_limit # at least one actuator command has saturated on the upper limit 3 | uint8 yaw # yaw limit reached 4 | uint8 reserved # reserved 5 | -------------------------------------------------------------------------------- /msg/navigation_capabilities.msg: -------------------------------------------------------------------------------- 1 | uint64 timestamp # timestamp this topic was emitted 2 | float32 turn_distance # the optimal distance to a waypoint to switch to the next 3 | float32 landing_horizontal_slope_displacement 4 | float32 landing_slope_angle_rad 5 | float32 landing_flare_length 6 | bool abort_landing 7 | -------------------------------------------------------------------------------- /msg/offboard_control_mode.msg: -------------------------------------------------------------------------------- 1 | # Off-board control mode 2 | uint64 timestamp 3 | 4 | bool ignore_thrust 5 | bool ignore_attitude 6 | bool ignore_bodyrate 7 | bool ignore_position 8 | bool ignore_velocity 9 | bool ignore_acceleration_force 10 | -------------------------------------------------------------------------------- /msg/optical_flow.msg: -------------------------------------------------------------------------------- 1 | # Optical flow in NED body frame in SI units. 2 | # @see http://en.wikipedia.org/wiki/International_System_of_Units 3 | 4 | uint64 timestamp # in microseconds since system start 5 | uint8 sensor_id # id of the sensor emitting the flow value 6 | float32 pixel_flow_x_integral # accumulated optical flow in radians around x axis 7 | float32 pixel_flow_y_integral # accumulated optical flow in radians around y axis 8 | float32 gyro_x_rate_integral # accumulated gyro value in radians around x axis 9 | float32 gyro_y_rate_integral # accumulated gyro value in radians around y axis 10 | float32 gyro_z_rate_integral # accumulated gyro value in radians around z axis 11 | float32 ground_distance_m # Altitude / distance to ground in meters 12 | uint32 integration_timespan # accumulation timespan in microseconds 13 | uint32 time_since_last_sonar_update # time since last sonar update in microseconds 14 | uint16 frame_count_since_last_readout # number of accumulated frames in timespan 15 | int16 gyro_temperature # Temperature * 100 in centi-degrees Celsius 16 | uint8 quality # Average of quality of accumulated frames, 0: bad quality, 255: maximum quality 17 | 18 | -------------------------------------------------------------------------------- /msg/output_pwm.msg: -------------------------------------------------------------------------------- 1 | uint8 PWM_OUTPUT_MAX_CHANNELS = 16 2 | uint16[16] values 3 | uint32 channel_count 4 | -------------------------------------------------------------------------------- /msg/parameter_update.msg: -------------------------------------------------------------------------------- 1 | uint64 timestamp # time at which the latest parameter was updated 2 | bool saved # wether the change has already been saved to disk 3 | -------------------------------------------------------------------------------- /msg/position_setpoint_triplet.msg: -------------------------------------------------------------------------------- 1 | # Global position setpoint triplet in WGS84 coordinates. 2 | # This are the three next waypoints (or just the next two or one). 3 | 4 | px4/position_setpoint previous 5 | px4/position_setpoint current 6 | px4/position_setpoint next 7 | 8 | uint8 nav_state # report the navigation state 9 | -------------------------------------------------------------------------------- /msg/pwm_input.msg: -------------------------------------------------------------------------------- 1 | 2 | uint64 timestamp # Microseconds since system boot 3 | uint64 error_count 4 | uint32 pulse_width # Pulse width, timer counts 5 | uint32 period # Period, timer counts 6 | -------------------------------------------------------------------------------- /msg/qshell_req.msg: -------------------------------------------------------------------------------- 1 | uint64 timestamp # Microseconds since system boot 2 | int32[100] string 3 | uint64 MAX_STRLEN = 100 4 | uint64 strlen 5 | -------------------------------------------------------------------------------- /msg/rc_parameter_map.msg: -------------------------------------------------------------------------------- 1 | uint8 RC_PARAM_MAP_NCHAN = 3 # This limit is also hardcoded in the enum RC_CHANNELS_FUNCTION in rc_channels.h 2 | uint8 PARAM_ID_LEN = 16 # corresponds to MAVLINK_MSG_PARAM_VALUE_FIELD_PARAM_ID_LEN 3 | 4 | uint64 timestamp # time at which the map was updated 5 | bool[3] valid #true for RC-Param channels which are mapped to a param 6 | int32[3] param_index # corresponding param index, this field is ignored if set to -1, in this case param_id will be used 7 | char[51] param_id # MAP_NCHAN * (ID_LEN + 1) chars, corresponding param id, null terminated 8 | float32[3] scale # scale to map the RC input [-1, 1] to a parameter value 9 | float32[3] value0 # initial value around which the parameter value is changed 10 | float32[3] value_min # minimal parameter value 11 | float32[3] value_max # minimal parameter value 12 | -------------------------------------------------------------------------------- /msg/safety.msg: -------------------------------------------------------------------------------- 1 | uint64 timestamp 2 | bool safety_switch_available # Set to true if a safety switch is connected 3 | bool safety_off # Set to true if safety is off 4 | -------------------------------------------------------------------------------- /msg/satellite_info.msg: -------------------------------------------------------------------------------- 1 | uint8 SAT_INFO_MAX_SATELLITES = 20 2 | 3 | uint64 timestamp # Timestamp of satellite info 4 | uint8 count # Number of satellites in satellite info 5 | uint8[20] svid # Space vehicle ID [1..255], see scheme below 6 | uint8[20] used # 0: Satellite not used, 1: used for navigation 7 | uint8[20] elevation # Elevation (0: right on top of receiver, 90: on the horizon) of satellite 8 | uint8[20] azimuth # Direction of satellite, 0: 0 deg, 255: 360 deg. 9 | uint8[20] snr # dBHz, Signal to noise ratio of satellite C/N0, range 0..99, zero when not tracking this satellite. 10 | -------------------------------------------------------------------------------- /msg/sensor_accel.msg: -------------------------------------------------------------------------------- 1 | uint64 timestamp 2 | uint64 integral_dt # integration time 3 | uint64 error_count 4 | float32 x # acceleration in the NED X board axis in m/s^2 5 | float32 y # acceleration in the NED Y board axis in m/s^2 6 | float32 z # acceleration in the NED Z board axis in m/s^2 7 | float32 x_integral # velocity in the NED X board axis in m/s over the integration time frame 8 | float32 y_integral # velocity in the NED Y board axis in m/s over the integration time frame 9 | float32 z_integral # velocity in the NED Z board axis in m/s over the integration time frame 10 | float32 temperature # temperature in degrees celsius 11 | float32 range_m_s2 # range in m/s^2 (+- this value) 12 | float32 scaling 13 | 14 | int16 x_raw 15 | int16 y_raw 16 | int16 z_raw 17 | int16 temperature_raw 18 | 19 | uint32 device_id 20 | -------------------------------------------------------------------------------- /msg/sensor_baro.msg: -------------------------------------------------------------------------------- 1 | float32 pressure 2 | float32 altitude 3 | float32 temperature 4 | uint64 timestamp 5 | uint64 error_count 6 | -------------------------------------------------------------------------------- /msg/sensor_gyro.msg: -------------------------------------------------------------------------------- 1 | uint64 timestamp 2 | uint64 integral_dt # integration time 3 | uint64 error_count 4 | float32 x # angular velocity in the NED X board axis in rad/s 5 | float32 y # angular velocity in the NED Y board axis in rad/s 6 | float32 z # angular velocity in the NED Z board axis in rad/s 7 | float32 x_integral # delta angle in the NED X board axis in rad/s in the integration time frame 8 | float32 y_integral # delta angle in the NED Y board axis in rad/s in the integration time frame 9 | float32 z_integral # delta angle in the NED Z board axis in rad/s in the integration time frame 10 | float32 temperature # temperature in degrees celcius 11 | float32 range_rad_s 12 | float32 scaling 13 | 14 | int16 x_raw 15 | int16 y_raw 16 | int16 z_raw 17 | int16 temperature_raw 18 | 19 | uint32 device_id 20 | -------------------------------------------------------------------------------- /msg/sensor_mag.msg: -------------------------------------------------------------------------------- 1 | uint64 timestamp 2 | uint64 error_count 3 | float32 x 4 | float32 y 5 | float32 z 6 | float32 range_ga 7 | float32 scaling 8 | float32 temperature 9 | 10 | int16 x_raw 11 | int16 y_raw 12 | int16 z_raw 13 | 14 | uint32 device_id 15 | -------------------------------------------------------------------------------- /msg/servorail_status.msg: -------------------------------------------------------------------------------- 1 | uint64 timestamp # microseconds since system boot 2 | float32 voltage_v # Servo rail voltage in volts 3 | float32 rssi_v # RSSI pin voltage in volts 4 | -------------------------------------------------------------------------------- /msg/subsystem_info.msg: -------------------------------------------------------------------------------- 1 | uint64 SUBSYSTEM_TYPE_GYRO = 1 2 | uint64 SUBSYSTEM_TYPE_ACC = 2 3 | uint64 SUBSYSTEM_TYPE_MAG = 4 4 | uint64 SUBSYSTEM_TYPE_ABSPRESSURE = 8 5 | uint64 SUBSYSTEM_TYPE_DIFFPRESSURE = 16 6 | uint64 SUBSYSTEM_TYPE_GPS = 32 7 | uint64 SUBSYSTEM_TYPE_OPTICALFLOW = 64 8 | uint64 SUBSYSTEM_TYPE_CVPOSITION = 128 9 | uint64 SUBSYSTEM_TYPE_LASERPOSITION = 256 10 | uint64 SUBSYSTEM_TYPE_EXTERNALGROUNDTRUTH = 512 11 | uint64 SUBSYSTEM_TYPE_ANGULARRATECONTROL = 1024 12 | uint64 SUBSYSTEM_TYPE_ATTITUDESTABILIZATION = 2048 13 | uint64 SUBSYSTEM_TYPE_YAWPOSITION = 4096 14 | uint64 SUBSYSTEM_TYPE_ALTITUDECONTROL = 16384 15 | uint64 SUBSYSTEM_TYPE_POSITIONCONTROL = 32768 16 | uint64 SUBSYSTEM_TYPE_MOTORCONTROL = 65536 17 | uint64 SUBSYSTEM_TYPE_RANGEFINDER = 131072 18 | 19 | bool present 20 | bool enabled 21 | bool ok 22 | uint64 subsystem_type 23 | -------------------------------------------------------------------------------- /msg/system_power.msg: -------------------------------------------------------------------------------- 1 | uint64 timestamp # microseconds since system boot 2 | float32 voltage5V_v # peripheral 5V rail voltage 3 | uint8 usb_connected # USB is connected when 1 4 | uint8 brick_valid # brick power is good when 1 5 | uint8 servo_valid # servo power is good when 1 6 | uint8 periph_5V_OC # peripheral overcurrent when 1 7 | uint8 hipower_5V_OC # hi power peripheral overcurrent when 1 8 | -------------------------------------------------------------------------------- /msg/tecs_status.msg: -------------------------------------------------------------------------------- 1 | uint8 TECS_MODE_NORMAL = 0 2 | uint8 TECS_MODE_UNDERSPEED = 1 3 | uint8 TECS_MODE_TAKEOFF = 2 4 | uint8 TECS_MODE_LAND = 3 5 | uint8 TECS_MODE_LAND_THROTTLELIM = 4 6 | uint8 TECS_MODE_BAD_DESCENT = 5 7 | uint8 TECS_MODE_CLIMBOUT = 6 8 | 9 | uint64 timestamp # timestamp, in microseconds since system start */ 10 | 11 | float32 altitudeSp 12 | float32 altitude_filtered 13 | float32 flightPathAngleSp 14 | float32 flightPathAngle 15 | float32 flightPathAngleFiltered 16 | float32 airspeedSp 17 | float32 airspeed_filtered 18 | float32 airspeedDerivativeSp 19 | float32 airspeedDerivative 20 | 21 | float32 totalEnergyError 22 | float32 energyDistributionError 23 | float32 totalEnergyRateError 24 | float32 energyDistributionRateError 25 | 26 | float32 throttle_integ 27 | float32 pitch_integ 28 | 29 | uint8 mode 30 | -------------------------------------------------------------------------------- /msg/telemetry_status.msg: -------------------------------------------------------------------------------- 1 | uint8 TELEMETRY_STATUS_RADIO_TYPE_GENERIC = 0 2 | uint8 TELEMETRY_STATUS_RADIO_TYPE_3DR_RADIO = 1 3 | uint8 TELEMETRY_STATUS_RADIO_TYPE_UBIQUITY_BULLET = 2 4 | uint8 TELEMETRY_STATUS_RADIO_TYPE_WIRE = 3 5 | uint8 TELEMETRY_STATUS_RADIO_TYPE_USB = 4 6 | 7 | uint64 timestamp 8 | uint64 heartbeat_time # Time of last received heartbeat from remote system 9 | uint64 telem_time # Time of last received telemetry status packet, 0 for none 10 | uint8 type # type of the radio hardware 11 | uint8 rssi # local signal strength 12 | uint8 remote_rssi # remote signal strength 13 | uint16 rxerrors # receive errors 14 | uint16 fixed # count of error corrected packets 15 | uint8 noise # background noise level 16 | uint8 remote_noise # remote background noise level 17 | uint8 txbuf # how full the tx buffer is as a percentage 18 | uint8 system_id # system id of the remote system 19 | uint8 component_id # component id of the remote system 20 | -------------------------------------------------------------------------------- /msg/test_motor.msg: -------------------------------------------------------------------------------- 1 | uint8 NUM_MOTOR_OUTPUTS = 8 2 | 3 | uint64 timestamp # output timestamp in us since system boot 4 | uint32 motor_number # number of motor to spin 5 | float32 value # output power, range [0..1] 6 | -------------------------------------------------------------------------------- /msg/time_offset.msg: -------------------------------------------------------------------------------- 1 | uint64 offset_ns # time offset between companion system and PX4, in nanoseconds 2 | -------------------------------------------------------------------------------- /msg/uavcan_parameter_request.msg: -------------------------------------------------------------------------------- 1 | # UAVCAN-MAVLink parameter bridge request type 2 | uint8 message_type # MAVLink message type: PARAM_REQUEST_READ, PARAM_REQUEST_LIST, PARAM_SET 3 | uint8 node_id # UAVCAN node ID mapped from MAVLink component ID 4 | char[17] param_id # MAVLink/UAVCAN parameter name 5 | int16 param_index # -1 if the param_id field should be used as identifier 6 | uint8 param_type # MAVLink parameter type 7 | int64 int_value # current value if param_type is int-like 8 | float32 real_value # current value if param_type is float-like 9 | -------------------------------------------------------------------------------- /msg/uavcan_parameter_value.msg: -------------------------------------------------------------------------------- 1 | # UAVCAN-MAVLink parameter bridge response type 2 | uint8 node_id # UAVCAN node ID mapped from MAVLink component ID 3 | char[17] param_id # MAVLink/UAVCAN parameter name 4 | int16 param_index # parameter index, if known 5 | uint16 param_count # number of parameters exposed by the node 6 | uint8 param_type # MAVLink parameter type 7 | int64 int_value # current value if param_type is int-like 8 | float32 real_value # current value if param_type is float-like 9 | -------------------------------------------------------------------------------- /msg/vehicle_command_ack.msg: -------------------------------------------------------------------------------- 1 | uint8 VEHICLE_RESULT_ACCEPTED = 0 2 | uint8 VEHICLE_RESULT_TEMPORARILY_REJECTED = 1 3 | uint8 VEHICLE_RESULT_DENIED = 2 4 | uint8 VEHICLE_RESULT_UNSUPPORTED = 3 5 | uint8 VEHICLE_RESULT_FAILED = 4 6 | 7 | uint16 command 8 | uint8 result 9 | -------------------------------------------------------------------------------- /msg/vehicle_control_mode.msg: -------------------------------------------------------------------------------- 1 | 2 | uint64 timestamp # in microseconds since system start 3 | # is set whenever the writing thread stores new data 4 | 5 | bool flag_armed 6 | 7 | bool flag_external_manual_override_ok # external override non-fatal for system. Only true for fixed wing 8 | 9 | # XXX needs yet to be set by state machine helper 10 | bool flag_system_hil_enabled 11 | 12 | bool flag_control_manual_enabled # true if manual input is mixed in 13 | bool flag_control_auto_enabled # true if onboard autopilot should act 14 | bool flag_control_offboard_enabled # true if offboard control should be used 15 | bool flag_control_rates_enabled # true if rates are stabilized 16 | bool flag_control_attitude_enabled # true if attitude stabilization is mixed in 17 | bool flag_control_force_enabled # true if force control is mixed in 18 | bool flag_control_velocity_enabled # true if horizontal velocity (implies direction) is controlled 19 | bool flag_control_position_enabled # true if position is controlled 20 | bool flag_control_altitude_enabled # true if altitude is controlled 21 | bool flag_control_climb_rate_enabled # true if climb rate is controlled 22 | bool flag_control_termination_enabled # true if flighttermination is enabled 23 | -------------------------------------------------------------------------------- /msg/vehicle_force_setpoint.msg: -------------------------------------------------------------------------------- 1 | # Definition of force (NED) setpoint uORB topic. Typically this can be used 2 | # by a position control app together with an attitude control app. 3 | 4 | 5 | float32 x # in N NED 6 | float32 y # in N NED 7 | float32 z # in N NED 8 | float32 yaw # right-hand rotation around downward axis (rad, equivalent to Tait-Bryan yaw) 9 | -------------------------------------------------------------------------------- /msg/vehicle_global_position.msg: -------------------------------------------------------------------------------- 1 | # Fused global position in WGS84. 2 | # This struct contains global position estimation. It is not the raw GPS 3 | # measurement (@see vehicle_gps_position). This topic is usually published by the position 4 | # estimator, which will take more sources of information into account than just GPS, 5 | # e.g. control inputs of the vehicle in a Kalman-filter implementation. 6 | # 7 | uint64 timestamp # Time of this estimate since system start, (microseconds) 8 | uint64 time_utc_usec # GPS UTC timestamp, (microseconds) 9 | float64 lat # Latitude, (degrees) 10 | float64 lon # Longitude, (degrees) 11 | float32 alt # Altitude AMSL, (meters) 12 | float32 vel_n # North velocity in NED earth-fixed frame, (metres/sec) 13 | float32 vel_e # East velocity in NED earth-fixed frame, (metres/sec) 14 | float32 vel_d # Down velocity in NED earth-fixed frame, (metres/sec) 15 | float32 yaw # Euler yaw angle relative to NED earth-fixed frame, -PI..+PI, (radians) 16 | float32 eph # Standard deviation of horizontal position error, (metres) 17 | float32 epv # Standard deviation of vertical position error, (metres) 18 | float32 terrain_alt # Terrain altitude WGS84, (metres) 19 | bool terrain_alt_valid # Terrain altitude estimate is valid 20 | bool dead_reckoning # True if this position is estimated through dead-reckoning 21 | float32 pressure_alt # Pressure altitude AMSL, (metres) 22 | -------------------------------------------------------------------------------- /msg/vehicle_global_velocity_setpoint.msg: -------------------------------------------------------------------------------- 1 | # Velocity setpoint in NED frame 2 | float32 vx # in m/s NED 3 | float32 vy # in m/s NED 4 | float32 vz # in m/s NED 5 | -------------------------------------------------------------------------------- /msg/vehicle_land_detected.msg: -------------------------------------------------------------------------------- 1 | uint64 timestamp # timestamp of the setpoint 2 | bool landed # true if vehicle is currently landed on the ground 3 | -------------------------------------------------------------------------------- /msg/vehicle_local_position_setpoint.msg: -------------------------------------------------------------------------------- 1 | # Local position setpoint in NED frame 2 | 3 | uint64 timestamp # timestamp of the setpoint 4 | float32 x # in meters NED 5 | float32 y # in meters NED 6 | float32 z # in meters NED 7 | float32 yaw # in radians NED -PI..+PI 8 | float32 vx # in meters/sec 9 | float32 vy # in meters/sec 10 | float32 vz # in meters/sec 11 | float32 acc_x # in meters/(sec*sec) 12 | float32 acc_y # in meters/(sec*sec) 13 | float32 acc_z # in meters/(sec*sec) 14 | -------------------------------------------------------------------------------- /msg/vehicle_rates_setpoint.msg: -------------------------------------------------------------------------------- 1 | ############################################################################################### 2 | # The vehicle_rates_setpoint.msg needs to be in sync with the virtual setpoint messages 3 | # 4 | # Please keep the following messages identical; 5 | # vehicle_rates_setpoint.msg 6 | # mc_virtual_rates_setpoint.msg 7 | # fw_virtual_rates_setpoint.msg 8 | # 9 | ############################################################################################### 10 | 11 | uint64 timestamp # in microseconds since system start 12 | 13 | float32 roll # body angular rates in NED frame 14 | float32 pitch # body angular rates in NED frame 15 | float32 yaw # body angular rates in NED frame 16 | float32 thrust # thrust normalized to 0..1 17 | -------------------------------------------------------------------------------- /msg/vision_position_estimate.msg: -------------------------------------------------------------------------------- 1 | uint32 id # ID of the estimator, commonly the component ID of the incoming message 2 | 3 | uint64 timestamp_boot # time of this estimate, in microseconds since system start 4 | uint64 timestamp_computer # timestamp provided by the companion computer, in us 5 | 6 | float32 x # X position in meters in NED earth-fixed frame 7 | float32 y # Y position in meters in NED earth-fixed frame 8 | float32 z # Z position in meters in NED earth-fixed frame (negative altitude) 9 | 10 | float32 vx # X velocity in meters per second in NED earth-fixed frame 11 | float32 vy # Y velocity in meters per second in NED earth-fixed frame 12 | float32 vz # Z velocity in meters per second in NED earth-fixed frame 13 | 14 | float32[4] q # Estimated attitude as quaternion 15 | -------------------------------------------------------------------------------- /msg/vtol_vehicle_status.msg: -------------------------------------------------------------------------------- 1 | uint64 timestamp # Microseconds since system boot 2 | bool vtol_in_rw_mode # true: vtol vehicle is in rotating wing mode 3 | bool vtol_in_trans_mode 4 | bool vtol_transition_failsafe # vtol in transition failsafe mode 5 | bool fw_permanent_stab # In fw mode stabilize attitude even if in manual mode 6 | float32 airspeed_tot # Estimated airspeed over control surfaces 7 | -------------------------------------------------------------------------------- /msg/wind_estimate.msg: -------------------------------------------------------------------------------- 1 | uint64 timestamp # Microseconds since system boot 2 | float32 windspeed_north # Wind component in north / X direction 3 | float32 windspeed_east # Wind component in east / Y direction 4 | float32 covariance_north # Uncertainty - set to zero (no uncertainty) if not estimated 5 | float32 covariance_east # Uncertainty - set to zero (no uncertainty) if not estimated 6 | -------------------------------------------------------------------------------- /nuttx-configs/aerocore/src/empty.c: -------------------------------------------------------------------------------- 1 | /* 2 | * There are no source files here, but libboard.a can't be empty, so 3 | * we have this empty source file to keep it company. 4 | */ 5 | -------------------------------------------------------------------------------- /nuttx-configs/mindpx-v2/src/empty.c: -------------------------------------------------------------------------------- 1 | /* 2 | * There are no source files here, but libboard.a can't be empty, so 3 | * we have this empty source file to keep it company. 4 | */ 5 | -------------------------------------------------------------------------------- /nuttx-configs/px4-stm32f4discovery/src/empty.c: -------------------------------------------------------------------------------- 1 | /* 2 | * There are no source files here, but libboard.a can't be empty, so 3 | * we have this empty source file to keep it company. 4 | */ 5 | -------------------------------------------------------------------------------- /nuttx-configs/px4fmu-v1/src/empty.c: -------------------------------------------------------------------------------- 1 | /* 2 | * There are no source files here, but libboard.a can't be empty, so 3 | * we have this empty source file to keep it company. 4 | */ 5 | -------------------------------------------------------------------------------- /nuttx-configs/px4fmu-v2/src/empty.c: -------------------------------------------------------------------------------- 1 | /* 2 | * There are no source files here, but libboard.a can't be empty, so 3 | * we have this empty source file to keep it company. 4 | */ 5 | -------------------------------------------------------------------------------- /nuttx-configs/px4fmu-v4/src/empty.c: -------------------------------------------------------------------------------- 1 | /* 2 | * There are no source files here, but libboard.a can't be empty, so 3 | * we have this empty source file to keep it company. 4 | */ 5 | -------------------------------------------------------------------------------- /nuttx-configs/px4io-v1/include/README.txt: -------------------------------------------------------------------------------- 1 | This directory contains header files unique to the PX4IO board. 2 | -------------------------------------------------------------------------------- /nuttx-configs/px4io-v1/src/empty.c: -------------------------------------------------------------------------------- 1 | /* 2 | * There are no source files here, but libboard.a can't be empty, so 3 | * we have this empty source file to keep it company. 4 | */ 5 | -------------------------------------------------------------------------------- /nuttx-configs/px4io-v2/src/empty.c: -------------------------------------------------------------------------------- 1 | /* 2 | * There are no source files here, but libboard.a can't be empty, so 3 | * we have this empty source file to keep it company. 4 | */ 5 | -------------------------------------------------------------------------------- /nuttx-configs/sim/include/README.txt: -------------------------------------------------------------------------------- 1 | This directory contains header files unique to the Linux user-mode platform. 2 | -------------------------------------------------------------------------------- /nuttx-configs/sim/include/board.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3drobotics/PX4Firmware/b1cc118ef6408235abda896cc29f5c75ae256de4/nuttx-configs/sim/include/board.h -------------------------------------------------------------------------------- /posix-configs/SITL/SITL_Diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3drobotics/PX4Firmware/b1cc118ef6408235abda896cc29f5c75ae256de4/posix-configs/SITL/SITL_Diagram.png -------------------------------------------------------------------------------- /posix-configs/SITL/init/rcS_replay_iris: -------------------------------------------------------------------------------- 1 | uorb start 2 | ekf2 start --replay 3 | sleep 0.2 4 | ekf2_replay start replay.px4log 5 | -------------------------------------------------------------------------------- /posix-configs/eagle/200qx/mainapp-calib.config: -------------------------------------------------------------------------------- 1 | uorb start 2 | muorb start 3 | mavlink start -u 14556 4 | sleep 1 5 | mavlink stream -u 14556 -s HIGHRES_IMU -r 50 6 | mavlink stream -u 14556 -s ATTITUDE -r 50 7 | mavlink boot_complete 8 | commander start 9 | -------------------------------------------------------------------------------- /posix-configs/eagle/200qx/mainapp-flight.config: -------------------------------------------------------------------------------- 1 | uorb start 2 | muorb start 3 | mavlink start -u 14556 4 | sleep 1 5 | mavlink stream -u 14556 -s HIGHRES_IMU -r 50 6 | mavlink stream -u 14556 -s ATTITUDE -r 50 7 | mavlink stream -u 14556 -s RC_CHANNELS -r 50 8 | mavlink boot_complete 9 | -------------------------------------------------------------------------------- /posix-configs/eagle/210qc/mainapp-calib.config: -------------------------------------------------------------------------------- 1 | uorb start 2 | muorb start 3 | mavlink start -u 14556 4 | sleep 1 5 | mavlink stream -u 14556 -s HIGHRES_IMU -r 50 6 | mavlink stream -u 14556 -s ATTITUDE -r 50 7 | mavlink boot_complete 8 | commander start 9 | -------------------------------------------------------------------------------- /posix-configs/eagle/210qc/mainapp-flight.config: -------------------------------------------------------------------------------- 1 | uorb start 2 | muorb start 3 | mavlink start -u 14556 4 | sleep 1 5 | mavlink stream -u 14556 -s HIGHRES_IMU -r 50 6 | mavlink stream -u 14556 -s ATTITUDE -r 50 7 | mavlink boot_complete 8 | -------------------------------------------------------------------------------- /posix-configs/eagle/flight/mainapp.config: -------------------------------------------------------------------------------- 1 | uorb start 2 | muorb start 3 | mavlink start -u 14556 -r 1000000 4 | sleep 1 5 | mavlink stream -u 14556 -s HIGHRES_IMU -r 50 6 | mavlink stream -u 14556 -s ATTITUDE -r 50 7 | mavlink boot_complete 8 | sdlog2 start -r 100 -e -t -a 9 | -------------------------------------------------------------------------------- /posix-configs/eagle/flight/px4.config: -------------------------------------------------------------------------------- 1 | uorb start 2 | qshell start 3 | param set SYS_AUTOSTART 4001 4 | gps start -d /dev/tty-4 5 | sleep 1 6 | param set MAV_TYPE 2 7 | df_mpu9250_wrapper start 8 | df_bmp280_wrapper start 9 | df_hmc5883_wrapper start 10 | df_trone_wrapper start 11 | sensors start 12 | commander start 13 | ekf2 start 14 | land_detector start multicopter 15 | mc_pos_control start 16 | mc_att_control start 17 | uart_esc start -d /dev/tty-2 18 | sleep 1 19 | list_devices 20 | list_files 21 | list_tasks 22 | list_topics 23 | -------------------------------------------------------------------------------- /posix-configs/eagle/hil/mainapphil.config: -------------------------------------------------------------------------------- 1 | uorb start 2 | muorb start 3 | mavlink start -u 14556 4 | sleep 1 5 | mavlink stream -u 14556 -s HIGHRES_IMU -r 50 6 | mavlink stream -u 14556 -s ATTITUDE -r 50 7 | mavlink boot_complete 8 | simulator start -p 9 | -------------------------------------------------------------------------------- /posix-configs/rpi2/init/rcS_navio: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3drobotics/PX4Firmware/b1cc118ef6408235abda896cc29f5c75ae256de4/posix-configs/rpi2/init/rcS_navio -------------------------------------------------------------------------------- /src/drivers/batt_smbus/module.mk: -------------------------------------------------------------------------------- 1 | # 2 | # driver for SMBus smart batteries 3 | # 4 | 5 | MODULE_COMMAND = batt_smbus 6 | SRCS = batt_smbus.cpp 7 | 8 | MAXOPTIMIZATION = -Os 9 | -------------------------------------------------------------------------------- /src/drivers/boards/aerocore/module.mk: -------------------------------------------------------------------------------- 1 | # 2 | # Board-specific startup code for the AeroCore 3 | # 4 | 5 | SRCS = aerocore_init.c \ 6 | aerocore_pwm_servo.c \ 7 | aerocore_spi.c \ 8 | aerocore_led.c 9 | 10 | MAXOPTIMIZATION = -Os 11 | -------------------------------------------------------------------------------- /src/drivers/boards/px4-stm32f4discovery/module.mk: -------------------------------------------------------------------------------- 1 | # 2 | # Board-specific startup code for the PX4-STM32F4Discovery 3 | # 4 | 5 | SRCS = px4discovery_init.c \ 6 | px4discovery_usb.c \ 7 | px4discovery_led.c 8 | -------------------------------------------------------------------------------- /src/drivers/boards/px4fmu-v1/module.mk: -------------------------------------------------------------------------------- 1 | # 2 | # Board-specific startup code for the PX4FMU 3 | # 4 | 5 | SRCS = px4fmu_can.c \ 6 | px4fmu_init.c \ 7 | px4fmu_timer_config.c \ 8 | px4fmu_spi.c \ 9 | px4fmu_usb.c \ 10 | px4fmu_led.c 11 | 12 | MAXOPTIMIZATION = -Os 13 | -------------------------------------------------------------------------------- /src/drivers/boards/px4fmu-v2/module.mk: -------------------------------------------------------------------------------- 1 | # 2 | # Board-specific startup code for the PX4FMUv2 3 | # 4 | 5 | SRCS = px4fmu_can.c \ 6 | px4fmu2_init.c \ 7 | px4fmu_timer_config.c \ 8 | px4fmu_spi.c \ 9 | px4fmu_usb.c \ 10 | px4fmu2_led.c 11 | 12 | MAXOPTIMIZATION = -Os 13 | -------------------------------------------------------------------------------- /src/drivers/boards/px4fmu-v4/module.mk: -------------------------------------------------------------------------------- 1 | # 2 | # Board-specific startup code for the PX4FMUv2 3 | # 4 | 5 | SRCS = px4fmu_can.c \ 6 | px4fmu_init.c \ 7 | px4fmu_timer_config.c \ 8 | px4fmu_spi.c \ 9 | px4fmu_usb.c \ 10 | px4fmu_led.c 11 | 12 | MAXOPTIMIZATION = -Os 13 | -------------------------------------------------------------------------------- /src/drivers/boards/px4io-v1/module.mk: -------------------------------------------------------------------------------- 1 | # 2 | # Board-specific startup code for the PX4IO 3 | # 4 | 5 | SRCS = px4io_init.c \ 6 | px4io_timer_config.c 7 | 8 | MAXOPTIMIZATION = -Os 9 | -------------------------------------------------------------------------------- /src/drivers/boards/px4io-v2/module.mk: -------------------------------------------------------------------------------- 1 | # 2 | # Board-specific startup code for the PX4IOv2 3 | # 4 | 5 | SRCS = px4io_init.c \ 6 | px4io_timer_config.c 7 | 8 | MAXOPTIMIZATION = -Os 9 | -------------------------------------------------------------------------------- /src/drivers/boards/sim/board_config.h: -------------------------------------------------------------------------------- 1 | #define UDID_START 0x1FFF7A10 2 | 3 | /* 4 | * I2C busses 5 | */ 6 | #define PX4_I2C_BUS_ESC 1 7 | #define PX4_SIM_BUS_TEST 2 8 | #define PX4_I2C_BUS_EXPANSION 3 9 | #define PX4_I2C_BUS_LED 3 10 | 11 | #define PX4_I2C_OBDEV_LED 0x55 12 | 13 | #define STM32_SYSMEM_UID "SIMULATIONID" 14 | -------------------------------------------------------------------------------- /src/drivers/irlock/module.mk: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile to build the IRLock driver. 3 | # 4 | 5 | MODULE_COMMAND = irlock 6 | 7 | SRCS = irlock.cpp 8 | 9 | MAXOPTIMIZATION = -Os 10 | -------------------------------------------------------------------------------- /src/drivers/l3gd20/module.mk: -------------------------------------------------------------------------------- 1 | # 2 | # LSM303D accel/mag driver 3 | # 4 | 5 | MODULE_COMMAND = l3gd20 6 | SRCS = l3gd20.cpp 7 | 8 | MODULE_STACKSIZE = 1200 9 | 10 | EXTRACXXFLAGS = -Weffc++ 11 | 12 | MAXOPTIMIZATION = -Os 13 | -------------------------------------------------------------------------------- /src/drivers/lsm303d/module.mk: -------------------------------------------------------------------------------- 1 | # 2 | # LSM303D accel/mag driver 3 | # 4 | 5 | MODULE_COMMAND = lsm303d 6 | SRCS = lsm303d.cpp 7 | 8 | MODULE_STACKSIZE = 1200 9 | 10 | EXTRACXXFLAGS = -Weffc++ 11 | 12 | MAXOPTIMIZATION = -Os 13 | -------------------------------------------------------------------------------- /src/drivers/md25/BlockSysIdent.cpp: -------------------------------------------------------------------------------- 1 | #include "BlockSysIdent.hpp" 2 | 3 | BlockSysIdent::BlockSysIdent() : 4 | Block(NULL, "SYSID"), 5 | _freq(this, "FREQ"), 6 | _ampl(this, "AMPL") 7 | { 8 | } 9 | -------------------------------------------------------------------------------- /src/drivers/md25/BlockSysIdent.hpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | class BlockSysIdent : public control::Block 5 | { 6 | public: 7 | BlockSysIdent(); 8 | private: 9 | control::BlockParam _freq; 10 | control::BlockParam _ampl; 11 | }; 12 | -------------------------------------------------------------------------------- /src/drivers/oreoled/module.mk: -------------------------------------------------------------------------------- 1 | # 2 | # Oreo LED driver 3 | # 4 | 5 | MODULE_COMMAND = oreoled 6 | SRCS = oreoled.cpp 7 | 8 | MAXOPTIMIZATION = -Os 9 | -------------------------------------------------------------------------------- /src/drivers/oreoled/oreoled_bootloader/module.mk: -------------------------------------------------------------------------------- 1 | # 2 | # OreoLED Bootloader Drivers 3 | # 4 | 5 | MODULE_COMMAND = oreoledbl 6 | SRCS = oreoled_bootloader.cpp \ 7 | oreoled_bootloader_avr.cpp 8 | 9 | MAXOPTIMIZATION = -Os 10 | -------------------------------------------------------------------------------- /src/drivers/pca8574/module.mk: -------------------------------------------------------------------------------- 1 | # 2 | # PCA8574 driver for RGB LED 3 | # 4 | 5 | MODULE_COMMAND = pca8574 6 | SRCS = pca8574.cpp 7 | 8 | MAXOPTIMIZATION = -Os 9 | -------------------------------------------------------------------------------- /src/drivers/px4fmu/module.mk: -------------------------------------------------------------------------------- 1 | # 2 | # Interface driver for the PX4FMU board 3 | # 4 | 5 | MODULE_COMMAND = fmu 6 | SRCS = fmu.cpp \ 7 | ../../lib/rc/sbus.c \ 8 | ../../lib/rc/dsm.c \ 9 | ../../lib/rc/st24.c \ 10 | ../../lib/rc/sumd.c \ 11 | px4fmu_params.c 12 | 13 | MODULE_STACKSIZE = 1200 14 | 15 | EXTRACXXFLAGS = -Weffc++ 16 | 17 | MAXOPTIMIZATION = -Os 18 | -------------------------------------------------------------------------------- /src/drivers/rgbled/module.mk: -------------------------------------------------------------------------------- 1 | # 2 | # TCA62724FMG driver for RGB LED 3 | # 4 | 5 | MODULE_COMMAND = rgbled 6 | 7 | SRCS = rgbled.cpp 8 | 9 | MAXOPTIMIZATION = -Os 10 | -------------------------------------------------------------------------------- /src/firmware/nuttx/gdbinit.in: -------------------------------------------------------------------------------- 1 | target extended ${DEBUG_PORT} 2 | monitor swdp_scan 3 | attach 1 4 | monitor vector_catch disable hard 5 | set mem inaccessible-by-default off 6 | set print pretty 7 | source ${CMAKE_SOURCE_DIR}/Debug/PX4 8 | -------------------------------------------------------------------------------- /src/lib/mathlib/math/nasa_rotation_def.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3drobotics/PX4Firmware/b1cc118ef6408235abda896cc29f5c75ae256de4/src/lib/mathlib/math/nasa_rotation_def.pdf -------------------------------------------------------------------------------- /src/mainpage.dox: -------------------------------------------------------------------------------- 1 | /** 2 | \mainpage PX4 Autopilot Flight Control Stack and Middleware 3 | 4 | This software repository offers a middleware for micro aerial vehicles capable of running efficiently on a 168 MHz Cortex M4F processor and a state of the art flight control stack supporting multicopter and fixed wing aircraft. It can be easily used for experimental air (and ground) vehicles as well, as the application on a spherical blimp shows. 5 | 6 | http://pixhawk.org 7 | 8 | 9 | */ -------------------------------------------------------------------------------- /src/modules/attitude_estimator_ekf/codegen/AttitudeEKF.h: -------------------------------------------------------------------------------- 1 | /* 2 | * AttitudeEKF.h 3 | * 4 | * Code generation for function 'AttitudeEKF' 5 | * 6 | * C source code generated on: Thu Aug 21 11:17:28 2014 7 | * 8 | */ 9 | 10 | #ifndef __ATTITUDEEKF_H__ 11 | #define __ATTITUDEEKF_H__ 12 | /* Include files */ 13 | #include 14 | #include 15 | #include 16 | #include 17 | 18 | #include "rtwtypes.h" 19 | #include "AttitudeEKF_types.h" 20 | 21 | /* Function Declarations */ 22 | extern void AttitudeEKF(unsigned char approx_prediction, unsigned char use_inertia_matrix, const unsigned char zFlag[3], float dt, const float z[9], float q_rotSpeed, float q_rotAcc, float q_acc, float q_mag, float r_gyro, float r_accel, float r_mag, const float J[9], float xa_apo[12], float Pa_apo[144], float Rot_matrix[9], float eulerAngles[3], float debugOutput[4]); 23 | extern void AttitudeEKF_initialize(void); 24 | extern void AttitudeEKF_terminate(void); 25 | #endif 26 | /* End of code generation (AttitudeEKF.h) */ 27 | -------------------------------------------------------------------------------- /src/modules/attitude_estimator_ekf/codegen/AttitudeEKF_types.h: -------------------------------------------------------------------------------- 1 | /* 2 | * AttitudeEKF_types.h 3 | * 4 | * Code generation for function 'AttitudeEKF' 5 | * 6 | * C source code generated on: Thu Aug 21 11:17:28 2014 7 | * 8 | */ 9 | 10 | #ifndef __ATTITUDEEKF_TYPES_H__ 11 | #define __ATTITUDEEKF_TYPES_H__ 12 | 13 | /* Include files */ 14 | #include "rtwtypes.h" 15 | 16 | #endif 17 | /* End of code generation (AttitudeEKF_types.h) */ 18 | -------------------------------------------------------------------------------- /src/modules/controllib/test_params.c: -------------------------------------------------------------------------------- 1 | #include 2 | // WARNING: 3 | // do not changes these unless 4 | // you want to recompute the 5 | // answers for all of the unit tests 6 | 7 | PARAM_DEFINE_FLOAT(TEST_MIN, -1.0f); 8 | PARAM_DEFINE_FLOAT(TEST_MAX, 1.0f); 9 | PARAM_DEFINE_FLOAT(TEST_TRIM, 0.5f); 10 | PARAM_DEFINE_FLOAT(TEST_HP, 10.0f); 11 | PARAM_DEFINE_FLOAT(TEST_LP, 10.0f); 12 | 13 | PARAM_DEFINE_FLOAT(TEST_P, 0.2f); 14 | 15 | PARAM_DEFINE_FLOAT(TEST_I, 0.1f); 16 | PARAM_DEFINE_FLOAT(TEST_I_MAX, 1.0f); 17 | 18 | PARAM_DEFINE_FLOAT(TEST_D, 0.01f); 19 | PARAM_DEFINE_FLOAT(TEST_D_LP, 10.0f); 20 | 21 | PARAM_DEFINE_FLOAT(TEST_MEAN, 1.0f); 22 | PARAM_DEFINE_FLOAT(TEST_DEV, 2.0f); 23 | -------------------------------------------------------------------------------- /src/modules/land_detector/module.mk: -------------------------------------------------------------------------------- 1 | # 2 | # Land detector 3 | # 4 | 5 | MODULE_COMMAND = land_detector 6 | 7 | SRCS = land_detector_main.cpp \ 8 | land_detector_params.c \ 9 | LandDetector.cpp \ 10 | MulticopterLandDetector.cpp \ 11 | FixedwingLandDetector.cpp 12 | 13 | EXTRACXXFLAGS = -Weffc++ -Os 14 | 15 | # Startup handler, the actual app stack size is 16 | # in the task_spawn command 17 | MODULE_STACKSIZE = 1200 18 | -------------------------------------------------------------------------------- /src/modules/local_position_estimator/fault_table.py: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | from __future__ import print_function 3 | import pylab as pl 4 | import scipy.optimize 5 | from scipy.stats import chi2 6 | 7 | for fa_rate in 1.0/pl.array([1e1, 1e2, 1e4, 1e6, 1e9]): 8 | print(fa_rate) 9 | for df in range(1,7): 10 | f_eq = lambda x: ((1- fa_rate) - chi2.cdf(x, df))**2 11 | res = scipy.optimize.minimize(f_eq, df) 12 | assert res['success'] 13 | print('\t', res.x[0]) 14 | -------------------------------------------------------------------------------- /src/modules/mavlink/.gitignore: -------------------------------------------------------------------------------- 1 | include 2 | mavlink-* 3 | pymavlink-* 4 | -------------------------------------------------------------------------------- /src/modules/mavlink/mavlink_tests/mavlink_ftp_test_data.py: -------------------------------------------------------------------------------- 1 | import sys 2 | print 'Arguments: file - ' + sys.argv[1] + ', length - ' + sys.argv[2] 3 | file = open(sys.argv[1], 'w') 4 | for i in range(int(sys.argv[2])): 5 | b = bytearray([i & 0xFF]) 6 | file.write(b) 7 | file.close() -------------------------------------------------------------------------------- /src/modules/position_estimator_inav/inertial_filter.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * inertial_filter.c 3 | * 4 | * Copyright (C) 2013 Anton Babushkin. All rights reserved. 5 | * Author: Anton Babushkin 6 | */ 7 | 8 | #include 9 | 10 | #include "inertial_filter.h" 11 | 12 | void inertial_filter_predict(float dt, float x[2], float acc) 13 | { 14 | if (isfinite(dt)) { 15 | if (!isfinite(acc)) { 16 | acc = 0.0f; 17 | } 18 | 19 | x[0] += x[1] * dt + acc * dt * dt / 2.0f; 20 | x[1] += acc * dt; 21 | } 22 | } 23 | 24 | void inertial_filter_correct(float e, float dt, float x[2], int i, float w) 25 | { 26 | if (isfinite(e) && isfinite(w) && isfinite(dt)) { 27 | float ewdt = e * w * dt; 28 | x[i] += ewdt; 29 | 30 | if (i == 0) { 31 | x[1] += w * ewdt; 32 | } 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /src/modules/position_estimator_inav/inertial_filter.h: -------------------------------------------------------------------------------- 1 | /* 2 | * inertial_filter.h 3 | * 4 | * Copyright (C) 2013 Anton Babushkin. All rights reserved. 5 | * Author: Anton Babushkin 6 | */ 7 | 8 | #include 9 | #include 10 | 11 | void inertial_filter_predict(float dt, float x[2], float acc); 12 | 13 | void inertial_filter_correct(float e, float dt, float x[2], int i, float w); 14 | -------------------------------------------------------------------------------- /src/modules/px4iofirmware/module.mk: -------------------------------------------------------------------------------- 1 | 2 | SRCS = adc.c \ 3 | controls.c \ 4 | px4io.c \ 5 | registers.c \ 6 | safety.c \ 7 | ../../lib/rc/sbus.c \ 8 | ../../lib/rc/dsm.c \ 9 | ../systemlib/up_cxxinitialize.c \ 10 | ../systemlib/perf_counter.c \ 11 | mixer.cpp \ 12 | ../systemlib/mixer/mixer.cpp \ 13 | ../systemlib/mixer/mixer_group.cpp \ 14 | ../systemlib/mixer/mixer_simple.cpp \ 15 | ../systemlib/pwm_limit/pwm_limit.c \ 16 | ../../lib/rc/st24.c \ 17 | ../../lib/rc/sumd.c 18 | 19 | ifeq ($(BOARD),px4io-v1) 20 | SRCS += i2c.c 21 | endif 22 | ifeq ($(BOARD),px4io-v2) 23 | SRCS += serial.c \ 24 | ../systemlib/hx_stream.c 25 | endif 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /src/modules/segway/BlockSegwayController.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | 6 | using namespace control; 7 | 8 | class BlockSegwayController : public control::BlockUorbEnabledAutopilot 9 | { 10 | public: 11 | BlockSegwayController() : 12 | BlockUorbEnabledAutopilot(NULL, "SEG"), 13 | th2v(this, "TH2V"), 14 | q2v(this, "Q2V"), 15 | _attPoll(), 16 | _timeStamp(0) 17 | { 18 | _attPoll.fd = _att.getHandle(); 19 | _attPoll.events = POLLIN; 20 | } 21 | void update(); 22 | private: 23 | enum {CH_LEFT, CH_RIGHT}; 24 | BlockPI th2v; 25 | BlockP q2v; 26 | px4_pollfd_struct_t _attPoll; 27 | uint64_t _timeStamp; 28 | }; 29 | 30 | -------------------------------------------------------------------------------- /src/modules/segway/params.c: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | // 16 is max name length 4 | PARAM_DEFINE_FLOAT(SEG_TH2V_P, 10.0f); // pitch to voltage 5 | PARAM_DEFINE_FLOAT(SEG_TH2V_I, 0.0f); // pitch integral to voltage 6 | PARAM_DEFINE_FLOAT(SEG_TH2V_I_MAX, 0.0f); // integral limiter 7 | PARAM_DEFINE_FLOAT(SEG_Q2V, 1.0f); // pitch rate to voltage 8 | 9 | -------------------------------------------------------------------------------- /src/modules/uavcan/.gitignore: -------------------------------------------------------------------------------- 1 | ./dsdlc_generated/ 2 | -------------------------------------------------------------------------------- /src/platforms/common/module.mk: -------------------------------------------------------------------------------- 1 | # 2 | # Common OS porting APIs 3 | # 4 | 5 | SRCS = px4_getopt.c 6 | 7 | -------------------------------------------------------------------------------- /src/platforms/empty.c: -------------------------------------------------------------------------------- 1 | /* 2 | * This is an empty C source file, used when building default firmware configurations. 3 | */ 4 | -------------------------------------------------------------------------------- /src/platforms/posix/drivers/accelsim/module.mk: -------------------------------------------------------------------------------- 1 | # 2 | # Simulated accel/mag driver 3 | # 4 | 5 | MODULE_COMMAND = accelsim 6 | SRCS = accelsim.cpp 7 | 8 | -------------------------------------------------------------------------------- /src/platforms/posix/include/arch/board/board.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3drobotics/PX4Firmware/b1cc118ef6408235abda896cc29f5c75ae256de4/src/platforms/posix/include/arch/board/board.h -------------------------------------------------------------------------------- /src/platforms/posix/include/board_config.h: -------------------------------------------------------------------------------- 1 | #define UDID_START 0x1FFF7A10 2 | 3 | /* 4 | * I2C busses 5 | */ 6 | #define PX4_I2C_BUS_ESC 1 7 | #define PX4_SIM_BUS_TEST 2 8 | #define PX4_I2C_BUS_EXPANSION 3 9 | #define PX4_I2C_BUS_LED 3 10 | 11 | #define PX4_I2C_OBDEV_LED 0x55 12 | 13 | #define STM32_SYSMEM_UID "SIMULATIONID" 14 | -------------------------------------------------------------------------------- /src/platforms/posix/include/px4_platform_types.h: -------------------------------------------------------------------------------- 1 | #ifdef __PX4_QURT 2 | #include 3 | #endif 4 | -------------------------------------------------------------------------------- /src/platforms/posix/px4_layer/px4_log.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #ifdef __PX4_POSIX 4 | #include 5 | #endif 6 | 7 | __EXPORT int __px4_log_level_current = PX4_LOG_LEVEL_AT_RUN_TIME; 8 | 9 | __EXPORT const char *__px4_log_level_str[_PX4_LOG_LEVEL_PANIC + 1] = { "INFO", "DEBUG", "WARN", "ERROR", "PANIC" }; 10 | 11 | void px4_backtrace() 12 | { 13 | #ifdef __PX4_POSIX 14 | void *buffer[10]; 15 | char **callstack; 16 | int bt_size; 17 | int idx; 18 | 19 | bt_size = backtrace(buffer, 10); 20 | callstack = backtrace_symbols(buffer, bt_size); 21 | 22 | PX4_INFO("Backtrace: %d", bt_size); 23 | 24 | for (idx = 0; idx < bt_size; idx++) { 25 | PX4_INFO("%s", callstack[idx]); 26 | } 27 | 28 | free(callstack); 29 | #endif 30 | } 31 | -------------------------------------------------------------------------------- /src/platforms/px4_common.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #ifdef __PX4_QURT 4 | #include 5 | size_t strnlen(const char *s, size_t maxlen); 6 | 7 | #endif 8 | -------------------------------------------------------------------------------- /src/platforms/px4_spi.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #ifdef __PX4_NUTTX 4 | #include 5 | #elif defined(__PX4_POSIX) 6 | enum spi_dev_e { 7 | SPIDEV_NONE = 0, /* Not a valid value */ 8 | SPIDEV_MMCSD, /* Select SPI MMC/SD device */ 9 | SPIDEV_FLASH, /* Select SPI FLASH device */ 10 | SPIDEV_ETHERNET, /* Select SPI ethernet device */ 11 | SPIDEV_DISPLAY, /* Select SPI LCD/OLED display device */ 12 | SPIDEV_WIRELESS, /* Select SPI Wireless device */ 13 | SPIDEV_TOUCHSCREEN, /* Select SPI touchscreen device */ 14 | SPIDEV_EXPANDER, /* Select SPI I/O expander device */ 15 | SPIDEV_MUX, /* Select SPI multiplexer device */ 16 | SPIDEV_AUDIO_DATA, /* Select SPI audio codec device data port */ 17 | SPIDEV_AUDIO_CTRL, /* Select SPI audio codec device control port */ 18 | }; 19 | 20 | /* Certain SPI devices may required different clocking modes */ 21 | 22 | enum spi_mode_e { 23 | SPIDEV_MODE0 = 0, /* CPOL=0 CHPHA=0 */ 24 | SPIDEV_MODE1, /* CPOL=0 CHPHA=1 */ 25 | SPIDEV_MODE2, /* CPOL=1 CHPHA=0 */ 26 | SPIDEV_MODE3 /* CPOL=1 CHPHA=1 */ 27 | }; 28 | struct spi_dev_s { 29 | int unused; 30 | }; 31 | #else 32 | #endif 33 | -------------------------------------------------------------------------------- /src/platforms/px4_time.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | 6 | #if defined(__PX4_LINUX) || defined(__PX4_NUTTX) 7 | 8 | #define px4_clock_gettime clock_gettime 9 | #define px4_clock_settime clock_settime 10 | 11 | #elif defined(__PX4_DARWIN) 12 | 13 | __BEGIN_DECLS 14 | 15 | #define clockid_t unsigned 16 | #define CLOCK_REALTIME 0 17 | 18 | int px4_clock_gettime(clockid_t clk_id, struct timespec *tp); 19 | int px4_clock_settime(clockid_t clk_id, struct timespec *tp); 20 | 21 | __EXPORT unsigned int sleep(unsigned int sec); 22 | 23 | __END_DECLS 24 | 25 | #elif defined(__PX4_QURT) 26 | 27 | #include 28 | 29 | __BEGIN_DECLS 30 | 31 | #if 0 32 | #if !defined(__cplusplus) 33 | struct timespec { 34 | time_t tv_sec; 35 | long tv_nsec; 36 | }; 37 | #endif 38 | #endif 39 | int px4_clock_gettime(clockid_t clk_id, struct timespec *tp); 40 | int px4_clock_settime(clockid_t clk_id, struct timespec *tp); 41 | 42 | __EXPORT unsigned int sleep(unsigned int sec); 43 | 44 | __END_DECLS 45 | #endif 46 | -------------------------------------------------------------------------------- /src/platforms/qurt/include/arch/board/board.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3drobotics/PX4Firmware/b1cc118ef6408235abda896cc29f5c75ae256de4/src/platforms/qurt/include/arch/board/board.h -------------------------------------------------------------------------------- /src/platforms/qurt/include/board_config.h: -------------------------------------------------------------------------------- 1 | #define UDID_START 0x1FFF7A10 2 | 3 | /* 4 | * I2C busses 5 | */ 6 | #define PX4_I2C_BUS_ESC 1 7 | #define PX4_SIM_BUS_TEST 2 8 | #define PX4_I2C_BUS_EXPANSION 3 9 | #define PX4_I2C_BUS_LED 3 10 | 11 | #define PX4_I2C_OBDEV_LED 0x55 12 | -------------------------------------------------------------------------------- /src/platforms/qurt/include/sys/ioctl.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #define _IO(x,y) (x+y) 4 | -------------------------------------------------------------------------------- /src/platforms/ros/eigen_math.h: -------------------------------------------------------------------------------- 1 | /* 2 | * eigen_math.h 3 | * 4 | * Created on: Aug 25, 2014 5 | * Author: roman 6 | */ 7 | 8 | #ifndef EIGEN_MATH_H_ 9 | #define EIGEN_MATH_H_ 10 | 11 | 12 | struct eigen_matrix_instance { 13 | int numRows; 14 | int numCols; 15 | float *pData; 16 | }; 17 | 18 | 19 | #endif /* EIGEN_MATH_H_ */ 20 | -------------------------------------------------------------------------------- /src/platforms/ros/nodes/README.md: -------------------------------------------------------------------------------- 1 | # PX4 Nodes 2 | 3 | This directory contains several small ROS nodes which are intended to run alongside the PX4 multi-platform nodes in 4 | ROS. They act as a bridge between the PX4 specific topics and the ROS topics. 5 | 6 | ## Joystick Input 7 | 8 | You will need to install the ros joystick packages 9 | See http://wiki.ros.org/joy/Tutorials/ConfiguringALinuxJoystick 10 | 11 | ### Arch Linux 12 | ```sh 13 | yaourt -Sy ros-indigo-joystick-drivers --noconfirm 14 | ``` 15 | check joystick 16 | ```sh 17 | ls /dev/input/ 18 | ls -l /dev/input/js0 19 | ``` 20 | (replace 0 by the number you find with the first command) 21 | 22 | make sure the joystick is accessible by the `input` group and that your user is in the `input` group 23 | -------------------------------------------------------------------------------- /src/systemcmds/mtd/module.mk: -------------------------------------------------------------------------------- 1 | # 2 | # RAMTRON file system driver 3 | # 4 | 5 | MODULE_COMMAND = mtd 6 | SRCS = mtd.c 24xxxx_mtd.c 7 | 8 | MAXOPTIMIZATION = -Os 9 | 10 | EXTRACFLAGS = -Wno-error 11 | 12 | -------------------------------------------------------------------------------- /src/systemcmds/tests/module.mk: -------------------------------------------------------------------------------- 1 | # 2 | # Assorted tests and the like 3 | # 4 | 5 | MODULE_COMMAND = tests 6 | MODULE_STACKSIZE = 60000 7 | MAXOPTIMIZATION = -O0 8 | 9 | SRCS = test_adc.c \ 10 | test_bson.c \ 11 | test_float.c \ 12 | test_gpio.c \ 13 | test_hott_telemetry.c \ 14 | test_hrt.c \ 15 | test_int.c \ 16 | test_jig_voltages.c \ 17 | test_led.c \ 18 | test_sensors.c \ 19 | test_servo.c \ 20 | test_sleep.c \ 21 | test_uart_baudchange.c \ 22 | test_uart_console.c \ 23 | test_uart_loopback.c \ 24 | test_uart_send.c \ 25 | test_mixer.cpp \ 26 | test_mathlib.cpp \ 27 | test_file.c \ 28 | test_file2.c \ 29 | tests_main.c \ 30 | test_param.c \ 31 | test_ppm_loopback.c \ 32 | test_rc.c \ 33 | test_conv.cpp \ 34 | test_mount.c \ 35 | test_eigen.cpp 36 | 37 | ifeq ($(PX4_TARGET_OS), nuttx) 38 | SRCS += test_time.c 39 | 40 | EXTRACXXFLAGS = -Wframe-larger-than=6000 41 | else 42 | EXTRACXXFLAGS = 43 | endif 44 | 45 | EXTRACXXFLAGS += -Wno-float-equal 46 | 47 | # Flag is only valid for GCC, not clang 48 | ifneq ($(USE_GCC), 0) 49 | EXTRACXXFLAGS += -Wno-double-promotion -Wno-error=logical-op 50 | endif 51 | 52 | -------------------------------------------------------------------------------- /unittests/.gitignore: -------------------------------------------------------------------------------- 1 | ./obj/* 2 | gtest_main.a 3 | dsm_test 4 | mixer_test 5 | sf0x_test 6 | sbus2_test 7 | autodeclination_test 8 | rc_input_test 9 | conversion_test 10 | param_test 11 | *.a 12 | sample_unittest 13 | CMakeCache.txt 14 | CMakeFiles 15 | CTestTestfile.cmake 16 | cmake_install.cmake 17 | Makefile 18 | .ninja_deps 19 | .ninja_log 20 | build.ninja 21 | rules.ninja 22 | 23 | -------------------------------------------------------------------------------- /unittests/arch/board/board.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3drobotics/PX4Firmware/b1cc118ef6408235abda896cc29f5c75ae256de4/unittests/arch/board/board.h -------------------------------------------------------------------------------- /unittests/autodeclination_test.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | 13 | #include "gtest/gtest.h" 14 | 15 | TEST(AutoDeclinationTest, AutoDeclination) 16 | { 17 | ASSERT_NEAR(get_mag_declination(47.0, 8.0), 0.6, 0.5) << "declination differs more than 1 degree"; 18 | } 19 | -------------------------------------------------------------------------------- /unittests/board_config.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3drobotics/PX4Firmware/b1cc118ef6408235abda896cc29f5c75ae256de4/unittests/board_config.h -------------------------------------------------------------------------------- /unittests/conversion_test.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include "../../src/systemcmds/tests/tests.h" 4 | 5 | #include "gtest/gtest.h" 6 | 7 | TEST(ConversionTest, quad_w_main) 8 | { 9 | ASSERT_EQ(test_conv(0, NULL), 0) << "Conversion test failed"; 10 | } 11 | -------------------------------------------------------------------------------- /unittests/data/fit_linear_voltage.m: -------------------------------------------------------------------------------- 1 | close all; 2 | clear all; 3 | M = importdata('px4io_v1.3.csv'); 4 | voltage = M.data(:, 1); 5 | counts = M.data(:, 2); 6 | plot(counts, voltage, 'b*-', 'LineWidth', 2, 'MarkerSize', 15); 7 | coeffs = polyfit(counts, voltage, 1); 8 | fittedC = linspace(min(counts), max(counts), 500); 9 | fittedV = polyval(coeffs, fittedC); 10 | hold on 11 | plot(fittedC, fittedV, 'r-', 'LineWidth', 3); 12 | 13 | slope = coeffs(1) 14 | y_intersection = coeffs(2) 15 | -------------------------------------------------------------------------------- /unittests/data/px4io_v1.3.csv: -------------------------------------------------------------------------------- 1 | voltage, counts 2 | 4.3, 950 3 | 4.4, 964 4 | 4.5, 986 5 | 4.6, 1009 6 | 4.7, 1032 7 | 4.8, 1055 8 | 4.9, 1078 9 | 5.0, 1101 10 | 5.2, 1124 11 | 5.3, 1148 12 | 5.4, 1171 13 | 5.5, 1195 14 | 6.0, 1304 15 | 6.1, 1329 16 | 6.2, 1352 17 | 7.0, 1517 18 | 7.1, 1540 19 | 7.2, 1564 20 | 7.3, 1585 21 | 7.4, 1610 22 | 7.5, 1636 23 | 8.0, 1728 24 | 8.1, 1752 25 | 8.2, 1755 26 | 8.3, 1798 27 | 8.4, 1821 28 | 9.0, 1963 29 | 9.1, 1987 30 | 9.3, 2010 31 | 9.4, 2033 32 | 10.0, 2174 33 | 10.1, 2198 34 | 10.2, 2221 35 | 10.3, 2245 36 | 10.4, 2268 37 | 11.0, 2385 38 | 11.1, 2409 39 | 11.2, 2432 40 | 11.3, 2456 41 | 11.4, 2480 42 | 11.5, 2502 43 | 11.6, 2526 44 | 11.7, 2550 45 | 11.8, 2573 46 | 11.9, 2597 47 | 12.0, 2621 48 | 12.1, 2644 49 | 12.3, 2668 50 | 12.4, 2692 51 | 12.5, 2716 52 | 12.6, 2737 53 | 12.7, 2761 54 | 13.0, 2832 55 | 13.5, 2950 56 | 13.6, 2973 57 | 14.1, 3068 58 | 14.2, 3091 59 | 14.7, 3209 60 | 15.0, 3280 61 | 15.1, 3304 62 | 15.5, 3374 63 | 15.6, 3397 64 | 15.7, 3420 65 | 16.0, 3492 66 | 16.1, 3514 67 | 16.2, 3538 68 | 16.9, 3680 69 | 17.0, 3704 70 | 17.1, 3728 71 | -------------------------------------------------------------------------------- /unittests/debug.h: -------------------------------------------------------------------------------- 1 | 2 | #pragma once 3 | 4 | #include 5 | #define lowsyslog warnx 6 | #define dbg warnx 7 | 8 | #if !defined(ASSERT) 9 | # define ASSERT(x) assert((x)) 10 | #endif 11 | -------------------------------------------------------------------------------- /unittests/hrt.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | 6 | hrt_abstime hrt_absolute_time() 7 | { 8 | struct timeval te; 9 | gettimeofday(&te, NULL); // get current time 10 | hrt_abstime us = static_cast(te.tv_sec) * 1e6 + te.tv_usec; // caculate us 11 | return us; 12 | } 13 | 14 | hrt_abstime hrt_elapsed_time(const volatile hrt_abstime *then) 15 | { 16 | // not thread safe 17 | return hrt_absolute_time() - *then; 18 | } 19 | -------------------------------------------------------------------------------- /unittests/mixer_test.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include "../../src/systemcmds/tests/tests.h" 4 | 5 | #include "gtest/gtest.h" 6 | 7 | 8 | TEST(MixerTest, Mixer) 9 | { 10 | const char *args[] = {"empty", "../ROMFS/px4fmu_common/mixers/IO_pass.mix", "../ROMFS/px4fmu_common/mixers/quad_w.main.mix"}; 11 | ASSERT_EQ(test_mixer(3, (char **)args), 0) << "IO_pass.mix failed"; 12 | } 13 | -------------------------------------------------------------------------------- /unittests/nuttx/config.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3drobotics/PX4Firmware/b1cc118ef6408235abda896cc29f5c75ae256de4/unittests/nuttx/config.h -------------------------------------------------------------------------------- /unittests/uorb_stub.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | //#include "gmock/gmock.h" 4 | 5 | #include "uORB/uORB.h" 6 | 7 | /****************************************** 8 | * uORB stubs (incomplete) 9 | * 10 | * TODO: use googlemock 11 | ******************************************/ 12 | 13 | orb_advert_t orb_advertise(const struct orb_metadata *meta, const void *data) 14 | { 15 | return (orb_advert_t)0; 16 | } 17 | 18 | int orb_publish(const struct orb_metadata *meta, orb_advert_t handle, const void *data) 19 | { 20 | return 0; 21 | } 22 | 23 | 24 | --------------------------------------------------------------------------------