飛行派工作日誌《十二》

據知樹莓派的設計理念盡可能保持軟硬體之『相容性』︰

向下相容

向下相容(downward compatibility),又稱回溯相容(backward compatibility)、回溯相容,在電腦中指在一個程式硬體更新到較新版本後,用舊版本程式建立的文件或系統仍能被正常操作或使用(包括輸入資料)、在舊版本庫的基礎上開發的程式仍能正常編譯執行,或較舊版的硬體仍可在新版使用的情況。

Backward compatibility

Backward compatibility is a property of a system, product, or technology that allows for interoperability with an older legacy system, or with input designed for such a system, especially in telecommunications and computing. Backward compatibility is sometimes abbreviated to BC, or called downward compatibility.[1] Modifying a system in a way that does not allow backward compatibility is sometimes called “breaking” backward compatibility.[2] A complementary concept is forward compatibility, which is a design philosophy, usually based on open standards, that strives for methods that will continue to work with newer and future products. Design that is forward-compatible usually has a roadmap for compatibility with future standards and products.[3]

 

然則實務上,即使

Multi Camera Adapter Module for Raspberry Pi

 

就像個簡單 CSI 匯流排選擇器︰

Pin Configuration

DIP switches are used here for easy stack up configuration. When only one multi camera adapter board is used, the switches 1and 5 should be switched to ON position. If two multi camera adapter boards are used, the downside board should be switched 1 and 5 to ON and upside board should be switched 2 and 6 to ON position, and if 3 or 4 multi camera adapter boards are used together each board layer should be configured as the Table 1 shown.

Table 1 Pin Configuration

Operation

For proper operation, only one camera should be enabled at a time. In case of only one multi camera adapter board is used, driving Pin12 HIGH and driving Pin11 , Pin7 to LOW to enable camera A on the adapter board. Enable camera B, C and D, please refer the Table 2 for camera selection configuration. To disable all cameras on one adapter board, Enable 1 and Enable 2 signals should be toggled HIGH. Care should be taken that it is not allowed to drive the Enable 1 and Enable 2 LOW at the same time. When connecting more than two multi camera adapter boards, only one of the cameras can be enabled by enabling the desired camera on one adapter board, and disable all the cameras on the rest of adapter boards.

Table 2 Camera Selection Configuration

Camera Selection Configuration Selection Enable 1 Enable 2
A 0 0 1
B 1 0 1
C 0 1 0
D 1 1 0
No Camera X 1 1
Error X 0 0

(X: don’t care)

 

未實測難以決斷哩。

茲將兩個鏡頭接於 A 與 C 埠,一個終端機執行︰

pi@raspberrypi:~ $ python3
Python 3.4.2 (default, Oct 19 2014, 13:31:11) 
[GCC 4.9.1] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import RPi.GPIO as 出入
>>> 出入.setwarnings(False)
>>> 出入.setmode(出入.BOARD)

# stacking 1 Pin Configuration
>>> 出入.setup(7, 出入.OUT)
>>> 出入.setup(11, 出入.OUT)
>>> 出入.setup(12, 出入.OUT)

# [7,11,12]=[X,1,1] No Camera
>>> 出入.output(11, True)
>>> 出入.output(12, True)
>>> 
# Select Camera A, 執行 raspivid -d
>>> 出入.output(7, False)
>>> 出入.output(11, False)
>>> 出入.output(12, True)
>>> 
# Select Camera C, 執行 raspivid -d
>>> 出入.output(7, False)
>>> 出入.output(11, True)
>>> 出入.output(12, False)
>>>

 

另一終端機執行 raspivid -d ,樹莓派 3B 上 OK 也。

 

 

 

 

 

 

 

 

 

飛行派工作日誌《十一》

樹莓派上只有一個 CSI 界面,將要如何連接兩個鏡頭的呢?如果說不行,那麼怎樣日夜都能拍攝的耶??雖然發現

Multi Camera Adapter Module for Raspberry Pi

648_p_1466184857159

Introduction

Raspberry Pi multi camera adapter module is designed for connecting more than one camera to a single CSI camera port on Raspberry Pi board. One adapter board can connect 4 cameras and user can stack up maxim 4 adapter boards that means up to 16 cameras on a single Raspberry Pi board. Please note that Raspberry Pi multi camera adapter board is nascent product that may have some stability issues and limitations because of the cable’s signal integrity and RPi’s closed source video core libraries, so use it on your own risk.

