Commit Graph

1304 Commits

Author SHA1 Message Date
Randy Mackay
87658e6a07 AP_MotorsUGV: add MOT_THST_EXPO to scale output to motors 2017-12-04 09:53:06 +09:00
Randy Mackay
bee8741b60 AP_MotorsUGV: order methods in cpp file to match h
non-functional change
2017-12-04 09:53:06 +09:00
Randy Mackay
865fb91676 Rover: add rpm to WENC dataflash logging 2017-12-04 09:53:06 +09:00
Peter Barker
1d2ec9054b Rover: tighten return types of mavlink functions and variables 2017-12-01 17:01:10 +00:00
Randy Mackay
0c6afac5c6 Rover: allow mode to be set from ch7 switch 2017-12-01 21:59:55 +09:00
Randy Mackay
ed558dd9a0 Rover: play sad tune when arming fails 2017-12-01 21:59:55 +09:00
Randy Mackay
b4a779aec3 Rover: add arm/disarm to ch7 switch 2017-12-01 21:59:55 +09:00
Randy Mackay
8eb58b266a Rover: remove unused failsafe_throttle_suppress method 2017-12-01 21:59:55 +09:00
Randy Mackay
8043c0f638 Rover: reduce arming delay to 2 sec 2017-12-01 21:59:55 +09:00
Peter Barker
e38cefea8a Rover: add SmartRTL mode
called at 3hz from scheduler
2017-12-01 09:28:56 +09:00
Randy Mackay
86ce3f2b32 Rover: add SmartRTL library to build 2017-12-01 09:28:56 +09:00
Randy Mackay
9f94875228 Rover: mode class gets set_desired_location_NED 2017-12-01 09:28:56 +09:00
Randy Mackay
6d472376bb AP_MotorsUGV: do not limit just because of saturation
steering and throttle limit flags should only be set when there is no point in the caller passing in higher values because it will not result in an increased response.  In the case of saturation, higher inputs will still result in a higher response.
2017-11-30 20:13:11 +09:00
Peter Barker
5612292802 Rover: allow vehicle to be armed in manual with no GPS 2017-11-30 15:41:50 +09:00
Peter Barker
1a59b38204 Rover: use throttle rather than steering to determine target speed 2017-11-30 15:37:40 +09:00
Peter Barker
68800a52f5 Rover: move RC failsafe check up
Both steering and acro modes can benefit from this check
2017-11-29 17:35:44 +09:00
Randy Mackay
69dc68d621 Rover: re-order acro mode to add early return
non-functional change
2017-11-29 14:03:43 +09:00
Randy Mackay
060f1d36dd Rover: allow aux switch to record waypoints when not in auto-mode
this reduces the changes required when adding new modes
2017-11-29 14:03:43 +09:00
Peter Barker
45d76bdf25 Rover: add name4() to Mode and use it for AP_Notify calls 2017-11-29 14:03:43 +09:00
Randy Mackay
04e9228fa0 Rover: add Acro mode
ACRO_TURN_RATE allows user control of maximum turn rate
2017-11-29 14:03:43 +09:00
Randy Mackay
5b7cd31221 Rover: send steering PID tuning to GCS in most modes
Using manual_steering and auto_throttle is not perfectly correct because we will send steering rate PID info in HOLD mode but will not send throttle PID info in Steering mode
2017-11-29 09:38:53 +09:00
Randy Mackay
26f50f6055 Rover: PILOT_STEER_TYPE replaces SKID_STEER_IN
new options allow controlling vehicle's heading while reversing
skid-steering vehicles rotate in opposite direction when backing up
2017-11-29 09:38:53 +09:00
Randy Mackay
c6689fd2e1 Rover: rename calc_nav_steer to calc_steering_from_lateral_acceleration
rename calc_lateral_acceleration to calc_steering_to_waypoint
calc_steering_to_waypoint internally calls calc_steering_from_lateral_acceleration
non-functional change
2017-11-28 11:46:21 +09:00
Randy Mackay
fa7c56a110 Rover: minor comment fix 2017-11-28 10:38:19 +09:00
Daniel Widmann
8f1857759f AP_MotorsUGV: allow larger MOT_SLEWRATE values 2017-11-28 09:12:18 +09:00
Randy Mackay
78275ec4a1 AP_MotorsUGV: throttle slew updates motor limit flags
this ensure I-term build-up doesn't happen when the slew
causes the throttle to react slowly
2017-11-28 09:12:18 +09:00
Andrew Tridgell
01c4e51d08 Rover: don't disable compass on one bad reading
the compass can go back for a short time and recover

