├── .ackrc ├── .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 ├── arming_state_machine.odg ├── arming_state_machine.pdf ├── code_structure_diagrams.odg ├── code_structure_diagrams.pdf ├── control_flow.graffle ├── doxygen.README ├── 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 ├── asc-v1.prototype ├── crazyflie.prototype ├── mindpx-v2.prototype ├── px4-stm32f4discovery.prototype ├── px4fmu-v1.prototype ├── px4fmu-v2.prototype ├── px4fmu-v3.prototype ├── px4fmu-v4.prototype ├── px4io-v1.prototype ├── px4io-v2.prototype ├── px4iov2.prototype └── tap-v1.prototype ├── LICENSE.md ├── Makefile ├── README.md ├── ROMFS ├── px4fmu_common │ ├── init.d │ │ ├── 1000_rc_fw_easystar.hil │ │ ├── 10015_tbs_discovery │ │ ├── 10016_3dr_iris │ │ ├── 10017_steadidrone_qu4d │ │ ├── 10018_tbs_endurance │ │ ├── 1001_rc_quad_x.hil │ │ ├── 10020_3dr_quad │ │ ├── 10021_H4_680mm │ │ ├── 1003_rc_quad_+.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 │ │ ├── 13009_vtol_spt_ranger │ │ ├── 13010_claire │ │ ├── 14001_tri_y_yaw+ │ │ ├── 14002_tri_y_yaw- │ │ ├── 15001_coax_heli │ │ ├── 16001_helicopter │ │ ├── 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 │ │ ├── 3036_pigeon │ │ ├── 3100_tbs_caipirinha │ │ ├── 4001_quad_x │ │ ├── 4002_qavr5 │ │ ├── 4002_quad_x_mount │ │ ├── 4008_ardrone │ │ ├── 4009_qav250 │ │ ├── 4010_dji_f330 │ │ ├── 4011_dji_f450 │ │ ├── 4012_quad_x_can │ │ ├── 4013_bebop │ │ ├── 4020_hk_micro_pcb │ │ ├── 4030_solo │ │ ├── 4040_reaper │ │ ├── 4050_generic_250 │ │ ├── 4060_dji_matrice_100 │ │ ├── 4900_crazyflie │ │ ├── 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.mc_apps │ │ ├── rc.mc_defaults │ │ ├── rc.sensors │ │ ├── rc.vtol_apps │ │ ├── rc.vtol_defaults │ │ └── rcS │ └── 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 │ │ ├── bebop.main.mix │ │ ├── caipi.main.mix │ │ ├── caipirinha_vtol.main.mix │ │ ├── claire.aux.mix │ │ ├── claire.main.mix │ │ ├── coax.main.mix │ │ ├── delta.main.mix │ │ ├── easystar.main.mix │ │ ├── firefly6.aux.mix │ │ ├── firefly6.main.mix │ │ ├── heli_120deg.main.mix │ │ ├── hexa_+.main.mix │ │ ├── hexa_cox.main.mix │ │ ├── hexa_x.main.mix │ │ ├── mount.aux.mix │ │ ├── mount_legs.aux.mix │ │ ├── octo_+.main.mix │ │ ├── octo_cox.main.mix │ │ ├── octo_cox_w.main.mix │ │ ├── octo_x.main.mix │ │ ├── pass.aux.mix │ │ ├── phantom.main.mix │ │ ├── quad_+.main.mix │ │ ├── quad_+_vtol.main.mix │ │ ├── quad_h.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 │ │ ├── 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.sensors │ │ ├── rc.standalone │ │ └── rcS │ ├── mixers │ │ ├── IO_pass.mix │ │ └── quad_test.mix │ └── unit_test_data │ │ └── mavlink_tests │ │ ├── empty_dir │ │ └── .gitignore │ │ ├── test_238.data │ │ ├── test_239.data │ │ └── test_240.data ├── sitl │ └── mixers │ │ ├── delta_wing_sitl.main.mix │ │ ├── plane_sitl.main.mix │ │ └── standard_vtol_sitl.main.mix └── tap_common │ ├── init.d │ ├── 4001_quad_x │ ├── 6001_hexa_x │ ├── rc.fw_apps │ ├── rc.fw_defaults │ ├── rc.interface │ ├── rc.mc_apps │ ├── rc.mc_defaults │ ├── rc.sensors │ ├── rc.vtol_apps │ ├── rc.vtol_defaults │ └── rcS │ └── mixers │ ├── README.md │ ├── gear.mix │ ├── hexa_x.main.mix │ └── quad_x.main.mix ├── Tools ├── .gitignore ├── Matlab │ ├── ellipsoid_fit.m │ ├── motors.m │ └── plot_mag.m ├── adb_upload.sh ├── adb_upload_to_bebop.sh ├── airframes.xml ├── astylerc ├── boot_now.py ├── check_cmake.sh ├── check_code_style.sh ├── check_code_style_all.sh ├── check_submodules.sh ├── clang-tool.sh ├── decode_backtrace.py ├── dist │ └── vehicle_configs.xml ├── fetch_file.py ├── files_to_check_code_style.sh ├── fix_code_style.sh ├── fsm_visualisation.py ├── generate_listener.py ├── jmavsim_run.sh ├── make_color.sh ├── mavlink_px4.py ├── mavlink_shell.py ├── mavlink_ulog_streaming.py ├── parameters_injected.xml ├── posix.gdbinit ├── 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_files.py ├── px_generate_uorb_topic_helper.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 ├── qgc_meta_sync.sh ├── scp_upload.sh ├── sdlog2 │ ├── README.md │ ├── geo_tag_images.py │ ├── geotagging.py │ ├── logconv.m │ └── sdlog2_dump.py ├── setup_gazebo.bash ├── sitl_multiple_run.sh ├── sitl_run.sh ├── uavcan_copy.sh ├── upload.sh └── usb_serialload.py ├── Vagrantfile ├── circle.yml ├── cmake ├── common │ └── px4_base.cmake ├── configs │ ├── nuttx_asc-v1_default.cmake │ ├── nuttx_crazyflie_default.cmake │ ├── nuttx_mindpx-v2_default.cmake │ ├── nuttx_px4-stm32f4discovery_default.cmake │ ├── nuttx_px4fmu-v1_default.cmake │ ├── nuttx_px4fmu-v2_default.cmake │ ├── nuttx_px4fmu-v2_test.cmake │ ├── nuttx_px4fmu-v3_default.cmake │ ├── nuttx_px4fmu-v4_default.cmake │ ├── nuttx_tap-v1_default.cmake │ ├── posix_bebop_default.cmake │ ├── posix_eagle_default.cmake │ ├── posix_eagle_hil.cmake │ ├── posix_eagle_legacy_driver_default.cmake │ ├── posix_eagle_muorb.cmake │ ├── posix_excelsior_default.cmake │ ├── posix_rpi_common.cmake │ ├── posix_rpi_cross.cmake │ ├── posix_rpi_native.cmake │ ├── posix_sdflight_default.cmake │ ├── posix_sitl_broadcast.cmake │ ├── posix_sitl_default.cmake │ ├── posix_sitl_ekf2.cmake │ ├── posix_sitl_inav.cmake │ ├── posix_sitl_lpe.cmake │ ├── posix_sitl_replay.cmake │ ├── qurt_eagle_default.cmake │ ├── qurt_eagle_hello.cmake │ ├── qurt_eagle_hil.cmake │ ├── qurt_eagle_legacy_driver_default.cmake │ ├── qurt_eagle_muorb.cmake │ ├── qurt_eagle_test.cmake │ ├── qurt_eagle_travis.cmake │ ├── qurt_excelsior_default.cmake │ └── qurt_sdflight_default.cmake ├── nuttx │ ├── bin_to_obj.py │ ├── builtin_commands.c.in │ └── px4_impl_nuttx.cmake ├── posix │ ├── ld.script │ └── px4_impl_posix.cmake ├── qurt │ ├── px4_impl_qurt.cmake │ ├── qurt_eigen.patch │ └── qurt_funcs.cmake ├── 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-raspbian-clang.cmake │ ├── Toolchain-arm-linux-gnueabihf-raspbian.cmake │ ├── Toolchain-arm-none-eabi.cmake │ └── Toolchain-native.cmake ├── eclipse.cproject ├── eclipse.project ├── integrationtests ├── python_src │ └── px4_it │ │ ├── dronekit │ │ ├── MissionCheck.py │ │ └── VTOL_TAKEOFF.mission │ │ ├── mavros │ │ ├── mavros_offboard_attctl_test.py │ │ ├── mavros_offboard_posctl_test.py │ │ ├── mission_test.py │ │ ├── vtol_new_1.txt │ │ ├── vtol_new_2.txt │ │ ├── vtol_old_1.txt │ │ ├── vtol_old_2.txt │ │ └── vtol_old_3.txt │ │ └── util │ │ ├── TODO.md │ │ ├── flight_path_assertion.py │ │ ├── manual_input.py │ │ └── px4_test_helper.py ├── run_container.bash └── run_tests.bash ├── 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.launch ├── mavros_posix_sitl.launch ├── mavros_posix_tests_iris.launch ├── mavros_posix_tests_standard_vtol.launch ├── mavros_sitl.launch ├── multi_uav.launch ├── multicopter.launch ├── multicopter_w.launch ├── multicopter_x.launch └── posix_sitl.launch ├── misc └── tones │ ├── charge.txt │ ├── cucuracha.txt │ ├── daisy.txt │ ├── dixie.txt │ ├── tell.txt │ └── yankee.txt ├── msg ├── CMakeLists.txt ├── actuator_armed.msg ├── actuator_controls.msg ├── actuator_direct.msg ├── actuator_outputs.msg ├── adc_report.msg ├── airspeed.msg ├── att_pos_mocap.msg ├── battery_status.msg ├── camera_trigger.msg ├── commander_state.msg ├── control_state.msg ├── cpuload.msg ├── debug_key_value.msg ├── differential_pressure.msg ├── distance_sensor.msg ├── ekf2_innovations.msg ├── ekf2_replay.msg ├── esc_report.msg ├── esc_status.msg ├── estimator_status.msg ├── fence.msg ├── fence_vertex.msg ├── filtered_bottom_flow.msg ├── follow_target.msg ├── fw_pos_ctrl_status.msg ├── fw_virtual_attitude_setpoint.msg ├── fw_virtual_rates_setpoint.msg ├── geofence_result.msg ├── gps_dump.msg ├── gps_inject_data.msg ├── hil_sensor.msg ├── home_position.msg ├── input_rc.msg ├── log_message.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 ├── mount_status.msg ├── multirotor_motor_limits.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 ├── ros │ ├── actuator_controls_0.msg │ └── actuator_controls_virtual_mc.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.cpp.template │ │ ├── msg.h.template │ │ └── uORBTopics.cpp.template ├── test_motor.msg ├── time_offset.msg ├── transponder_report.msg ├── uavcan_parameter_request.msg ├── uavcan_parameter_value.msg ├── ulog_stream.msg ├── ulog_stream_ack.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_roi.msg ├── vehicle_status.msg ├── vision_position_estimate.msg ├── vtol_vehicle_status.msg └── wind_estimate.msg ├── nuttx-configs ├── PX4_Warnings.mk ├── aerocore │ ├── include │ │ ├── board.h │ │ └── nsh_romfsimg.h │ ├── nsh │ │ ├── Make.defs │ │ ├── appconfig │ │ ├── defconfig │ │ └── setenv.sh │ ├── scripts │ │ └── ld.script │ └── src │ │ ├── Makefile │ │ └── empty.c ├── asc-v1 │ ├── include │ │ ├── board.h │ │ └── nsh_romfsimg.h │ ├── nsh │ │ ├── Make.defs │ │ ├── defconfig │ │ └── setenv.sh │ ├── scripts │ │ └── ld.script │ └── src │ │ ├── Makefile │ │ └── empty.c ├── crazyflie │ ├── 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-v3 │ ├── 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 └── tap-v1 │ ├── include │ ├── board.h │ └── nsh_romfsimg.h │ ├── nsh │ ├── Make.defs │ ├── appconfig │ ├── defconfig │ └── setenv.sh │ ├── scripts │ └── ld.script │ └── src │ ├── Makefile │ └── empty.c ├── package.xml ├── posix-configs ├── SITL │ ├── README.md │ ├── SITL_Diagram.png │ └── init │ │ ├── ekf2 │ │ ├── iris │ │ ├── multiple_iris │ │ ├── plane │ │ ├── solo │ │ ├── standard_vtol │ │ ├── tailsitter │ │ └── typhoon_h480 │ │ ├── inav │ │ ├── iris │ │ └── iris_opt_flow │ │ ├── lpe │ │ ├── iris │ │ ├── iris_opt_flow │ │ ├── plane │ │ ├── standard_vtol │ │ └── typhoon_h480 │ │ ├── rcS_gazebo_delta_wing │ │ ├── replay │ │ └── iris │ │ └── test │ │ └── iris ├── bebop │ └── px4.config ├── eagle │ ├── 200qx │ │ ├── mainapp.config │ │ └── px4.config │ ├── 210qc │ │ ├── mainapp.config │ │ └── px4.config │ ├── flight │ │ ├── mainapp.config │ │ └── px4.config │ └── hil │ │ ├── mainapphil.config │ │ └── px4.config └── rpi │ ├── px4.config │ └── px4_fw.config ├── src ├── drivers │ ├── airspeed │ │ ├── CMakeLists.txt │ │ ├── airspeed.cpp │ │ └── airspeed.h │ ├── ardrone_interface │ │ ├── CMakeLists.txt │ │ ├── ardrone_interface.c │ │ ├── ardrone_motor_control.c │ │ └── ardrone_motor_control.h │ ├── batt_smbus │ │ ├── CMakeLists.txt │ │ └── batt_smbus.cpp │ ├── blinkm │ │ ├── CMakeLists.txt │ │ └── blinkm.cpp │ ├── bma180 │ │ ├── CMakeLists.txt │ │ └── bma180.cpp │ ├── bmi160 │ │ ├── CMakeLists.txt │ │ ├── bmi160.cpp │ │ ├── bmi160.hpp │ │ ├── bmi160_gyro.cpp │ │ ├── bmi160_gyro.hpp │ │ └── bmi160_main.cpp │ ├── bmp280 │ │ ├── CMakeLists.txt │ │ ├── bmp280.cpp │ │ ├── bmp280.h │ │ └── bmp280_spi.cpp │ ├── boards │ │ ├── aerocore │ │ │ ├── CMakeLists.txt │ │ │ ├── aerocore_init.c │ │ │ ├── aerocore_led.c │ │ │ ├── aerocore_spi.c │ │ │ ├── aerocore_timer_config.c │ │ │ └── board_config.h │ │ ├── asc-v1 │ │ │ ├── CMakeLists.txt │ │ │ ├── asc_init.c │ │ │ ├── asc_led.c │ │ │ ├── asc_pwr.c │ │ │ ├── asc_spi.c │ │ │ ├── asc_timer_config.c │ │ │ ├── asc_usb.c │ │ │ └── board_config.h │ │ ├── common │ │ │ ├── board_common.h │ │ │ ├── board_dma_alloc.c │ │ │ └── board_name.c │ │ ├── crazyflie │ │ │ ├── CMakeLists.txt │ │ │ ├── board_config.h │ │ │ ├── crazyflie_i2c.cpp │ │ │ ├── crazyflie_init.c │ │ │ ├── crazyflie_led.c │ │ │ ├── crazyflie_timer_config.c │ │ │ └── crazyflie_usb.c │ │ ├── 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 │ │ │ ├── px4discovery_init.c │ │ │ ├── px4discovery_led.c │ │ │ └── px4discovery_usb.c │ │ ├── px4fmu-v1 │ │ │ ├── CMakeLists.txt │ │ │ ├── board_config.h │ │ │ ├── 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 │ │ │ ├── px4fmu2_init.c │ │ │ ├── px4fmu2_led.c │ │ │ ├── px4fmu_can.c │ │ │ ├── px4fmu_spi.c │ │ │ ├── px4fmu_timer_config.c │ │ │ └── px4fmu_usb.c │ │ ├── px4fmu-v3 │ │ │ └── board_config.h │ │ ├── px4fmu-v4 │ │ │ ├── CMakeLists.txt │ │ │ ├── board_config.h │ │ │ ├── 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 │ │ │ ├── px4io_init.c │ │ │ └── px4io_timer_config.c │ │ ├── px4io-v2 │ │ │ ├── CMakeLists.txt │ │ │ ├── board_config.h │ │ │ ├── px4io_init.c │ │ │ └── px4io_timer_config.c │ │ ├── sim │ │ │ └── board_config.h │ │ ├── sitl │ │ │ ├── CMakeLists.txt │ │ │ └── sitl_led.c │ │ └── tap-v1 │ │ │ ├── CMakeLists.txt │ │ │ ├── board_config.h │ │ │ ├── tap_i2c.cpp │ │ │ ├── tap_init.c │ │ │ ├── tap_led.c │ │ │ ├── tap_pwr.c │ │ │ ├── tap_sdio.c │ │ │ ├── tap_spi.c │ │ │ ├── tap_timer_config.c │ │ │ └── tap_usb.c │ ├── bst │ │ ├── CMakeLists.txt │ │ └── bst.cpp │ ├── camera_trigger │ │ ├── CMakeLists.txt │ │ ├── camera_trigger.cpp │ │ ├── camera_trigger_params.c │ │ └── interfaces │ │ │ └── src │ │ │ ├── camera_interface.cpp │ │ │ ├── camera_interface.h │ │ │ ├── pwm.cpp │ │ │ ├── pwm.h │ │ │ ├── relay.cpp │ │ │ └── relay.h │ ├── 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 │ │ ├── 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_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 │ ├── frsky_telemetry │ │ ├── CMakeLists.txt │ │ ├── frsky_data.c │ │ ├── frsky_data.h │ │ ├── frsky_telemetry.c │ │ ├── sPort_data.c │ │ └── sPort_data.h │ ├── gps │ │ ├── CMakeLists.txt │ │ ├── definitions.h │ │ ├── gps.cpp │ │ └── params.c │ ├── hc_sr04 │ │ ├── CMakeLists.txt │ │ └── hc_sr04.cpp │ ├── hmc5883 │ │ ├── CMakeLists.txt │ │ ├── hmc5883.cpp │ │ ├── hmc5883.h │ │ ├── hmc5883_i2c.cpp │ │ └── hmc5883_spi.cpp │ ├── hott │ │ ├── CMakeLists.txt │ │ ├── comms.cpp │ │ ├── comms.h │ │ ├── hott_sensors │ │ │ ├── CMakeLists.txt │ │ │ └── hott_sensors.cpp │ │ ├── hott_telemetry │ │ │ ├── CMakeLists.txt │ │ │ └── hott_telemetry.cpp │ │ ├── messages.cpp │ │ └── messages.h │ ├── irlock │ │ ├── CMakeLists.txt │ │ └── irlock.cpp │ ├── ist8310 │ │ ├── CMakeLists.txt │ │ └── ist8310.cpp │ ├── l3gd20 │ │ ├── CMakeLists.txt │ │ └── l3gd20.cpp │ ├── led │ │ ├── CMakeLists.txt │ │ └── led.cpp │ ├── lis3mdl │ │ ├── CMakeLists.txt │ │ ├── lis3mdl.cpp │ │ ├── lis3mdl.h │ │ ├── lis3mdl_i2c.cpp │ │ └── lis3mdl_spi.cpp │ ├── ll40ls │ │ ├── CMakeLists.txt │ │ ├── LidarLite.cpp │ │ ├── LidarLite.h │ │ ├── LidarLiteI2C.cpp │ │ ├── LidarLiteI2C.h │ │ ├── LidarLitePWM.cpp │ │ ├── LidarLitePWM.h │ │ └── ll40ls.cpp │ ├── lps25h │ │ ├── CMakeLists.txt │ │ ├── lps25h.cpp │ │ ├── lps25h.h │ │ ├── lps25h_i2c.cpp │ │ └── lps25h_spi.cpp │ ├── lsm303d │ │ ├── CMakeLists.txt │ │ └── lsm303d.cpp │ ├── mb12xx │ │ ├── CMakeLists.txt │ │ └── mb12xx.cpp │ ├── md25 │ │ ├── BlockSysIdent.cpp │ │ ├── BlockSysIdent.hpp │ │ ├── CMakeLists.txt │ │ ├── md25.cpp │ │ ├── md25.hpp │ │ └── md25_main.cpp │ ├── meas_airspeed │ │ ├── CMakeLists.txt │ │ └── meas_airspeed.cpp │ ├── mkblctrl │ │ ├── CMakeLists.txt │ │ ├── mkblctrl.cpp │ │ └── mkblctrl_params.c │ ├── mpu6000 │ │ ├── CMakeLists.txt │ │ ├── mpu6000.cpp │ │ ├── mpu6000.h │ │ ├── mpu6000_i2c.cpp │ │ └── mpu6000_spi.cpp │ ├── mpu6500 │ │ ├── CMakeLists.txt │ │ └── mpu6500.cpp │ ├── mpu9250 │ │ ├── CMakeLists.txt │ │ ├── gyro.cpp │ │ ├── gyro.h │ │ ├── mag.cpp │ │ ├── mag.h │ │ ├── mag_i2c.cpp │ │ ├── main.cpp │ │ ├── mpu9250.cpp │ │ ├── mpu9250.h │ │ ├── mpu9250_i2c.cpp │ │ └── mpu9250_spi.cpp │ ├── ms5611 │ │ ├── CMakeLists.txt │ │ ├── ms5611.cpp │ │ ├── ms5611.h │ │ ├── ms5611_i2c.cpp │ │ └── ms5611_spi.cpp │ ├── navio_gpio │ │ ├── CMakeLists.txt │ │ ├── navio_gpio.cpp │ │ ├── navio_gpio.h │ │ └── test │ │ │ ├── CMakeLists.txt │ │ │ ├── main.cpp │ │ │ └── test.cpp │ ├── navio_rgbled │ │ ├── CMakeLists.txt │ │ ├── navio_rgbled.cpp │ │ ├── navio_rgbled.h │ │ └── test │ │ │ ├── CMakeLists.txt │ │ │ ├── main.cpp │ │ │ └── test.cpp │ ├── navio_sysfs_pwm_out │ │ ├── CMakeLists.txt │ │ └── navio_sysfs_pwm_out.cpp │ ├── navio_sysfs_rc_in │ │ ├── CMakeLists.txt │ │ └── navio_sysfs_rc_in.cpp │ ├── oreoled │ │ ├── CMakeLists.txt │ │ └── oreoled.cpp │ ├── pca8574 │ │ ├── CMakeLists.txt │ │ └── pca8574.cpp │ ├── pca9685 │ │ ├── CMakeLists.txt │ │ ├── arduino_Adafruit_PWM_Servo_Driver_Library_license.txt │ │ └── pca9685.cpp │ ├── pwm_input │ │ ├── CMakeLists.txt │ │ └── pwm_input.cpp │ ├── pwm_out_rc_in │ │ ├── CMakeLists.txt │ │ └── pwm_out_rc_in.cpp │ ├── pwm_out_sim │ │ ├── CMakeLists.txt │ │ └── pwm_out_sim.cpp │ ├── px4flow │ │ ├── CMakeLists.txt │ │ ├── i2c_frame.h │ │ └── px4flow.cpp │ ├── px4fmu │ │ ├── CMakeLists.txt │ │ ├── fmu.cpp │ │ └── px4fmu_params.c │ ├── px4io │ │ ├── CMakeLists.txt │ │ ├── px4io.cpp │ │ ├── px4io_driver.h │ │ ├── px4io_i2c.cpp │ │ ├── px4io_params.c │ │ ├── px4io_serial.cpp │ │ ├── px4io_uploader.cpp │ │ └── uploader.h │ ├── qshell │ │ ├── posix │ │ │ ├── CMakeLists.txt │ │ │ ├── qshell.cpp │ │ │ ├── qshell.h │ │ │ └── qshell_start_posix.cpp │ │ └── qurt │ │ │ ├── CMakeLists.txt │ │ │ ├── qshell.cpp │ │ │ ├── qshell.h │ │ │ ├── qshell_main.cpp │ │ │ └── qshell_start_qurt.cpp │ ├── rgbled │ │ ├── CMakeLists.txt │ │ ├── rgbled.cpp │ │ └── rgbled_params.c │ ├── rgbled_pwm │ │ ├── CMakeLists.txt │ │ └── rgbled_pwm.cpp │ ├── roboclaw │ │ ├── CMakeLists.txt │ │ ├── RoboClaw.cpp │ │ ├── RoboClaw.hpp │ │ └── roboclaw_main.cpp │ ├── sf0x │ │ ├── CMakeLists.txt │ │ ├── sf0x.cpp │ │ ├── sf0x_parser.cpp │ │ ├── sf0x_parser.h │ │ └── sf0x_tests │ │ │ ├── CMakeLists.txt │ │ │ └── SF0XTest.cpp │ ├── sf1xx │ │ ├── CMakeLists.txt │ │ └── sf1xx.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 │ │ ├── drv_hrt.c │ │ ├── drv_input_capture.c │ │ ├── drv_input_capture.h │ │ ├── drv_io_timer.c │ │ ├── drv_io_timer.h │ │ ├── drv_led_pwm.cpp │ │ ├── drv_pwm_servo.c │ │ ├── drv_pwm_servo.h │ │ └── tone_alarm │ │ │ ├── CMakeLists.txt │ │ │ └── tone_alarm.cpp │ ├── tap_esc │ │ ├── CMakeLists.txt │ │ ├── drv_tap_esc.h │ │ └── tap_esc.cpp │ ├── test_ppm │ │ ├── CMakeLists.txt │ │ └── test_ppm.cpp │ ├── trone │ │ ├── CMakeLists.txt │ │ └── trone.cpp │ └── vmount │ │ ├── CMakeLists.txt │ │ ├── common.h │ │ ├── input.cpp │ │ ├── input.h │ │ ├── input_mavlink.cpp │ │ ├── input_mavlink.h │ │ ├── input_rc.cpp │ │ ├── input_rc.h │ │ ├── input_test.cpp │ │ ├── input_test.h │ │ ├── output.cpp │ │ ├── output.h │ │ ├── output_mavlink.cpp │ │ ├── output_mavlink.h │ │ ├── output_rc.cpp │ │ ├── output_rc.h │ │ ├── vmount.cpp │ │ └── vmount_params.c ├── examples │ ├── 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 │ ├── 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 │ ├── fixedwing_control │ │ ├── CMakeLists.txt │ │ ├── main.cpp │ │ ├── params.c │ │ └── params.h │ ├── hwtest │ │ ├── CMakeLists.txt │ │ └── hwtest.c │ ├── matlab_csv_serial │ │ ├── CMakeLists.txt │ │ └── matlab_csv_serial.c │ ├── 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 │ ├── 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 │ ├── publisher │ │ ├── CMakeLists.txt │ │ ├── publisher_example.cpp │ │ ├── publisher_example.h │ │ ├── publisher_main.cpp │ │ └── publisher_start_nuttx.cpp │ ├── px4_daemon_app │ │ ├── CMakeLists.txt │ │ └── px4_daemon_app.c │ ├── px4_mavlink_debug │ │ ├── CMakeLists.txt │ │ └── px4_mavlink_debug.c │ ├── px4_simple_app │ │ ├── CMakeLists.txt │ │ └── px4_simple_app.c │ ├── rover_steering_control │ │ ├── CMakeLists.txt │ │ ├── main.cpp │ │ ├── params.c │ │ └── params.h │ └── subscriber │ │ ├── CMakeLists.txt │ │ ├── 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 │ ├── controllib │ │ ├── CMakeLists.txt │ │ ├── block │ │ │ ├── Block.cpp │ │ │ ├── Block.hpp │ │ │ ├── BlockParam.cpp │ │ │ └── BlockParam.hpp │ │ ├── blocks.cpp │ │ ├── blocks.hpp │ │ └── uorb │ │ │ ├── blocks.cpp │ │ │ └── blocks.hpp │ ├── conversion │ │ ├── CMakeLists.txt │ │ ├── rotation.cpp │ │ └── rotation.h │ ├── external_lgpl │ │ ├── CMakeLists.txt │ │ └── tecs │ │ │ ├── tecs.cpp │ │ │ └── tecs.h │ ├── geo │ │ ├── CMakeLists.txt │ │ ├── geo.c │ │ └── geo.h │ ├── geo_lookup │ │ ├── CMakeLists.txt │ │ ├── geo_mag_declination.c │ │ └── geo_mag_declination.h │ ├── launchdetection │ │ ├── CMakeLists.txt │ │ ├── CatapultLaunchMethod.cpp │ │ ├── CatapultLaunchMethod.h │ │ ├── LaunchDetector.cpp │ │ ├── LaunchDetector.h │ │ ├── LaunchMethod.h │ │ └── launchdetection_params.c │ ├── mathlib │ │ ├── CMakeLists.txt │ │ ├── math │ │ │ ├── Limits.cpp │ │ │ ├── Limits.hpp │ │ │ ├── Matrix.hpp │ │ │ ├── Quaternion.hpp │ │ │ ├── Vector.hpp │ │ │ ├── filter │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── LowPassFilter2p.cpp │ │ │ │ └── LowPassFilter2p.hpp │ │ │ ├── nasa_rotation_def.pdf │ │ │ ├── test │ │ │ │ ├── test.cpp │ │ │ │ └── test.hpp │ │ │ └── test_math.sce │ │ └── mathlib.h │ ├── px4_eigen.h │ ├── rc │ │ ├── CMakeLists.txt │ │ ├── dsm.c │ │ ├── dsm.h │ │ ├── rc_tests │ │ │ ├── CMakeLists.txt │ │ │ └── RCTest.cpp │ │ ├── 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_q │ │ ├── CMakeLists.txt │ │ ├── attitude_estimator_q_main.cpp │ │ └── attitude_estimator_q_params.c │ ├── bottle_drop │ │ ├── CMakeLists.txt │ │ ├── bottle_drop.cpp │ │ └── bottle_drop_params.c │ ├── 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 │ │ │ ├── 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 │ │ ├── px4_custom_mode.h │ │ ├── rc_calibration.cpp │ │ ├── rc_calibration.h │ │ ├── state_machine_helper.cpp │ │ └── state_machine_helper.h │ ├── controllib_test │ │ ├── CMakeLists.txt │ │ ├── blocks.cpp │ │ ├── controllib_test_main.cpp │ │ └── test_params.c │ ├── dataman │ │ ├── CMakeLists.txt │ │ ├── dataman.c │ │ └── dataman.h │ ├── dummy │ │ ├── CMakeLists.txt │ │ └── tone_alarm.c │ ├── ekf2 │ │ ├── CMakeLists.txt │ │ ├── ekf2_main.cpp │ │ └── ekf2_params.c │ ├── ekf2_replay │ │ ├── CMakeLists.txt │ │ └── ekf2_replay_main.cpp │ ├── fw_att_control │ │ ├── CMakeLists.txt │ │ ├── fw_att_control_main.cpp │ │ └── fw_att_control_params.c │ ├── fw_pos_control_l1 │ │ ├── CMakeLists.txt │ │ ├── fw_pos_control_l1_main.cpp │ │ ├── fw_pos_control_l1_params.c │ │ ├── landingslope.cpp │ │ ├── landingslope.h │ │ └── mtecs │ │ │ ├── limitoverride.cpp │ │ │ ├── limitoverride.h │ │ │ ├── mTecs.cpp │ │ │ ├── mTecs.h │ │ │ ├── mTecs_blocks.h │ │ │ └── mTecs_params.c │ ├── gpio_led │ │ ├── CMakeLists.txt │ │ └── gpio_led.c │ ├── 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 │ ├── load_mon │ │ ├── CMakeLists.txt │ │ └── load_mon.cpp │ ├── local_position_estimator │ │ ├── BlockLocalPositionEstimator.cpp │ │ ├── BlockLocalPositionEstimator.hpp │ │ ├── CMakeLists.txt │ │ ├── fault_table.py │ │ ├── local_position_estimator_main.cpp │ │ ├── params.c │ │ └── sensors │ │ │ ├── Flow+Noise+Modelling.pdf │ │ │ ├── baro.cpp │ │ │ ├── flow.cpp │ │ │ ├── gps.cpp │ │ │ ├── land.cpp │ │ │ ├── lidar.cpp │ │ │ ├── mocap.cpp │ │ │ ├── sonar.cpp │ │ │ └── vision.cpp │ ├── logger │ │ ├── CMakeLists.txt │ │ ├── array.h │ │ ├── log_writer.cpp │ │ ├── log_writer.h │ │ ├── log_writer_file.cpp │ │ ├── log_writer_file.h │ │ ├── log_writer_mavlink.cpp │ │ ├── log_writer_mavlink.h │ │ ├── logger.cpp │ │ ├── logger.h │ │ ├── messages.h │ │ └── 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_shell.cpp │ │ ├── mavlink_shell.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 │ │ ├── mavlink_ulog.cpp │ │ └── mavlink_ulog.h │ ├── mc_att_control │ │ ├── CMakeLists.txt │ │ ├── mc_att_control_main.cpp │ │ └── mc_att_control_params.c │ ├── mc_pos_control │ │ ├── CMakeLists.txt │ │ ├── mc_pos_control_main.cpp │ │ ├── mc_pos_control_params.c │ │ └── mc_pos_control_tests │ │ │ ├── CMakeLists.txt │ │ │ └── mc_pos_control_tests.cpp │ ├── muorb │ │ ├── adsp │ │ │ ├── CMakeLists.txt │ │ │ ├── px4muorb.cpp │ │ │ ├── px4muorb.hpp │ │ │ ├── uORBFastRpcChannel.cpp │ │ │ └── uORBFastRpcChannel.hpp │ │ └── krait │ │ │ ├── CMakeLists.txt │ │ │ ├── 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 │ │ ├── follow_target_params.c │ │ ├── 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 │ │ ├── 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 │ │ ├── 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 │ │ ├── protocol.h │ │ ├── px4io.c │ │ ├── px4io.h │ │ ├── registers.c │ │ ├── safety.c │ │ └── serial.c │ ├── replay │ │ ├── CMakeLists.txt │ │ ├── definitions.hpp │ │ ├── replay.hpp │ │ └── replay_main.cpp │ ├── sdlog2 │ │ ├── CMakeLists.txt │ │ ├── logbuffer.c │ │ ├── logbuffer.h │ │ ├── params.c │ │ ├── sdlog2.c │ │ ├── sdlog2_format.h │ │ └── sdlog2_messages.h │ ├── segway │ │ ├── BlockSegwayController.cpp │ │ ├── BlockSegwayController.hpp │ │ ├── CMakeLists.txt │ │ ├── params.c │ │ └── segway_main.cpp │ ├── sensors │ │ ├── CMakeLists.txt │ │ ├── sensor_params.c │ │ ├── sensors.cpp │ │ ├── sensors_init.cpp │ │ └── sensors_init.h │ ├── simulator │ │ ├── CMakeLists.txt │ │ ├── simulator.cpp │ │ ├── simulator.h │ │ └── simulator_mavlink.cpp │ ├── syslink │ │ ├── CMakeLists.txt │ │ ├── crtp.h │ │ ├── drv_deck.h │ │ ├── syslink.c │ │ ├── syslink.h │ │ ├── syslink_bridge.cpp │ │ ├── syslink_main.cpp │ │ ├── syslink_main.h │ │ ├── syslink_memory.cpp │ │ └── syslink_params.c │ ├── systemlib │ │ ├── CMakeLists.txt │ │ ├── airspeed.c │ │ ├── airspeed.h │ │ ├── battery.cpp │ │ ├── battery.h │ │ ├── battery_params.c │ │ ├── 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 │ │ ├── flashparams │ │ │ ├── flashfs.c │ │ │ ├── flashfs.h │ │ │ ├── flashparams.c │ │ │ └── flashparams.h │ │ ├── getopt_long.c │ │ ├── getopt_long.h │ │ ├── git_version.h │ │ ├── hx_stream.c │ │ ├── hx_stream.h │ │ ├── hysteresis │ │ │ ├── hysteresis.cpp │ │ │ └── hysteresis.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 │ │ │ └── multi_tables.py │ │ ├── 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 │ │ ├── px4_macros.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 │ │ ├── uORB.cpp │ │ ├── uORB.h │ │ ├── uORBCommon.hpp │ │ ├── uORBCommunicator.hpp │ │ ├── uORBDevices.cpp │ │ ├── uORBDevices.hpp │ │ ├── uORBMain.cpp │ │ ├── uORBManager.cpp │ │ ├── uORBManager.hpp │ │ ├── uORBTopics.h │ │ ├── uORBUtils.cpp │ │ ├── uORBUtils.hpp │ │ └── uORB_tests │ │ │ ├── CMakeLists.txt │ │ │ ├── uORBTest_UnitTest.cpp │ │ │ ├── uORBTest_UnitTest.hpp │ │ │ └── uORB_tests_main.cpp │ ├── uavcan │ │ ├── .gitignore │ │ ├── CMakeLists.txt │ │ ├── actuators │ │ │ ├── esc.cpp │ │ │ ├── esc.hpp │ │ │ ├── hardpoint.cpp │ │ │ └── hardpoint.hpp │ │ ├── allocator.hpp │ │ ├── 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 │ │ ├── unit_test.cpp │ │ └── unit_test.h │ └── vtol_att_control │ │ ├── CMakeLists.txt │ │ ├── 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 │ ├── apps.cpp.in │ ├── apps.h.in │ ├── common │ │ ├── CMakeLists.txt │ │ └── px4_getopt.c │ ├── empty.c │ ├── nuttx │ │ ├── CMakeLists.txt │ │ ├── px4_layer │ │ │ ├── CMakeLists.txt │ │ │ └── px4_nuttx_tasks.c │ │ └── px4_nuttx_impl.cpp │ ├── posix │ │ ├── drivers │ │ │ ├── accelsim │ │ │ │ ├── CMakeLists.txt │ │ │ │ └── accelsim.cpp │ │ │ ├── adcsim │ │ │ │ ├── CMakeLists.txt │ │ │ │ └── adcsim.cpp │ │ │ ├── airspeedsim │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── airspeedsim.cpp │ │ │ │ ├── airspeedsim.h │ │ │ │ └── meas_airspeed_sim.cpp │ │ │ ├── barosim │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── baro.cpp │ │ │ │ └── barosim.h │ │ │ ├── df_ak8963_wrapper │ │ │ │ ├── CMakeLists.txt │ │ │ │ └── df_ak8963_wrapper.cpp │ │ │ ├── df_bebop_bus_wrapper │ │ │ │ ├── CMakeLists.txt │ │ │ │ └── df_bebop_bus_wrapper.cpp │ │ │ ├── df_bmp280_wrapper │ │ │ │ ├── CMakeLists.txt │ │ │ │ └── df_bmp280_wrapper.cpp │ │ │ ├── df_hmc5883_wrapper │ │ │ │ ├── CMakeLists.txt │ │ │ │ └── df_hmc5883_wrapper.cpp │ │ │ ├── df_isl29501_wrapper │ │ │ │ ├── CMakeLists.txt │ │ │ │ └── df_isl29501_wrapper.cpp │ │ │ ├── df_lsm9ds1_wrapper │ │ │ │ ├── CMakeLists.txt │ │ │ │ └── df_lsm9ds1_wrapper.cpp │ │ │ ├── df_mpu6050_wrapper │ │ │ │ ├── CMakeLists.txt │ │ │ │ └── df_mpu6050_wrapper.cpp │ │ │ ├── df_mpu9250_wrapper │ │ │ │ ├── CMakeLists.txt │ │ │ │ └── df_mpu9250_wrapper.cpp │ │ │ ├── df_ms5607_wrapper │ │ │ │ ├── CMakeLists.txt │ │ │ │ └── df_ms5607_wrapper.cpp │ │ │ ├── df_ms5611_wrapper │ │ │ │ ├── CMakeLists.txt │ │ │ │ └── df_ms5611_wrapper.cpp │ │ │ ├── df_trone_wrapper │ │ │ │ ├── CMakeLists.txt │ │ │ │ └── df_trone_wrapper.cpp │ │ │ ├── gpssim │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── gpssim.cpp │ │ │ │ ├── ubx_sim.cpp │ │ │ │ └── ubx_sim.h │ │ │ ├── gyrosim │ │ │ │ ├── CMakeLists.txt │ │ │ │ └── gyrosim.cpp │ │ │ ├── ledsim │ │ │ │ ├── CMakeLists.txt │ │ │ │ └── led.cpp │ │ │ ├── rgbledsim │ │ │ │ ├── CMakeLists.txt │ │ │ │ └── rgbled.cpp │ │ │ └── tonealrmsim │ │ │ │ ├── CMakeLists.txt │ │ │ │ └── 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 │ │ │ ├── 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 │ │ │ ├── hrt_test │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── hrt_test.cpp │ │ │ │ ├── hrt_test.h │ │ │ │ ├── hrt_test_main.cpp │ │ │ │ └── hrt_test_start_posix.cpp │ │ │ ├── muorb │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── muorb_test_example.cpp │ │ │ │ ├── muorb_test_example.h │ │ │ │ ├── muorb_test_main.cpp │ │ │ │ └── muorb_test_start_posix.cpp │ │ │ ├── vcdev_test │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── vcdevtest_example.cpp │ │ │ │ ├── vcdevtest_example.h │ │ │ │ ├── vcdevtest_main.cpp │ │ │ │ └── vcdevtest_start_posix.cpp │ │ │ └── wqueue │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── 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 │ │ │ ├── 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_micro_hal.h │ ├── px4_middleware.h │ ├── px4_nodehandle.h │ ├── px4_parameter.h │ ├── px4_posix.h │ ├── px4_publisher.h │ ├── px4_sem.h │ ├── px4_sem.hpp │ ├── px4_spi.h │ ├── px4_subscriber.h │ ├── px4_tasks.h │ ├── px4_time.h │ ├── px4_workqueue.h │ ├── qurt │ │ ├── fc_addon │ │ │ ├── mpu_spi │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── mpu9x50_main.cpp │ │ │ │ └── mpu9x50_params.c │ │ │ ├── rc_receiver │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── rc_receiver_main.cpp │ │ │ │ └── rc_receiver_params.c │ │ │ └── uart_esc │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── uart_esc_main.cpp │ │ │ │ └── uart_esc_params.c │ │ ├── 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 │ │ │ ├── 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 │ │ │ └── muorb │ │ │ ├── CMakeLists.txt │ │ │ ├── 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 │ ├── config │ ├── CMakeLists.txt │ └── config.c │ ├── dumpfile │ ├── CMakeLists.txt │ └── dumpfile.c │ ├── esc_calib │ ├── CMakeLists.txt │ └── esc_calib.c │ ├── i2c │ ├── CMakeLists.txt │ └── i2c.c │ ├── mixer │ ├── CMakeLists.txt │ └── mixer.cpp │ ├── motor_ramp │ ├── CMakeLists.txt │ └── motor_ramp.cpp │ ├── motor_test │ ├── CMakeLists.txt │ └── motor_test.c │ ├── mtd │ ├── 24xxxx_mtd.c │ ├── CMakeLists.txt │ └── mtd.c │ ├── nshterm │ ├── CMakeLists.txt │ └── nshterm.c │ ├── param │ ├── CMakeLists.txt │ └── param.c │ ├── perf │ ├── CMakeLists.txt │ └── perf.c │ ├── pwm │ ├── CMakeLists.txt │ └── pwm.c │ ├── reboot │ ├── CMakeLists.txt │ └── reboot.c │ ├── reflect │ ├── CMakeLists.txt │ └── reflect.c │ ├── sd_bench │ ├── CMakeLists.txt │ └── sd_bench.c │ ├── tests │ ├── CMakeLists.txt │ ├── test_adc.c │ ├── test_autodeclination.cpp │ ├── test_bson.c │ ├── test_conv.cpp │ ├── test_dataman.c │ ├── test_file.c │ ├── test_file2.c │ ├── test_float.cpp │ ├── test_gpio.c │ ├── test_hott_telemetry.c │ ├── test_hrt.c │ ├── test_hysteresis.cpp │ ├── test_int.cpp │ ├── test_jig_voltages.c │ ├── test_led.c │ ├── test_mathlib.cpp │ ├── test_matrix.cpp │ ├── test_mixer.cpp │ ├── test_mount.c │ ├── test_params.c │ ├── test_perf.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_main.c │ └── tests_main.h │ ├── top │ ├── CMakeLists.txt │ └── top.c │ ├── topic_listener │ └── CMakeLists.txt │ ├── usb_connected │ ├── CMakeLists.txt │ └── usb_connected.c │ └── ver │ ├── CMakeLists.txt │ └── ver.c ├── test_data ├── dsm_x_data.txt ├── dsm_x_dx9_data.txt ├── sbus2_r7008SB.txt ├── st24_data.txt └── sumd_data.txt └── unittests ├── .gitignore ├── CMakeLists.txt ├── param_test.cpp └── uorb_stub.cpp /.ackrc: -------------------------------------------------------------------------------- 1 | --ignore-dir=Documentation 2 | -------------------------------------------------------------------------------- /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/arming_state_machine.odg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ATLFlight/Firmware/77a23a043fbdfa880c704b4412103ca22f14b373/Documentation/arming_state_machine.odg -------------------------------------------------------------------------------- /Documentation/arming_state_machine.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ATLFlight/Firmware/77a23a043fbdfa880c704b4412103ca22f14b373/Documentation/arming_state_machine.pdf -------------------------------------------------------------------------------- /Documentation/code_structure_diagrams.odg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ATLFlight/Firmware/77a23a043fbdfa880c704b4412103ca22f14b373/Documentation/code_structure_diagrams.odg -------------------------------------------------------------------------------- /Documentation/code_structure_diagrams.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ATLFlight/Firmware/77a23a043fbdfa880c704b4412103ca22f14b373/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/ATLFlight/Firmware/77a23a043fbdfa880c704b4412103ca22f14b373/Documentation/dsm_bind.odt -------------------------------------------------------------------------------- /Documentation/dsm_bind.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ATLFlight/Firmware/77a23a043fbdfa880c704b4412103ca22f14b373/Documentation/dsm_bind.pdf -------------------------------------------------------------------------------- /Documentation/fixed_wing_control.odg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ATLFlight/Firmware/77a23a043fbdfa880c704b4412103ca22f14b373/Documentation/fixed_wing_control.odg -------------------------------------------------------------------------------- /Documentation/flight_mode_state_machine.odg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ATLFlight/Firmware/77a23a043fbdfa880c704b4412103ca22f14b373/Documentation/flight_mode_state_machine.odg -------------------------------------------------------------------------------- /Documentation/flight_mode_state_machine.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ATLFlight/Firmware/77a23a043fbdfa880c704b4412103ca22f14b373/Documentation/flight_mode_state_machine.pdf -------------------------------------------------------------------------------- /Documentation/fw_landing.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ATLFlight/Firmware/77a23a043fbdfa880c704b4412103ca22f14b373/Documentation/fw_landing.png -------------------------------------------------------------------------------- /Documentation/px4_block_diagram.odg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ATLFlight/Firmware/77a23a043fbdfa880c704b4412103ca22f14b373/Documentation/px4_block_diagram.odg -------------------------------------------------------------------------------- /Documentation/px4_block_diagram.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ATLFlight/Firmware/77a23a043fbdfa880c704b4412103ca22f14b373/Documentation/px4_block_diagram.pdf -------------------------------------------------------------------------------- /Documentation/px4_general_structure.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ATLFlight/Firmware/77a23a043fbdfa880c704b4412103ca22f14b373/Documentation/px4_general_structure.png -------------------------------------------------------------------------------- /Documentation/px4_hil/SITL_Diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ATLFlight/Firmware/77a23a043fbdfa880c704b4412103ca22f14b373/Documentation/px4_hil/SITL_Diagram.png -------------------------------------------------------------------------------- /Documentation/px4_hil/SITL_Diagram_QGC.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ATLFlight/Firmware/77a23a043fbdfa880c704b4412103ca22f14b373/Documentation/px4_hil/SITL_Diagram_QGC.png -------------------------------------------------------------------------------- /Documentation/px4_hil/docs/readme.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ATLFlight/Firmware/77a23a043fbdfa880c704b4412103ca22f14b373/Documentation/px4_hil/docs/readme.txt -------------------------------------------------------------------------------- /Documentation/rc_mode_switch.odg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ATLFlight/Firmware/77a23a043fbdfa880c704b4412103ca22f14b373/Documentation/rc_mode_switch.odg -------------------------------------------------------------------------------- /Documentation/rc_mode_switch.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ATLFlight/Firmware/77a23a043fbdfa880c704b4412103ca22f14b373/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/asc-v1.prototype: -------------------------------------------------------------------------------- 1 | { 2 | "board_id": 65, 3 | "magic": "PX4FWv1", 4 | "description": "Firmware for the ASCv1 board", 5 | "image": "", 6 | "build_time": 0, 7 | "summary": "ASCv1", 8 | "version": "0.1", 9 | "image_size": 0, 10 | "git_identity": "", 11 | "board_revision": 0 12 | } 13 | -------------------------------------------------------------------------------- /Images/crazyflie.prototype: -------------------------------------------------------------------------------- 1 | { 2 | "board_id": 12, 3 | "magic": "Crazyflie", 4 | "description": "Firmware for the Crazyflie 2.0", 5 | "image": "", 6 | "build_time": 0, 7 | "summary": "CRAZYFLIE", 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": 88, 3 | "magic": "MindPX", 4 | "description": "Firmware for the MindPXFMUv2 board", 5 | "image": "", 6 | "build_time": 0, 7 | "summary": "MindPXFMUv2", 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-v3.prototype: -------------------------------------------------------------------------------- 1 | { 2 | "board_id": 9, 3 | "magic": "PX4FWv1", 4 | "description": "Firmware for the PX4FMUv3 board", 5 | "image": "", 6 | "build_time": 0, 7 | "summary": "PX4FMUv3", 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 | -------------------------------------------------------------------------------- /Images/tap-v1.prototype: -------------------------------------------------------------------------------- 1 | { 2 | "board_id": 64, 3 | "magic": "PX4FWv1", 4 | "description": "Firmware for the TAPv1 board", 5 | "image": "", 6 | "build_time": 0, 7 | "summary": "TAPv1", 8 | "version": "0.1", 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_DIV 12.27559 29 | param set BAT_A_PER_V 15.39103 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/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/4001_quad_x 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 | -------------------------------------------------------------------------------- /ROMFS/px4fmu_common/init.d/10021_H4_680mm: -------------------------------------------------------------------------------- 1 | #!nsh 2 | # 3 | # @name H4 680mm with Z1 Tiny2 Gimbal 4 | # 5 | # @type Quadrotor x 6 | # 7 | # @maintainer Leon Mueller 8 | # 9 | 10 | sh /etc/init.d/4002_quad_x_mount 11 | 12 | # The Z1 Tiny2 can handle up to 400Hz 13 | # and works with min 1020us, middle 1520us, max 2020us 14 | # see http://www.zhiyun-tech.com/uploadfile/datedown/instruction/Tiny2_English_instructionV1.03.pdf 15 | # under Gimbal Connection Instruction 16 | 17 | set PWM_AUX_RATE 400 18 | set PWM_AUX_DISARMED 1520 19 | set PWM_AUX_MIN 1020 20 | set PWM_AUX_MAX 2020 21 | 22 | # Start FrSky telemetry on SERIAL4 (ttyS6, designated "SERIAL4/5" on the case) 23 | frsky_telemetry start -d /dev/ttyS6 24 | 25 | # GPIO LED 26 | gpio_led start -p 6 27 | -------------------------------------------------------------------------------- /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/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 | param set VT_MOT_COUNT 2 37 | param set VT_IDLE_PWM_MC 1080 38 | param set VT_TYPE 0 39 | param set MAV_TYPE 19 40 | fi 41 | 42 | set MIXER caipirinha_vtol 43 | 44 | set PWM_OUT 1234 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 | 35 | param set VT_MOT_COUNT 6 36 | param set VT_FW_MOT_OFFID 34 37 | param set VT_IDLE_PWM_MC 1080 38 | param set VT_TYPE 1 39 | fi 40 | 41 | set MIXER firefly6 42 | set PWM_OUT 12345678 43 | set PWM_RATE 400 44 | 45 | set MIXER_AUX firefly6 46 | 47 | set MAV_TYPE 21 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 | if [ $AUTOCNF == yes ] 13 | then 14 | param set VT_MOT_COUNT 4 15 | param set VT_IDLE_PWM_MC 1080 16 | param set VT_TYPE 0 17 | param set VT_ELEV_MC_LOCK 1 18 | fi 19 | 20 | set MIXER quad_x_vtol 21 | 22 | set PWM_OUT 1234 23 | set PWM_MAX 2000 24 | set PWM_RATE 400 25 | set MAV_TYPE 20 26 | -------------------------------------------------------------------------------- /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 | if [ $AUTOCNF == yes ] 13 | then 14 | param set VT_MOT_COUNT 4 15 | param set VT_IDLE_PWM_MC 1080 16 | param set VT_TYPE 0 17 | param set VT_ELEV_MC_LOCK 1 18 | fi 19 | 20 | set MIXER quad_+_vtol 21 | 22 | set PWM_OUT 1234 23 | set PWM_MAX 2000 24 | set PWM_RATE 400 25 | set MAV_TYPE 20 26 | -------------------------------------------------------------------------------- /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 | param set MC_YAWRATE_MAX 40 35 | param set MC_YAWRAUTO_MAX 40 36 | 37 | param set VT_MOT_COUNT 4 38 | param set VT_IDLE_PWM_MC 1080 39 | param set VT_TYPE 2 40 | fi 41 | 42 | set MIXER vtol_quad_x 43 | set PWM_OUT 1234 44 | set PWM_RATE 400 45 | 46 | set MIXER_AUX vtol_AAVVT 47 | set PWM_ACHDIS 5 48 | set PWM_AUX_DISARMED 950 49 | 50 | set MAV_TYPE 22 51 | -------------------------------------------------------------------------------- /ROMFS/px4fmu_common/init.d/13010_claire: -------------------------------------------------------------------------------- 1 | #!nsh 2 | # 3 | # @name CruiseAder Claire 4 | # 5 | # @type VTOL Tiltrotor 6 | # 7 | # @maintainer Samay Siga 8 | # 9 | 10 | sh /etc/init.d/rc.vtol_defaults 11 | 12 | if [ $AUTOCNF == yes ] 13 | then 14 | param set VT_TYPE 1 15 | param set VT_TILT_MC 0.08 16 | param set VT_TILT_TRANS 0.5 17 | param set VT_TILT_FW 0.9 18 | 19 | param set VT_MOT_COUNT 4 20 | param set VT_IDLE_PWM_MC 1080 21 | param set VT_TYPE 1 22 | fi 23 | 24 | set MIXER claire 25 | set PWM_OUT 1234 26 | set PWM_RATE 400 27 | set PWM_MAX 2000 28 | 29 | set MIXER_AUX claire 30 | set PWM_AUX_RATE 50 31 | set PWM_AUX_RATE 123 32 | set PWM_AUX_MIN 1000 33 | set PWM_AUX_MAX 2000 34 | set PWM_AUX_DISARMED 1000 35 | 36 | set MAV_TYPE 21 37 | -------------------------------------------------------------------------------- /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/16001_helicopter: -------------------------------------------------------------------------------- 1 | #!nsh 2 | # 3 | # @name Blade 130X 4 | # 5 | # @type Helicopter 6 | # 7 | # @maintainer Bart Slinger 8 | # 9 | 10 | sh /etc/init.d/rc.mc_defaults 11 | 12 | # Configure as helicopter (number 4 defined in commander_helper.cpp) 13 | set MAV_TYPE 4 14 | 15 | set MIXER heli_120deg 16 | 17 | set PWM_OUT 1234 18 | 19 | if [ $AUTOCNF == yes ] 20 | then 21 | param set MC_ROLL_P 5.0 22 | param set MC_ROLLRATE_P 0.0 23 | param set MC_ROLLRATE_I 0.0 24 | param set MC_ROLLRATE_D 0.0 25 | param set MC_ROLLRATE_FF 0.15 26 | param set MC_PITCH_P 6.5 27 | param set MC_PITCHRATE_P 0.0 28 | param set MC_PITCHRATE_I 0.0 29 | param set MC_PITCHRATE_D 0.0 30 | param set MC_PITCHRATE_FF 0.15 31 | param set MC_YAW_P 3.0 32 | param set MC_YAWRATE_P 0.1 33 | param set MC_YAWRATE_I 0.0 34 | param set MC_YAWRATE_D 0.0 35 | param set MC_YAW_FF 0.0 36 | param set MC_ROLLRATE_MAX 720.0 37 | param set MC_PITCHRATE_MAX 720.0 38 | param set MC_YAWRATE_MAX 400.0 39 | param set MC_ACRO_R_MAX 360.0 40 | param set MC_ACRO_P_MAX 360.0 41 | 42 | param set PWM_MIN 1075 43 | 44 | param set MPC_THR_MIN 0.06 45 | param set MPC_MANTHR_MIN 0.06 46 | 47 | param set ATT_BIAS_MAX 0.0 48 | 49 | param set CBRK_IO_SAFETY 22027 50 | fi 51 | -------------------------------------------------------------------------------- /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/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/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/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/4002_qavr5: -------------------------------------------------------------------------------- 1 | #!nsh 2 | # 3 | # @name Lumenier QAV-R (raceblade) 5" arms 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 James Goppert 12 | # 13 | 14 | sh /etc/init.d/4001_quad_x 15 | 16 | if [ $AUTOCNF == yes ] 17 | then 18 | param set MC_ROLL_P 8.0 19 | param set MC_ROLLRATE_P 0.08 20 | param set MC_ROLLRATE_I 0.16 21 | param set MC_ROLLRATE_D 0.003 22 | param set MC_PITCH_P 8.0 23 | param set MC_PITCHRATE_P 0.1 24 | param set MC_PITCHRATE_I 0.2 25 | param set MC_PITCHRATE_D 0.003 26 | param set MC_YAW_P 2.8 27 | param set MC_YAWRATE_P 0.15 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 | param set MC_TPA_BREAK 0.7 32 | param set MC_TPA_SLOPE 1.0 33 | param set PWM_MIN 1075 34 | param set MPC_THR_MIN 0.06 35 | param set MPC_MANTHR_MIN 0.06 36 | fi 37 | -------------------------------------------------------------------------------- /ROMFS/px4fmu_common/init.d/4002_quad_x_mount: -------------------------------------------------------------------------------- 1 | #!nsh 2 | # 3 | # @name Generic Quadrotor X config with mount (e.g. gimbal) 4 | # 5 | # @type Quadrotor x 6 | # 7 | # 8 | # @maintainer Leon Mueller 9 | # 10 | 11 | sh /etc/init.d/rc.mc_defaults 12 | 13 | set MIXER quad_x 14 | set PWM_OUT 1234 15 | 16 | set MIXER_AUX mount 17 | set PWM_AUX_OUT 123456 18 | set PWM_AUX_RATE 50 19 | 20 | # Start mount driver 21 | vmount start 22 | -------------------------------------------------------------------------------- /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_DIV 34.32838 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 6.0 19 | param set MC_ROLLRATE_P 0.14 20 | param set MC_ROLLRATE_I 0.23 21 | param set MC_ROLLRATE_D 0.0025 22 | param set MC_PITCH_P 7.0 23 | param set MC_PITCHRATE_P 0.235 24 | param set MC_PITCHRATE_I 0.17 25 | param set MC_PITCHRATE_D 0.004 26 | param set MC_YAW_P 4 27 | param set MC_YAWRATE_P 0.3 28 | param set MC_YAWRATE_I 0.2 29 | param set MC_YAWRATE_D 0.0 30 | param set MC_YAW_FF 0.5 31 | param set PWM_MIN 1075 32 | param set MPC_THR_MIN 0.06 33 | param set MPC_MANTHR_MIN 0.06 34 | param set CBRK_IO_SAFETY 22027 35 | param set ATT_BIAS_MAX 0.0 36 | param set MC_TPA_BREAK 0.5 37 | param set MC_TPA_SLOPE 1.0 38 | fi 39 | -------------------------------------------------------------------------------- /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/4013_bebop: -------------------------------------------------------------------------------- 1 | #!nsh 2 | # 3 | # @name Parrot Bebop Frame 4 | # 5 | # @type Quadrotor x 6 | # 7 | # @maintainer Michael Schaeuble 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.5 19 | param set MC_ROLLRATE_P 0.109999999403953552 20 | param set MC_ROLLRATE_I 0.0 21 | param set MC_ROLLRATE_D 0.0006 22 | param set MC_PITCH_P 6.5 23 | param set MC_PITCHRATE_P 0.1 24 | param set MC_PITCHRATE_I 0.0 25 | param set MC_PITCHRATE_D 0.000799999 26 | param set MC_YAW_P 1.049999 27 | param set MC_YAWRATE_P 0.05 28 | param set MC_YAWRATE_I 0.001 29 | param set MC_YAWRATE_D 0.0 30 | param set MC_YAW_FF 0.7 31 | fi 32 | 33 | set OUTPUT_MODE bebop 34 | set USE_IO no 35 | set MIXER bebop 36 | -------------------------------------------------------------------------------- /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/4060_dji_matrice_100: -------------------------------------------------------------------------------- 1 | #!nsh 2 | # 3 | # @name DJI Matrice 100 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 James Goppert 12 | # 13 | 14 | sh /etc/init.d/4001_quad_x 15 | 16 | if [ $AUTOCNF == yes ] 17 | then 18 | param set MC_ROLL_P 6.5 19 | param set MC_ROLLRATE_P 0.05 20 | param set MC_ROLLRATE_I 0.05 21 | param set MC_ROLLRATE_D 0.001 22 | param set MC_PITCH_P 6.5 23 | param set MC_PITCHRATE_P 0.05 24 | param set MC_PITCHRATE_I 0.05 25 | param set MC_PITCHRATE_D 0.001 26 | param set MC_YAWRATE_P 0.2 27 | param set MC_YAWRATE_I 0.0 28 | param set MC_YAWRATE_D 0.0 29 | param set BAT_N_CELLS 6 30 | param set PWM_MIN 1200 31 | fi 32 | -------------------------------------------------------------------------------- /ROMFS/px4fmu_common/init.d/4900_crazyflie: -------------------------------------------------------------------------------- 1 | #!nsh 2 | # 3 | # @name Crazyflie 2.0 4 | # 5 | # @type Quadrotor x 6 | # 7 | 8 | sh /etc/init.d/4001_quad_x 9 | 10 | 11 | if [ $AUTOCNF == yes ] 12 | then 13 | param set COM_RC_IN_MODE 2 14 | param set BAT_N_CELLS 1 15 | param set BAT_CAPACITY 240 16 | param set BAT_SOURCE 1 17 | 18 | param set PWM_DISARMED 0 19 | param set PWM_MIN 0 20 | param set PWM_MAX 255 21 | 22 | param set SYS_COMPANION 20 23 | 24 | param set MC_PITCHRATE_D 0.0015 25 | param set MC_PITCHRATE_I 0.05 26 | param set MC_PITCHRATE_P 0.045 27 | param set MC_PITCH_P 6.5 28 | param set MC_ROLLRATE_D 0.0015 29 | param set MC_ROLLRATE_I 0.05 30 | param set MC_ROLLRATE_P 0.045 31 | param set MC_ROLL_P 6.5 32 | param set MC_YAW_P 3.0 33 | 34 | param set CBRK_SUPPLY_CHK 894281 35 | param set CBRK_USB_CHK 197848 36 | fi 37 | 38 | set PWM_MIN none 39 | set PWM_MAX none 40 | set PWM_DISARMED none 41 | # Will run the motors at 328.125 kHz (recommended) 42 | set PWM_RATE 3921 43 | -------------------------------------------------------------------------------- /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 | ekf2 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 | ekf2 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 | # FW uses L1 distance for acceptance radius 15 | # set a smaller NAV_ACC_RAD for vertical acceptance distance 16 | param set NAV_ACC_RAD 10 17 | 18 | param set MIS_LTRMIN_ALT 25 19 | param set MIS_TAKEOFF_ALT 25 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 | fi 22 | -------------------------------------------------------------------------------- /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 | 8 | #--------------------------------------- 9 | # Estimator group selction 10 | # 11 | # INAV (deprecated) 12 | if param compare SYS_MC_EST_GROUP 0 13 | then 14 | echo "ERROR [init] Estimator INAV deprecated. Using LPE" 15 | param set SYS_MC_EST_GROUP 1 16 | param save 17 | fi 18 | 19 | # LPE 20 | if param compare SYS_MC_EST_GROUP 1 21 | then 22 | attitude_estimator_q start 23 | local_position_estimator start 24 | fi 25 | 26 | # EKF 27 | if param compare SYS_MC_EST_GROUP 2 28 | then 29 | ekf2 start 30 | fi 31 | #--------------------------------------- 32 | 33 | mc_att_control start 34 | 35 | mc_pos_control start 36 | 37 | # 38 | # Start Land Detector 39 | # 40 | land_detector start multicopter 41 | -------------------------------------------------------------------------------- /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 NAV_ACC_RAD 2.0 8 | param set RTL_RETURN_ALT 30.0 9 | param set RTL_DESCEND_ALT 10.0 10 | param set PWM_DISARMED 900 11 | param set PWM_MIN 1075 12 | param set PWM_MAX 1950 13 | 14 | param set RTL_LAND_DELAY 0 15 | fi 16 | 17 | # set environment variables (!= parameters) 18 | set PWM_RATE 400 19 | # tell the mixer to use parameters for these instead 20 | set PWM_DISARMED p:PWM_DISARMED 21 | set PWM_MIN p:PWM_MIN 22 | set PWM_MAX p:PWM_MAX 23 | 24 | # This is the gimbal pass mixer 25 | set MIXER_AUX pass 26 | set PWM_AUX_RATE 50 27 | set PWM_AUX_OUT 1234 28 | set PWM_AUX_DISARMED 1500 29 | set PWM_AUX_MIN 1000 30 | set PWM_AUX_MAX 2000 31 | 32 | if param compare PWM_DISARMED 0 33 | then 34 | param set PWM_DISARMED 900 35 | fi 36 | -------------------------------------------------------------------------------- /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 | 8 | 9 | #--------------------------------------- 10 | # Estimator group selction 11 | # 12 | # INAV (deprecated) 13 | if param compare SYS_MC_EST_GROUP 0 14 | then 15 | echo "ERROR [init] Estimator INAV deprecated. Using LPE" 16 | param set SYS_MC_EST_GROUP 1 17 | param save 18 | fi 19 | 20 | # LPE 21 | if param compare SYS_MC_EST_GROUP 1 22 | then 23 | attitude_estimator_q start 24 | local_position_estimator start 25 | fi 26 | 27 | # EKF 28 | if param compare SYS_MC_EST_GROUP 2 29 | then 30 | ekf2 start 31 | fi 32 | #--------------------------------------- 33 | 34 | 35 | vtol_att_control start 36 | mc_att_control start 37 | mc_pos_control start 38 | fw_att_control start 39 | fw_pos_control_l1 start 40 | 41 | # 42 | # Start Land Detector 43 | # Multicopter for now until we have something for VTOL 44 | # 45 | land_detector start vtol 46 | -------------------------------------------------------------------------------- /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 | # 12 | # Default parameters for mission and position handling 13 | # 14 | param set NAV_ACC_RAD 3 15 | param set MPC_TKO_SPEED 1.0 16 | param set MPC_LAND_SPEED 0.7 17 | param set MPC_Z_VEL_MAX 1.5 18 | param set MPC_XY_VEL_MAX 4.0 19 | param set MIS_YAW_TMT 10 20 | param set MPC_ACC_HOR_MAX 2.0 21 | param set RTL_LAND_DELAY 0 22 | fi 23 | 24 | # set environment variables (!= parameters) 25 | set PWM_RATE 400 26 | # tell the mixer to use parameters for these instead 27 | set PWM_DISARMED p:PWM_DISARMED 28 | set PWM_MIN p:PWM_MIN 29 | set PWM_MAX p:PWM_MAX 30 | 31 | if param compare PWM_DISARMED 0 32 | then 33 | param set PWM_DISARMED 900 34 | fi 35 | -------------------------------------------------------------------------------- /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/bebop.main.mix: -------------------------------------------------------------------------------- 1 | Multirotor mixer for Parrot Bebop 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/claire.aux.mix: -------------------------------------------------------------------------------- 1 | # mixer for the CruiseAder Claire tilt mechansim servo, aileron and elevator 2 | 3 | ======================================================================= 4 | 5 | 6 | Tilt mechanism servo mixer 7 | 8 | --------------------------- 9 | 10 | M: 1 11 | 12 | O: 10000 10000 0 -10000 10000 13 | 14 | S: 1 4 10000 10000 0 -10000 10000 15 | 16 | 17 | 18 | Aileron mixers 19 | 20 | ------------- 21 | 22 | M: 1 23 | 24 | O: 10000 10000 0 -10000 10000 25 | 26 | S: 1 0 10000 10000 0 -10000 10000 27 | 28 | 29 | 30 | Elevator mixers 31 | 32 | ------------- 33 | 34 | M: 1 35 | 36 | O: 10000 10000 0 -10000 10000 37 | 38 | S: 1 1 -10000 -10000 0 -10000 10000 39 | -------------------------------------------------------------------------------- /ROMFS/px4fmu_common/mixers/claire.main.mix: -------------------------------------------------------------------------------- 1 | # CruiseAder Claire Main Multirotor mixer for PX4FMU 2 | 3 | # 4 | 5 | #=========================== 6 | 7 | R: 4x 10000 10000 10000 0 8 | -------------------------------------------------------------------------------- /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 | 5 | -------------------------------------------------------------------------------- /ROMFS/px4fmu_common/mixers/mount.aux.mix: -------------------------------------------------------------------------------- 1 | # Mount Mixer (e.g. Gimbal, servo-controlled gimbal, etc...) 2 | 3 | 4 | # pitch 5 | M: 1 6 | O: 10000 10000 0 -10000 10000 7 | S: 2 0 10000 10000 0 -10000 10000 8 | 9 | # roll 10 | M: 1 11 | O: 10000 10000 0 -10000 10000 12 | S: 2 1 10000 10000 0 -10000 10000 13 | 14 | # yaw 15 | M: 1 16 | O: 10000 10000 0 -10000 10000 17 | S: 2 2 10000 10000 0 -10000 10000 18 | 19 | # mode 20 | M: 1 21 | O: 10000 10000 0 -10000 10000 22 | S: 2 3 10000 10000 0 -10000 10000 23 | 24 | # retracts 25 | M: 1 26 | O: 10000 10000 0 -10000 10000 27 | S: 2 4 10000 10000 0 -10000 10000 28 | -------------------------------------------------------------------------------- /ROMFS/px4fmu_common/mixers/mount_legs.aux.mix: -------------------------------------------------------------------------------- 1 | 2 | # Roll channel for mount 3 | M: 1 4 | O: 10000 10000 0 -10000 10000 5 | S: 2 0 10000 10000 0 -10000 10000 6 | 7 | # Pitch channel for mount 8 | M: 1 9 | O: 10000 10000 0 -10000 10000 10 | S: 2 1 10000 10000 0 -10000 10000 11 | 12 | # Yaw channel for mount 13 | M: 1 14 | O: 10000 10000 0 -10000 10000 15 | S: 2 2 10000 10000 0 -10000 10000 16 | 17 | 18 | # mixer for left leg 19 | M: 1 20 | O: 10000 10000 0 -10000 10000 21 | S: 0 7 0 20000 -10000 -10000 10000 22 | 23 | # mixer for right leg 24 | M: 1 25 | O: 10000 10000 0 -10000 10000 26 | S: 0 7 0 20000 -10000 -10000 10000 27 | 28 | -------------------------------------------------------------------------------- /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/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 | Gimbal / payload mixer for last two channels 10 | ----------------------------------------------------- 11 | 12 | M: 1 13 | O: 10000 10000 0 -10000 10000 14 | S: 3 5 10000 10000 0 -10000 10000 15 | 16 | M: 1 17 | O: 10000 10000 0 -10000 10000 18 | S: 3 6 10000 10000 0 -10000 10000 19 | -------------------------------------------------------------------------------- /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 two channels 10 | ----------------------------------------------------- 11 | 12 | M: 1 13 | O: 10000 10000 0 -10000 10000 14 | S: 3 5 10000 10000 0 -10000 10000 15 | 16 | M: 1 17 | O: 10000 10000 0 -10000 10000 18 | S: 3 6 10000 10000 0 -10000 10000 19 | -------------------------------------------------------------------------------- /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 two channels 9 | ----------------------------------------------------- 10 | 11 | M: 1 12 | O: 10000 10000 0 -10000 10000 13 | S: 3 5 10000 10000 0 -10000 10000 14 | 15 | M: 1 16 | O: 10000 10000 0 -10000 10000 17 | S: 3 6 10000 10000 0 -10000 10000 18 | -------------------------------------------------------------------------------- /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: 3 5 10000 10000 0 -10000 10000 5 | M: 1 6 | O: 10000 10000 0 -10000 10000 7 | S: 3 6 10000 10000 0 -10000 10000 8 | -------------------------------------------------------------------------------- /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 | Z: 10 | 11 | # left elevon 12 | M: 2 13 | O: 10000 10000 0 -10000 10000 14 | S: 1 0 5000 5000 0 -10000 10000 15 | S: 1 1 5000 5000 0 -10000 10000 16 | 17 | # right elevon 18 | M: 2 19 | O: 10000 10000 0 -10000 10000 20 | S: 1 0 5000 5000 0 -10000 10000 21 | S: 1 1 -5000 -5000 0 -10000 10000 22 | 23 | # mixer for the virtual elevator 24 | M: 1 25 | O: 10000 10000 0 -10000 10000 26 | S: 1 1 10000 10000 0 -10000 10000 27 | -------------------------------------------------------------------------------- /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: 3 5 10000 10000 0 -10000 10000 14 | 15 | M: 1 16 | O: 10000 10000 0 -10000 10000 17 | S: 3 6 10000 10000 0 -10000 10000 18 | 19 | M: 1 20 | O: 10000 10000 0 -10000 10000 21 | S: 3 7 10000 10000 0 -10000 10000 22 | -------------------------------------------------------------------------------- /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_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/mixers/quad_test.mix: -------------------------------------------------------------------------------- 1 | Multirotor mixer for TEST 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 four 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 | 23 | M: 1 24 | O: 10000 10000 0 -10000 10000 25 | S: 0 7 10000 10000 0 -10000 10000 26 | -------------------------------------------------------------------------------- /ROMFS/px4fmu_test/unit_test_data/mavlink_tests/empty_dir/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ATLFlight/Firmware/77a23a043fbdfa880c704b4412103ca22f14b373/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/ATLFlight/Firmware/77a23a043fbdfa880c704b4412103ca22f14b373/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/ATLFlight/Firmware/77a23a043fbdfa880c704b4412103ca22f14b373/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/ATLFlight/Firmware/77a23a043fbdfa880c704b4412103ca22f14b373/ROMFS/px4fmu_test/unit_test_data/mavlink_tests/test_240.data -------------------------------------------------------------------------------- /ROMFS/sitl/mixers/delta_wing_sitl.main.mix: -------------------------------------------------------------------------------- 1 | Mixer for SITL plane 2 | ========================================================= 3 | 4 | Z: 5 | 6 | Z: 7 | 8 | # mixer for the rudder 9 | M: 1 10 | O: 10000 10000 0 -10000 10000 11 | S: 0 2 10000 10000 0 -10000 10000 12 | 13 | # mixer for the flaps 14 | M: 1 15 | O: 10000 10000 0 -10000 10000 16 | S: 0 4 10000 10000 0 -10000 10000 17 | 18 | # mixer for the pusher/puller throttle 19 | M: 1 20 | O: 10000 10000 0 -10000 10000 21 | S: 0 3 0 20000 -10000 -10000 10000 22 | 23 | # mixer for the left aileron 24 | M: 2 25 | O: 10000 10000 0 -10000 10000 26 | S: 0 0 -4000 -4000 0 -10000 10000 27 | S: 0 1 10000 10000 0 -10000 10000 28 | 29 | # mixer for the right aileron 30 | M: 2 31 | O: 10000 10000 0 -10000 10000 32 | S: 0 0 4000 4000 0 -10000 10000 33 | S: 0 1 10000 10000 0 -10000 10000 34 | 35 | # mixer for the elevator 36 | M: 1 37 | O: 10000 10000 0 -10000 10000 38 | S: 0 1 -10000 -10000 0 -10000 10000 39 | -------------------------------------------------------------------------------- /ROMFS/sitl/mixers/plane_sitl.main.mix: -------------------------------------------------------------------------------- 1 | Mixer for SITL plane 2 | ========================================================= 3 | 4 | Z: 5 | 6 | Z: 7 | 8 | # mixer for the rudder 9 | M: 1 10 | O: 10000 10000 0 -10000 10000 11 | S: 0 2 10000 10000 0 -10000 10000 12 | 13 | # mixer for the flaps 14 | M: 1 15 | O: 10000 10000 0 -10000 10000 16 | S: 0 4 10000 10000 0 -10000 10000 17 | 18 | # mixer for the pusher/puller throttle 19 | M: 1 20 | O: 10000 10000 0 -10000 10000 21 | S: 0 3 0 20000 -10000 -10000 10000 22 | 23 | # mixer for the left aileron 24 | M: 1 25 | O: 10000 10000 0 -10000 10000 26 | S: 0 0 -10000 -10000 0 -10000 10000 27 | 28 | # mixer for the right aileron 29 | M: 1 30 | O: 10000 10000 0 -10000 10000 31 | S: 0 0 10000 10000 0 -10000 10000 32 | 33 | # mixer for the elevator 34 | M: 1 35 | O: 10000 10000 0 -10000 10000 36 | S: 0 1 10000 10000 0 -10000 10000 37 | -------------------------------------------------------------------------------- /ROMFS/sitl/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. The plane has two ailerons and one elevator. 5 | 6 | R: 4x 10000 10000 10000 0 7 | 8 | # mixer for the pusher/puller throttle 9 | M: 1 10 | O: 10000 10000 0 -10000 10000 11 | S: 1 3 0 20000 -10000 -10000 10000 12 | 13 | # mixer for the left aileron 14 | M: 1 15 | O: 10000 10000 0 -10000 10000 16 | S: 1 0 10000 10000 0 -10000 10000 17 | 18 | # mixer for the right aileron 19 | M: 1 20 | O: 10000 10000 0 -10000 10000 21 | S: 1 0 -10000 -10000 0 -10000 10000 22 | 23 | # mixer for the elevator 24 | M: 1 25 | O: 10000 10000 0 -10000 10000 26 | S: 1 1 10000 10000 0 -10000 10000 27 | -------------------------------------------------------------------------------- /ROMFS/tap_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 | if tap_esc start -d /dev/ttyS4 -n 4 16 | then 17 | fi 18 | set OUTPUT_MODE tap_esc 19 | param set BAT_N_CELLS 4 20 | 21 | set MIXER quad_x 22 | -------------------------------------------------------------------------------- /ROMFS/tap_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 | param set MAV_TYPE 13 17 | param set MC_YAWRATE_P 0.12 18 | param set CAL_MAG0_ROT 6 19 | 20 | if tap_esc start -d /dev/ttyS4 -n 6 21 | then 22 | fi 23 | set OUTPUT_MODE tap_esc 24 | 25 | set MIXER hexa_x 26 | -------------------------------------------------------------------------------- /ROMFS/tap_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 | ekf2 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 | -------------------------------------------------------------------------------- /ROMFS/tap_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 | fi 16 | 17 | # This is the gimbal pass mixer 18 | set MIXER_AUX pass 19 | set PWM_AUX_RATE 50 20 | set PWM_AUX_OUT 1234 21 | set PWM_AUX_DISARMED 1500 22 | set PWM_AUX_MIN 1000 23 | set PWM_AUX_MAX 2000 24 | -------------------------------------------------------------------------------- /ROMFS/tap_common/init.d/rc.mc_apps: -------------------------------------------------------------------------------- 1 | #!nsh 2 | # 3 | # Standard apps for multirotors: 4 | # att & pos estimator, att & pos control. 5 | # 6 | 7 | 8 | ekf2 start 9 | 10 | mc_att_control start 11 | 12 | mc_pos_control start 13 | 14 | # 15 | # Start Land Detector 16 | # 17 | land_detector start multicopter 18 | -------------------------------------------------------------------------------- /ROMFS/tap_common/init.d/rc.mc_defaults: -------------------------------------------------------------------------------- 1 | #!nsh 2 | 3 | set VEHICLE_TYPE mc 4 | 5 | if [ $AUTOCNF == yes ] 6 | then 7 | param set PWM_DISARMED 900 8 | param set PWM_MIN 1075 9 | param set PWM_MAX 1950 10 | fi 11 | 12 | param set NAV_ACC_RAD 2.0 13 | param set MIS_TAKEOFF_ALT 2.5 14 | param set RTL_RETURN_ALT 30.0 15 | param set RTL_DESCEND_ALT 10.0 16 | param set RTL_LAND_DELAY 0 17 | param set MPC_THR_MIN 0.10 18 | param set MPC_MANTHR_MIN 0.04 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 | -------------------------------------------------------------------------------- /ROMFS/tap_common/init.d/rc.sensors: -------------------------------------------------------------------------------- 1 | #!nsh 2 | # 3 | # Standard startup script for TAP v1 onboard sensor drivers. 4 | # 5 | 6 | if adc start 7 | then 8 | fi 9 | 10 | if ms5611 -T 5607 -I start 11 | then 12 | fi 13 | 14 | # External I2C bus 15 | if hmc5883 -C -T -X start 16 | then 17 | fi 18 | 19 | # Internal I2C bus 20 | if mpu6000 -I -T 6000 start 21 | then 22 | fi 23 | 24 | # Wait 50 ms for sensors (because we need to wait for the HRT and work queue callbacks to fire) 25 | usleep 50000 26 | if sensors start 27 | then 28 | fi 29 | -------------------------------------------------------------------------------- /ROMFS/tap_common/init.d/rc.vtol_apps: -------------------------------------------------------------------------------- 1 | #!nsh 2 | # 3 | # Standard apps for vtol: 4 | # att & pos estimator, att & pos control. 5 | # 6 | # 7 | 8 | 9 | #--------------------------------------- 10 | # Estimator group selction 11 | # 12 | ekf2 start 13 | 14 | vtol_att_control start 15 | mc_att_control start 16 | mc_pos_control start 17 | fw_att_control start 18 | fw_pos_control_l1 start 19 | 20 | # 21 | # Start Land Detector 22 | # Multicopter for now until we have something for VTOL 23 | # 24 | land_detector start vtol 25 | -------------------------------------------------------------------------------- /ROMFS/tap_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 | # 12 | # Default parameters for mission and position handling 13 | # 14 | param set NAV_ACC_RAD 3 15 | param set MPC_TKO_SPEED 1.0 16 | param set MPC_LAND_SPEED 0.7 17 | param set MPC_Z_VEL_MAX 1.5 18 | param set MPC_XY_VEL_MAX 4.0 19 | param set MIS_YAW_TMT 10 20 | param set MPC_ACC_HOR_MAX 2.0 21 | param set RTL_LAND_DELAY 0 22 | fi 23 | 24 | # set environment variables (!= parameters) 25 | set PWM_RATE 400 26 | # tell the mixer to use parameters for these instead 27 | set PWM_DISARMED p:PWM_DISARMED 28 | set PWM_MIN p:PWM_MIN 29 | set PWM_MAX p:PWM_MAX 30 | 31 | # Transitional support: ensure suitable PWM min/max param values 32 | if param compare PWM_MIN 1000 33 | then 34 | param set PWM_MIN 1075 35 | fi 36 | if param compare PWM_MAX 2000 37 | then 38 | param set PWM_MAX 1950 39 | fi 40 | if param compare PWM_DISARMED 0 41 | then 42 | param set PWM_DISARMED 900 43 | fi 44 | -------------------------------------------------------------------------------- /ROMFS/tap_common/mixers/gear.mix: -------------------------------------------------------------------------------- 1 | # 2 | # This maps actuator_controls_0[7] to the first and only PWM output 3 | # 4 | 5 | M: 1 6 | O: 10000 10000 0 -10000 10000 7 | S: 0 7 10000 10000 0 -10000 10000 8 | -------------------------------------------------------------------------------- /ROMFS/tap_common/mixers/hexa_x.main.mix: -------------------------------------------------------------------------------- 1 | # Hexa X 2 | 3 | R: 6x 10000 10000 10000 0 4 | -------------------------------------------------------------------------------- /ROMFS/tap_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: 3 5 10000 10000 0 -10000 10000 5 | M: 1 6 | O: 10000 10000 0 -10000 10000 7 | S: 3 6 10000 10000 0 -10000 10000 8 | -------------------------------------------------------------------------------- /Tools/.gitignore: -------------------------------------------------------------------------------- 1 | parameters.wiki 2 | parameters.xml 3 | -------------------------------------------------------------------------------- /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 | 27 | # Make sure they are synced to the file system 28 | echo "Syncing FS..." 29 | adb shell sync 30 | -------------------------------------------------------------------------------- /Tools/adb_upload_to_bebop.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | if [ -z ${BEBOP_IP+x} ]; then 4 | ip=192.168.42.1 5 | echo "\$BEBOP_IP is not set (use default: $ip)" 6 | else 7 | ip=$BEBOP_IP 8 | echo "\$BEBOP_IP is set to $ip" 9 | fi 10 | port=9050 11 | 12 | echo "Connecting to bebop: $ip:$port" 13 | 14 | # adb returns also 0 as exit status if the connection fails 15 | adb_return=$(adb connect $ip:$port) 16 | adb_status=$(echo $adb_return | cut -f 1 -d " ") 17 | 18 | if [[ $adb_status == "unable" ]]; then 19 | 20 | echo "" 21 | echo "Connection with Parrot Bebop could not be established:" 22 | echo " Make sure you are connected with the Bebop's WiFi and" 23 | echo " enable access to the board by pressing the power button 4 times." 24 | echo "" 25 | exit 50 26 | 27 | fi 28 | 29 | echo "Connection successfully established" 30 | 31 | sleep 1 32 | 33 | adb shell mount -o remount,rw / 34 | adb shell touch /home/root/parameters 35 | 36 | ${RPI_TOOLCHAIN_DIR}/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/arm-linux-gnueabihf-strip \ 37 | -R .comment -R .gnu.version \ 38 | ../build_posix_bebop_default/src/firmware/posix/px4 39 | 40 | ../Tools/adb_upload.sh $@ 41 | 42 | echo "Disconnecting from bebop" 43 | adb disconnect 44 | -------------------------------------------------------------------------------- /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/check_code_style.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | FILE=$1 4 | DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd ) 5 | 6 | if [ -f "$FILE" ]; then 7 | ${DIR}/fix_code_style.sh --dry-run $FILE | grep --quiet Formatted 8 | if [[ $? -eq 0 ]]; then 9 | ${DIR}/fix_code_style.sh --quiet < $FILE > $FILE.pretty 10 | 11 | echo 12 | git --no-pager diff --no-index --minimal --histogram --color=always $FILE $FILE.pretty 13 | rm -f $FILE.pretty 14 | echo 15 | 16 | if [[ $PX4_ASTYLE_FIX -eq 1 ]]; then 17 | ${DIR}/fix_code_style.sh $FILE 18 | else 19 | echo $FILE 'bad formatting, please run "make format" or "./Tools/fix_code_style.sh' $FILE'"' 20 | exit 1 21 | fi 22 | fi 23 | fi 24 | -------------------------------------------------------------------------------- /Tools/files_to_check_code_style.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | set -eu 3 | 4 | PATTERN="-e ." 5 | 6 | if [ $# -gt 0 ] 7 | then 8 | PATTERN="$1" 9 | fi 10 | 11 | exec find src \ 12 | -path src/examples/attitude_estimator_ekf -prune -o \ 13 | -path src/examples/ekf_att_pos_estimator -prune -o \ 14 | -path src/lib/DriverFramework -prune -o \ 15 | -path src/lib/ecl -prune -o \ 16 | -path src/lib/external_lgpl -prune -o \ 17 | -path src/lib/mathlib -prune -o \ 18 | -path src/lib/matrix -prune -o \ 19 | -path src/modules/attitude_estimator_ekf -prune -o \ 20 | -path src/modules/commander -prune -o \ 21 | -path src/modules/mavlink -prune -o \ 22 | -path src/modules/navigator -prune -o \ 23 | -path src/modules/sdlog2 -prune -o \ 24 | -path src/modules/systemlib/uthash -prune -o \ 25 | -path src/modules/uavcan -prune -o \ 26 | -path src/modules/uavcan/libuavcan -prune -o \ 27 | -type f \( -name "*.c" -o -name "*.h" -o -name "*.cpp" -o -name "*.hpp" \) | grep $PATTERN 28 | 29 | -------------------------------------------------------------------------------- /Tools/fix_code_style.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | if [[ $# -eq 0 ]] ; then 4 | exit 0 5 | fi 6 | 7 | DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd ) 8 | astyle \ 9 | --options=$DIR/astylerc \ 10 | --preserve-date \ 11 | $* 12 | -------------------------------------------------------------------------------- /Tools/jmavsim_run.sh: -------------------------------------------------------------------------------- 1 | #! /bin/bash 2 | 3 | SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" 4 | cd "$SCRIPT_DIR/jMAVSim" 5 | 6 | udp_port=14560 7 | extra_args= 8 | baudrate=921600 9 | device= 10 | while getopts ":b:d:p:q" opt; do 11 | case $opt in 12 | b) 13 | baudrate=$OPTARG 14 | ;; 15 | d) 16 | device="$OPTARG" 17 | ;; 18 | p) 19 | udp_port=$OPTARG 20 | ;; 21 | q) 22 | extra_args="$extra_args -qgc" 23 | ;; 24 | \?) 25 | echo "Invalid option: -$OPTARG" >&2 26 | exit 1 27 | ;; 28 | esac 29 | done 30 | 31 | if [ "$device" == "" ]; then 32 | device="-udp 127.0.0.1:$udp_port" 33 | else 34 | device="-serial $device $baudrate" 35 | fi 36 | 37 | ant create_run_jar copy_res 38 | cd out/production 39 | java -Djava.ext.dirs= -jar jmavsim_run.jar $device $extra_args 40 | -------------------------------------------------------------------------------- /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/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/qgc_meta_sync.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | make px4fmu-v2_default 4 | cp build_px4fmu-v2_default/parameters.xml ../qgroundcontrol/src/FirmwarePlugin/PX4/PX4ParameterFactMetaData.xml 5 | cp build_px4fmu-v2_default/airframes.xml ../qgroundcontrol/src/AutoPilotPlugins/PX4/AirframeFactMetaData.xml 6 | -------------------------------------------------------------------------------- /Tools/scp_upload.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | if [[ "$#" < 2 ]]; then 4 | echo "usage: scp_upload.sh SRC1 [SRC2 ...] DEST" 5 | exit 6 | fi 7 | 8 | if [ -z ${AUTOPILOT_HOST+x} ]; then 9 | host=px4autopilot 10 | echo "\$AUTOPILOT_HOST is not set (use default: $host)" 11 | else 12 | host=$AUTOPILOT_HOST 13 | echo "\$AUTOPILOT_HOST is set to $host" 14 | fi 15 | 16 | echo "Uploading..." 17 | 18 | # Get last argument 19 | for last; do true; done 20 | 21 | # Go through source files and push them one by one. 22 | i=0 23 | for arg 24 | do 25 | if [[ $((i+1)) == "$#" ]]; then 26 | break 27 | fi 28 | # echo "Pushing $arg to $last" 29 | #adb push $arg $last 30 | scp $arg pi@$host:$last 31 | ((i+=1)) 32 | done 33 | -------------------------------------------------------------------------------- /Tools/sdlog2/logconv.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ATLFlight/Firmware/77a23a043fbdfa880c704b4412103ca22f14b373/Tools/sdlog2/logconv.m -------------------------------------------------------------------------------- /Tools/setup_gazebo.bash: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # Setup environment to make PX4 visible to Gazebo. 4 | # 5 | # Note, this is not necessary if using a ROS catkin workspace with the px4 6 | # package as the paths are exported. 7 | # 8 | # License: according to LICENSE.md in the root directory of the PX4 Firmware repository 9 | 10 | if [ "$#" != 2 ] 11 | then 12 | echo usage: source setup_gazebo.bash src_dir build_dir 13 | echo "" 14 | return 1 15 | fi 16 | 17 | SRC_DIR=$1 18 | BUILD_DIR=$2 19 | 20 | # setup Gazebo env and update package path 21 | export GAZEBO_PLUGIN_PATH=${BUILD_DIR}/build_gazebo:${GAZEBO_PLUGIN_PATH} 22 | export GAZEBO_MODEL_PATH=${GAZEBO_MODEL_PATH}:${SRC_DIR}/Tools/sitl_gazebo/models 23 | # Disabling the remote model download seems only necessary with Gazebo 6 24 | #export GAZEBO_MODEL_DATABASE_URI="" 25 | export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${SRC_DIR}/Tools/sitl_gazebo/Build/msgs/:${BUILD_DIR}/build_gazebo 26 | echo -e "GAZEBO_PLUGIN_PATH $GAZEBO_PLUGIN_PATH" 27 | echo -e "GAZEBO_MODEL_PATH $GAZEBO_MODEL_PATH" 28 | echo -e "LD_LIBRARY_PATH $LD_LIBRARY_PATH" 29 | -------------------------------------------------------------------------------- /Tools/upload.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env 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*,/dev/serial/by-id/usb-The_Autopilot*,/dev/serial/by-id/usb-Bitcraze*,/dev/serial/by-id/pci-Bitcraze*," 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 29 | -------------------------------------------------------------------------------- /circle.yml: -------------------------------------------------------------------------------- 1 | machine: 2 | services: 3 | - docker 4 | 5 | checkout: 6 | post: 7 | # workaround for known git bug where attempting to fetch a missing commit fails early on the first try 8 | - git submodule update --init --recursive || true 9 | - git submodule sync --recursive 10 | - git submodule deinit -f . 11 | - git submodule update --init --recursive --force 12 | 13 | dependencies: 14 | pre: 15 | - docker pull px4io/px4-dev-nuttx-gcc_next:2016-10-20 16 | 17 | test: 18 | override: 19 | - docker run --rm -v `pwd`:`pwd`:rw -e CI=true -w=`pwd` --user=$UID -it px4io/px4-dev-nuttx-gcc_next:2016-10-20 /bin/bash -c "make quick_check" 20 | 21 | general: 22 | artifacts: 23 | - "build_px4fmu-v2_default/parameters.xml" 24 | - "build_px4fmu-v2_default/airframes.xml" 25 | - "build_.*/src/firmware/nuttx/.*.px4" 26 | 27 | -------------------------------------------------------------------------------- /cmake/configs/posix_eagle_default.cmake: -------------------------------------------------------------------------------- 1 | # The Eagle board is the first generation Snapdragon Flight board by Qualcomm. 2 | # 3 | # This cmake config builds for POSIX, so the part of the flight stack running 4 | # on the Linux side of the Snapdragon. 5 | include(configs/posix_sdflight_default) 6 | 7 | set(CMAKE_TOOLCHAIN_FILE ${PX4_SOURCE_DIR}/cmake/cmake_hexagon/toolchain/Toolchain-arm-linux-gnueabihf.cmake) 8 | 9 | set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${PX4_SOURCE_DIR}/cmake/cmake_hexagon") 10 | 11 | set(CONFIG_SHMEM "1") 12 | 13 | # This definition allows to differentiate if this just the usual POSIX build 14 | # or if it is for the Snapdragon. 15 | add_definitions( 16 | -D__PX4_POSIX_EAGLE 17 | ) 18 | -------------------------------------------------------------------------------- /cmake/configs/posix_eagle_muorb.cmake: -------------------------------------------------------------------------------- 1 | include(posix/px4_impl_posix) 2 | 3 | set(CMAKE_TOOLCHAIN_FILE ${PX4_SOURCE_DIR}/cmake/cmake_hexagon/toolchain/Toolchain-arm-linux-gnueabihf.cmake) 4 | 5 | set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${PX4_SOURCE_DIR}/cmake/cmake_hexagon") 6 | 7 | set(config_generate_parameters_scope ALL) 8 | 9 | # Get $QC_SOC_TARGET from environment if existing. 10 | if (DEFINED ENV{QC_SOC_TARGET}) 11 | set(QC_SOC_TARGET $ENV{QC_SOC_TARGET}) 12 | else() 13 | set(QC_SOC_TARGET "APQ8074") 14 | endif() 15 | 16 | set(config_module_list 17 | drivers/device 18 | 19 | modules/uORB 20 | 21 | lib/DriverFramework/framework 22 | 23 | platforms/posix/px4_layer 24 | platforms/posix/work_queue 25 | 26 | modules/muorb/krait 27 | ) 28 | 29 | -------------------------------------------------------------------------------- /cmake/configs/posix_excelsior_default.cmake: -------------------------------------------------------------------------------- 1 | # Excelsior is the code name of a board currently in development. 2 | # 3 | # This cmake config builds for POSIX, so the part of the flight stack running 4 | # on the Linux side of the Snapdragon. 5 | include(configs/posix_sdflight_default) 6 | 7 | # This definition allows to differentiate the specific board. 8 | add_definitions( 9 | -D__PX4_POSIX_EXCELSIOR 10 | ) -------------------------------------------------------------------------------- /cmake/configs/posix_rpi_cross.cmake: -------------------------------------------------------------------------------- 1 | include(configs/posix_rpi_common) 2 | 3 | if("$ENV{RPI_USE_CLANG}" STREQUAL "1") 4 | set(CMAKE_TOOLCHAIN_FILE ${PX4_SOURCE_DIR}/cmake/toolchains/Toolchain-arm-linux-gnueabihf-raspbian-clang.cmake) 5 | else() 6 | set(CMAKE_TOOLCHAIN_FILE ${PX4_SOURCE_DIR}/cmake/toolchains/Toolchain-arm-linux-gnueabihf-raspbian.cmake) 7 | endif() 8 | 9 | 10 | set(CMAKE_PROGRAM_PATH 11 | "${RPI_TOOLCHAIN_DIR}/gcc-linaro-arm-linux-gnueabihf-raspbian/bin" 12 | ${CMAKE_PROGRAM_PATH} 13 | ) 14 | -------------------------------------------------------------------------------- /cmake/configs/posix_rpi_native.cmake: -------------------------------------------------------------------------------- 1 | include(configs/posix_rpi_common) 2 | 3 | set(CMAKE_TOOLCHAIN_FILE ${PX4_SOURCE_DIR}/cmake/toolchains/Toolchain-native.cmake) 4 | -------------------------------------------------------------------------------- /cmake/configs/posix_sitl_broadcast.cmake: -------------------------------------------------------------------------------- 1 | include(cmake/configs/posix_sitl_default.cmake) 2 | 3 | # This config is just the same as posix_sitl_default. 4 | -------------------------------------------------------------------------------- /cmake/configs/posix_sitl_ekf2.cmake: -------------------------------------------------------------------------------- 1 | include(cmake/configs/posix_sitl_default.cmake) 2 | 3 | set(config_sitl_rcS_dir 4 | posix-configs/SITL/init/ekf2 5 | ) 6 | -------------------------------------------------------------------------------- /cmake/configs/posix_sitl_inav.cmake: -------------------------------------------------------------------------------- 1 | include(cmake/configs/posix_sitl_default.cmake) 2 | 3 | set(config_sitl_rcS_dir 4 | posix-configs/SITL/init/inav 5 | ) 6 | 7 | -------------------------------------------------------------------------------- /cmake/configs/posix_sitl_lpe.cmake: -------------------------------------------------------------------------------- 1 | include(cmake/configs/posix_sitl_default.cmake) 2 | 3 | # This is already the default, but lets explicitly set it again to lpe. 4 | set(config_sitl_rcS_dir 5 | posix-configs/SITL/init/lpe 6 | ) 7 | -------------------------------------------------------------------------------- /cmake/configs/posix_sitl_replay.cmake: -------------------------------------------------------------------------------- 1 | include(posix/px4_impl_posix) 2 | 3 | set(CMAKE_TOOLCHAIN_FILE ${PX4_SOURCE_DIR}/cmake/toolchains/Toolchain-native.cmake) 4 | 5 | set(config_module_list 6 | drivers/device 7 | drivers/boards/sitl 8 | platforms/common 9 | platforms/posix/px4_layer 10 | platforms/posix/work_queue 11 | systemcmds/param 12 | systemcmds/ver 13 | systemcmds/perf 14 | modules/uORB 15 | modules/param 16 | modules/systemlib 17 | modules/ekf2 18 | modules/ekf2_replay 19 | modules/sdlog2 20 | modules/logger 21 | lib/controllib 22 | lib/mathlib 23 | lib/mathlib/math/filter 24 | lib/conversion 25 | lib/ecl 26 | lib/external_lgpl 27 | lib/geo 28 | lib/geo_lookup 29 | lib/DriverFramework/framework 30 | ) 31 | 32 | set(config_extra_builtin_cmds 33 | serdis 34 | sercon 35 | ) 36 | 37 | set(config_sitl_rcS_dir 38 | posix-configs/SITL/init/replay 39 | CACHE INTERNAL "init script dir for sitl" 40 | ) 41 | 42 | set(config_sitl_viewer 43 | replay 44 | CACHE STRING "viewer for sitl" 45 | ) 46 | set_property(CACHE config_sitl_viewer 47 | PROPERTY STRINGS "replay;none") 48 | 49 | set(config_sitl_debugger 50 | disable 51 | CACHE STRING "debugger for sitl" 52 | ) 53 | set_property(CACHE config_sitl_debugger 54 | PROPERTY STRINGS "disable;gdb;lldb") 55 | -------------------------------------------------------------------------------- /cmake/configs/qurt_eagle_default.cmake: -------------------------------------------------------------------------------- 1 | # The Eagle board is the first generation Snapdragon Flight board by Qualcomm. 2 | # 3 | # This cmake config builds for QURT which is the operating system running on 4 | # the DSP side. 5 | 6 | # The config between different QURT builds is shared. 7 | include(configs/qurt_sdflight_default) 8 | 9 | # This definition allows to differentiate the specific board. 10 | add_definitions( 11 | -D__PX4_QURT_EAGLE 12 | ) 13 | -------------------------------------------------------------------------------- /cmake/configs/qurt_eagle_hello.cmake: -------------------------------------------------------------------------------- 1 | include(qurt/px4_impl_qurt) 2 | 3 | if ("$ENV{HEXAGON_SDK_ROOT}" STREQUAL "") 4 | message(FATAL_ERROR "Enviroment variable HEXAGON_SDK_ROOT must be set") 5 | else() 6 | set(HEXAGON_SDK_ROOT $ENV{HEXAGON_SDK_ROOT}) 7 | endif() 8 | 9 | set(config_generate_parameters_scope ALL) 10 | 11 | # Get $QC_SOC_TARGET from environment if existing. 12 | if (DEFINED ENV{QC_SOC_TARGET}) 13 | set(QC_SOC_TARGET $ENV{QC_SOC_TARGET}) 14 | else() 15 | set(QC_SOC_TARGET "APQ8074") 16 | endif() 17 | 18 | set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${PX4_SOURCE_DIR}/cmake/cmake_hexagon") 19 | include(toolchain/Toolchain-qurt) 20 | include(qurt_flags) 21 | include_directories(${HEXAGON_SDK_INCLUDES}) 22 | 23 | set(config_module_list 24 | drivers/device 25 | 26 | # 27 | # System commands 28 | # 29 | systemcmds/param 30 | 31 | # 32 | # Library modules 33 | # 34 | modules/param 35 | modules/systemlib 36 | modules/uORB 37 | 38 | # 39 | # QuRT port 40 | # 41 | platforms/common 42 | platforms/qurt/px4_layer 43 | platforms/posix/work_queue 44 | platforms/qurt/tests/hello 45 | ) 46 | 47 | -------------------------------------------------------------------------------- /cmake/configs/qurt_excelsior_default.cmake: -------------------------------------------------------------------------------- 1 | # Excelsior is the code name of a board currently in development. 2 | # 3 | # This cmake config builds for QURT which is the operating system running on 4 | # the DSP side. 5 | 6 | # The config between different QURT builds is shared. 7 | include(configs/qurt_sdflight_default) 8 | 9 | # This definition allows to differentiate the specific board. 10 | add_definitions( 11 | -D__PX4_QURT_EXCELSIOR 12 | ) 13 | -------------------------------------------------------------------------------- /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/templates/build_git_version.h.in: -------------------------------------------------------------------------------- 1 | /* Auto Magically Generated file */ 2 | /* Do not edit! */ 3 | #define PX4_GIT_VERSION_STR "@git_version@" 4 | #define PX4_GIT_VERSION_BINARY 0x@git_version_short@ 5 | #define PX4_GIT_TAG_STR "@git_tag@" 6 | -------------------------------------------------------------------------------- /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: px4 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 grep rm mkdir nm 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/python_src/px4_it/dronekit/VTOL_TAKEOFF.mission: -------------------------------------------------------------------------------- 1 | QGC WPL 110 2 | 1 0 3 84 0.0 0.0 -0.0 0.0 47.3975105286 8.55026626587 10.0 1 3 | 1 0 3 16 0.0 0.0 -0.0 0.0 47.395450592 8.55018424988 10.0 1 4 | 2 0 3 16 0.0 0.0 -0.0 0.0 47.3954582214 8.54566764832 10.0 1 5 | 3 0 3 85 0.0 0.0 -0.0 0.0 47.3977355957 8.54561138153 10.0 1 6 | -------------------------------------------------------------------------------- /integrationtests/python_src/px4_it/mavros/vtol_new_1.txt: -------------------------------------------------------------------------------- 1 | # New style transitions, takeoff not at home 2 | QGC WPL 110 3 | 0 1 3 84 15.0 0 0 0 47.397731862593744 8.543269295853861 12.0 1 4 | 1 0 3 85 0.0 0.0 -0.0 0.0 47.3990753922183 8.5432371088360526 0.0 1 5 | -------------------------------------------------------------------------------- /integrationtests/python_src/px4_it/mavros/vtol_new_2.txt: -------------------------------------------------------------------------------- 1 | # New style transitions, takeoff at home 2 | QGC WPL 110 3 | 0 1 3 84 15.0 0 0 0 47.397746387399621 8.5455920888607579 12.0 1 4 | 1 0 3 16 0.0 0.0 0.0 0.0 47.399093548895856 8.5455438069836305 12.0 1 5 | 2 0 3 85 0.0 0.0 -0.0 0.0 47.39903545 8.5432263800000001 0.0 1 6 | -------------------------------------------------------------------------------- /integrationtests/python_src/px4_it/mavros/vtol_old_1.txt: -------------------------------------------------------------------------------- 1 | # Old style transitions, takeoff and landing WPs away from home and last WP 2 | QGC WPL 110 3 | 0 1 3 22 15.0 0 0 0 47.398046406687619 8.5458366721115908 12.0 1 4 | 1 0 2 3000 4 0.0 0.0 0.0 47.398033142089844 8.5457897186279297 12.0 1 5 | 2 0 3 16 0 0.0 0.0 0.0 47.399269104003906 8.5455722808837891 12.0 1 6 | 3 0 3 16 0 0.0 0.0 0.0 47.399281145681528 8.547910568913295 12.0 1 7 | 4 0 2 3000 3 0.0 0.0 0.0 47.397785186767578 8.545262336730957 12.0 1 8 | 5 0 3 21 25.0 0.0 0.0 0.0 47.398884865088675 8.547918116539563 12.0 1 9 | -------------------------------------------------------------------------------- /integrationtests/python_src/px4_it/mavros/vtol_old_2.txt: -------------------------------------------------------------------------------- 1 | # Old style transitions, takeoff WP at home location, landing WP at last WP location 2 | QGC WPL 110 3 | 0 1 3 22 15.0 0 0 0 47.397740722711738 8.5455944102696719 12.0 1 4 | 1 0 2 3000 4 0.0 0.0 0.0 47.397732380000001 8.5458224099999995 12.0 1 5 | 2 0 3 16 0 0.0 0.0 0.0 47.397749067235559 8.5429755110031351 12.0 1 6 | 3 0 3 16 0 0.0 0.0 0.0 47.399213119631852 8.5430124879018479 12.0 1 7 | 4 0 2 3000 3 0.0 0.0 0.0 47.399158900000003 8.5429077299999996 12.0 1 8 | 5 0 3 21 25.0 0.0 0.0 0.0 47.399211883544922 8.5430123448444419 12.0 1 9 | -------------------------------------------------------------------------------- /integrationtests/python_src/px4_it/mavros/vtol_old_3.txt: -------------------------------------------------------------------------------- 1 | # Old style transitions, takeoff with normal WP 2 | QGC WPL 110 3 | 0 1 3 16 15.0 0 0 0 47.398157669127094 8.5460336317115377 12.0 1 4 | 1 0 2 3000 4 0.0 0.0 0.0 47.398033142089844 8.5457897186279297 12.0 1 5 | 2 0 3 16 0 0.0 0.0 0.0 47.399269104003906 8.5455722808837891 12.0 1 6 | -------------------------------------------------------------------------------- /integrationtests/python_src/px4_it/util/TODO.md: -------------------------------------------------------------------------------- 1 | TODO: Adopt to new SITL 2 | -------------------------------------------------------------------------------- /integrationtests/run_container.bash: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # Run container and start test execution 4 | # 5 | # License: according to LICENSE.md in the root directory of the PX4 Firmware repository 6 | set -e 7 | 8 | if [ -z "$WORKSPACE" ]; then 9 | echo "\$WORKSPACE not set" 10 | exit 1 11 | fi 12 | 13 | # Pulling latest image 14 | echo "===> pull latest Docker image" 15 | docker pull px4io/px4-dev-ros 16 | 17 | # removing some images might fail 18 | set +e 19 | docker rmi $(docker images --filter "dangling=true" -q --no-trunc) 20 | set -e 21 | echo "<===" 22 | 23 | # 24 | # Running SITL testing container 25 | # Assuming that necessary source projects, including this one, are cloned in the build server workspace of this job. 26 | # 27 | echo "===> run container" 28 | docker run --rm -v "$WORKSPACE:/job:rw" px4io/px4-dev-ros bash "/job/Firmware/integrationtests/run_tests.bash" /job/Firmware 29 | echo "<===" 30 | -------------------------------------------------------------------------------- /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.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/mavros_posix_tests_iris.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /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 | bool armed # Set to true if system is armed 3 | bool prearmed # Set to true if the actuator safety is disabled but motors are not armed 4 | bool ready_to_arm # Set to true if system is ready to be armed 5 | bool lockdown # Set to true if actuators are forced to being disabled (due to emergency or HIL) 6 | bool force_failsafe # Set to true if the actuators are forced to the failsafe position 7 | bool in_esc_calibration_mode # IO/FMU should ignore messages from the actuator controls topics 8 | -------------------------------------------------------------------------------- /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_sample # the timestamp the data this control response is based on was sampled 14 | float32[8] control 15 | 16 | # TOPICS actuator_controls actuator_controls_0 actuator_controls_1 actuator_controls_2 actuator_controls_3 17 | # TOPICS actuator_controls_virtual_fw actuator_controls_virtual_mc 18 | 19 | -------------------------------------------------------------------------------- /msg/actuator_direct.msg: -------------------------------------------------------------------------------- 1 | uint8 NUM_ACTUATORS_DIRECT = 16 2 | uint32 nvalues # number of valid values 3 | float32[16] values # actuator values, from -1 to 1 4 | -------------------------------------------------------------------------------- /msg/actuator_outputs.msg: -------------------------------------------------------------------------------- 1 | uint8 NUM_ACTUATOR_OUTPUTS = 16 2 | uint8 NUM_ACTUATOR_OUTPUT_GROUPS = 4 # for sanity checking 3 | uint32 noutputs # valid outputs 4 | float32[16] output # output data, in natural output units 5 | -------------------------------------------------------------------------------- /msg/adc_report.msg: -------------------------------------------------------------------------------- 1 | int16[8] channel_id # ADC channel IDs, negative for non-existent 2 | float32[8] channel_value # ADC channel value in volt, valid if channel ID is positive 3 | -------------------------------------------------------------------------------- /msg/airspeed.msg: -------------------------------------------------------------------------------- 1 | float32 indicated_airspeed_m_s # indicated airspeed in meters per second, -1 if unknown 2 | float32 true_airspeed_m_s # true filtered airspeed in meters per second, -1 if unknown 3 | float32 true_airspeed_unfiltered_m_s # true airspeed in meters per second, -1 if unknown 4 | float32 air_temperature_celsius # air temperature in degrees celsius, -1000 if unknown 5 | float32 confidence # confidence value from 0 to 1 for this sensor 6 | -------------------------------------------------------------------------------- /msg/att_pos_mocap.msg: -------------------------------------------------------------------------------- 1 | uint32 id # ID of the estimator, commonly the component ID of the incoming message 2 | 3 | uint64 timestamp_received # timestamp when the estimate was received 4 | 5 | float32[4] q # Estimated attitude as quaternion 6 | 7 | float32 x # X position in meters in NED earth-fixed frame 8 | float32 y # Y position in meters in NED earth-fixed frame 9 | float32 z # Z position in meters in NED earth-fixed frame (negative altitude) 10 | -------------------------------------------------------------------------------- /msg/battery_status.msg: -------------------------------------------------------------------------------- 1 | float32 voltage_v # Battery voltage in volts, 0 if unknown 2 | float32 voltage_filtered_v # Battery voltage in volts, filtered, 0 if unknown 3 | float32 current_a # Battery current in amperes, -1 if unknown 4 | float32 current_filtered_a # Battery current in amperes, filtered, 0 if unknown 5 | float32 discharged_mah # Discharged amount in mAh, -1 if unknown 6 | float32 remaining # From 1 to 0, -1 if unknown 7 | int32 cell_count # Number of cells 8 | bool connected # Wether or not a battery is connected 9 | #bool is_powering_off # Power off event imminent indication, false if unknown 10 | 11 | 12 | uint8 BATTERY_WARNING_NONE = 0 # no battery low voltage warning active 13 | uint8 BATTERY_WARNING_LOW = 1 # warning of low voltage 14 | uint8 BATTERY_WARNING_CRITICAL = 2 # alerting of critical voltage 15 | 16 | uint8 warning # current battery warning 17 | -------------------------------------------------------------------------------- /msg/camera_trigger.msg: -------------------------------------------------------------------------------- 1 | 2 | uint32 seq # Image sequence 3 | 4 | -------------------------------------------------------------------------------- /msg/commander_state.msg: -------------------------------------------------------------------------------- 1 | # Main state, i.e. what user wants. Controlled by RC or from ground station via telemetry link. 2 | uint8 MAIN_STATE_MANUAL = 0 3 | uint8 MAIN_STATE_ALTCTL = 1 4 | uint8 MAIN_STATE_POSCTL = 2 5 | uint8 MAIN_STATE_AUTO_MISSION = 3 6 | uint8 MAIN_STATE_AUTO_LOITER = 4 7 | uint8 MAIN_STATE_AUTO_RTL = 5 8 | uint8 MAIN_STATE_ACRO = 6 9 | uint8 MAIN_STATE_OFFBOARD = 7 10 | uint8 MAIN_STATE_STAB = 8 11 | uint8 MAIN_STATE_RATTITUDE = 9 12 | uint8 MAIN_STATE_AUTO_TAKEOFF = 10 13 | uint8 MAIN_STATE_AUTO_LAND = 11 14 | uint8 MAIN_STATE_AUTO_FOLLOW_TARGET = 12 15 | uint8 MAIN_STATE_MAX = 13 16 | 17 | 18 | uint8 main_state # main state machine 19 | -------------------------------------------------------------------------------- /msg/cpuload.msg: -------------------------------------------------------------------------------- 1 | float32 load # processor load from 0 to 1 2 | float32 ram_usage # RAM usage from 0 to 1 3 | -------------------------------------------------------------------------------- /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 error_count # Number of errors detected by driver 2 | float32 differential_pressure_raw_pa # Raw differential pressure reading (may be negative) 3 | float32 differential_pressure_filtered_pa # Low pass filtered differential pressure reading 4 | float32 max_differential_pressure_pa # Maximum differential pressure reading 5 | float32 temperature # Temperature provided by sensor, -1000.0f if unknown 6 | -------------------------------------------------------------------------------- /msg/distance_sensor.msg: -------------------------------------------------------------------------------- 1 | # DISTANCE_SENSOR message data 2 | 3 | 4 | float32 min_distance # Minimum distance the sensor can measure (in m) 5 | float32 max_distance # Maximum distance the sensor can measure (in m) 6 | float32 current_distance # Current distance reading (in m) 7 | float32 covariance # Measurement covariance (in m), 0 for unknown / invalid readings 8 | 9 | uint8 type # Type from MAV_DISTANCE_SENSOR enum 10 | uint8 MAV_DISTANCE_SENSOR_LASER = 0 11 | uint8 MAV_DISTANCE_SENSOR_ULTRASOUND = 1 12 | uint8 MAV_DISTANCE_SENSOR_INFRARED = 2 13 | 14 | uint8 id # Onboard ID of the sensor 15 | 16 | uint8 orientation # Direction the sensor faces from MAV_SENSOR_ORIENTATION enum 17 | -------------------------------------------------------------------------------- /msg/ekf2_innovations.msg: -------------------------------------------------------------------------------- 1 | float32[6] vel_pos_innov # velocity and position innovations 2 | float32[3] mag_innov # earth magnetic field innovations 3 | float32 heading_innov # heading innovation 4 | float32 airspeed_innov # airspeed innovation 5 | float32[2] flow_innov # flow innovation 6 | float32 hagl_innov # innovation from the terrain estimator for the height above ground level measurement (m) 7 | float32[6] vel_pos_innov_var # velocity and position innovation variances 8 | float32[3] mag_innov_var # earth magnetic field innovation variance 9 | float32 heading_innov_var # heading innovation variance 10 | float32 airspeed_innov_var # Airspeed innovation variance 11 | float32[2] flow_innov_var # flow innovation variance 12 | float32 hagl_innov_var # innovation variance from the terrain estimator for the height above ground level measurement (m^2) 13 | float32[3] output_tracking_error # return a vector containing the output predictor angular, velocity and position tracking error magnitudes (rad), (m/s), (m) 14 | -------------------------------------------------------------------------------- /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 | uint8 ESC_VENDOR_TAP = 3 # TAP ESC 7 | 8 | uint8 ESC_CONNECTION_TYPE_PPM = 0 # Traditional PPM ESC 9 | uint8 ESC_CONNECTION_TYPE_SERIAL = 1 # Serial Bus connected ESC 10 | uint8 ESC_CONNECTION_TYPE_ONESHOOT = 2 # One Shoot PPM 11 | uint8 ESC_CONNECTION_TYPE_I2C = 3 # I2C 12 | uint8 ESC_CONNECTION_TYPE_CAN = 4 # CAN-Bus 13 | 14 | uint16 counter # incremented by the writing thread everytime new data is stored 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/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 | 3 | float32 sumx # Integrated bodyframe x flow in meters 4 | float32 sumy # Integrated bodyframe y flow in meters 5 | 6 | float32 vx # Flow bodyframe x speed, m/s 7 | float32 vy # Flow bodyframe y Speed, m/s 8 | -------------------------------------------------------------------------------- /msg/follow_target.msg: -------------------------------------------------------------------------------- 1 | float64 lat # target position (deg * 1e7) 2 | float64 lon # target position (deg * 1e7) 3 | float32 alt # target position 4 | float32 vy # target vel in y 5 | float32 vx # target vel in x 6 | float32 vz # target vel in z 7 | uint8 est_cap # target reporting capabilities 8 | -------------------------------------------------------------------------------- /msg/fw_pos_ctrl_status.msg: -------------------------------------------------------------------------------- 1 | float32 nav_roll 2 | float32 nav_pitch 3 | float32 nav_bearing 4 | 5 | float32 target_bearing 6 | float32 wp_dist 7 | float32 xtrack_error 8 | float32 turn_distance # the optimal distance to a waypoint to switch to the next 9 | 10 | float32 landing_horizontal_slope_displacement 11 | float32 landing_slope_angle_rad 12 | float32 landing_flare_length 13 | bool abort_landing 14 | -------------------------------------------------------------------------------- /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 | 12 | float32 roll # body angular rates in NED frame 13 | float32 pitch # body angular rates in NED frame 14 | float32 yaw # body angular rates in NED frame 15 | float32 thrust # thrust normalized to 0..1 16 | -------------------------------------------------------------------------------- /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/gps_dump.msg: -------------------------------------------------------------------------------- 1 | # This message is used to dump the raw gps communication to the log. 2 | # Set the parameter GPS_DUMP_COMM to 1 to use this. 3 | 4 | uint8 len # length of data, MSB bit set = message to the gps device, 5 | # clear = message from the device 6 | uint8[79] data # data to write to the log 7 | -------------------------------------------------------------------------------- /msg/gps_inject_data.msg: -------------------------------------------------------------------------------- 1 | uint8 len # length of data 2 | uint8 flags # LSB: 1=fragmented 3 | uint8[182] data # data to write to GPS device (RTCM message) 4 | -------------------------------------------------------------------------------- /msg/home_position.msg: -------------------------------------------------------------------------------- 1 | # GPS home position in WGS84 coordinates. 2 | 3 | float64 lat # Latitude in degrees 4 | float64 lon # Longitude in degrees 5 | float32 alt # Altitude in meters (AMSL) 6 | 7 | float32 x # X coordinate in meters 8 | float32 y # Y coordinate in meters 9 | float32 z # Z coordinate in meters 10 | 11 | float32 yaw # Yaw angle in radians 12 | float32 direction_x # Takeoff direction in NED X 13 | float32 direction_y # Takeoff direction in NED Y 14 | float32 direction_z # Takeoff direction in NED Z 15 | -------------------------------------------------------------------------------- /msg/log_message.msg: -------------------------------------------------------------------------------- 1 | # A logging message, output with PX4_{WARN,ERR,INFO} 2 | 3 | uint8 severity # log level (same as in the linux kernel, starting with 0) 4 | uint8[127] text 5 | 6 | -------------------------------------------------------------------------------- /msg/mavlink_log.msg: -------------------------------------------------------------------------------- 1 | 2 | uint8[50] text 3 | uint8 severity # log level (same as in the linux kernel, starting with 0) 4 | -------------------------------------------------------------------------------- /msg/mc_att_ctrl_status.msg: -------------------------------------------------------------------------------- 1 | 2 | float32 roll_rate_integ # roll rate inegrator 3 | float32 pitch_rate_integ # pitch rate integrator 4 | float32 yaw_rate_integ # yaw rate integrator 5 | -------------------------------------------------------------------------------- /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 | 12 | float32 roll # body angular rates in NED frame 13 | float32 pitch # body angular rates in NED frame 14 | float32 yaw # body angular rates in NED frame 15 | float32 thrust # thrust normalized to 0..1 16 | -------------------------------------------------------------------------------- /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 | 5 | # TOPICS mission offboard_mission onboard_mission 6 | -------------------------------------------------------------------------------- /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 | uint32 seq_total # Total number of mission items 5 | bool valid # true if mission is valid 6 | bool warning # true if mission is valid, but has potentially problematic items leading to safety warnings 7 | bool reached # true if mission has been reached 8 | bool finished # true if mission has been completed 9 | bool stay_in_failsafe # true if the commander should not switch out of the failsafe mode 10 | bool flight_termination # true if the navigator demands a flight termination from the commander app 11 | bool item_do_jump_changed # true if the number of do jumps remaining has changed 12 | uint32 item_changed_index # indicate which item has changed 13 | uint32 item_do_jump_remaining # set to the number of do jumps remaining for that item 14 | bool mission_failure # true if the mission cannot continue or be completed for some reason 15 | -------------------------------------------------------------------------------- /msg/mount_status.msg: -------------------------------------------------------------------------------- 1 | float32[3] attitude_euler_angle # Attitude/direction of the mount as euler angles in rad 2 | -------------------------------------------------------------------------------- /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/offboard_control_mode.msg: -------------------------------------------------------------------------------- 1 | # Off-board control mode 2 | 3 | bool ignore_thrust 4 | bool ignore_attitude 5 | bool ignore_bodyrate 6 | bool ignore_position 7 | bool ignore_velocity 8 | bool ignore_acceleration_force 9 | bool ignore_alt_hold 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 | uint8 sensor_id # id of the sensor emitting the flow value 5 | float32 pixel_flow_x_integral # accumulated optical flow in radians around x axis 6 | float32 pixel_flow_y_integral # accumulated optical flow in radians around y axis 7 | float32 gyro_x_rate_integral # accumulated gyro value in radians around x axis 8 | float32 gyro_y_rate_integral # accumulated gyro value in radians around y axis 9 | float32 gyro_z_rate_integral # accumulated gyro value in radians around z axis 10 | float32 ground_distance_m # Altitude / distance to ground in meters 11 | uint32 integration_timespan # accumulation timespan in microseconds 12 | uint32 time_since_last_sonar_update # time since last sonar update in microseconds 13 | uint16 frame_count_since_last_readout # number of accumulated frames in timespan 14 | int16 gyro_temperature # Temperature * 100 in centi-degrees Celsius 15 | uint8 quality # Average of quality of accumulated frames, 0: bad quality, 255: maximum quality 16 | 17 | -------------------------------------------------------------------------------- /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 | bool saved # wether the change has already been saved to disk 2 | -------------------------------------------------------------------------------- /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 error_count 3 | uint32 pulse_width # Pulse width, timer counts 4 | uint32 period # Period, timer counts 5 | -------------------------------------------------------------------------------- /msg/qshell_req.msg: -------------------------------------------------------------------------------- 1 | int32[100] string 2 | uint64 MAX_STRLEN = 100 3 | uint64 strlen 4 | -------------------------------------------------------------------------------- /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 | bool[3] valid #true for RC-Param channels which are mapped to a param 5 | int32[3] param_index # corresponding param index, this field is ignored if set to -1, in this case param_id will be used 6 | char[51] param_id # MAP_NCHAN * (ID_LEN + 1) chars, corresponding param id, null terminated 7 | float32[3] scale # scale to map the RC input [-1, 1] to a parameter value 8 | float32[3] value0 # initial value around which the parameter value is changed 9 | float32[3] value_min # minimal parameter value 10 | float32[3] value_max # minimal parameter value 11 | -------------------------------------------------------------------------------- /msg/ros/actuator_controls_0.msg: -------------------------------------------------------------------------------- 1 | uint8 NUM_ACTUATOR_CONTROLS = 8 2 | uint8 NUM_ACTUATOR_CONTROL_GROUPS = 4 3 | uint64 timestamp_sample # the timestamp the data this control response is based on was sampled 4 | float32[8] control 5 | -------------------------------------------------------------------------------- /msg/ros/actuator_controls_virtual_mc.msg: -------------------------------------------------------------------------------- 1 | uint8 NUM_ACTUATOR_CONTROLS = 8 2 | uint8 NUM_ACTUATOR_CONTROL_GROUPS = 4 3 | uint64 timestamp_sample # the timestamp the data this control response is based on was sampled 4 | float32[8] control 5 | -------------------------------------------------------------------------------- /msg/safety.msg: -------------------------------------------------------------------------------- 1 | bool safety_switch_available # Set to true if a safety switch is connected 2 | bool safety_off # Set to true if safety is off 3 | -------------------------------------------------------------------------------- /msg/satellite_info.msg: -------------------------------------------------------------------------------- 1 | uint8 SAT_INFO_MAX_SATELLITES = 20 2 | 3 | uint8 count # Number of satellites in satellite info 4 | uint8[20] svid # Space vehicle ID [1..255], see scheme below 5 | uint8[20] used # 0: Satellite not used, 1: used for navigation 6 | uint8[20] elevation # Elevation (0: right on top of receiver, 90: on the horizon) of satellite 7 | uint8[20] azimuth # Direction of satellite, 0: 0 deg, 255: 360 deg. 8 | uint8[20] snr # dBHz, Signal to noise ratio of satellite C/N0, range 0..99, zero when not tracking this satellite. 9 | -------------------------------------------------------------------------------- /msg/sensor_accel.msg: -------------------------------------------------------------------------------- 1 | uint64 integral_dt # integration time 2 | uint64 error_count 3 | float32 x # acceleration in the NED X board axis in m/s^2 4 | float32 y # acceleration in the NED Y board axis in m/s^2 5 | float32 z # acceleration in the NED Z board axis in m/s^2 6 | float32 x_integral # velocity in the NED X board axis in m/s over the integration time frame 7 | float32 y_integral # velocity in the NED Y board axis in m/s over the integration time frame 8 | float32 z_integral # velocity in the NED Z board axis in m/s over the integration time frame 9 | float32 temperature # temperature in degrees celsius 10 | float32 range_m_s2 # range in m/s^2 (+- this value) 11 | float32 scaling 12 | 13 | int16 x_raw 14 | int16 y_raw 15 | int16 z_raw 16 | int16 temperature_raw 17 | 18 | uint32 device_id 19 | -------------------------------------------------------------------------------- /msg/sensor_baro.msg: -------------------------------------------------------------------------------- 1 | float32 pressure 2 | float32 altitude 3 | float32 temperature 4 | uint64 error_count 5 | -------------------------------------------------------------------------------- /msg/sensor_combined.msg: -------------------------------------------------------------------------------- 1 | # 2 | # Sensor readings in SI-unit form. 3 | # 4 | # These fields are scaled and offset-compensated where possible and do not 5 | # change with board revisions and sensor updates. 6 | # 7 | 8 | int32 RELATIVE_TIMESTAMP_INVALID = 2147483647 # (0x7fffffff) If one of the relative timestamps is set to this value, it means the associated sensor values are invalid 9 | 10 | 11 | # gyro timstamp is equal to the timestamp of the message 12 | float32[3] gyro_rad # delta angle in the NED body frame in rad 13 | float32 gyro_integral_dt # delta time for gyro integral in s 14 | 15 | int32 accelerometer_timestamp_relative # timestamp + accelerometer_timestamp_relative = Accelerometer timestamp 16 | float32[3] accelerometer_m_s2 # velocity in NED body frame, in m/s^2 17 | float32 accelerometer_integral_dt # delta time for accel integral in s 18 | 19 | int32 magnetometer_timestamp_relative # timestamp + magnetometer_timestamp_relative = Magnetometer timestamp 20 | float32[3] magnetometer_ga # Magnetic field in NED body frame, in Gauss 21 | 22 | int32 baro_timestamp_relative # timestamp + baro_timestamp_relative = Barometer timestamp 23 | float32 baro_alt_meter # Altitude, already temp. comp. 24 | float32 baro_temp_celcius # Temperature in degrees celsius 25 | 26 | -------------------------------------------------------------------------------- /msg/sensor_gyro.msg: -------------------------------------------------------------------------------- 1 | uint64 integral_dt # integration time 2 | uint64 error_count 3 | float32 x # angular velocity in the NED X board axis in rad/s 4 | float32 y # angular velocity in the NED Y board axis in rad/s 5 | float32 z # angular velocity in the NED Z board axis in rad/s 6 | float32 x_integral # delta angle in the NED X board axis in rad/s in the integration time frame 7 | float32 y_integral # delta angle in the NED Y board axis in rad/s in the integration time frame 8 | float32 z_integral # delta angle in the NED Z board axis in rad/s in the integration time frame 9 | float32 temperature # temperature in degrees celcius 10 | float32 range_rad_s 11 | float32 scaling 12 | 13 | int16 x_raw 14 | int16 y_raw 15 | int16 z_raw 16 | int16 temperature_raw 17 | 18 | uint32 device_id 19 | -------------------------------------------------------------------------------- /msg/sensor_mag.msg: -------------------------------------------------------------------------------- 1 | uint64 error_count 2 | float32 x 3 | float32 y 4 | float32 z 5 | float32 range_ga 6 | float32 scaling 7 | float32 temperature 8 | 9 | int16 x_raw 10 | int16 y_raw 11 | int16 z_raw 12 | 13 | uint32 device_id 14 | -------------------------------------------------------------------------------- /msg/servorail_status.msg: -------------------------------------------------------------------------------- 1 | float32 voltage_v # Servo rail voltage in volts 2 | float32 rssi_v # RSSI pin voltage in volts 3 | -------------------------------------------------------------------------------- /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 | float32 voltage5V_v # peripheral 5V rail voltage 2 | uint8 usb_connected # USB is connected when 1 3 | uint8 brick_valid # brick power is good when 1 4 | uint8 servo_valid # servo power is good when 1 5 | uint8 periph_5V_OC # peripheral overcurrent when 1 6 | uint8 hipower_5V_OC # hi power peripheral overcurrent when 1 7 | -------------------------------------------------------------------------------- /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 | 10 | float32 altitudeSp 11 | float32 altitude_filtered 12 | float32 flightPathAngleSp 13 | float32 flightPathAngle 14 | float32 flightPathAngleFiltered 15 | float32 airspeedSp 16 | float32 airspeed_filtered 17 | float32 airspeedDerivativeSp 18 | float32 airspeedDerivative 19 | 20 | float32 totalEnergyError 21 | float32 energyDistributionError 22 | float32 totalEnergyRateError 23 | float32 energyDistributionRateError 24 | 25 | float32 throttle_integ 26 | float32 pitch_integ 27 | 28 | uint8 mode 29 | -------------------------------------------------------------------------------- /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 heartbeat_time # Time of last received heartbeat from remote system 8 | uint64 telem_time # Time of last received telemetry status packet, 0 for none 9 | uint8 type # type of the radio hardware 10 | uint8 rssi # local signal strength 11 | uint8 remote_rssi # remote signal strength 12 | uint16 rxerrors # receive errors 13 | uint16 fixed # count of error corrected packets 14 | uint8 noise # background noise level 15 | uint8 remote_noise # remote background noise level 16 | uint8 txbuf # how full the tx buffer is as a percentage 17 | uint8 system_id # system id of the remote system 18 | uint8 component_id # component id of the remote system 19 | -------------------------------------------------------------------------------- /msg/test_motor.msg: -------------------------------------------------------------------------------- 1 | uint8 NUM_MOTOR_OUTPUTS = 8 2 | 3 | uint32 motor_number # number of motor to spin 4 | float32 value # output power, range [0..1] 5 | -------------------------------------------------------------------------------- /msg/time_offset.msg: -------------------------------------------------------------------------------- 1 | uint64 offset_ns # time offset between companion system and PX4, in nanoseconds 2 | -------------------------------------------------------------------------------- /msg/transponder_report.msg: -------------------------------------------------------------------------------- 1 | uint32 ICAO_address # ICAO address 2 | float64 lat # Latitude, expressed as degrees 3 | float64 lon # Longitude, expressed as degrees 4 | uint8 altitude_type # Type from ADSB_ALTITUDE_TYPE enum 5 | float32 altitude # Altitude(ASL) in meters 6 | float32 heading # Course over ground in radians 7 | float32 hor_velocity # The horizontal velocity in m/s 8 | float32 ver_velocity # The vertical velocity in m/s, positive is up 9 | char[9] callsign # The callsign, 8+null 10 | uint8 emitter_type # Type from ADSB_EMITTER_TYPE enum 11 | uint8 tslc # Time since last communication in seconds 12 | uint16 flags # Flags to indicate various statuses including valid data fields 13 | uint16 squawk # Squawk code 14 | -------------------------------------------------------------------------------- /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/ulog_stream.msg: -------------------------------------------------------------------------------- 1 | # Message to stream ULog data from the logger. Corresponds to the LOGGING_DATA 2 | # mavlink message 3 | 4 | # flags bitmasks 5 | uint8 FLAGS_NEED_ACK = 1 # if set, this message requires to be acked. 6 | # Acked messages are published synchronous: a 7 | # publisher waits for an ack before sending the 8 | # next message 9 | 10 | uint8 length # length of data 11 | uint8 first_message_offset # offset into data where first message starts. This 12 | # can be used for recovery, when a previous message got lost 13 | uint16 sequence # allows determine drops 14 | uint8 flags # see FLAGS_* 15 | uint8[249] data # ulog data 16 | 17 | -------------------------------------------------------------------------------- /msg/ulog_stream_ack.msg: -------------------------------------------------------------------------------- 1 | # Ack a previously sent ulog_stream message that had 2 | # the NEED_ACK flag set 3 | 4 | int32 ACK_TIMEOUT = 300 # timeout waiting for an ack until we retry to send the message [ms] 5 | int32 ACK_MAX_TRIES = 9 # maximum amount of tries to (re-)send a message, each time waiting ACK_TIMEOUT ms 6 | 7 | uint16 sequence 8 | -------------------------------------------------------------------------------- /msg/vehicle_attitude.msg: -------------------------------------------------------------------------------- 1 | # This is similar to the mavlink message ATTITUDE_QUATERNION, but for onboard use 2 | float32 rollspeed # Angular velocity about body north axis (x) in rad/s 3 | float32 pitchspeed # Angular velocity about body east axis (y) in rad/s 4 | float32 yawspeed # Angular velocity about body down axis (z) in rad/s 5 | float32[4] q # Quaternion (NED) 6 | 7 | # TOPICS vehicle_attitude vehicle_attitude_groundtruth 8 | -------------------------------------------------------------------------------- /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 | uint32 ORB_QUEUE_LENGTH = 3 8 | 9 | uint16 command 10 | uint8 result 11 | -------------------------------------------------------------------------------- /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_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 | bool landed # true if vehicle is currently landed on the ground 2 | bool freefall # true if vehicle is currently in free-fall 3 | -------------------------------------------------------------------------------- /msg/vehicle_local_position_setpoint.msg: -------------------------------------------------------------------------------- 1 | # Local position setpoint in NED frame 2 | 3 | float32 x # in meters NED 4 | float32 y # in meters NED 5 | float32 z # in meters NED 6 | float32 yaw # in radians NED -PI..+PI 7 | float32 vx # in meters/sec 8 | float32 vy # in meters/sec 9 | float32 vz # in meters/sec 10 | float32 acc_x # in meters/(sec*sec) 11 | float32 acc_y # in meters/(sec*sec) 12 | float32 acc_z # in meters/(sec*sec) 13 | -------------------------------------------------------------------------------- /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 | 12 | float32 roll # body angular rates in NED frame 13 | float32 pitch # body angular rates in NED frame 14 | float32 yaw # body angular rates in NED frame 15 | float32 thrust # thrust normalized to 0..1 16 | -------------------------------------------------------------------------------- /msg/vehicle_roi.msg: -------------------------------------------------------------------------------- 1 | # Vehicle Region Of Interest (ROI) 2 | 3 | uint8 VEHICLE_ROI_NONE = 0 # No region of interest | 4 | uint8 VEHICLE_ROI_WPNEXT = 1 # Point toward next MISSION | 5 | uint8 VEHICLE_ROI_WPINDEX = 2 # Point toward given MISSION | 6 | uint8 VEHICLE_ROI_LOCATION = 3 # Point toward fixed location | 7 | uint8 VEHICLE_ROI_TARGET = 4 # Point toward target 8 | uint8 VEHICLE_ROI_ENUM_END = 5 9 | 10 | uint8 mode # ROI mode (see above) 11 | uint32 mission_seq # mission sequence to point to 12 | uint32 target_seq # target sequence to point to 13 | float64 lat # Latitude to point to 14 | float64 lon # Longitude to point to 15 | float32 alt # Altitude to point to 16 | -------------------------------------------------------------------------------- /msg/vision_position_estimate.msg: -------------------------------------------------------------------------------- 1 | uint32 id # ID of the estimator, commonly the component ID of the incoming message 2 | 3 | uint64 timestamp_received # timestamp when the estimate was received 4 | 5 | float32 x # X position in meters in NED earth-fixed frame 6 | float32 y # Y position in meters in NED earth-fixed frame 7 | float32 z # Z position in meters in NED earth-fixed frame (negative altitude) 8 | 9 | float32 vx # X velocity in meters per second in NED earth-fixed frame 10 | float32 vy # Y velocity in meters per second in NED earth-fixed frame 11 | float32 vz # Z velocity in meters per second in NED earth-fixed frame 12 | 13 | float32[4] q # Estimated attitude as quaternion 14 | 15 | float32 pos_err # position error 1-std for each axis (metres) 16 | float32 ang_err # angular error 1-std for each axis (rad) 17 | -------------------------------------------------------------------------------- /msg/vtol_vehicle_status.msg: -------------------------------------------------------------------------------- 1 | # VEHICLE_VTOL_STATE, should match 1:1 MAVLinks's MAV_VTOL_STATE 2 | uint8 VEHICLE_VTOL_STATE_UNDEFINED = 0 3 | uint8 VEHICLE_VTOL_STATE_TRANSITION_TO_FW = 1 4 | uint8 VEHICLE_VTOL_STATE_TRANSITION_TO_MC = 2 5 | uint8 VEHICLE_VTOL_STATE_MC = 3 6 | uint8 VEHICLE_VTOL_STATE_FW = 4 7 | 8 | bool vtol_in_rw_mode # true: vtol vehicle is in rotating wing mode 9 | bool vtol_in_trans_mode 10 | bool in_transition_to_fw # True if VTOL is doing a transition from MC to FW 11 | bool vtol_transition_failsafe # vtol in transition failsafe mode 12 | bool fw_permanent_stab # In fw mode stabilize attitude even if in manual mode 13 | float32 airspeed_tot # Estimated airspeed over control surfaces 14 | -------------------------------------------------------------------------------- /msg/wind_estimate.msg: -------------------------------------------------------------------------------- 1 | float32 windspeed_north # Wind component in north / X direction 2 | float32 windspeed_east # Wind component in east / Y direction 3 | float32 covariance_north # Uncertainty - set to zero (no uncertainty) if not estimated 4 | float32 covariance_east # Uncertainty - set to zero (no uncertainty) if not estimated 5 | -------------------------------------------------------------------------------- /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/asc-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/crazyflie/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-v3/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/ATLFlight/Firmware/77a23a043fbdfa880c704b4412103ca22f14b373/nuttx-configs/sim/include/board.h -------------------------------------------------------------------------------- /nuttx-configs/tap-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 | -------------------------------------------------------------------------------- /posix-configs/SITL/SITL_Diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ATLFlight/Firmware/77a23a043fbdfa880c704b4412103ca22f14b373/posix-configs/SITL/SITL_Diagram.png -------------------------------------------------------------------------------- /posix-configs/SITL/init/replay/iris: -------------------------------------------------------------------------------- 1 | uorb start 2 | ekf2 start --replay 3 | sleep 0.2 4 | ekf2_replay start replay.px4log 5 | -------------------------------------------------------------------------------- /posix-configs/SITL/init/test/iris: -------------------------------------------------------------------------------- 1 | uorb start 2 | 3 | param load 4 | param set SYS_RESTART_TYPE 0 5 | 6 | dataman start 7 | 8 | rgbledsim start 9 | tone_alarm start 10 | 11 | ver all 12 | 13 | sleep 1 14 | 15 | tests all 16 | 17 | shutdown 18 | -------------------------------------------------------------------------------- /posix-configs/bebop/px4.config: -------------------------------------------------------------------------------- 1 | uorb start 2 | param select /home/root/parameters 3 | param load 4 | param set SYS_AUTOSTART 4013 5 | param set MAV_BROADCAST 1 6 | param set MAV_TYPE 3 7 | param set MC_ROLL_P 6.5 8 | param set MC_ROLLRATE_P 0.109999999403953552 9 | param set MC_ROLLRATE_I 0.0 10 | param set MC_ROLLRATE_D 0.0006 11 | param set MC_PITCH_P 6.5 12 | param set MC_PITCHRATE_P 0.1 13 | param set MC_PITCHRATE_I 0.0 14 | param set MC_PITCHRATE_D 0.000799999 15 | param set MC_YAW_P 1.049999 16 | param set MC_YAWRATE_P 0.05 17 | param set MC_YAWRATE_I 0.001 18 | param set MC_YAWRATE_D 0.0 19 | param set MC_YAW_FF 0.7 20 | df_ms5607_wrapper start 21 | df_mpu6050_wrapper start -R 8 22 | df_ak8963_wrapper start -R 32 23 | sensors start 24 | commander start 25 | attitude_estimator_q start 26 | position_estimator_inav start 27 | mc_pos_control start 28 | mc_att_control start 29 | sleep 1 30 | mavlink start -u 14556 -r 1000000 31 | sleep 1 32 | mavlink stream -u 14556 -s HIGHRES_IMU -r 50 33 | mavlink stream -u 14556 -s ATTITUDE -r 50 34 | df_bebop_bus_wrapper start 35 | mavlink boot_complete 36 | -------------------------------------------------------------------------------- /posix-configs/eagle/200qx/mainapp.config: -------------------------------------------------------------------------------- 1 | uorb start 2 | muorb start 3 | sdlog2 start -r 100 -e -t -a -b 200 4 | param set MAV_BROADCAST 1 5 | param set SDLOG_PRIO_BOOST 3 6 | dataman start 7 | navigator start 8 | mavlink start -u 14556 -r 1000000 9 | sleep 1 10 | mavlink stream -u 14556 -s HIGHRES_IMU -r 50 11 | mavlink stream -u 14556 -s ATTITUDE -r 50 12 | mavlink stream -u 14556 -s RC_CHANNELS -r 20 13 | mavlink boot_complete 14 | -------------------------------------------------------------------------------- /posix-configs/eagle/210qc/mainapp.config: -------------------------------------------------------------------------------- 1 | uorb start 2 | muorb start 3 | sdlog2 start -r 100 -e -t -a -b 200 4 | param set MAV_BROADCAST 1 5 | param set SDLOG_PRIO_BOOST 3 6 | dataman start 7 | navigator start 8 | mavlink start -u 14556 -r 1000000 9 | sleep 1 10 | mavlink stream -u 14556 -s HIGHRES_IMU -r 50 11 | mavlink stream -u 14556 -s ATTITUDE -r 50 12 | mavlink stream -u 14556 -s RC_CHANNELS -r 20 13 | mavlink boot_complete 14 | -------------------------------------------------------------------------------- /posix-configs/eagle/flight/mainapp.config: -------------------------------------------------------------------------------- 1 | uorb start 2 | muorb start 3 | sdlog2 start -r 100 -e -t -a -b 200 4 | param set MAV_BROADCAST 1 5 | param set SDLOG_PRIO_BOOST 3 6 | dataman start 7 | navigator start 8 | mavlink start -u 14556 -r 1000000 9 | sleep 1 10 | mavlink stream -u 14556 -s HIGHRES_IMU -r 50 11 | mavlink stream -u 14556 -s ATTITUDE -r 50 12 | mavlink stream -u 14556 -s RC_CHANNELS -r 20 13 | mavlink boot_complete 14 | -------------------------------------------------------------------------------- /posix-configs/eagle/flight/px4.config: -------------------------------------------------------------------------------- 1 | uorb start 2 | qshell start 3 | param set SYS_AUTOSTART 4001 4 | sleep 1 5 | gps start -d /dev/tty-4 6 | param set MAV_TYPE 2 7 | df_hmc5883_wrapper start 8 | df_mpu9250_wrapper start 9 | df_bmp280_wrapper start 10 | df_trone_wrapper start 11 | #df_isl29501_wrapper start 12 | sensors start 13 | commander start 14 | ekf2 start 15 | land_detector start multicopter 16 | mc_pos_control start 17 | mc_att_control start 18 | pwm_out_rc_in start -d /dev/tty-2 19 | -------------------------------------------------------------------------------- /posix-configs/eagle/hil/mainapphil.config: -------------------------------------------------------------------------------- 1 | uorb start 2 | muorb start 3 | param set MAV_BROADCAST 1 4 | mavlink start -u 14556 5 | sleep 1 6 | mavlink stream -u 14556 -s HIGHRES_IMU -r 50 7 | mavlink stream -u 14556 -s ATTITUDE -r 50 8 | mavlink boot_complete 9 | simulator start -p 10 | -------------------------------------------------------------------------------- /posix-configs/rpi/px4.config: -------------------------------------------------------------------------------- 1 | uorb start 2 | param set SYS_AUTOSTART 4001 3 | param set MAV_BROADCAST 1 4 | sleep 1 5 | param set MAV_TYPE 2 6 | df_lsm9ds1_wrapper start -R 4 7 | #df_mpu9250_wrapper start -R 10 8 | #df_hmc5883_wrapper start 9 | df_ms5611_wrapper start 10 | gps start -d /dev/spidev0.0 -i spi -p ubx 11 | sensors start 12 | commander start 13 | attitude_estimator_q start 14 | position_estimator_inav start 15 | land_detector start multicopter 16 | mc_pos_control start 17 | mc_att_control start 18 | mavlink start -u 14556 -r 1000000 19 | sleep 1 20 | mavlink stream -u 14556 -s HIGHRES_IMU -r 50 21 | mavlink stream -u 14556 -s ATTITUDE -r 50 22 | mavlink start -d /dev/ttyUSB0 23 | mavlink stream -d /dev/ttyUSB0 -s HIGHRES_IMU -r 50 24 | mavlink stream -d /dev/ttyUSB0 -s ATTITUDE -r 50 25 | navio_sysfs_rc_in start 26 | navio_sysfs_pwm_out start 27 | mavlink boot_complete 28 | -------------------------------------------------------------------------------- /posix-configs/rpi/px4_fw.config: -------------------------------------------------------------------------------- 1 | uorb start 2 | param load 3 | param set MAV_BROADCAST 1 4 | #param set SYS_AUTOSTART 2104 5 | param set MAV_TYPE 1 6 | df_lsm9ds1_wrapper start -R 4 7 | df_ms5611_wrapper start 8 | #navio_rgbled start 9 | gps start -d /dev/spidev0.0 -i spi -p ubx 10 | sensors start 11 | commander start 12 | ekf2 start 13 | fw_att_control start 14 | fw_pos_control_l1 15 | mavlink start -u 14556 -r 1000000 16 | sleep 1 17 | mavlink stream -u 14556 -s HIGHRES_IMU -r 20 18 | mavlink stream -u 14556 -s ATTITUDE -r 20 19 | mavlink stream -u 14556 -s MANUAL_CONTROL -r 10 20 | 21 | 22 | navio_sysfs_rc_in start 23 | navio_sysfs_pwm_out start 24 | mavlink boot_complete 25 | -------------------------------------------------------------------------------- /src/drivers/bmi160/bmi160_gyro.hpp: -------------------------------------------------------------------------------- 1 | #ifndef BMI160_GYRO_HPP_ 2 | #define BMI160_GYRO_HPP_ 3 | 4 | #include 5 | 6 | #include "bmi160.hpp" 7 | 8 | /** 9 | * Helper class implementing the gyro driver node. 10 | */ 11 | class BMI160_gyro : public device::CDev 12 | { 13 | public: 14 | BMI160_gyro(BMI160 *parent, const char *path); 15 | ~BMI160_gyro(); 16 | 17 | virtual ssize_t read(struct file *filp, char *buffer, size_t buflen); 18 | virtual int ioctl(struct file *filp, int cmd, unsigned long arg); 19 | 20 | virtual int init(); 21 | 22 | protected: 23 | friend class BMI160; 24 | 25 | void parent_poll_notify(); 26 | 27 | private: 28 | BMI160 *_parent; 29 | orb_advert_t _gyro_topic; 30 | int _gyro_orb_class_instance; 31 | int _gyro_class_instance; 32 | 33 | /* do not allow to copy this class due to pointer data members */ 34 | BMI160_gyro(const BMI160_gyro &); 35 | BMI160_gyro operator=(const BMI160_gyro &); 36 | }; 37 | 38 | 39 | 40 | 41 | #endif /* BMI160_GYRO_HPP_ */ 42 | -------------------------------------------------------------------------------- /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/camera_trigger/interfaces/src/camera_interface.cpp: -------------------------------------------------------------------------------- 1 | #include "camera_interface.h" 2 | 3 | /** 4 | * @file camera_interface.cpp 5 | * 6 | */ 7 | 8 | CameraInterface::CameraInterface() 9 | { 10 | } 11 | 12 | CameraInterface::~CameraInterface() 13 | { 14 | } 15 | -------------------------------------------------------------------------------- /src/drivers/camera_trigger/interfaces/src/camera_interface.h: -------------------------------------------------------------------------------- 1 | /** 2 | * @file camera_interface.h 3 | */ 4 | 5 | #pragma once 6 | 7 | class CameraInterface 8 | { 9 | public: 10 | 11 | /** 12 | * Constructor 13 | */ 14 | CameraInterface(); 15 | 16 | /** 17 | * Destructor. 18 | */ 19 | virtual ~CameraInterface(); 20 | 21 | /** 22 | * trigger the camera 23 | * @param trigger: 24 | */ 25 | virtual void trigger(bool enable) {}; 26 | 27 | /** 28 | * turn on/off the camera 29 | * @param enable: 30 | */ 31 | virtual void turn_on_off(bool enable) {}; 32 | 33 | /** 34 | * prevent the camera from sleeping 35 | * @param keep alive signal: 36 | */ 37 | virtual void keep_alive(bool signal_on) {}; 38 | 39 | /** 40 | * Display info. 41 | */ 42 | virtual void info() {}; 43 | 44 | /** 45 | * Power on the camera 46 | * @return 0 on success, <0 on error 47 | */ 48 | virtual int powerOn() { return -1; } 49 | 50 | /** 51 | * Power off the camera 52 | * @return 0 on success, <0 on error 53 | */ 54 | virtual int powerOff() { return -1; } 55 | 56 | 57 | protected: 58 | 59 | /** 60 | * setup the interface 61 | */ 62 | virtual void setup() {}; 63 | 64 | }; 65 | -------------------------------------------------------------------------------- /src/drivers/camera_trigger/interfaces/src/pwm.h: -------------------------------------------------------------------------------- 1 | /** 2 | * @file pwm.h 3 | * 4 | * Interface with cameras via pwm. 5 | * 6 | */ 7 | #pragma once 8 | 9 | #include 10 | #include 11 | 12 | #include 13 | #include "camera_interface.h" 14 | 15 | class CameraInterfacePWM : public CameraInterface 16 | { 17 | public: 18 | CameraInterfacePWM(); 19 | virtual ~CameraInterfacePWM(); 20 | 21 | void trigger(bool enable); 22 | void keep_alive(bool signal_on); 23 | 24 | void turn_on_off(bool enable); 25 | 26 | void info(); 27 | 28 | int _pins[6]; 29 | private: 30 | void setup(); 31 | 32 | param_t _p_pin; 33 | bool _camera_is_on; 34 | 35 | }; 36 | -------------------------------------------------------------------------------- /src/drivers/camera_trigger/interfaces/src/relay.h: -------------------------------------------------------------------------------- 1 | /** 2 | * @file relay.h 3 | * 4 | * Interface with cameras via FMU auxiliary pins. 5 | * 6 | */ 7 | #pragma once 8 | 9 | #include 10 | #include 11 | #include 12 | 13 | #include "camera_interface.h" 14 | 15 | 16 | class CameraInterfaceRelay : public CameraInterface 17 | { 18 | public: 19 | CameraInterfaceRelay(); 20 | virtual ~CameraInterfaceRelay(); 21 | 22 | void trigger(bool enable); 23 | 24 | void info(); 25 | 26 | int _pins[6]; 27 | int _polarity; 28 | 29 | private: 30 | 31 | void setup(); 32 | 33 | param_t _p_pin; 34 | param_t _p_polarity; 35 | 36 | static constexpr uint32_t _gpios[6] = { 37 | GPIO_GPIO0_OUTPUT, 38 | GPIO_GPIO1_OUTPUT, 39 | GPIO_GPIO2_OUTPUT, 40 | GPIO_GPIO3_OUTPUT, 41 | GPIO_GPIO4_OUTPUT, 42 | GPIO_GPIO5_OUTPUT 43 | }; 44 | 45 | }; 46 | -------------------------------------------------------------------------------- /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/examples/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/examples/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/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 ${PX4_SOURCE_DIR}/Debug/PX4 8 | -------------------------------------------------------------------------------- /src/lib/mathlib/math/nasa_rotation_def.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ATLFlight/Firmware/77a23a043fbdfa880c704b4412103ca22f14b373/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/controllib_test/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 | 8 | /** 9 | * @group Testing 10 | */ 11 | PARAM_DEFINE_FLOAT(TEST_MIN, -1.0f); 12 | 13 | /** 14 | * @group Testing 15 | */ 16 | PARAM_DEFINE_FLOAT(TEST_MAX, 1.0f); 17 | 18 | /** 19 | * @group Testing 20 | */ 21 | PARAM_DEFINE_FLOAT(TEST_TRIM, 0.5f); 22 | 23 | /** 24 | * @group Testing 25 | */ 26 | PARAM_DEFINE_FLOAT(TEST_HP, 10.0f); 27 | 28 | /** 29 | * @group Testing 30 | */ 31 | PARAM_DEFINE_FLOAT(TEST_LP, 10.0f); 32 | 33 | /** 34 | * @group Testing 35 | */ 36 | PARAM_DEFINE_FLOAT(TEST_P, 0.2f); 37 | 38 | /** 39 | * @group Testing 40 | */ 41 | PARAM_DEFINE_FLOAT(TEST_I, 0.1f); 42 | 43 | /** 44 | * @group Testing 45 | */ 46 | PARAM_DEFINE_FLOAT(TEST_I_MAX, 1.0f); 47 | 48 | /** 49 | * @group Testing 50 | */ 51 | PARAM_DEFINE_FLOAT(TEST_D, 0.01f); 52 | 53 | /** 54 | * @group Testing 55 | */ 56 | PARAM_DEFINE_FLOAT(TEST_D_LP, 10.0f); 57 | 58 | /** 59 | * @group Testing 60 | */ 61 | PARAM_DEFINE_FLOAT(TEST_MEAN, 1.0f); 62 | 63 | /** 64 | * @group Testing 65 | */ 66 | PARAM_DEFINE_FLOAT(TEST_DEV, 2.0f); 67 | -------------------------------------------------------------------------------- /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/local_position_estimator/sensors/Flow+Noise+Modelling.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ATLFlight/Firmware/77a23a043fbdfa880c704b4412103ca22f14b373/src/modules/local_position_estimator/sensors/Flow+Noise+Modelling.pdf -------------------------------------------------------------------------------- /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 "px4_defines.h" 9 | #include "inertial_filter.h" 10 | #include 11 | 12 | void inertial_filter_predict(float dt, float x[2], float acc) 13 | { 14 | if (PX4_ISFINITE(dt)) { 15 | if (!PX4_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 (PX4_ISFINITE(e) && PX4_ISFINITE(w) && PX4_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/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/apps.h.in: -------------------------------------------------------------------------------- 1 | /* declarations of builtin command list - automatically generated, do not edit */ 2 | 3 | #pragma once 4 | 5 | #include "px4_tasks.h" // px4_main_t 6 | #include 7 | 8 | // Maps an app name to it's function. 9 | typedef std::map apps_map_type; 10 | 11 | // Initialize an apps map. 12 | __EXPORT void init_app_map(apps_map_type &apps); 13 | 14 | // List an apps map. 15 | __EXPORT void list_builtins(apps_map_type &apps); 16 | -------------------------------------------------------------------------------- /src/platforms/empty.c: -------------------------------------------------------------------------------- 1 | /* 2 | * This is an empty C source file, used when building default firmware configurations. 3 | */ 4 | -------------------------------------------------------------------------------- /src/platforms/posix/include/arch/board/board.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ATLFlight/Firmware/77a23a043fbdfa880c704b4412103ca22f14b373/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/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_APPLE_LEGACY) 7 | 8 | __BEGIN_DECLS 9 | 10 | #define clockid_t unsigned 11 | 12 | int px4_clock_gettime(clockid_t clk_id, struct timespec *tp); 13 | int px4_clock_settime(clockid_t clk_id, struct timespec *tp); 14 | 15 | __EXPORT unsigned int sleep(unsigned int sec); 16 | 17 | __END_DECLS 18 | 19 | #elif defined(__PX4_LINUX) || defined(__PX4_NUTTX) || defined(__PX4_DARWIN) 20 | 21 | #define px4_clock_gettime clock_gettime 22 | #define px4_clock_settime clock_settime 23 | 24 | #elif defined(__PX4_QURT) 25 | 26 | #include 27 | 28 | __BEGIN_DECLS 29 | 30 | int px4_clock_gettime(clockid_t clk_id, struct timespec *tp); 31 | int px4_clock_settime(clockid_t clk_id, struct timespec *tp); 32 | 33 | __EXPORT unsigned int sleep(unsigned int sec); 34 | 35 | __END_DECLS 36 | #endif 37 | -------------------------------------------------------------------------------- /src/platforms/qurt/include/arch/board/board.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ATLFlight/Firmware/77a23a043fbdfa880c704b4412103ca22f14b373/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/tests/test_autodeclination.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | 15 | class AutoDeclinationTest : public UnitTest 16 | { 17 | public: 18 | virtual bool run_tests(void); 19 | 20 | private: 21 | bool autodeclination_check(); 22 | }; 23 | 24 | bool AutoDeclinationTest::autodeclination_check(void) 25 | { 26 | ut_assert("declination differs more than 1 degree", get_mag_declination(47.0, 8.0) - 0.6f < 0.5f); 27 | 28 | return true; 29 | } 30 | 31 | bool AutoDeclinationTest::run_tests(void) 32 | { 33 | ut_run_test(autodeclination_check); 34 | 35 | return (_tests_failed == 0); 36 | } 37 | 38 | ut_declare_test_c(test_autodeclination, AutoDeclinationTest) 39 | -------------------------------------------------------------------------------- /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/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 | orb_advert_t orb_advertise_queue(const struct orb_metadata *meta, const void *data, unsigned int queue_size) 19 | { 20 | return (orb_advert_t)0; 21 | } 22 | 23 | int orb_publish(const struct orb_metadata *meta, orb_advert_t handle, const void *data) 24 | { 25 | return 0; 26 | } 27 | --------------------------------------------------------------------------------