Application

  • IoT cameras
  • Robot cameras
  • Wildlife cameras
  • 3D scanner

Features

  • Accommodate 4 Raspberry Pi cameras on an multi camera adapter board
  • Stackable and maxim cascade 4 adapter boards
  • 3 GPIOs required for multiplexing on one adapter board, 5 GPIOs for two adapter board, 9 GPIOs for four adapter board
  • All camera ports are FFC (flexible flat cable) connectors
  • DIP switches for easy stack up configuration
  • Support Raspberry Pi A/B/B+ and Pi 2.

 

還待驗證也!

 

 

 

 

 

 

 

 

飛行派工作日誌《十》

安裝軟體,使用 gps 接收器, Adafruit 已有很好的入門文件︰

247_g_1394856374665

 

若想自己寫應用程式,最好先知道 gpsd 的來歷︰

gpsda GPS service daemon

About gpsd

gpsd is a service daemon that monitors one or more GPSes or AIS receivers attached to a host computer through serial or USB ports, making all data on the location/course/velocity of the sensors available to be queried on TCP port 2947 of the host computer.

With gpsd, multiple location-aware client applications can share access to supported sensors without contention or loss of data. Also, gpsd responds to queries with a format that is substantially easier to parse than the NMEA 0183 emitted by most GPSes. The gpsd distribution includes a linkable C service library, a C++ wrapper class, and a Python module that developers of gpsd-aware applications can use to encapsulate all communication with gpsd. Third-party client bindings for Java and Perl also exist.

Besides gpsd itself, the project provides auxiliary tools for diagnostic monitoring and profiling of receivers and feeding location-aware applications GPS/AIS logs for diagnostic purposes.

GPSD is everywhere in mobile embedded systems. It underlies the map service on Android phones. It’s ubiquitous in drones, robot submarines, and driverless cars. It’s increasingly common in recent generations of manned aircraft, marine navigation systems, and military vehicles.

Applications that presently use gpsd include pyGPS, Kismet, GpsDrive, gpeGPS, roadmap, roadnav, navit, viking, tangogps, foxtrot, obdgpslogger, geohist, LiveGPS, geoclue, qlandkartegt, gpredict, OpenCPN, gpsd-navigator, gpsd-ais-viewer, and firefox/mozilla. In addition, the Android smartphone operating system (from version 4.0 onwards and possibly earlier; we don’t know for sure when the change happened) uses GPSD to monitor the phone’s on-board GPS, so every location-aware Android app is indirectly a GPSD client.

GPSD is also extremely widely deployed in mobile embedded systems: it’s a basic building block for navigation used by UAVs, robot submarines, and driverless cars as well as more conventional applications like marine navigation and military IFF systems.

Under Linux, gpsd normally runs with zero configuration. Binary packages for this program install hotplug scripts that do the right thing when a USB device goes active, launching gpsd if needed and telling gpsd which device to read data from. Then, gpsd deduces a baud rate and GPS/AIS type by looking at the data stream.

gpsd is high-quality, carefully-audited code; see our notes on reliability engineering. In January 2010, the GPSD project won the first Good Code Grant from the Alliance for Code Excellence.

Statistics about the code volume, commit history, and contributors associated with this project are available at OpenHUB

Our development platforms are open-source Unixes — Linux, and the *BSD family. Presently Linux, OpenBSD and NetBSD are directly supported. The code is also extremely widely deployed on Android phones. We’ll support proprietary Unixes if it’s not too much work (and it usually isn’t). Apple’s OS X is supported in a limited fashion. Some older OS X drivers are buggy and prevent gpsd from being able to read from some USB-serial devices. No, we don’t support Windows — get a better operating system.

If you represent a GPS manufacturer interested in qualifying your device for use with Linux and other open-source operating systems, we are your contact point. We’ll need (1) on-line access to interface documentation, (2) a few (as in, no more than three) eval units, and (3) an engineering contact at your firm. For more, see our page welcoming vendor cooperation.

There are simple installation instructions for people running distributions with binary package systems. See the FAQ for information on how to report bugs.

If you appreciate GPSD, and especially if you make money from it, please leace a remittance at Patreon.

News

This web page was last updated on Fri Sep 2 12:26:05 2016. You can browse the project’s news file or to-do list here. Note: because of the way this website is maintained, these files may reflect the state of the repository tip (development version) rather than the latest released stable version.

 

