Skip to content

Glossary

Warning: Frequent revision

These definitions are frequently revised as the software is developed and therefore may not always correspond to what is currently written in the source code.

Terminology

Here we provide explanations for terms used throughout this documentation that are more esoteric or represent jargon i.e. have meanings unique to the context of this documentation, deviating from their more generally understood interpretations.

Some terms may have multiple definitions (e.g. parameter or frame) and the correct alternative should be easily inferred from the context. Similarly, multiple terms may be used to refer to the same concept depending on the context (e.g. robot vs. vehicle).

Altitude

Altitude of the vehicle in any vertical datum or reference level.

See also

AGL, AMSL

Anchor

A YAML anchor

Extension, extended functionality

Autopilot

Autopilot flight control software such as PX4 or ArduPilot.

Blending

Blending of multiple GPS sensors by the navigation filter.

Bounding box

A geographical box or rectangle, the coordinates of which are known, that bounds an area of interest to be used as a reference for pose estimation.

Bucket

An AWS S3 bucket

Camera

A monocular camera carried onboard that is used by GISNav for pose estimation.

Companion, companion computer

The onboard companion computer that GISNav runs on. E.g., NVIDIA Jetson Orin Nano.

Container

A Docker container.

Core, core functionality

GISNav core functionality refers to parts of GISNav code that are assumed to be needed for every kind of deployment. Opposed to extension, which are typically integrations built downstream of core functionality.

Coverage

Decorator

A Python decorator function.

Deploy, deployment

A GISNav deployment consisting of various configurations of Docker Compose services.

Drone

Currently NOT used by GISNav. UAV, vehicle or robot are used instead, depending on context.

Elevation

Elevation of the ground surface or ground track in any vertical datum or reference level.

See also

DEM, Altitude, AGL, AMSL

Extra

Python package extras: packaging.python.org/en/latest/tutorials/installing-packages/#installing-extras.

Used to separate GISNav core, extended and development dependencies from each other.

Firmware

Autopilot software that is loaded onto and executed on the FCU. More specifically, PX4 or ArduPilot software running on the FCU, for example during HIL simulation.

Frame

  • A spatial coordinate reference frame, especially as defined in REP 103 and REP 105
  • An image frame, e.g. a single frame from a video stream from the onboard camera

GetFeatureInfo

A WMS operation for requesting non-raster features from GIS servers. Used in earlier versions of GISNav to fetch DEM values for specific points but no longer used.

GetMap

A WMS operation for requesting rasters from GIS servers. Allows querying by arbitrary bounding box, as opposed to tile-based protocols such as WMTS

Absolute position, global position

Horizontal and vertical position in a CRS that specifies the location of the vehicle relative to an Earth-fixed reference frame (as opposed to a local reference frame)

Ground control, ground control software, ground control station

Ground control software that controls the vehicle through a remote radio link, using a protocol such as MAVLink.

Ground track

The vehicle flight path projected to the ground directly below the vehicle in the direction of nadir.

Home

[Vehicle] home position into which it will typically automatically return once it's flight mission is complete. Not necessarily the same as the EKF local origin.

Image

WARNING

Not to be confused with Orthoimage or imagery

Launch, launch test

Launching using the ROS launch system, ROS launch tests.

Relative position, local position

Horizontal and vertical position that specifies the location of the vehicle relative to a local reference frame.

Map, map

Match, matching

Keypoint matching in the context of camera pose estimation between two images.

See also

PnP

Message

A ROS message.

Middleware

A software application that facilitates communication between other software applications (by transmitting data between them). More specifically, MAVROS, micro-ROS Agent or GScam.

Mission, mission mode

  • A flight mission, typically a file uploaded to a GCS which then sends the appropriate commands to the vehicle to execute.
  • PX4 Mission mode

Mode

Autopilot flight mode

Model

Module

A Python module.

Nadir

Direction pointing directly down from the vehicle (opposed to zenith). Does not mean down relative to vehicle body but rather the direction of the force of gravity.

An algorithm implemented by the FMU that is responsible for determining the overall state of the vehicle based on fusing available sensor inputs and past states.

INFO

EKF is one commonly used algorithm and is often used interchangeably to describe the navigation filter, even if the navigation filter does not use EKF.

Network

A neural network (a machine learning model), such as SuperGlue or LoFTR

Node

A ROS node.

Notebook

A Jupyter notebook.

Offboard

Anything that is not onboard. More specifically any computer (e.g., running the GCS) that is not carried onboard the vehicle and therefore does not draw power from the vehicle power source.

Warning: Conflicting definition in autopilot context

More narrow and conflicting definition that is relevant for autopilots running on FCU: Any software that is not running on the FCU - even if it is carried "onboard" the vehicle (e.g. "offboard control" when controlling the vehicle from software running on the companion computer).

Off-vehicle

Term used by at least PX4 in a similar way GISNav currently uses the term offboard.

Onboard

Anything carried by the vehicle that would draw power from its battery or power source, including the FCU and the companion computer.

Warning: Conflicting definition in autopilot context

