1
0
mirror of https://github.com/gnss-sdr/gnss-sdr synced 2024-11-09 03:20:01 +00:00

Update links to the new website

This commit is contained in:
Carles Fernandez 2016-09-23 14:24:19 +02:00
parent 09a7eab397
commit c8a09834ac

View File

@ -11,7 +11,7 @@ If you have questions about GNSS-SDR, please [subscribe to the gnss-sdr-develope
# How to build GNSS-SDR
This section describes how to set up the compilation environment in GNU/Linux or [Mac OS X](#macosx), and to build GNSS-SDR. See also [our Building Guide](http://gnss-sdr.org/documentation/building-guide "GNSS-SDR's Building Guide").
This section describes how to set up the compilation environment in GNU/Linux or [macOS / Mac OS X](#macosx), and to build GNSS-SDR. See also our [build and install page](http://gnss-sdr.org/build-and-install/ "GNSS-SDR's Build and Install").
GNU/Linux
@ -25,6 +25,13 @@ GNU/Linux
* armel: ARM embedded ABI, supported on ARM v4t and higher.
* armhf: ARM hard float, ARMv7 + VFP3-D16 floating-point hardware extension + Thumb-2 instruction set and above.
* arm64: ARM 64 bits or ARMv8.
* mips: MIPS architecture (big-endian, such as those manufactured by SGI).
* mipsel: MIPS architecture (little-endian, such as Loongson 3).
* mips64el: 64-bit version of MIPS architecture.
* powerpc: the RISC 32-bit microprocessor architecture developed by IBM, Motorola (now Freescale) and Apple.
* ppc64: 64-bit big-endian PowerPC architecture.
* ppc64el: 64-bit little-endian PowerPC architecture.
* s390x: IBM System z architecture for mainframe computers.
Older distribution releases might work as well, but you will need GCC 4.7 or newer.
@ -121,9 +128,9 @@ or manually as explained below, and then please follow instructions on how to [d
$ sudo apt-get install libopenblas-dev liblapack-dev # For Debian/Ubuntu/LinuxMint
$ sudo yum install lapack-devel blas-devel # For Fedora/CentOS/RHEL
$ sudo zypper install lapack-devel blas-devel # For OpenSUSE
$ wget http://sourceforge.net/projects/arma/files/armadillo-7.200.2.tar.xz
$ tar xvfz armadillo-7.200.2.tar.xz
$ cd armadillo-7.200.2
$ wget http://sourceforge.net/projects/arma/files/armadillo-7.400.1.tar.xz
$ tar xvfz armadillo-7.400.1.tar.xz
$ cd armadillo-7.400.1
$ cmake .
$ make
$ sudo make install
@ -222,7 +229,7 @@ By default, you will be in the 'master' branch of the Git repository, which corr
$ git checkout next
~~~~~~
More information about GNSS-SDR-specific Git usage and pointers to further readings can be found at out guide about [how to contribute to the source code](http://gnss-sdr.org/documentation/how-contribute-source-code "How to contribute to the source code").
More information about GNSS-SDR-specific Git usage and pointers to further readings can be found at our [Git tutorial](http://gnss-sdr.org/docs/tutorials/using-git/ "Using Git").
### Build and install GNSS-SDR
@ -307,7 +314,7 @@ $ sudo make install
$ sudo ldconfig
~~~~~~
Then configure GNSS-SDR to build the GN3S_Signal_Source by:
Then configure GNSS-SDR to build the `GN3S_Signal_Source` by:
~~~~~~
$ cd gnss-sdr/build
@ -319,7 +326,7 @@ $ sudo make install
In order to gain access to USB ports, gnss-sdr should be used as root. In addition, the driver requires access to the GN3S firmware binary file. It should be available in the same path where the application is called.
GNSS-SDR comes with a pre-compiled custom GN3S firmware available at gr-gn3s/firmware/GN3S_v2/bin/gn3s_firmware.ihx. Please copy this file to the application path.
(in order to disable the GN3S_Signal_Source compilation, you can pass -DENABLE_GN3S=OFF to cmake and build GNSS-SDR again).
(in order to disable the `GN3S_Signal_Source` compilation, you can pass `-DENABLE_GN3S=OFF` to cmake and build GNSS-SDR again).
More info at https://github.com/gnss-sdr/gr-gn3s
@ -350,7 +357,7 @@ $ sudo ldconfig
~~~~~~
Then, configure GNSS-SDR to build the Osmosdr_Signal_Source by:
Then, configure GNSS-SDR to build the `Osmosdr_Signal_Source` by:
~~~~~~
$ cmake -DENABLE_OSMOSDR=ON ../
@ -358,7 +365,7 @@ $ make
$ sudo make install
~~~~~~
(in order to disable the Osmosdr_Signal_Source compilation, you can pass -DENABLE_OSMOSDR=OFF to cmake and build GNSS-SDR again).
(in order to disable the `Osmosdr_Signal_Source` compilation, you can pass `DENABLE_OSMOSDR=OFF` to cmake and build GNSS-SDR again).
@ -400,11 +407,11 @@ Using this option, all SIMD instructions are exclusively accessed via VOLK, whic
<a name="macosx">Mac OS X</a>
<a name="macosx">macOS and Mac OS X</a>
---------
### Mac OS X 10.9 (Mavericks), 10.10 (Yosemite) and 10.11 (El Capitan)
### macOS Sierra, Mac OS X 10.11 (El Capitan), 10.10 (Yosemite) and 10.9 (Mavericks).
If you still have not installed [Xcode](http://developer.apple.com/xcode/ "Xcode"), do it now from the App Store (it's free). You will also need the Xcode Command Line Tools. Launch the Terminal, found in /Applications/Utilities/, and type:
@ -496,7 +503,7 @@ GNSS-SDR comes with a library which is a module of the Vector-Optimized Library
###### Other package managers
GNU Radio and other dependencies can also be installed using other package managers than Macports, such as [Fink](http://www.finkproject.org/ "Fink") or [Homebrew](http://brew.sh/ "Homebrew"). Since the version of Python that ships with OS X is great for learning but it is not good for development, you could have another Python executable in a non-standard location. If that is the case, you need to inform GNSS-SDR's configuration system by defining the PYTHON_EXECUTABLE variable as:
GNU Radio and other dependencies can also be installed using other package managers than Macports, such as [Fink](http://www.finkproject.org/ "Fink") or [Homebrew](http://brew.sh/ "Homebrew"). Since the version of Python that ships with OS X is great for learning but it is not good for development, you could have another Python executable in a non-standard location. If that is the case, you need to inform GNSS-SDR's configuration system by defining the `PYTHON_EXECUTABLE` variable as:
~~~~~~
cmake -DPYTHON_EXECUTABLE=/path/to/bin/python ../
@ -531,7 +538,7 @@ $ git checkout master # Switch to branch you want to update
$ git pull origin master # Download the newest code from our repository
~~~~~~
or, if you want to test the lastest developments:
or, if you want to test the latest developments:
~~~~~~
$ git checkout next
@ -544,9 +551,9 @@ Before rebuilding the source code, it is safe (and recommended) to remove the re
$ rm -rf gnss-sdr/build/*
~~~~~~
If you are interested in contributing to the development of GNSS-SDR, please check out [how to do it](http://gnss-sdr.org/documentation/how-contribute-source-code "How to contribute to GNSS-SDR source code").
If you are interested in contributing to the development of GNSS-SDR, please check out [how to do it](http://gnss-sdr.org/contribute/ "How to contribute to GNSS-SDR source code").
There is a more controlled way to upgrade your repository, which is to use the Git commands ```fetch``` and ```merge```, as described [here](http://gnss-sdr.org/source-code).
There is a more controlled way to upgrade your repository, which is to use the Git commands ```fetch``` and ```merge```, as described [here](http://gnss-sdr.org/docs/tutorials/using-git/).
@ -577,7 +584,7 @@ We use a [DBSRX2](https://www.ettus.com/product/details/DBSRX2) to do the task,
```$ gnss-sdr --config_file=/path/to/my_receiver.conf```
The program reports the current status in text mode, directly to the terminal window. If all goes well, and GNSS-SDR is able to successfully track and decode at least 4 satellites, you will get PVT fixes. The program will write .kml, .geojson and RINEX files in the folder from which ```gnss-sdr``` was run. In addition to the console output, GNSS-SDR also writes log files at /tmp/ (configurable with the commandline flag ```./gnss-sdr --log_dir=/path/to/log```).
For more information, check out our [quick start guide](http://gnss-sdr.org/quick-start-guide/).
Using GNSS-SDR
@ -589,8 +596,6 @@ With GNSS-SDR, you can define you own receiver, work with captured raw data or f
$ gnss-sdr --config_file=/path/to/my_receiver.conf
~~~~~~
You can see a guide of available implementations at ```gnss-sdr/conf/master.conf```. That folder contains other working examples as well. If you have a working configuration and want to share it will others, please tell us and we will be happy to upload it to the server.
You can use a single configuration file for processing different data files, specifying the file to be processed with the ```--signal_source``` flag:
~~~~~~
@ -639,7 +644,7 @@ Since the configuration is just a set of property names and values without any m
Hence, the application defines a simple accessor class to fetch the configuration pairs of values and passes them to a factory class called [GNSSBlockFactory](./src/core/receiver/gnss_block_factory.h). This factory decides, according to the configuration, which class needs to be instantiated and which parameters should be passed to the constructor. Hence, the factory encapsulates the complexity of blocks' instantiation. With that approach, adding a new block that requires new parameters will be as simple as adding the block class and modifying the factory to be able to instantiate it. This loose coupling between the blocks' implementations and the syntax of the configuration enables extending the application capacities in a high degree. It also allows to produce fully customized receivers, for instance a testbed for acquisition algorithms, and to place observers at any point of the receiver chain.
More information can be found at the [Control Plane page](http://gnss-sdr.org/docs/control-plane/).
Signal Processing plane
@ -667,7 +672,7 @@ Internally, GNSS-SDR makes use of the complex data types defined by [VOLK](http:
- **`gr_complex`**: Complex samples, with real and imaginary parts of type `float`. C++ type name: `std::complex<float>`.
More information about the available processing blocks and their configuration parameters can be found at the [Signal Processing Blocks documentation page](http://gnss-sdr.org/docs/sp-blocks/).
### Signal Source
@ -848,7 +853,7 @@ SignalSource.dump1=false
~~~~~~
Other examples are available at [gnss-sdr/conf/](./conf/).
More documentation and examples are available at the [Signal Source Blocks page](http://gnss-sdr.org/docs/sp-blocks/signal-source/).
### Signal Conditioner
@ -869,6 +874,7 @@ If you need to adapt some aspect of you signal, you can enable the Signal Condit
SignalConditioner.implementation=Signal_Conditioner
~~~~~~
More documentation at the [Signal Conditioner Blocks page](http://gnss-sdr.org/docs/sp-blocks/signal-conditioner/).
#### Data type adapter
@ -880,11 +886,11 @@ This block changes the type of input data samples. If your signal source deliver
DataTypeAdapter.implementation=Ishort_To_Complex
~~~~~~
More documentation at the [Data Type Adapter Blocks page](http://gnss-sdr.org/docs/sp-blocks/data-type-adapter/).
#### Input filter
This blocks filters the input data. It can be combined with frequency translation for IF signals. The computation of the filter taps is based on parameters of GNU Radio's function [pm_remez](http://gnuradio.org/doc/doxygen/pm__remez_8h.html), that calculates the optimal (in the Chebyshev/minimax sense) FIR filter impulse response given a set of band edges, the desired reponse on those bands, and the weight given to the error in those bands.
This block filters the input data. It can be combined with frequency translation for IF signals. The computation of the filter taps is based on parameters of GNU Radio's function [pm_remez](http://gnuradio.org/doc/doxygen/pm__remez_8h.html), that calculates the optimal (in the Chebyshev/minimax sense) FIR filter impulse response given a set of band edges, the desired reponse on those bands, and the weight given to the error in those bands.
The block can be configured like this:
@ -935,7 +941,7 @@ InputFilter.IF=0
InputFilter.decimation_factor=1
~~~~~~
More documentation at the [Input Filter Blocks page](http://gnss-sdr.org/docs/sp-blocks/input-filter/).
#### Resampler
@ -953,7 +959,7 @@ Resampler.sample_freq_in=8000000 ; sample frequency of the input signal
Resampler.sample_freq_out=4000000 ; desired sample frequency of the output signal
~~~~~~
More documentation at the [Resampler Blocks page](http://gnss-sdr.org/docs/sp-blocks/resampler/).
### Channel
@ -999,6 +1005,9 @@ This module is also in charge of managing the interplay between acquisition and
The abstract class [ChannelInterface](./src/core/interfaces/channel_interface.h) represents an interface to a channel GNSS block. Check [Channel](./src/algorithms/channel/adapters/channel.h) for an actual implementation.
More documentation at the [Channels page](http://gnss-sdr.org/docs/sp-blocks/channels/).
#### Acquisition
@ -1047,6 +1056,7 @@ Acquisition_1B.dump=false
Acquisition_1B.dump_filename=./acq_dump.dat
~~~~~~
More documentation at the [Acquisition Blocks page](http://gnss-sdr.org/docs/sp-blocks/acquisition/).
#### Tracking
@ -1096,6 +1106,9 @@ Tracking_1B.dump=false
Tracking_1B.dump_filename=../data/veml_tracking_ch_
~~~~~~
More documentation at the [Tracking Blocks page](http://gnss-sdr.org/docs/sp-blocks/tracking/).
#### Decoding of the navigation message
Most of GNSS signal links are modulated by a navigation message containing the time the message was transmitted, orbital parameters of satellites (also known as ephemeris) and an almanac (information about the general system health, rough orbits of all satellites in the network as well as data related to error correction). Navigation data bits are structured in words, pages, subframes, frames and superframes. Sometimes, bits corresponding to a single parameter are spread over different words, and values extracted from different frames are required for proper decoding. Some words are for synchronization purposes, others for error control an others contain actual information. There are also error control mechanisms, from parity checks to forward error correction (FEC) encoding and interleaving, depending on the system. All this decoding complexity is managed by a finite state machine implemented with the [Boost.Statechart library](http://www.boost.org/libs/statechart/doc/tutorial.html).
@ -1123,6 +1136,8 @@ TelemetryDecoder_1B.dump=false
TelemetryDecoder_1B.decimation_factor=1;
~~~~~~
More documentation at the [Telemetry Decoder Blocks page](http://gnss-sdr.org/docs/sp-blocks/telemetry-decoder/).
#### Observables
@ -1157,6 +1172,8 @@ Observables.dump=false
Observables.dump_filename=./observables.dat
~~~~~~
More documentation at the [Observables Blocks page](http://gnss-sdr.org/docs/sp-blocks/observables/).
#### Computation of Position, Velocity and Time
Although data processing for obtaining high-accuracy PVT solutions is out of the scope of GNSS-SDR, we provide a module that can compute simple least square solutions (stored in GIS-friendly formats such as [GeoJSON](http://geojson.org/geojson-spec.html) and [KML](http://www.opengeospatial.org/standards/kml), or transmitted via serial port as [NMEA 0183](https://en.wikipedia.org/wiki/NMEA_0183) messages), and leaves room for more sophisticated positioning methods by storing observables and navigation data in [RINEX](https://en.wikipedia.org/wiki/RINEX) files (v2.11 or v3.02), and generating [RTCM](http://www.rtcm.org "Radio Technical Commission for Maritime Services") 3.2 messages that can be disseminated through the Internet in real time.
@ -1239,6 +1256,8 @@ PVT.rtcm_station_id=1111
In order to get well-formatted GeoJSON, KML and RINEX files, always terminate ```gnss-sdr``` execution by pressing key ```q``` and then key ```ENTER```. Those files will be automatically deleted if no position fix have been obtained during the execution of the software receiver.
More documentation at the [PVT Blocks page](http://gnss-sdr.org/docs/sp-blocks/pvt/).
About the software license
==========================
@ -1353,13 +1372,10 @@ In order to start using GNSS-SDR, you may want to populate ```gnss-sdr/data``` f
Another interesting option is working in real-time with a RF front-end. We provide drivers for UHD-compatible hardware such as the [USRP family](http://www.ettus.com/product), for OsmoSDR and other front-ends (HackRF, bladeRF), for the GN3S v2 USB dongle and for some DVB-T USB dongles. Start with a low number of channels and then increase it in order to test how many channels your processor can handle in real-time.
You can find more information at the [GNSS-SDR Documentation page](http://gnss-sdr.org/documents) or directly asking to the [GNSS-SDR Developers mailing list](http://lists.sourceforge.net/lists/listinfo/gnss-sdr-developers).
You can find more information at the [GNSS-SDR Documentation page](http://gnss-sdr.org/docs/) or directly asking to the [GNSS-SDR Developers mailing list](http://lists.sourceforge.net/lists/listinfo/gnss-sdr-developers).
You are also very welcome to contribute to the project, there are many ways to [participate in GNSS-SDR](http://gnss-sdr.org/participate). If you need some special feature not yet implemented, the Developer Team would love to be hired for developing it. Please do not hesitate to [contact them](http://gnss-sdr.org/contact-us).
You are also very welcome to contribute to the project, there are many ways to [participate in GNSS-SDR](http://gnss-sdr.org/contribute/). If you need some special feature not yet implemented, the Developer Team would love to be hired for developing it. Please do not hesitate to [contact them](http://gnss-sdr.org/team/).
**Enjoy GNSS-SDR!**
The Developer Team.