Commit Graph

10359 Commits

Author SHA1 Message Date
Julien BERAUD
4acc121bd6 AP_HAL_Linux: support for timesliced timers
In order for lower frequency timers not to be called at the same iteration
of the main timer loop. This improves scheduling.
2016-01-18 16:57:48 -02:00
Julien BERAUD
d5c4917bcd AP_HAL: add default support for timesliced timers
To keep compatibility
2016-01-18 16:57:48 -02:00
Don Gagne
c13cf70163 GCS_MAVLink: system id output as severity INFO 2016-01-18 09:40:00 +09:00
Gustavo Jose de Sousa
d281067bcc waf: make example binaries be placed in 'examples' dir
This commit makes examples' wscripts use ardupilotwaf.example() instead of
ardupilot.program().
2016-01-15 16:46:41 -02:00
Ricardo de Almeida Gonzaga
4c60dd5e44 AP_HAL_Linux: improve yuyv_to_grey() performance
Based on gbenchmark metrics.

Before:
Benchmark             Time(ns)    CPU(ns) Iterations
----------------------------------------------------
BM_YuyvToGrey/4k          3109       3114     233334
BM_YuyvToGrey/75k        55777      55857      12353
BM_YuyvToGrey/300k      231829     232227       3043

After:
Benchmark             Time(ns)    CPU(ns) Iterations
----------------------------------------------------
BM_YuyvToGrey/4k          1713       1716     411765
BM_YuyvToGrey/75k        32124      32152      21875
BM_YuyvToGrey/300k      128530     128753       5385
2016-01-15 16:43:52 -02:00
Ricardo de Almeida Gonzaga
3748760ead AP_HAL_Linux: improve crop_8bpp() performance
Based on gbenchmark metrics.

Before:
Benchmark             Time(ns)    CPU(ns) Iterations
----------------------------------------------------
BM_Crop8bpp/64/64         3206       3197     198113
BM_Crop8bpp/240/240      38166      38181      18421
BM_Crop8bpp/640/480     193589     193317       3621

After:
Benchmark             Time(ns)    CPU(ns) Iterations
----------------------------------------------------
BM_Crop8bpp/64/64         2652       2657     232103
BM_Crop8bpp/240/240      33532      33506      20792
BM_Crop8bpp/640/480     187848     188201       3684
2016-01-15 16:43:52 -02:00
Ricardo de Almeida Gonzaga
210c90e784 AP_HAL_Linux: add benchmark for crop_8bpp() and yuyv_to_grey()
We had to check for board subtypes in the benchmark since VideoIn.cpp
does these checks.
2016-01-15 16:43:52 -02:00
Julien BERAUD
43307d95c8 OpticalFlow_Onboard: fix body rate calculation
The correct integral of the body rate is (rate + last_rate)/2*dt
and not rate * dt
2016-01-15 16:11:19 -02:00
Ricardo de Almeida Gonzaga
753f7d864a AP_HAL_Linux: add a shrink by software option in OpticalFlow
This shrink must be used when the output camera sizes doesn't fit
the expected output.

We don't need to crop it even when the camera sizes aren't squared since
the shrink_8bpp() function shrinks a selected area.
2016-01-15 16:05:47 -02:00
Ricardo de Almeida Gonzaga
553d36c860 AP_HAL_Linux: add shrink_8bpp() to VideoIn
This function shrinks a selected area on a 8bpp image.

The focus in this function was the performance, so this may not be the
clearer or the most understandable way to write it. The performance
was measured using GoogleBenchmark[1].

[1] - https://github.com/google/benchmark.git
2016-01-15 16:05:47 -02:00
Lucas De Marchi
51fd0b3d55 AP_HAL_Linux: RCInput_RPI: fix coding style
- Remove trailing whitespaces
 - Remove some uneeded comments
 - Fix indentation
 - Replace some breaks inside the loop by checking in the loop itself
