1
0
mirror of https://bitbucket.org/librepilot/librepilot.git synced 2024-12-12 20:08:48 +01:00
Commit Graph

104 Commits

Author SHA1 Message Date
edouard
d8edab8371 Added a (fake) pios_servo module in PiOS.posix, this makes it possible to compile the Actuator module and see servo output values, or at least
what they would be on a real board. Also fixed a typo in stabilization.c which made me lose time when trying to understand the code...




git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2260 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-12-20 16:38:17 +00:00
peabody124
4b4a66c2d7 PiOS/I2C: Lots of small changes. Added a few weird bus events that are
sometimes thrown, and made errors not lock it up by default.  It works for me,
but since this has historically been associated with lots of lock ups please
check your systems carefully.

PiOS/I2C: Make the bus by default try to recover from errors instead of locking
up

PiOS/I2C: After a bus error and clocking all previous data create a STOP
condition to make sure bus is released (note, this also requires creating a
START condition first)

PiOS/I2C: If the same event hits the I2C bus twice in a row then disregard
second one, there is no situation where we should get the same event multiple
times that matters and this gets us out really quickly to catch the real
events.  I was seeing this with repeated 0x70084 which means byte transmitted.
This is related to STM32 bugs in the IRQ timings I believe.

PiOS/I2C: 1) Mask out some bits we don't care about in the event flags
2) Don't lock up if the give semaphore fails, although why it does is strange
3) Recover from bus failure through the "auto" state path instead of just
coding state

PiOS/I2C: Change the reset bus code to follow
http://www.analog.com/static/imported-files/application_notes/54305147357414AN686_0.pdf
(thanks for the reference Neontangerine).  Although this may actually NOT clear
the bus the first time through, subsequent bus errors should eventually clock
it out.  The up side is it is less likely to clock a bunch of 1s into an ESC
and make it run up.

PiOS/I2C: Some cleaned up code for getting a snippet of the history when
something strange happens

PiOS/I2C: Export logging information from I2C through a UAV object

PiOS/I2C: Improve the diagnostic information

PiOS/I2C: Need to handle the event 0x30084.  This seems to happen between a
byte transmitted and new byte started

PiOS/I2C: Handle the NACK condition by simply going to the stopping state.

PiOS/I2C: Add a new NACK state to handle sending the STOP signal after a NACK
following the STM documentation.  Other error conditions still are not dealt
with.

PiOS/I2C: Should handle the NACK condition from all the write cases.  Need to
think about read cases

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2239 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-12-17 07:01:58 +00:00
pip
b4e4d4ed5e Adding PipX modem settings/status UAVObjects
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2219 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-12-11 10:56:42 +00:00
dschin
b2a538375c Changes in files supporting AHRS for new initialization methods.
Changes in ahrs.c for new initialization and to fix issues with outdoor algorithm.  The changes in ahrs.c are pretty messy, but committed mostly to get the code to Peabody for more extensive restructuring of ahrs.c.

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2150 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-11-24 01:27:43 +00:00
peabody124
34bd4b7524 OP-198 Flight/GPS: Remove dependency on buffer.c, also made the detection of start and
end characters occur while sentence coming in instead of reprocessing whole
sentence for each character

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2041 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-10-30 18:15:52 +00:00
peabody124
b9f74a86c3 OP-198 Flight/Libraries: Swap to using circular buffer code from Pip because it
supports thread safe write/read simultaneously

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2027 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-10-28 14:30:03 +00:00
peabody124
9944cdfcb0 Flight/RateDesired: UAVObject for monitoring the desired rate out of
stabilization for diagnostics

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2004 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-10-24 20:00:02 +00:00
les
2125e2479d Added AHRS boot loader SPI protocol
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1965 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-10-16 17:54:00 +00:00
peabody124
8308e4a4fe Whitespace change: get rid of CR
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1921 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-10-08 15:38:26 +00:00
peabody124
4e6f100ae5 Flight: Swap to Les' code for main line
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1920 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-10-08 15:38:23 +00:00
edouard
85aeffed9a Removed example settings from OpenPilot flight SW makefile too..
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1914 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-10-07 17:42:59 +00:00
kokomojoe
946283d67e OP-185 Flight - Added FirmwareIAP to the module load list in makefile, added uavobjectsinit.c with firmware IAP init calls
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1896 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-10-06 05:30:48 +00:00
kokomojoe
7cf0e9ba31 OP-185 Flight support for firmware IAP object. added the pios_iap.c and firmwareiapobj.c
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1895 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-10-06 02:58:07 +00:00
peabody124
f03669733b Flight/Guidance: Merge back into one task because memory requirements of a task
exceed CPU requirements of PID.  Also add add lesstabilization UAVObject to Makefile
to fix compile errors.

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1870 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-10-04 02:01:34 +00:00
peabody124
a9495e2cbb UAVObjects/AttitudeSettings: Remove unused object, moving data to AHRSettings.
Added attitude bias to AHRSSettings.

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1855 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-10-03 18:14:34 +00:00
peabody124
754200f9cf UAVObjects/Delete old VTOLSettings object
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1854 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-10-03 18:14:27 +00:00
peabody124
2050864e59 UAVObjects/VTOLStatus: Remove unused object. Also added update time to
indicate stabilization loop time.

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1837 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-10-02 02:17:26 +00:00
peabody124
ea3fb03c7f Flight/AHRS Communications: Switch to Les' very nice UAVObject communication
scheme

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1835 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-10-02 02:17:18 +00:00
peabody124
a4e0ee5fdf Flight/Actuator: Move Les' actuator to the active one
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1800 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-09-29 18:51:36 +00:00
peabody124
da583e0914 Flight/Guidance: Disable by default
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1768 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-09-26 03:07:40 +00:00
peabody124
77b68e5169 Flight/Guidance: Initial template for guidance module
Flight: Create PositionDesired (the active waypoint) UAVObject and make the FlightSituationActual no update since it not used.
Flight: New velocity desired object that passes information between the look computing the desired velocity and the PID loop to get it (updated at different rates)
UAVObjects/PositionActual: Remove unused GPS fields
UAVObjects/PositionActual VelocityActual: Split the velocity into a separate object.  ALso make sure all the information telemetered around is in cm to avoid using floats.
UAVObject/GuidanceSettings: New guidance settings object for the guidance module
Flight/Posix: Add the new objects to the Posix sim
Flight/Guidance: Computes a desired velocity based on position error than runs a PID loop to control roll and pitch to achieve that velocity.  All distances are in cm, and updated the PositionActual fields to reflect this and use int32.

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1760 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-09-26 03:06:27 +00:00
zedamota
9b05282be5 OP-21/Flight Bootloader - should make things cross platform.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1758 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-09-26 00:39:01 +00:00
corvus
1472b342c1 1.0 Featur Freeze -
Removing some Experimental and Incomplete Modules and their UAVObjects not suited for 1.0
- they will be moved into an experimental branch:

