OSURoboticsClub / aerial_control

Aerial vehicle firmware
MIT License
2 stars 4 forks source link

Implement GPS drivers #7

Closed kylc closed 9 years ago

kylc commented 10 years ago

The drivers will likely be for this sensor: http://store.3drobotics.com/products/3dr-gps-ublox-with-compass. The datasheet is available here: http://www.u-blox.com/images/downloads/Product_Docs/LEA-6_ProductSummary_%28GPS.G6-HW-09002%29.pdf.

kylc commented 9 years ago

We now have a u-blox NEO-7M GPS sensor.

kylc commented 9 years ago

@yoos can you post some serial data from the u-blox so I can start on a parser?

yoos commented 9 years ago
$GPRMC,162212.00,A,4435.34593,N,12318.16006,W,0.943,,070215,,,D*6A
$GPVTG,,T,,M,0.943,N,1.746,K,D*2C
$GPGGA,162212.00,4435.34593,N,12318.16006,W,2,08,1.10,136.0,M,-22.6,M,,0000*68
$GPGSA,A,3,18,22,27,21,48,19,14,24,,,,,2.19,1.10,1.89*00
$GPGSV,4,1,13,04,04,299,,14,31,183,21,15,22,046,,16,05,243,*73
$GPGSV,4,2,13,18,67,053,21,19,36,306,17,21,47,114,24,22,70,271,23*7E
$GPGSV,4,3,13,24,15,089,10,27,53,270,20,46,30,147,,48,38,194,31*70
$GPGSV,4,4,13,51,36,158,*46
$GPGLL,4435.34593,N,12318.16006,W,162212.00,A,D*7C
$GPRMC,162213.00,A,4435.34655,N,12318.16003,W,0.659,,070215,,,D*63
$GPVTG,,T,,M,0.659,N,1.220,K,D*2D
$GPGGA,162213.00,4435.34655,N,12318.16003,W,2,08,1.10,133.2,M,-22.6,M,,0000*62
$GPGSA,A,3,18,22,27,21,48,19,14,24,,,,,2.19,1.10,1.89*00
$GPGSV,4,1,13,04,04,299,,14,31,183,21,15,22,046,,16,05,243,*73
$GPGSV,4,2,13,18,67,053,21,19,36,306,17,21,47,114,22,22,70,271,22*79
$GPGSV,4,3,13,24,15,089,10,27,53,270,19,46,30,147,,48,38,194,31*7A
$GPGSV,4,4,13,51,36,158,*46
$GPGLL,4435.34655,N,12318.16003,W,162213.00,A,D*71
$GPRMC,162214.00,A,4435.34753,N,12318.16019,W,1.338,,070215,,,D*6B
$GPVTG,,T,,M,1.338,N,2.477,K,D*29
$GPGGA,162214.00,4435.34753,N,12318.16019,W,2,08,1.10,129.6,M,-22.6,M,,0000*66
$GPGSA,A,3,18,22,27,21,48,19,14,24,,,,,2.19,1.10,1.89*00
$GPGSV,4,1,13,04,04,299,,14,31,183,22,15,22,046,,16,05,243,*70
$GPGSV,4,2,13,18,67,053,21,19,36,306,17,21,47,114,21,22,70,271,21*79
$GPGSV,4,3,13,24,15,089,10,27,53,270,18,46,30,147,,48,38,194,30*7A
$GPGSV,4,4,13,51,36,158,*46
$GPGLL,4435.34753,N,12318.16019,W,162214.00,A,D*7A
$GPRMC,162215.00,A,4435.34787,N,12318.16061,W,1.313,,070215,,,D*65
$GPVTG,,T,,M,1.313,N,2.431,K,D*22
$GPGGA,162215.00,4435.34787,N,12318.16061,W,2,07,1.42,128.5,M,-22.6,M,,0000*6B
$GPGSA,A,3,18,22,27,21,48,19,14,,,,,,3.38,1.42,3.06*06
$GPGSV,4,1,13,04,04,299,,14,31,183,22,15,22,046,,16,05,243,*70
$GPGSV,4,2,13,18,67,053,22,19,36,306,17,21,47,114,20,22,70,271,21*7B
$GPGSV,4,3,13,24,15,089,,27,53,270,17,46,30,147,,48,38,194,30*74
$GPGSV,4,4,13,51,36,158,*46
$GPGLL,4435.34787,N,12318.16061,W,162215.00,A,D*7D
$GPRMC,162216.00,A,4435.34815,N,12318.16082,W,1.109,,070215,,,D*66
$GPVTG,,T,,M,1.109,N,2.054,K,D*2C
$GPGGA,162216.00,4435.34815,N,12318.16082,W,2,07,1.42,127.2,M,-22.6,M,,0000*69
$GPGSA,A,3,18,22,27,21,48,19,14,,,,,,3.38,1.42,3.06*06
$GPGSV,4,1,13,04,04,299,,14,31,183,23,15,22,046,,16,05,243,*71
$GPGSV,4,2,13,18,67,053,22,19,36,306,12,21,47,114,20,22,70,271,22*7D
$GPGSV,4,3,13,24,15,089,,27,53,270,17,46,30,147,,48,38,194,31*75
$GPGSV,4,4,13,51,36,158,*46
$GPGLL,4435.34815,N,12318.16082,W,162216.00,A,D*77
$GPRMC,162217.00,A,4435.34870,N,12318.16118,W,1.362,,070215,,,D*69
$GPVTG,,T,,M,1.362,N,2.523,K,D*26
$GPGGA,162217.00,4435.34870,N,12318.16118,W,2,07,1.42,125.0,M,-22.6,M,,0000*69
$GPGSA,A,3,18,22,27,21,48,19,14,,,,,,3.38,1.42,3.06*06
$GPGSV,4,1,13,04,04,299,,14,31,183,23,15,22,046,,16,05,243,*71
$GPGSV,4,2,13,18,67,053,21,19,36,306,12,21,47,114,20,22,70,271,22*7E
$GPGSV,4,3,13,24,15,089,,27,53,270,15,46,30,147,,48,38,194,30*76
$GPGSV,4,4,13,51,36,158,*46
$GPGLL,4435.34870,N,12318.16118,W,162217.00,A,D*77
$GPRMC,162218.00,A,4435.34913,N,12318.16166,W,1.445,,070215,,,D*69
$GPVTG,,T,,M,1.445,N,2.676,K,D*27
$GPGGA,162218.00,4435.34913,N,12318.16166,W,2,07,1.42,123.1,M,-22.6,M,,0000*6C
$GPGSA,A,3,18,22,27,21,48,19,14,,,,,,3.38,1.42,3.07*07
$GPGSV,4,1,13,04,04,299,,14,31,183,24,15,22,046,,16,05,243,*76
$GPGSV,4,2,13,18,67,053,21,19,36,306,12,21,47,114,19,22,70,271,21*77
$GPGSV,4,3,13,24,15,089,,27,53,270,13,46,30,147,,48,38,194,30*70
$GPGSV,4,4,13,51,36,158,*46
$GPGLL,4435.34913,N,12318.16166,W,162218.00,A,D*75
$GPRMC,162219.00,A,4435.34995,N,12318.16196,W,1.785,,070215,,,D*66
$GPVTG,,T,,M,1.785,N,3.306,K,D*2B
$GPGGA,162219.00,4435.34995,N,12318.16196,W,2,07,1.42,120.4,M,-22.6,M,,0000*6A
$GPGSA,A,3,18,22,27,21,48,19,14,,,,,,3.38,1.42,3.07*07
$GPGSV,4,1,13,04,04,299,,14,31,183,24,15,22,046,,16,05,243,*76
$GPGSV,4,2,13,18,67,053,21,19,36,306,12,21,47,114,19,22,70,271,21*77
$GPGSV,4,3,13,24,15,089,,27,53,270,14,46,30,147,,48,38,194,30*77
$GPGSV,4,4,13,51,36,158,*46
$GPGLL,4435.34995,N,12318.16196,W,162219.00,A,D*75
$GPRMC,162220.00,A,4435.35094,N,12318.16260,W,2.225,,070215,,,D*63
$GPVTG,,T,,M,2.225,N,4.120,K,D*26
$GPGGA,162220.00,4435.35094,N,12318.16260,W,2,07,1.42,116.9,M,-22.6,M,,0000*6B
$GPGSA,A,3,18,22,27,21,48,19,14,,,,,,3.38,1.42,3.07*07
$GPGSV,4,1,13,04,04,299,,14,31,183,24,15,22,046,,16,05,243,*76
$GPGSV,4,2,13,18,67,053,20,19,36,306,12,21,47,114,20,22,70,271,22*7F
$GPGSV,4,3,13,24,15,089,,27,53,270,15,46,30,147,,48,38,194,30*76
$GPGSV,4,4,13,51,36,158,*46
$GPGLL,4435.35094,N,12318.16260,W,162220.00,A,D*7C
$GPRMC,162221.00,A,4435.35167,N,12318.16231,W,2.030,,070215,,,D*6D
$GPVTG,,T,,M,2.030,N,3.760,K,D*25
$GPGGA,162221.00,4435.35167,N,12318.16231,W,2,07,1.42,114.0,M,-22.6,M,,0000*68
$GPGSA,A,3,18,22,27,21,48,19,14,,,,,,3.38,1.42,3.07*07
$GPGSV,4,1,13,04,04,299,,14,31,183,24,15,22,046,,16,05,243,*76
$GPGSV,4,2,13,18,67,053,21,19,36,306,12,21,47,114,20,22,70,271,22*7E
$GPGSV,4,3,13,24,15,089,,27,53,270,16,46,30,147,,48,38,194,30*75
$GPGSV,4,4,13,51,36,158,*46
$GPGLL,4435.35167,N,12318.16231,W,162221.00,A,D*74
yoos commented 9 years ago

Any USARTDevice should check number of bytes available on buffer and read exactly that much to our own buffer. Tokenization will be performed by a device-specific parser (in the case of this GPS driver, line-by-line).

kylc commented 9 years ago

Looking at this now.

yoos commented 9 years ago

Need to be able to either configure it for 10Hz output or disable the default sentences and poll that fast. UKHAS has a little guide here for the UBlox 6 series.

yoos commented 9 years ago

The u-center software from UBlox is very useful for configuring our GPS units persistently. After working with these units for a while on rockets, I'm fairly certain the driver outputs accurate lat/lon coordinates with only GLL and GSV messages enabled.