Commit Graph

282 Commits

Author SHA1 Message Date
Michael du Breuil
c85f8c7bf5 Rover: Simplify radio trimming, improve MAVLink report 2018-06-11 16:29:36 -07:00
Randy Mackay
b69155793f Rover: add Log_Write_Depth 2018-06-12 08:29:08 +09:00
Randy Mackay
d34c87a457 Rover: alphabetise Log_Write methods 2018-06-12 08:29:08 +09:00
Randy Mackay
c51b38cd1c Rover: rename Log_Arm_Disarm to Log_Write_Arm_Disarm 2018-06-12 08:29:08 +09:00
Randy Mackay
10d89f1315 Rover: remove unimplemented Log_Write_Performance declaration 2018-06-12 08:29:08 +09:00
Peter Barker
cf1f2f9aeb Rover: move motors_active to be motors.active
This will help when we come to subclass the Motors library.
2018-06-08 08:51:18 +09:00
Peter Barker
65b7ca3fbb Rover: factor out a do_aux_function_change_mode
Less code is good
2018-06-08 08:50:08 +09:00
Peter Barker
36705af8ff Rover: create an enumeration to hold vehicle mode constants
This gives us type-safety on the mode numbers.  This is advantageous as
some of these symbols exist with different values elsewhere in the code.
2018-06-08 08:41:16 +09:00
Ammarf
26c25daa36 Rover: add support for lateral control input 2018-05-31 13:48:17 +09:00
Randy Mackay
73bdc3be09 Rover: set ahrs flyforward if thr over 15% for 2 seconds
or if throttle is positive and desired speed over 0.5m/s
2018-05-29 16:37:31 +09:00
Peter Barker
9d83ee8cc7 Rover: move sending of vfr_hud up 2018-05-29 13:00:40 +10:00
Peter Barker
8101f2b573 Rover: move sending of simstate up 2018-05-23 18:36:50 +10:00
Randy Mackay
24dd9a1c2c Rover: update GPS at 50hz 2018-05-23 17:17:29 +09:00
Peter Barker
1ecd371cd0 Rover: move sending of GLOBAL_POSITION_INT up to GCS_MAVLINK 2018-05-17 15:48:06 +01:00
Peter Barker
3799a13bc3 Rover: move send_attitude up to GCS_MAVLINK 2018-05-17 18:28:43 +10:00
Peter Barker
0d3051e46a Rover: handle setting of ekf origin in GCS_MAVLink 2018-05-17 10:13:42 +10:00
Peter Barker
a52f3d8f70 Rover: move Log_Write_Home_And_Origin into AP_AHRS 2018-05-17 10:13:42 +10:00
Peter Barker
a78fe0896f Rover: make scheduler track whether it has called the delay callback 2018-05-09 16:15:38 +10:00
Peter Barker
9e1811027d APMrover2: move try_send_message handling of RC_CHANNELS_RAW up 2018-05-08 12:33:32 +01:00
Randy Mackay
c6638f66de Rover: Loiter mode for boats 2018-05-06 16:58:00 +09:00
night-ghost
2aee8d1018 APMrover2: devo telemetry support (RX705/707) 2018-04-24 10:44:28 +10:00
Peter Barker
63e8fffbe4 Rover: Baro does its own dataflash logging now 2018-04-12 19:12:12 +01:00
Michael du Breuil
05173f24c6 Rover: Use RC_Channels instead of hal.rcin 2018-04-11 21:47:07 +01:00
Peter Barker
e74d07ff15 Rover: remove wrapper for Log_Write_Beacon 2018-04-04 16:20:33 +09:00
Peter Barker
a45e3cba15 Rover: factor vehicle's mavlink send_heartbeat 2018-04-03 13:05:19 +01:00
Peter Barker
c10f404b12 Rover: tidy handling of barometer calibrations 2018-04-02 23:25:05 +01:00
Michael du Breuil
b761a57da3 Rover: Support new battery interface 2018-03-27 22:12:21 +01:00
Peter Barker
9d0da4a71f Rover: move home state into AP_AHRS 2018-03-19 10:32:37 +09:00
Peter Barker
ceb64fb7d9 Rover: use ins singleton 2018-03-16 00:37:35 -07:00
Peter Barker
81ba037582 Rover: use baro singleton 2018-03-08 21:20:05 -08:00
Peter Barker
90d26a5100 Rover: eliminate perf_update scheduler table shim 2018-02-13 17:15:05 +11:00
Peter Barker
d9bb546048 Rover: use AP_Scheduler's loop() function 2018-02-13 17:15:05 +11:00
Peter Barker
211e7416a9 Rover: use scheduler ticks in place of mainloop_count 2018-02-13 17:15:05 +11:00
Peter Barker
9511e72113 Rover: use PerfInfo for performance monitoring 2018-02-13 17:15:05 +11:00
Peter Barker
df304c5e6b Rover: remove shims used in scheduler table 2018-02-12 15:39:26 +09:00
Michael du Breuil
2e9e91b3a3 Rover: Move battery logging to AP_BattMonitor 2018-02-06 00:11:32 +00:00
Randy Mackay
489c42bdff Rover: add avoidance library 2018-01-22 17:18:41 +09:00
khancyr
5503a0069d Rover: add proximity library 2018-01-22 17:18:41 +09:00
khancyr
c3fb985ec5 Rover: add fence support 2018-01-22 17:18:41 +09:00
Peter Barker
7cf2712bf1 Rover: AP_AHRS no longer requires GPS in constructor 2017-12-27 00:58:02 +00:00
Peter Barker
bce9a40ab5 Rover: remove unimplemented methods 2017-12-15 13:27:14 +09:00
Andrew Tridgell
482ae876fb Rover: removed create() method for objects
See discussion here:

  https://github.com/ArduPilot/ardupilot/issues/7331

