px4-firmware/msg
Mathieu Bresciani 112f24c54f ekf2_main - Add optical flow innovation pre-flight check (#13036)
* ekf2: Add FirstOrderLpf and InnovationLpf classes for innovation lowpass filtering

* ekf2: use InnovLpf filter class in preflight checks

* ekf2: move selection of yaw test limit for pre-flight check in function

* ekf2: Move pre-flight checks into separate function

* ekf2: use static constexpr insetead of inline for sq (square) function

* ekf2: Split pre-flight checks in separate functions
Also use the same check for all the innovations:
innov_lpf < test and innov < 2xtest

* ekf2: Add optical flow pre-flight check

* ekf2: Combine FirstOrderLpf and InnovationLpf in single class

* ekf2: check vel_pos_innov when ev_pos is active as well

* ekf2: transform InnovationLpf into a header only library and pass the
spike limit during the update call to avoid storing it here

* ekf2: Static and const cleanup
- set spike_lim constants as static constexpr, set innovation
- set checker helper functions as static
- rename the mix of heading and yaw as heading to avoid confusion

* ekf2: use ternary operator in selectHeadingTestLimit instead of if-else

* ekf2: store intermediate redults in const bool flags. Those will be used for logging

* ekf2: set variable const whenever possible

* ekf2: create PreFlightChecker class that handle all the innovation
pre-flight checks.
Add simple unit testing
Use bitmask instead of general flag to have more granularity

* PreFlightChecker: use setter for the innovations to check instead of sending booleans in the update function
This makes it more scalable as more checks will be added

* ekf: Use booleans instead of bitmask for ekf preflt checks
Rename "down" to "vert"
2019-10-28 16:04:11 -04:00
..
templates microRTPS: templates: only decode ros2_distro when possible and nedeed 2019-10-20 16:08:32 +01:00
tools msg: don't implement print_message for fmu-v2 2019-10-18 11:54:24 +02:00
CMakeLists.txt msg: don't implement print_message for fmu-v2 2019-10-18 11:54:24 +02:00
actuator_armed.msg add timestamp field to uORB msgs; sync timestamp whenever possible 2018-08-09 13:40:48 +02:00
actuator_controls.msg add timestamp field to uORB msgs; sync timestamp whenever possible 2018-08-09 13:40:48 +02:00
actuator_direct.msg add timestamp field to uORB msgs; sync timestamp whenever possible 2018-08-09 13:40:48 +02:00
actuator_outputs.msg beautify some identation 2018-08-09 13:40:48 +02:00
adc_report.msg add timestamp field to uORB msgs; sync timestamp whenever possible 2018-08-09 13:40:48 +02:00
airspeed.msg beautify some identation 2018-08-09 13:40:48 +02:00
airspeed_validated.msg Airspeed Selector: repurpose wind estimator into an airspeed (selection, validation) module. 2019-08-09 10:55:05 +02:00
battery_status.msg Mavlink: fixed temperature for batteries (#12605) 2019-08-02 10:09:03 -04:00
camera_capture.msg add timestamp field to uORB msgs; sync timestamp whenever possible 2018-08-09 13:40:48 +02:00
camera_trigger.msg camera_capture: change topic namings to make logging, mavlink streaming and geotagging easier 2019-02-10 18:07:44 -05:00
collision_constraints.msg first push on supporting ROS2 Dashing and IDL 4.2 2019-10-04 16:56:03 +01:00
collision_report.msg add timestamp field to uORB msgs; sync timestamp whenever possible 2018-08-09 13:40:48 +02:00
commander_state.msg msg: add orbit main and navigation state 2018-12-08 22:34:57 +01:00
cpuload.msg add timestamp field to uORB msgs; sync timestamp whenever possible 2018-08-09 13:40:48 +02:00
debug_array.msg Add support for mavlink message DEBUG_FLOAT_ARRAY 2018-09-27 12:33:12 -04:00
debug_key_value.msg add timestamp field to uORB msgs; sync timestamp whenever possible 2018-08-09 13:40:48 +02:00
debug_value.msg add timestamp field to uORB msgs; sync timestamp whenever possible 2018-08-09 13:40:48 +02:00
debug_vect.msg add timestamp field to uORB msgs; sync timestamp whenever possible 2018-08-09 13:40:48 +02:00
differential_pressure.msg add timestamp field to uORB msgs; sync timestamp whenever possible 2018-08-09 13:40:48 +02:00
distance_sensor.msg CollisionPrevention add more distance_sensor orientations 2019-10-01 21:05:37 -04:00
ekf2_innovations.msg beautify some identation 2018-08-09 13:40:48 +02:00
ekf2_timestamps.msg ekf2: add vehicle_odometry usage and data validation check; update replay as well 2018-09-18 09:52:33 +02:00
ekf_gps_drift.msg msg: Create message for GPS drift rates 2018-08-17 10:44:07 +10:00
ekf_gps_position.msg msg: Add heading data to GPS blending output log data 2018-10-17 09:48:38 -04:00
esc_report.msg esc_status: trim the message and remove unused fields 2019-10-11 08:14:17 +02:00
esc_status.msg dshot: add telemetry and publish esc_status message 2019-10-11 08:14:17 +02:00
estimator_status.msg ekf2_main - Add optical flow innovation pre-flight check (#13036) 2019-10-28 16:04:11 -04:00
follow_target.msg add timestamp field to uORB msgs; sync timestamp whenever possible 2018-08-09 13:40:48 +02:00
geofence_result.msg add timestamp field to uORB msgs; sync timestamp whenever possible 2018-08-09 13:40:48 +02:00
gps_dump.msg introduce uORB::PublicationQueued and transition most orb_advertise_queue usage 2019-08-04 10:08:09 -04:00
gps_inject_data.msg introduce uORB::PublicationQueued and transition most orb_advertise_queue usage 2019-08-04 10:08:09 -04:00
home_position.msg beautify some identation 2018-08-09 13:40:48 +02:00
input_rc.msg Fixing some typos 2019-01-25 11:58:17 -05:00
iridiumsbd_status.msg add timestamp field to uORB msgs; sync timestamp whenever possible 2018-08-09 13:40:48 +02:00
irlock_report.msg add timestamp field to uORB msgs; sync timestamp whenever possible 2018-08-09 13:40:48 +02:00
landing_gear.msg vehicle constraints: remove landing gear 2018-12-10 16:17:23 +01:00
landing_target_innovations.msg add timestamp field to uORB msgs; sync timestamp whenever possible 2018-08-09 13:40:48 +02:00
landing_target_pose.msg add timestamp field to uORB msgs; sync timestamp whenever possible 2018-08-09 13:40:48 +02:00
led_control.msg introduce uORB::PublicationQueued and transition most orb_advertise_queue usage 2019-08-04 10:08:09 -04:00
log_message.msg listener print strings 2019-07-30 10:47:10 -04:00
manual_control_setpoint.msg manual_contol_setpoint: fix mode slot numbering (#12578) 2019-08-01 12:27:58 -04:00
mavlink_log.msg introduce uORB::PublicationQueued and transition most orb_advertise_queue usage 2019-08-04 10:08:09 -04:00
mission.msg beautify some identation 2018-08-09 13:40:48 +02:00
mission_result.msg beautify some identation 2018-08-09 13:40:48 +02:00
mount_orientation.msg beautify some identation 2018-08-09 13:40:48 +02:00
multirotor_motor_limits.msg add timestamp field to uORB msgs; sync timestamp whenever possible 2018-08-09 13:40:48 +02:00
obstacle_distance.msg Collision Prevention: support multiple sensors and frames (#12883) 2019-09-06 08:38:56 +02:00
offboard_control_mode.msg mc_att_ctrl: added yawrate control from offboard. 2019-06-04 08:26:09 +02:00
optical_flow.msg first push on supporting ROS2 Dashing and IDL 4.2 2019-10-04 16:56:03 +01:00
orbit_status.msg orbit_status: fix type for radius 2018-12-18 14:40:07 +01:00
parameter_update.msg beautify some identation 2018-08-09 13:40:48 +02:00
ping.msg add timestamp field to uORB msgs; sync timestamp whenever possible 2018-08-09 13:40:48 +02:00
position_controller_landing_status.msg generic position controller status/feedback message 2018-08-31 14:43:51 -04:00
position_controller_status.msg rename position_controller_status field from altitude_acceptance_radius 2018-09-24 11:23:01 +02:00
position_setpoint.msg Navigator: VTOL: disable weather vane during yaw aligning before front transition 2019-08-21 10:08:04 +02:00
position_setpoint_triplet.msg add timestamp field to uORB msgs; sync timestamp whenever possible 2018-08-09 13:40:48 +02:00
power_button_state.msg add timestamp field to uORB msgs; sync timestamp whenever possible 2018-08-09 13:40:48 +02:00
power_monitor.msg Added TI ina226 I2C power monitor (#11755) 2019-05-17 13:33:48 -04:00
pwm_input.msg add timestamp field to uORB msgs; sync timestamp whenever possible 2018-08-09 13:40:48 +02:00
qshell_req.msg qshell: rename qshell sequence fields so they can be parsed on fastrtpsgen 2019-09-04 17:04:28 +01:00
qshell_retval.msg qshell: rename qshell sequence fields so they can be parsed on fastrtpsgen 2019-09-04 17:04:28 +01:00
radio_status.msg radio_status: change 'fixed' field name to 'fix' so it does not clash with 'fixed' floating-point notation on the IDL generation 2018-10-08 10:58:45 +02:00
rate_ctrl_status.msg sensors: create vehicle_angular_velocity module (#12596) 2019-08-06 12:55:25 -04:00
rc_channels.msg added aux6 RC channel 2019-04-03 08:20:47 -04:00
rc_parameter_map.msg add timestamp field to uORB msgs; sync timestamp whenever possible 2018-08-09 13:40:48 +02:00
safety.msg add timestamp field to uORB msgs; sync timestamp whenever possible 2018-08-09 13:40:48 +02:00
satellite_info.msg add timestamp field to uORB msgs; sync timestamp whenever possible 2018-08-09 13:40:48 +02:00
sensor_accel.msg beautify some identation 2018-08-09 13:40:48 +02:00
sensor_baro.msg add timestamp field to uORB msgs; sync timestamp whenever possible 2018-08-09 13:40:48 +02:00
sensor_bias.msg sensors: create vehicle_acceleration module (#12597) 2019-08-07 05:05:48 -04:00
sensor_combined.msg first push on supporting ROS2 Dashing and IDL 4.2 2019-10-04 16:56:03 +01:00
sensor_correction.msg add timestamp field to uORB msgs; sync timestamp whenever possible 2018-08-09 13:40:48 +02:00
sensor_gyro.msg add timestamp field to uORB msgs; sync timestamp whenever possible 2018-08-09 13:40:48 +02:00
sensor_gyro_control.msg introduce sensor_gyro_control message for vehicle_angular_velocity (#12145) 2019-08-16 13:53:59 -04:00
sensor_mag.msg add timestamp field to uORB msgs; sync timestamp whenever possible 2018-08-09 13:40:48 +02:00
sensor_preflight.msg Improve magnetometer inconsistency check 2019-08-07 18:44:39 +02:00
sensor_selection.msg add timestamp field to uORB msgs; sync timestamp whenever possible 2018-08-09 13:40:48 +02:00
servorail_status.msg add timestamp field to uORB msgs; sync timestamp whenever possible 2018-08-09 13:40:48 +02:00
subsystem_info.msg introduce uORB::PublicationQueued and transition most orb_advertise_queue usage 2019-08-04 10:08:09 -04:00
system_power.msg add timestamp field to uORB msgs; sync timestamp whenever possible 2018-08-09 13:40:48 +02:00
task_stack_info.msg load_mon: update orb_publish to uORB::Publication<> 2019-09-02 20:41:34 -04:00
tecs_status.msg tecs msg: changed flight_path_angle to height rate as clearly we are 2018-09-17 10:27:08 -04:00
telemetry_status.msg introduce uORB::PublicationQueued and transition most orb_advertise_queue usage 2019-08-04 10:08:09 -04:00
test_motor.msg mixer_module: add support for test_motor (motor_test CLI command) 2019-10-21 09:42:08 +02:00
timesync_status.msg add timestamp field to uORB msgs; sync timestamp whenever possible 2018-08-09 13:40:48 +02:00
trajectory_waypoint.msg add point type (mavlink command associated with wp) in Obstacle Avoidance interface 2019-08-05 16:05:40 +02:00
transponder_report.msg introduce uORB::PublicationQueued and transition most orb_advertise_queue usage 2019-08-04 10:08:09 -04:00
tune_control.msg tune_control: use orb queue advertisement consistently 2019-07-25 10:38:57 -04:00
uavcan_parameter_request.msg introduce uORB::PublicationQueued and transition most orb_advertise_queue usage 2019-08-04 10:08:09 -04:00
uavcan_parameter_value.msg add timestamp field to uORB msgs; sync timestamp whenever possible 2018-08-09 13:40:48 +02:00
ulog_stream.msg ulog stream msgs: rename 'sequence' fields as they are protected names in fastrtpsgen 2019-10-14 16:37:17 +01:00
ulog_stream_ack.msg ulog stream msgs: rename 'sequence' fields as they are protected names in fastrtpsgen 2019-10-14 16:37:17 +01:00
vehicle_acceleration.msg sensors: create vehicle_acceleration module (#12597) 2019-08-07 05:05:48 -04:00
vehicle_air_data.msg beautify some identation 2018-08-09 13:40:48 +02:00
vehicle_angular_velocity.msg sensors: create vehicle_angular_velocity module (#12596) 2019-08-06 12:55:25 -04:00
vehicle_attitude.msg Fixing and simplifying mavlink odometry handling (#12793) 2019-08-30 06:33:13 -07:00
vehicle_attitude_setpoint.msg remove the landing gear from the attitude setpoint 2018-12-10 16:17:23 +01:00
vehicle_command.msg beautify some identation 2018-08-09 13:40:48 +02:00
vehicle_command_ack.msg introduce uORB::PublicationQueued and transition most orb_advertise_queue usage 2019-08-04 10:08:09 -04:00
vehicle_constraints.msg mc_pos_control/FlightTasks: trigger takeoff based on task 2019-05-22 22:05:38 +02:00
vehicle_control_mode.msg MAVLink/Commander: @Pedro-Roque's offboard yawrate handling 2019-06-04 08:26:09 +02:00
vehicle_global_position.msg EKF: Estimate WGS84 altitude with filtered AMSL offset 2018-11-22 16:55:30 +01:00
vehicle_gps_position.msg msg: Add antenna array heading offset to GPS message 2018-10-17 09:48:38 -04:00
vehicle_land_detected.msg LandDetector: switch land flags to properies instead of one state 2019-10-16 00:47:01 -04:00
vehicle_local_position.msg Update vehicle_local_position.ref_alt comment to reflect how ref_alt is being used in PX4 2019-10-14 12:33:25 -04:00
vehicle_local_position_setpoint.msg Auto traj - Add Trajectory logging 2018-11-06 22:17:00 +01:00
vehicle_magnetometer.msg add timestamp field to uORB msgs; sync timestamp whenever possible 2018-08-09 13:40:48 +02:00
vehicle_odometry.msg ECL reference frame alignment fix (#12771) 2019-09-23 14:24:52 -04:00
vehicle_rates_setpoint.msg VTOL rate control architecture improvements (#10819) 2018-11-21 20:32:40 -05:00
vehicle_roi.msg beautify some identation 2018-08-09 13:40:48 +02:00
vehicle_status.msg vehicle_status: replace ARMING_STATE_REBOOT with ARMING_STATE_SHUTDOWN 2019-08-05 05:55:33 -07:00
vehicle_status_flags.msg Commander: move esc_status as local variable. 2019-08-09 09:41:17 +02:00
vehicle_trajectory_waypoint.msg TRAJECTORY message renamed 2018-11-13 12:13:01 -05:00
vtol_vehicle_status.msg beautify some identation 2018-08-09 13:40:48 +02:00
wheel_encoders.msg Changed wheel encoder publication to multi-instance 2019-08-05 02:45:33 -07:00
wind_estimate.msg add timestamp field to uORB msgs; sync timestamp whenever possible 2018-08-09 13:40:48 +02:00