看一看

 

派生 Python 愛好者,或需讀一讀 gps.py 原始碼哩︰

 

 

 

 

 

 

 

飛行派工作日誌《九》

假使宇宙完全符合牛頓力學,有個一致的『時間流』。那麼只要將所有 GPS 衛星與接收器都能『時間同步』,『定位問題』就是藉由接收到的『時間和位置』訊息,求解三條『歐式距離』方程式罷了 。然而由於很難作到衛星與接收器『時間同步』── 原子鐘太昂貴 ──,所以至少需要四顆衛星才能『定位』的哩︰

Problem description

The receiver uses messages received from satellites to determine the satellite positions and time sent. The x, y, and z components of satellite position and the time sent are designated as [xi, yi, zi, si] where the subscript i denotes the satellite and has the value 1, 2, …, n, where n ≥ 4. When the time of message reception indicated by the on-board receiver clock is i, the true reception time is ti = ib, where b is the receiver’s clock bias from the much more accurate GPS system clocks employed by the satellites. The receiver clock bias is the same for all received satellite signals (assuming the satellite clocks are all perfectly synchronized). The message’s transit time is ibsi, where si is the satellite time. Assuming the message traveled at the speed of light, c, the distance traveled is (ibsi) c.

For n satellites, the equations to satisfy are:

(x-x_{i})^{2}+(y-y_{i})^{2}+(z-z_{i})^{2}={\bigl (}[{\tilde {t}}_{i}-b-s_{i}]c{\bigr )}^{2},\;i=1,2,\dots ,n

or in terms of pseudoranges,  p_{i}=\left({\tilde {t}}_{i}-s_{i}\right)c, as

{\sqrt {(x-x_{i})^{2}+(y-y_{i})^{2}+(z-z_{i})^{2}}}+bc=p_{i},\;i=1,2,...,n .[110][111]

Since the equations have four unknowns [x, y, z, b]—the three components of GPS receiver position and the clock bias—signals from at least four satellites are necessary to attempt solving these equations. They can be solved by algebraic or numerical methods. Existence and uniqueness of GPS solutions are discussed by Abell and Chaffee.[57] When n is greater than 4 this system is overdetermined and a fitting method must be used.

With each combination of satellites, GDOP quantities can be calculated based on the relative sky directions of the satellites used.[112] The receiver location is expressed in a specific coordinate system, such as latitude and longitude using the WGS 84 geodetic datum or a country-specific system.[113]

Geometric interpretation

The GPS equations can be solved by numerical and analytical methods. Geometrical interpretations can enhance the understanding of these solution methods.

Spheres

The measured ranges, called pseudoranges, contain clock errors. In a simplified idealization in which the ranges are synchronized, these true ranges represent the radii of spheres, each centered on one of the transmitting satellites. The solution for the position of the receiver is then at the intersection of the surfaces of three of these spheres.[114] If more than the minimum number of ranges is available, a near intersection of more than three sphere surfaces could be found via, e.g. least squares.

Hyperboloids

If the distance traveled between the receiver and satellite i and the distance traveled between the receiver and satellite j are subtracted, the result is (isi) c − (jsj) c, which only involves known or measured quantities. The locus of points having a constant difference in distance to two points (here, two satellites) is a hyperboloid (see Multilateration). Thus, from four or more measured reception times, the receiver can be placed at the intersection of the surfaces of three or more hyperboloids.[57][58]

Spherical cones

The solution space [x, y, z, b] can be seen as a four-dimensional geometric space. In that case each of the equations describes a spherical cone,[115] with the cusp located at the satellite, and the base a sphere around the satellite. The receiver is at the intersection of four or more of such cones.

Solution methods

Least squares

When more than four satellites are available, the calculation can use the four best, or more than four simultaneously (up to all visible satellites), depending on the number of receiver channels, processing capability, and geometric dilution of precision (GDOP).

Using more than four involves an over-determined system of equations with no unique solution; such a system can be solved by a least-squares or weighted least squares method.[110]

\left({\hat {x}},{\hat {y}},{\hat {z}},{\hat {b}}\right)={\underset {\left(x,y,z,b\right)}{\arg \min }}\sum _{i}\left({\sqrt {(x-x_{i})^{2}+(y-y_{i})^{2}+(z-z_{i})^{2}}}+bc-p_{i}\right)^{2}

Iterative

