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