20535 Commits

Author SHA1 Message Date
Azarakhsh Keipour
3124e76aaa Omni Pos-Ctrl: Added (unfiltered) roll and pitch angle estimation mode 2020-07-26 01:23:53 -04:00
Azarakhsh Keipour
0630abd01a Omni Pos-Ctrl: Added (unfiltered) tilt angle and direction estimation mode 2020-07-26 00:55:45 -04:00
Azarakhsh Keipour
0e65bfffa4 Omni Pos-Ctrl: OMNI_PROJ_AXES works for OMNI_ATT_MODE = 1 2020-07-23 06:29:57 -04:00
Azarakhsh Keipour
d77f74bb53 Omni Pos-Ctrl: Roll/Pitch airmode implemented for Omni vehicles
- For MC_AIRMODE = 1
2020-07-21 08:15:17 -04:00
Azarakhsh Keipour
7a07f41b65 Omni Pos-Ctrl: Added the OMNI_PROJ_AXES parameter 2020-07-13 19:35:08 -04:00
Azarakhsh Keipour
68005486a1 Omni Pos-Ctrl: Thrust projected on current/commanded axes based on input 2020-07-13 19:06:10 -04:00
Azarakhsh Keipour
2ee4eaf4a4 Omni Att-Ctrl: Desired tilt/roll/pitch params passed to attitude controller
- OMNI_ATT_TLT_ANG default set to 0 degrees
2020-07-13 17:45:08 -04:00
Azarakhsh Keipour
651c75558e Omni Pos-Ctrl: Added desired roll/pitch attitude setpoint generation 2020-07-13 14:06:28 -04:00
Azarakhsh Keipour
03e7435fbe Omni Att-Ctrl: New parameters for fixed tilt and fixed roll/pitch
- OMNI_ATT_TLT_ANG
- OMNI_ATT_TLT_DIR
- OMNI_ATT_ROLL
- OMNI_ATT_PITCH
2020-07-13 13:48:44 -04:00
Azarakhsh Keipour
725fff3052 Omni Pos-Ctrl: Current attitude passed to attitude generation methods 2020-07-13 13:37:21 -04:00
Azarakhsh Keipour
f18f92a505 Omni Pos-Ctrl: Fixed-tilt attitude generation strategy implemented
- Currently receiving hardcoded tilt angle and direction
2020-07-13 12:47:45 -04:00
Azarakhsh Keipour
4d3c915183 MultiRotor Mixer: Fix a styling issue for readability 2020-07-13 12:21:04 -04:00
Azarakhsh Keipour
69fe37e6be Omni Mixer: The mixer for 6-DoF vehicles is refactored to the MultirotorMixer now 2020-01-21 18:23:07 -05:00
Azarakhsh Keipour
81d554ef71 Omni Pos-Ctrl: The maximum dfc thrust is defined as a parameter
- The parameter is shared with the manual mode's maximum horizontal thrust (renamed from OMNI_MAX_HOR_THR to OMNI_DFC_MAX_THR) defined in the mc_att_control module
- The definition for the OMNI_ATT_MODE moved from mc_pos_control module to mc_att_control
- The thrustToAttitude function now has additional omni_dfc_max_thrust parameter
- Test modules are fixed to call the new thrustToAttitude function appropriately
- The code is tested in Gazebo for both manual and (semi-)autonomous modes
2020-01-21 18:23:07 -05:00
Azarakhsh Keipour
a655425849 Omni: Set the default OMNI_MAX_HOR_THR to 0.15 2020-01-21 18:23:07 -05:00
Azarakhsh Keipour
0cdaf4a801 Omni Pos-Ctrl: Minimum-tilt attitude setpoint for omni-directional vehicles implemented
- The goal is to use all the possible (set by the user) horizontal thrust first and then tilt if necessary, thus achieving minimum possible tilt.
- This is an implementation of the following paper for OMNI_ATT_MODE = 1:
"A Daisy-Chain Control Design for a Multirotor UAV with Direct Force Capabilities", M. Hamza and E.N. Johnson, 2017 AIAA GNC Conference

