Commit Graph

13217 Commits

Author SHA1 Message Date
Daniel Agar 07d727a4a8 commander: mag calibration auto rotation simplify applying calibration and rotation 2020-08-21 10:12:13 -04:00
Daniel Agar 1a6eb7859c commander: mag calibration auto rotation improvements
- skip rotations that are identical or very close
 - compute mean squared error (MSE) to skip a sqrt
2020-08-21 10:12:13 -04:00
Daniel Agar bc6e4c8a92 commander: accel calibration use all queued data
- print each calibration when finished
2020-08-21 10:12:13 -04:00
Daniel Agar f9aca05ede commander: gyro calibration use all queued data
- print calibration status when finished
2020-08-21 10:12:13 -04:00
Daniel Agar f2c9865c9b sensor mag add minimal queue and calibration check all
- mag calibration acceptance check sphere/ellipsoid fit status
2020-08-21 10:12:13 -04:00
Daniel Agar b2e8f6839f commander: mag calibration improve console and debug output 2020-08-21 10:12:13 -04:00
Daniel Agar 2bb04f2261 commander: increase COM_ARM_MAG_ANG 35 -> 45 degrees
- in practice this is mostly useful for identifying incorrect rotations
which we mostly have in 45 degree increments
 - handling a vehicle on the ground can easily disturb one mag by more than 30 degrees, so this is often distracting noise
2020-08-21 10:12:13 -04:00
Daniel Agar 44c877c603 sensors: size sensor error_count consistently (uint32_t) 2020-08-21 10:12:13 -04:00
Daniel Agar e6fd5a43bc commander: magnetometer calibration automatically set the rotation of external magnetometers relative to the first internal
- see #15120 for more detail
2020-08-21 10:12:13 -04:00
Daniel Agar 27f23ac290 move initial sensor priority to parameters and purge ORB_PRIORITY
- CAL_ACCx_EN -> CAL_ACCx_PRIO
 - CAL_GYROx_EN -> CAL_GYROx_PRIO
 - CAL_MAGx_EN -> CAL_MAGx_PRIO
2020-08-21 10:12:13 -04:00
Daniel Agar 971b1e4b4d sensors: move mag aggregation to new VehicleMagnetometer WorkItem
- purge all reminaing magnetometer IOCTL usage
 - mag calibration add off diagonal (soft iron) scale factors