2016-01-15 00:16:14 -02:00
Aaron Wang Shi
79d56073f7 AP_HAL_Linux: support PWM input for BH hat 2016-01-15 00:16:14 -02:00
Julien BERAUD
f449107563 AP_HAL_Linux: Add Perf Lttng
Support for perf api using lttng.
Some additional build tricks needed for bebop because lttng uses dl_open
which is not compatible with a static link on a different libc as used
on the bebop
2016-01-14 19:13:35 -02:00
bugobliterator
d7fcc7cd85 GCS_MAVLink: remove obsolete files from GCS_MAVLink dir 2016-01-15 07:28:47 +11:00
Paul Riseborough
287ebe8e6a AP_NavEKF2: Fix bug in application of sensor bias corrections
Sensor bias corrections were being applied to the incoming IMU data using the wrong delta time.
This was what was driving the different tuning between plane and copter for gyro bias process noise so the same gyro bias process noise default tuning value can now be used for all platform types.
Sensor bias corrections were being applied a a second time to the output observer inertial data.
2016-01-13 08:05:39 +11:00
Paul Riseborough
20923da23a AP_NavEKF2: Allow tuning of non-GPS mode
Eliminate the use of horizontal position states during non-aiding operation to make it easier to tune.
Explicitly set the horizontal position associated Kalman gains to zero and the coresponding covariance entries to zero after avery fusion operation.
Make the horizontal velocity observation noise used during non-aiding operation adjustable.
Use a fixed value of velocity noise during initial alignment so that the flight peformance can be tuned without affecting the initial alignment.
2016-01-13 08:05:39 +11:00
Paul Riseborough
23038e7243 AP_NavEKF2: Use measurement uncertainties to initialise covariance 2016-01-13 08:05:39 +11:00
Lucas De Marchi
a3cac102cd AP_HAL_Linux: AnalogIn_Raspilot: rename misleading variables
We are not doing any dma here, it's just an SPI transaction. Name them
only rx/tx (although io_packet_tx/io_packet_rx could be another option).
This also zero-initialize the struct to keep valgrind happy about not
calling ioctl() with uninitialized variables.
2016-01-11 16:03:28 -02:00
Lucas De Marchi
0cff40ed7b AP_HAL_Linux: AnalogIn_Raspilot: remove unused debug 2016-01-11 15:58:49 -02:00
Pritam Ghanghas
60636c1653 AP_HAL_Linux: rename RaspilotAnalogIn.cpp to AnalogIn_Raspilot.cpp 2016-01-11 15:56:20 -02:00
Lucas De Marchi
1fde473afc AP_HAL_Linux: AnalogIn_IIO: normalize names
Use same name for file and classes, preferring AnalogIn_IIO over
IIOAnalogIn.
2016-01-11 15:44:24 -02:00
Lucas De Marchi
be2af0877c AP_HAL_Linux: AnalogIn_IIO: formatting fixes
- remove trailing whitespaces
  - use pragma 0 for header guard
2016-01-11 15:44:24 -02:00
Víctor Mayoral Vilches
8195631fac HAL_Linux: AnalogIn_IIO update reopen_pin 2016-01-11 15:44:24 -02:00
Víctor Mayoral Vilches
b9c83da8c6 HAL_Linux: AnalogIn_IIO, replace reopen by select
A new select_pin method has been implemented and
set that changes solely the file descriptor (avoids
reopening the file every time we call set_pin).
2016-01-11 15:44:24 -02:00
Víctor Mayoral Vilches
da1b529415 HAL_Linux: AnalogIn_IIO add init_pins
initializes all the available analog
sources and stores the corresponding file descriptors
in fd_analog_sources.
2016-01-11 15:44:24 -02:00
Víctor Mayoral Vilches
546fbd1f25 HAL_Linux: mv AnalogIn_PXF to AnalogIn_IIO
Initial implementation used for the PXF moved for
a wider use. The implementation uses the Linux Industrial
I/O Subsystem (IIO) to get Analog Input.
2016-01-11 15:44:24 -02:00
Víctor Mayoral Vilches
4820e0b2c7 HAL_Linux: AnalogIn_PXF changes in AnalogIn
Recent changes in AP_HAL::AnalogIn have made the previous
code not valid anymore. This commit fixes the init()
method and adds common headers.
2016-01-11 15:44:24 -02:00
pkancir
c117b41188 AP_BattMonitor: add PXF default pins 2016-01-11 15:44:24 -02:00
pkancir
506db4eaf5 AP_HAL_Linux: add ADC support for PXF cape 2016-01-11 15:44:24 -02:00
Lucas De Marchi
0817fe6033 AP_HAL_Linux: default USE_FRAM to 0 for all boards
This disables FRAM usage in PXF and erleboard. The reason is it's
failing and not being used. Right now we get this on startup:

	root@beaglebone:~# ./ArduCopter.elf
	FRAM: Online
	Storage: FRAM is getting reset to default values
	Failed to read FRAM

