Commit Graph

2022 Commits

Author SHA1 Message Date
Andrew Tridgell 2679cb2c50 Plane: improve yaw and position control in takeoff and landing
auto VTOL takeoff is always vertical. Yaw rate is zero on takeoff and
during VTOL descent
2016-01-09 10:47:41 +11:00
Andrew Tridgell 0986474eed Plane: call set_frame_orientation() before Init for quad motors 2016-01-09 07:44:45 +11:00
Andrew Tridgell 52c4715c94 Plane: fixed init bug on low memory for quadplane 2016-01-09 07:38:55 +11:00
Andrew Tridgell 787a6994a4 Plane: added Q_THR_MID parameter 2016-01-09 07:38:55 +11:00
Andrew Tridgell 4da798129e Plane: fixed zero throttle in QSTABILISE mode 2016-01-09 07:38:55 +11:00
Andrew Tridgell cfb74406b6 Plane: fixed call to motors->Init() for quadplane 2016-01-09 07:38:55 +11:00
Andrew Tridgell 0a0e191284 Plane: init rc output after quadplane setup
this ensures first PWM pulses are correct
2016-01-09 07:38:55 +11:00
Andrew Tridgell 13a71c5cde Plane: use default motor mapping for channel setup 2016-01-09 07:38:55 +11:00
Andrew Tridgell b1177521ef Plane: show throttle level in vtol modes 2016-01-09 07:38:54 +11:00
Andrew Tridgell 71b0d5fb6d Plane: disable quad motors in TRAINING and ACRO too 2016-01-09 07:38:54 +11:00
Andrew Tridgell 9c5ec5e74b Plane: allow yaw control in auto-throttle VTOL modes 2016-01-09 07:38:54 +11:00
Andrew Tridgell 70018ee0cb Plane: fixed final descent for VTOL auto landing 2016-01-09 07:38:54 +11:00
Andrew Tridgell f259cf4b3f Plane: added Q_YAW_RATE_MAX parameter 2016-01-09 07:38:54 +11:00
Andrew Tridgell f5a15fb7c5 Plane: don't yaw quad when disarming 2016-01-09 07:38:54 +11:00
Andrew Tridgell ecd7d53cfc Plane: auto set trim on quad motor channels
this prevents a reboot causing a motor start
2016-01-09 07:38:54 +11:00
Andrew Tridgell 7010fd27ff Plane: fixed Q_THR_MAX_PWM parameter 2016-01-09 07:38:54 +11:00
Andrew Tridgell 780d1459f0 Plane: fixed force descend in VTOL land 2016-01-09 07:38:53 +11:00
Andrew Tridgell 4592085963 Plane: better VTOL land detection 2016-01-09 07:38:53 +11:00
Andrew Tridgell fdd86c10ba Plane: smoother transitions to auto from VTOL takeoff 2016-01-09 07:38:53 +11:00
Andrew Tridgell 418464ab8c Plane: added quadplane version of is_flying() 2016-01-09 07:38:53 +11:00
Andrew Tridgell f068a8c913 Plane: added support for VTOL_TAKEOFF and VTOL_LAND commands 2016-01-09 07:38:53 +11:00
Andrew Tridgell 5e784ddb5c Plane: consider flying status for throttle_wait 2016-01-09 07:38:53 +11:00
Andrew Tridgell 7afa2a493d Plane: implement VTOL flight stage 2016-01-09 07:38:53 +11:00
Andrew Tridgell aab98ff757 Plane: fixed quad yaw assistance during transition timer 2016-01-09 07:38:52 +11:00
Andrew Tridgell 9ae4c3ec99 Plane: mark Q_ENABLE parameter as an enable parameter 2016-01-09 07:38:52 +11:00
Andrew Tridgell 0d6b353bcb Plane: added quad assistance and auto support for quadplane 2016-01-09 07:38:52 +11:00
Andrew Tridgell 48e1a0641f Plane: added throttle wait to quadplane 2016-01-09 07:38:52 +11:00
Andrew Tridgell 2983576067 Plane: added QLOITER mode
quadplane loiter
2016-01-09 07:38:52 +11:00
Andrew Tridgell 00ca292160 Plane: improved quadplane transition 2016-01-09 07:38:52 +11:00
Andrew Tridgell ca85c332d6 Plane: separate QSTABILIZE and QHOVER modes 2016-01-09 07:38:52 +11:00
Andrew Tridgell 6468fc6d93 Plane: Initial implementation of quadplane
adds "HOVER" mode
2016-01-09 07:38:52 +11:00
Tom Pittenger 6cb20b679d Plane: add xtrack_error to DF log 2016-01-08 20:16:25 +11:00
Andrew Tridgell f201552f6d Plane: always call load_all
this ensures defaults file works on first start after erase
2016-01-07 09:32:57 +11:00
Tom Pittenger 607201a9b1 Plane: zero course error for straight bungee launch
This fixes the behavior where it uses the heading when switched to AUTO instead of at launch causing a turn just after a bungee launch
2016-01-05 11:20:14 +11:00
Andrew Tridgell 7b6d862316 Plane: support up to 14 rc inputs for all boards 2016-01-04 08:22:35 +11:00
Andrew Tridgell 72edfcd1f6 Plane: update for changed peak hold API 2016-01-02 09:58:32 +11:00
Tom Pittenger 7cde90553d Plane: new param CRASH_ACC_THRESH
@Description: X-Axis deceleration threshold to notify the crash detector that there was a possible impact which helps disarm the motor quickly after a crash. This value should be much higher than normal negative x-axis forces during normal flight, check flight log files to determine the average IMU.x values for your aircraft and motor type. Higher value means less sensative (triggers on higher impact). For electric planes that don't vibrate much during fight a value of 25 is good (that's about 2.5G). For petrol/nitro planes you'll want a higher value. Set to 0 to disable the collision detector.
2016-01-02 09:58:32 +11:00
Tom Pittenger 21205f8b41 Plane: improved crash detection logic and agility
- inhibit crash detection warnings when disabled by param so now it can be completely disabled
- reset is_crashed when disabled by param
- fixed pre-takeoff detection bug by adding in_preLaunch_flight_stage() where we are actually in FLIGHT_NORMAL instead of FLIGHT_TAKEOFF during setup of bungee launches. This now detects if we're in that state
- simplified the use of been_auto_flying to check across all flight stages. before it was excluded to handle hand-launches which can now be detected with in_preLaunch_flight_stage()
- added impact detector timer to clamp is_flying a few seconds after an impact
- logging new impact detector as "STAT.Hit"
2016-01-02 09:58:31 +11:00
Tom Pittenger 3b06260358 Plane: refactored interface
- added guided mode handling
- now handles gracefully a manual mode changes during evasion
2015-12-31 15:36:49 +11:00
Tom Pittenger 0bfe235d6b Plane: use abort landing logic with mavlink GO_AROUND cmd
- also enabled use of CMD_DO_GO_AROUND altitude param
2015-12-31 15:34:41 +11:00
Tom Pittenger d18c25a0f9 Plane: add item_reached_msg to GUIDED 2015-12-31 15:31:39 +11:00
pepevalbe 9743e32f70 Plane: added group parameter for AP_Notify library 2015-12-31 11:33:05 +09:00
Siddharth Bharat Purohit 78566bda36 Plane: wire up accel calibrator for plane 2015-12-29 10:46:35 -08:00
Andrew Tridgell 7a5808276e Plane: fixed two build warnings with clang 2015-12-29 18:52:00 +11:00
Lucas De Marchi a096703b06 Global: don't link with AP_Progmem
AP_Progmem is not used anymore.
2015-12-27 15:58:12 -02:00
Andrew Tridgell 513d5c17b9 Plane: allow for settable main loop rate 2015-12-27 14:57:19 +09:00
Andrew Tridgell 58d9b030ea Plane: update for Hz based AP_Scheduler 2015-12-27 14:57:08 +09:00
Don Gagne eab8a8679d ArduPlane: fix invalid Range meta data 2015-12-27 16:10:44 +11:00
Andre Kjellstrup 6f5387c48d ArduPlane: Camera options for better camera control
All on one because they would not pass autotest if split up.
2015-12-18 18:16:11 +11:00
Jonathan Challinger 05eb723429 Plane: reflect renamed function in AP_AHRS 2015-12-18 18:08:37 +11:00
Julien BERAUD 8e66ce6f27 Plane: Update optical flow declaration
Pass ahrs as param
2015-12-18 17:56:06 +11:00
Gustavo Jose de Sousa dc81a2410e waf: use single entry point for make wrappers 2015-12-10 10:40:34 +09:00
Michael du Breuil 4b40a884e9 Plane: Don't disable compass checks for HIL mode unless actually in hil mode 2015-12-08 05:07:46 -07:00
Tom Pittenger 113961b66e Plane: compiler warning - double promotion 2015-12-07 15:49:55 +09:00
DonLakeFlyer 7479bc5734 Plane: return success or failure of get home position 2015-12-07 12:33:23 +09:00
Lucas De Marchi 1308dd888f ArduPlane: remove unused AP_ADC_AnalogSource 2015-12-03 13:32:45 +11:00
Peter Barker 84b53e58d5 Plane: DataFlash-over-MAVLink support 2015-12-03 13:21:52 +11:00
Peter Barker 574f95bd76 Plane: support multiple simultaneous backends 2015-12-03 13:21:51 +11:00
Gustavo Jose de Sousa 7837bbfd81 waf: add a make wrappers 2015-12-03 07:54:32 +11:00
Gustavo Jose de Sousa 3100736c9f waf: add missing AP_ADSB library to ArduPlane 2015-12-03 07:54:32 +11:00
Lucas De Marchi 1cdc233bd2 waf: add missing AP_Parachute library to ArduPlane 2015-12-03 07:54:31 +11:00
Caio Marcelo de Oliveira Filho 6e7b73610d waf: add waf support 2015-12-03 07:54:30 +11:00
Lucas De Marchi 8eb0b559f2 ArduPlane: avoid comparison between signed and unsigned 2015-12-01 16:28:18 -02:00
Lucas De Marchi 2591261af6 Global: rename min and max macros to uppercase
The problem with using min() and max() is that they conflict with some
C++ headers. Name the macros in uppercase instead. We may go case by
case later converting them to be typesafe.