we were getting some uninitialised variables. While it only showed up in
AP_SbusOut, it means we can't be sure it won't happen on other objects,
so safest to remove the approach

Thanks to assistance from Lucas, Peter and Francisco
2017-12-14 08:12:28 +11:00
Randy Mackay
f6f40afcda Rover: rename control_mode_from_num to mode_from_mode_num 2017-12-12 10:39:26 +09:00
Randy Mackay
9710b16cac Rover: THR dataflash logging replaces CTUN 2017-12-09 12:18:49 +09:00
Randy Mackay
8eb991b610 Rover: boats say active at destination in auto
previously the user would use the LOITER_UNLIMITED or LOITER_TIME mission commands to specify that the vehicle should remain active at the destination.  This was cumbersome and not the best way to specify this behaviour because these two commands are valid for regular rovers that should not try to remain active at the destination.
2017-12-08 08:48:05 +09:00
Randy Mackay
aa38239629 Rover: add FRAME_CLASS to differentiate boats from rovers 2017-12-08 08:48:05 +09:00
Peter Barker
1d2ec9054b Rover: tighten return types of mavlink functions and variables 2017-12-01 17:01:10 +00:00
Peter Barker
e38cefea8a Rover: add SmartRTL mode
called at 3hz from scheduler
2017-12-01 09:28:56 +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
Peter Barker
c00a4f3bb2 Rover: AP_Camera uses GPS singleton 2017-11-16 15:28:37 +00:00
Peter Barker
2d0a23fcc8 Rover: call ins's periodic function 2017-10-27 16:33:45 +11: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
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
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
894bf2a23f Rover: support SET_GPS_GLOBAL_ORIGIN message 2017-09-19 10:30:15 +09:00
Peter Barker
25a32c93f2 Rover: move gcs_out_of_time into GCS object 2017-09-12 18:28:07 +01:00
Peter Barker
d98c427514 Rover: add constant structure holding firmware version 2017-08-30 15:54:46 +01:00
Randy Mackay
1600823b12 Rover: aux switch to learn cruise throttle and speed 2017-08-25 14:05:23 +09:00
Randy Mackay
14c74a5967 Rover: remove learning mode
saving waypoints can be done in manual or steering mode
2017-08-25 14:05:23 +09:00
Randy Mackay
524fe4cd82 Rover: aux switch saves waypoint in manual or steering modes
Also refactor aux switch methods
rename LEARN_CH to AUX_CH
2017-08-25 14:05:23 +09:00
Randy Mackay
82e61d7198 Rover: remove unused throttle_failsafe_active method 2017-08-25 14:05:23 +09:00
khancyr
4ab11027a7 Rover: remove unused mavlink_delay(uint32_t ms) 2017-08-24 20:41:16 +09:00
khancyr
ed19db7188 Rover: set_mode arg name to match implementation
definition and implementation used different argument name
2017-08-17 09:46:19 +09:00
Randy Mackay
492fe40f93 Rover: re-organise private member declarations
declarations are grouped by file (which are in turn organised alphabetically) and in the order they appear within each file
non-functional change
2017-08-15 20:47:19 +09:00
Randy Mackay
6c7db05207 Rover: re-organise includes
non-functional change
2017-08-15 20:47:19 +09:00
Randy Mackay
0b917cfd36 Rover: mode auto guided and rtl slow before destination
new mode class member _desired_speed_final holds target speed at destination

main vehicle code passes heading to next waypoint into auto mode.
we do not provide heading when delaying at waypoint which signals we wish

auto-mode calculates final speed at destination which allows vehicle to
make turn within value of WP_OVERSHOOT parameter assuming vehicle turns at
maximum lateral acceleration.
2017-08-15 20:47:19 +09:00
Randy Mackay
d99108f3bc Rover: use AR_AttitudeControl for throttle control
also direct throttle nudge replaced with speed nudge
calc_speed_max estimates vehicle's top speed based on cruise-speed and
cruise-throttle
steering mode now provides total target speed instead of using speed plug
throttle nudge
motor limits provided to attitude control to stop i-term buildup
uses negative desired speed instead of reversed flag
reporting to GCS uses new throttle controller
braking is simply enabled and allows a reverse motor output regardless of vehicle
speed
2017-08-15 20:47:19 +09:00
Randy Mackay
9097269d6d Rover: use AR_AttitudeControl for steering control 2017-08-15 20:47:19 +09:00
Peter Barker
fa2b500e93 Rover: remove CLI 2017-08-14 10:23:50 +09:00
Randy Mackay
59a1f260d1 Rover: remove unused compat.h 2017-08-12 14:46:46 +09:00
Randy Mackay
bff74115bc Rover: remove unused distance_past_wp 2017-08-12 13:05:01 +09:00
Randy Mackay
30852d4713 Rover: auto-reversed moved to mode 2017-08-05 11:20:58 +09:00
Randy Mackay
66f1437e4f Rover: remove unused throttle variable 2017-08-05 11:20:58 +09:00
Randy Mackay
e88b1572b6 Rover: remove navigate 2017-08-05 11:20:58 +09:00
Randy Mackay
fe6465b748 Rover: remove next_WP, wp_distance, navigate
Also remove prev_WP, wp_totalDistance which are all handled within mode class
2017-08-05 11:20:58 +09:00