Commit Graph

405 Commits

Author SHA1 Message Date
Andrew Tridgell bfb2c1ee87 GPS: open the GPS serial port with a 256 byte buffer
the UBLOX needs more than 128 bytes for reliable parsing
2012-06-08 16:42:03 +10:00
Andrew Tridgell 43fe5bab78 re-enable the AP_Mount build 2012-06-04 19:32:11 +10:00
Andrew Tridgell 8d28cb51fc added mavlink09 targets
allows easier building with mavlink0.9
2012-06-04 13:14:52 +10:00
Andrew Tridgell 18b5933240 AP_Mount: disable AP_Mount until it works with MAVLINK10 2012-06-04 13:14:51 +10:00
Michael Oborne 7d2532450a enable mavlink10 by default 2012-06-04 08:02:08 +08:00
Michael Oborne 7007d46761 AP: add fake satellite count for hil. 2012-06-02 16:38:20 +08:00
Pat Hickey c2060d6d5f ArduPlane: Increment format number in Parameters.h
* Force all users to reconfigure to take advantage of elevon patch
  ( 669e6867 )
2012-05-28 20:51:12 -07:00
Pat Hickey cb9459afed ArduPlane: Fix effect of ELEVON_REVERSE
* Previously, the ELEVON_REVERSE parameter was equivelant in function to the
  ELEVON_CH1_REVERSE parameter. These parameter values are found in
  g.reverse_elevons and g.reverse_ch1_elevon, and used to map to the radio_out
  channels in ArduPlane/Attitude.pde
* It seems the author's intent was for ELEVON_REVERSE to change the sign for
  the combination of pitch & roll into ch1 & ch2, as there are already
  parameters which change just the sign of ch1 and just the sign of ch2.
* Discovered this bug because I happened to build an elevon airframe which was
  not possible to setup with the existing ELEVON_ and RCn_REV parameters.
* This will break existing elevon setups if the user used ELEVON_REVERSE
  instead of ELEVON_CH1_REVERSE, since they were previously interchangable.
2012-05-27 22:15:08 -07:00
Michael Oborne 36f8f7c4eb increase resolution on params 0.1 > 0.01 2012-05-24 06:22:57 +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 5b5d43f5d0 Log: don't print '+' while erasing logs
we no longer do page based erase, so printing a + every 128 pages
makes no sense
2012-05-22 20:10:29 -07:00
Andrew Tridgell 557834f9a9 AirSpeed: added parameter ARSPD_USE
setting ARSPD_ENABLE to 1 and ARSPD_USE to 0 allows the airspeed
sensor to be initialised and logged without it being used for flight
control. This is very useful when initially testing an airspeed sensor
in a new plane. It also makes it possible to enable/disable the use of
the airspeed sensor during a flight at any time.
2012-05-22 20:02:23 +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
Andrew Tridgell 07dac1a5a7 GPS: added ublox build target
useful for 1280 APM1s
2012-05-18 22:31:50 +10:00
Andrew Tridgell 116ed39e77 APM: prepare for 2.34 2012-05-14 14:29:59 +10:00
Michael Oborne 922338e982 AP - fix attitude level hil mavlink 1.0 issue 2012-05-06 11:05:35 +08:00
Andrew Tridgell 78d273fa34 Telemetry: make it possible to use UART2 on APM2
building with TELEMETRY_UART2=ENABLED allows you to use the solder
bridge on the APM2 to enable telemetry on UART2. This allows both USB
telemetry and a radio at the same time.
2012-05-04 10:39:44 +10:00
Michael Oborne eee5a5bff0 more arduplane param info 2012-04-30 20:39:41 +08:00
Michael Oborne 650e9467d7 update some arduplane config items 2012-04-30 18:44:20 +08:00
Andrew Tridgell 1017b0f6a3 APM-nav: set NAV I value defaults to 0.1
a small I value is good on most planes, so I think this is a better
default than 0. Thanks to Chris for asking about this.
2012-04-30 12:27:30 +10:00
Andrew Tridgell 8134c9a883 autotest: fixes for MAVLink 1.0 in autotest 2012-04-27 15:15:53 +10: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 3347f461f6 use build_all.sh to ensure we don't break the mount code 2012-04-24 10:57:43 +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 781280b001 sitl: allow sitl build with MAVLink 1.0 2012-04-20 10:09:21 +10:00
James Goppert 1bc4d54ce9 Worked on ArduCopter cmake options. 2012-04-19 16:05:08 -04:00
James Goppert 49744de519 Working on ArduPlane options. 2012-04-19 02:23:54 -04:00
James Goppert f094085c25 Improved cmake options. 2012-04-18 23:15:29 -04:00
James Goppert cc66e8e259 Changed default cmake port for ArduPlane. 2012-04-18 21:31:46 -04:00
James Goppert 0a38e2b8d4 Updated ArduPlane/ArduCopter cmake options. 2012-04-18 15:16:02 -04:00
James Goppert 26e3d6ae45 Switched to project specific cmake lists.
This is better since each project has very different options.
2012-04-17 23:07:20 -04:00
James Goppert ee84a6d301 Making cmake local to projects. 2012-04-17 21:31:10 -04:00
Andrew Tridgell 6332c09425 AHRS: enable AHRS_ group in ArduPlane 2012-04-16 20:55:13 +10:00
Andrew Tridgell 840f7f87ca ready for 2.33 release 2012-04-09 18:16:49 +10: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 e9773ea09c APM: use set_blocking_writes(false) when we have done ground start 2012-03-30 17:46:20 +11:00
Andrew Tridgell 36e741b078 MAVLink: raise the serial transmit buffer size to 256 bytes
the 128 byte serial transmit buffer was causing significant problems
with queueing of mavlink messages. With 256 bytes we can fit a lot
more messages out in each pass of the code, which makes telemetry more
efficient