Changes generated with:

	git ls-files '*.cpp' '*.h' -z | xargs -0 sed -i 's/\([^_[:alnum:]]\)max(/\1MAX(/g'
	git ls-files '*.cpp' '*.h' -z | xargs -0 sed -i 's/\([^_[:alnum:]]\)min(/\1MIN(/g'
2015-12-01 16:28:09 -02:00
Tom Pittenger 4c1a70eb66 Plane: print start of land approach 2015-12-01 07:05:07 +11:00
Luis Vale Gonçalves 4722a388b9 Plane: Text revisions
text revisions
2015-11-27 18:54:30 +11:00
Luis Vale Gonçalves b7f3782e4e Plane: Text revisions
text revisions
2015-11-26 07:56:52 +11:00
Tom Pittenger eaad72c192 Plane: Add support for handing ADS-B traffic
- parse MAVLINK_MSG_ADSB_VEHICLE msg
- new 1Hz adsb_update task to compare list against for threat detection
- perform object avoidance via loiter or loiter_and_descend. More methods are welcome!
2015-11-23 19:45:40 +11:00
Tom Pittenger d8d1343735 Plane: include AP_ADSB library in build for Plane 2015-11-23 19:45:40 +11:00
Andre Kjellstrup db16b94e7f Plane: update RTL altitude param description 2015-11-21 12:44:34 +09:00
Caio Marcelo de Oliveira Filho c8888329e1 Plane: use millis/micros/panic functions 2015-11-20 12:26:40 +09:00
Andrew Tridgell 9108179322 Plane: fixed build for SITL changes 2015-11-16 17:57:36 +11:00
Andrew Tridgell 8f4ce7f20b build: removed all nocore.inoflag files
these were APM2 specific
2015-11-16 08:05:17 +11:00
lvale e18181e5c2 Plane: Uniformization of severities
Plane uniformization of severities
2015-11-09 09:38:25 +11:00
Tom Pittenger 5c3486d003 Plane: power-off rangefinder at high alt without terrain avail
- moved terrain alt rangefinder power-off trigger from trerrain thread to rangefinder thread
- allow rangefinder to power-off using baro if terrain data not available
2015-11-09 08:36:41 +11:00
Tom Pittenger 178bbb080b Plane: improve crosstrack error while navigating to loiter point
There is no crosstrack concept in the loiter navigation so when going from waypoint to loiter you will not converge onto the line between those two points. This commit adds crosstracking by performing normal waypoint navigation until you get near it.
2015-11-09 08:25:26 +11:00
Lucas De Marchi e5595ff11c ArduPlane: don't use avr include dir for tags 2015-11-04 12:14:16 +11:00
Lucas De Marchi 0151853c21 ArduPlane: remove check for MAVLINK_COMM_NUM_BUFFERS 2015-11-04 12:14:15 +11:00
Lucas De Marchi c55c07eaf6 ArduPlane: remove check for AVR CPUs
Remove the checks for HAL_CPU_CLASS > HAL_CPU_CLASS_16 and
HAL_CPU_CLASS >= HAL_CPU_CLASS_75. Corresponding dead code will be
removed on separate commits.
2015-11-04 12:14:15 +11:00
Lucas De Marchi d1be74c87e ArduPlane: remove checks for HAL_BOARD_APM2 and HAL_BOARD_APM1 2015-11-04 12:14:13 +11:00
Lucas De Marchi cfe6e209db ArduPlane: fix wrong printf format for printf
"%S" is used for wide string, but we are passing a char*. Use lowercase
in this case to remove warnings like this:

