Commit Graph

184 Commits

Author SHA1 Message Date
Andrew Tridgell 7ae64d20aa AP_Vehicle: init MSP earlier
this allows for MSP sensors (baro, compass) to be ready during probe
2020-09-09 06:35:50 +10:00
yaapu 7f789fb443 AP_Vehicle: added support for the MSP protocol 2020-09-02 05:56:46 +10:00
ashvath100 df42618e0e AP_Vehicle: add get_control_outputs() for lua motor drivers 2020-08-20 14:09:29 +09:00
Siddharth Purohit bb460647a5 AP_Vehicle: use new CANIface drivers and CANManager 2020-08-19 17:31:09 +10:00
Peter Barker 38f4de9aac AP_Vehicle: move generator to before scheduler and parameter objects 2020-08-05 16:26:19 +09:00
Peter Barker 34be953085 AP_Vehicle: add is_crashed method to AP_Vehicle 2020-08-05 16:26:19 +09:00
Tom Pittenger 88d28460f5 AP_Vehicles: add more ModeReasons 2020-07-28 11:52:39 -07:00
Andy Piper 820d6654af AP_Vehicle: add VideoTX 2020-07-07 18:48:06 +10:00
Peter Barker 4296f6ed4b AP_Vehicle: add instance for RichenPower generator 2020-07-03 08:21:42 +09:00
Randy Mackay 473b027e03 AP_Vehicle: minor formatting fix 2020-06-24 08:34:41 +09:00
Randy Mackay 73508564f7 AP_Vehicle: add set_steering_and_throttle
only for use with scripting on rover
2020-06-24 08:34:41 +09:00
Andy Piper cb524b7d3d AP_Vehicle: add function to log dynamic notch frequencies
move harmonic notch update here
2020-06-21 19:09:35 +10:00
Iampete1 98d5aa91a8 AP_Vehicle: add scripting guided mode set angle 2020-06-19 10:09:35 +10:00
Andy Piper d873ec4533 AP_Vehicle: separate gyrofft gyro sampling from fft initiation
move FFT gyro sampling into fast loop for all vehicles
rename FFT update method
2020-05-24 07:43:34 +10:00
Andrew Tridgell 77b8f88289 AP_Vehicle: report thread name in watchdog mavlink msg 2020-04-29 07:36:55 +10:00
Peter Barker 1b99cfb10a AP_Vehicle: rename APMrover2 to Rover 2020-04-14 09:50:34 +09:00
Randy Mackay d1aa3858f0 AP_Vehicle: add visual odometry 2020-04-09 19:41:08 +09:00
Samuel Tabor 013628bd1d Plane: Soaring - better reporting of exit due to drift. 2020-04-08 09:11:54 +10:00
Tom Pittenger f6396d7a6d Plane: add reason to exit Thermal loiter and adjust LOW alt reaon to cause RTL 2020-04-08 09:11:54 +10:00
Peter Barker ec460b4244 AP_Vehicle: send statustext at regular intervals after watchdog reset 2020-03-31 14:30:11 +11:00
Randy Mackay 849adcd678 AP_Vehicle: add start_takeoff and set_target_velocity_NED for use in scripting 2020-03-19 15:17:11 -07:00
Andrew Tridgell d192544107 AP_Vehicle: added get_target_location() method
for scripting
2020-03-12 08:36:40 +11:00
Peter Barker 621d029207 AP_Vehicle: add warning about get_scheduler_task implementations
We don't initialise these values we pass in.  Considering how few times
we need to get this right, requiring it of the implementation would seem
to make sense and save a few bytes.
2020-03-11 22:23:56 +11:00
Peter Barker 1db081b095 AP_Vehicle: move AP_PARM_KEY_DUMP function up to AP_Vehicle base class
Common to all vehicles now, including Tracker
2020-03-10 11:00:14 +11:00
Randy Mackay 8d12c25555 AP_Vehicle: formatting fixes 2020-03-03 10:06:38 -07:00
Randy Mackay 6f5d733ba9 AP_Vehicle: add set_target_location method 2020-03-03 10:06:38 -07:00
Peter Barker 2ede027635 AP_Vehicle: move initialisation of serial and gcs to AP_Vehicle 2020-02-25 11:50:55 +11:00
Peter Barker 2b7af4d70b AP_Vehicle: fold init_vehicle back into AP_Vehicle init method 2020-02-25 11:47:52 +11:00
Andy Piper 6613d4da3d AP_Vehicle: add FFT configuration and initialization
add arming checks to validate FFT performance
allow gyros to be sampled at either the fastloop rate or gyro rate.
add gyro and parameter update loops for GyroFFT
add GYRO_FFT aux function
save FFT results on disarm
2020-02-22 11:15:37 +11:00
Randy Mackay 72612d3cb9 AP_Vehicle: add AP_ESC_Telem 2020-02-12 11:58:34 +09:00
Peter Barker de2cf89b60 AP_Vehicle: initialise scheduler early
So the loop rate gets clamped before we memoise it and the loop period
in AP_Scheduler
2020-02-06 14:41:06 +11:00
Peter Barker a523bb4b68 AP_Vehicle: let AP_Vehicle handle loop() 2020-02-06 14:41:06 +11:00
Peter Barker 07c7a98269 AP_Vehicle: move some common init_ardupilot code up to AP_Vehicle 2020-01-28 11:34:51 +11:00
Peter Barker 1211ea88b5 AP_Vehicle: move setup method up to AP_Vehicle base class 2020-01-28 11:34:51 +11:00
Peter Barker 373b8be7ef AP_Vehicle: move EKF objects into AP_AHRS_NavEKF 2020-01-21 11:53:18 +11:00
Peter Barker 8f550ffdd4 AP_Vehicle: change string to Initialising ArduPilot 2020-01-21 11:37:28 +11:00
Peter Barker 342e502da4 AP_vehicle: let AP_Vehicle base class worry about scheduler delay callback 2020-01-21 11:37:28 +11:00
Andrew Tridgell f6c9c6fd8c AP_Vehicle: setup for Hott telem 2020-01-16 20:36:54 +11:00
Peter Hall 7a620ca95c AP_Vehicle: add flying time and bool 2020-01-14 22:34:37 -07:00
Tatsuya Yamaguchi 1309101a4b AP_Vehicle: allow scripts to get modes 2020-01-14 11:16:29 +11:00
Andrew Tridgell 9d8821f3d7 AP_Vehicle: make init_vehicle() public
and protect against double call.