Navigation     : experimental code only
FlightSituation: experimental code only 
Guidance       : preliminary draft - possibly to be replaced by peabody124 position hold code if finished in time.



git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1729 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-09-23 22:05:03 +00:00
corvus
e44045f422 OP-165 : Guidance Module
Creating GuidanceModule together with PositionDesired UAVObject (as discussed),
so dschin and me can work on it :-)
Will compile and (on sim_posix) execute, but PID logic is yet untested and preliminary.



git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1722 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-09-22 22:16:48 +00:00
les
875437f483 Added matrix based actuator mixing. Note the makefile is set to use the original actuator code.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1698 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-09-20 19:27:08 +00:00
zedamota
3ba6372dc4 OP-21/Flight Bootloader - Clean up and linker files for the AHRS
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1691 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-09-19 18:27:53 +00:00
zedamota
e8d6e7c557 Flight - Centralized board specific files, BL and User FW uses the same board definitions, no need to have 2.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1663 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-09-16 19:19:38 +00:00
peabody124
dceb20b16d Flight: VTOLStatus object that returns the thrusts on all the engines
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1588 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-09-12 02:54:34 +00:00
peabody124
bba3b0c64a Flight: VTOLSetings object to contain the mixer settings for VTOL crafts
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1587 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-09-12 02:54:30 +00:00
peabody124
45e8131a30 Flight: Added ability to use additional TX inputs to tune attitude bias. Note this form of the calibration is temporary and will likely be replaced by a rotation matrix to deal with more general rotations.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1525 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-09-04 17:07:59 +00:00
stac
ecac1fb79d nmea: parse GSV sentences and populate GPSSatellites object
This creates a new UAVObject called GPSSatellites to hold
information about which satellites the GPS receiver can see
and the quality of their signals.

NMEA GSV sentences are now parsed.  The full set of GSV data
may be split across multiple GSV sentences, each containing
info for at most 4 satellites.  Once an entire set of GSV
records has been collected, the GPSSatellites UAVObject is
updated.

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1453 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-08-29 01:46:14 +00:00
peabody124
16361dea12 AHRS: Making AHRS populate the NED/Vel fields of PositionActual. May rename object to PositionVelocityActual. Also created a GPSTime object which is populated from the GPRMC command. Also added a GPZDA parsing command, but by default OP GPS doesn't send this command. Made the computation of the world magnetic model use the current time to set the magnetic vector. Note: currently if you set your home location and save it to SD, this will not recompute the vector over time. I'm not sure how sensitive this is.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1435 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-08-27 19:59:25 +00:00
peabody124
4ca10e92c7 OP-121 OP-122 Flight: Improved USB HID communication.
1. Added reenumeration function and call it on USB init (device will appear after reprogramming now)
  2. Moved buffer.c to general flight/Libraries location
  3. Removed the 62 byte transmission limitation by adding a transmission buffer
  4. Sped up USB communication by increasing endpoint polling frequency