As we discussed on the dev call, we now have enough free ram for this
to be worthwhile
2012-03-30 17:46:20 +11:00
Andrew Tridgell 5dbd2a2b60 APM: enable AP_Declination by default 2012-03-30 14:25:27 +11:00
Andrew Tridgell a98a092a59 AP_Declination: enabled auto declination by default in APM 2012-03-30 14:25:27 +11:00
Andrew Tridgell eb98442ed0 APM: Change version to 2.32 2012-03-29 12:50:12 +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 491b73c4e2 APM: increase ArduPlane version to 2.31 2012-03-27 16:13:29 +11:00
Andrew Tridgell 8ccf3a05f0 Mavlink: fixed warnings about limits on int32 values 2012-03-27 15:37:25 +11:00
Andrew Tridgell 3a325541f6 APM: enable the new offset nulling in APM 2012-03-27 15:37:24 +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 f740f6e94d APM: removed some config file cruft
these options are now settable via MAVLink
2012-03-18 13:34:40 +11:00
Michael Oborne 80b356367e update AP version to 2.30 2012-03-18 10:27:49 +08:00
Amilcar Lucas a203282779 correct small typos in comments 2012-03-11 21:30:09 +01:00
Andrew Tridgell 1e47ab26f2 AP_Declination: disable library when AUTOMATIC_DECLINATION is not ENABLED
unfortunately this library was causing avrdude to fail to load the hex
to my APM2. Until we work out why, it's disabled.
2012-03-11 21:46:41 +11:00
Adam M Rivera 2e1cacd67f AP_Declination: Added call to compass.set_initial_location if the compass is enabled when the 3D fix is obtained.
Signed-off-by: Andrew Tridgell <tridge@samba.org>
2012-03-11 20:59:47 +11:00
Adam M Rivera 566bbed7ad AP_Declination: Added new config value to allow the user to have the declination overwritten on every 3D fix.
Signed-off-by: Andrew Tridgell <tridge@samba.org>
2012-03-11 20:59:47 +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 4f739ea28f make 'ENABLE' and 'ENABLED' mean the same things
users get this wrong far too often!
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 3239a00b23 APM: avoid fetching the DCM matrix twice
also no special case for quaternions
2012-03-10 10:34:32 +11:00
Andrew Tridgell 04826065ef Quaternion: show "Quaternion test" on startup if enabled 2012-03-10 10:34:29 +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 a54d6f744e HWSTATUS: if we don't know the voltage, report it as zero
this will tell us if board_voltage() is really working
2012-03-10 10:34:28 +11:00
Andrew Tridgell 8e162ec35b APM: fixed reset of control switch when short_fs_action is disabled
When FS_SHORT_ACTN is 0, we should not re-read the control switch
unless we changed mode on the initial short fs action
2012-03-10 10:34:28 +11:00
Andrew Tridgell 46c91fa0c4 APM: added logging of DCM, HWSTATUS and SIMSTATE 2012-03-10 10:34:27 +11:00
Andrew Tridgell 82dd1cd7ce APM: added board_voltage() function 2012-03-02 15:48:27 +11:00
Pat Hickey 00180e7084 Cleanup: rename files with spaces in their names, replace with underscores
* Skipped /Tools/ArdupilotMegaPlanner/Resources/new...
  and /archive/Configurator/Source/Utilities/TDMS/G...
  because I don't want to mess with that.
2012-02-28 16:14:31 -08:00
rmackay9 630de04bd1 ArduPlane - updated to use new filter library 2012-02-28 21:03:04 +09:00
rmackay9 4501c488b4 ArduPlane - added Filter.h to unbreak the build! 2012-02-26 17:05:56 +09:00
rmackay9 6363da2829 ArduPlane - switch sonar to use new mode filter from filter library 2012-02-26 15:35:42 +09:00
Andrew Tridgell 3fe5b3151b allow MAG_ENABLE to be changed in flight
this disables the compass in DCM if MAG_ENABLE is changed in
flight. Without this we would use a fixed yaw once the compass is
disabled