More narrow and conflicting definition that is relevant for autopilots running on FCU: Any software that is running on the FCU.

On-vehicle

Term used by at least PX4 in a similar way GISNav currently uses the term onboard.

Orientation, attitude

Vehicle or camera orientation (attitude) in 3D space, typically represented by a quaternion.

See also

RPY for Euler angle representation

Origin

Origin of any reference frame

Orthoimagery, imagery, orthoimage, orthophoto

  • Orthorectified high-resolution geographic imagery stored in GIS
  • An orthorectified high-resolution image of a location on Earth for which the bounding box is known, retrieved from a GIS server.

Learn more

Learn more at en.wikipedia.org/wiki/Orthophoto

Query, query image

In a pose estimation context, the image frame from the camera, to be compared to the reference image. The reference image may be an earlier image from the same camera when doing VO, or an orthoimage.

Package

Parameter

Most likely one of these:

Perspective-n-Point, PnP

A problem in computer vision where a camera pose is estimated from 2D image to 3D world coordinate point correspondences.

Pose

A spatial pose in three dimensions including position and orientation.

Position

Publish, publisher

A ROS publisher, to publish a ROS message.

Quaternion

A 4-tuple describing orientation in 3D space. Avoids the gimbal lock problem that comes when using Euler angles. Should be in (x, y, z, w) order unless otherwise defined.

See also

RPY for Euler angle representation of orientation

Raster

A rasterized image retrieved from a GIS server, as opposed to a vectorized image. Used exclusively for geographical imagery, not e.g., for an image from the camera.

Recipe

A Makefile recipe

Reference, reference image, reference raster

In a pose estimation context, the orthoimage frame from the GIS server, to be compared to the query image, or an earlier frame from the same camera if doing visual odometry.

Robot

Used to refer to the vehicle, typically in a ROS context. In GISNav the only kind of robot is the UAV, so this is synonymous with vehicle.

Rotation

Most likely rotation of the reference raster when aligning it with the FOV. This is done in pose estimation because the neural networks are not assumed to be rotation agnostic.

Service

Service orchestration

Deploying and managing Docker Compose services, potentially on multiple hosts, that constitute a GISNav deployment.

Simulation host

Computer that hosts the (Gazebo) simulation world. Typically a more powerful server, or a desktop or laptop personal computer.

Subscribe, subscriber, subscription

A ROS subscription, to subscribe to a ROS topic.

Target

A Makefile target

Test

Currently the following kinds of tests are recognized:

  • A unit test
  • A ROS launch test
  • A simulation (SITL or HIL) test

The static analysis in the git pre-commit hooks might also sometimes be referred to as "testing".

Topic

A ROS topic.

Vehicle

The UAV that uses GISNav for visual navigation. Can e.g., be a quadcopter or fixed-wing aircraft. This term is preferred by autopilot software like PX4 and ArduPilot, while the more generic term robot is often used in the ROS context.

World, world coordinates, world coordinate system

Zenith

Direction pointing directly up from the vehicle (opposed to nadir). Does not mean up relative to vehicle body but rather the direction opposite to the force of gravity.

Abbreviations

BBox

Bounding box

cmp

Companion computer

Coords

Coordinates

Dev

Development

Diff, diff

Difference

Also git diff and diff command line utilities to show differences in git repositories and files respectively.

Distro

Distribution, a Linux distribution such as Debian

gnc

GISNav CLI

Img

Image

Msg

Message

NSH, nsh

NuttShell, Apache NuttX shell

Qry

Query

Ref

Reference

Sim, sim

Simulation

TTY, tty, pty

Teletypewriter, pseudo-TTY.

Input devices on Linux.

Acronyms

AGL

Altitude or Elevation Above Ground Level

AMSL

Altitude or Elevation Above Mean Sea Level

API

Application Programming Interface

AWS

Amazon Web Services

CI

Continuous Integration

SRS, CRS

Spatial Reference System, Coordinate Reference System

CV

Computer Vision

DEM

Digital Elevation Model

DNS

Domain Name System

ECEF

Earth-Centered, Earth-Fixed (coordinate frame)

E.g. earth frame as defined in REP 105

EKF

Extended Kalman Filter

ENU

East-North-Up coordinate system

INFO

Up in the direction of zenith.

EOL

End-of-life, e.g., in context of ROS distributions that are no longer officially supported.

FCU, FMU

Flight Control Unit / Flight Management Unit. For example, Pixhawk.

FOSS

Free and Open Source Software

FoV / FOV

Field Of View

FRD

Front-Right-Down coordinate system.

INFO

Down relative to the vehicle body, not nadir.

GCS

Ground Control Station

GHCR

GitHub Container Registry

GIS

Geographic Information System

GML

Geography Markup Language

GNSS, GPS

Global Navigation Satellite System / Global Positioning System

GPU

Graphics Processing Unit

GUI

Graphical User Interface

HIL, HITL

Hardware In The Loop simulation

HTTP(S)

Hypertext Transfer Protocol (Secure)

IDE

Integrated/Interactive Development Environment

mDNS

Multicas DNS

