Commit Graph

166 Commits

Author SHA1 Message Date
skyscraper
daec4ea10e AP_Motors: Fix up after RC_Channels refactor
Further to refactor of RC_Channel class which included
adding get_xx set_xx methods, change reads and writes to the public members
to calls to  get and set functionsss

old public member(int16_t)   get function -> int16_t     set function (int16_t)
(expression where c is an object of type RC_Channel)
c.radio_in                     c.get_radio_in()           c.set_radio_in(v)
c.control_in                   c.get_control_in()         c.set_control_in(v)
c.servo_out                    c.get_servo_out()          c.set_servo_out(v)
c.pwm_out                      c.get_pwm_out()            // use existing
c.radio_out                    c.get_radio_out()          c.set_radio_out(v)
c.radio_max                    c.get_radio_max()          c.set_radio_max(v)
c.radio_min                    c.get_radio_min()          c.set_radio_min(v)
c.radio_trim                   c.get_radio_trim()         c.set_radio_trim(v);

c.min_max_configured() // return true if min and max are configured

Because data members of RC_Channels are now private and so cannot be written directly
 some overloads are provided in the Plane classes to provide the old functionality

new overload Plane::stick_mix_channel(RC_Channel *channel)
which forwards to the previously existing
void stick_mix_channel(RC_Channel *channel, int16_t &servo_out);

new overload Plane::channel_output_mixer(Rc_Channel* , RC_Channel*)const
which forwards to
(uint8_t mixing_type, int16_t & chan1, int16_t & chan2)const;

Rename functions

 RC_Channel_aux::set_radio_trim(Aux_servo_function_t function)
    to RC_Channel_aux::set_trim_to_radio_in_for(Aux_servo_function_t function)

 RC_Channel_aux::set_servo_out(Aux_servo_function_t function, int16_t value)
    to RC_Channel_aux::set_servo_out_for(Aux_servo_function_t function, int16_t value)

 Rationale:

        RC_Channel is a complicated class, which combines
        several functionalities dealing with stick inputs
        in pwm and logical units, logical and actual actuator
        outputs, unit conversion etc, etc
        The intent of this PR is to clarify existing use of
        the class. At the basic level it should now be possible
        to grep all places where private variable is set by
        searching for the set_xx function.

        (The wider purpose is to provide a more generic and
        logically simpler method of output mixing. This is a small step)
2016-05-10 16:21:15 +10:00
Randy Mackay
9b5b6f3779 AP_MotorsHeli: constrain filtered throttle
This is required because we have removed the constraint on the throttle input.  This also insures that there is no lag caused by the filtered throttle straying far outside the 0 to 1 range
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
e863f0b9c0 AP_MotorsHeli: use AP_Motors set_radio_passthrough in 0 to 1 range 2016-04-01 11:59:30 +09:00
Randy Mackay
47873c1d34 AP_MotorsHeli: fix RSC_SETPOINT param description 2016-04-01 11:59:30 +09:00
Randy Mackay
a18722a2fc AP_MotorsHeli: output_min uses new move_actuators in -1 to +1 range 2016-04-01 11:59:30 +09:00
Leonard Hall
97f0b00e3e AP_MotorsHeli: roll, pitch, yaw input in -1 to +1 range 2016-04-01 11:59:30 +09:00
Leonard Hall
d2a1cdf906 MotorsHeli: replace throttle_control_input with throttle_in
throttle_control_input was 0 to 1000 range, throttle_in is 0 to 1
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
Andrew Tridgell
1b682e3c8f AP_Motors: swash servos are output only 2016-01-05 06:41:51 +11: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
Robert Lefebvre
4443ca9602 AP_MotorsHeli: Yaw servo to move when using SV_MAN param for setup. 2015-11-12 19:37:32 +09:00
Robert Lefebvre
c2dff8749e AP_MotorsHeli: Change SV_MAN=2=Center to output _col_mid_pwm instead of 0 collective 2015-11-12 19:37:31 +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
Lucas De Marchi
831d8acca5 Remove use of PROGMEM
Now variables don't have to be declared with PROGMEM anymore, so remove
them. This was automated with:

    git grep -l -z PROGMEM | xargs -0 sed -i 's/ PROGMEM / /g'
    git grep -l -z PROGMEM | xargs -0 sed -i 's/PROGMEM//g'

The 2 commands were done so we don't leave behind spurious spaces.

AVR-specific places were not changed.
2015-10-30 14:35:16 +09:00
Lucas De Marchi
2c38e31c93 Remove use of PSTR
The PSTR is already define as a NOP for all supported platforms. It's
only needed for AVR so here we remove all the uses throughout the
codebase.

This was automated with a simple python script so it also converts
places which spans to multiple lines, removing the matching parentheses.