This also makes sure we don't pass the compass to DCM till we have
done a read. This ensures we have a good compass fix for the initial
DCM heading
2012-02-25 14:51:09 +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 b231112957 DCM: renorm_sqrt_count is now called renorm_range_count 2012-02-23 08:16:08 +11:00
Andrew Tridgell 1fc24b506e AP_Param: update users of AP_Param for ParamToken 2012-02-19 17:05:28 +11:00
Andrew Tridgell b6fdf626e4 APM: expanded parameter area to match ACM
this ensures waypoints and basic eeprom layout remain in sync
2012-02-18 10:51:57 +11:00
Andrew Tridgell 6b357fc66b AP_Param: fixed saving of sensor calibration
this fixes the saving of the accel and gyro calibration to EEPROM,
which was initially broken by the AP_Param conversion
2012-02-18 10:51:57 +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
Phil f8ed9f0e8d APM: Fix rudder in elevon mode.
elevon planes can have rudders too
2012-02-16 14:43:24 +11:00
Andrew Tridgell 2dcb594f4a APM: changed hold_course for landing to be based on yaw_sensor
when we are in the final stages of a landing (less than 2 seconds from
landing waypoint, or less than 3m above landing altitude) we switch
the navigation to use a fixed course. The code previously used the
crosstrack_bearing for this, but this can lead to a large nav_roll in
this final stage of the approach, which can put a wing into the
runway. In autotest we were seeing a nav_roll value of -45 degrees as
we crossed the transition point for the landing, which often led to a
crash.

This changes the code to use the current yaw_sensor value instead,
which is much less likely to lead to large rolls in the final landing
stages.
2012-02-15 08:50:45 +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 252a2d0c9b APM: added some comments related to hold_course
hold_course is either -1 (for disabled) or a course to hold for
takeoff/landing. This makes the code a bit clearer.

It also resets hold_course in all non-auto modes, to ensure it isn't
used
2012-02-15 08:50:45 +11:00
Andrew Tridgell c93dedc955 when setting airspeed and groundspeed in a mission, don't save to EEPROM
If you include airspeed, throttle or groundspeed changes in a mission
then those should not be saved to EEPROM, as otherwise if you restart
and re-fly the mission you will be starting with different parameters
to the ones you used for the first flight.

This is particularly important for setting the target airspeed when
coming in for a landing. You typically set a low target, but if you
fly again the next day I think it would be a real surprise to find
that your loiter airspeed has then changed to the value from the
landing part of your last mission.

This one can be argued either way, but I think that not saving these
changes is the more conservative choice, and better fits the
'principal of least surprise'
2012-02-14 15:20:44 +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 da16ccf993 fixed some printf casts 2012-02-14 08:34:10 +11:00
Andrew Tridgell c6f3f7065c APM: the CLI fits nicely on the 1280 again now
I find the CLI very useful for testing, so enable it by default on the
1280. Logging is still off by default.
2012-02-14 08:33:49 +11:00
Andrew Tridgell 153575a01c token is 16 bits now 2012-02-13 16:22:53 +11:00
Andrew Tridgell 16a5b5c3ee added AP_Param::show_all()
this moves the logic into common code
2012-02-13 16:22:52 +11:00
Andrew Tridgell 781617cae0 token size for first()/next() is now 16 bits 2012-02-13 16:22:52 +11:00
Andrew Tridgell 50f9d12ad5 go back to 1024 bytes for variables in EEPROM 2012-02-13 16:22:52 +11:00
Andrew Tridgell f5f6e2d4ec added group indexes to GCS_MAVLINK class 2012-02-13 16:22:52 +11:00
Andrew Tridgell a8140d9524 expand parameter area for ArduPlane
this ensures all parameters can be saved without overflow
2012-02-13 16:22:52 +11:00
Andrew Tridgell bbc876fcdf tidy up a comment 2012-02-13 16:22:52 +11:00
Andrew Tridgell 9fe8c079e7 fixed two parameter names 2012-02-13 16:22:51 +11:00
Andrew Tridgell 922139b824 expose mavlink stream rates as parameters 2012-02-13 16:22:51 +11:00
Andrew Tridgell edfb8fe0b7 imported new Parameters code to APM 2012-02-13 16:22:51 +11:00
Andrew Tridgell c4bd17052e import new Parameters.h for AP_Param to APM 2012-02-13 16:22:51 +11:00
Andrew Tridgell ab057d9801 implement dump of all vars in CLI using AP_Param 2012-02-13 16:22:51 +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