Testing with valgrind also reveals some invalid memory reads. Let's
disable it for now to be common with other boards.
2016-01-11 15:44:24 -02:00
Lucas De Marchi
2a33b6bf33 AP_HAL_Linux: OpticalFlow: remove unneeded panic
There's already a panic() below.
2016-01-11 15:34:14 -02:00
Ricardo de Almeida Gonzaga
7adbccac9a AP_HAL_Linux: add support for OpticalFlow to MinnowBoardMax
This commit adds support for OpticalFlow to MinnowBoardMax trying to
leave the OpticalFlow implementation as generic as it already is.

We had to add some format conversion and software crop to the cameras that
do not have this features.
2016-01-11 15:31:27 -02:00
Ricardo de Almeida Gonzaga
8aded390e7 AP_HAL_Linux: add yuyv_to_grey() and crop_8bpp() to VideoIn
Most cameras do not support NV12 or GREY formats, we are adding in this commit
a conversion from YUYV format, that seems pretty common in cameras, to GREY
format (since we do not use Cb and Cr data on OpticalFlow).

Also we are adding a software crop for 8bpp images, such as GREY format. For
the same reason, most cameras do not have support for overlaying (crop, resize
and so on).

These functions are being added in order to be used in the next commits,
where we will add support for OpticalFlow on MinnowBoardMax.
2016-01-11 15:31:27 -02:00
Ricardo de Almeida Gonzaga
27f909319e AP_HAL_Linux: add get_pixel_formats() to VideoIn
This function is being added in order to be used in the next commits,
where we will add support for OpticalFlow on MinnowBoardMax.
2016-01-11 15:31:26 -02:00
Julien BERAUD
979184607d OpticalFlow_Onboard: fix comment
Copy-paste mistake
2016-01-11 14:54:51 -02:00
Andrew Tridgell
097c2011e1 HAL_SITL: prevent abort on select with -1 fd 2016-01-10 21:26:35 +11:00
Andrew Tridgell
deb0b9c197 HAL_SITL: read in larger chunks 2016-01-10 17:43:01 +11:00
Andrew Tridgell
655f57ad01 HAL_SITL: cleanup class names
remove SITL prefix
2016-01-10 17:43:01 +11:00
Andrew Tridgell
492c733750 HAL_SITL: added RingBuffers to UART driver
makes for faster log download
2016-01-10 17:43:01 +11:00
Tom Pittenger
db8a2f7e8b AP_TECS: changed land_spdwgt to be sliding scale 2016-01-09 13:25:02 +11:00
Tom Pittenger
89ce0b062b AP_SpdHgtControl: added new path_propportion var 2016-01-09 13:25:02 +11:00
Andrew Tridgell
ef151944b8 GCS_MAVLink: regenerate headers 2016-01-09 07:38:54 +11:00
Andrew Tridgell
ad59cb9f5c AP_Mission: support VTOL_TAKEOFF and VTOL_LAND 2016-01-09 07:38:53 +11:00
Andrew Tridgell
712a45eb22 GCS_MAVLink: added VTOL_TAKEOFF and VTOL_LAND 2016-01-09 07:38:53 +11:00
Andrew Tridgell
b3bd83b1c6 AP_TECS: no underspeed when in VTOL 2016-01-09 07:38:52 +11:00
Andrew Tridgell
4f70ca22c1 AP_SpdHgtControl: added VTOL flight stage 2016-01-09 07:38:52 +11:00
Andrew Tridgell
b187a0c6eb AP_Motors: added quadplane frame type
this puts the motors on outputs 5 to 8, to leave the first 4 for the
plane
2016-01-09 07:38:51 +11:00
Andrew Tridgell
22e25cc792 HAL_SITL: added Flightaxis support 2016-01-09 07:38:51 +11:00
Andrew Tridgell
7a7bd0607f SITL: first version of FlightAxis SITL support 2016-01-09 07:38:51 +11:00
Andrew Tridgell
76e3ae190a GCS_MAVLink: partial merge of common.xml from upstream 2016-01-09 07:38:51 +11:00
Randy Mackay
b742ee9cfb AP_Motors: fix example sketch 2016-01-08 18:36:47 +09:00
Michael du Breuil
8c9eafeb3c AP_GPS: Fix param docs that had incorrect spaces
The spaces between values aren't stirpped by the autodoc tool that generates the XML files
2016-01-08 20:17:54 +11:00
Randy Mackay
8c7f36563c AC_AttControl: bug fix to angle_boost reporting
Thanks to OXINARF for finding this
2016-01-08 10:48:59 +09:00
Michael Oborne
a42b286c01 AP_GPS_SBF: update logging based on vendor recommendation. 2016-01-08 10:47:05 +11:00
Andrew Tridgell
b54bb757df AP_Param: fixed flymaple build 2016-01-08 10:33:45 +11:00
mirkix
1744bc0850 AP_Notify: Use display with bbbmini 2016-01-07 14:32:56 -02:00
mirkix
2457558624 AP_Notify: Add display support 2016-01-07 14:32:56 -02:00
mirkix
dee20a31f1 AP_Notify: Add gps_num_sats 2016-01-07 14:32:56 -02:00
Lucas De Marchi
a803cfd1e8 AP_HAL_Linux: RCInput: use GPIO5 for PPMSUM in bhat 2016-01-07 10:28:16 -02:00
Lucas De Marchi
321803919c Revert "AP_HAL_Linux: support PWM input for BH hat"
This reverts commit 8cca0beba9.

