Commit Graph

141 Commits

Author SHA1 Message Date
Andrew Tridgell b54ab2d72a APM: expose change_command() and geofence_breached() to libraries
this makes a failsafe library easier
2012-08-15 12:39:34 +10:00
Andrew Tridgell 98d5a49717 APM: fixed LOITER_TIME and LOITER_TURNS
These now follow the mavlink spec. Loiter time is in seconds, and
loiter turns is now 32 bit angle, so can handle larger numbers of
turns.
2012-08-15 12:39:34 +10:00
Andrew Tridgell 3b9623a44c Mavlink: log wind estimation result 2012-08-11 22:06:03 +10:00
Andrew Tridgell 9d9c7b0455 APM: allow for navigation by dead-reckoning
we now ask AHRS if we have a position estimate, and use that if
available
2012-08-11 12:01:08 +10:00
Andrew Tridgell 9bdf204e35 APM: support the MISSION_WRITE_PARTIAL_LIST command
this allows missions to be partially updated in flight
2012-08-09 17:13:36 +10:00
Andrew Tridgell a7399c405d MAVLink: removed the need for Mavlink_compat.h
we have now fully transitioned to MAVLink 1.0, so we no longer need
the compatibility layer and the old names in the code
2012-08-09 12:22:46 +10:00
Andrew Tridgell 16d63978f1 MAVLink: moved mavlink variables back to library
these were moved to the main sketches to allow for compile time
selection of MAVLink 0.9 vs 1.0. We no longer support 0.9, so we can
move it back, which simplifies some test sketches
2012-08-09 12:06:21 +10:00
Andrew Tridgell 6e46db39a1 APM: Added STICK_MIXING option
this replaces the compile time option. Disabling during long distance
flights when the transmitter may be out of range is useful.
2012-08-09 08:53:29 +10:00
Andrew Tridgell 67f076a9db APM: change variables to use _cm, _cd and _ms suffix for units
this makes it less likely that we mix up units
2012-08-08 12:12:30 +10:00
Andrew Tridgell f98b887dbe AP_Param: update ArduPlane core for new AP_Param interface 2012-08-08 12:11:57 +10:00
Michael Oborne eeac211b1d AP Fix Hil Airspeed calc in m/s 2012-07-26 20:21:17 +08:00
Andrew Tridgell caa16cbb54 APM: fixed HIL build 2012-07-26 10:09:07 +10:00
Andrew Tridgell d0ebb4ca26 MAVLink: fixed another two places where micros() was used for a millisecond time 2012-07-20 11:57:15 +10:00
Jonathan Challinger e271f97b53 Changed mavlink GLOBAL_POSITION_INT.relative_alt message to correctly return altitude above ground. 2012-07-17 16:15:11 +10:00
Andrew Tridgell ead41670c4 Airspeed: change APM to use new AP_Airspeed library
the next step is AHRS dead reckoning
2012-07-16 11:21:50 +10:00
Andrew Tridgell 6ced622da4 APM: fixed some build warnings and type errors 2012-07-06 19:59:18 +10:00
Andrew Tridgell ba39738606 MAVLink: added climb rate reporting 2012-07-05 13:00:46 +10:00
Andrew Tridgell fe54329de2 MAVLink: remove MAVLink 0.9 protocol support
this simplifies the code a lot. We're not going back to 1.0
2012-07-05 13:00:46 +10:00
Andrew Tridgell 1cb96e14a9 SITL: enable the SIM_* parameters in ArduCopter and ArduPlane 2012-06-29 15:10:52 +10:00
Andrew Tridgell 57579e494b Barometer: fixed airstart for APM
we need to re-load the ground pressure and temperature from eeprom on
and airstart
2012-06-27 16:01:50 +10:00
rmackay9 74d37a3713 ArduPlane HIL: fixed bug so g_gps->setHil calls send time as a uint32_t (was sending a float but was cast back to an uint32_t resulting in a meaningless time that never changed). 2012-06-26 22:59:24 +09:00
Amilcar Lucas a12cb8fd9a Added camera trigger functionality 2012-06-13 21:00:20 +02:00
Michael Oborne 7007d46761 AP: add fake satellite count for hil. 2012-06-02 16:38:20 +08:00
Andrew Tridgell 1fc8347af3 MAVLink: send time of GPS fix accurately
when we send a GPS_RAW message, set the usec field to the time we got
the fix from the GPS, not the current time. This makes it possible for
aerial photo processing to be more accurate, as the usec field with
more accurately reflect the planes position/time pair
2012-05-23 17:33:33 +10:00
Andrew Tridgell 9eb3f44ce1 MAVlink: update ArduPlane for param fetch during DataFlash erase
same changes as for ArduCopter
2012-05-22 16:13:35 +10:00
Michael Oborne 922338e982 AP - fix attitude level hil mavlink 1.0 issue 2012-05-06 11:05:35 +08:00
Andrew Tridgell 9d56d28615 MAVLink: make APM build with MAVLink 1.0 possible with arduino GUI 2012-04-24 22:24:58 +10:00
Andrew Tridgell a51593d4ad APM: updates for MAVLink 1.0 2012-04-24 19:54:20 +10:00
Andrew Tridgell 0eadae9704 APM: use OutputCh_current() in MAVLink servo logging
this gives a more accurate picture of what is actually happening with
the servos
2012-04-24 10:57:43 +10:00
Michael Oborne 71f9e33f2f fix potential null pointer 2012-04-20 17:57:06 +08:00
Andrew Tridgell b38d8c526f MAVLink: make parameter send use adaptive stream rate
this makes it possible to fetch parameters with very low air data
rates
2012-04-02 11:18:53 +10:00
Andrew Tridgell 222009002e MAVLink: allow for find grained stream rate control
streams can now be requested at any multiple of 20ms. So if you ask
for a stream at 7Hz then you will get it at close to 7Hz.
2012-04-02 11:18:53 +10:00
Andrew Tridgell 1e0a2fb0be MAVLink: don't waste 100 bytes of bandwidth sending 1 byte of information
the GPS_STATUS message is a massive waste of bandwidth, but it is the
only message that tells us the number of visible satellites. So only
send it if that information changes.

