Commit Graph

144 Commits

Author SHA1 Message Date
Andrew Tridgell 73dafe537e SITL: use the new noise model
use the new noise model at a low level for master until we sort out
DCM noise handling
2012-03-02 18:31:07 +11:00
Andrew Tridgell 37275d229d SITL: implement cli()/sei() properly for desktop build
this disables simulated hardware interrupts during critical sections
2012-03-02 15:48:27 +11:00
Andrew Tridgell 39797c6f33 SITL: simulate noise on each ADC channel separately
scale the noise based on the period of the motors
2012-02-28 09:43:49 +11:00
Andrew Tridgell efe5c0142c SITL: raise the ADC noise level to 8 bits when flying
this is about the level of noise of a aircraft that has a lot of
vibration
2012-02-28 09:43:49 +11:00
Andrew Tridgell d6bfceef7c SITL: added -C option to desktop mode
this allows running APM to stdout, which is useful for test sketches
2012-02-25 11:37:20 +11:00
Andrew Tridgell 9793d04ed1 SITL: increase the amount of noise in the simulated ADC
this increases the noise to 2 bits, which actually can have the effect
of improving accuracy, as it leads to better averaging
2012-02-18 19:27:15 +11:00
Andrew Tridgell a48a118128 SITL: adjust the SITL compass code to have saner z values 2012-02-15 22:34:16 +11:00
Andrew Tridgell 4398171374 SITL: catch floating point errors
if we get a FPE then log a message and exit
2012-02-15 08:50:45 +11:00
Andrew Tridgell 43c56be70c SITL: add some magnetometer offsets
this ensures the compass null_offset algorithm has some work to do in
autotest
2012-02-14 11:26:42 +11:00
Andrew Tridgell f95d7cadc5 fixed SITL GPS heading to be 0..360 2012-02-14 11:26:42 +11:00
Andrew Tridgell d658bc6f9d desktop: more progmem string functions 2012-02-13 16:22:51 +11:00
Andrew Tridgell 49cf409c23 desktop: floating point precision changes from Justin Beech 2012-01-11 21:31:59 +11:00
Jason Short 351be7c305 Made timer unsigned 2012-01-10 23:42:26 -08:00
Andrew Tridgell ca39fc8b47 sitl: added build targets for different ACM frames 2012-01-04 21:45:46 +11:00
Andrew Tridgell 5f38663d44 desktop: exclude I2C library 2011-12-28 20:41:53 +11:00
Andrew Tridgell 5e4f66e525 DataFlash: moved high level logging logic to library
this moves out all the high level logic from ArduPlane/ArduCopter to
the library. It also adds a "config page", as the last page in the
flash. This is used to check if the flash needs erasing. We only erase
now if the DF_LOGGING_FORMAT has changed.