Both the equations for four satellites, or the least squares equations for more than four, are non-linear and need special solution methods. A common approach is by iteration on a linearized form of the equations, such as the Gauss–Newton algorithm.

The GPS system was initially developed assuming use of a numerical least-squares solution method—i.e., before closed-form solutions were found.

Closed-form

One closed-form solution to the above set of equations was developed by S. Bancroft.[111][116] Its properties are well known;[57][58][117] in particular, proponents claim it is superior in low-GDOP situations, compared to iterative least squares methods.[116]

Bancroft’s method is algebraic, as opposed to numerical, and can be used for four or more satellites. When four satellites are used, the key steps are inversion of a 4×4 matrix and solution of a single-variable quadratic equation. Bancroft’s method provides one or two solutions for the unknown quantities. When there are two (usually the case), only one is a near-Earth sensible solution.[111]

When a receiver uses more than four satellites for a solution, Bancroft uses the generalized inverse (i.e., the pseudoinverse) to find a solution. However, a case has been made that iterative methods (e.g., Gauss–Newton algorithm) for solving over-determined non-linear least squares (NLLS) problems generally provide more accurate solutions.[118]

Leick et al. (2015) states that “Bancroft’s (1985) solution is a very early, if not the first, closed-form solution.”[119] Other closed-form solutions were published afterwards,[120][121] although their adoption in practice is unclear.

 

因為每顆衛星都用『相同頻率』作廣播,加上『相對運動』產生之『都卜勒效應』,所以每顆衛星皆用『唯一』的 PRN 碼︰

GPS信號擷取

簡介

GPS 信號擷取的目的在於獲知所得到的衛星為何,若是有某顆衛星資訊是可得知的,則必須取得此信號的兩個性質:

  • 頻率

從規格可以得知 L1 的頻率為1575.42 Mhz,L2的頻率為1227.60 MHz,之後的討論皆以L1做討論,L1 的信號經過一連串的處理之後,頻段 IF=9.548 MHz,從特定衛星得到的頻率並不一定是如規格所給予,而是因為有相對運動的關係,在頻率上產生都卜勒效應,因為衛星的移動,假設 GPS 接收機靜止接收 GPS 信號,都卜勒效應所影響的範圍大約為 5 kHz,如果 GPS 接收機也處於高速移動的狀態下,都卜勒效應所影響的頻率可能會到達 10 kHz。

  • 碼相位

碼相位代表C/A 碼開始的正確資料區塊

目前來說,做 GPS 信號擷取的方法都是根據 GPS 信號的特質來做處理,衛星信號是由 32 個不同的偽隨機雜訊(Pseudorandom Noise,PRN)序列區隔,而上述所說的特質就是指這些偽隨機雜訊序列的彼此之間的幾乎沒有互相關,只有自己本身和自己只有在沒有延遲的情況下,自相關函數才會有極值。假設接收到的信號  \mathit{s}是由  {\mathit {n}}個可得知的衛星信號組合而成。 s(t)=s^1(t)+s^2(t)+...+s^n(t)

會運用接收機本身的偽隨機雜訊序列產生器產生 k 衛星的偽隨機雜訊序列,再透過改變碼相位和振盪器所產生的載波頻率不同,來與接收到的信號做處理比對,而這幾種方法分別為:

  • 直接搜尋(Serial Search)
  • 平行頻率空間搜尋(Parrallel Frequency Space Search)
  • 平行碼相位搜尋(Parrallel Code Phase Search)

 

這指出『快速定位』和『處理渠道』 channel 之關係也︰

How many GPS channels make sense?

The answer is complex due to the way the GPS system operates, so I’m going to simplify a number of things so you understand the principle, but if you are interested in how it’s really implemented you’ll need to go find a good GPS reference. In other words, what’s written below is meant to give you an idea of how it works, but is technically wrong in some ways. The below is not correct enough to implement your own GPS software.

Background

All the satellites transmit on essentially the same frequency. They are technically walking all over each others’ signals.

So how does the GPS receiver deal with this?

First, each satellite transmits a different message every mS. The message is 1024 bits long, and is generated by a pseudo random number generator.

The GPS receiver receives the entire spectrum of all the transmitters, then it performs a process called correlation – it generates the specific sequence of one of the satellites, multiplies it by the signal input, and if its signal matches a satellite’s signal exactly then the correlator has found one satellite. The mixing essentially pulls the satellite’s signal out of the noise, and verified that 1) we have the right sequence and 2) we have the right timing.