This makes MAVLink work better at low baud rates
2012-03-30 17:46:20 +11:00
Andrew Tridgell 03800ec5f4 APM: Added MANUAL_LEVEL option
when MANUAL_LEVEL is set to 1, we don't do accelerometer levelling at
startup, and instead used the values saved in the EEPROM. This makes
it easier to do levelling on the bench, or once for a series of
flights for the day
2012-03-29 12:39:53 +11:00
Andrew Tridgell 8ccf3a05f0 Mavlink: fixed warnings about limits on int32 values 2012-03-27 15:37:25 +11:00
Andrew Tridgell dc71191f25 MAVLink: constrain variable changes to the datatype range
if someone tries to set a AP_Int16 to a value of 300000, they now get
32767 instead of -27678
2012-03-19 17:29:02 +11:00
Andrew Tridgell c1e4f63907 APM: adapt ArduPlane for AHRS framework 2012-03-19 17:29:02 +11:00
Andrew Tridgell f39d8dbde8 GCS: get_integrator() is now get_gyro_drift() in DCM 2012-03-10 10:34:33 +11:00
Andrew Tridgell d17a7e81e3 APM: removed quaternion special cases 2012-03-10 10:34:32 +11:00
Andrew Tridgell aa4beb9753 APM: make it possible to build ArduPlane with quaternion support 2012-03-10 10:34:29 +11:00
Andrew Tridgell 46c91fa0c4 APM: added logging of DCM, HWSTATUS and SIMSTATE 2012-03-10 10:34:27 +11:00
Andrew Tridgell 17718720b1 GCS: force scalar type in copy_name()
this enables access to compass offsets over MAVLink
2012-02-25 11:37:20 +11:00
Andrew Tridgell 1fc24b506e AP_Param: update users of AP_Param for ParamToken 2012-02-19 17:05:28 +11:00
Andrew Tridgell 8355823bc7 APM: use set_and_save_ifchanged() for GCS stream rates
this avoids a lot of EEPROM scan operations when the groundstation
updates the stream rates
2012-02-18 10:51:57 +11:00
Andrew Tridgell c6b6320b43 APM: report the nav_bearing as hold_course when enabled
this gives a more accurate view of the navigation code, as when
hold_course is not -1 it overrides nav_bearing
2012-02-15 08:50:45 +11:00
Andrew Tridgell df2ef6ff47 APM: fixed some build warnings 2012-02-14 08:58:56 +11:00
Andrew Tridgell 3907cf81f8 Mavlink: report the corrected pitch via MAVLink
this subtracts the TRIM_PITCH_CD from the pitch reported via
MAVLink. That gives a better indication of the true pitch in the tlog
2012-02-14 08:58:56 +11:00
Andrew Tridgell 153575a01c token is 16 bits now 2012-02-13 16:22:53 +11:00
Andrew Tridgell f5f6e2d4ec added group indexes to GCS_MAVLINK class 2012-02-13 16:22:52 +11:00
Andrew Tridgell faa098b2b6 adapt mainline APM code to AP_Param 2012-02-13 16:22:51 +11:00
Sandro Benigno 3932e8b2a1 Battery monitor type 3 cannot calculate battery remaining properly, due it uses only voltage reading. This path set battery_remaining to a value out-of-band for that type of monitoring. It informs to external devices to not show that info. 2012-02-11 21:01:13 -02:00
Michael Oborne e71266c258 change rc norm_output to scale evenly across the entire range 2012-01-20 16:24:55 +08:00
Doug Weibel fd8dc84fac Update battery monitoring code for ArduPlane
Fixes compatibility for APM2.  Also a significant update to the battery monitoring code:  We previously had monitoring modes for individual cell voltages for 3 and 4 cell lipos.  These have been removed as they were never really supported (the cell voltages were computed but were not reported or recorded anywhere).  Also, some clean-up/prep work was done for supporting monitoring 2 separate battery packs.  The CLI battery and current monitoring tests were consolidated into 1 test.
2012-01-15 16:10:28 -07:00
Michael Oborne 0c75c863de add circle to output modes 2011-12-29 18:21:32 +08:00
Andrew Tridgell 1ab2b416a3 geofence: store fence points as int32_t
this keeps maximum precision in fence boundaries
2011-12-16 20:11:51 +11:00
Andrew Tridgell b3327c64de geofence: added fence status reporting and faster altitude check 2011-12-16 20:11:51 +11:00
Andrew Tridgell 1b64185b18 geofence: main geo-fence code
this implements the primary logic of geo-fencing
2011-12-16 20:11:51 +11:00
Andrew Tridgell e1e9002fad only check for "enter 3 times" in first 20s after boot
we don't want stray bytes on serial3 to make us enter the CLI during
flight!
2011-12-16 20:09:32 +11:00
Andrew Tridgell b0aa1deac2 MAVLink: fixed link flood on waypoint upload 2011-12-13 20:39:04 +11:00
Andrew Tridgell bb861117a3 apm2: fixed for new barometer code 2011-12-11 15:21:10 -08:00
Andrew Tridgell c1569e49a8 fixed the "reboot on GPS lock" bug
the problem was that with APM2 we may not have a 2nd GCS instance. The
"gps alt: xxx" message was being unconditionally sent to both GCS
instances, which caused a crash
2011-12-04 09:06:58 +11:00
Andrew Tridgell e61d945874 mavlink: paranoia setting of failsafe when forcing AUTO mode
this shouldn't be needed, but will do no harm, and I thought I saw
this fail in a test
2011-11-28 16:22:33 +11:00
Andrew Tridgell 0604f2c667 USB-MUX: auto-switch telemetry port based on UXB mux for ArduPlane
when USB is unplugged, switch baud rate to the SERIAL3_BAUD rate from
EEPROM
2011-11-25 20:00:19 -08:00
Andrew Tridgell a69b4c2d7e MAVLink: fixed throttle display in VFR_HUD 2011-11-21 20:29:19 +11:00
Amilcar Lucas 01df18b292 Added camera and/or antenna mount support.
It is fully configurable with the mission planner, there is no need to change
the source code to adapt to your setup.
It needs more testing, but the SIL is not working for me.
2011-10-31 22:55:58 +01:00
Andrew Tridgell ac4c604a6b GCS: fixed timeout loading waypoints
while loading waypoints we could saturate the link
2011-10-31 21:25:35 +11:00
Michael Oborne 95479e29ae Add MAVLINK_MSG_ID_HIL_STATE message 2011-10-30 18:17:37 +08:00
Andrew Tridgell e6f7bf9df8 MAVLink: use new MAV_MODE_FLAG_CUSTOM_MODE_ENABLED flag
this enables us to tell if custom_mode is set
2011-10-30 13:00:54 +11:00
Andrew Tridgell c914b11504 use C++ tricks to minimise differences for MAVLink 1.0
this should make maintainence/testing a bit easier
2011-10-30 11:48:56 +11:00
Doug Weibel 1cd3c21774 Initial rewrite of command logic.
Changes mission structure so that conditional and immediate commands are located between associated waypoints instead of after the second waypoint.
2011-10-27 13:45:52 -06:00
Andrew Tridgell c0c771042f CLI: enable "hit enter 3 times" support for CLI
if you hit enter 3 times before you send any mavlink packets, we will
enter CLI mode
2011-10-27 21:54:07 +11:00
Andrew Tridgell 6cd604e510 mavlink: fixed WP upload
The previous code accepted arbitrary command codes here, and ACKed
them. Later we should specifically list which ones are OK
2011-10-26 12:18:24 +11:00
Andrew Tridgell d18071d6c2 MAVLink: MAVLink 1.0 support now builds
not testing at all - so be careful!
2011-10-24 12:21:26 +11:00
Andrew Tridgell 2c4c00ece8 mavlink: started adding support for MAVLink 1.0
this is nowhere near complete, and does not compile yet
2011-10-24 10:20:36 +11:00
Michael Oborne 6987e6c4b2 hil sensor cleanup 2011-10-14 18:14:32 +08:00
Michael Oborne 392160314e Sensor hil fix's 2011-10-13 22:22:03 +08:00
Amilcar Lucas a3152b2410 Moved mavlink_check_target() to the libraries/.
This allows it to be reused by the other libraries and by other projects ArduPlane, ArduCopter, ArduRover ... etc.
It also reduces code duplication
2011-09-24 14:40:07 +02:00
Andrew Tridgell e7bc74a38e remove unused climb_rate code 2011-09-19 11:04:02 +10:00
Andrew Tridgell 943c234c62 GCS: added new gcs_send_text_fmt() method
this allows low priorty formatted messages to be sent to the ground
station, without causing a CPU stall on the serial send buffer
2011-09-19 11:04:02 +10:00
Andrew Tridgell f71674ffa4 GCS: don't send low priority messages unless they fit
check the serial transmit buffer, and don't send low priority messages
unless they can go straight out without blocking the CPU
2011-09-19 11:04:02 +10:00
Andrew Tridgell 8f604a1035 added gcs_severity enum
this makes it harder to mixup defines
2011-09-19 11:04:02 +10:00
Andrew Tridgell 4e346a0cc5 remove some more old cruft 2011-09-19 11:04:02 +10:00
Andrew Tridgell 225e6d760f remove Mavlink_Common.h and used deferred logic for params/waypoints
this moves the mavlink send logic into GCS_Mavlink.pde, and also
ensures we only ever send parameters and waypoints when there is
sufficient space in the serial send buffer
2011-09-19 11:04:02 +10:00
Andrew Tridgell ef6e2c2adf remove some more unused code in the GCS interface 2011-09-19 11:04:02 +10:00
Andrew Tridgell de18df06b5 GCS: make the two GCS links gcs0 and gcs3
the artifical separation between 'gcs' and 'hil' just leads to
confusion. This also simplifies the code a bit more, and saves us a
bit more text
2011-09-19 11:04:02 +10:00
Andrew Tridgell 35fcd6dae7 GCS: simplify the API for sending messages
this makes the code clearer, and saves us another 100 bytes of text
2011-09-19 11:04:02 +10:00
Andrew Tridgell 83492f92f2 MAVLink: use enum ap_message and remove unused param argument
saves us another 200 bytes of text
2011-09-19 11:04:02 +10:00
Andrew Tridgell bc1bfed22d HIL: first step in simplifying the HIL/GCS code
this gets rid of the messy #ifdefs around HIL_PORT, and removes
non-MAVLink GCS and HIL support
2011-09-19 11:04:01 +10:00
Andrew Tridgell d34f8ceca6 MAVLink: only send HEARTBEAT and SYS_STATUS during initialisation
I am concerned that some of the mavlink send routines may impact on
sensor calibration, so its safer to just send the minimum information
to keep the GCS happy
2011-09-17 14:58:02 +10:00
Michael Oborne c6eae87f8a fix remote error value 2011-09-15 18:26:59 +08:00
Andrew Tridgell 89fa70520f imported ArduPlane from ArduPilotMega svn 2011-09-09 11:29:39 +10:00