This patch also adds a public CardInserted() method, which is used to
disable logging on APM2 if a dataflash card is not inserted
2011-12-28 16:00:48 +11:00
Andrew Tridgell 9bb0bd0341 desktop: added attachInterrupt() support 2011-12-26 19:17:11 +11:00
Andrew Tridgell a39a470d75 desktop: fixed for new DataFlash inheritance 2011-12-26 19:17:11 +11:00
Andrew Tridgell f6f808357c removed AperiodicProcess code
this code was never being used, and was more complex than it was
worth.
2011-12-17 07:29:09 +11:00
Andrew Tridgell e187ff149f desktop: fixed type of dword eeprom read 2011-12-16 20:09:18 +11:00
Andrew Tridgell 90c6bad814 autotest: make magnetic field point down 2011-12-12 22:14:01 +11:00
Andrew Tridgell 081f35f51c desktop: fixed build with new AP_Baro code 2011-12-12 15:14:55 +11:00
Andrew Tridgell 8d882c3640 desktop: fixed desktop barometer code 2011-12-12 15:14:55 +11:00
Andrew Tridgell f96a48e42b autotest: support all 11 PWM output channels
this will allow for more complex aircraft
2011-12-02 22:45:48 +11:00
Andrew Tridgell 66d65121cc autotest: switch to big-endian metric packets internally
now that all the sim code is internal to the APM git repo, we can
choose saner packet formats
2011-12-02 22:12:58 +11:00
Andrew Tridgell 43e3948816 desktop: show the full path to the desktop executable 2011-12-02 21:46:55 +11:00
Andrew Tridgell 7167fec784 desktop: added SO_REUSEADDR after accept() 2011-12-02 17:37:55 +11:00
Andrew Tridgell 706c6c38fa desktop: fixed calculation of angular velocities
thanks to James Goppert for the frame conversion maths
2011-12-02 17:37:54 +11:00
Andrew Tridgell bdb1599e96 desktop: improved the accuracy of the sensor emulation 2011-11-28 16:22:33 +11:00
Andrew Tridgell df957db8d9 desktop: setup TCP sockets as non-blocking
the sendto() blocks unexpectedly on MacOS
2011-11-28 13:53:57 +11:00
Andrew Tridgell 0720bf7bf1 desktop: build fix for fjall 2011-11-26 18:24:29 +11:00
Andrew Tridgell f2a0a49d55 desktop: fixed desktop build for strlcat_P() changes 2011-11-26 17:18:09 +11:00
Andrew Tridgell c9b0b384f7 desktop: added framerate and initial height code
this allows the sensors to initialise before the simulator has
connected. The GPS will give a value indicating no GPS lock
2011-11-25 20:00:19 -08:00
Andrew Tridgell 24a7a18481 desktop: fixed swap_float()
get indexes right
2011-11-25 20:00:19 -08:00
Andrew Tridgell 62f98b091f desktop: import updated DataFlash code
this fixes a logging bug
2011-11-25 20:00:19 -08:00
Andrew Tridgell de0c38339d desktop: fixed ADC value for airspeed 2011-11-25 20:00:19 -08:00
Andrew Tridgell 02f25ac36d libraries: rename purple to APM2 2011-11-25 20:00:19 -08:00
Andrew Tridgell de2898e5db desktop: normalise roll and pitch rates 2011-11-25 20:00:18 -08:00
Andrew Tridgell 91b03a48c1 desktop: added SKETCH as a define
useful for automatically handling copter vs plane
2011-11-25 20:00:18 -08:00
Andrew Tridgell ffba37d599 desktop: first version of register level SITL support
this adds register level emulation of the ADS7844 and the RC
input/output hardware on the APM1, allowing for SITL testing without
enabling HIL in the code
2011-11-25 20:00:18 -08:00
Andrew Tridgell e0488e134f desktop: fixed build with updated dataflash interface 2011-11-25 20:00:17 -08:00
Andrew Tridgell a9c0cbac77 desktop: make DataFlash for Desktop build replace APM1 build 2011-11-25 20:00:17 -08:00
Andrew Tridgell 73e0ab0c63 desktop: more fixes for DataFlash filesystem changes 2011-11-20 19:06:24 +11:00
Andrew Tridgell 6d048646c3 desktop: added support for new DataFlash functions 2011-11-18 17:50:12 +11:00
Andrew Tridgell 355519ad1e desktop: when in the CLI, use blocking writes
this prevents us missing information from the logs
2011-11-11 09:53:46 +11:00
Andrew Tridgell 9677600433 desktop: don't start alarm till setup() has finished 2011-11-10 21:57:47 +11:00
Andrew Tridgell 9af935f2f2 desktop: don't alarm in CLI
loop() is not called in menu system
2011-11-10 00:14:04 +11:00
Andrew Tridgell 0820ff52a8 desktop: exit if loop() doesn't run for 5 seconds
this should stop runaway processes
2011-11-09 19:40:34 +11:00
Andrew Tridgell a0fd4f710f desktop: force awk on macos
this may help on jasons box
2011-11-09 17:21:53 +11:00
Andrew Tridgell 53f62b7484 desktop: exit on EOF from stdin 2011-11-09 17:21:53 +11:00
Andrew Tridgell db99b664df desktop: fixed malloc cast 2011-11-09 08:47:49 +11:00
Andrew Tridgell 997091e0d6 desktop: be more careful with signed/unsigned in DataFlash 2011-11-09 08:44:19 +11:00
Andrew Tridgell c2082fdd7b desktop: use less stack
this avoids a problem on cygwin on windows
2011-11-09 08:09:56 +11:00
Andrew Tridgell c4bba9c4d8 desktop: another MacOS fix 2011-11-08 18:07:19 +11:00
Andrew Tridgell 5194fe489d desktop: make desktop build more portable
this should help on MacOS