However, if it hasn’t found a match, it has to shift its signal by one bit and try again, until it’s gone through all 1023 bit periods and hasn’t found a satellite. Then it moves on to trying to detect a different satellite at a different period.

Due to the time shifting (1023 bits, 1,000 transmissions per second), in theory it can completely search a code in one second to find (or determine there’s nothing) at a particular code.

Due to the code shifting (there are currently 32 different PRN codes, one each for each satellite) it can therefore take 30+ seconds to search each satellite.

Further, doppler shift due to the speed of the satellite relative to your ground speed, means that the timebase could be shifted by as much as +/- 10kHz, therefore requiring searching about 40 different frequency shifts for a correlator before it can give up on a particular PRN and timing.

What this means

This leaves us with a possible worst case scenario (one satellite in the air, and we try everything but the exact match first) of a time to first fix off a cold start (ie, no information about the time or location of the receiver, or location of the satellites) of 32 seconds, assuming we don’t make any assumptions, or perform any clever tricks, the received signal is good, etc.

However, if you have two correlators, you’ve just halved that time because you can search for two satellites at once. Get 12 correlators on the job and it takes less than a few seconds. Get a million correlators and in theory it can take a few milliseconds.

Each correlator is called a “channel” for the sake of marketing. It’s not wholly wrong – in a sense, the correlator is demodulating one particular coded frequency at a time, which is essentially what a radio receiver does when you switch channels.

There are a lot of assumptions a GPS receiver can make, though, that simplify the problem space such that a generic 12 channel receiver can get a fix, in the worst case, in about 1-3 minutes.

While you can get a 3D fix with a 4 channel GPS, when you lose a GPS signal (goes beyond the horizon, or you go under a bridge, etc) then you lose 3D fix and go to 2D fix with three satellites while one of your channels goes back into correlation mode.

Now your receiver starts to downloaded the ephemeris and almanac, which allows the receiver to very intelligently search for signals. After 12 minutes or so it knows exactly which satellites should be in view.

So the search goes pretty quickly because you know the position and code for each satellite, but you still only have a 2D fix until you actually find a new satellite.

If you have a 12 channel receiver, though, you can use 4 of the strongest channels to provide your fix, a few channels to lock onto backup satellites so it can switch the calculations to them if needed, and several channels to keep searching for satellites the receiver should be able to see. In this way you never lose the full 3D fix.

Since you can only see up to 12 satellites, why would you need more than 12 channels?

There are 24 or so GPS satellites operating at any given time, which means that on one point on the earth you can really only see half of them.

But remember – you can only search for one satellite per correlator, so the primary reason to increase correlators past twelve is to improve the time to first fix, and the main reason to improve that is for power consumption.

If your GPS chipset has to be powered all the time, it’s a 100mW power drain all the time. If, however, you only need to turn it on once per second for only 10mS each time, then you just cut your power consumption down to 1mW. This means your cell phone, location beacon, etc can operate for two orders of magnitude longer time on the same set of batteries while still maintaining a full real time fix on their location.

Further, with millions of correlators, one can do more exact searches which can help reduce the effects of radio reflections in urban canyons (tall buildings in big cities used to foul up GPS receivers with fewer correlators).

Lastly, while only 4 satellites are needed to get a 3D fix, good receivers use more satellites in its position algorithm to get a more accurate fix. So only a 4 channel receiver is required, but a 12 channel receiver can get more accuracy.

Conclusion

So the millions of correlators:

  • Speeds up satellite acquisition
  • Reduces power consumption
  • Reduces likelihood of losing a 3D fix even in urban canyons
  • Provide better sensitivity, allowing fixes in dense forests, and even in some tunnels
  • Provides better positioning accuracy

 

 

 

 

 

 

 

 

 

飛行派工作日誌《八》

選擇一個應用系統的部件,假使只靠一句市場『行話』

66 channel GPS

,恐怕不靠譜的吧??

如果真是專業『術語』,就得了解其中之『眉角』的了!!

Adafruit Ultimate GPS Breakout – 66 channel w/10 Hz updates – Version 3

247_g_1394856374665

Description

