Randy Mackay
7be0f437a9
AP_Motors: consolidate matrix multicopters
...
AP_MOTORS_x_FRAME definitions moved to motor_frame_type enum
init function and now accepts frame-class and type to perform initial motor setup
set_frame_class_and_type allows real-time changing of motor setup
initialised_ok flag and accessor records whether setup was successful
2016-12-31 10:55:23 +09:00
Randy Mackay
2da7ea746b
MotorsHeli: minor formatting updates
2016-12-14 13:21:59 +09:00
Mathieu OTHACEHE
152edf7189
Global: remove mode line from headers
...
Using a global .dir-locals.el file is a better alternative than
reincluding the same emacs header in every file of the project.
2016-10-24 09:42:01 -02:00
Andrew Tridgell
11975223dd
AP_Motors: added H_RSC_POWER_NEGC and H_RSC_SLEWRATE
...
this gives more control over throttle for petrol
helis. H_RSC_POWER_NEGC allows for a asymmetric V-curve, which allows
for less power being put into the head when landing or when sitting on
the ground. That can lead to significantly less vibration and chance
of ground oscillation. A heli not being flown with aerobatics does not
need to use high throttle at negative collective pitch.
The H_RSC_SLEWRATE allows for a maximum throttle slew rate to be
set. Some petrol motors can cut if the throttle is moved too
quickly. We had this happen at a height of 6m when switching from
ALT_HOLD to STABILIZE mode. It also lowers the chance of the blades
skewing in their holders with the sudden change of power when the heli
is disarmed. In general it is a bad idea to do instantaneous large
movements of a IC engine throttle.
2016-07-03 18:29:05 +10:00
Andrew Tridgell
bc7488e2f2
AP_Motors: fixed typos
2016-07-01 15:35:29 +10:00
Leonard Hall
4f0db2bc36
AP_Motors: learned THST_HOVER replace THR_MID
...
This holds the estimated thrust required for the vehicle to hover
expressed as a number from 0 to 1. 0 will be equivalent to outputting
SPIN_MIN (which is a number from 0~1 but in the full output range) and 1 is equivalent to SPIN_MAX (also 0~1 but in the full output range)
2016-06-18 11:55:49 +09:00
Fredrik Hedberg
75d5c87788
AP_Motors: Fix setpoint bug with 0~1 conversion in AP_MotorsHeli
2016-05-25 09:27:40 +09:00
Ricardo de Almeida Gonzaga
2802775e7d
AP_Motors: Fix typos
2016-05-13 19:20:06 -03:00
Randy Mackay
2e8acf1f74
AP_MotorsHeli: calculate_scalars made protected
...
No functional change
2016-04-01 11:59:30 +09:00
Randy Mackay
4f1e62d551
AP_MotorsHeli: remove reset_radio_passthrough
2016-04-01 11:59:30 +09:00
Randy Mackay
9790245bf1
AP_MotorsHeli: replace collective_mid_pwm with collective_mid_pct
2016-04-01 11:59:30 +09:00
Randy Mackay
4514e8d100
AP_MotorsHeli: remove slow_start
2016-04-01 11:59:30 +09:00
Randy Mackay
e863f0b9c0
AP_MotorsHeli: use AP_Motors set_radio_passthrough in 0 to 1 range
2016-04-01 11:59:30 +09:00
Randy Mackay
b3334c3ae5
AP_MotorsHeli: rotor speed function in 0 to 1 range
2016-04-01 11:59:30 +09:00
Randy Mackay
756236af35
AP_MotorsHeli: remove unused delta_phase_angle
2016-04-01 11:59:30 +09:00
Randy Mackay
16ac92be82
AP_MotorsHeli: remove unused definitions
2016-04-01 11:59:30 +09:00
Randy Mackay
aeef6692cb
AP_MotorsHeli: remove unused roll_scalar, pitch_scalar, collective_range
2016-04-01 11:59:30 +09:00
Randy Mackay
bcbe6b279e
AP_MotorsHeli: explicitely set ServoControlModes enum
...
Non functional change but this enum is tied to a parameter value so the exact value is important
2016-04-01 11:59:30 +09:00
Randy Mackay
8febcedf4b
AP_MotorsHeli: remove unnecessary static declaration
2016-04-01 11:59:30 +09:00
Randy Mackay
f022e504b0
AP_MotorsHeli: remove unused get_collective_mid and out methods
2016-04-01 11:59:30 +09:00
Randy Mackay
1197a439af
AP_MotorsHeli: move_actuators to -1 to +1 range
2016-04-01 11:59:30 +09:00
Leonard Hall
f02e8f8e01
AP_MotorsHeli: remove output_armed_not_stabilizing
2016-04-01 11:59:30 +09:00
Lucas De Marchi
7d9153feb8
AP_Motors: replace header guard with pragma once
2016-03-16 18:40:42 +11:00
Robert Lefebvre
3a13db9333
AP_MotorsHeli: Add more parameter checks.
2015-12-07 14:51:42 +09:00
Andrew Tridgell
47b9f6598a
AP_Motors: allow change to heli rotor speed controls while armed
...
this helps a lot with tuning for gas helis
2015-11-27 15:12:03 +09:00
Robert Lefebvre
bb7f8c1999
AP_MotorsHeli: Create Servo Test functionality
2015-11-12 19:37:34 +09:00
Robert Lefebvre
eeb544d098
AP_MotorsHeli: Create SV_MAN=5=Oscillate servo setup mode.
2015-11-12 19:37:33 +09:00
Fredrik Hedberg
212eb85ff2
AP_MotorsHeli: Add min and max collective to manual servo modes
2015-11-12 19:37:30 +09:00
Robert Lefebvre
22729e6927
AP_MotorsHeli: Change servo manual #defines into enum
2015-11-12 19:37:29 +09:00
Fredrik Hedberg
5fd7fe3e53
AP_Motors: Add manual servo override to center swash-plate for set-up in AP_MotorsHeli.
2015-11-12 19:37:25 +09:00
Jolyon Saunders
ca28a49fa6
AP_Motors: Circular swash-plate limits for AP_MotorsHeli
2015-11-12 19:37:24 +09:00
Randy Mackay
ca942f39dd
AP_Motors_Heli: remove unused allow_arming check
2015-10-27 09:14:40 +09:00
Andrew Tridgell
f22a1d3e6d
AP_Motors: display message in heli parameter_check()
2015-09-25 12:30:34 +10:00
Randy Mackay
e3ff4ed9c4
MotorsHeli: integrate RotorControlState
2015-08-31 11:43:59 +09:00
Robert Lefebvre
bde43412d8
AP_MotorsHeli: Fix RSC Mode 3
2015-08-31 11:43:55 +09:00
Robert Lefebvre
28318c4116
AP_MotorsHeli: Move Output functions into parent class
2015-08-31 11:43:50 +09:00
Robert Lefebvre
84102c3e3f
AP_MotorsHeli: Rework how servo setup is done.
2015-08-31 11:43:49 +09:00
Robert Lefebvre
345663f705
AP_MotorsHeli: Simplify servo init/reset
2015-08-31 11:43:48 +09:00
Robert Lefebvre
b11600aebe
AP_MotorsHeli: Move set_delta_phase_angle into _Single class
2015-08-31 11:43:47 +09:00
Robert Lefebvre
3756c6b3f3
AP_MotorsHeli: Create RSC Throttle Curve mode for controlling gas engines.
2015-08-31 11:43:45 +09:00
Robert Lefebvre
f853979816
AP_MotorsHeli: run RSC Control function in Output Min function
...
Move Output_Min() function into Heli_Single class as it will eventually be overloaded by other helicopter class types.
2015-08-31 11:43:44 +09:00
Robert Lefebvre
315f0408ae
AP_MotorsHeli: RSC controller to use speed ramp as simple float scalar
2015-08-31 11:27:52 +09:00
Robert Lefebvre
cefa0c28a6
AP_MotorsHeli: RSC Mode 0 no longer a valid mode
2015-08-31 11:27:48 +09:00
Robert Lefebvre
214d60abb9
AP_MotorsHeli: Create RSC_IDLE param
2015-08-31 11:27:41 +09:00
Robert Lefebvre
10b0be9e75
AP_MotorsHeli: Fully detail tradheli output functions and move manual servo handling
2015-08-31 11:27:39 +09:00
Robert Lefebvre
457d939e77
AP_MotorsHeli: Update includes so that it builds
2015-08-31 11:27:37 +09:00
Fredrik Hedberg
97e09fa9b0
AP_Motors: Move traditional helicopter controls into AP_MotorsHeli_Single.
...
Original commit by fhedberg, had to fix merge conflicts and now it appears I did the commit?
2015-08-31 11:27:31 +09:00
Fredrik Hedberg
af69a20ba5
AP_Motors: Break out yaw output in AP_MotorsHeli.
2015-08-31 11:27:30 +09:00
Fredrik Hedberg
feb32f40ed
AP_Motors: Break out servo init and reset in AP_MotorsHeli.
2015-08-31 11:27:29 +09:00
Fredrik Hedberg
ae9a16dc27
AP_Motors: Move rotor speed control into AP_MotorsHeli_RSC.
2015-08-31 11:27:28 +09:00
Fredrik Hedberg
1bb6b65ce0
AP_Motors: Use C++11 initializers in AP_MotorsHeli.
2015-08-31 11:27:27 +09:00
Gustavo Jose de Sousa
1e619c6c59
AP_Motors: standardize inclusion of libaries headers
...
This commit changes the way libraries headers are included in source files:
- If the header is in the same directory the source belongs to, so the
notation '#include ""' is used with the path relative to the directory
containing the source.
- If the header is outside the directory containing the source, then we use
the notation '#include <>' with the path relative to libraries folder.
Some of the advantages of such approach:
- Only one search path for libraries headers.
- OSs like Windows may have a better lookup time.
2015-08-11 16:38:19 +10:00
Randy Mackay
7355ac9cb8
AP_MotorsHeli: implement empty slow start method
2015-07-21 16:25:34 +09:00
Randy Mackay
a3fab10ef4
AP_MotorsHeli: init roll_radio_passthrough
2015-07-21 16:25:31 +09:00
Robert Lefebvre
9fcbc77ce0
AP_MotorsHeli: Create rotor_speed_above_critical accessor
2015-07-21 16:25:11 +09:00
Robert Lefebvre
992c9c75bb
AP_MotorsHeli: Create parameter_check method.
2015-07-21 16:25:04 +09:00
Robert Lefebvre
e1902e2289
AP_MotorsHeli: Remove unused _dt variable.
2015-07-14 20:13:43 +09:00
Robert Lefebvre
0c92565d23
AP_MotorsHeli: add Critical Rotor Speed param, use to switch off runup_complete
2015-06-19 15:10:53 +09:00
Robert Lefebvre
3ad6700c5d
AP_MotorsHeli: add getters for rotor speed
2015-06-19 15:10:51 +09:00
Robert Lefebvre
8b917b82ee
AP_MotorsHeli: Simplify set_desired_rotor_speed function definition
2015-06-19 15:10:50 +09:00
Robert Lefebvre
79e8c8f7f7
AP_MotorsHeli: whitespace fixes
2015-06-19 15:10:47 +09:00
Robert Lefebvre
1424b17a83
AP_Motors_Heli: Change default RSC_SETPOINT to 700
2015-05-29 17:46:25 +09:00
Robert Lefebvre
d24664ccf9
AP_MotorsHeli: Semantic change. Motor Runup to Rotor Runup
2015-05-29 17:46:18 +09:00
Robert Lefebvre
65ca09600c
AP_Motors: Heli eliminate _dt member and fix rsc_runup calculation
2015-05-29 17:46:09 +09:00
Robert Lefebvre
b8181b6b90
AP_Motors: RCMAP fix
...
Remove all RC Input channels passed as reference into AP_Motors. All input handling self-contained inside AP_Motors.
Rework Tricopter to use internal servo calcs.
2015-05-25 22:13:32 +09:00
Robert Lefebvre
73bafa131e
AP_MotorsHeli: Overload output()
...
To protect it from future interference from Multirotor code.
2015-05-22 09:38:23 +09:00
Robert Lefebvre
d3ce68a8ca
AP_MotorsHeli: Overload update_throttle_filter()
...
Do not reset filter to zero when disarmed to allow collective pitch servo movement.
2015-05-22 09:38:20 +09:00
Randy Mackay
3d9a6a69e2
MotorsHeli: COLYAW to float
2015-05-08 14:14:36 +09:00
Robert Lefebvre
1a482de5e2
AP_MotorsHeli: Overload output_armed_zero_throttle
2015-05-01 14:30:25 +09:00
Jonathan Challinger
8e442675a7
AP_Motors: introduce set_stabilize(bool), specifies whether torque demands should be output
2015-04-16 20:59:40 +09:00
Randy Mackay
7ab76dbd0e
Motors: add loop_rate to constructor for all frames
2015-03-03 15:48:34 +09:00
Randy Mackay
9b9f6cd47a
AC_MotorsHeli: init member to resolve compiler warning
2014-08-14 11:27:33 +09:00
Randy Mackay
72c3e9cc72
TradHeli: implement get_motor_mask
2014-07-26 16:33:20 +09:00
Robert Lefebvre
789b1018fc
AP_MotorsHeli: Change set_delta_phase_angle so that it forces recalculation of collective factors.
2014-07-08 20:18:39 +09:00
Robert Lefebvre
fd542e99d8
AP_MotorsHeli: Create Delta Phase Angle variable and method to set. Will be used by CCComp code.
2014-07-08 20:18:34 +09:00
Robert Lefebvre
0680b88abd
AP_MotorsHeli: Add main loop rate time variable and method. Change RSC increment calc to account for loop rate time.
2014-07-08 20:18:20 +09:00
Randy Mackay
3610cfe24c
TradHeli: output_test for individual motors
...
Based on original work by Nils Hogberg
2014-04-29 11:41:13 +09:00
Randy Mackay
18d3907928
TradHeli: use refs for all RC_Channels
2014-02-15 05:27:49 +11:00
Randy Mackay
80ec61f217
TradHeli: make accessor methods const
2014-02-15 05:27:43 +11:00
Randy Mackay
1426078cdb
TradHeli: disable aux channels 7 and 8
2014-02-07 22:04:23 +09:00
Robert Lefebvre
d441354961
TradHeli: Minor change to two param defaults
...
Also one param name in the code clarified.
2014-01-10 10:52:17 +09:00
Randy Mackay
7233a567fb
TradHeli: add accessor for phase_angle
2013-11-15 22:58:41 +09:00
Randy Mackay
c9c803ffd4
TradHeli: move STAB_COL_MIN to main parameter list
2013-11-15 22:58:32 +09:00
Randy Mackay
b71c6bfd76
TradHeli: add RSC_RUNUP_TIME param and rotor speed estimate
2013-11-15 22:58:29 +09:00
Randy Mackay
bc4dba0eea
TradHeli: ext gyro gain range 0 to 1000
2013-11-15 22:58:26 +09:00
Randy Mackay
197fc67897
TradHeli: move pilot desired rotor speed to heli.pde
2013-11-15 22:58:24 +09:00
Randy Mackay
942c14258b
TradHeli: ramp up changes
...
Rewrote tail and main rotor ramp up methods
Moved direct drive ESC speed control into rsc_control method
Pass in ch7 servo as servo_aux to TradHeli motors object constructor
split CH7_SETPOINT parameter into GYR_GAIN and DIRECTDRIVE parameters
replaced RSC_RATE with uint8_t RSC_RAMP_TIME parameter
rename GOV_SETPOINT parameter to RSC_SETPOINT
RSC_MODE parameter description updated to indicate it controls the
source of main rotor speed
2013-11-15 22:58:13 +09:00
Robert Lefebvre
9ae66c1773
TradHeli: add support for drive tail rotors
...
Repurposed external gyro and made it multi-funcitonal.
required PWM on Ch8 to start the motor in RSC Mode moved up from 100 to 400. This is to facilitate two-stage switching of the motors with PWM>100 starting the tail motor, and PWM>400 starting the main motor.
Additional amendments by Randy
2013-11-15 22:58:04 +09:00
Randy Mackay
7ae0d3320b
TradHeli: add landing collective min
2013-11-15 22:57:58 +09:00
Randy Mackay
1f65bb537f
TradHeli: add get_pilot_desired_collective
...
Perhaps this should be moved to the main code's heli.pde sketch
2013-11-15 22:57:51 +09:00
Randy Mackay
13a412ee21
TradHeli: make parameters and variables private
...
add accessors for variables and params required in main code
replace tabs with spaces
2013-11-15 22:57:41 +09:00
Randy Mackay
2cc48ffcd6
Copter: formatting and param description changes
2013-11-15 22:57:37 +09:00
Robert Lefebvre
c812d07993
TradHeli: Creating motor_runup_complete bool which is to confirm that the heli motor is running. This will be used for advanced features in the future.
2013-07-19 16:16:08 +09:00
Andrew Tridgell
81f7ae9108
AP_Motors: fixed indent-tabs-mode
2013-05-30 09:51:34 +10:00
Randy Mackay
bd07b1e57b
ACMotors: remove unused get_num_motors function
...
Saves about 4 bytes of RAM
2013-05-14 17:35:27 +09:00
Randy Mackay
1a7cffefe6
TradHeli: change coll_out to int16_t
...
was incorrectly defined as an AP_Int16 parameter
2013-04-24 11:32:26 +09:00
Andrew Tridgell
f91ddf5df9
AP_Motors: removed board type define
2013-01-02 15:27:58 +11:00
Andrew Tridgell
7582c882e6
Motors: updates for new AP_Param API
2012-12-20 14:51:39 +11:00
Pat Hickey
c6fe5e5340
AP_Motors: ported to AP_HAL
2012-12-20 14:51:26 +11:00
Robert Lefebvre
0eb57bf93d
ACM: TradHeli
...
Fix to make update_throttle_cruise work with stab_throttle scaling.
2012-12-08 15:12:39 -05:00