Note, that the nonblocking and blocking USB send functions are not blocking entirely correcting.  The blocking calls the nonblocking, and the nonblocking blocks until the last chunk has started tranmission if it's a big transmission.  The buffering I added would generalize to non-blocking nicely, but would require using the EP1(IN) callback to handle most of the tranmission.  This creates a lot of issues if one function is pushing data onto the buffer and the interrupt is sending.

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1403 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-08-25 05:32:52 +00:00
peabody124
bd8fffe4d0 AHRS/Flight: Renamed AttitudeSettings to AhrsSettings to make it more intuitive. Added the ability to change the algorithm from GCS.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1383 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-08-23 03:39:13 +00:00
zedamota
6adc834d9b OP-21/Flight Prep work for the USB HID bootloader
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1375 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-08-22 18:57:29 +00:00
zedamota
2daa229a2d OP-21/Flight Prep work for the USB HID bootloader
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1374 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-08-22 18:56:00 +00:00
peabody124
8897c441fa OP-118 AHRS: Added AHRSCalibration object and messages associated with that to AHRS. Also made AHRS run calibration only when requested. We will create a GCS plugin that runs through computing the calibration settings. To compute the variances on the AHRS set the measure variances to true, wait ten seconds, then set it to false to read it back.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1363 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-08-21 21:46:02 +00:00
stac
635df28c34 GPSPosition: Add new UAVObject for GPSPosition
This object is not yet populated or used.  This
will soon hold the raw position data from the GPS
receiver.  PositionActual will be converted to
hold the computed position from the AHRS.

Contents of this object are still subject to change.

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1355 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-08-21 16:19:18 +00:00
stac
7b2111e512 baroaltitude: rename AltitudeActual to BaroAltitude
This is to align the object names to matches the UAVObject
architecture doc.  No functional changes.

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1351 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-08-21 16:19:10 +00:00
peabody124
2031cfe4d0 OP-119 AHRS: Added error counters for the messages as well as changed an error on AHRS echo back for the HomeLocation message.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1344 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-08-20 22:52:13 +00:00
peabody124
ef0b307353 [OP-119] Flight/AHRS: Created a HomeLocation object which is updated when the GPS gets an initial 3D fix and populated with the information to convert from LLA from the GPS to NED reference frame. Also added a message for passing the MagneticNorth vector to the AHRS and removed that computation from AHRS.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1337 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-08-19 20:38:27 +00:00
peabody124
fda6fc8371 Merge branch 'mac_support'
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1324 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-08-18 14:29:53 +00:00
stac
c3e509c2cb attituderaw: Replace HeadingActual with AttitudeRaw
AttitudeRaw now includes:
 - magnetometers XYZ (in mG)
 - gyros XYZ (raw ADC samples)
 - accelerometers XYZ (raw ADC samples)
 - placeholder for gyro temp sensors (read as zero for now)

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1289 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-08-14 23:42:14 +00:00
peabody124
a084d21804 Merge branch 'watchdog'
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1281 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-08-13 05:18:17 +00:00
stac
a320a3e4d4 build: Turn modules back on
The modules were disabled for some reason in r1172.
This just turns them back on for the real targets.

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1237 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-08-08 04:14:53 +00:00
corvus
9ad9ffd466 moved new stabilization code into experimental subdirectory
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1172 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-07-28 15:00:51 +00:00
peabody124
eb41a84acf And this
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1161 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-07-27 08:09:43 +00:00
peabody124
840f7ff456 A version of the firmware that successfully Acks back and forth over HID. Still need to refine the PIOS interface and make GCS strip out the report ID data (if necessary). Also note: currently if you run too many modules the watchdog timer kicks in. I haven't determined if this is due to an interrupt binding up or what (and why it doesn't happen more often since I can't find any code that explicitly resets the WWDG).
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1157 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-07-27 06:22:34 +00:00
peabody124
c46dcea73a Pretty major update of the USB HID core. Removed a lot of old code related to custom drivers and BSL (which will be brought back under HID). Device enumerates but still not communicating. Hopefully nothing broken, lots changed.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1155 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-07-27 03:19:07 +00:00
corvus
2621d07574 Added UAVObjects: FlightSituationActual NavigationSettings NavigationDesired
- Added FlighSituation Module (development module for sensor fusion, mostly stub, possibly renamed later)
- Added Navigation Module (development module for navigating towards a point in space - DEVELOPMENT CODE, NOT STABLE YET (I am testing around with this)) 
- Changed Stabilization Module (uses local reference frame now. Stable except for code cleanup/review. Tested in simulator and outperforms old code.)



git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1154 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-07-26 21:26:28 +00:00