This is needed for the call from AP_BoardConfig
2019-12-30 13:02:04 +11:00
Andy Piper 3ea05fa78b AP_Vehicle: add common parameter and scheduling management. Add runcam. 2019-12-30 13:02:04 +11:00
Peter Barker b2b5077949 AP_Vehicle: stop passing rangefinder in constructors of NavEKF objects 2019-12-11 08:09:01 +11:00
Peter Barker ebd2b1d544 AP_Vehicle: instantiate the AHRS object 2019-12-02 09:16:22 +11:00
Gone4Dirt 71f7761975 AP_Vehicle: Added mode change reasons for autorotation 2019-11-29 08:06:10 +08:00
Michael du Breuil a44a7f541b AP_Vehicle: Support set_mode 2019-10-25 08:48:22 +08:00
Peter Barker 9fee2a9c06 AP_Vehicle: add singleton 2019-10-15 13:24:20 +11:00
Peter Barker 1ea365d52a AP_Vehicle: move many members up to base class 2019-10-08 11:26:04 +11:00
Andrew Tridgell 88fbbfba09 AP_Vehicle: added AP_Periph vehicle type 2019-08-27 10:29:56 +10:00
Andrew Tridgell ac3da71efd AP_Vehicle: added iofirmware vehicle type 2019-03-15 14:38:57 +11:00
Peter Barker 2cea90eefe AP_Vehicle: remove ancient, misleading Arduino comment 2018-11-23 10:56:17 +11:00
jaxxzer 44c9efad50 AP_Vehicle: Add the ArduSub vehicle type.
This also fixes the issue causing accel calibration to be unresponsive
in gcs.
2017-02-21 11:26:14 +11:00
Michael du Breuil 302e80d72c AP_Vehicle: Move loiter_radius to vehicle 2017-01-30 10:43:54 -08:00
Michael du Breuil ac27241a42 AP_Vehicle: Remove unused flight stages 2017-01-26 13:11:44 -08:00
Tom Pittenger 063f517424 Plane, TECS, AP_Landing: rename stage LAND_ABORT to ABORT_LAND
this will reduce confusion when searching for FLIGHT_LAND_* and you get a bunch of takeoff related hits. It will also make more sense when the landing library fully manages the FLIGHT_LAND stage entirely because it will not mange FLIGHT_LAND_ABORT
2016-12-30 23:50:03 -08:00
Tom Pittenger 8019cedf5b AP_Vehicle,AP_SpdHgtControl,AP_TECS: move enum FlightStages to AP_Vehicle::FixedWing 2016-12-30 23:50:02 -08:00
Tom Pittenger 15ec551990 AP_Vehicle: migrate aparm "LAND_" params from plane to AP_Landing 2016-11-25 19:07:30 -08:00
Tom Pittenger f556f705e6 Plane: move various g params to aparms 2016-11-25 19:07:30 -08:00
Tom Pittenger ce8db1fdba Plane: move struct Rangefinder_State to AP_Vehicle 2016-11-25 19:07:30 -08:00
Tom Pittenger 44037c13a1 Revert "AP_Vehicle: Removed unused airspeed_min and airspeed_max as now part of AP_Airspeed."
This reverts commit bf7ab052c1.
2016-08-07 17:54:24 -07:00
AndersonRayner bf7ab052c1 AP_Vehicle: Removed unused airspeed_min and airspeed_max as now part of AP_Airspeed. 2016-08-04 10:09:04 -07:00
Andrew Tridgell 1f29b51dd6 AP_Vehicle: moved roll_limit_cd into AP_Vehicle
will be used by APM_Control
2016-06-24 11:39:21 +10:00
Lucas De Marchi 80749af698 AP_Vehicle: replace header guard with pragma once 2016-03-16 18:40:44 +11:00
Tom Pittenger 96833a0b73 AP_Vehicle: new params for pre-flare 2016-02-09 14:18:02 +11:00
Peter Barker f21774d3e8 AP_Vehicle: define vehicle type APM_BUILD_Replay 2016-01-30 12:52:51 -02:00
Gustavo Jose de Sousa 5eea2683f2 AP_Vehicle: 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:24 +10:00
Andrew Tridgell f24e69f4a0 AP_Vehicle: all vehicles now use functors 2015-06-01 15:18:32 +10:00
Andrew Tridgell 9ed0ee12fb AP_Vehicle: all vehicle types now use functors 2015-06-01 15:06:31 +10:00
Andrew Tridgell 1088e72fda AP_Vehicle: make copter use functors 2015-05-30 15:21:22 +09:00
Andrew Tridgell 83e6181024 AP_Vehicle: removed BUILD_DELEGATES code
no longer needed
2015-05-26 14:34:58 +10:00
Lucas De Marchi 0daeeb9518 ArduPlane: Start using new Functor implementation
It both reduces flash size and move symbols to read-only sections.
The scheduler_tasks table is one known not to be in read-only section before due
to the FastDelegate implementation. Before and after this patch:

	ArduPlane $ size ArduPlane.elf{.old,}
	   text	   data	    bss	    dec	    hex	filename
	 733368	   8252	  67352	 808972	  c580c	ArduPlane.elf.old
	 730632	   8236	  64792	 803660	  c434c	ArduPlane.elf

	ArduPlane $ nm -C ArduPlane.elf.old|grep scheduler_tasks
	0000000000402800 t _GLOBAL__sub_I__ZN5Plane15scheduler_tasksE
	00000000006b54c0 B Plane::scheduler_tasks

	ArduPlane $ nm -C ArduPlane.elf|grep scheduler_tasks
	0000000000490900 R Plane::scheduler_tasks