libraries/AP_InertialSensor/AP_InertialSensor.cpp: In member function
'bool AP_InertialSensor::calibrate_accel(AP_InertialSensor_UserInteract*, float&, float&)':
libraries/AP_InertialSensor/AP_InertialSensor.cpp:620:61: warning:
format '%S' expects argument of type 'wchar_t*', but argument 3 has type 'const char*' [-Wformat=]
                 "Place vehicle %S and press any key.\n", msg);
                                                             ^
2015-10-30 14:35:43 +09:00
Lucas De Marchi d40349d6ae ArduPlane: fix wrong printf format for 32 bits
Heading is a 32 bits value, so use %d.
2015-10-30 14:35:38 +09:00
Lucas De Marchi a6fd94c6fe ArduPlane: fix wrong printf format for 32 bits
"micros() - before" doesn't return a long value. Use "%u".
2015-10-30 14:35:35 +09:00
Lucas De Marchi 5244559010 Minimize AP_Progmem.h includes
Most of AP_Progmem is already gone so we can stop including it in most
of the places. The only places that need it are the ones using
pgm_read_*() APIs.

In some cases the header needed to be added in the .cpp since it was
removed from the .h to reduce scope. In those cases the headers were
also reordered.
2015-10-30 14:35:32 +09:00
Lucas De Marchi 1b07dabeb7 Replace prog_char and prog_char_t with char
prog_char and prog_char_t are now the same as char on supported
platforms. So, just change all places that use them and prefer char
instead.