The PWM input using the RPI DMA is causing trouble with RPI boards using
PPMSUM. Let's revert it until the solution is found. We still leave the
ifdef in RCInput for BH hat.
2016-01-07 10:27:07 -02:00
Randy Mackay
c829ec0c2c AC_PrecLand: add missing parameter description
Thanks to Thomas Stone for finding this
2016-01-07 17:35:18 +09:00
Jonathan Challinger
8fdbb36827 AP_BattMonitor: add is_powering_off 2016-01-07 15:14:07 +09:00
Randy Mackay
5ddd332277 AC_AttControl: add ANGLE_BOOST param
This allows disabling angle boost
2016-01-07 12:31:52 +09:00
Randy Mackay
6c458b07cb MotorsHeli_RSC: resolve compiler warning re init order 2016-01-07 12:31:49 +09:00
Randy Mackay
f6b909d0a5 AHRS_NavEKF: resolve compiler warning re signed vs unsigned comparison 2016-01-07 12:31:47 +09:00
Tom Pittenger
70a45680ed AP_TECS: fixed param desc for TECS_LAND_THR 2016-01-07 09:36:54 +11:00
Andrew Tridgell
415d800957 AP_Param: use get_custom_defaults_file() 2016-01-07 09:09:54 +11:00
Andrew Tridgell
b4cc3d9668 HAL_SITL: implement get_custom_defaults_file() 2016-01-07 09:09:40 +11:00
Andrew Tridgell
5f4bd10477 AP_HAL: added get_custom_defaults_file() to Util 2016-01-07 09:09:09 +11:00
Andrew Tridgell
f8b52c6a67 AP_AHRS: try to start EKF2 slightly before EKF2
this gives priority to EKF2 on memory
2016-01-07 08:34:32 +11:00
Andrew Tridgell
a6c39dee84 AP_NavEKF: don't allocate EKF1 unless it will leave 4k free memory 2016-01-07 08:33:33 +11:00
Andrew Tridgell
9188670e03 AP_TECS: added get_height_rate_demand() call 2016-01-06 22:47:38 +11:00
Andrew Tridgell
a07a8aece1 RC_Channel: added pwm_to_angle_dz_trim() 2016-01-06 22:47:21 +11:00
Andrew Tridgell
7c9ee9363b AP_Motors: added rc_map_mask() function 2016-01-06 22:09:40 +11:00
Andrew Tridgell
dfccf8f713 AP_Motors: also wrap set_freq and enable_ch for motor mapping 2016-01-06 22:09:40 +11:00
Andrew Tridgell
77af00c5e1 AP_Motors: allow arbitrary mapping of channels on multirotors
using RCn_FUNCTION with motor1, motor2 etc
2016-01-06 22:09:40 +11:00
Andrew Tridgell
2777ff63ba SITL: heli-sim: prevent ground rotation and reduced affect of ground impact 2016-01-06 21:59:56 +11:00
Paul Riseborough
e80fb8b3fa AP_NavEKF2: Improve non-GPS in-flight attitude accuracy
The non-GPS mode was not being activated for small height gains - eg indoor flight.
The incorrect innovation consistency check was being applied to the synthetic velocity observations.
2016-01-06 20:49:21 +11:00
Andrew Tridgell
a3d781bf3f GCS_MAVLink: fixed a valgrind error 2016-01-06 19:54:00 +11:00
Andrew Tridgell
0e8dbe92f0 GCS_MAVLink: fixed string overrun found by asan 2016-01-06 19:53:14 +11:00
Andrew Tridgell
519afc7a06 HAL_PX4: debug code for FRAM corruption 2016-01-06 19:16:16 +11:00
Andrew Tridgell
9941c91d36 RC_Channel: prevent a warning message for assigned RC channels 2016-01-06 19:16:12 +11:00
Andrew Tridgell
6c064ae8bd HAL_SITL: flow control is enabled on SITL
faster parameter download
2016-01-06 19:16:08 +11:00
Andrew Tridgell
68a46bc1ff GCS_MAVLink: use AP_Param::count_parameters() 2016-01-06 14:44:37 +11:00
Andrew Tridgell
93f0707679 AP_Param: added count_parameters() API
this auto-clears when an ENABLE parameter changes
2016-01-06 14:44:34 +11:00
Peter Barker
ff8008d81a DataFlash: remove unused callbacks, unimplemented functions
Closes #3269
2016-01-05 17:08:07 -02:00
Víctor Mayoral Vilches
d73fc4c0b2 AP_Notify: Add PXFmini support 2016-01-05 15:35:56 -02:00
Víctor Mayoral Vilches
fa3dad928b HAL_Linux: Add PXFmini to Linux_Class 2016-01-05 15:35:56 -02:00
Víctor Mayoral Vilches
e1de1f5f80 HAL_Linux: Util, add PXFmini support 2016-01-05 15:35:56 -02:00
Víctor Mayoral Vilches
e493bfcae4 AP_InertialSensor: add PXFmini support 2016-01-05 15:35:56 -02:00
Víctor Mayoral Vilches
a0b9181198 HAL_Linux: Scheduler add PXFmini support 2016-01-05 15:35:55 -02:00
Víctor Mayoral Vilches
1c49b086eb HAL_Linux: SPIDriver add PXFmini support 2016-01-05 15:35:55 -02:00
Lucas De Marchi
e0d19dc87d AP_HAL_Linux: RCInput_RPI: fix coding style 2016-01-05 15:35:34 -02:00
Víctor Mayoral Vilches
fdf490dad1 HAL_Linux: RCInput support for PXFmini 2016-01-05 15:34:50 -02:00
Lucas De Marchi
4e883e033f AP_HAL_Linux: GPIO: remove ifdef comment
It just clutters the source code and review process when a new similar
board is added.
2016-01-05 15:34:49 -02:00
Víctor Mayoral Vilches
8ce8045033 HAL_Linux: GPIO, add support for PXFmini 2016-01-05 15:31:43 -02:00
Víctor Mayoral Vilches
0aee50b99e HAL: Add PXFmini board 2016-01-05 15:31:43 -02:00
Andrew Tridgell
ea823a818c AP_AHRS: enable EKF2 by default in AHRS 2016-01-05 16:42:01 +11:00
Andrew Tridgell
a0a4b698f6 AP_NavEKF: disable EKF1 by default
use EKF2 instead
2016-01-05 16:41:48 +11:00
Andrew Tridgell
c34626ec4e AP_NavEKF2: automatically cut back EK2_IMU_MASK to suit number of IMUs 2016-01-05 16:40:43 +11:00