As can be seen above, now the scheduler_tasks symbol is in a read-only data
section and in all of them we decreased the total size.

For APM2 we have a little increase in the text size size.

	ArduPlane $ size ArduPlane.elf{.old,}
	   text	   data	    bss	    dec	    hex	filename
	 241940	    942	   4447	 247329	  3c621	ArduPlane.elf.old
	 242222	    942	   4431	 247595	  3c72b	ArduPlane.elf

	ArduPlane $ nm -C ArduPlane.elf.old|grep scheduler_tasks
	00001f8f T Plane::scheduler_tasks

	ArduPlane $ nm -C ArduPlane.elf|grep scheduler_tasks
	00001f8f T Plane::scheduler_tasks
2015-05-26 13:46:55 +10:00
Lucas De Marchi 84f399ec3c APMrover2: Start using new Functor implementation
It both reduces flash size and move symbols to read-only sections.
The scheduler_tasks table is one known not to be in read-only section before due
to the FastDelegate implementation. Before and after this patch:

	APMrover2 $ size APMrover2.elf{.old,}
	   text	   data	    bss	    dec	    hex	filename
	 611406	   4832	  40920	 657158	  a0706	APMrover2.elf.old
	 609686	   4824	  38936	 653446	  9f886	APMrover2.elf

	APMrover2 $ nm -C APMrover2.elf{.old,} |grep tasks
	0000000000696f80 B Rover::scheduler_tasks
	000000000047c440 R Rover::scheduler_tasks