found by Michael
2017-11-28 09:02:24 +11:00
Randy Mackay
a7fd353f14 Rover: add comment to unused param enum entries 2017-11-27 20:40:35 +09:00
Randy Mackay
6d805b64b6 AP_MotorsUGV: remove access to enable/disable throttle slewing 2017-11-27 14:31:20 +09:00
Randy Mackay
23028a659b Rover: slew throttle in all modes 2017-11-27 14:31:20 +09:00
Randy Mackay
822c4b6dca Rover: remove set of slew for motor test
The motor library test function does not attempt to implement slewing so setting this is not necessary
2017-11-27 14:31:20 +09:00
Randy Mackay
cab972a429 Rover: reduce TURN_MAX_G default to 1.0
This is probably still slightly too high but closer than the previous 2.0
2017-11-27 12:25:28 +09:00
Peter Barker
9272c10043 Rover: use short descriptions for mission item types 2017-11-27 10:28:24 +09:00
Randy Mackay
b60cb536ab Rover: RTL within auto mode 2017-11-23 10:20:19 +09:00
Randy Mackay
14d9e932ab Rover: allow disarming from transmitter on skid-steering vehicles 2017-11-23 09:07:04 +09:00
Peter Barker
bf6b3a72bc Rover: support for units on fields 2017-11-23 10:40:30 +11:00
khancyr
279a57dc10 APMrover2: fix servo_out to GCS message 2017-11-21 20:23:55 +09:00
khancyr
005002736b AP_MotorsUGV: fix MOT_SLEWRATE parameter description 2017-11-21 20:02:20 +09:00
Andrew Tridgell
d57f307032 Rover: use cork/push wrapper 2017-11-21 14:10:54 +11:00
Peter Barker
c00a4f3bb2 Rover: AP_Camera uses GPS singleton 2017-11-16 15:28:37 +00:00
Peter Barker
baf82cec22 Rover: use gps singleton for GCS functions 2017-11-15 13:43:03 +00:00
khancyr
c08203de17 Rover: allow pivot turn in STEERING mode 2017-11-15 13:46:58 +09:00
André Kjellstrup
aab22d7dad Rover: Option to trig by distance only when in AUTO mode 2017-11-14 00:10:22 +00:00
Randy Mackay
7e2214c2be Rover: simplify logic for lateral-accel override during use-pivot-steering
It was theoretically possible that the lateral-acceleration would not be overwritten if the yaw-error-cd was exactly zero
2017-11-08 17:15:59 +09:00
khancyr
2b0645d6a1 Rover: get_throttle_out calls do not require skid-steering arg 2017-11-08 15:45:43 +09:00
Daniel Widmann
bc7cf97b4e Rover: don't use GPS speed to detect reversing
instead pass reverse to attitude controller based on desired speed
2017-11-08 14:37:59 +09:00
Daniel Widmann
ac7e76cc43 Rover: enable pivot turns in auto mode 2017-11-08 14:35:00 +09:00
Pierre Kancir
4d38eb85a1 APMRover2: Add support of MANUAL_CONTROL msg 2017-10-31 09:31:05 +09:00
Randy Mackay
7fb4f17ad9 Rover: 3.2.0-rc2 release notes 2017-10-28 15:16:11 +09:00
Peter Barker
2d0a23fcc8 Rover: call ins's periodic function 2017-10-27 16:33:45 +11:00
khancyr
74d5767e25 Rover: Fix slew rate range 2017-10-26 19:44:43 +09:00
Randy Mackay
2ef1e8e4c2 Rover: fix PID desired and achieved reporting 2017-10-26 19:44:18 +09:00
Randy Mackay
ea70755f00 Rover: fix speed nudge
fix bug when target speed was exactly zero which caused nudge to be a large negative value
2017-10-26 19:44:07 +09:00
Randy Mackay
fb9f695d2f Rover: fix use-pivot-steering
absolute yaw error should be used
2017-10-26 19:43:55 +09:00
Randy Mackay
fb944322c7 Rover: minor fix to disarm logic
check should use logical and instead of bitwise and
2017-10-26 19:43:48 +09:00
Randy Mackay
2c568f8046 Rover: minor parameter description change
non-functional change
2017-10-26 19:43:42 +09:00
Randy Mackay
9f67d2a88d Rover: add MOT_SKID_FRIC to up skid-steer motor out while stopped 2017-10-26 19:43:36 +09:00
Tom Pittenger
f7d07fc146 Rover: always log MODE and include reason when logging is enabled 2017-10-25 21:18:29 +11:00
Andrew Tridgell
f25e8631ef Rover: support simple accelcal 2017-10-10 10:57:38 +11:00
Michael du Breuil
4f83d39b5e Rover: Report GPS health 2017-09-27 19:29:32 +01:00
Lucas De Marchi
e98ccb9ae6 ArduRover: use static method to construct controllers 2017-09-26 03:01:21 +01:00
Lucas De Marchi
bfd13dfe87 global: use static method to construct AP_AHRS_DCM 2017-09-26 03:01:21 +01:00
Lucas De Marchi
beabae6a98 global: use static method to construct AP_AHRS_NavEKF 2017-09-26 03:01:21 +01:00
Lucas De Marchi
c9fbf7b722 global: use static method to construct AP_NavEKF3 2017-09-26 03:01:21 +01:00
Lucas De Marchi
e2fe36357a global: use static method to construct AP_NavEKF2 2017-09-26 03:01:21 +01:00
Lucas De Marchi
eadd650d78 global: use static method to construct AP_RSSI 2017-09-26 03:01:21 +01:00
Lucas De Marchi
18aa88b329 global: use static method to construct AP_Mount 2017-09-26 03:01:21 +01:00
Lucas De Marchi
c3647f0185 global: use static method to construct AP_Camera 2017-09-26 03:01:21 +01:00
Lucas De Marchi
cc53e7bc4b global: use static method to construct AP_ServoRelayEvents 2017-09-26 03:01:21 +01:00
Lucas De Marchi
13d7f58036 global: use static method to construct AP_Relay 2017-09-26 03:01:21 +01:00
Lucas De Marchi
9ce6019138 global: use static method to construct AP_Frsky_Telem 2017-09-26 03:01:21 +01:00
Lucas De Marchi
b022c02029 global: use static method to construct AP_BattMonitor 2017-09-26 03:01:21 +01:00
Lucas De Marchi
69b6d95cb2 global: use static method to construct AP_Board_Config{,_CAN} 2017-09-26 03:01:21 +01:00
Lucas De Marchi
a74e700006 global: use static method to construct RCMapper 2017-09-26 03:01:21 +01:00
Lucas De Marchi
72fd2d6f05 global: use static method to construct AP_SerialManager 2017-09-26 03:01:21 +01:00
Lucas De Marchi
fbe0d9761c global: use static method to construct AP_OpticalFlow 2017-09-26 03:01:21 +01:00
Lucas De Marchi
5ec1430726 APMrover2: use static method to construct AP_Arming_Rover 2017-09-26 03:01:21 +01:00
Lucas De Marchi
b36a5919f5 global: use static method to construct AP_Mission
This also move the initialization to be in the header for those that
weren't already to maintain consistency.
2017-09-26 03:01:21 +01:00
Lucas De Marchi
40fd1b346c global: remove rangefinder from AP_AHRS_NavEKF
AP_AHRS_NavEKF doesn't use the rangefinder, it just delegates the
calls to the right estimator.

