PDA

View Full Version : Question paparazzi PPRZ protocol


Stosser_es
Jul 01, 2009, 06:55 AM
Hi all,

I'm new in this UAV world, also is my first post in this forum.

Recently I found Paparazzi Center and I was wondering if is possible to send data possition, altitude and course manually to the application.
This is, I want to simulate as if the airborne sends all telemetry to the ground station, but having no plane and datalinks.

I thought about creating a C++ application, a crossover serial cable and a few USB-RS232 adapters, so I can send data trough one USB (as the airplane should do) and receive trough the other USB (simulating modem side).

The only problem I have is the protocol that paparazzi may accept, to check the airborne moves arround the map in the GCS screen.

Do anybody have any experence in this, or kows where to find any information about?

Thanks a lot!

Stosser_es

Buzz_Lightyear
Jul 01, 2009, 10:39 AM
Have you looked at using the simulation functionality built-in to the paparazzi GCS?

Stosser_es
Jul 02, 2009, 03:44 AM
Yes I saw and used this functionallity. I tested wp, new blocks and so on.
Bu now I would like to test sendign the possition by myself. Is one more step.

Looking arround internet I saw Paparazzi is using UBX protocol, bus im not sure if it also supports NMEA protocol and which sentences.

I'll try to make a C program wich implements a simple UBX protocol (from uBlox_Protocol_Specification.pdf (http://api.ning.com/files/dBaSFAINyzML564*5jKI645JHFs9xUXCdWptxCR9-fmYx8XS78R4JNbZuan4ClsBlvKdXbmjuQJFNXMT7l-892dL1Rt4AXBc/uBlox_Protocol_Specification.pdf)) to see if this works.

Any other idea/help?

Tnx.

Buzz_Lightyear
Jul 02, 2009, 06:00 AM
So if I understand you correctly, you want to simulate the infrared sensors (for attitude) and GPS (for position) data?

If this is the case, you will probably have to rewrite some code. Definitely doable. You would probably need a GPS-less unit (TWOG) and use that serial port to send your updates. Then change the airborne code to listen for those updates and inject the relevant data into the appropriate variables. Not a simple task, but wouldn't be too difficult I imagine.

Stosser_es
Jul 03, 2009, 02:37 AM
Yes, this is what I want to do, simulate in a first step GPS, and unce this is made IR sensors.

If I'm right, please tell mi if I'm not, GPS and telemetry from aircraft is sent to ground station trough a modem (datalink) wich is connected to laptop via USB or USB-RS232 converter.
Also, GPS is communicating with Paparazzi using UBX protocol, sending a NAV-POSLLH (0x01 0x02) -Geodetic Position Solution- sentence.

This is, as the protocol document says (p75 from the link I sent above):

GPS Milisecond Time of Week -iTOW- (in ms), Longitude (deg), Latitude (deg), Height above elipsoid (mm), Height above mean sea level (mm), Horizontal Accuracy Estimate (mm), Vertical Accuracy Estimate (mm)

And this should be sent as a standard string (28 bytes length).

This should mean I may be able to open 2 USB-RS232 converter from the same computer, connected with a crossover seral cable and send this data (fix string) throught one USB and receive in the other with Paparazzi simulating this is comming from the modem. This should not require any modification at Paparazzi side and no additional hardware.

Is this right? :confused:

Thank you Buzz_Lightyear!

Buzz_Lightyear
Jul 03, 2009, 06:55 AM
You should be able to do this. Implement the necessary UBX messages. Assuming you are simulating an LEA-5H, then yes, it will use the POS_LLH message. You will also need to add the correct flag in your airframe file. I'm not sure if any other UBX messages are sent, but you could look at the GPS configuration file under the wiki to make sure. All of this data would be sent to the GPS/Download serial port.

And yes, the modem then connects to the other serial port for telemetry.

Stosser_es
Jul 08, 2009, 09:01 AM
Thanks for all Buzz_Lightyear, I'll write here my improvements!

By the way, do any body have any exaple NAV-POSLLH messages?
I got some but I think they have the checksum wrong...

Stosser_es.