NAIP

National Agriculture Imagery Program

NED

North-East-Down coordinate system

INFO

Down in the direction of nadir.

NMEA, NMEA 0183

Communication protocol for GPS receivers

OGC

Open Geospatial Consortium: OGC

OS

Operating System

OSM

OpenStreetMap

PnP, PNP

Perspective-n-Point problem

PR

Pull Request

QGC

QGroundControl

RDP

Remote Desktop Protocol

REP, REP 103, REP 105

ROS Enhancement Proposal

RPY

Roll, pitch, yaw. Euler angle representation of attitude which suffers from gimbal lock, unlike quaternions

SBC

Single Board Computer

SCP, scp

Secure Copy Protocol

SIFT

Scale-invariant Feature Transform

SITL

Software In The Loop simulation

SQL

Structured Query Language: SQL

SSL/TLS

Secure Sockets Layer / Transport Layer Security

TCP, TCP/IP, IP

Transmission Control Protocol/Internet Protocol

ToU / TOU

Terms of Use

UAV

Unmanned Aerial Vehicle

UDP

User Datagram Protocol: User Datagram Protocol

USGS

United States Geological Survey

VNC

Virtual Network Computing

VO

Visual Odometry

WFS, WFS-T

Web Feature Service (Transactional)

See also

WGS, WGS 84

A World Geodetic System coordinate system: World Geodetic System

WMS, WMTS

Web Map Service / Web Map Tile Service, two separate OGC developed communication protocols. WMS allows querying by arbitrary bounding box while WMTS returns pre-computed tiles in a standardized grid.

Proper Names

ArduPilot

ArduPilot open source autopilot: ardupilot.org

colcon

A build automation tool used by ROS 2: colcon.readthedocs.io/en/released

CUDA

NVIDIA parallel computing platform: developer.nvidia.com/cuda-zone

DDS / Data Distribution Service

A middleware protocol and standard: dds-foundation.org

Debian

A Linux distribution: debian.org/

Docker

Software containerization tool: docker.com

Docker Compose

Tool for defining and running multi-container Docker applications: docs.docker.com/compose

FileGator

A FOSS self-hosted file management application: docs.filegator.io

Gazebo

Simulation software: gazebosim.org/home

GDAL, Geospatial Data Abstraction Library

Software library for handling geospatial data: gdal.org

GSCam, gscam

ROS GStreamer camera driver: github.com/ros-drivers/gscam

GStreamer

Open source multimedia framework: gstreamer.freedesktop.org

Nano, Jetson Orin Nano

An NVIDIA Jetson Orin Nano computer

Jupyter, JupyterLab

A web-based IDE: jupyter.org

Make, make

GNU Make, a build automation tool: gnu.org/software/make

MapServer

Open source GIS software: mapserver.org

MAVLink (Micro Air Vehicle Link) protocol: mavlink.io/en

MAVROS

An open source MAVLink to ROS middleware: wiki.ros.org/mavros

MAVSDK

MAVLink software development kit: mavsdk.mavlink.io/main/en/index.html

Mermaid, mermaid.js

A diagram scripting language: mermaid.js.org

micro-ROS Agent

PX4-specific ROS middleware: docs.px4.io/main/en/middleware/uxrce_dds.html

OpenCV, cv2

Open source computer vision software library: opencv.org.

cv2 refers to the OpenCV Python bindings module.

OpenStreetMap

Open source map of the world: openstreetmap.org

Pixhawk

Hardware standard for open source autopilots: pixhawk.org

PostGIS

GIS extension for Postgres: postgis.net

Postgres

An SQL server: postgresql.org

PX4

PX4 Autopilot: px4.io

Python

A computer programming language: python.org

Raspberry Pi 5

A popular SBC: raspberrypi.com/products/raspberry-pi-5

QEMU

A FOSS full-system emulator: qemu.org

QGroundControl

GCS software: qgroundcontrol.com

ROS, ROS 2

Robot Operating System: ros.org

GISNav uses ROS 2.

RViz

ROS 3D visualization software: github.com/ros2/rviz

S3

AWS Simple Storage Service (S3): aws.amazon.com/s3

Sphinx

Documentation generation software: sphinx-doc.org/en/master/

systemd

A system and service manager for Linux: systemd.io

tf2

ROS 2 transformations library: wiki.ros.org/tf2

Not Tensorflow

Tensorflow is often referred to as TF or tf in code but GISNav does not use it - GISNav uses Torch instead.

Torch, PyTorch

An open source machine learning software library: torch.ch

Python machine learning library based on Torch: pytorch.org

UBX

Communication protocol (from u-blox) for GPS receivers

Ubuntu

A Linux distribution, only supported OS for GISNav: ubuntu.com

VitePress

Static site generator software: vitepress.dev

VRT

GDAL Virtual Format (file format)

X Server

Window system that comes with Ubuntu: x.org/wiki

YAML

A data serialization language: yaml.org

Other

KSQL

ICAO airport code for San Carlos Airport in California (used as simulation environment in GISNav development and testing).

Released under the MIT License.