I am attempting to use GNSS input to improve SLAM accuracy, which appears to be supported by Fusion, but when I run the example geotracking program that ships with SDK 4.04, I get the error message quoted in the subject.
I appear to have gpsd functioning as required from the screenshots below, but require some help figuring out why sl fusion is not using the data correctly.
Hello @multicore-manticore ,
Could you activate the verbose mode (InitParameters Class Reference | API Reference | Stereolabs) in order to figure out what’s wrong ?
Thanks,
Tanguy
Could you please go into more detail on how to achieve that? I see in main.cpp that init_params.sdk_verbose = 1;
is already set, but that does not seem to be working as intended. Is there more needed?
Are your sure that init_params.sdk_verbose is set to 1 ? Normally it should activate verbose message like: [ZED][WARNING] The timestamp of the data you are attempting to ingest for [GeoTracking] differs from the current synchronization timestamp. Please ensure you are using the correct timestamp units. Timestamp difference: <insert-here-the-number-of-ms> ms ( this message could correspond to INVALID_TIMESTAMP error code ).
Moreover is this error continue to appear after the first fusion.process() call ?
Regards,
Tanguy
Attached is a copy of main.cpp verifying that yes, init_params.sdk_verbose is set to 1, plus a log from the build in case you notice something that I have missed which may explain why the verbose flag is being ignored.
Adding a debug after the fusion.process() call shows that yes, this issue persists indefinitely after the first call.
fruit@agx-1:/usr/local/zed/samples/geotracking/recording/cpp/build$ cmake ..
-- The C compiler identification is GNU 9.4.0
-- The CXX compiler identification is GNU 9.4.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Looking for sgemm_
-- Looking for sgemm_ - not found
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Failed
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Found Threads: TRUE
-- Looking for sgemm_
-- Looking for sgemm_ - found
-- Found BLAS: /usr/lib/aarch64-linux-gnu/libopenblas.so
CMake Warning (dev) at /usr/local/zed/zed-config.cmake:72 (find_package):
Policy CMP0146 is not set: The FindCUDA module is removed. Run "cmake
--help-policy CMP0146" for policy details. Use the cmake_policy command to
set the policy and suppress this warning.
Call Stack (most recent call first):
CMakeLists.txt:9 (find_package)
This warning is for project developers. Use -Wno-dev to suppress it.
-- Found CUDA: /usr/local/cuda-11.4 (found suitable version "11.4", minimum required is "11.4")
CMake Warning (dev) at CMakeLists.txt:10 (find_package):
Policy CMP0146 is not set: The FindCUDA module is removed. Run "cmake
--help-policy CMP0146" for policy details. Use the cmake_policy command to
set the policy and suppress this warning.
This warning is for project developers. Use -Wno-dev to suppress it.
-- Found CUDA: /usr/local/cuda-11.4 (found version "11.4")
-- Found GLUT: /usr/lib/aarch64-linux-gnu/libglut.so
-- Found GLEW: /usr/include (found version "2.1.0")
-- Found OpenGL: /usr/lib/aarch64-linux-gnu/libOpenGL.so
-- Found GPS: /usr/local/include (found version "14.0")
Found GPSD library
-- Configuring done (1.3s)
-- Generating done (0.0s)
-- Build files have been written to: /usr/local/zed/samples/geotracking/recording/cpp/build
fruit@agx-1:/usr/local/zed/samples/geotracking/recording/cpp/build$ make -j12
[ 25%] Building CXX object CMakeFiles/ZED_GNSS_recording.dir/src/gnss_reader/GPSDReader.cpp.o
[ 25%] Building CXX object CMakeFiles/ZED_GNSS_recording.dir/src/display/GLViewer.cpp.o
[ 62%] Building CXX object CMakeFiles/ZED_GNSS_recording.dir/src/display/GenericDisplay.cpp.o
[ 62%] Building CXX object CMakeFiles/ZED_GNSS_recording.dir/src/exporter/GNSSSaver.cpp.o
[ 62%] Building CXX object CMakeFiles/ZED_GNSS_recording.dir/src/exporter/TimestampUtils.cpp.o
[ 87%] Building CXX object CMakeFiles/ZED_GNSS_recording.dir/src/exporter/KMLExporter.cpp.o
[ 87%] Building CXX object CMakeFiles/ZED_GNSS_recording.dir/src/main.cpp.o
In file included from /usr/local/zed/samples/geotracking/recording/cpp/include/exporter/KMLExporter.h:7,
from /usr/local/zed/samples/geotracking/recording/cpp/src/exporter/KMLExporter.cpp:1:
/usr/local/zed/include/sl/Fusion.hpp:68:64: note: #pragma message: ~ FUSION SDK is distributed in Early Access ~
68 | #pragma message("~ FUSION SDK is distributed in Early Access ~")
| ^
In file included from /usr/local/zed/samples/geotracking/recording/cpp/include/gnss_reader/GPSDReader.hpp:5,
from /usr/local/zed/samples/geotracking/recording/cpp/src/gnss_reader/GPSDReader.cpp:1:
/usr/local/zed/include/sl/Fusion.hpp:68:64: note: #pragma message: ~ FUSION SDK is distributed in Early Access ~
68 | #pragma message("~ FUSION SDK is distributed in Early Access ~")
| ^
In file included from /usr/local/zed/samples/geotracking/recording/cpp/include/display/GenericDisplay.h:4,
from /usr/local/zed/samples/geotracking/recording/cpp/src/display/GenericDisplay.cpp:1:
/usr/local/zed/include/sl/Fusion.hpp:68:64: note: #pragma message: ~ FUSION SDK is distributed in Early Access ~
68 | #pragma message("~ FUSION SDK is distributed in Early Access ~")
| ^
In file included from /usr/local/zed/samples/geotracking/recording/cpp/include/exporter/GNSSSaver.h:6,
from /usr/local/zed/samples/geotracking/recording/cpp/src/exporter/GNSSSaver.cpp:1:
/usr/local/zed/include/sl/Fusion.hpp:68:64: note: #pragma message: ~ FUSION SDK is distributed in Early Access ~
68 | #pragma message("~ FUSION SDK is distributed in Early Access ~")
| ^
/usr/local/zed/samples/geotracking/recording/cpp/src/display/GLViewer.cpp:23:1: warning: ISO C++ forbids converting a string constant to ‘GLchar*’ {aka ‘char*’} [-Wwrite-strings]
23 | "#version 330 core\n"
| ^~~~~~~~~~~~~~~~~~~~~
24 | "layout(location = 0) in vec3 in_Vertex;\n"
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
25 | "layout(location = 1) in vec3 in_Color;\n"
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
26 | "uniform mat4 u_mvpMatrix;\n"
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
27 | "out vec3 b_color;\n"
| ~~~~~~~~~~~~~~~~~~~~~
28 | "void main() {\n"
| ~~~~~~~~~~~~~~~~~
29 | " b_color = in_Color;\n"
| ~~~~~~~~~~~~~~~~~~~~~~~~~~
30 | " gl_Position = u_mvpMatrix * vec4(in_Vertex, 1);\n"
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
31 | "}";
| ~~~
/usr/local/zed/samples/geotracking/recording/cpp/src/display/GLViewer.cpp:34:1: warning: ISO C++ forbids converting a string constant to ‘GLchar*’ {aka ‘char*’} [-Wwrite-strings]
34 | "#version 330 core\n"
| ^~~~~~~~~~~~~~~~~~~~~
35 | "in vec3 b_color;\n"
| ~~~~~~~~~~~~~~~~~~~~
36 | "layout(location = 0) out vec4 out_Color;\n"
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
37 | "void main() {\n"
| ~~~~~~~~~~~~~~~~~
38 | " out_Color = vec4(b_color, 1);\n"
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
39 | "}";
| ~~~
In file included from /usr/local/zed/samples/geotracking/recording/cpp/src/main.cpp:29:
/usr/local/zed/include/sl/Fusion.hpp:68:64: note: #pragma message: ~ FUSION SDK is distributed in Early Access ~
68 | #pragma message("~ FUSION SDK is distributed in Early Access ~")
| ^
[100%] Linking CXX executable ZED_GNSS_recording
[100%] Built target ZED_GNSS_recording