[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Paparazzi-devel] Paparazzi autopilot communication with an airborne
Re: [Paparazzi-devel] Paparazzi autopilot communication with an airborne PC
Sat, 31 Dec 2011 02:30:07 +0100
I really all depends on what kind of communications you are planning
with the autopilot. The throughput, the latency and the cpu load are
going to dictate the solution you'll want. I'll try to list what
choices are avaible.
Let's start with the peripherals available on the Tiny:
With USB on the LPC, you get a virtual com port that might be easy to
use on the PC side. The drawback is you run quite a complicated code
on the LPC. I've not used this solution in flight, but I often use it
on measurement benches. I'm not sure what kind of "real time
behaviour" this solution exhibits, but it might be enough for your
You can use I2C if your PC has this interface - I believe there are
some I2C/USB converters based on FTDI chips.
The drawback of I2C is the low available bandwidth and the fifo-less
peripheral on the LPC which makes it CPU hungry.
You could use SPI. On the LPC side that would be an advantage as I
seem to recall one of the SPI peripherals has some hardware fifo,
which would allow to lower the cpu load on the LPC in case you need
higher bandwidth. On the PC side there might again be some USB/SPI
There is still another solution which consist in connecting the GPS to
the LPC through I2C. The drawback is polled communications with the
GPS, the advantage is that the serial port should be easy to use and
hardware-fifo-enabled on both the PC and the LPC.
I think that a challenge is going to be the choice of a software
interface with the paparazzi autopilot. There are still differences
between the rotorcraft and the fixed wing firmware.
If you need is navigation level commands, you can certainly use the
"datalink" interface and this should work on both firmwares.
If you need higher refresh rates than what the navigation layer can do
(is it 4hz in the fixed wing firmware?), you are going to need to
invent or adapt something. There has been a previous shy attempt on
the rotorcraft firmware, which has been only very partially
transferred to a module named "vehicle_interface". It only consist in
one implementation of that module that send test signals to different
levels of the control loops. There used to be another implementation
that did the same using datalink and that could be used for sending
the test signal from a program running on the ground station, like
from a joystick. This solution requires some design and some coding.
if you need a very high bandwidth, Lisa/L has a socket for an embedded
PC called Gumstix Overo that runs Linux. The link between the Linux
computer module and the cortexM3 (the cpu equivalent to the LPC on the
tiny) is SPI. The both processors have a hardware DMA making it
possible to obtain cpuload friendly, high bandwith and low latency
communications (in the range of megabits/microseconds?). This board
has been used in configurations where the complete autopilot runs on
the Overo and the CortexM3 is only used as an IO processor.
I've heard people in Delft have been doing image processing (with
opencv?) on the Overo. What kind of communications do you have with
the CortexM3 and what software interface are you using for that?
Hope this helps
On Sat, Dec 31, 2011 at 1:21 AM, Gayan Gamage <address@hidden> wrote:
> We want to test a sense and avoidance system using Paparazzi and the sensing
> system and avoidance maneuver calculation will be in an airborne PC. We got
> Tiny 13 v1.1 autopilots and was wondering what is the easiest interface to
> communicate with an airborne PC. I know that Tiny 13 v1.1 has two serial
> interfaces, one for GPS and the other for the data link and there is one USB
> port. Which port do you recommend. we can not use the serial ports since
> they are already used.
> Any comments??
> Gayan Gamage
> Paparazzi-devel mailing list