thanks to MikeS for his assistance
2011-11-08 17:26:53 +11:00
Andrew Tridgell 0e447b12a2 dataflash: type fixup for ReadInt() 2011-11-08 17:26:53 +11:00
Andrew Tridgell 294c812b9b desktop: use the libc printf engine
getting ftoa_engine right was too much work
2011-11-08 11:59:30 +11:00
Andrew Tridgell 39ddc42cc7 desktop: fixed ultoa_invert()
the string was backwards
2011-11-08 11:13:48 +11:00
Andrew Tridgell d33b69492b desktop: improved ftoa_engine.c
this still doesn't perfectly match the assembler, but its closer
2011-11-08 11:05:36 +11:00
Andrew Tridgell c1dad23679 autotest: fill flash with 0xff on erase 2011-11-07 23:42:18 +11:00
Andrew Tridgell 3b48389efe Desktop: added -w option to wipe eeprom and dataflash 2011-11-07 22:56:13 +11:00
Andrew Tridgell da800a295f Desktop: added support for DataFlash in Desktop build
this will allow Jason to look at the logs of the quad sim
2011-11-07 22:56:13 +11:00
Andrew Tridgell 580139c6e4 digital.c for CLI 2011-11-07 22:56:13 +11:00
Andrew Tridgell 94f0e8a4a3 Desktop: enable the CLI in desktop build
this gives access to the CLI menus. You can start the SIL with the -s
switch to set the slider position to CLI
2011-11-07 22:56:13 +11:00
Andrew Tridgell e7671178b3 desktop: fixed TCP buffering issue with HIL
the TCP layer was buffering the servo updates, which caused very poor HIL flight
2011-11-02 09:38:44 +11:00
Amilcar Lucas 75751900d6 Update the SIL README file 2011-10-31 21:56:25 +01:00
Andrew Tridgell f8f2f9139d added desktop header 2011-10-30 17:31:32 +11:00
Andrew Tridgell de0a7117a8 make desktop serial more responsive 2011-10-30 13:00:54 +11:00
Andrew Tridgell 14cb884938 fixed mavlink10 desktop build 2011-10-24 13:09:19 +11:00
Andrew Tridgell 02725a1160 mavlink: added mavlink10 target for desktop build 2011-10-24 10:20:36 +11:00
Andrew Tridgell bdfcad234e RC_Channel_aux is needed for ArduPlane build 2011-10-24 10:20:19 +11:00
Andrew Tridgell c8847e0d55 desktop: refactor the TCP code
this supports all 3 serial ports, plus cleans up the code
2011-10-17 19:32:48 +11:00
Jason Short b8e7eac346 Merge branch 'master' of https://code.google.com/p/ardupilot-mega 2011-10-15 13:09:18 -07:00
Jason Short 142707711e Updates to guided mode from Michael O.
removed or commented unused static vars
2011-10-15 13:09:04 -07:00
Michael Oborne d38b289766 hil sensor cleanup 2011-10-14 18:14:32 +08:00
Michael Oborne 20ed86da28 fastserial tcp 2011-10-13 07:25:30 +08:00
Michael Oborne 12131911b2 Desktop: cygwin fixs for AP and AC SIL 2011-10-11 20:30:34 +08:00
Andrew Tridgell 25d07075b7 desktop: more cygwin fixes 2011-10-11 21:33:31 +11:00
Andrew Tridgell 75d31dcc4c desktop: removed the need for libbsd
this should help the cygwin build that MikeO is working on
2011-10-11 21:04:07 +11:00
Andrew Tridgell b415542690 desktop: added Makefile.desktop 2011-10-11 20:53:43 +11:00
Andrew Tridgell 8290b61951 desktop: fixed a warning 2011-10-11 20:53:43 +11:00
Andrew Tridgell 4016482573 desktop: make the main loop a bit more responsive
this introduces less delays on linux than usleep()
2011-10-11 17:49:40 +11:00
Andrew Tridgell 3c3db649d5 desktop: make ISRs normal C++ functions
this will make it possible to add an abstract register simulation
class that allows us to intercept device IO
2011-10-11 17:49:40 +11:00
Andrew Tridgell bd42484ab8 update README with build and usage information 2011-10-11 17:49:40 +11:00
Andrew Tridgell ea82b27fe5 support building with common Makefile.desktop 2011-10-11 17:49:40 +11:00
Andrew Tridgell 0939b51a4c added build makefiles 2011-10-10 07:18:38 +11:00
Andrew Tridgell 17aec03a2f added a README 2011-10-09 22:16:14 +11:00
Andrew Tridgell 034755e432 use nanosleep() instead of usleep() 2011-10-09 22:16:14 +11:00
Andrew Tridgell eebd632967 fixed millis() and micros() 2011-10-09 22:16:14 +11:00
Andrew Tridgell 8c8ad0cd55 desktop: use a bit less CPU 2011-10-09 22:16:13 +11:00
Andrew Tridgell 5cf3e92a22 desktop: use non-blocking IO 2011-10-09 22:16:13 +11:00
Andrew Tridgell 65900dd1e0 desktop: expand eeprom to 4k initial size 2011-10-09 22:16:13 +11:00
Andrew Tridgell b8dfdc293b desktop: flush all serial writes 2011-10-09 22:16:13 +11:00
Andrew Tridgell 7098e8cfa1 first rough build for desktop CPUs
this allows ArduPlane to build and startup on 'desktop' systems (eg. a
Linux box). Very rough for now, and only for HIL so far
2011-10-09 22:16:13 +11:00