Sylphase SDGPS
The software-defined GPS(/GNSS) toolkit
Sylphase SDGPS Documentation
Overview of SDGPS functionality PDF

SDGPS is a C++17 collection of nodes that can be chained together to create a real-time or offline processing pipeline. The most important ones are:

  • sylphase-usbgpsimu2, the driver for the Infix-1 and Infix-2 USB GPS/IMU devices
  • tracker, the GNSS signal tracking node, which converts raw correlation values to GNSS observables like pseudorange, carrier phase, and doppler shift
  • kf2, the Kalman filter, which converts GNSS observables and sensor measurements to a fused solution

The final output of the normal pipeline is a pose (position, orientation) and pose rate (velocity, angular velocity) estimate in both global world and local odometry frames. Using listen-solution-tcp, that data is encoded as JSON and broadcast at up to 1000 Hz to any clients connected on a TCP socket.

Many other nodes exist, but they are primarily to enable testing and verification of the previously mentioned nodes. They include nodes to record and play back any type of exchanged data, nodes to simulate GPS signals and sensor inputs given a path through space, and a software correlator implementation. Below is an overview of the SDGPS interfaces and nodes.

Nodes and interfaces in SDGPS. Interfaces are boxes and nodes are the edges between them, representing how a node processes one data format into another. The listen-*-tcp, connect-*-tcp, read-*-file, write-*-file, and replace-config nodes, which exist for every interface, are excluded from here to avoid clutter.

Getting started

Infix-2 with packaging

Welcome to the SDGPS manual!

We hope you'll find our manual helpful on your projects.