As can be seen above, now the scheduler_tasks symbol is in a read-only data
section and in all of them we decreased the total size.

For APM2 we have a similar situation, but the table was already in text section
because it was using plain C pointers:

	APMrover2 $ size APMrover2.elf{.old,}
	   text	   data	    bss	    dec	    hex	filename
	 189518	   1038	   3494	 194050	  2f602	APMrover2.elf.old
	 189216	   1038	   3480	 193734	  2f4c6	APMrover2.elf

	APMrover2 $ nm -C APMrover2.elf{.old,} |grep tasks
	00001f92 T Rover::scheduler_tasks
	00001f8a T Rover::scheduler_tasks
2015-05-26 13:46:55 +10:00
Lucas De Marchi 4b5cf24a81 Allow to change to functor implementation
Start to add code behind APM_BUILD_FUNCTOR to support changing the
functor implementation (without breaking the build while the change is
not complete).
2015-05-26 13:46:49 +10:00
Andrew Tridgell 98d2b9b3aa AP_Vehicle: added APM_BUILD_DELEGATES macro 2015-05-21 07:48:50 +10:00
Michael du Breuil a9fc2b8a32 AP_Vehicle: Moved takeoff_throttle_max into plane parameters 2015-04-16 08:56:36 +10:00
Andrew Tridgell 8fc58d1cbe AP_Vehicle: expose LAND_FLARE_SEC in vehicle parameters for fixed wing 2015-03-15 13:52:34 +11:00
Andrew Tridgell 04b63a61bf AP_Vehicle: added stall_prevention variable 2014-11-13 14:05:22 +11:00
Andrew Tridgell c09c86868f AP_Vehicle: make APM_BUILD_TYPE() valid under arduino IDE 2014-09-03 13:28:04 +10:00
Andrew Tridgell fb4ef0b5c6 AP_Vehicle: added land_pitch_cd for fixed wing 2014-08-27 20:11:03 +10:00
Andrew Tridgell 86f167fc7f AP_Vehicle: added autotune_level to fixed wing parms 2014-04-13 22:11:28 +10:00
Andrew Tridgell fbec098e2f AP_Vehicle: added APM_BUILD_TYPE() macro
this makes checking build type less fragile
2014-03-26 12:41:53 +11:00
Andrew Tridgell 6b2f0b9553 AP_Vehicle: added defines for main vehicle types 2014-03-26 12:15:45 +11:00
Randy Mackay 0521806cc6 AP_Vehicle: add multicopter parameters 2014-02-15 05:27:32 +11:00
Andrew Tridgell 79a4bc6ea4 AP_Vehicle: added new header for parameters in multiple libraries
this adds a header where we can put vehicle specific parameters that
will be used in multiple libraries
2013-09-13 11:43:59 +10:00