Skip to content

Installation

SentiNAV Standalone Version

The primary executable of the SentiSystems Navigation software is the sentinav executable, which will acquire sensor data from a user-specified UDP port, feed the sensor data into a navigation filter, and output it's navigation estimate at user-defined frequencies, data formats, and endpoints. Pre-compiled versions for x64, aarch64/arm64, and arm32 are included in your SentiSystems SharePoint folder sentinav/binaries. If you need SentiNAV to run on any other architecture, don't hesitate to contact us.

Tip

To simplify the usage of SentiNAV, we recommend running the software as a service. E.g in Ubuntu Linux distributions you can use systemctl and a sentinav.service file to achieve this. One example service file can be found in the SharePoint folder etc/sentinav.service. The example file should be edited to include your username and group, as well as updated paths to the SentiNAV working directory and exectuable before being deployed on your system.

The sentinav executable expects to read data from the SentiBoard2.0 or SentiUtils via UDP communication.

Reading navigation ouput from SentiNAV as Protobuf packages requires google protobuf to be installed on your system. On Debian based distributions this can be installed by sudo apt install protobuf-compiler, or you could download prebuilt binaries or compile it from source from their official github page.

Tip

Data ouput formats such as Mavlink and NMEA is also available and user-configurable, if that is preferred method to handle navigation data output.

Config File

An example config file can be found in the SharePoint folder sentinav_example_config.yaml

SentiNAV External Precompiled Library Version

Place sentinav.a in lib/sentinav.a in your project's source folder, and place all SentiNAV header files in include/sentinav/*.hpp.

Tip

On Debian/Linux based systems:

If CMake is not installed on your system, you can install it with sudo apt install cmake

If Eigen3 is not installed on your system, you can install it with sudo apt install libeigen3-dev

Create a CMakeLists.txt similar to the one below, or add the SentiNAV specific parts to your own CMakeLists.txt together with the Eigen3 requirement.

cmake_minimum_required(VERSION 3.10)
project(MyProject LANGUAGES CXX)

set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

# Find Eigen3
find_package(Eigen3 REQUIRED)

# Add executable
add_executable(my_app
    main.cpp
)

# Include directories
target_include_directories(my_app PRIVATE
    ${EIGEN3_INCLUDE_DIR}          # Eigen3 headers
    ${CMAKE_CURRENT_SOURCE_DIR}/include/sentinav  # sentinav headers
)

# Link Eigen and sentinav static library
target_link_libraries(my_app PRIVATE
    Eigen3::Eigen
    ${CMAKE_SOURCE_DIR}/lib/sentinav.a
)

Now simply do a

mkdir build && cd build

cmake ../

make

And run your application.

./my_app