1
0
mirror of https://bitbucket.org/librepilot/librepilot.git synced 2024-12-11 19:24:10 +01:00
Commit Graph

13 Commits

Author SHA1 Message Date
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
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
corvus
9bb085b7fc Documentation: Added Flowchart for HiTL mode
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1365 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-08-21 23:05:12 +00:00
stac
7f85143bd2 OPModule: updated GPSPosition object
Updated GPSPosition module to reflect the planned use
of a fixed a fixed point encoding for lat/lon.

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1354 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-08-21 16:19:16 +00:00
stac
47c36b3da0 i2c: fix error in FSM for restarted reads
The transition from the ADDR state to the read state
was broken for non-final reads.  The FSM diagram was
also wrong for this transition.

Since reads are always the last transaction in a sequence
in our current usage, this doesn't actually fix any known
bugs.

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1350 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-08-21 16:19:06 +00:00
vassilis
a075eafb98 FlightArchitecture: Updated description of Stabilization module (air/ground speed handled by guidance module)
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1285 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-08-14 14:19:33 +00:00
vassilis
9cd76fbe46 FlightArchitecture: Added Climbrate and Airspeed fields in Position objects
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1284 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-08-14 14:04:28 +00:00
vassilis
697b3510fb Flight: First release of module architecture and dataflow diagram (still work in progress)
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1283 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-08-14 03:02:21 +00:00
stac
f74c6ffdd5 i2c: rewrite i2c layer
The STM32 I2C block has a number of errata associated with it.
These errata are primarily related to timing sensitivities between
the peripheral and the interrupt handler.  In particular, the
correct generation of the stop bit relies on the I2C IRQ running
immediately and not being held off for any reason.

NOTE: The I2C interrupts must be the highest priority IRQs in the
      system to ensure correct operation.

I2C protocol is now implemented as a formal state machine.
See: stm32_i2c_fsm.{dot,jpg} for FSM description.

I2C init is now expressed by const initializers in pios_board.c
for both OP and AHRS boards.

I2C device drivers (ie. bmp085/hmc5843) now pass in const arrays
of an unlimited number of bus transfers to be done atomically.
The I2C adapter driver now handles all bus-level locking across the
list of transactions.  Generation of start/restart/stop conditions
are handled automatically over the list of transactions.

Timeouts have been removed from the API for now.  May be added
back later.

This driver has run error free on both the OP and AHRS boards for
up to 48hrs but it still sometimes fails earlier than that on the OP
board.  There is another possible set of improvements to the driver
that could employ the DMA engine for transfers of >= 2bytes.  This
change would reduce the timing sensitivities between the peripheral
and the driver but unfortunately, both the SPI and I2C interfaces
share the DMA1 engine.  That means only one of these two peripherals
can use the DMA engine and right now, SPI between OP and AHRS is
already using it.

Failures are currently fatal and will lock up the CPU.  This allows
useful information to be obtained in the failure cases.

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1241 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-08-08 04:15:08 +00:00
stac
e3824a6d78 ahrs spi: Add AHRS SPI link management FSM
To the outside world, the AHRS can be in one of only a few
primary states:
 Not present - AHRS is absent or non-responsive via SPI
 Inactive - Only link-level status messages are processed
 Ready - Ready to receive the next application level message
 Busy - Application level message is being processed

Internal to the AHRS, there are many more states that need to be
managed.  This FSM provides the necessary decoupling between the
ISR (which is being driven by the SPI link) and the AHRS main
processing loop which must continue to run its filters independently
of the SPI messaging rate.

With this structure, SPI messages can be received at any time but
processed at only specific points within the filter chains.

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1005 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-07-04 02:21:22 +00:00
dankers
84c944b4fe Old Documentation removal, legacy from very early in the project. This information should be on the Wiki.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@962 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-07-01 04:44:35 +00:00
gussy
bffe79703a Removed old empty files.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@242 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-03-04 06:18:28 +00:00
dankers
058e5b88a3 Unix Friendly
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@176 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-02-06 19:16:09 +00:00