- Still need to define a parameter for the maximum direct force
2020-01-21 18:23:07 -05:00
Azarakhsh Keipour
494595111b Omni Att-Ctrl: Added a new parameter for controlling the maximum horizontal thrust
- OMNI_MAX_HOR_THR parameter specifies the maximum horizontal thrust compared to the maximum possible thrust generated by the vehicle for an omnidirectional multirotor
2020-01-21 18:23:07 -05:00
Azarakhsh Keipour
3c2087a69d Omni MC: Changed the parameter name MC_OMNI_MODE to OMNI_ATT_MODE
- To be more descriptive and similar to other (future) OMNI_ parameters
2020-01-21 18:23:07 -05:00
Azarakhsh Keipour
3ae19f254c Omni Att-Ctrl: Manual mode works smoother now and based on the MC_OMNI_MODE parameter
- Some observations:
	- It's still not as smooth as expected (or maybe I'm not a good pilot)
	- Acceleration on the body X axis feels lower than the body Y axis (no idea why)
- Flight tested in Gazebo sim in both Manual and Autonomous modes
2020-01-21 18:23:07 -05:00
Azarakhsh Keipour
8fd875f8c7 Omni Pos-Ctrl: Refactoring of the attitude set point generation for omni-directional modes 2020-01-21 18:23:07 -05:00
Azarakhsh Keipour
db6b09adf0 Omni Pos-Ctrl: The attitude setpoint is generated based on the MC_OMNI_MODE parameter now 2020-01-21 18:23:07 -05:00
Azarakhsh Keipour
252284d89b Omni Att-Ctrl: Added attitude controller for omni vehicles 'Manual' mode
- Still the control feels weird and need more refining
2020-01-21 18:23:07 -05:00
Azarakhsh Keipour
d6c27c6f37 Omni Pos-Ctrl: Defined MC_OMNI_MODE PX4 parameter in the position controller 2020-01-21 18:23:07 -05:00
Azarakhsh Keipour
1882ff6b4b Omni Pos-Ctrl: Attitude setpoint generation for omni vehicles completed 2020-01-21 18:23:07 -05:00
Azarakhsh Keipour
bc489492d4 Omni Pos-Ctrl: (WIP) Continue code for attitude setpoint generation for omni vehicles 2020-01-21 18:23:07 -05:00
Azarakhsh Keipour
8bfdf29055 Tilt-Hex Pos-Ctrl: (WIP) Started code for attitude setpoint generation for omni vehicles 2020-01-21 18:23:07 -05:00
Azarakhsh Keipour
400f8ea4be Bug Fix(es): 3D-thrust ranges fixed to -1..1 and manual z maps to negative z-thrust now
- The range for 3D-thrust in the 6-DOF multirotor mixer is changed to -1 to 1 now (fixed from 0 to 1)
- The Z thrust in the 6-DOF multirotor mixer is mapped to the Z-thrust command now (fixed from thrust command)
- The manual Z command in the rate controller maps to the negative Z-thrust (fixed from positive Z)
- The variable _thrust_body_sp in the rate controller renamed to _thrust_sp to be compatible with the older variable removed in the last commit
- The code tested in TakeOff, Manual, Hold, Position and Land modes on both tilted hex and iris

