Commit Graph

1483 Commits

Author SHA1 Message Date
Randy Mackay 8119c537c7 Rover: integrate vectored thrust support 2018-04-24 19:57:19 +09:00
Randy Mackay 38b79cf0bc AP_MotorsUGV: support vectored thrust
steering scaled down as throttle increases
2018-04-24 19:57:19 +09:00
Randy Mackay 29e8866ea9 Rover: move avoidance into calc_throttle
also enable avoidance for steering and guided modes
2018-04-24 12:24:53 +09:00
night-ghost 2aee8d1018 APMrover2: devo telemetry support (RX705/707) 2018-04-24 10:44:28 +10:00
Randy Mackay 8fa1700d02 Rover: 3.3.0-rc1 release notes 2018-04-19 17:20:38 +09:00
Randy Mackay 87eef9051f Rover: increase default pivot turn angle to 60deg
pivoting at only 30degrees of error could lead to endless twitching back and forth for poorly tuned rovers
2018-04-19 16:32:48 +09:00
Peter Barker d66cb1dda0 Rover: use AP_ServoRelayEvents singleton 2018-04-18 20:31:55 +09:00
Peter Barker e73a02343a Rover: GPS now logs its own data 2018-04-18 13:50:55 +09:00
Daniel Widmann 572d9ba43b Rover: Allow switching to ACRO mode for skid steer rovers without GPS 2018-04-13 09:12:03 +09:00
Daniel Widmann e782ce2b51 Rover: Allow ACRO mode for skid steer rovers without GPS 2018-04-13 09:12:03 +09: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
Michael du Breuil 3bad3b2e68 Rover: Check MANUAL_CONTROL target 2018-04-10 16:54:34 +01:00
Randy Mackay da619e8aa6 Rover: 3.2.3 release notes 2018-04-09 09:04:30 +09:00
Andrew Tridgell 4f6240ee8a Rover: handle oneshot125 separately 2018-04-07 09:10:29 +10:00
Andrew Tridgell 4350cee7cf Rover: added mask to set_output_mode() 2018-04-07 09:10:29 +10:00
Randy Mackay f7a168478d Rover: integrate attitude control's get_steering_out_heading 2018-04-05 12:14:59 +09:00
Randy Mackay e8070a5cb3 Rover: pass waypoint radius to L1 as min dist along track 2018-04-05 12:14:59 +09:00
Randy Mackay 41bd79a387 Rover: pivot-turn uses heading controller 2018-04-05 12:14:59 +09:00
Peter Barker e74d07ff15 Rover: remove wrapper for Log_Write_Beacon 2018-04-04 16:20:33 +09:00
Francisco Ferreira b2af1f1e05
Rover: fix method shadowing 2018-04-03 16:29:33 +01:00
Peter Barker a45e3cba15 Rover: factor vehicle's mavlink send_heartbeat 2018-04-03 13:05:19 +01:00
Randy Mackay c05d239069 Rover: remove throttle scaling dependency on throttle range 2018-04-03 10:42:39 +09:00
Randy Mackay fa20fd695f Rover: use throttle_min param as output deadzone 2018-04-03 10:42:39 +09:00
Randy Mackay b9e32d1f44 Rover: reduce expected times in scheduler table 2018-04-03 08:40:31 +09:00
Peter Barker c10f404b12 Rover: tidy handling of barometer calibrations 2018-04-02 23:25:05 +01:00
Peter Barker b407a4eed8 Rover: move common calibration functions up 2018-04-02 23:25:05 +01:00
Peter Barker 762b31b147 Rover: create a preflight calibration function
Some functionality has moved up.
2018-04-02 23:25:05 +01:00
Peter Barker db7ce9aba2 Rover: use ahrs singleton for SmartRTL 2018-04-02 17:16:02 +01:00
Randy Mackay 39bade1f4a Rover: 3.2.3-rc2 release notes 2018-04-02 12:01:45 +09:00
Randy Mackay c923158cc9 Rover: 3.2.3-rc1 release notes 2018-04-02 11:11:13 +09:00
nicknunno 8888adbfd4 Rover: TURN_MAX_G param desc update for range and increment 2018-04-02 09:13:25 +09:00
Michael du Breuil b761a57da3 Rover: Support new battery interface 2018-03-27 22:12:21 +01:00
Peter Barker 57ed822db0 Rover: allow DataFlash to handle log sending 2018-03-26 09:22:47 +09:00
Peter Barker 3c58eca0ab Rover: move handling of visual odometry messages up 2018-03-23 09:28:07 +09:00
Randy Mackay 96ae9cef14 Rover: send correct mav-type for boats 2018-03-22 09:11:52 +09:00
Randy Mackay 489551c9a4 Rover: 3.2.2 release notes 2018-03-19 19:11:53 +09:00
Peter Barker bb7bed0614 Rover: move handling of get_home_position up 2018-03-19 10:32:37 +09:00
Peter Barker 7fd859da65 Plane: move home state into AP_AHRS 2018-03-19 10:32:37 +09: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
Randy Mackay 30ba463f42 Rover: minor comment fix to acro
non-functional change
2018-03-15 09:58:24 +09:00
Randy Mackay 00353c7a06 Rover: avoid divide by zero in desired speed at waypoint calcs 2018-03-14 12:40:04 +09:00
Randy Mackay 86c39c0314 Rover: run update_mission at 50hz 2018-03-14 12:40:04 +09:00
Randy Mackay 343d119726 Rover: wp nav uses stopping point or prev wp for origin 2018-03-14 12:40:04 +09:00
Randy Mackay 073d9519ca Rover: version to ArduRover V3.3.0-dev 2018-03-12 16:11:37 +09:00
Randy Mackay e3f70119fe Rover: fix two-paddle input decoding
steering output was twice what it should be.  full steering (i.e. 4500 or -4500) should occur when one paddle is up and the other is completely down
2018-03-12 14:39:13 +09:00
Peter Barker 81ba037582 Rover: use baro singleton 2018-03-08 21:20:05 -08:00
Peter Barker 1f772c05f4 Rover: delete correct assignment operator 2018-03-08 21:20:05 -08:00
Randy Mackay dcfe104163 Rover: reduce CRUISE_SPEED default to 2m/s
based on user logs most rovers max speed is less than 4m/s so this default is closer to the average
2018-03-09 13:19:21 +09:00
Randy Mackay 1baa6eb049 Rover: 3.2.2-rc1 release notes 2018-03-08 16:24:03 +09:00
Randy Mackay 4e8399ca3f Rover: acro and steering steer even with target speed of zero 2018-03-08 14:45:43 +09:00
Peter Barker 78ecf55fec Rover: use AP::ahrs() for GCS_MAVLink 2018-03-07 12:34:39 +00:00
night-ghost bab54ea647 Rover: allow AP_Stats to be optional 2018-03-02 07:23:35 +11:00
Andrew Tridgell f190ca0867 Rover: use scheduler.get_last_loop_time_s() 2018-02-13 17:15:05 +11:00
Peter Barker 90d26a5100 Rover: eliminate perf_update scheduler table shim 2018-02-13 17:15:05 +11:00
Andrew Tridgell 80c45a7431 Rover: use filtered loop time 2018-02-13 17:15:05 +11:00
Peter Barker 7b6bc4adf1 Rover: pass log-performance-bit at init time rather than update time 2018-02-13 17:15:05 +11:00
Peter Barker 55c27dfc56 Rover: move logging of PM messages to AP_Scheduler 2018-02-13 17:15:05 +11:00
Peter Barker b2e2b91d7e Rover: move PERF: statustext sending into AP_Scheduler 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
Randy Mackay 24b8ed48b6 Rover: global-pos-int uses vel from EKF instead of GPS 2018-02-13 08:52:48 +09:00
Randy Mackay f47e65822f Rover: fix global-pos-int velocity direction to NED 2018-02-13 08:52:48 +09:00
Peter Barker df304c5e6b Rover: remove shims used in scheduler table 2018-02-12 15:39:26 +09:00
Peter Barker 89c830e949 Rover: make SmartRTL mode decide whether to save position or not
This changes things to work like the Copter equivalent
2018-02-12 15:39:26 +09:00
Andrew Tridgell 65308f9411 Rover: removed compass learn_offsets() 2018-02-08 17:36:33 +11:00
Randy Mackay 0da8ff6b2e Rover: boats always navigate when outside waypoint radius 2018-02-07 07:33:11 +09:00
Michael du Breuil 2e9e91b3a3 Rover: Move battery logging to AP_BattMonitor 2018-02-06 00:11:32 +00:00
murata e94bfc7ee0 Rover: delete \n from the log using gcs().send_text 2018-02-02 09:38:36 +09:00
Randy Mackay 0626d105ed Rover: version 3.2.1-dev fix 2018-01-29 19:37:46 +09:00
Randy Mackay b459e7fa7f Rover: 3.2.1 release notes 2018-01-29 19:35:46 +09:00
Randy Mackay a6ff2cacdd Rover: 3.2.1-rc1 release notes 2018-01-24 12:09:54 +09:00
Randy Mackay a5d7b8bb19 Rover: remove unused definition 2018-01-23 15:52:39 +09:00
Randy Mackay 2748d4d0fe Rover: arming checks for GPS use requires_position and velocity 2018-01-23 11:27:56 +09:00
Randy Mackay 9cba1e2907 Rover: gps check replaced by requires-position, requires-velocity
requires_gps is replaced by requires_position and requires_velocity
enter_gps_checks method is removed and enter method directly checks ekf flags and ekf origin
2018-01-23 11:27:56 +09:00
Randy Mackay 509c7e2a8f Rover: add object avoidance to steering and acro modes 2018-01-22 17:18:41 +09:00
Randy Mackay 2320bfb637 Rover: add AC_AttitudeControl to build
This is required only because the static function sqrt_controller is within this library.
2018-01-22 17:18:41 +09: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
Dylan Herman c14af79975 Rover: now sends SCALED_PRESSURE msg 2018-01-22 10:04:57 +09:00
Dylan Herman 9d7eb188d1 Rover: enter Hold on failure to enter RTL fs action 2018-01-19 09:26:45 +09:00
Dylan Herman f3b794f698 Rover: Add SmartRTL failsafe action
Add failsafe actions SmartRTL or RTL and SmartRTL or Hold
2018-01-19 09:26:45 +09:00
Randy Mackay 6ce9b47807 Rover: calc_speed_nudge honours max speed even in reverse
calc_speed_nudge allows the pilot to increase the speed of the vehicle including cases when the vehicle is in reverse.  This fixes the nudging code so the pilot-nudged throttle does not surpass the vehicle's maximum speed even in reverse.
Thanks to  pavloblindnology for finding this!
2018-01-19 09:23:33 +09:00
Dylan Herman 3edaff0309 Rover: sets SmartRTL home after ahrs home is set
Now uses AP_SmartRTL::set_home. It is called when arming and when GCS
requests home to be set to the current location
2018-01-17 11:03:56 +09:00
Randy Mackay ed452c6a27 Rover: version to 3.2.1-dev
this helps us easily determine if developer versions are from before or after the 3.2 release
2018-01-13 17:53:18 +09:00
Randy Mackay a3b667ea24 Rover: 3.2.0 release notes 2018-01-13 15:28:58 +09:00
Randy Mackay e2824be250 Rover: add const and comments to calc_speed_max 2018-01-12 08:15:34 +09:00
Randy Mackay 5cd500847b Rover: rename auto_throttle to allows_arming_from_transmitter
This method is only used to determine whether we can arm from the transmitter so better to make its purpose more clear
Also minor comment fix to is_autopilot_mode method
2018-01-12 08:15:34 +09:00
Randy Mackay 5167ec7708 Rover: send PID to GCS regardless of mode
Also add some comments
2018-01-12 08:15:34 +09:00
Randy Mackay 5a5be9175d Rover: 3.2.0-rc4 release notes 2018-01-05 14:02:01 +09:00
Randy Mackay 072b5187a3 Rover: steering mode reversing fix 2018-01-05 10:23:20 +09:00
Randy Mackay 916fe80000 Rover: remove mode class's desired-lat-accel
This was a duplicate of the value held in the attitude controller
2018-01-05 09:27:53 +09:00
Randy Mackay 49493fe6a2 Rover: add calc_steering_to_heading
removes some duplicate code in Guided and Auto
2018-01-05 09:27:53 +09:00
Randy Mackay dc283e9c26 Rover: re-order calc_steering declarations to match .cpp file 2018-01-04 14:07:55 +09:00
Peter Barker 1d3e7d454a Rover: correct gps-is-healthy mode change check 2017-12-28 15:35:19 +00:00
Peter Barker 7cf2712bf1 Rover: AP_AHRS no longer requires GPS in constructor 2017-12-27 00:58:02 +00:00
Randy Mackay 457c39bf1b Rover: FS_ param values changed to camel case
Also minor comment change in crash-check failsafe
2017-12-23 13:53:34 +09:00
Randy Mackay 241456f55f Rover: remove auto trim at startup
Also add additional checks to auto trim
2017-12-15 20:26:40 +09:00
Randy Mackay 6459a4de9d Rover: gyro health check uses initialised flag
We should not be relying on the notify flags as a way to pass info around the system.  Rover's initialised flag is equivalent and more appropriate.
2017-12-15 20:26:40 +09:00
Randy Mackay a8da459baf Rover: GPS reported healthy to GCS even without lock
a GPS is unhealthy when it cannot be contacted.  Not having a 3D lock should not make the GPS unhealthy.
2017-12-15 20:26:40 +09: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 c17549c7ff AP_Arming: integrate pre arm check if regular and skid steering configured 2017-12-11 11:56:12 +09:00
Randy Mackay ebe3ec88a7 AP_MotorsUGV: pre arm check if regular and skid steering configured 2017-12-11 11:56:12 +09:00
Randy Mackay 5d7e3d31c9 Rover: PM log message more consistent with Plane 2017-12-09 16:23:16 +09:00
Randy Mackay 4958298a75 Rover: fix auto mode distance_to_destination 2017-12-09 12:52:35 +09:00
Randy Mackay de196f818d Rover: log STER dataflash message regardless of mode
It is useful to at least have the pilot's steering in request even in manual modes
2017-12-09 12:18:49 +09:00
Randy Mackay 5f62cde550 Rover: remove throttle from NTUN logging
Throttle is more extensively logged in the THR message
2017-12-09 12:18:49 +09:00
Randy Mackay 9710b16cac Rover: THR dataflash logging replaces CTUN 2017-12-09 12:18:49 +09:00
Randy Mackay efae648461 Rover: STR dataflash logging gets turn rate
also get turn rate and lat accel from attitude controller
2017-12-09 12:18:49 +09:00
Randy Mackay 8e80490098 Rover: reporting gets lat accel from attitude control 2017-12-09 12:18:49 +09:00
Randy Mackay b778546eda Rover: rename mode lateral acceleration and make private 2017-12-09 12:18:49 +09:00
Randy Mackay df81f666df Rover: fix LOG_BITMASK parameter description 2017-12-09 12:18:49 +09:00
Randy Mackay 34c2fba9a7 Rover: boats stay active at destination in guided, rtl, smartrtl 2017-12-08 08:48:05 +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
Randy Mackay 57067fb8bc Rover: add WP_SPEED and RTL_SPEED
This separates the default/maximum speed used in Auto, Guided, RTL and SmartRTL from the CRUISE_SPEED which is used as the base for the speed-to-throttle controller (along with CRUISE_THROTTLE)
2017-12-07 07:29:10 +09:00
Randy Mackay 22ef276484 Rover: add const to mode::speed_error 2017-12-07 07:29:10 +09:00
Randy Mackay 8f08f5189a Rover: constify some temporary variables 2017-12-07 07:29:10 +09:00
Randy Mackay 5dabb37834 Rover: 3.2.0-rc3 release notes 2017-12-05 20:57:27 +09:00
Randy Mackay bccdb4e195 Rover: hold mode does not require GPS
If armed without GPS, the user was unable to enter hold mode
2017-12-05 20:26:38 +09:00
Randy Mackay 97e87e2150 AP_MotorsUGV: skid steering always uses full range
Allows skid friction to be removed
2017-12-05 20:26:35 +09:00
Randy Mackay 988e4290dd Rover: formatting and comments for set-position-target handling 2017-12-05 12:15:33 +09:00
Randy Mackay 1d92ec5724 Rover: set-position-target message processing only checks xy fields 2017-12-05 12:15:31 +09:00
khancyr 9299943347 Rover: adjust setpoint_velocity handling 2017-12-05 12:14:46 +09:00
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