AVR-specific places were not changed.
2015-10-30 14:35:30 +09:00
Lucas De Marchi 4ab9821624 Replace use of Log_Write_Message_P() with Log_Write_Message() 2015-10-30 14:35:28 +09:00
Lucas De Marchi 20c6ffc5e3 Replace use of UARTDriver::printf_P() with UARTDriver::printf()
This also starts to show warnings on places that were already using
wrong printf format strings.
2015-10-30 14:35:25 +09:00
Lucas De Marchi 6f4904189b Replace use of println_P() with println() 2015-10-30 14:35:22 +09:00
Lucas De Marchi a964ac38ec Replace use of print_P() with print() 2015-10-30 14:35:21 +09:00
Lucas De Marchi 89fc4f4b62 Replace use of send_text_P() with send_text() 2015-10-30 14:35:17 +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 6f0db45b57 Replace use of strcasecmp_P() with strcasecmp() 2015-10-30 14:35:08 +09:00
Lucas De Marchi 84da1f5039 Rename gcs_send_text_P to gcs_send_text 2015-10-30 14:35:07 +09:00
Lucas De Marchi 84d5fb006f Remove use of Util::{v,}snprintf_P()
These are now the same function as Util::snprintf().
2015-10-30 14:35:05 +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
Lucas De Marchi bd0f0a7536 ArduPlane: convert dos linefeeds to unix 2015-10-30 14:35:02 +09:00
Andrew Tridgell 3c3392aae5 Plane: improve error messages on failed parachute release 2015-10-27 16:06:34 +11:00
Andrew Tridgell 5d1d54a8cb Plane: added CHUTE_CHAN parameter for manual release 2015-10-27 16:06:34 +11:00
Andrew Tridgell d20b86b95e Plane: suppress the throttle in auto-throttle modes after parachute release 2015-10-27 16:06:34 +11:00
Andrew Tridgell 9affddcaa3 Plane: initial support for AP_Parachute library 2015-10-27 16:06:34 +11:00