New! Version 3 comes with the latest module which has external antenna support and Pulse-Per-Second outputWe carry a few different GPS modules here in the Adafruit shop, but none that satisfied our every desire – that’s why we designed this little GPS breakout board. We believe this is the Ultimate GPS module, so we named it that. It’s got everything you want and more:

  • -165 dBm sensitivity, 10 Hz updates, 66 channels
  • 5V friendly design and only 20mA current draw
  • Breadboard friendly + two mounting holes
  • RTC battery-compatible
  • Built-in datalogging
  • PPS output on fix
  • Internal patch antenna + u.FL connector for external active antenna
  • Fix status LED

…all for under $40!

The breakout is built around the MTK3339 chipset, a no-nonsense, high-quality GPS module that can track up to 22 satellites on 66 channels, has an excellent high-sensitivity receiver (-165 dB tracking!), and a built in antenna. It can do up to 10 location updates a second for high speed, high sensitivity logging or tracking. Power usage is incredibly low, only 20 mA during navigation.

 

知道『全球定位系統

Global Positioning System

The Global Positioning System (GPS), also known as Navstar GPS[1][2][3] or simply Navstar,[4] is a global navigation satellite system (GNSS) that provides geolocation and time information to a GPS receiver in all weather conditions, anywhere on or near the Earth where there is an unobstructed line of sight to four or more GPS satellites.[5] The GPS system operates independently of any telephonic or internet reception, though these technologies can enhance the usefulness of the GPS positioning information. The GPS system provides critical positioning capabilities to military, civil, and commercial users around the world. The United States government created the system, maintains it, and makes it freely accessible to anyone with a GPS receiver. However, the US government can selectively deny access to the system, as happened to the Indian military in 1999 during the Kargil War.[6]

The GPS project was launched in the United States in 1973 to overcome the limitations of previous navigation systems,[7] integrating ideas from several predecessors, including a number of classified engineering design studies from the 1960s. The U.S. Department of Defense (DoD) developed the system, which originally used 24 satellites. It became fully operational in 1995. Roger L. Easton, Ivan A. Getting and Bradford Parkinson of the Applied Physics Laboratory are credited with inventing it.[8]

Advances in technology and new demands on the existing system have now led to efforts to modernize the GPS and implement the next generation of GPS Block IIIA satellites and Next Generation Operational Control System (OCX).[9] Announcements from Vice President Al Gore and the White House in 1998 initiated these changes. In 2000, the U.S. Congress authorized the modernization effort, GPS III.

In addition to GPS, other systems are in use or under development, mainly because of a potential denial of access and potential monitoring by the US government. The Russian Global Navigation Satellite System (GLONASS) was developed contemporaneously with GPS, but suffered from incomplete coverage of the globe until the mid-2000s.[10] GLONASS can be added to GPS devices which makes more satellites available and enabling positions to be fixed more quickly and accurately, to within 2 meters [11] There are also the planned European Union Galileo positioning system, China’s BeiDou Navigation Satellite System, the Japanese Quasi-Zenith Satellite System, and India’s Indian Regional Navigation Satellite System (NAVIC).

gps24goldensml

A visual example of a 24 satellite GPS constellation in motion with the earth rotating. Notice how the number of satellites in view from a given point on the earth’s surface, in this example in Golden CO (39.7469° N, 105.2108° W), changes with time.

 

之『字典意義』並不困難。若想深入『理論與實務』,還是上堂 Eric Calais  教授之『 GPS 大地測量』課比較好的也☆

GPS Geodesy

mongolia gps

In the late 90’s, space-based geodetic techniques such as the Global Positioning  System (GPS) reached a level where millimeter-level positioning became achievable globally. In geophysics, GPS measurements have been widely used over the  past decade to monitor crustal displacements, with precision levels on the  order of a few mm/yr now routinely achieved.

In addition to science applications, GPS has become an essential part of the infrastructure of today’s society and represents a significant commercial and job market. Application range from surveying, navigation, transportation, GIS, to geophysics. GPS is now one of several positioning systems grouped under the “Global Navigation Satellite System” (GNSS).

This course will provide a fundamental understanding of the theory and practice of GNSS, with an emphasis on high-precision applications using GPS. Other space geodetic techniques (VLBI, SLR, DORIS) will be mentioned and reference frame issues will be addressed.

The labs will provide hands-on experience in field and data processing techniques, including programming a simple GPS data processing software  and learning to use a high-end research software (GAMIT). Prerequisites are working knowledge of Matlab (or fluency in a programming language such as C or Fortran), and a course in linear algebra.

Lectures