Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 0 additions & 8 deletions docker/Dockerfile.jazzy-base
Original file line number Diff line number Diff line change
Expand Up @@ -24,10 +24,6 @@ RUN /tmp/install_clangformat.sh && rm -f /tmp/install_clangformat.sh
COPY docker/scripts/install_capnp.sh /tmp
RUN /tmp/install_capnp.sh && rm -f /tmp/install_capnp.sh

# Download, build and install PROJ
COPY docker/scripts/install_proj.sh /tmp
RUN /tmp/install_proj.sh && rm -f /tmp/install_proj.sh

# Download, build and install Doxygen
COPY docker/scripts/install_doxygen.sh /tmp
RUN /tmp/install_doxygen.sh && rm -f /tmp/install_doxygen.sh
Expand All @@ -46,10 +42,6 @@ Pin-Priority: -1
Package: capnproto libcapnp-* libcapnp-dev
Pin: origin *
Pin-Priority: -1

Package: proj proj-ps-doc proj-data proj-rdnap proj-bin libproj15 libproj-dev
Pin: origin *
Pin-Priority: -1
EOF

# For debugging docker builds... (last layer!)
Expand Down
4 changes: 4 additions & 0 deletions docker/scripts/install_aptbase.sh
Original file line number Diff line number Diff line change
Expand Up @@ -21,11 +21,15 @@ packages=$(awk -v filt=${FPSDK_IMAGE%-*} '$1 ~ filt { print $2 }' <<EOF
noetic.humble.jazzy.bookworm libeigen3-dev
..............jazzy.bookworm libgtest-dev
noetic.humble.jazzy.bookworm libpath-tiny-perl
..............jazzy......... libproj25
..............jazzy......... libproj-dev
noetic.humble.jazzy.bookworm libsqlite3-dev
noetic.humble.jazzy.bookworm libtiff-dev
noetic.humble.jazzy.bookworm libyaml-cpp-dev
noetic.humble.jazzy.bookworm netbase
.......humble.jazzy.bookworm pre-commit
..............jazzy......... proj-data
..............jazzy......... proj-bin
noetic...................... python3-catkin-tools
noetic.humble.jazzy.bookworm python-is-python3
noetic.humble.jazzy.bookworm python3-osrf-pycommon
Expand Down
5 changes: 2 additions & 3 deletions fpsdk_common/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -44,10 +44,10 @@ find_package (Threads REQUIRED)

# PROJ is optional, unless explicitly requested with -DUSE_PROJ=ON
if (USE_PROJ STREQUAL "ON")
find_package(PROJ 9.4.1 REQUIRED CONFIG)
find_package(PROJ 9.4 REQUIRED CONFIG)
elseif(USE_PROJ STREQUAL "OFF")
else()
find_package(PROJ 9.4.1 CONFIG QUIET)
find_package(PROJ 9.4 CONFIG QUIET)
endif()
if (${PROJ_FOUND})
message(STATUS "fpsdk: Using PROJ (${PROJ_VERSION})")
Expand Down Expand Up @@ -194,5 +194,4 @@ add_gtest(TARGET trafo_test SOURCES test/trafo_test.cpp LINK
add_gtest(TARGET utils_test SOURCES test/utils_test.cpp LINK_LIBS ${PROJECT_NAME})
add_gtest(TARGET yaml_test SOURCES test/yaml_test.cpp LINK_LIBS ${PROJECT_NAME})


# ======================================================================================================================
81 changes: 41 additions & 40 deletions fpsdk_common/include/fpsdk_common/parser/fpa.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -158,7 +158,7 @@ bool FpaGetMessageInfo(char* info, const std::size_t size, const uint8_t* msg, c
*/
enum class FpaInitStatus : int
{ // clang-format off
UNSPECIFIED = '?', //!< Unspecified
UNSPECIFIED = '!', //!< Unspecified
NOT_INIT = '0', //!< Not initialised
LOCAL_INIT = '1', //!< Locally initialised
GLOBAL_INIT = '2', //!< Globally initialised
Expand All @@ -169,7 +169,7 @@ enum class FpaInitStatus : int
*/
enum class FpaFusionStatusLegacy : int
{ // clang-format off
UNSPECIFIED = '?', //!< Unspecified
UNSPECIFIED = '!', //!< Unspecified
NONE = '0', //!< Not started
VISION = '1', //!< Vision only
VIO = '2', //!< Visual-inertial fusion
Expand All @@ -182,7 +182,7 @@ enum class FpaFusionStatusLegacy : int
*/
enum class FpaMeasStatus : int
{ // clang-format off
UNSPECIFIED = '?', //!< Unspecified
UNSPECIFIED = '!', //!< Unspecified
NOT_USED = '0', //!< Not used
USED = '1', //!< Used
DEGRADED = '2', //!< Degraded
Expand All @@ -193,7 +193,7 @@ enum class FpaMeasStatus : int
*/
enum class FpaImuStatus : int
{ // clang-format off
UNSPECIFIED = '?', //!< Unspecified
UNSPECIFIED = '!', //!< Unspecified
NOT_CONVERGED = '0', //!< Not converged
WARMSTARTED = '1', //!< Warmstarted
ROUGH_CONVERGED = '2', //!< Rough convergence
Expand All @@ -205,7 +205,7 @@ enum class FpaImuStatus : int
*/
enum class FpaImuStatusLegacy : int
{ // clang-format off
UNSPECIFIED = '?', //!< Unspecified
UNSPECIFIED = '!', //!< Unspecified
NOT_CONVERGED = '0', //!< Not converged
CONVERGED = '1', //!< Converged
}; // clang-format on
Expand All @@ -215,7 +215,7 @@ enum class FpaImuStatusLegacy : int
*/
enum class FpaImuNoise : int
{ // clang-format off
UNSPECIFIED = '?', //!< Unspecified
UNSPECIFIED = '!', //!< Unspecified
LOW_NOISE = '1', //!< Low noise
MEDIUM_NOISE = '2', //!< Medium noise
HIGH_NOISE = '3', //!< High noise
Expand All @@ -230,7 +230,7 @@ enum class FpaImuNoise : int
*/
enum class FpaImuConv : int
{ // clang-format off
UNSPECIFIED = '?', //!< Unspecified
UNSPECIFIED = '!', //!< Unspecified
RESERVED0 = '0', //!< Reserved
WAIT_IMU_MEAS = '1', //!< Awaiting IMU measurements
WAIT_GLOBAL_MEAS = '2', //!< Insufficient global measurements
Expand All @@ -246,7 +246,7 @@ enum class FpaImuConv : int
*/
enum class FpaGnssStatus : int
{ // clang-format off
UNSPECIFIED = '?', //!< Unspecified
UNSPECIFIED = '!', //!< Unspecified
NO_FIX = '0', //!< No fix
SPP = '1', //!< Single-point positioning (SPP)
RTK_MB = '2', //!< RTK moving baseline
Expand All @@ -264,7 +264,7 @@ enum class FpaGnssStatus : int
*/
enum class FpaCorrStatus : int
{ // clang-format off
UNSPECIFIED = '?', //!< Unspecified
UNSPECIFIED = '!', //!< Unspecified
WAITING_FUSION = '0', //!< Waiting fusion
NO_GNSS = '1', //!< No GNSS available
NO_CORR = '2', //!< No corrections used
Expand All @@ -282,7 +282,7 @@ enum class FpaCorrStatus : int
*/
enum class FpaBaselineStatus : int
{ // clang-format off
UNSPECIFIED = '?', //!< Unspecified
UNSPECIFIED = '!', //!< Unspecified
WAITING_FUSION = '0', //!< Waiting fusion
NO_FIX = '1', //!< Not available or no fix
FAILING = '2', //!< Failing
Expand All @@ -294,7 +294,7 @@ enum class FpaBaselineStatus : int
*/
enum class FpaCamStatus : int
{ // clang-format off
UNSPECIFIED = '?', //!< Unspecified
UNSPECIFIED = '!', //!< Unspecified
CAM_UNAVL = '0', //!< Camera not available
BAD_FEAT = '1', //!< Camera available, but not usable (e.g. too dark)
RESERVED2 = '2', //!< Reserved
Expand All @@ -308,7 +308,7 @@ enum class FpaCamStatus : int
*/
enum class FpaWsStatus : int
{ // clang-format off
UNSPECIFIED = '?', //!< Unspecified
UNSPECIFIED = '!', //!< Unspecified
NOT_ENABLED = '0', //!< No wheelspeed enabled
MISS_MEAS = '1', //!< Missing wheelspeed measurements
NONE_CONVERGED = '2', //!< At least one wheelspeed enabled, no wheelspeed converged
Expand All @@ -321,7 +321,7 @@ enum class FpaWsStatus : int
*/
enum class FpaWsStatusLegacy : int
{ // clang-format off
UNSPECIFIED = '?', //!< Unspecified
UNSPECIFIED = '!', //!< Unspecified
NOT_ENABLED = '-', //!< No wheelspeed enabled
NONE_CONVERGED = '0', //!< None converged
ONE_OR_MORE_CONVERGED = '1', //!< At least one converged
Expand All @@ -332,7 +332,7 @@ enum class FpaWsStatusLegacy : int
*/
enum class FpaWsConv : int
{ // clang-format off
UNSPECIFIED = '?', //!< Unspecified
UNSPECIFIED = '!', //!< Unspecified
WAIT_FUSION = '0', //!< Awaiting Fusion
WAIT_WS_MEAS = '1', //!< Missing wheelspeed measurements
WAIT_GLOBAL_MEAS = '2', //!< Insufficient global measurements
Expand All @@ -347,7 +347,7 @@ enum class FpaWsConv : int
*/
enum class FpaMarkersStatus : int
{ // clang-format off
UNSPECIFIED = '?', //!< Unspecified
UNSPECIFIED = '!', //!< Unspecified
NOT_ENABLED = '0', //!< No markers available
NONE_CONVERGED = '1', //!< Markers available
ONE_CONVERGED = '2', //!< Markers available and used
Expand All @@ -359,7 +359,7 @@ enum class FpaMarkersStatus : int
*/
enum class FpaMarkersConv : int
{ // clang-format off
UNSPECIFIED = '?', //!< Unspecified
UNSPECIFIED = '!', //!< Unspecified
WAIT_FUSION = '0', //!< Awaiting Fusion
WAIT_MARKER_MEAS = '1', //!< Waiting marker measurements
WAIT_GLOBAL_MEAS = '2', //!< Insufficient global measurements
Expand All @@ -372,7 +372,7 @@ enum class FpaMarkersConv : int
*/
enum class FpaGnssFix : int
{ // clang-format off
UNSPECIFIED = '?', //!< Unspecified
UNSPECIFIED = '!', //!< Unspecified
UNKNOWN = '0', //!< Unknown
NOFIX = '1', //!< No fix
DRONLY = '2', //!< Dead-reckoning only
Expand Down Expand Up @@ -402,8 +402,8 @@ enum class FpaEpoch : int
enum class FpaAntState : int
{
UNSPECIFIED = 0, //!< Unspecified
OK, //!< Antenna detected and good
OPEN, //!< No antenna detected (or connected via DC block)
OK, //!< Antenna detected and good
SHORT, //!< Antenna short circuit detected
};

Expand Down Expand Up @@ -623,9 +623,9 @@ struct FpaImuPayload : public FpaPayload
//! Data from which FP_A-...IMU is stored
enum class Which
{
UNSPECIFIED, //!< Unspecified
FP_A_RAWIMU, //!< Data is from FP_A-RAWIMU
FP_A_CORRIMU, //!< Data is from FP_A-CORRIMU
UNSPECIFIED, //!< Unspecified
RAWIMU, //!< Data is from FP_A-RAWIMU
CORRIMU, //!< Data is from FP_A-CORRIMU
};
Which which = Which::UNSPECIFIED; //!< Indicates from which message the data is
// clang-format off
Expand Down Expand Up @@ -728,27 +728,28 @@ struct FpaOdomPayload : public FpaPayload
//! Data from which FP_A-...IMU is stored
enum class Which
{
UNSPECIFIED, //!< Unspecified
FP_A_ODOMETRY, //!< Data is from FP_A-ODOMETRY
FP_A_ODOMENU, //!< Data is from FP_A-ODOMENU
FP_A_ODOMSH, //!< Data is from FP_A-ODOMSH
UNSPECIFIED, //!< Unspecified
ODOMETRY, //!< Data is from FP_A-ODOMETRY
ODOMENU, //!< Data is from FP_A-ODOMENU
ODOMSH, //!< Data is from FP_A-ODOMSH
};
// clang-format off
Which which = Which::UNSPECIFIED; //!< Indicates from which message the data is
FpaGpsTime gps_time; //!< Time
FpaFloat3 pos; //!< Position, X/Y/Z components
FpaFloat4 orientation; //!< Quaternion, W/X/Y/Z components
FpaFloat3 vel; //!< Velocity, X/Y/Z components
FpaFloat3 rot; //!< Bias corrected angular velocity, X/Y/Z components
FpaFloat3 acc; //!< Bias corrected acceleration, X/Y/Z components
FpaFusionStatusLegacy fusion_status; //!< Fustion status
FpaImuStatusLegacy imu_bias_status; //!< IMU bias status
FpaGnssFix gnss1_fix; //!< Fix status of GNSS1 receiver
FpaGnssFix gnss2_fix; //!< Fix status of GNSS2 receiver
FpaWsStatusLegacy wheelspeed_status; //!< Wheelspeed status
FpaFloat6 pos_cov; //!< Position covariance, XX/YY/ZZ/XY/YZ/XZ components
FpaFloat6 orientation_cov; //!< Orientation covariance, XX/YY/ZZ/XY/YZ/XZ components
FpaFloat6 vel_cov; //!< Velocity covariance, XX/YY/ZZ/XY/YZ/XZ components
Which which = Which::UNSPECIFIED; //!< Indicates from which message the data is
FpaGpsTime gps_time; //!< Time
FpaFloat3 pos; //!< Position, X/Y/Z components
FpaFloat4 orientation; //!< Quaternion, W/X/Y/Z components
FpaFloat3 vel; //!< Velocity, X/Y/Z components
FpaFloat3 rot; //!< Bias corrected angular velocity, X/Y/Z components
FpaFloat3 acc; //!< Bias corrected acceleration, X/Y/Z components
FpaFusionStatusLegacy fusion_status; //!< Fustion status
FpaImuStatusLegacy imu_bias_status; //!< IMU bias status
FpaGnssFix gnss1_fix; //!< Fix status of GNSS1 receiver
FpaGnssFix gnss2_fix; //!< Fix status of GNSS2 receiver
FpaWsStatusLegacy wheelspeed_status; //!< Wheelspeed status
FpaFloat6 pos_cov; //!< Position covariance, XX/YY/ZZ/XY/YZ/XZ components
FpaFloat6 orientation_cov; //!< Orientation covariance, XX/YY/ZZ/XY/YZ/XZ components
FpaFloat6 vel_cov; //!< Velocity covariance, XX/YY/ZZ/XY/YZ/XZ components
char version[100] = { 0 }; //!< Version
// clang-format on

/**
Expand Down
30 changes: 14 additions & 16 deletions fpsdk_common/include/fpsdk_common/parser/nmea.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -177,12 +177,10 @@ struct NmeaCoordinates

/**
* @brief NMEA talker IDs
*
* @note Do not use <, >, >=, <= operators on this!
*/
enum class NmeaTalkerId : int
{ // clang-format off
UNSPECIFIED = '?', //!< Unspecified
UNSPECIFIED = '!', //!< Unspecified
PROPRIETARY = 'x', //!< Proprietary
GPS_SBAS = 'P', //!< GPS and/or SBAS
GLO = 'L', //!< GLONASS
Expand All @@ -195,12 +193,10 @@ enum class NmeaTalkerId : int

/**
* @brief NMEA-Gx-GGA quality indicator
*
* @note Do not use <, >, >=, <= operators on this!
*/
enum class NmeaQualityGga : int
{ // clang-format off
UNSPECIFIED = '?', //!< Unspecified
UNSPECIFIED = '!', //!< Unspecified
NOFIX = '0', //!< No fix
SPP = '1', //!< Autonomous GNSS fix
DGNSS = '2', //!< Differential GPS fix (e.g. with SBAS)
Expand All @@ -219,7 +215,7 @@ enum class NmeaQualityGga : int
*/
enum class NmeaStatusGllRmc : int
{ // clang-format off
UNSPECIFIED = '?', //!< Unspecified
UNSPECIFIED = '!', //!< Unspecified
INVALID = 'V', //!< Data invalid
VALID = 'A', //!< Data valid
// DIFFERENTIAL = 'D', // @todo another possible value?
Expand All @@ -232,7 +228,7 @@ enum class NmeaStatusGllRmc : int
*/
enum class NmeaModeGllVtg : int
{ // clang-format off
UNSPECIFIED = '?', //!< Unspecified
UNSPECIFIED = '!', //!< Unspecified
INVALID = 'N', //!< Invalid (no fix)
AUTONOMOUS = 'A', //!< Autonomous mode (SPP)
DGNSS = 'D', //!< Differential GNSS fix
Expand All @@ -248,7 +244,7 @@ enum class NmeaModeGllVtg : int
*/
enum class NmeaModeRmcGns : int
{ // clang-format off
UNSPECIFIED = '?', //!< Unspecified
UNSPECIFIED = '!', //!< Unspecified
INVALID = 'N', //!< Invalid (no fix)
AUTONOMOUS = 'A', //!< Autonomous mode (SPP)
DGNSS = 'D', //!< Differential GNSS fix
Expand All @@ -267,7 +263,7 @@ enum class NmeaModeRmcGns : int
*/
enum class NmeaNavStatusRmc : int
{ // clang-format off
UNSPECIFIED = '?', //!< Unspecified
UNSPECIFIED = '!', //!< Unspecified
SAFE = 'S', //!< Safe
CAUTION = 'C', //!< Caution
UNSAFE = 'U', //!< Unsafe
Expand All @@ -281,30 +277,30 @@ enum class NmeaNavStatusRmc : int
*/
enum class NmeaOpModeGsa : int
{ // clang-format off
UNSPECIFIED = '?', //!< Unspecified
UNSPECIFIED = '!', //!< Unspecified
MANUAL = 'M', //!< Manual
AUTO = 'A', //!< Automatic
}; // clang-format on

/**
* @brief NMEA-Gx-GNS nav mode
*
* @note Do not use <, >, >=, <= operators on this!
*/
enum class NmeaNavModeGsa : int
{ // clang-format off
UNSPECIFIED = '?', //!< Unspecified
UNSPECIFIED = '!', //!< Unspecified
NOFIX = '1', //!< No fix
FIX2D = '2', //!< 2D fix
FIX3D = '3', //!< 3D fix
}; // clang-format on

/**
* @brief NMEA system IDs
*
* @note Do not use <, >, >=, <= operators on this!
*/
enum class NmeaSystemId : int
{ // clang-format off
UNSPECIFIED = '?', //!< Unspecified
UNSPECIFIED = '!', //!< Unspecified
GPS_SBAS = '1', //!< GPS and/or SBAS
GLO = '2', //!< GLONASS
GAL = '3', //!< Galileo
Expand All @@ -315,10 +311,12 @@ enum class NmeaSystemId : int

/**
* @brief NMEA signal IDs
*
* @note Do not use <, >, >=, <= operators on this!
*/
enum class NmeaSignalId : int
{ // clang-format off
UNSPECIFIED = '?', //!< Unspecified
UNSPECIFIED = '!', //!< Unspecified
GPS_L1CA = '1', //!< GPS L1 C/A
GPS_L2CL = '6', //!< GPS L2 CL
GPS_L2CM = '5', //!< GPS L2 CM
Expand Down
Loading
Loading