2020-08-21 10:12:13 -04:00
Daniel Agar ad148af2fd commander: mag_calibration move to Magnetometer calibration helper 2020-08-21 10:12:13 -04:00
Daniel Agar d92ddffa5d commander: add simple accelerometer quick calibration 2020-08-21 10:12:13 -04:00
Daniel Agar e3e8c55e82 accel & gyro calibration helpers 2020-08-21 10:12:13 -04:00
Julian Kent 7958586f35 Only use roll/pitch not centered for RC override, and increase override threshold 2020-08-20 11:50:16 -04:00
Julian Kent e2e72fd81e Fix map distortion due to high latitudes (#15449) 2020-08-19 09:55:15 +02:00
bazooka joe 190b96a46c SMbus battery driver - a lot of updates and optimizations
- added support for BQ40Z80 based battery
- added performance counter for interface errors
- added SMART_BATTERY_INFO mavlink message
- general code cleanups and optimization
- fixed: void flooding the log in case of interface error
- fixed: using _batt_startup_capacity instead of _batt_capacity for discharged_mah
- update: read manufacture_date
- update: get _cell_count from parameter and not const 4
- update: avoid re-reading data that has already been read and stored on class already
- currently the battery type defined by BAT_SMBUS_MODEL parameter and not by auto detection
2020-08-18 21:41:19 -04:00
Daniel Agar 372866a22b uORB::DeviceNode replace SubscriptionData with uORB::SubscriptionInterval 2020-08-18 20:48:30 -04:00
TSC21 ac9c8bcc09 microRTPS: cmake: fix relative path for IDL files 2020-08-18 17:16:04 +02:00
TSC21 a091a70470 microRTPS: split the microRTPS client and agent dest directories for better visbility and handling 2020-08-18 17:16:04 +02:00
TSC21 56a105e322 logger: by default, log the onboard_computer_status topic 2020-08-17 13:24:12 +02:00
Beat Küng ba5d7773f8 mavlink_timesync: print sender comp id for 'RTT too high for timesync' msg (#15539)
helps with debugging
2020-08-13 10:58:25 +02:00
Thies Lennart Alff d7d8aa9b64 uuv_att_control: removed redundant code, switched to new uORB API 2020-08-12 13:16:28 -04:00
Daniel Agar 942eb83184 sensors: keep legacy params active (BAT_V_DIV/BAT_A_PER_V) for QGC SITL
- fixes https://github.com/PX4/Firmware/issues/15505
2020-08-12 11:57:34 -04:00
Daniel Agar f19a20dc43 commander: preflight power check ignore module count if USB connected
- this check isn't relevent during bench testing
2020-08-12 11:48:38 -04:00
RomanBapst 355e3ea986 vtol_type: use correct pwm device path in init function
Signed-off-by: RomanBapst <bapstroman@gmail.com>
2020-08-12 08:55:23 +02:00
RomanBapst 01535a726a vtol_type: reset quadchute filter states if TECS is not running
Signed-off-by: RomanBapst <bapstroman@gmail.com>
2020-08-12 08:55:23 +02:00
SalimTerryLi 49e83b6ae4 load_mon: add linux support 2020-08-11 18:33:44 -04:00
kritz 9d962cdfbc Pr update matrix (#15520)
* Update submodule Matrix

* replace deprecated matrix functions

* update submodule ECL

* Update Matrix submodule

* Use absolute value of loiter radius

* Update ECL submodule
2020-08-11 10:08:41 +02:00
Daniel Agar b7f9ff6747 mc_att_control: don't use auto for primitive types
Co-authored-by: Mathieu Bresciani <brescianimathieu@gmail.com>
2020-08-10 14:07:42 -04:00
Daniel Agar 0781fdd813 mc_att_control: don't store vehicle_status copy 2020-08-10 14:07:42 -04:00
Daniel Agar 8c42c38650 mc_att_control: don't store full vehicle_land_detected copy 2020-08-10 14:07:42 -04:00
Daniel Agar 41a1675c53 AttitudeControl: only normalize attitude setpoint once on update 2020-08-10 14:07:42 -04:00
Daniel Agar 1c42d12491 mc_att_control: don't keep att copy and avoid unnecessary Quatf construction and copies 2020-08-10 14:07:42 -04:00
Daniel Agar 5e739f66d6 mc_att_control: inline control attitude call and rate publication
- this makes it clear that we didn't need to keep local copies of the rate setpoint
2020-08-10 14:07:42 -04:00
Daniel Agar 14f734ac15 mc_pos_control: use local position timestamp for dt 2020-08-10 10:51:52 -04:00
Daniel Agar c5eb084236 mc_rate_control: use angular velocity timestamp for dt 2020-08-10 10:51:52 -04:00
Daniel Agar 45ee16d236 mc_att_control: use attitude timestamp for dt 2020-08-10 10:51:52 -04:00
Daniel Agar 9992bd05db fw_att_control: pass time through from run 2020-08-10 10:51:52 -04:00
Daniel Agar 560c22e612 fw_pos_control_l1: pass time through from run 2020-08-10 10:51:52 -04:00
Daniel Agar 97fc1db768 vehicle_local_position: rename yaw -> heading and add reset logic
- vehicle_global_position yaw removed (redundant)
2020-08-10 11:42:03 +02:00
bresch 33fb9d0c62 Commander: update home position yaw in case of EKF yaw reset
This makes sure the drone lands in the correct orientation
during RTL even if the initial yaw at takeoff was wrong.
2020-08-10 11:42:03 +02:00
Daniel Leonard Robinson fa4818e467 vehicles: add new vehicle type: Airship (#14862)
Co-authored-by: Anton Erasmus <anton@flycloudline.com>
Co-authored-by: Beat Küng <beat-kueng@gmx.net>
2020-08-10 08:52:51 +02:00
Daniel Agar 3002e74b4f mavlink: publish telemetry_status per instance with all HEARTBEATS from the same system
- one telemetry_status publication per mavlink instance
 - each telemetry_status has an array of HEARTBEATS
2020-08-07 12:23:52 -04:00
Thies Lennart Alff f950fe8a38 uuv_att_control: added bodyrate setpoint to the geometric controller
* added bodyrate setpoint to the geometric controller
* started switching to new uORB API
2020-08-06 10:40:44 -04:00
Daniel Agar b6a17a6538 new IntrusiveSortedList container used for uORB, WorkQueues, and WorkItems
- new intrusive linked list container (c++ template) that sorts on insertion
 - primarily for convenience inspecting things in the system like uORB or WorkQueues
 - uorb status or top sorted alphabetically 
 - work_queue status threads sorted by priority, then items sorted alphabetically within each
2020-08-04 11:09:41 -04:00
Beat Küng dfc2160489 commander: update vehicle_status with at least 2Hz
So we're sure it's logged.
2020-08-04 10:53:20 -04:00
Beat Küng 5f8c6512b3 vehicle_status: add latest arming/disarming reason
Makes it easier to debug.
2020-08-04 10:53:20 -04:00
Daniel Agar c40cf9a626 uORB: remove lost message count per DeviceNode
- update 'uorb status' to print basic info for all advertised DeviceNodes
 - report vehicle_command gaps in commander, navigator, mavlink
2020-08-04 10:34:11 -04:00
Daniel Agar ba640acfcc mc_hover_thrust_estimator: validity flag and other small improvements/fixes
- track and publish validity based on hover thrust variance, innovation test ratio, and hysteresis
 - only publish on actual updates or becoming inactive
 - fix dt (previous timestamp wasn't being saved)
 - use local position timestamp (corresponding) to accel data rather than current time to avoid unnecessary timing jitter
 - check local position validity before using
 - mc_hover_thrust_estimator: move from wq:lp_default -> wq:nav_and_controllers to ensure the hover thrust estimator runs after the position controller and uses the same vehicle_local_position data
 - land_detector: check hover thrust estimate validity and adjust low throttle thresholds if hover thrust is available
 - mc_pos_control: only use hover thrust estimate if valid
2020-08-03 10:30:52 -04:00