20542 Commits

Author SHA1 Message Date
Azarakhsh Keipour
f3e21ddc7a Omni Pos-Ctrl: Reduced jerking when a large command is given in offboard
- OMNI_ATT_MODE = 2 uses OMNI_DFC_MAX_THR parameter to limit the horizontal commanded thrust now
- Other modes are not affected
2020-08-03 22:22:03 -04:00
Azarakhsh Keipour
431a0cb11e Omni Pos-Ctrl: Added a parameter for the attitude change rate (OMNI_ATT_MODE=6) 2020-07-28 21:30:23 -04:00
Azarakhsh Keipour
948e75c230 Omni Pos-Ctrl: Slow attitude change works now. 2020-07-28 20:46:23 -04:00
Azarakhsh Keipour
2d101c5998 Omni Pos-Ctrl: Fixed a compilation issue for pixracer) 2020-07-28 19:38:56 -04:00
Azarakhsh Keipour
1ccd452de6 (WIP) Omni Pos-Ctrl: Added slow attitude change OMNI_ATT_MODE = 6 (disabled for now) 2020-07-28 18:59:07 -04:00
Azarakhsh Keipour
a7920aa09f Omni Pos-Ctrl: Wind estimation is only OMNI_ATT_MODE = 5 now for both tilt and roll/pitch estimation 2020-07-26 01:48:17 -04:00
Azarakhsh Keipour
45af173da1 Omni Params: Attitude setpoint params moved from attitude controller to position controller 2020-07-26 01:46:20 -04:00
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