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.
Anchor
A YAML anchor
Extension, extended functionality
- Functionality beyond GISNav core functionality. For example, NMEANode for integrating GISNav as a mock GPS device over NMEA
- A Docker Compose extension
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.
Learn more
Learn more at wiki.openstreetmap.org/wiki/Bounding_Box
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
- Code coverage
- Onboard GIS embedded orthoimagery coverage over flight mission area
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.
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
Learn more
Learn more at opengeospatial.github.io/e-learning/wms/text/operations.html#getmap
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
- One of the world-fixed ROS coordinate frames that are defined in REP 105. In GISNav the
map
frame is defined by MAVROS. - A raster retrieved from a GIS server. Generic term that could e.g., mean orthoimagery or DEMs depending on context.
Match, matching
Keypoint matching in the context of camera pose estimation between two images.
See also
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
- A machine learning model or neural network. In GISNav used specifically for camera pose estimation.
- A Gazebo model, more specifically a vehicle 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.
Navigation filter
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.
Learn more
Learn more at docs.opencv.org/4.x/d5/d1f/calib3d_solvePnP.html
Pose
A spatial pose in three dimensions including position and orientation.
Position
- A 3D global position
- A 3D local 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
- A Docker Compose service
- A ROS service
- A systemd 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:
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
- In the PNP problem context, the coordinate system of the reference image including the z-axis used to represent ground elevation.
- A Gazebo world.
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
See also
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
See also
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
See also
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.
See also
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
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).