Accepting and working with 3D thrust commands now
2020-01-21 18:23:07 -05:00
Azarakhsh Keipour
3a321302f0 (WIP) MC-Att-Ctrl: Added 3d thrust set point to the 6-Dof attitude and rate controllers 2020-01-21 18:23:07 -05:00
Azarakhsh Keipour
0f40eb953d Bug Fix: The absolute value of Z thrust is used in the 6-Dof mixer now
- Tilt-Hex flies like a normal hex but with the new 6-dof mixer now (with some jitters)
- Some minor parameter changes in the hexa_x_tilt definition to make the simulated flight smoother
2020-01-21 18:23:07 -05:00
Azarakhsh Keipour
a878d6823d Mixer: Added 3D thrust capability to the multirotor and 6-dof mixers
- Added 3D thrust definitions to actuator controls and multirotor motor limits messages
2020-01-21 18:23:06 -05:00
Azarakhsh Keipour
d7f61e41d8 Mixer 6-DoF: Airmode and saturation enabled
- More info at https://github.com/Auterion/Flight_Control_Prototyping_Scripts/tree/master/control_allocation
- The drone is still not flying stably, has vibration and flies away.
2020-01-21 18:23:06 -05:00
Azarakhsh Keipour
0d7d567c4b Mixer 6DoF (WIP): Added a special S mixer for 6-DoF multirotors 2020-01-21 18:23:06 -05:00
Azarakhsh Keipour
1af1b40733 Mixer Generation: Generate normalized 6-DoF mixer matrices 2020-01-21 18:23:06 -05:00
Azarakhsh Keipour
c53923d1d3 Mixer Generation: Generate mixers for a new MultirotorMixer6dof class for 6-DoF vehicles 2020-01-21 18:23:06 -05:00
Azarakhsh Keipour
4bcf796a89 Added mixer and gazebo model for the tilted-arm hexarotor 2020-01-21 18:23:06 -05:00
Azarakhsh Keipour
6b8fbc3c45 Hex TOML: Changed to reflect the omni-8 for now 2020-01-21 18:23:06 -05:00
Azarakhsh Keipour
e49fb5bf50 Tilt-Hex: Completed mixer definitions (for now) 2020-01-21 18:23:06 -05:00
Daniel Agar
cf195b0755 commander: safety button disarm require land detector
- landed, maybe_landed, or ground_contact required before the safety
button is able to disarm
 - this reduces the risk of a faulty safety button triggering in regular
flight
2020-01-21 23:35:25 +01:00
Daniel Agar
4f868fc565 commander: use arm_disarm() helper for safety button disarm 2020-01-21 23:35:25 +01:00
Daniel Agar
350268ee68 navigator: mission WORK_ITEM_TYPE_MOVE_TO_LAND altitude isn't relative 2020-01-21 23:27:22 +01:00
Roman Bapst
fa83f3799a navigator: set acceptance radius even for IDLE position setpoint 2020-01-21 11:14:43 -05:00
kamilritz
04e09d772e Add missing mag calibration biases 2020-01-21 13:36:08 +03:00
kamilritz
a3d2254e44 Move mag downsampling to ECL lib 2020-01-21 13:36:08 +03:00
kamilritz
4e8665082e Move baro downsampling and dynamic pressure comp to ECL lib 2020-01-21 13:36:08 +03:00
Daniel Agar
dc05ceaad2
create temperature_compensation module
- this is a new module for temperature compensation that consolidates the functionality previously handled in the sensors module (calculating runtime thermal corrections) and the events module (online thermal calibration)
 - by collecting this functionality into a single module we can optionally disable it on systems where it's not used and save some flash (if disabled at build time) or memory (disabled at run time)
2020-01-20 21:42:42 -05:00
Daniel Agar
e863dd317e
Update submodule ecl to latest Tue Jan 21 00:39:21 UTC 2020
-  ecl in PX4/Firmware (ac205456f93857f447595eb0005c954a78461778): 011b4c2e4e
    - ecl current upstream: 950e75e484
    - Changes: 011b4c2e4e...950e75e484

950e75e 2020-01-18 Matthias Grob - EKF_ringbuffer: minor missing space for style
26125c2 2020-01-17 kamilritz - Switch from jenkins to github actions
2020-01-20 21:01:02 -05:00
Daniel Agar
635ceccfdb
land_detector: relax data timeouts uniformly
* if we're hitting these timeouts there are much larger problems in the system
2020-01-20 17:14:00 -05:00
Daniel Agar
d1260aa28c logger: add safety (switch) at minimal rate 2020-01-20 14:30:24 -05:00
Daniel Agar
c270e75156
vehicle_local_position: delete unused and redundant dist_bottom_rate 2020-01-18 12:50:57 -05:00
Matthias Grob
1e06f6bbd2 mc_pos_control: fix derivative spike when regaining velocity estimate
When having no velocity estimate the derivative was updated with zero.
When losing the velocity estimate this is fine since the resulting
derivative spike doesn't get used and acceleration is set to NAN.
But when regaining the velocity estimate the spike from zero to
the first estimated velocity gets used as acceleration in the position
controller and results in a twitch.

To solve this I use the derivative reset I introduced in pr #13522
commit b64abf48b211b66fbfc7a3b900adbbbdf0e2e14c
2020-01-18 10:57:12 +01:00