For libraries/AP_AHRS/examples/AHRS_Test/AHRS_Test.cpp the initialization
order has also been modified to match the order on vehicles. It's more
correct since it passes a reference when EKF2/EKF3 are already
constructed, while thos constructors use a pointer.  Ideally these
should be moved to an init() method though, or use a get_instance().
2017-09-26 03:01:21 +01:00
Lucas De Marchi
9027a55696 global: use static method to construct RangeFinder 2017-09-26 03:01:21 +01:00
Lucas De Marchi
f5c2ffffb9 global: remove DataFlash from AP_Mount::init() 2017-09-26 03:01:21 +01:00
Lucas De Marchi
53c82b4aaf global: use static method to construct DataFlash_Class 2017-09-26 03:01:21 +01:00
Lucas De Marchi
62ac0ab8aa global: use static method to construct AP_Notify 2017-09-26 03:01:21 +01:00
Lucas De Marchi
de680dac5b global: use static method to construct AP_Scheduler 2017-09-26 03:01:21 +01:00
Lucas De Marchi
8094482f21 global: use static method to construct AP_GPS 2017-09-26 03:01:21 +01:00
Lucas De Marchi
87b30b4552 global: use static method to construct AP_InertialSensor 2017-09-26 03:01:21 +01:00
Lucas De Marchi
c1a957fbf3 global: use static method to construct Compass 2017-09-26 03:01:21 +01:00
Lucas De Marchi
91feec0e14 global: use static method to construct AP_Baro 2017-09-26 03:01:21 +01:00
Lucas De Marchi
ad05e0a643 APMrover2: protect version.h from inclusion and use ap_version.h 2017-09-23 21:37:45 -07:00
Lucas De Marchi
27be369be7 APMrover2: do not include version.h/ap_version.h
The interface provided by each vehicle should be used to get the
version.
2017-09-23 21:37:45 -07:00
Lucas De Marchi
0c49b7a973 APMrover2: move version to a static member
We should never include version.h or ap_version.h headers directly
on a header since this will trigger a complete rebuild of the
codebase when we commit to the repository. The ap_version.h header
is auto-generated containing information from the current commit.