AVR-specific places were not changed.
2015-10-30 14:35:04 +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
981c96d8bc AP_MotorsHeli: Add more parameter checks 2015-08-31 11:27:47 +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
Fredrik Hedberg
e6119cf51f AP_Motors: Fix param indices in AP_MotorsHeli. 2015-08-31 11:27:36 +09:00
Fredrik Hedberg
e6957df54a AP_Motors: Fix param range comment in AP_MotorsHeli. 2015-08-31 11:27:33 +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
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
Robert Lefebvre
abb6eba291 AP_MotorsHeli: Change allow_arming check to use _rotor_speed_estimate
In future, this will be used to check actual rotor speed (measured) if available, to prevent trying to arm with the rotor spinning.
2015-07-21 16:25:21 +09:00
Robert Lefebvre
992c9c75bb AP_MotorsHeli: Create parameter_check method. 2015-07-21 16:25:04 +09:00
Robert Lefebvre
e2fe640e6c Copter: Clean up helicopter allow_arming() function 2015-07-21 16:24:58 +09:00
Robert Lefebvre
61d6c5aa1d AP_Motors: Creation of AP_Motors_Multirotor class 2015-07-21 16:24:38 +09:00
Robert Lefebvre
11214b3414 AP_Motors: move constraints to set_throttle 2015-06-22 13:52:59 +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
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
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
Randy Mackay
1a1fa7ca4b AP_MotorsHeli: add comment to avoid param conflict 2015-05-25 22:13:49 +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
Randy Mackay
edfa206bb8 Motors_Heli: nest heli params 2015-05-08 14:14:35 +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
72c3e9cc72 TradHeli: implement get_motor_mask 2014-07-26 16:33:20 +09:00
Robert Lefebvre
92bdf24dba AP_MotorsHeli: Add To-Do. Swash setup hasn't seemed to work right for a while, this might be why. Confirm later. 2014-07-13 17:11:22 +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
Robert Lefebvre
979abb9fbd TradHeli: Cause DDVP Tail Motor to stop immediately when Ch8 is 0. 2014-07-08 20:18:02 +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
134289af38 TradHeli: motor_to_channel_map moved to progmem 2014-02-15 05:27:50 +11: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
Robert Lefebvre
782ce54a5c TradHeli: Fix for yaw offset switching. Yaw Offset should switch on and off with the main motor, not waiting until the rotor has reached full speed. 2013-12-15 11:24:09 +09:00
Randy Mackay
4148c4e024 TradHeli: bug fix for main rotor ramp up
The main rotor ramp was being held back by the rotor speed estimate
instead of being allowed to jump up to the estimate if it's lower.

Also fixed some incorrect indentation
2013-12-05 21:24:20 +09:00
Randy Mackay
f9e19b8006 TradHeli: remove use of motor_out array
No longer required for logging purposes as we have RCOU
2013-11-27 22:33:02 +09:00
Randy Mackay
afbb199544 TradHeli: remove slash from parameter description
This may fix the issue in which the parameter descriptions are appearing
twice on the arducopter-parameters wiki page
2013-11-19 11:23:07 +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
9ac051c56d TradHeli: BugFix to ColYaw
Credit to Jolyon Saunders for finding this bug.
2013-11-15 22:58:11 +09:00
Robert Lefebvre
4426060ccc TradHeli: COLYAW not applied when the motor is not running 2013-11-15 22:58:06 +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
5d946be77c TradHeli: Change user description for COLYAW parameter. 2013-11-03 12:56:59 +09:00
Andrew Tridgell
97b7130bb9 libraries: update license header to GPLv3
we switched to GPLv3 a long time ago, but neglected to update the
per-file license headers
2013-08-30 13:01:39 +10: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
Robert Lefebvre
957cb094ea TradHeli: Remove unused RSC Mode 3. 2013-07-19 16:16:06 +09:00
Andrew Tridgell
81f7ae9108 AP_Motors: fixed indent-tabs-mode 2013-05-30 09:51:34 +10:00
Randy Mackay
6a65a32de2 CopterMotors: add formatting info to top of files 2013-05-20 10:48:42 +09:00
Andrew Tridgell
2c05030fb1 AP_Motors: use the right constrain() function 2013-04-22 13:26:49 +10:00
Randy Mackay
a656b619f5 AP_Motors: remove auto_armed
redundant flag that was already held in the main code which is where it
belongs.
2013-04-17 21:28:42 +09:00
James Bielman
5631f865b2 Update floating point calculations to use floats instead of doubles.
- Allows use of hardware floating point on the Cortex-M4.
- Added "f" suffix to floating point literals.
- Call floating point versions of stdlib math functions.
2013-01-16 13:52:01 +11:00
Andrew Tridgell
03b26c7d6d AP_Motors: fixed setup of ESC update speeds 2013-01-10 15:52:46 +11:00
Pat Hickey
c6fe5e5340 AP_Motors: ported to AP_HAL 2012-12-20 14:51:26 +11:00