If we include it in a header, every other file that ends up including
that header (directly or indirectly) will need to be rebuilt. No
ccache's cache beats having to do nothing when the header is just
not included.

version.h contains information that is kept on a struct inside
each vehicle. Rather than using the macros from each vehicle,
the getter should be preferred, which returns an AP_FWVersion
referente.
2017-09-23 21:37:45 -07:00
Randy Mackay
3af5893f9e Rover: command-long DO_SET_HOME check first param is zero 2017-09-20 12:14:38 +09:00
Randy Mackay
f7cb006d40 Rover: accept DO_SET_HOME within COMMAND_INT 2017-09-20 12:14:38 +09:00
Randy Mackay
b1684b5377 Rover: accept more mav-frame types
accept mav frames whether or not they have _INT appended
2017-09-20 12:14:38 +09:00
Peter Barker
b84e40a804 Rover: move handling of SET_GPS_GLOBAL_ORIGIN up 2017-09-19 15:44:23 +09:00
Randy Mackay
4899401679 Rover: minor comment fix 2017-09-19 10:30:15 +09:00
Randy Mackay
de406da254 Rover: set home using EKF position
previously the home position could be set from DCM
This makes the setting of home slower but more accurate
2017-09-19 10:30:15 +09:00
Randy Mackay
894bf2a23f Rover: support SET_GPS_GLOBAL_ORIGIN message 2017-09-19 10:30:15 +09:00
Peter Barker
add5eb6907 Rover: remove old DO_SET_MODE support
We no longer support setting modes except via custom-modes
2017-09-19 01:24:11 +01:00
Peter Barker
25a32c93f2 Rover: move gcs_out_of_time into GCS object 2017-09-12 18:28:07 +01:00