├── .github ├── ISSUE_TEMPLATE │ ├── bug_report.md │ └── feature_request.md └── stale.yml ├── .gitignore ├── LICENSE ├── README.md ├── ublox ├── CHANGELOG.rst ├── CMakeLists.txt └── package.xml ├── ublox_gps ├── CHANGELOG.rst ├── CMakeLists.txt ├── config │ ├── c94_m8p_base.yaml │ ├── c94_m8p_rover.yaml │ ├── c94_m8t_base.yaml │ ├── c94_m8t_rover.yaml │ ├── m8u_rover.yaml │ ├── nmea.yaml │ ├── zed_f9k.yaml │ └── zed_f9p.yaml ├── include │ └── ublox_gps │ │ ├── async_worker.h │ │ ├── callback.h │ │ ├── gps.h │ │ ├── mkgmtime.h │ │ ├── node.h │ │ ├── raw_data_pa.h │ │ ├── utils.h │ │ └── worker.h ├── launch │ └── ublox_device.launch ├── package.xml └── src │ ├── gps.cpp │ ├── logger_node_pa.cpp │ ├── mkgmtime.c │ ├── node.cpp │ └── raw_data_pa.cpp ├── ublox_msg_filters ├── CMakeLists.txt ├── README.md ├── include │ └── ublox_msg_filters │ │ └── exact_time.h ├── launch │ └── example.launch ├── package.xml ├── scripts │ └── talker.py ├── src │ └── example.cpp └── tests │ ├── CMakeLists.txt │ └── test.cpp ├── ublox_msgs ├── CHANGELOG.rst ├── CMakeLists.txt ├── include │ ├── ublox │ │ └── serialization │ │ │ └── ublox_msgs.h │ └── ublox_msgs │ │ └── ublox_msgs.h ├── msg │ ├── Ack.msg │ ├── AidALM.msg │ ├── AidEPH.msg │ ├── AidHUI.msg │ ├── CfgANT.msg │ ├── CfgCFG.msg │ ├── CfgDAT.msg │ ├── CfgDGNSS.msg │ ├── CfgGNSS.msg │ ├── CfgGNSS_Block.msg │ ├── CfgHNR.msg │ ├── CfgINF.msg │ ├── CfgINF_Block.msg │ ├── CfgMSG.msg │ ├── CfgNAV5.msg │ ├── CfgNAVX5.msg │ ├── CfgNMEA.msg │ ├── CfgNMEA6.msg │ ├── CfgNMEA7.msg │ ├── CfgPRT.msg │ ├── CfgRATE.msg │ ├── CfgRST.msg │ ├── CfgSBAS.msg │ ├── CfgTMODE3.msg │ ├── CfgUSB.msg │ ├── EsfALG.msg │ ├── EsfINS.msg │ ├── EsfMEAS.msg │ ├── EsfRAW.msg │ ├── EsfRAW_Block.msg │ ├── EsfSTATUS.msg │ ├── EsfSTATUS_Sens.msg │ ├── HnrPVT.msg │ ├── Inf.msg │ ├── MgaGAL.msg │ ├── MonGNSS.msg │ ├── MonHW.msg │ ├── MonHW6.msg │ ├── MonVER.msg │ ├── MonVER_Extension.msg │ ├── NavATT.msg │ ├── NavCLOCK.msg │ ├── NavDGPS.msg │ ├── NavDGPS_SV.msg │ ├── NavDOP.msg │ ├── NavHPPOSECEF.msg │ ├── NavHPPOSLLH.msg │ ├── NavPOSECEF.msg │ ├── NavPOSLLH.msg │ ├── NavPVT.msg │ ├── NavPVT7.msg │ ├── NavRELPOSNED.msg │ ├── NavRELPOSNED9.msg │ ├── NavSAT.msg │ ├── NavSAT_SV.msg │ ├── NavSBAS.msg │ ├── NavSBAS_SV.msg │ ├── NavSOL.msg │ ├── NavSTATUS.msg │ ├── NavSVIN.msg │ ├── NavSVINFO.msg │ ├── NavSVINFO_SV.msg │ ├── NavTIMEGPS.msg │ ├── NavTIMEUTC.msg │ ├── NavVELECEF.msg │ ├── NavVELNED.msg │ ├── RxmALM.msg │ ├── RxmEPH.msg │ ├── RxmRAW.msg │ ├── RxmRAWX.msg │ ├── RxmRAWX_Meas.msg │ ├── RxmRAW_SV.msg │ ├── RxmRTCM.msg │ ├── RxmSFRB.msg │ ├── RxmSFRBX.msg │ ├── RxmSVSI.msg │ ├── RxmSVSI_SV.msg │ ├── TimTM2.msg │ ├── UpdSOS.msg │ └── UpdSOS_Ack.msg ├── package.xml └── src │ └── ublox_msgs.cpp └── ublox_serialization ├── CHANGELOG.rst ├── CMakeLists.txt ├── include └── ublox │ ├── checksum.h │ ├── serialization.h │ └── serialization_ros.h └── package.xml /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug report 3 | about: Create a report to help us improve 4 | title: '' 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Describe the bug** 11 | A clear and concise description of what the bug is. 12 | 13 | **To Reproduce** 14 | Steps to reproduce the behavior: 15 | 1. Go to '...' 16 | 2. Click on '....' 17 | 3. Scroll down to '....' 18 | 4. See error 19 | 20 | **Expected behavior** 21 | A clear and concise description of what you expected to happen. 22 | 23 | **Screenshots** 24 | If applicable, add screenshots to help explain your problem. 25 | 26 | **Desktop (please complete the following information):** 27 | - OS: [e.g. Ubuntu 20.04] 28 | - ROS Version [e.g. ROS1 Noetic] 29 | 30 | **Additional context** 31 | Add any other context about the problem here. 32 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature request 3 | about: Suggest an idea for this project 4 | title: '' 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Is your feature request related to a problem? Please describe.** 11 | A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] 12 | 13 | **Describe the solution you'd like** 14 | A clear and concise description of what you want to happen. 15 | 16 | **Describe alternatives you've considered** 17 | A clear and concise description of any alternative solutions or features you've considered. 18 | 19 | **Additional context** 20 | Add any other context or screenshots about the feature request here. 21 | -------------------------------------------------------------------------------- /.github/stale.yml: -------------------------------------------------------------------------------- 1 | # Number of days of inactivity before an issue becomes stale 2 | daysUntilStale: 365 3 | # Number of days of inactivity before a stale issue is closed 4 | daysUntilClose: 15 5 | # Issues with these labels will never be considered stale 6 | exemptLabels: 7 | - pinned 8 | - security 9 | # Label to use when marking an issue as stale 10 | staleLabel: wontfix 11 | # Comment to post when marking an issue as stale. Set to `false` to disable 12 | markComment: > 13 | This issue has been automatically marked as stale because it has not had 14 | recent activity. It will be closed if no further activity occurs. 15 | # Comment to post when closing a stale issue. Set to `false` to disable 16 | closeComment: true 17 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # BUILD PRODUCTS 2 | *.d 3 | *.o 4 | *.disasm 5 | *.map 6 | *.elf 7 | *.bin 8 | *.hex 9 | *.slo 10 | *.lo 11 | *.obj 12 | 13 | # CMAKE TEMPORARY FILES 14 | CMakeCache.txt 15 | CMakeFiles/ 16 | CMakeFiles/* 17 | 18 | # BUILD FOLDERS 19 | bin/ 20 | bin/* 21 | build/ 22 | build/* 23 | 24 | # ROS GENERATED PRODUCTS 25 | msg_gen/ 26 | msg_gen/* 27 | srv_gen/ 28 | srv_gen/* 29 | 30 | # ROS GENERATED PYTHON 31 | _*.py 32 | _*.pyc 33 | 34 | # ROS BAG FILES 35 | *.bag 36 | 37 | # XCODE BUILD PRODUCTS 38 | *.build/ 39 | *.build/* 40 | 41 | # XCODE USER SETTINGS 42 | *.xcuserdatad/ 43 | *.xcuserdatad/* 44 | *.pbxuser 45 | *.pbxuser/* 46 | 47 | # QTCREATOR PROJECT 48 | *.includes 49 | *.creator 50 | *.creator.user 51 | *.config 52 | *.files 53 | 54 | # GEANY PROJECTS 55 | *.geany 56 | 57 | # JETBRAINS 58 | *.idea 59 | 60 | # ZEND/ECLIPSE 61 | *.buildpath 62 | *.settings 63 | *.project 64 | *.pydevproject 65 | 66 | # MACOSX SETTINGS 67 | *.DS_Store 68 | 69 | # GENERATED DOCUMENTATION 70 | html_docs/ 71 | html_docs/* 72 | 73 | # ANDROID SDK GENERATED JAVA 74 | gen/ 75 | gen/* 76 | 77 | # COMPILED DYNAMIC LIBRARIES 78 | *.so 79 | *.dylib 80 | *.dll 81 | 82 | # COMPILED STATIC LIBRARIES 83 | *.lai 84 | *.la 85 | *.a 86 | *.lib 87 | 88 | # EXECUTABLES 89 | *.exe 90 | *.out 91 | *.app 92 | 93 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | BSD 3-Clause License 2 | 3 | Copyright (c) 2022, ublox contributors 4 | All rights reserved. 5 | 6 | Redistribution and use in source and binary forms, with or without 7 | modification, are permitted provided that the following conditions are met: 8 | 9 | 1. Redistributions of source code must retain the above copyright notice, this 10 | list of conditions and the following disclaimer. 11 | 12 | 2. Redistributions in binary form must reproduce the above copyright notice, 13 | this list of conditions and the following disclaimer in the documentation 14 | and/or other materials provided with the distribution. 15 | 16 | 3. Neither the name of the copyright holder nor the names of its 17 | contributors may be used to endorse or promote products derived from 18 | this software without specific prior written permission. 19 | 20 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 21 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 22 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 23 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 24 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 25 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 26 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 27 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 28 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 29 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 30 | -------------------------------------------------------------------------------- /ublox/CHANGELOG.rst: -------------------------------------------------------------------------------- 1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2 | Changelog for package ublox 3 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ 4 | 5 | 1.5.0 (2021-10-15) 6 | ------------------ 7 | 8 | 1.4.1 (2020-06-04) 9 | ------------------ 10 | 11 | 1.4.0 (2020-05-28) 12 | ------------------ 13 | * Bump CMake minimum version to 3.0.2 14 | * Contributors: Gonçalo Pereira 15 | 16 | 1.3.1 (2020-03-12) 17 | ------------------ 18 | * Add metapackage dependencies 19 | * Contributors: Mateusz Sadowski, Tim Clephas 20 | 21 | 1.3.0 (2020-01-10) 22 | ------------------ 23 | 24 | 1.2.0 (2019-11-19) 25 | ------------------ 26 | 27 | 1.1.2 (2017-08-02) 28 | ------------------ 29 | * README and package xml updates 30 | * Contributors: Veronica Lane 31 | 32 | 1.1.0 (2017-07-17) 33 | ------------------ 34 | * Updated package xmls with new version number and corrected my email address. Also updated readme to include information about new version plus new parameter 35 | * README and ublox package version 36 | * Contributors: Veronica Lane 37 | 38 | 1.0.0 (2017-06-23) 39 | ------------------ 40 | * added myself as maintainer to package xmls and updated version numbers of modified packages. 41 | * Contributors: Veronica Lane 42 | 43 | 0.0.5 (2016-08-06) 44 | ------------------ 45 | 46 | 0.0.4 (2014-12-08) 47 | ------------------ 48 | 49 | 0.0.3 (2014-10-18) 50 | ------------------ 51 | * Updated readme to reflect changes 52 | * Contributors: Gareth Cross 53 | 54 | 0.0.2 (2014-10-03) 55 | ------------------ 56 | 57 | 0.0.1 (2014-08-15) 58 | ------------------ 59 | 60 | 0.0.0 (2014-06-23) 61 | ------------------ 62 | * ublox: first commit 63 | * Contributors: Chao Qu 64 | -------------------------------------------------------------------------------- /ublox/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.0.2) 2 | project(ublox) 3 | find_package(catkin REQUIRED) 4 | catkin_metapackage() 5 | -------------------------------------------------------------------------------- /ublox/package.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | ublox 4 | 1.5.0 5 | Provides a ublox_gps node for u-blox GPS receivers, messages, and serialization packages for the binary UBX protocol. 6 | Johannes Meyer 7 | Veronica Lane 8 | BSD 9 | 10 | catkin 11 | http://wiki.ros.org/ublox 12 | 13 | ublox_gps 14 | ublox_msg_filters 15 | ublox_msgs 16 | ublox_serialization 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /ublox_gps/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.0.2) 2 | project(ublox_gps) 3 | find_package(catkin REQUIRED COMPONENTS 4 | tf 5 | roscpp 6 | roscpp_serialization 7 | ublox_msgs 8 | ublox_serialization 9 | diagnostic_updater 10 | rtcm_msgs 11 | nmea_msgs 12 | ) 13 | 14 | catkin_package( 15 | INCLUDE_DIRS include 16 | LIBRARIES ${PROJECT_NAME} 17 | CATKIN_DEPENDS tf roscpp ublox_msgs ublox_serialization rtcm_msgs nmea_msgs) 18 | 19 | # include boost 20 | find_package(Boost REQUIRED COMPONENTS system regex thread) 21 | link_directories(${Boost_LIBRARY_DIR}) 22 | include_directories(${Boost_INCLUDE_DIR}) 23 | 24 | # include other ublox packages 25 | include_directories(${PROJECT_SOURCE_DIR}/include) 26 | include_directories(${catkin_INCLUDE_DIRS}) 27 | 28 | # link pthread 29 | SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -pthread") 30 | 31 | # build library 32 | add_library(ublox_gps src/gps.cpp) 33 | 34 | # fix msg compile order bug 35 | add_dependencies(ublox_gps ${catkin_EXPORTED_TARGETS}) 36 | 37 | target_link_libraries(ublox_gps 38 | boost_system 39 | boost_regex 40 | boost_thread 41 | ) 42 | 43 | target_link_libraries(ublox_gps 44 | ${catkin_LIBRARIES} 45 | ) 46 | 47 | # build node 48 | add_executable(ublox_gps_node src/node.cpp src/mkgmtime.c src/raw_data_pa.cpp) 49 | set_target_properties(ublox_gps_node PROPERTIES OUTPUT_NAME ublox_gps) 50 | 51 | target_link_libraries(ublox_gps_node boost_system boost_regex boost_thread) 52 | target_link_libraries(ublox_gps_node ${catkin_LIBRARIES}) 53 | target_link_libraries(ublox_gps_node ublox_gps) 54 | 55 | # build logger node 56 | add_executable(ublox_logger_node src/logger_node_pa.cpp src/raw_data_pa.cpp) 57 | set_target_properties(ublox_logger_node PROPERTIES OUTPUT_NAME ublox_logger) 58 | 59 | target_link_libraries(ublox_logger_node ${catkin_LIBRARIES}) 60 | 61 | install(TARGETS ublox_gps ublox_gps_node ublox_logger_node 62 | ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} 63 | LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} 64 | RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} 65 | ) 66 | 67 | install(DIRECTORY include/${PROJECT_NAME}/ 68 | DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION} 69 | PATTERN ".svn" EXCLUDE 70 | ) 71 | 72 | install(DIRECTORY config/ 73 | DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}/config 74 | PATTERN ".svn" EXCLUDE 75 | ) 76 | 77 | install(DIRECTORY launch/ 78 | DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}/launch 79 | PATTERN ".svn" EXCLUDE 80 | ) 81 | -------------------------------------------------------------------------------- /ublox_gps/config/c94_m8p_base.yaml: -------------------------------------------------------------------------------- 1 | # Configuration Settings for C94-M8P device 2 | 3 | debug: 1 # Range 0-4 (0 means no debug statements will print) 4 | 5 | save: 6 | mask: 3103 # Save I/O, Message, INF Message, Nav, Receiver 7 | # Manager, Antenna, and Logging Configuration 8 | device: 4 # Save to EEPROM 9 | 10 | device: /dev/ttyACM0 11 | frame_id: gps_base 12 | dynamic_model: stationary # Velocity restricted to 0 m/s. Zero dynamics 13 | # assumed. 14 | fix_mode: auto 15 | dr_limit: 0 16 | enable_ppp: false # Not supported by C94-M8P 17 | 18 | rate: 4 # Measurement rate in Hz 19 | nav_rate: 4 # in number of measurement cycles 20 | 21 | uart1: 22 | baudrate: 19200 # C94-M8P specific 23 | in: 0 # No UART in for base 24 | out: 32 # RTCM 3 25 | 26 | # TMODE3 Config 27 | tmode3: 1 # Survey-In Mode 28 | sv_in: 29 | reset: false # True: disables and re-enables survey-in (resets) 30 | # False: Disables survey-in only if TMODE3 is 31 | # disabled 32 | min_dur: 300 # Survey-In Minimum Duration [s] 33 | acc_lim: 3.0 # Survey-In Accuracy Limit [m] 34 | 35 | # RTCM out config 36 | rtcm: 37 | ids: [5, 87, 77, 230] # RTCM Messages to configure for Base station 38 | # Enabled: GPS MSM7, GLONASS MSM7, 39 | # GLONASS CP bias, Stationary RTK ref 40 | # 0xF5 0x05 Stationary RTK reference station 41 | # ARP 42 | # 0xF5 0x4A GPS MSM4 43 | # 0xF5 0x4D GPS MSM7 44 | # 0xF5 0x54 GLONASS MSM4 45 | # 0xF5 0x57 GLONASS MSM7 46 | # 0xF5 0x7C BeiDou MSM4 47 | # 0xF5 0x7F BeiDou MSM7 48 | # 0xF5 0xE6 GLONASS code-phase biases 49 | # 0xF5 0xFE Reference station PVT 50 | #(u-blox proprietary RTCM Message) 51 | rates: [1, 1, 1, 10] # in number of navigation solutions, must match 52 | # nav_rate, except for 0xE6 53 | 54 | dat: 55 | set: false 56 | 57 | # GNSS Config 58 | gnss: 59 | glonass: true # Supported by C94-M8P 60 | beidou: false # Supported by C94-M8P 61 | qzss: false # Supported by C94-M8P 62 | 63 | inf: 64 | all: true # Whether to display all INF messages in console 65 | 66 | # Enable u-blox message publishers 67 | publish: 68 | all: true 69 | aid: 70 | hui: false 71 | nav: 72 | posecef: false 73 | -------------------------------------------------------------------------------- /ublox_gps/config/c94_m8p_rover.yaml: -------------------------------------------------------------------------------- 1 | # Configuration Settings for C94-M8P device 2 | 3 | debug: 1 # Range 0-4 (0 means no debug statements will print) 4 | 5 | save: 6 | mask: 3103 # Save I/O, Message, INF Message, Nav, Receiver 7 | # Manager, Antenna, and Logging Configuration 8 | device: 4 # Save to EEPROM 9 | 10 | device: /dev/ttyACM1 11 | frame_id: gps 12 | rate: 4 # in Hz 13 | nav_rate: 4 # [# of measurement cycles], recommended 1 Hz, may 14 | # be either 5 Hz (Dual constellation) or 15 | # 8 Hz (GPS only) 16 | dynamic_model: airborne2 # Airborne < 2G, 2D fix not supported (3D only), 17 | # Max Alt: 50km 18 | # Max Horizontal Velocity: 250 m/s, 19 | # Max Vertical Velocity: 100 m/s 20 | fix_mode: auto 21 | enable_ppp: false # Not supported by C94-M8P 22 | dr_limit: 0 23 | 24 | uart1: 25 | baudrate: 19200 # C94-M8P specific 26 | in: 32 # RTCM 3 27 | out: 0 # No UART out for rover 28 | 29 | gnss: 30 | glonass: true # Supported by C94-M8P 31 | beidou: false # Supported by C94-M8P 32 | qzss: false # Supported by C94-M8P 33 | 34 | dgnss_mode: 3 # Fixed mode 35 | 36 | inf: 37 | all: true # Whether to display all INF messages in console 38 | 39 | # Enable u-blox message publishers 40 | publish: 41 | all: true 42 | aid: 43 | hui: false 44 | 45 | nav: 46 | posecef: false 47 | -------------------------------------------------------------------------------- /ublox_gps/config/c94_m8t_base.yaml: -------------------------------------------------------------------------------- 1 | # Configuration Settings for 4-M8P device 2 | 3 | debug: 2 # Range 0-4 (0 means no debug statements will print) 4 | 5 | device: /dev/ttyACM0 6 | frame_id: m8t_base 7 | dynamic_model: stationary # Velocity restricted to 0 m/s. Zero dynamics 8 | # assumed. 9 | fix_mode: auto 10 | 11 | rate: 1 # Measurement rate in Hz 12 | nav_rate: 1 # in number of measurement cycles 13 | 14 | uart1: 15 | baudrate: 9600 # C94-M8P specific 16 | in: 0 # No UART in for base 17 | out: 0 # RTCM 3 18 | 19 | inf: 20 | all: true # Whether to display all INF messages in console 21 | 22 | # Enable u-blox message publishers 23 | publish: 24 | tim: 25 | tm2: true 26 | -------------------------------------------------------------------------------- /ublox_gps/config/c94_m8t_rover.yaml: -------------------------------------------------------------------------------- 1 | # Configuration Settings for C94-M8P device 2 | 3 | debug: 1 # Range 0-4 (0 means no debug statements will print) 4 | 5 | save: 6 | mask: 3103 # Save I/O, Message, INF Message, Nav, Receiver 7 | # Manager, Antenna, and Logging Configuration 8 | device: 4 # Save to EEPROM 9 | 10 | device: /dev/ttyACM1 11 | frame_id: gps 12 | rate: 4 # in Hz 13 | nav_rate: 4 # [# of measurement cycles], recommended 1 Hz, may 14 | # be either 5 Hz (Dual constellation) or 15 | # 8 Hz (GPS only) 16 | dynamic_model: airborne2 # Airborne < 2G, 2D fix not supported (3D only), 17 | # Max Alt: 50km 18 | # Max Horizontal Velocity: 250 m/s, 19 | # Max Vertical Velocity: 100 m/s 20 | fix_mode: auto 21 | enable_ppp: false # Not supported by C94-M8P 22 | dr_limit: 0 23 | 24 | uart1: 25 | baudrate: 19200 # C94-M8P specific 26 | in: 32 # RTCM 3 27 | out: 0 # No UART out for rover 28 | 29 | gnss: 30 | glonass: true # Supported by C94-M8P 31 | beidou: false # Supported by C94-M8P 32 | qzss: false # Supported by C94-M8P 33 | 34 | dgnss_mode: 3 # Fixed mode 35 | 36 | inf: 37 | all: true # Whether to display all INF messages in console 38 | 39 | # Enable u-blox message publishers 40 | publish: 41 | all: true 42 | aid: 43 | hui: false 44 | 45 | nav: 46 | posecef: false -------------------------------------------------------------------------------- /ublox_gps/config/m8u_rover.yaml: -------------------------------------------------------------------------------- 1 | # Configuration Settings for C94-M8P device 2 | 3 | debug: 1 # Range 0-4 (0 means no debug statements will print) 4 | 5 | save: 6 | mask: 3103 # Save I/O, Message, INF Message, Nav, Receiver 7 | # Manager, Antenna, and Logging Configuration 8 | device: 4 # Save to EEPROM 9 | 10 | device: /dev/ttyACM0 11 | frame_id: m8u 12 | rate: 4 # in Hz 13 | nav_rate: 4 # [# of measurement cycles], recommended 1 Hz, may 14 | # be either 5 Hz (Dual constellation) or 15 | # 8 Hz (GPS only) 16 | dynamic_model: 0 # Airborne < 2G, 2D fix not supported (3D only), 17 | # Max Alt: 50km 18 | # Max Horizontal Velocity: 250 m/s, 19 | # Max Vertical Velocity: 100 m/s 20 | fix_mode: 3 21 | enable_ppp: true # Not supported by C94-M8P 22 | dr_limit: 1 23 | 24 | uart1: 25 | baudrate: 115200 # C94-M8P specific 26 | in: 16 # RTCM 3 27 | out: 16 # No UART out for rover 28 | 29 | gnss: 30 | glonass: true # Supported by C94-M8P 31 | beidou: false # Supported by C94-M8P 32 | qzss: false # Supported by C94-M8P 33 | 34 | dgnss_mode: 3 # Fixed mode 35 | 36 | inf: 37 | all: true # Whether to display all INF messages in console 38 | 39 | # Enable u-blox message publishers 40 | publish: 41 | all: true 42 | esf: true 43 | aid: 44 | hui: false 45 | nav: 46 | posecef: false 47 | -------------------------------------------------------------------------------- /ublox_gps/config/nmea.yaml: -------------------------------------------------------------------------------- 1 | # Sample NMEA parameter configuration 2 | 3 | nmea: 4 | set: true 5 | version: 65 6 | num_sv: 8 7 | sv_numbering: 1 8 | compat: true 9 | consider: true 10 | limit82: true 11 | high_prec: false 12 | filter: 13 | pos: true 14 | msk_pos: true 15 | time: true 16 | date: true 17 | gps_only: true 18 | track: true 19 | gnssToFilter: 20 | gps: false 21 | sbas: true 22 | qzss: true 23 | glonass: false 24 | beidou: true 25 | main_talker_id: 1 26 | gsv_talker_id: 1 27 | bds_talker_id: [0,0] -------------------------------------------------------------------------------- /ublox_gps/config/zed_f9k.yaml: -------------------------------------------------------------------------------- 1 | # Configuration Settings for ZED-F9K device 2 | # Please change these settings according as necessary 3 | device: /dev/ttyACM0 4 | frame_id: gps 5 | uart1: 6 | baudrate: 115200 7 | config_on_startup: true 8 | rate: 20 # in Hz 9 | nav_rate: 1 # [# of measurement cycles], recommended 1 Hz, may 10 | dgnss_mode: 3 # Fixed mode 11 | dynamic_model: automotive # automative mode 12 | use_adr: true # Whether to enable dead reckoning 13 | 14 | inf: 15 | all: false # Whether to display all INF messages in console 16 | 17 | # Enable necessary u-blox message publishers 18 | publish: 19 | all: false 20 | esf: 21 | meas: true 22 | nav: 23 | status: true 24 | pvt: true 25 | posecef: false 26 | hpposllh: true 27 | -------------------------------------------------------------------------------- /ublox_gps/config/zed_f9p.yaml: -------------------------------------------------------------------------------- 1 | device: /dev/ttyACM0 2 | frame_id: gps 3 | uart1: 4 | baudrate: 38400 5 | config_on_startup: false 6 | -------------------------------------------------------------------------------- /ublox_gps/include/ublox_gps/mkgmtime.h: -------------------------------------------------------------------------------- 1 | /* mkgmtime.h -- make a time_t from a gmtime struct tm 2 | $Id: mkgmtime.h,v 1.5 2003/02/13 20:15:41 rjs3 Exp $ 3 | 4 | * Copyright (c) 1998-2003 Carnegie Mellon University. All rights reserved. 5 | * 6 | * Redistribution and use in source and binary forms, with or without 7 | * modification, are permitted provided that the following conditions 8 | * are met: 9 | * 10 | * 1. Redistributions of source code must retain the above copyright 11 | * notice, this list of conditions and the following disclaimer. 12 | * 13 | * 2. Redistributions in binary form must reproduce the above copyright 14 | * notice, this list of conditions and the following disclaimer in 15 | * the documentation and/or other materials provided with the 16 | * distribution. 17 | * 18 | * 3. The name "Carnegie Mellon University" must not be used to 19 | * endorse or promote products derived from this software without 20 | * prior written permission. For permission or any other legal 21 | * details, please contact 22 | * Office of Technology Transfer 23 | * Carnegie Mellon University 24 | * 5000 Forbes Avenue 25 | * Pittsburgh, PA 15213-3890 26 | * (412) 268-4387, fax: (412) 268-7395 27 | * tech-transfer@andrew.cmu.edu 28 | * 29 | * 4. Redistributions of any form whatsoever must retain the following 30 | * acknowledgment: 31 | * "This product includes software developed by Computing Services 32 | * at Carnegie Mellon University (http://www.cmu.edu/computing/)." 33 | * 34 | * CARNEGIE MELLON UNIVERSITY DISCLAIMS ALL WARRANTIES WITH REGARD TO 35 | * THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY 36 | * AND FITNESS, IN NO EVENT SHALL CARNEGIE MELLON UNIVERSITY BE LIABLE 37 | * FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 38 | * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN 39 | * AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING 40 | * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 41 | * 42 | */ 43 | 44 | #ifndef INCLUDED_MKGMTIME_H 45 | #define INCLUDED_MKGMTIME_H 46 | 47 | #include 48 | 49 | /** 50 | * @brief Get the UTC time in seconds and nano-seconds from a time struct in 51 | * GM time. 52 | */ 53 | extern time_t mkgmtime(struct tm * const tmp); 54 | 55 | #endif /* INCLUDED_MKGMTIME_H */ -------------------------------------------------------------------------------- /ublox_gps/include/ublox_gps/raw_data_pa.h: -------------------------------------------------------------------------------- 1 | //============================================================================== 2 | // Copyright (c) 2019, Peter Weissig, TU Chemnitz 3 | // All rights reserved. 4 | // 5 | // Redistribution and use in source and binary forms, with or without 6 | // modification, are permitted provided that the following conditions are met: 7 | // * Redistributions of source code must retain the above copyright 8 | // notice, this list of conditions and the following disclaimer. 9 | // * Redistributions in binary form must reproduce the above copyright 10 | // notice, this list of conditions and the following disclaimer in the 11 | // documentation and/or other materials provided with the distribution. 12 | // * Neither the name of the Flight Systems and Automatic Control group, 13 | // TU Darmstadt, nor the names of its contributors may be used to 14 | // endorse or promote products derived from this software without 15 | // specific prior written permission. 16 | // 17 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 18 | // AND 19 | // ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 20 | // WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 21 | // DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY 22 | // DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 23 | // (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 24 | // LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 25 | // ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 26 | // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 27 | // SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28 | //============================================================================== 29 | 30 | // This file is an addon from TUC-ProAut (https://github.com/TUC-ProAut/). 31 | // It was created to log all data from the ublox to a logfile and to publish 32 | // the data as ros messages. This is used by our group to also evaluate the 33 | // measured data with the rtklib. 34 | 35 | 36 | #ifndef UBLOX_RAW_DATA_PA_H 37 | #define UBLOX_RAW_DATA_PA_H 38 | 39 | // STL 40 | #include 41 | #include 42 | #include 43 | 44 | // ROS includes 45 | #include 46 | 47 | // ROS messages 48 | #include 49 | 50 | /** 51 | * @namespace ublox_node 52 | * This namespace is for the ROS u-blox node and handles anything regarding 53 | * ROS parameters, message passing, diagnostics, etc. 54 | */ 55 | namespace ublox_node { 56 | 57 | /** 58 | * @brief Implements functions for raw data stream. 59 | */ 60 | class RawDataStreamPa { 61 | public: 62 | 63 | 64 | /** 65 | * @brief Constructor. 66 | * Initialises variables and the nodehandle. 67 | */ 68 | RawDataStreamPa(bool is_ros_subscriber = false); 69 | 70 | /** 71 | * @brief Get the raw data stream parameters. 72 | */ 73 | void getRosParams(void); 74 | 75 | /** 76 | * @brief Returns the if raw data streaming is enabled. 77 | */ 78 | bool isEnabled(void); 79 | 80 | /** 81 | * @brief Initializes raw data streams 82 | * If storing to file is enabled, the filename is created and the 83 | * corresponding filedescriptor will be opened. 84 | * If publishing ros messages is enabled, an empty msg will be published. 85 | * (This will implicitly create the publisher) 86 | */ 87 | void initialize(void); 88 | 89 | /** 90 | * @brief Callback function which handles raw data. 91 | * @param data the buffer of u-blox messages to process 92 | * @param size the size of the buffer 93 | */ 94 | void ubloxCallback(const unsigned char* data, 95 | const std::size_t size); 96 | 97 | /** 98 | * @brief Callback function which handles raw data. 99 | * @param msg ros message 100 | */ 101 | void msgCallback(const std_msgs::UInt8MultiArray::ConstPtr& msg); 102 | 103 | private: 104 | /** 105 | * @brief Converts a string into an uint8 multibyte array 106 | */ 107 | std_msgs::UInt8MultiArray str2uint8(const std::string str); 108 | 109 | /** 110 | * @brief Publishes data stream as ros message 111 | * @param str raw data stream as string 112 | */ 113 | void publishMsg(const std::string str); 114 | 115 | /** 116 | * @brief Stores data to given file 117 | * @param str raw data stream as string 118 | */ 119 | void saveToFile(const std::string str); 120 | 121 | //! Directoy name for storing raw data 122 | std::string file_dir_; 123 | //! Filename for storing raw data 124 | std::string file_name_; 125 | //! Handle for file access 126 | std::ofstream file_handle_; 127 | 128 | //! Flag for publishing raw data 129 | bool flag_publish_; 130 | 131 | //! Internal flag 132 | //! true : subscribing to ros messages and storing those to file 133 | //! false: publishing ros messages and/or storing to file 134 | bool is_ros_subscriber_; 135 | 136 | //! ROS private node handle (for params and publisher) 137 | ros::NodeHandle pnh_; 138 | //! ROS node handle (only for subscriber) 139 | ros::NodeHandle nh_; 140 | }; 141 | 142 | } 143 | 144 | #endif 145 | -------------------------------------------------------------------------------- /ublox_gps/include/ublox_gps/utils.h: -------------------------------------------------------------------------------- 1 | #ifndef UBLOX_GPS_UTILS_H 2 | #define UBLOX_GPS_UTILS_H 3 | 4 | #include 5 | #include 6 | #include "ublox_msgs/NavPVT.h" 7 | 8 | extern "C" { 9 | #include "ublox_gps/mkgmtime.h" 10 | } 11 | 12 | /** 13 | * @brief Convert date/time to UTC time in seconds. 14 | */ 15 | template 16 | long toUtcSeconds(const NavPVT& msg) { 17 | // Create TM struct for mkgmtime 18 | struct tm time = {0}; 19 | time.tm_year = msg.year - 1900; 20 | time.tm_mon = msg.month - 1; 21 | time.tm_mday = msg.day; 22 | time.tm_hour = msg.hour; 23 | time.tm_min = msg.min; 24 | time.tm_sec = msg.sec; 25 | // C++ STL doesn't have a mkgmtime (though other libraries do) 26 | // STL mktime converts date/time to seconds in local time 27 | // A modified version of code external library is used for mkgmtime 28 | return mkgmtime(&time); 29 | } 30 | 31 | #endif 32 | -------------------------------------------------------------------------------- /ublox_gps/include/ublox_gps/worker.h: -------------------------------------------------------------------------------- 1 | //============================================================================== 2 | // Copyright (c) 2012, Johannes Meyer, TU Darmstadt 3 | // All rights reserved. 4 | 5 | // Redistribution and use in source and binary forms, with or without 6 | // modification, are permitted provided that the following conditions are met: 7 | // * Redistributions of source code must retain the above copyright 8 | // notice, this list of conditions and the following disclaimer. 9 | // * Redistributions in binary form must reproduce the above copyright 10 | // notice, this list of conditions and the following disclaimer in the 11 | // documentation and/or other materials provided with the distribution. 12 | // * Neither the name of the Flight Systems and Automatic Control group, 13 | // TU Darmstadt, nor the names of its contributors may be used to 14 | // endorse or promote products derived from this software without 15 | // specific prior written permission. 16 | 17 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 18 | // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 19 | // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 20 | // ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY 21 | // DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 22 | // (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 23 | // LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 24 | // ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 25 | // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 26 | // SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 | //============================================================================== 28 | 29 | #ifndef UBLOX_GPS_WORKER_H 30 | #define UBLOX_GPS_WORKER_H 31 | 32 | #include 33 | #include 34 | 35 | namespace ublox_gps { 36 | 37 | /** 38 | * @brief Handles I/O reading and writing. 39 | */ 40 | class Worker { 41 | public: 42 | typedef boost::function Callback; 43 | virtual ~Worker() {} 44 | 45 | /** 46 | * @brief Set the callback function for received messages. 47 | * @param callback the callback function which process messages in the buffer 48 | */ 49 | virtual void setCallback(const Callback& callback) = 0; 50 | 51 | /** 52 | * @brief Set the callback function which handles raw data. 53 | * @param callback the write callback which handles raw data 54 | */ 55 | virtual void setRawDataCallback(const Callback& callback) = 0; 56 | 57 | /** 58 | * @brief Send the data in the buffer. 59 | * @param data the bytes to send 60 | * @param size the size of the buffer 61 | */ 62 | virtual bool send(const unsigned char* data, const unsigned int size) = 0; 63 | 64 | /** 65 | * @brief Wait for an incoming message. 66 | * @param timeout the maximum time to wait. 67 | */ 68 | virtual void wait(const boost::posix_time::time_duration& timeout) = 0; 69 | 70 | /** 71 | * @brief Whether or not the I/O stream is open. 72 | */ 73 | virtual bool isOpen() const = 0; 74 | }; 75 | 76 | } // namespace ublox_gps 77 | 78 | #endif // UBLOX_GPS_WORKER_H 79 | -------------------------------------------------------------------------------- /ublox_gps/launch/ublox_device.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 7 | 8 | 10 | 11 | 12 | 13 | 14 | 15 | 20 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /ublox_gps/package.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | ublox_gps 4 | 1.5.0 5 | 6 | Driver for u-blox GPS devices. 7 | 8 | Johannes Meyer 9 | Gareth Cross 10 | Chao Qu 11 | Veronica Lane 12 | BSD 13 | http://ros.org/wiki/ublox 14 | 15 | catkin 16 | 17 | ublox_serialization 18 | ublox_msgs 19 | nmea_msgs 20 | roscpp 21 | roscpp_serialization 22 | tf 23 | diagnostic_updater 24 | rtcm_msgs 25 | 26 | 27 | -------------------------------------------------------------------------------- /ublox_gps/src/logger_node_pa.cpp: -------------------------------------------------------------------------------- 1 | //============================================================================== 2 | // Copyright (c) 2019, Peter Weissig, TU Chemnitz 3 | // All rights reserved. 4 | // 5 | // Redistribution and use in source and binary forms, with or without 6 | // modification, are permitted provided that the following conditions are met: 7 | // * Redistributions of source code must retain the above copyright 8 | // notice, this list of conditions and the following disclaimer. 9 | // * Redistributions in binary form must reproduce the above copyright 10 | // notice, this list of conditions and the following disclaimer in the 11 | // documentation and/or other materials provided with the distribution. 12 | // * Neither the name of the Flight Systems and Automatic Control group, 13 | // TU Darmstadt, nor the names of its contributors may be used to 14 | // endorse or promote products derived from this software without 15 | // specific prior written permission. 16 | // 17 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 18 | // AND 19 | // ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 20 | // WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 21 | // DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY 22 | // DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 23 | // (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 24 | // LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 25 | // ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 26 | // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 27 | // SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28 | //============================================================================== 29 | 30 | // This file is an addon from TUC-ProAut (https://github.com/TUC-ProAut/). 31 | // It was created to log all data from the ublox to a logfile and to publish 32 | // the data as ros messages. This is used by our group to also evaluate the 33 | // measured data with the rtklib. 34 | 35 | // ROS includes 36 | #include 37 | // Ublox GPS includes 38 | #include 39 | 40 | using namespace ublox_node; 41 | 42 | // 43 | // Raw Data Stream (feature from TUC-ProAut) 44 | // 45 | 46 | int main(int argc, char** argv) { 47 | 48 | ros::init(argc, argv, "ublox_logger"); 49 | 50 | RawDataStreamPa node(true); 51 | node.getRosParams(); 52 | node.initialize(); 53 | 54 | ros::spin(); 55 | 56 | return 0; 57 | } 58 | -------------------------------------------------------------------------------- /ublox_msg_filters/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.0.2) 2 | project(ublox_msg_filters) 3 | 4 | find_package(catkin REQUIRED COMPONENTS 5 | roscpp 6 | ublox_msgs 7 | message_filters 8 | ) 9 | 10 | catkin_package( 11 | INCLUDE_DIRS include 12 | CATKIN_DEPENDS ublox_msgs message_filters 13 | ) 14 | 15 | include_directories( 16 | include 17 | ${catkin_INCLUDE_DIRS} 18 | ) 19 | 20 | add_executable(${PROJECT_NAME}_example 21 | src/example.cpp 22 | ) 23 | add_dependencies(${PROJECT_NAME}_example 24 | ${catkin_EXPORTED_TARGETS} 25 | ) 26 | target_link_libraries(${PROJECT_NAME}_example 27 | ${catkin_LIBRARIES} 28 | ) 29 | set_target_properties(${PROJECT_NAME}_example 30 | PROPERTIES OUTPUT_NAME example PREFIX "" 31 | ) 32 | 33 | add_compile_options( 34 | -Wall 35 | -Wextra 36 | -Wno-unused-parameter 37 | -Wno-unused-function 38 | ) 39 | 40 | install(DIRECTORY include/${PROJECT_NAME}/ 41 | DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION} 42 | ) 43 | 44 | if (CATKIN_ENABLE_TESTING) 45 | add_subdirectory(tests) 46 | endif() 47 | -------------------------------------------------------------------------------- /ublox_msg_filters/README.md: -------------------------------------------------------------------------------- 1 | # ublox_msg_filters 2 | 3 | Time synchronize multiple uBlox messages to get a single callback 4 | 5 | Port of [message_filters::ExactTime](http://wiki.ros.org/message_filters#ExactTime_Policy) message synchronization policy to use integer time of week in milliseconds (iTOW) instead of `ros::Time` in a header. 6 | 7 | The [message_filters::ApproximateTime](http://wiki.ros.org/message_filters#ApproximateTime_Policy) message synchronization policy is not relevent because messages generated by a ublox sensor for a single update contain identical iTOW time stamps. 8 | 9 | See [src/example.cpp](src/example.cpp) for example usage. 10 | 11 | Launch the example with `roslaunch ublox_msg_filters example.launch`. The example is not installed, so this must be in a source workspace. 12 | -------------------------------------------------------------------------------- /ublox_msg_filters/launch/example.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /ublox_msg_filters/package.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | ublox_msg_filters 4 | 0.0.0 5 | 6 | Time synchronize multiple uBlox messages to get a single callback 7 | 8 | 9 | BSD 10 | Kevin Hallenbeck 11 | Kevin Hallenbeck 12 | http://ros.org/wiki/ublox 13 | 14 | catkin 15 | 16 | roscpp 17 | rospy 18 | roslaunch 19 | 20 | ublox_msgs 21 | message_filters 22 | 23 | 24 | -------------------------------------------------------------------------------- /ublox_msg_filters/scripts/talker.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python3 2 | import rospy 3 | from ublox_msgs.msg import NavHPPOSLLH, NavRELPOSNED9, NavVELNED 4 | 5 | class Talker(object): 6 | def __init__(self): 7 | self.itow = 0 8 | self.pub1 = rospy.Publisher('msg1', NavHPPOSLLH, queue_size=2) 9 | self.pub2 = rospy.Publisher('msg2', NavRELPOSNED9, queue_size=2) 10 | self.pub3 = rospy.Publisher('msg3', NavVELNED, queue_size=2) 11 | self.timer = rospy.Timer(rospy.Duration(0.2),self.publish) 12 | 13 | def publish(self, event): 14 | rospy.loginfo("TX %u", self.itow) 15 | 16 | msg1 = NavHPPOSLLH() 17 | msg1.iTOW = self.itow 18 | self.pub1.publish(msg1) 19 | 20 | msg2 = NavRELPOSNED9() 21 | msg2.iTOW = self.itow 22 | self.pub2.publish(msg2) 23 | 24 | msg3 = NavVELNED() 25 | msg3.iTOW = self.itow 26 | self.pub3.publish(msg3) 27 | 28 | self.itow += 1 29 | 30 | def main(): 31 | rospy.init_node('talker') 32 | talker = Talker() 33 | rospy.loginfo("Ready to transmit") 34 | rospy.spin() 35 | 36 | if __name__ == '__main__': 37 | main() 38 | -------------------------------------------------------------------------------- /ublox_msg_filters/src/example.cpp: -------------------------------------------------------------------------------- 1 | #include "ros/ros.h" 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | 8 | void callback(const ublox_msgs::NavHPPOSLLHConstPtr &msg1, 9 | const ublox_msgs::NavRELPOSNED9ConstPtr &msg2, 10 | const ublox_msgs::NavVELNEDConstPtr &msg3) { 11 | ROS_INFO("RX %u %u %u", msg1->iTOW, msg2->iTOW, msg3->iTOW); 12 | } 13 | 14 | int main(int argc, char **argv) { 15 | ros::init(argc, argv, "ublox_sync"); 16 | 17 | ros::NodeHandle nh; 18 | message_filters::Subscriber sub1(nh, "msg1", 1); 19 | message_filters::Subscriber sub2(nh, "msg2", 1); 20 | message_filters::Subscriber sub3(nh, "msg3", 1); 21 | 22 | typedef ublox_msg_filters::ExactTime MySyncPolicy; 23 | message_filters::Synchronizer sync(MySyncPolicy(10), sub1, sub2, sub3); 24 | sync.registerCallback(boost::bind(callback, _1, _2, _3)); 25 | 26 | ROS_INFO("Ready to receive"); 27 | 28 | ros::spin(); 29 | 30 | return 0; 31 | } 32 | -------------------------------------------------------------------------------- /ublox_msg_filters/tests/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | catkin_add_gtest(${PROJECT_NAME}_test test.cpp) 2 | target_link_libraries(${PROJECT_NAME}_test ${catkin_LIBRARIES}) 3 | -------------------------------------------------------------------------------- /ublox_msg_filters/tests/test.cpp: -------------------------------------------------------------------------------- 1 | /********************************************************************* 2 | * Software License Agreement (BSD License) 3 | * 4 | * Copyright (c) 2008, Willow Garage, Inc. 5 | * All rights reserved. 6 | * 7 | * Redistribution and use in source and binary forms, with or without 8 | * modification, are permitted provided that the following conditions 9 | * are met: 10 | * 11 | * * Redistributions of source code must retain the above copyright 12 | * notice, this list of conditions and the following disclaimer. 13 | * * Redistributions in binary form must reproduce the above 14 | * copyright notice, this list of conditions and the following 15 | * disclaimer in the documentation and/or other materials provided 16 | * with the distribution. 17 | * * Neither the name of the Willow Garage nor the names of its 18 | * contributors may be used to endorse or promote products derived 19 | * from this software without specific prior written permission. 20 | * 21 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 22 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 23 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 24 | * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 25 | * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 26 | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 27 | * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 28 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 29 | * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 30 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 31 | * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 32 | * POSSIBILITY OF SUCH DAMAGE. 33 | *********************************************************************/ 34 | 35 | #include 36 | 37 | #include "ros/ros.h" 38 | #include "ublox_msg_filters/exact_time.h" 39 | 40 | using namespace ublox_msg_filters; 41 | 42 | struct Msg 43 | { 44 | u_int32_t iTOW; 45 | int data; 46 | }; 47 | typedef boost::shared_ptr MsgPtr; 48 | typedef boost::shared_ptr MsgConstPtr; 49 | 50 | class Helper 51 | { 52 | public: 53 | Helper() {} 54 | 55 | void cb() 56 | { 57 | ++count_; 58 | } 59 | 60 | void cb3(const MsgConstPtr &msg1, const MsgConstPtr &msg2, const MsgConstPtr &msg3) 61 | { 62 | ++count_; 63 | stamp1_ = msg1->iTOW; 64 | stamp2_ = msg2->iTOW; 65 | stamp3_ = msg3->iTOW; 66 | } 67 | 68 | void dropcb() 69 | { 70 | ++drop_count_; 71 | } 72 | 73 | int32_t count_ = 0; 74 | int32_t drop_count_ = 0; 75 | uint32_t stamp1_ = 0; 76 | uint32_t stamp2_ = 0; 77 | uint32_t stamp3_ = 0; 78 | }; 79 | 80 | typedef ublox_msg_filters::ExactTime Policy2; 81 | typedef ublox_msg_filters::ExactTime Policy3; 82 | typedef Synchronizer Sync2; 83 | typedef Synchronizer Sync3; 84 | 85 | ////////////////////////////////////////////////////////////////////////////////////////////////// 86 | // From here on we assume that testing the 3-message version is sufficient, so as not to duplicate 87 | // tests for everywhere from 2-9 88 | ////////////////////////////////////////////////////////////////////////////////////////////////// 89 | TEST(ExactTime, multipleTimes) 90 | { 91 | Sync3 sync(2); 92 | Helper h; 93 | sync.registerCallback(boost::bind(&Helper::cb3, &h, _1, _2, _3)); 94 | MsgPtr m(boost::make_shared()); 95 | m->iTOW = 0; 96 | 97 | sync.add<0>(m); 98 | ASSERT_EQ(h.count_, 0); 99 | 100 | m = boost::make_shared(); 101 | m->iTOW = 1; 102 | sync.add<1>(m); 103 | ASSERT_EQ(h.count_, 0); 104 | sync.add<0>(m); 105 | ASSERT_EQ(h.count_, 0); 106 | sync.add<2>(m); 107 | ASSERT_EQ(h.count_, 1); 108 | ASSERT_EQ(1, h.stamp1_); 109 | ASSERT_EQ(1, h.stamp2_); 110 | ASSERT_EQ(1, h.stamp3_); 111 | } 112 | 113 | TEST(ExactTime, queueSize) 114 | { 115 | Sync3 sync(1); 116 | Helper h; 117 | sync.registerCallback(boost::bind(&Helper::cb, &h)); 118 | MsgPtr m(boost::make_shared()); 119 | m->iTOW = 0; 120 | 121 | sync.add<0>(m); 122 | ASSERT_EQ(h.count_, 0); 123 | sync.add<1>(m); 124 | ASSERT_EQ(h.count_, 0); 125 | 126 | m = boost::make_shared(); 127 | m->iTOW = 1; 128 | sync.add<1>(m); 129 | ASSERT_EQ(h.count_, 0); 130 | 131 | m = boost::make_shared(); 132 | m->iTOW = 0; 133 | sync.add<1>(m); 134 | ASSERT_EQ(h.count_, 0); 135 | sync.add<2>(m); 136 | ASSERT_EQ(h.count_, 0); 137 | } 138 | 139 | TEST(ExactTime, dropCallback) 140 | { 141 | Sync2 sync(1); 142 | Helper h; 143 | sync.registerCallback(boost::bind(&Helper::cb, &h)); 144 | sync.getPolicy()->registerDropCallback(boost::bind(&Helper::dropcb, &h)); 145 | MsgPtr m(boost::make_shared()); 146 | 147 | m->iTOW = 0; 148 | 149 | sync.add<0>(m); 150 | ASSERT_EQ(h.drop_count_, 0); 151 | m->iTOW = 1; 152 | sync.add<0>(m); 153 | 154 | ASSERT_EQ(h.drop_count_, 1); 155 | } 156 | 157 | int main(int argc, char **argv){ 158 | testing::InitGoogleTest(&argc, argv); 159 | ros::init(argc, argv, "blah"); 160 | 161 | ros::Time::init(); 162 | ros::Time::setNow(ros::Time()); 163 | 164 | return RUN_ALL_TESTS(); 165 | } 166 | -------------------------------------------------------------------------------- /ublox_msgs/CHANGELOG.rst: -------------------------------------------------------------------------------- 1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2 | Changelog for package ublox_msgs 3 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 4 | 5 | 1.5.0 (2021-10-15) 6 | ------------------ 7 | * Fixed reconfig value in UBX_CFG_ANT. 8 | * Contributors: ito-san 9 | 10 | 1.4.1 (2020-06-04) 11 | ------------------ 12 | 13 | 1.4.0 (2020-05-28) 14 | ------------------ 15 | * Bump CMake minimum version to 3.0.2 16 | * Contributors: Gonçalo Pereira 17 | 18 | 1.3.1 (2020-03-12) 19 | ------------------ 20 | 21 | 1.3.0 (2020-01-10) 22 | ------------------ 23 | * Fix heading accuracy unit in comments 24 | * CfgNAV5: add dynamic model bike 25 | * Contributors: Ferry Schoenmakers, Raphael Riebl 26 | 27 | 1.2.0 (2019-11-19) 28 | ------------------ 29 | * Add support for ZED-F9P new RELPOSNED message and provide heading output 30 | Fix whitespacing... 31 | Add RELPOSNED9 message to compile 32 | * Add TIM product and M8U functionality as well as the TIM-TM2 message (`#27 `_) 33 | * comment cleanup 34 | * added MonHW message for Firmware 6. 35 | * fixed incorrect message id 36 | * Contributors: Evan Flynn, Ferry Schoenmakers, Veronica Lane 37 | 38 | 1.1.2 (2017-08-02) 39 | ------------------ 40 | * README and package xml updates 41 | * added USB Cfg PRT parameters and configuration 42 | * Added doxygen comments and made minor cleanup changes. 43 | * Added typedefs, cleaned up formatting, and added doxygen comments. Removed try-catch statements for serializing optional blocks and used the message count to determine the size of the optional block. 44 | * Added doxygen comments 45 | * Changed how ACKs are handled. They are now handled through callback functions and are included in the CallbackHandlers. 46 | * Added UPD messages. 47 | * Added Cfg NMEA messages for firmware 6 & 7, since the messages are a different length 48 | * Added the CfgDAT message with custom serialization for get/set (read/write) since the messages are different lengths 49 | * corrected message comment which had incorrect units 50 | * Added CfgNMEA message 51 | * Added constants for NavSAT flags bitmask 52 | * Contributors: Veronica Lane 53 | 54 | 1.1.0 (2017-07-17) 55 | ------------------ 56 | * Updated package xmls with new version number and corrected my email address. Also updated readme to include information about new version plus new parameter 57 | * changed name of macro for clarity 58 | * Added Cfg RST message declaration and reset function. For Firmware 8, after reconfiguring the GNSS, a cold restart is initiated. 59 | * node now configures INF messages 60 | * added CfgINF message 61 | * added comment about deprecated setting 62 | * Added NavPVT7 message since NavPVT message is a different length for firmware version 7. UbloxFirmware7Plus class now uses a template function to update diagnostics from NavPVT messages and to publish fix messages from NavPVT messages. 63 | * Added NavATT message 64 | * Added message declarations for newly included messages as well as serialization classes for messages with repeating blocks. 65 | * Added all ESF messages. Added HNR cfg message and HNR PVT message. Added MGA GAL message. 66 | * added constants for SBAS reserved and max tracking channels 67 | * comments cleanup 68 | * Added additional MON messages. Received INF messages are now printed to the ROS console. Also added constants and comments to serialization and a new macro so 1 message can have multiple class, message ID pairs. 69 | * Added NavSAT message and moved subscribers for messages deprecated in version 8 to version specific subscribe methods 70 | * Added Error message for ASIO read read errors and fixed a comment in cfg rate 71 | * Includes BUG FIX (keep reading). Added Ublox messages (and subscribers or configuration methods + params) for High Precision GNSS devices: CfgDGNSS, NavRELPOSNED, NavSVIN. Also added subscriber & message for RxmRTCM. Changed MonVER processing, it now determines the protocol version, hardware type (e.g. SPG/HPG), and supported GNSS (e.g. Glonass, SBAS). SBAS can now be disabled on SBAS supported devices (previously SBAS settings were ignored if enable_sbas was false to prevent crashes, now it checks the MonVER message before trying to configure SBAS. 72 | * Added CfgTMODE3 message for High Precision GNSS products 73 | * Contributors: Veronica Lane 74 | 75 | 1.0.0 (2017-06-23) 76 | ------------------ 77 | * added myself as maintainer to package xmls and updated version numbers of modified packages. 78 | * Baud rate and in/out protocol mask are now configurable through params and are no longer hard coded. 79 | * Added constants for RTCM and ACK messages 80 | * Message comment updates 81 | * PRT message is now generic. Added constants for SPI, USB, and DDC configurations. 82 | * Update CfgGNSS message and serialization which now publishes and receives blocks and reads and configures all GNSS settings at once. Updated MonVER message and serialization, MonVER settings are displayed during initialization, including extension chars. Changed various std::cout messages to ROS_INFO and ROS_ERROR messages. 83 | * updated comments 84 | * Serialization for RxmSFRBX and RxmRAWX 85 | * Updated AID, RXM, and NAV messages to ublox 8 protocol. Added RxmSFRBX and RxmRAWX messages. Also did a 2nd pass on CFG messages for ublox 8 update. Need to serialize SFRBX. 86 | * Fixed build errors with nav msgs and updated remaining cfg messages for firmware 8 87 | * updated Cfg Nav 5 and X5 messages for firmware version 8 88 | * comment cleanup for nav pvt msg 89 | * Added Nav PVT message for protocol 8 and added publisher for ECEF messages in node. 90 | * Fix value of GPS_TIME_ONLY_FIX constant 91 | * Contributors: Kartik Mohta, Veronica Lane 92 | 93 | 0.0.5 (2016-08-06) 94 | ------------------ 95 | 96 | 0.0.4 (2014-12-08) 97 | ------------------ 98 | * Add install targets 99 | * Contributors: Kartik Mohta 100 | 101 | 0.0.3 (2014-10-18) 102 | ------------------ 103 | * Added MonVER, cleaned up make files a bit 104 | * Adde c++ stuff for NAVX5 message 105 | * Added message for NAVX5 106 | * Added option to run in gps only mode 107 | * Added message type for GNSS config 108 | * Contributors: Gareth Cross 109 | 110 | 0.0.2 (2014-10-03) 111 | ------------------ 112 | 113 | 0.0.1 (2014-08-15) 114 | ------------------ 115 | 116 | 0.0.0 (2014-06-23) 117 | ------------------ 118 | * ublox: first commit 119 | * Contributors: Chao Qu 120 | -------------------------------------------------------------------------------- /ublox_msgs/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.0.2) 2 | project(ublox_msgs) 3 | 4 | find_package(catkin REQUIRED COMPONENTS message_generation ublox_serialization std_msgs sensor_msgs) 5 | 6 | add_message_files(DIRECTORY msg) 7 | generate_messages(DEPENDENCIES std_msgs sensor_msgs) 8 | 9 | catkin_package( 10 | INCLUDE_DIRS include 11 | LIBRARIES ${PROJECT_NAME} 12 | CATKIN_DEPENDS message_runtime ublox_serialization std_msgs sensor_msgs) 13 | 14 | include_directories(${PROJECT_SOURCE_DIR}/include) 15 | include_directories(${ublox_serialization_INCLUDE_DIRS}) 16 | 17 | add_library(${PROJECT_NAME} src/ublox_msgs.cpp) 18 | 19 | add_dependencies(${PROJECT_NAME} 20 | ${${PROJECT_NAME}_EXPORTED_TARGETS} 21 | ${catkin_EXPORTED_TARGETS} 22 | ) 23 | 24 | target_link_libraries(${PROJECT_NAME} 25 | ${catkin_LIBRARIES} 26 | ) 27 | 28 | install(TARGETS ${PROJECT_NAME} 29 | ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} 30 | LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} 31 | RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} 32 | ) 33 | 34 | install(DIRECTORY include/ 35 | DESTINATION ${CATKIN_GLOBAL_INCLUDE_DESTINATION} 36 | PATTERN ".svn" EXCLUDE 37 | ) 38 | -------------------------------------------------------------------------------- /ublox_msgs/msg/Ack.msg: -------------------------------------------------------------------------------- 1 | # ACK (0x05) 2 | # Message Acknowledged / Not-Acknowledged 3 | # 4 | # Output upon processing of an input message 5 | # 6 | 7 | uint8 CLASS_ID = 5 8 | uint8 NACK_MESSAGE_ID = 0 9 | uint8 ACK_MESSAGE_ID = 1 10 | 11 | uint8 clsID # Class ID of the (Not-)Acknowledged Message 12 | uint8 msgID # Message ID of the (Not-)Acknowledged Message -------------------------------------------------------------------------------- /ublox_msgs/msg/AidALM.msg: -------------------------------------------------------------------------------- 1 | # AID-ALM (0x0B 0x30) 2 | # GPS Aiding Almanach Input/Output Message 3 | # 4 | # All UBX-AID messages are deprecated; use UBX-MGA messages instead 5 | # - If the WEEK Value is 0, DWRD0 to DWRD7 are not sent as the almanach is not 6 | # available for the given SV. This may happen even if NAV-SVINFO and RXM-SVSI 7 | # are indicating almanac availability as the internal data may not represent 8 | # the content of an original broadcast almanac (or only parts thereof). 9 | # - DWORD0 to DWORD7 contain the 8 words following the Hand-Over Word ( HOW ) 10 | # from the GPS navigation message, either pages 1 to 24 of sub-frame 5 or 11 | # pages 2 to 10 of subframe 4. See IS-GPS-200 for a full description of the 12 | # contents of the Almanac pages. 13 | # - In DWORD0 to DWORD7, the parity bits have been removed, and the 24 bits of 14 | # data are located in Bits 0 to 23. Bits 24 to 31 shall be ignored. 15 | # - Example: Parameter e (Eccentricity) from Almanach Subframe 4/5, Word 3, 16 | # Bits 69-84 within the subframe can be found in DWRD0, Bits 15-0 whereas 17 | # Bit 0 is the LSB. 18 | 19 | uint8 CLASS_ID = 11 20 | uint8 MESSAGE_ID = 48 21 | 22 | uint32 svid # SV ID for which the receiver shall return its 23 | # Almanac Data (Valid Range: 1 .. 32 or 51, 56, 63). 24 | uint32 week # Issue Date of Almanach (GPS week number) 25 | 26 | # Start of optional block 27 | uint32[] dwrd # Almanach Words 28 | # End of optional block 29 | -------------------------------------------------------------------------------- /ublox_msgs/msg/AidEPH.msg: -------------------------------------------------------------------------------- 1 | # AID-EPH (0x0B 0x31) 2 | # GPS Aiding Ephemeris Input/Output Message 3 | # 4 | # All UBX-AID messages are deprecated; use UBX-MGA messages instead 5 | # - SF1D0 to SF3D7 is only sent if ephemeris is available for this SV. If not, the payload may 6 | # be reduced to 8 Bytes, or all bytes are set to zero, indicating that this SV Number does 7 | # not have valid ephemeris for the moment. This may happen even if NAV-SVINFO and 8 | # RXM-SVSI are indicating ephemeris availability as the internal data may not represent the 9 | # content of an original broadcast ephemeris (or only parts thereof). 10 | # - SF1D0 to SF3D7 contain the 24 words following the Hand-Over Word ( HOW ) from the 11 | # GPS navigation message, subframes 1 to 3. The Truncated TOW Count is not valid and 12 | # cannot be used. See IS-GPS-200 for a full description of the contents of the Subframes. 13 | # - In SF1D0 to SF3D7, the parity bits have been removed, and the 24 bits of data are 14 | # located in Bits 0 to 23. Bits 24 to 31 shall be ignored. 15 | # - When polled, the data contained in this message does not represent the full original 16 | # ephemeris broadcast. Some fields that are irrelevant to u-blox receivers may be missing. 17 | # The week number in Subframe 1 has already been modified to match the Time Of 18 | # Ephemeris (TOE). 19 | 20 | uint8 CLASS_ID = 11 21 | uint8 MESSAGE_ID = 49 22 | 23 | uint32 svid # SV ID for which this ephemeris data is 24 | # (Valid Range: 1 .. 32). 25 | uint32 how # Hand-Over Word of first Subframe. This is 26 | # required if data is sent to the receiver. 27 | # 0 indicates that no Ephemeris Data is following. 28 | 29 | # Start of optional block 30 | uint32[] sf1d # Subframe 1 Words 3..10 (SF1D0..SF1D7) 31 | uint32[] sf2d # Subframe 2 Words 3..10 (SF2D0..SF2D7) 32 | uint32[] sf3d # Subframe 3 Words 3..10 (SF3D0..SF3D7) 33 | # End of optional block 34 | -------------------------------------------------------------------------------- /ublox_msgs/msg/AidHUI.msg: -------------------------------------------------------------------------------- 1 | # AID-HUI (0x0B 0x02) 2 | # GPS Health, UTC and ionosphere parameters 3 | # 4 | # All UBX-AID messages are deprecated; use UBX-MGA messages instead. 5 | # This message contains a health bit mask, UTC time and Klobuchar parameters. For more 6 | # information on these parameters, please see the ICD-GPS-200 documentation. 7 | 8 | uint8 CLASS_ID = 11 9 | uint8 MESSAGE_ID = 2 10 | 11 | uint32 health # Bitmask, every bit represents a GPS SV (1-32). 12 | # If the bit is set the SV is healthy. 13 | float64 utcA0 # UTC - parameter A0 14 | float64 utcA1 # UTC - parameter A1 15 | int32 utcTOW # UTC - reference time of week 16 | int16 utcWNT # UTC - reference week number 17 | int16 utcLS # UTC - time difference due to leap seconds before event 18 | int16 utcWNF # UTC - week number when next leap second event occurs 19 | int16 utcDN # UTC - day of week when next leap second event occurs 20 | int16 utcLSF # UTC - time difference due to leap seconds after event 21 | int16 utcSpare # UTC - Spare to ensure structure is a multiple of 4 22 | # bytes 23 | float32 klobA0 # Klobuchar - alpha 0 [s] 24 | float32 klobA1 # Klobuchar - alpha 1 [s/semicircle] 25 | float32 klobA2 # Klobuchar - alpha 2 [s/semicircle^2] 26 | float32 klobA3 # Klobuchar - alpha 3 [s/semicircle^3] 27 | float32 klobB0 # Klobuchar - beta 0 [s] 28 | float32 klobB1 # Klobuchar - beta 1 [s/semicircle] 29 | float32 klobB2 # Klobuchar - beta 2 [s/semicircle^2] 30 | float32 klobB3 # Klobuchar - beta 3 [s/semicircle^3] 31 | uint32 flags # flags 32 | uint32 FLAGS_HEALTH = 1 # Healthmask field in this message is valid 33 | uint32 FLAGS_UTC = 2 # UTC parameter fields in this message are valid 34 | uint32 FLAGS_KLOB = 4 # Klobuchar parameter fields in this message are 35 | # valid 36 | -------------------------------------------------------------------------------- /ublox_msgs/msg/CfgANT.msg: -------------------------------------------------------------------------------- 1 | # CFG-ANT (0x06 0x13) 2 | # Antenna Control Settings 3 | # 4 | 5 | uint8 CLASS_ID = 6 6 | uint8 MESSAGE_ID = 19 7 | 8 | uint16 flags # Antenna Flag Mask 9 | uint16 FLAGS_SVCS = 1 # Enable Antenna Supply Voltage Control Signal 10 | uint16 FLAGS_SCD = 2 # Enable Short Circuit Detection 11 | uint16 FLAGS_OCD = 4 # Enable Open Circuit Detection 12 | uint16 FLAGS_PDWN_ON_SCD = 8 # Power Down Antenna supply if Short Circuit is 13 | # detected. (only in combination with Bit 1) 14 | uint16 FLAGS_RECOVERY = 16 # Enable automatic recovery from short state 15 | 16 | uint16 pins # Antenna Pin Configuration 17 | uint16 PIN_SWITCH_MASK = 31 # PIO-Pin used for switching antenna supply 18 | # (internal to TIM-LP/TIM-LF) 19 | uint16 PIN_SCD_MASK = 992 # PIO-Pin used for detecting a short in the 20 | # antenna supply 21 | uint16 PIN_OCD_MASK = 31744 # PIO-Pin used for detecting open/not connected 22 | # antenna 23 | uint16 PIN_RECONFIG = 32768 # if set to one, and this command is sent to the 24 | # receiver, the receiver will reconfigure the 25 | # pins as specified. 26 | -------------------------------------------------------------------------------- /ublox_msgs/msg/CfgCFG.msg: -------------------------------------------------------------------------------- 1 | # CFG-CFG (0x06 0x09) 2 | # Clear, Save and Load configurations 3 | # 4 | 5 | uint8 CLASS_ID = 6 6 | uint8 MESSAGE_ID = 9 7 | 8 | uint32 clearMask # Mask with configuration sub-sections to Clear 9 | # (=Load Default Configurations to Permanent 10 | # Configurations in non-volatile memory) 11 | uint32 saveMask # Mask with configuration sub-section to Save 12 | # (=Save Current Configuration to Non-volatile 13 | # Memory) 14 | uint32 loadMask # Mask with configuration sub-sections to Load 15 | # (=Load Permanent Configurations from 16 | # Non-volatile Memory to Current Configurations) 17 | 18 | uint32 MASK_IO_PORT = 1 # Communications port settings. Modifying this 19 | # sub-section results in an IO system reset. 20 | # Because of this undefined data may be output 21 | # for a short period of time after receiving the 22 | # message. 23 | uint32 MASK_MSG_CONF = 2 # Message Configuration 24 | uint32 MASK_INF_MSG = 4 # INF Message Configuration 25 | uint32 MASK_NAV_CONF = 8 # Navigation Configuration 26 | uint32 MASK_RXM_CONF = 16 # Receiver Manager Configuration 27 | uint32 MASK_SEN_CONF = 256 # Sensor Interface Configuration, protocol >= 19 28 | uint32 MASK_RINV_CONF = 512 # Remote Inventory Configuration 29 | uint32 MASK_ANT_CONF = 1024 # Antenna Configuration 30 | uint32 MASK_LOG_CONF = 2048 # Logging Configuration 31 | uint32 MASK_FTS_CONF = 4096 # FTS Configuration. Only applicable to the 32 | # FTS product variant. 33 | 34 | uint8 deviceMask # Mask which selects the devices for this command 35 | uint8 DEV_BBR = 1 # device battery backed RAM 36 | uint8 DEV_FLASH = 2 # device Flash 37 | uint8 DEV_EEPROM = 4 # device EEPROM 38 | uint8 DEV_SPI_FLASH = 16 # device SPI Flash 39 | -------------------------------------------------------------------------------- /ublox_msgs/msg/CfgDAT.msg: -------------------------------------------------------------------------------- 1 | # CFG-DAT (0x06 0x06) 2 | # Set User-defined Datum 3 | # 4 | # For more information see the description of Geodetic Systems and Frames. 5 | # 6 | 7 | uint8 CLASS_ID = 6 8 | uint8 MESSAGE_ID = 6 9 | 10 | # Only for GET, these values are not used for write 11 | uint16 datumNum # Datum Number: 0 = WGS84, 0xFFFF = user-defined 12 | uint16 DATUM_NUM_WGS84 = 0 13 | uint16 DATUM_NUM_USER = 65535 14 | 15 | uint8[6] datumName # ASCII String: WGS84 or USER 16 | 17 | float64 majA # Semi-major Axis [m] 18 | # accepted range = 6,300,000.0 to 6,500,000.0 meters 19 | float64 flat # 1.0 / Flattening 20 | # accepted range is 0.0 to 500.0 21 | 22 | float32 dX # X Axis shift at the origin [m] 23 | # accepted range is +/- 5000.0 meters 24 | float32 dY # Y Axis shift at the origin [m] 25 | # accepted range is +/- 5000.0 meters 26 | float32 dZ # Z Axis shift at the origin [m] 27 | # accepted range is +/- 5000.0 meters 28 | 29 | float32 rotX # Rotation about the X Axis [s] 30 | # accepted range is +/- 20.0 milli-arc seconds 31 | float32 rotY # Rotation about the Y Axis [s] 32 | # accepted range is +/- 20.0 milli-arc seconds 33 | float32 rotZ # Rotation about the Z Axis [s] 34 | # accepted range is +/- 20.0 milli-arc seconds 35 | 36 | float32 scale # Scale change [ppm] 37 | # accepted range is 0.0 to 50.0 parts per million -------------------------------------------------------------------------------- /ublox_msgs/msg/CfgDGNSS.msg: -------------------------------------------------------------------------------- 1 | # CFG-DGNSS (0x06 0x70) 2 | # DGNSS configuration 3 | # 4 | # This message allows the user to configure the DGNSS configuration of the 5 | # receiver. 6 | # Supported on: 7 | # - u-blox 8 / u-blox M8 from protocol version 20.01 up to version 23.01 (only 8 | # with High Precision GNSS products) 9 | 10 | uint8 CLASS_ID = 6 11 | uint8 MESSAGE_ID = 112 12 | 13 | uint8 dgnssMode # Specifies differential mode: 14 | uint8 DGNSS_MODE_RTK_FLOAT = 2 # RTK float: No attempts are made to fix 15 | # ambiguities. 16 | uint8 DGNSS_MODE_RTK_FIXED = 3 # RTK fixed: Ambiguities are fixed whenever 17 | # possible. 18 | uint8[3] reserved0 # Reserved -------------------------------------------------------------------------------- /ublox_msgs/msg/CfgGNSS.msg: -------------------------------------------------------------------------------- 1 | # CFG-GNSS (0x06 0x3E) 2 | # GNSS Configuration 3 | # 4 | # Gets or sets the GNSS system channel sharing configuration. 5 | # If the receiver is sent a valid new configuration, it will respond with a 6 | # UBX-ACK-ACK message and immediately change to the new configuration. Otherwise 7 | # the receiver will reject the request, by issuing a UBX-ACK-NAK and continuing 8 | # operation with the previous configuration. 9 | # Configuration requirements: 10 | # - It is necessary for at least one major GNSS to be enabled, after applying 11 | # the new configuration to the current one. 12 | # - It is also required that at least 4 tracking channels are available to each 13 | # enabled major GNSS, i.e. maxTrkCh must have a minimum value of 4 for each 14 | # enabled major GNSS. 15 | # - The number of tracking channels in use must not exceed the number of 16 | # tracking channels available in hardware, and the sum of all reserved 17 | # tracking channels needs to be less than or equal to the number of tracking 18 | # channels in use. 19 | # Notes: 20 | # - To avoid cross-correlation issues, it is recommended that GPS and QZSS are 21 | # always both enabled or both disabled. 22 | # - Polling this message returns the configuration of all supported GNSS, 23 | # whether enabled or not; it may also include GNSS unsupported by the 24 | # particular product, but in such cases the enable flag will always be unset. 25 | # - See section GNSS Configuration for a discussion of the use of this message 26 | # and section Satellite Numbering for a description of the GNSS IDs available 27 | # - Configuration specific to the GNSS system can be done via other messages 28 | # (e.g. UBX-CFG-SBAS). 29 | # 30 | 31 | uint8 CLASS_ID = 6 32 | uint8 MESSAGE_ID = 62 33 | 34 | uint8 msgVer # Message version (= 0 for this version) 35 | uint8 numTrkChHw # Number of tracking channels in hardware (read only) 36 | uint8 numTrkChUse # (Read only in protocol versions greater than 23) 37 | # Number of tracking channels to use (<= numTrkChHw) 38 | # If 0xFF, then number of tracking channels to use will 39 | # be set to numTrkChHw 40 | uint8 numConfigBlocks # Number of configuration blocks following 41 | 42 | # Start of repeated block (numConfigBlocks times) 43 | CfgGNSS_Block[] blocks 44 | # End of repeated block -------------------------------------------------------------------------------- /ublox_msgs/msg/CfgGNSS_Block.msg: -------------------------------------------------------------------------------- 1 | # see Cfg-GNSS message 2 | # 3 | 4 | uint8 gnssId # System identifier (see Satellite Numbering) 5 | 6 | uint8 GNSS_ID_GPS = 0 7 | uint8 GNSS_ID_SBAS = 1 8 | uint8 GNSS_ID_GALILEO = 2 9 | uint8 GNSS_ID_BEIDOU = 3 10 | uint8 GNSS_ID_IMES = 4 11 | uint8 GNSS_ID_QZSS = 5 12 | uint8 GNSS_ID_GLONASS = 6 13 | 14 | uint8 resTrkCh # (Read only in protocol versions greater than 23) 15 | # Number of reserved (minimum) tracking channels 16 | # for this GNSS system 17 | uint8 RES_TRK_CH_GPS = 8 18 | uint8 RES_TRK_CH_QZSS = 0 19 | uint8 RES_TRK_CH_SBAS = 0 20 | uint8 RES_TRK_CH_GLONASS = 8 21 | uint8 maxTrkCh # (Read only in protocol versions greater than 23) 22 | # Maximum number of tracking channels used for this 23 | # system. Must be > 0, >= resTrkChn, <= numTrkChUse and 24 | # <= maximum number of tracking channels supported for 25 | # this system 26 | uint8 MAX_TRK_CH_MAJOR_MIN = 4 # maxTrkCh must have this minimum value 27 | # for each enabled major GNSS 28 | uint8 MAX_TRK_CH_GPS = 16 29 | uint8 MAX_TRK_CH_GLONASS = 14 30 | uint8 MAX_TRK_CH_QZSS = 3 31 | uint8 MAX_TRK_CH_SBAS = 3 32 | 33 | uint8 reserved1 # Reserved 34 | 35 | uint32 flags # Bitfield of flags. At least one signal must be 36 | # configured in every enabled system. 37 | uint32 FLAGS_ENABLE = 1 # Enable this system 38 | uint32 FLAGS_SIG_CFG_MASK = 16711680 # Signal configuration mask 39 | uint32 SIG_CFG_GPS_L1CA = 65536 # When gnssId is 0 (GPS) 40 | # * 0x01 = GPS L1C/A 41 | uint32 SIG_CFG_SBAS_L1CA = 65536 # When gnssId is 1 (SBAS) 42 | # * 0x01 = SBAS L1C/A 43 | uint32 SIG_CFG_GALILEO_E1OS = 65536 # When gnssId is 2 (Galileo) 44 | # * 0x01 = Galileo E1OS (not supported in 45 | # protocol versions less than 18) 46 | uint32 SIG_CFG_BEIDOU_B1I = 65536 # When gnssId is 3 (BeiDou) 47 | # * 0x01 = BeiDou B1I 48 | uint32 SIG_CFG_IMES_L1 = 65536 # When gnssId is 4 (IMES) 49 | # * 0x01 = IMES L1 50 | uint32 SIG_CFG_QZSS_L1CA = 65536 # When gnssId is 5 (QZSS) 51 | # * 0x01 = QZSS L1C/A 52 | uint32 SIG_CFG_QZSS_L1SAIF = 262144 # * 0x04 = QZSS L1SAIF 53 | uint32 SIG_CFG_GLONASS_L1OF = 65536 # When gnssId is 6 (GLONASS) 54 | # * 0x01 = GLONASS L1OF -------------------------------------------------------------------------------- /ublox_msgs/msg/CfgHNR.msg: -------------------------------------------------------------------------------- 1 | # CFG-HNR (0x06 0x5C) 2 | # High Navigation Rate Settings 3 | # 4 | # The u-blox receivers support high rates of navigation update up to 30 Hz. 5 | # The navigation solution output (NAV-HNR) will not be aligned to the top of a 6 | # second. 7 | # The update rate has a direct influence on the power consumption. The more 8 | # fixes that are required, the more CPU power and communication resources are 9 | # required. 10 | # For most applications a 1 Hz update rate would be sufficient. 11 | # 12 | # (only with ADR or UDR products) 13 | # 14 | 15 | uint8 CLASS_ID = 6 16 | uint8 MESSAGE_ID = 92 17 | 18 | uint8 highNavRate # Rate of navigation solution output [Hz] 19 | uint8[3] reserved0 # Reserved -------------------------------------------------------------------------------- /ublox_msgs/msg/CfgINF.msg: -------------------------------------------------------------------------------- 1 | # CFG-INF (0x06 0x02) 2 | # Information message configuration 3 | # 4 | # The value of infMsgMask[x] below are that each bit represents one of the INF 5 | # class messages (Bit 0 for ERROR, Bit 1 for WARNING and so on.). For a complete 6 | # list, see the Message Class INF. Several configurations can be concatenated to 7 | # one input message. 8 | # In this case the payload length can be a multiple of the normal length. Output 9 | # messages from the module contain only one configuration unit. Note that I/O 10 | # Ports 1 and 2 correspond to serial ports 1 and 2. I/O port 0 is DDC. I/O port 11 | # 3 is USB. I/O port 4 is SPI. I/O port 5 is reserved for future use 12 | # 13 | 14 | uint8 CLASS_ID = 6 15 | uint8 MESSAGE_ID = 2 16 | 17 | # start of repeated block 18 | CfgINF_Block[] blocks 19 | # end of repeated block 20 | -------------------------------------------------------------------------------- /ublox_msgs/msg/CfgINF_Block.msg: -------------------------------------------------------------------------------- 1 | # See CfgINF message 2 | # 3 | 4 | uint8 protocolID # Protocol Identifier, identifying for which 5 | # protocol the configuration is set/get. The 6 | # following are valid Protocol Identifiers: 7 | # 0: UBX Protocol 8 | # 1: NMEA Protocol 9 | # 2-255: Reserved 10 | uint8 PROTOCOL_ID_UBX = 0 11 | uint8 PROTOCOL_ID_NMEA = 1 12 | 13 | uint8[3] reserved1 # Reserved 14 | 15 | uint8[6] infMsgMask # A bit mask, saying which information messages 16 | # are enabled on each I/O port 17 | uint8 INF_MSG_ERROR = 1 # enable ERROR 18 | uint8 INF_MSG_WARNING = 2 # enable WARNING 19 | uint8 INF_MSG_NOTICE = 4 # enable NOTICE 20 | uint8 INF_MSG_TEST = 8 # enable TEST 21 | uint8 INF_MSG_DEBUG = 16 # enable DEBUG -------------------------------------------------------------------------------- /ublox_msgs/msg/CfgMSG.msg: -------------------------------------------------------------------------------- 1 | # CFG-MSG (0x06 0x01) 2 | # Message Rate(s) 3 | # 4 | # Set message rate for the current port 5 | 6 | uint8 CLASS_ID = 6 7 | uint8 MESSAGE_ID = 1 8 | 9 | uint8 msgClass # Message Class 10 | uint8 msgID # Message Identifier 11 | uint8 rate # Send rate on current port 12 | # [number of navigation solutions] 13 | -------------------------------------------------------------------------------- /ublox_msgs/msg/CfgNAV5.msg: -------------------------------------------------------------------------------- 1 | # CFG-NAV5 (0x06 0x24) 2 | # Navigation Engine Settings 3 | 4 | uint8 CLASS_ID = 6 5 | uint8 MESSAGE_ID = 36 6 | 7 | uint16 mask # Parameters Bitmask. Only the masked 8 | # parameters will be applied. 9 | uint16 MASK_DYN = 1 # Apply dynamic model settings 10 | uint16 MASK_MIN_EL = 2 # Apply minimum elevation settings 11 | uint16 MASK_FIX_MODE = 4 # Apply fix mode settings 12 | uint16 MASK_DR_LIM = 8 # Apply DR limit settings 13 | uint16 MASK_POS_MASK = 16 # Apply position mask settings 14 | uint16 MASK_TIME_MASK = 32 # Apply time mask settings 15 | uint16 MASK_STATIC_HOLD_MASK = 64 # Apply static hold settings 16 | uint16 MASK_DGPS_MASK = 128 # Apply DGPS settings, firmware >= 7 only 17 | uint16 MASK_CNO = 256 # Apply CNO threshold settings 18 | uint16 MASK_UTC = 1024 # Apply UTC settings, protocol >= 16 only 19 | 20 | uint8 dynModel # Dynamic Platform model: 21 | uint8 DYN_MODEL_PORTABLE = 0 # Portable 22 | uint8 DYN_MODEL_STATIONARY = 2 # Stationary 23 | uint8 DYN_MODEL_PEDESTRIAN = 3 # Pedestrian 24 | uint8 DYN_MODEL_AUTOMOTIVE = 4 # Automotive 25 | uint8 DYN_MODEL_SEA = 5 # Sea 26 | uint8 DYN_MODEL_AIRBORNE_1G = 6 # Airborne with <1g Acceleration 27 | uint8 DYN_MODEL_AIRBORNE_2G = 7 # Airborne with <2g Acceleration 28 | uint8 DYN_MODEL_AIRBORNE_4G = 8 # Airborne with <4g Acceleration 29 | uint8 DYN_MODEL_WRIST_WATCH = 9 # Wrist watch, protocol >= 18 30 | uint8 DYN_MODEL_BIKE = 10 # Bike, protocol >= 19.2 31 | 32 | uint8 fixMode # Position Fixing Mode. 33 | uint8 FIX_MODE_2D_ONLY = 1 # 2D only 34 | uint8 FIX_MODE_3D_ONLY = 2 # 3D only 35 | uint8 FIX_MODE_AUTO = 3 # Auto 2D/3D 36 | 37 | int32 fixedAlt # Fixed altitude (mean sea level) for 2D fix mode. 38 | # [m / 0.01] 39 | uint32 fixedAltVar # Fixed altitude variance for 2D mode. [m^2 / 0.0001] 40 | int8 minElev # Minimum Elevation for a GNSS satellite to be used in 41 | # NAV [deg] 42 | uint8 drLimit # Maximum time to perform dead reckoning [s] 43 | # (linear extrapolation) in case of GPS signal loss 44 | uint16 pDop # Position DOP Mask to use [1 / 0.1] 45 | uint16 tDop # Time DOP Mask to use [1 / 0.1] 46 | uint16 pAcc # Position Accuracy Mask [m] 47 | uint16 tAcc # Time Accuracy Mask [m] 48 | uint8 staticHoldThresh # Static hold threshold [cm/s] 49 | uint8 dgnssTimeOut # DGNSS timeout, firmware 7 and newer only [s] 50 | 51 | uint8 cnoThreshNumSvs # Number of satellites required to have C/N0 above 52 | # cnoThresh for a fix to be attempted 53 | uint8 cnoThresh # C/N0 threshold for deciding whether to attempt a fix 54 | # [dBHz] 55 | uint8[2] reserved1 # Reserved 56 | 57 | uint16 staticHoldMaxDist # Static hold distance threshold (before quitting 58 | # static hold) [m] 59 | uint8 utcStandard # UTC standard to be used: 60 | uint8 UTC_STANDARD_AUTOMATIC = 0 # receiver selects based on GNSS configuration 61 | uint8 UTC_STANDARD_GPS = 3 # UTC as operated by the U.S. Naval Observatory 62 | # (USNO); derived from GPS time 63 | uint8 UTC_STANDARD_GLONASS = 6 # UTC as operated by the former Soviet Union; 64 | # derived from GLONASS time 65 | uint8 UTC_STANDARD_BEIDOU = 7 # UTC as operated by the National Time Service 66 | # Center, China; derived from BeiDou time 67 | uint8[5] reserved2 # Reserved -------------------------------------------------------------------------------- /ublox_msgs/msg/CfgNAVX5.msg: -------------------------------------------------------------------------------- 1 | # CFG-NAVX5 (0x06 0x23) 2 | # Navigation Engine Expert Settings 3 | # 4 | # Warning: Refer to u-blox protocol spec before changing these settings. 5 | 6 | uint8 CLASS_ID = 6 7 | uint8 MESSAGE_ID = 35 8 | 9 | uint16 version # Message version (set to 0) 10 | 11 | uint16 mask1 # First parameters bitmask (possible values below) 12 | uint16 MASK1_MIN_MAX = 4 # apply min/max SVs settings 13 | uint16 MASK1_MIN_CNO = 8 # apply minimum C/N0 setting 14 | uint16 MASK1_INITIAL_FIX_3D = 64 # apply initial 3D fix settings 15 | uint16 MASK1_WKN_ROLL = 512 # apply GPS week number rollover settings 16 | uint16 MASK1_ACK_AID = 1024 # apply assistance acknowledgment 17 | # settings 18 | uint16 MASK1_PPP = 8192 # apply usePPP flag 19 | uint16 MASK1_AOP = 16384 # apply aopCfg (useAOP flag) and 20 | # aopOrbMaxErr settings 21 | # (AssistNow Autonomous) 22 | 23 | uint32 mask2 # Second parameters bitmask (possible values below) 24 | # Firmware >=8 only 25 | uint32 MASK2_ADR = 64 # Apply ADR sensor fusion on/off 26 | # setting 27 | uint32 MASK2_SIG_ATTEN_COMP_MODE = 128 # Apply signal attenuation 28 | # compensation feature settings 29 | 30 | uint8[2] reserved1 # Always set to zero 31 | 32 | uint8 minSVs # Minimum number of satellites for navigation 33 | uint8 maxSVs # Maximum number of satellites for navigation 34 | uint8 minCNO # Minimum satellite signal level for navigation [dBHz] 35 | 36 | uint8 reserved2 # Always set to zero 37 | 38 | uint8 iniFix3D # If set to 1, initial fix must be 3D 39 | 40 | uint8[2] reserved3 # Always set to zero 41 | 42 | uint8 ackAiding # If set to 1, issue acknowledgments for assistance 43 | uint16 wknRollover # GPS week rollover number, GPS week numbers will be set 44 | # correctly from this week up to 1024 weeks after this 45 | # week 46 | uint8 sigAttenCompMode # Permanently attenuated signal compensation [dBHz] 47 | # 0 = disabled, 255 = automatic 48 | # 1..63 = maximum expected C/N0 value 49 | # Firmware 8 only 50 | 51 | uint8[5] reserved4 # Always set to zero 52 | 53 | uint8 usePPP # Enable/disable PPP (on supported units) 54 | uint8 aopCfg # AssistNow Autonomous configuration, 1: enabled 55 | 56 | uint8[2] reserved5 # Always set to zero 57 | 58 | uint16 aopOrbMaxErr # Maximum acceptable (modeled) autonomous orbit 59 | # error [m] 60 | # valid range = 5..1000 61 | # 0 = reset to firmware default 62 | 63 | uint8[7] reserved6 # Always set to zero 64 | 65 | uint8 useAdr # Enable/disable ADR sensor fusion 66 | # 1: enabled, 0: disabled 67 | # Only supported on certain products 68 | -------------------------------------------------------------------------------- /ublox_msgs/msg/CfgNMEA.msg: -------------------------------------------------------------------------------- 1 | # CFG-NMEA (0x06 0x17) 2 | # NMEA protocol configuration V1 3 | # 4 | # Set/Get the NMEA protocol configuration. See section NMEA Protocol 5 | # Configuration for a detailed description of the configuration effects on 6 | # NMEA output 7 | # 8 | 9 | uint8 CLASS_ID = 6 10 | uint8 MESSAGE_ID = 23 11 | 12 | uint8 filter # filter flags 13 | uint8 FILTER_POS = 1 # Enable position output for failed or 14 | # invalid fixes 15 | uint8 FILTER_MSK_POS = 2 # Enable position output for invalid fixes 16 | uint8 FILTER_TIME = 4 # Enable time output for invalid times 17 | uint8 FILTER_DATE = 8 # Enable date output for invalid dates 18 | uint8 FILTER_GPS_ONLY = 16 # Restrict output to GPS satellites only 19 | uint8 FILTER_TRACK = 32 # Enable COG output even if COG is frozen 20 | 21 | uint8 nmeaVersion # NMEA version 22 | uint8 NMEA_VERSION_4_1 = 65 # Version 4.1 23 | uint8 NMEA_VERSION_4_0 = 64 # Version 4.0 24 | uint8 NMEA_VERSION_2_3 = 35 # Version 2.3 25 | uint8 NMEA_VERSION_2_1 = 33 # Version 2.1 26 | 27 | uint8 numSV # Maximum Number of SVs to report per TalkerId: 28 | # unlimited (0) or 8, 12, 16 29 | uint8 NUM_SV_UNLIMITED = 0 30 | 31 | uint8 flags # flags 32 | uint8 FLAGS_COMPAT = 1 # enable compatibility mode. 33 | # This might be needed for certain applications 34 | # when customer's NMEA parser expects a fixed 35 | # number of digits in position coordinates 36 | uint8 FLAGS_CONSIDER = 2 # enable considering mode 37 | uint8 FLAGS_LIMIT82 = 4 # enable strict limit to 82 characters maximum 38 | uint8 FLAGS_HIGH_PREC = 8 # enable high precision mode 39 | # This flag cannot be set in conjunction with 40 | # either Compatibility Mode or Limit82 Mode. 41 | # (not supported in protocol versions < 20.01) 42 | 43 | uint32 gnssToFilter # Filters out satellites based on their GNSS. 44 | # If a bitfield is enabled, the corresponding 45 | # satellites will be not output. 46 | uint32 GNSS_TO_FILTER_GPS = 1 # Disable reporting of GPS satellites 47 | uint32 GNSS_TO_FILTER_SBAS = 2 # Disable reporting of SBAS satellites 48 | uint32 GNSS_TO_FILTER_QZSS = 16 # Disable reporting of QZSS satellites 49 | uint32 GNSS_TO_FILTER_GLONASS = 32 # Disable reporting of GLONASS satellites 50 | uint32 GNSS_TO_FILTER_BEIDOU = 64 # Disable reporting of BeiDou satellites 51 | 52 | uint8 svNumbering # Configures the display of satellites that do not 53 | # have an NMEA-defined value. Note: this does not 54 | # apply to satellites with an unknown ID. 55 | uint8 SV_NUMBERING_STRICT = 0 # Strict - Satellites are not output 56 | uint8 SV_NUMBERING_EXTENDED = 1 # Extended - Use proprietary numbering 57 | 58 | uint8 mainTalkerId # By default the main Talker ID (i.e. the Talker 59 | # ID used for all messages other than GSV) is 60 | # determined by the GNSS assignment of the 61 | # receiver's channels (see CfgGNSS). 62 | # This field enables the main Talker ID to be 63 | # overridden 64 | uint8 MAIN_TALKER_ID_NOT_OVERRIDDEN = 0 # Main Talker ID is not overridden 65 | uint8 MAIN_TALKER_ID_GP = 1 # Set main Talker ID to 'GP' 66 | uint8 MAIN_TALKER_ID_GL = 2 # Set main Talker ID to 'GL' 67 | uint8 MAIN_TALKER_ID_GN = 3 # Set main Talker ID to 'GN' 68 | uint8 MAIN_TALKER_ID_GA = 4 # Set main Talker ID to 'GA' 69 | uint8 MAIN_TALKER_ID_GB = 5 # Set main Talker ID to 'GB' 70 | 71 | uint8 gsvTalkerId # By default the Talker ID for GSV messages is 72 | # GNSS specific (as defined by NMEA). This field 73 | # enables the GSV Talker ID to be overridden. 74 | uint8 GSV_TALKER_ID_GNSS_SPECIFIC = 0 # Use GNSS specific Talker ID 75 | # (as defined by NMEA) 76 | uint8 GSV_TALKER_ID_MAIN = 1 # Use the main Talker ID 77 | 78 | uint8 version # Message version (set to 1 for this version) 79 | uint8 VERSION = 1 80 | 81 | uint8[2] bdsTalkerId # Sets the two characters that should be used 82 | # for the BeiDou Talker ID. If these are set to 83 | # zero, the default BeiDou TalkerId will be used 84 | 85 | uint8[6] reserved1 # Reserved -------------------------------------------------------------------------------- /ublox_msgs/msg/CfgNMEA6.msg: -------------------------------------------------------------------------------- 1 | # CFG-NMEA (0x06 0x17) 2 | # NMEA protocol configuration 3 | # 4 | # Set/Get the NMEA protocol configuration. See section NMEA Protocol 5 | # Configuration for a detailed description of the configuration effects on 6 | # NMEA output 7 | # 8 | # Supported on u-blox 6 from firmware version 6.00 up to version 7.03. 9 | # 10 | 11 | uint8 CLASS_ID = 6 12 | uint8 MESSAGE_ID = 23 13 | 14 | uint8 filter # filter flags 15 | uint8 FILTER_POS = 1 # Disable position filtering 16 | uint8 FILTER_MSK_POS = 2 # Disable masked position filtering 17 | uint8 FILTER_TIME = 4 # Disable time filtering 18 | uint8 FILTER_DATE = 8 # Disable date filtering 19 | uint8 FILTER_SBAS_FILT = 16 # Enable SBAS filtering 20 | uint8 FILTER_TRACK = 32 # Disable track filtering 21 | 22 | uint8 version # NMEA version 23 | uint8 NMEA_VERSION_2_3 = 35 # Version 2.3 24 | uint8 NMEA_VERSION_2_1 = 33 # Version 2.1 25 | 26 | uint8 numSV # Maximum Number of SVs to report in NMEA 27 | # protocol. 28 | # This does not affect the receiver's operation. 29 | # It only limits the number of SVs reported in 30 | # NMEA mode (this might be needed with older 31 | # mapping applications which only support 8- or 32 | # 12-channel receivers) 33 | 34 | uint8 flags # flags 35 | uint8 FLAGS_COMPAT = 1 # enable compatibility mode. 36 | # This might be needed for certain applications 37 | # when customer's NMEA parser expects a fixed 38 | # number of digits in position coordinates 39 | uint8 FLAGS_CONSIDER = 2 # enable considering mode 40 | -------------------------------------------------------------------------------- /ublox_msgs/msg/CfgNMEA7.msg: -------------------------------------------------------------------------------- 1 | # CFG-NMEA (0x06 0x17) 2 | # NMEA protocol configuration V0 3 | # 4 | # Set/Get the NMEA protocol configuration. See section NMEA Protocol 5 | # Configuration for a detailed description of the configuration effects on 6 | # NMEA output 7 | # 8 | # Supported on: u-blox 7 firmware version 1.00 9 | # 10 | 11 | uint8 CLASS_ID = 6 12 | uint8 MESSAGE_ID = 23 13 | 14 | uint8 filter # filter flags 15 | uint8 FILTER_POS = 1 # Enable position output for failed or 16 | # invalid fixes 17 | uint8 FILTER_MSK_POS = 2 # Enable position output for invalid fixes 18 | uint8 FILTER_TIME = 4 # Enable time output for invalid times 19 | uint8 FILTER_DATE = 8 # Enable date output for invalid dates 20 | uint8 FILTER_GPS_ONLY = 16 # Restrict output to GPS satellites only 21 | uint8 FILTER_TRACK = 32 # Enable COG output even if COG is frozen 22 | 23 | uint8 nmeaVersion # NMEA version 24 | uint8 NMEA_VERSION_2_3 = 35 # Version 2.3 25 | uint8 NMEA_VERSION_2_1 = 33 # Version 2.1 26 | 27 | uint8 numSV # Maximum Number of SVs to report per TalkerId: 28 | # unlimited (0) or 8, 12, 16 29 | uint8 NUM_SV_UNLIMITED = 0 30 | 31 | uint8 flags # flags 32 | uint8 FLAGS_COMPAT = 1 # enable compatibility mode. 33 | # This might be needed for certain applications 34 | # when customer's NMEA parser expects a fixed 35 | # number of digits in position coordinates 36 | uint8 FLAGS_CONSIDER = 2 # enable considering mode 37 | 38 | uint32 gnssToFilter # Filters out satellites based on their GNSS. 39 | # If a bitfield is enabled, the corresponding 40 | # satellites will be not output. 41 | uint32 GNSS_TO_FILTER_GPS = 1 # Disable reporting of GPS satellites 42 | uint32 GNSS_TO_FILTER_SBAS = 2 # Disable reporting of SBAS satellites 43 | uint32 GNSS_TO_FILTER_QZSS = 16 # Disable reporting of QZSS satellites 44 | uint32 GNSS_TO_FILTER_GLONASS = 32 # Disable reporting of GLONASS satellites 45 | 46 | uint8 svNumbering # Configures the display of satellites that do not 47 | # have an NMEA-defined value. Note: this does not 48 | # apply to satellites with an unknown ID. 49 | uint8 SV_NUMBERING_STRICT = 0 # Strict - Satellites are not output 50 | uint8 SV_NUMBERING_EXTENDED = 1 # Extended - Use proprietary numbering 51 | 52 | uint8 mainTalkerId # By default the main Talker ID (i.e. the Talker 53 | # ID used for all messages other than GSV) is 54 | # determined by the GNSS assignment of the 55 | # receiver's channels (see CfgGNSS). 56 | # This field enables the main Talker ID to be 57 | # overridden 58 | uint8 MAIN_TALKER_ID_NOT_OVERRIDDEN = 0 # Main Talker ID is not overridden 59 | uint8 MAIN_TALKER_ID_GP = 1 # Set main Talker ID to 'GP' 60 | uint8 MAIN_TALKER_ID_GL = 2 # Set main Talker ID to 'GL' 61 | uint8 MAIN_TALKER_ID_GN = 3 # Set main Talker ID to 'GN' 62 | 63 | uint8 gsvTalkerId # By default the Talker ID for GSV messages is 64 | # GNSS specific (as defined by NMEA). This field 65 | # enables the GSV Talker ID to be overridden. 66 | uint8 GSV_TALKER_ID_GNSS_SPECIFIC = 0 # Use GNSS specific Talker ID 67 | # (as defined by NMEA) 68 | uint8 GSV_TALKER_ID_MAIN = 1 # Use the main Talker ID 69 | 70 | uint8 reserved # Reserved -------------------------------------------------------------------------------- /ublox_msgs/msg/CfgPRT.msg: -------------------------------------------------------------------------------- 1 | # CFG-PRT (0x06 0x00) 2 | # Port Configuration for DDC, UART, USB, SPI 3 | # 4 | # Several configurations can be concatenated to one input message. In this case 5 | # the payload length can be a multiple of the normal length (see the other 6 | # versions of CFG-PRT). Output messages from the module contain only one 7 | # configuration unit. 8 | # 9 | 10 | uint8 CLASS_ID = 6 11 | uint8 MESSAGE_ID = 0 12 | 13 | uint8 portID # Port Identifier Number 14 | uint8 PORT_ID_DDC = 0 15 | uint8 PORT_ID_UART1 = 1 16 | uint8 PORT_ID_UART2 = 2 17 | uint8 PORT_ID_USB = 3 18 | uint8 PORT_ID_SPI = 4 19 | 20 | uint8 reserved0 # Reserved 21 | 22 | uint16 txReady # TX ready PIN configuration (since Firmware 7.01) 23 | # reserved (Always set to zero) up to Firmware 7.01 24 | 25 | uint16 TX_READY_EN = 1 # Enable TX ready feature for this 26 | # port 27 | uint16 TX_READY_POLARITY_HIGH_ACTIVE = 0 # Polarity High-active 28 | uint16 TX_READY_POLARITY_LOW_ACTIVE = 2 # Polarity Low-active 29 | uint16 TX_READY_PIN_SHIFT = 2 # PIO to be used (must not be in use 30 | # already by another function) 31 | uint16 TX_READY_PIN_MASK = 124 # 32 | uint16 TX_READY_THRES_SHIFT = 7 # Threshold 33 | uint16 TX_READY_THRES_MASK = 65408 # The given threshold is multiplied by 34 | # 8 bytes. 35 | # The TX ready PIN goes active 36 | # after >= thres*8 bytes are pending 37 | # for the port and going inactive 38 | # after the last pending bytes have 39 | # been written to hardware (0-4 bytes 40 | # before end of stream). 41 | 42 | uint32 mode # A bit mask describing the DDC, UART or SPI mode 43 | # Reserved for USB 44 | # DDC Mode Constants 45 | uint32 MODE_DDC_SLAVE_ADDR_SHIFT = 1 46 | uint32 MODE_DDC_SLAVE_ADDR_MASK = 254 # Slave address 47 | # Range: 0x07 < slaveAddr < 0x78. 48 | # UART Mode Constants 49 | uint32 MODE_RESERVED1 = 16 # Default 1 for compatibility with A4 50 | uint32 MODE_CHAR_LEN_MASK = 192 # Character Length 51 | uint32 MODE_CHAR_LEN_5BIT = 0 # 5bit (not supported) 52 | uint32 MODE_CHAR_LEN_6BIT = 64 # 6bit (not supported) 53 | uint32 MODE_CHAR_LEN_7BIT = 128 # 7bit (supported only with parity) 54 | uint32 MODE_CHAR_LEN_8BIT = 192 # 8bit 55 | uint32 MODE_PARITY_MASK = 3584 # 56 | uint32 MODE_PARITY_EVEN = 0 # Even Parity 57 | uint32 MODE_PARITY_ODD = 512 # Odd Parity 58 | uint32 MODE_PARITY_NO = 2048 # No Parity (even/odd ignored) 59 | uint32 MODE_STOP_BITS_MASK = 12288 # Number of Stop Bits 60 | uint32 MODE_STOP_BITS_1 = 0 # 1 Stop Bit 61 | uint32 MODE_STOP_BITS_15 = 4096 # 1.5 Stop Bit 62 | uint32 MODE_STOP_BITS_2 = 8192 # 2 Stop Bit 63 | uint32 MODE_STOP_BITS_05 = 12288 # 0.5 Stop Bit 64 | # SPI Mode Constants 65 | uint32 MODE_SPI_SPI_MODE_CPOL = 4 # SPI Mode CPOL (0/1) 66 | uint32 MODE_SPI_SPI_MODE_CPHA = 2 # SPI Mode CPH (0/1) 67 | # (both CPOL/CPHA) can be = 1 68 | uint32 MODE_SPI_FLOW_CONTROL = 64 # (u-blox 6 only) 69 | # 0 Flow control disabled 70 | # 1 Flow control enabled (9-bit mode) 71 | uint32 MODE_SPI_FF_COUNT_SHIFT = 8 72 | uint32 MODE_SPI_FF_COUNT_MASK = 16128 # Number of bytes containing 0xFF to 73 | # receive before switching off 74 | # reception. 75 | # Range: 0(mechanism off)-63 76 | 77 | uint32 baudRate # UART Baudrate in bits/second [bits/s] 78 | # Reserved for USB, SPI, DDC 79 | # Possible values: 4800, 9600, 19200, 38400, 57600, 80 | # 115200, 230400, 460800 81 | 82 | uint16 inProtoMask # A mask describing which input protocols are active. 83 | # Each bit of this mask is used for a protocol. 84 | # Through that, multiple protocols can be defined 85 | # on a single port. 86 | 87 | uint16 outProtoMask # A mask describing which output protocols are active. 88 | # Each bit of this mask is used for a protocol. 89 | # Through that, multiple protocols can be defined 90 | # on a single port. 91 | 92 | uint16 PROTO_UBX = 1 93 | uint16 PROTO_NMEA = 2 94 | uint16 PROTO_RTCM = 4 # only for inProtoMask 95 | uint16 PROTO_RTCM3 = 32 # (not supported in protocol versions less than 20) 96 | 97 | uint16 flags # Flags for UART & SPI, Reserved for USB 98 | uint16 FLAGS_EXTENDED_TX_TIMEOUT = 2 # if set, the port will timeout if 99 | # allocated TX memory >=4 kB and no 100 | # activity for 1.5s. If not set the port 101 | # will timoout if no activity for 1.5s 102 | # regardless on the amount of allocated 103 | # TX memory. 104 | 105 | uint16 reserved1 # Always set to zero 106 | -------------------------------------------------------------------------------- /ublox_msgs/msg/CfgRATE.msg: -------------------------------------------------------------------------------- 1 | # CFG-RATE (0x06 0x08) 2 | # Navigation/Measurement Rate Settings 3 | # 4 | # This message allows the user to alter the rate at which navigation solutions 5 | # (and the measurements that they depend on) are generated by the receiver. The 6 | # calculation of the navigation solution will always be aligned to the top of a 7 | # second zero (first second of the week) of the configured reference time 8 | # system. For protocol version 18 and later the navigation period is an integer 9 | # multiple of the measurement period. 10 | # - Each measurement triggers the measurements generation and raw data output. 11 | # - The navRate value defines that every nth measurement triggers a navigation 12 | # epoch. 13 | # - The update rate has a direct influence on the power consumption. The more 14 | # fixes that are required, the more CPU power and communication resources 15 | # are required. 16 | # - For most applications a 1 Hz update rate would be sufficient. 17 | # - When using Power Save Mode, measurement and navigation rate can differ from 18 | # the values configured here 19 | 20 | uint8 CLASS_ID = 6 21 | uint8 MESSAGE_ID = 8 22 | 23 | uint16 measRate # Measurement Rate, GPS measurements are 24 | # taken every measRate milliseconds [ms] 25 | uint16 navRate # Navigation Rate, in number of measurement 26 | # cycles. On u-blox 5 and u-blox 6, this parameter 27 | # cannot be changed, and always equals 1. 28 | uint16 timeRef # The time system to which measurements are aligned 29 | uint16 TIME_REF_UTC = 0 30 | uint16 TIME_REF_GPS = 1 31 | uint16 TIME_REF_GLONASS = 2 # not supported in protocol versions less than 18 32 | uint16 TIME_REF_BEIDOU = 3 # not supported in protocol versions less than 18 33 | uint16 TIME_REF_GALILEO = 4 # not supported in protocol versions less than 18 34 | -------------------------------------------------------------------------------- /ublox_msgs/msg/CfgRST.msg: -------------------------------------------------------------------------------- 1 | # CFG-RST (0x06 0x04) 2 | # Reset Receiver / Clear Backup Data Structures 3 | # 4 | # Don't expect this message to be acknowledged by the receiver. 5 | # - Newer FW version won't acknowledge this message at all. 6 | # - Older FW version will acknowledge this message but the acknowledge may not 7 | # be sent completely before the receiver is reset. 8 | # 9 | 10 | uint8 CLASS_ID = 6 11 | uint8 MESSAGE_ID = 4 12 | 13 | uint16 navBbrMask # BBR Sections to clear. 14 | # The following Special Sets apply: 15 | uint16 NAV_BBR_HOT_START = 0 # Hot start the device 16 | uint16 NAV_BBR_WARM_START = 1 # Warm start the device 17 | uint16 NAV_BBR_COLD_START = 65535 # Cold start the device 18 | uint16 NAV_BBR_EPH = 1 # Ephemeris 19 | uint16 NAV_BBR_ALM = 2 # Almanac 20 | uint16 NAV_BBR_HEALTH = 4 # Health 21 | uint16 NAV_BBR_KLOB = 8 # Klobuchar parameters 22 | uint16 NAV_BBR_POS = 16 # Position 23 | uint16 NAV_BBR_CLKD = 32 # Clock Drift 24 | uint16 NAV_BBR_OSC = 64 # Oscillator Parameter 25 | uint16 NAV_BBR_UTC = 128 # UTC Correction + GPS Leap Seconds Parameters 26 | uint16 NAV_BBR_RTC = 256 # RTC 27 | uint16 NAV_BBR_AOP = 32768 # Autonomous Orbit Parameters 28 | 29 | uint8 resetMode # Reset Type: 30 | uint8 RESET_MODE_HW_IMMEDIATE = 0 # Hardware reset (Watchdog) immediately 31 | uint8 RESET_MODE_SW = 1 # Controlled Software reset 32 | uint8 RESET_MODE_GNSS = 2 # Controlled Software reset (GNSS only) 33 | uint8 RESET_MODE_HW_AFTER_SHUTDOWN = 4 # Hardware reset (Watchdog) after 34 | # shutdown 35 | uint8 RESET_MODE_GNSS_STOP = 8 # Controlled GNSS stop 36 | uint8 RESET_MODE_GNSS_START = 9 # Controlled GNSS start 37 | 38 | uint8 reserved1 # Reserved -------------------------------------------------------------------------------- /ublox_msgs/msg/CfgSBAS.msg: -------------------------------------------------------------------------------- 1 | # CFG-SBAS (0x06 0x16) 2 | # SBAS Configuration 3 | # 4 | # This message configures the SBAS receiver subsystem (i.e. WAAS, EGNOS, MSAS). 5 | # See the SBAS Configuration Settings Description for a detailed description of 6 | # how these settings affect receiver operation 7 | # 8 | 9 | uint8 CLASS_ID = 6 10 | uint8 MESSAGE_ID = 22 11 | 12 | uint8 mode # SBAS Mode 13 | uint8 MODE_ENABLED = 1 # SBAS Enabled (1) / Disabled (0) 14 | # This field is deprecated; use UBX-CFG-GNSS to 15 | # enable/disable SBAS operation 16 | uint8 MODE_TEST = 2 # SBAS Testbed: Use data anyhow (1) / Ignore data when 17 | # in Test Mode (SBAS Msg 0) 18 | 19 | uint8 usage # SBAS Usage 20 | uint8 USAGE_RANGE = 1 # Use SBAS GEOs as a ranging source (for navigation) 21 | uint8 USAGE_DIFF_CORR = 2 # Use SBAS Differential Corrections 22 | uint8 USAGE_INTEGRITY = 4 # Use SBAS Integrity Information 23 | 24 | uint8 maxSBAS # Maximum Number of SBAS prioritized tracking 25 | # channels (valid range: 0 - 3) to use 26 | # (obsolete and superseeded by UBX-CFG-GNSS in protocol 27 | # versions 14+). 28 | 29 | 30 | uint8 scanmode2 # Continuation of scanmode bitmask below 31 | # PRN 152...158 32 | uint32 scanmode1 # Which SBAS PRN numbers to search for (Bitmask) 33 | # If all Bits are set to zero, auto-scan (i.e. all valid 34 | # PRNs) are searched. Every bit corresponds to a PRN 35 | # number. 36 | # PRN 120..151 37 | -------------------------------------------------------------------------------- /ublox_msgs/msg/CfgTMODE3.msg: -------------------------------------------------------------------------------- 1 | # CFG-TMODE3 (0x06, 0x71) 2 | # Time Mode Settings 3 3 | # 4 | # Configures the receiver to be in Time Mode. The position referred to in this 5 | # message is that of the Antenna Reference Point (ARP). See the Time Mode 6 | # Description for details. 7 | # 8 | # Supported on: 9 | # - u-blox 8 / u-blox M8 with protocol version 20 (only with High Precision 10 | # GNSS products) 11 | # 12 | 13 | uint8 CLASS_ID = 6 14 | uint8 MESSAGE_ID = 113 15 | 16 | uint8 version # Message version (0x00 for this version) 17 | uint8 reserved1 # Reserved 18 | 19 | uint16 flags 20 | uint16 FLAGS_MODE_MASK = 255 # Receiver Mode: 21 | uint16 FLAGS_MODE_DISABLED = 0 # Disabled 22 | uint16 FLAGS_MODE_SURVEY_IN = 1 # Survey In 23 | uint16 FLAGS_MODE_FIXED = 2 # Fixed Mode (true ARP position required) 24 | uint16 FLAGS_LLA = 256 # Position is given in LAT/LON/ALT 25 | # (default is ECEF) 26 | 27 | int32 ecefXOrLat # WGS84 ECEF X coordinate (or latitude) of 28 | # the ARP position, depending on flags above 29 | # [cm] or [deg / 1e-7] 30 | int32 ecefYOrLon # WGS84 ECEF Y coordinate (or longitude) of 31 | # the ARP position, depending on flags above 32 | # [cm] or [deg / 1e-7] 33 | int32 ecefZOrAlt # WGS84 ECEF Z coordinate (or altitude) of 34 | # the ARP position, depending on flags above 35 | # [cm] 36 | int8 ecefXOrLatHP # High-precision WGS84 ECEF X coordinate (or 37 | # latitude) of the ARP position, depending on 38 | # flags above. Must be in the range -99..+99. 39 | # The precise WGS84 ECEF X coordinate in units 40 | # of cm, or the precise WGS84 ECEF latitude in 41 | # units of 1e-7 degrees, is given by 42 | # ecefXOrLat + (ecefXOrLatHP * 1e-2) 43 | # [0.1 mm] or [deg * 1e-9] 44 | int8 ecefYOrLonHP # High-precision WGS84 ECEF Y coordinate (or 45 | # longitude) of the ARP position, depending on 46 | # flags above. Must be in the range -99..+99. 47 | # The precise WGS84 ECEF Y coordinate in units 48 | # of cm, or the precise WGS84 ECEF longitude 49 | # in units of 1e-7 degrees, is given by 50 | # ecefYOrLon + (ecefYOrLonHP * 1e-2) 51 | # [0.1 mm] or [deg * 1e-9] 52 | int8 ecefZOrAltHP # High-precision WGS84 ECEF Z coordinate (or 53 | # altitude) of the ARP position, depending on 54 | # flags above. Must be in the range -99..+99. 55 | # The precise WGS84 ECEF Z coordinate, or 56 | # altitude coordinate, in units of cm is given 57 | # by ecefZOrAlt + (ecefZOrAltHP * 1e-2) 58 | # [0.1 mm] 59 | uint8 reserved2 # Reserved 60 | 61 | uint32 fixedPosAcc # Fixed position 3D accuracy 62 | # [0.1 mm] 63 | uint32 svinMinDur # Survey-in minimum duration 64 | # [s] 65 | uint32 svinAccLimit # Survey-in position accuracy limit 66 | # [0.1 mm] 67 | 68 | uint8[8] reserved3 # Reserved 69 | -------------------------------------------------------------------------------- /ublox_msgs/msg/CfgUSB.msg: -------------------------------------------------------------------------------- 1 | # UBX-CFG-USB (0x06 0x1B) 2 | # USB Configuration 3 | # 4 | 5 | uint8 CLASS_ID = 6 6 | uint8 MESSAGE_ID = 27 7 | 8 | uint16 vendorID # Only set to registered Vendor IDs. 9 | # Changing this field requires special Host drivers. 10 | 11 | uint16 productID # Product ID. Changing this field requires special 12 | # Host drivers. 13 | 14 | uint8[2] reserved1 # Reserved 15 | uint8[2] reserved2 # Reserved 16 | 17 | uint16 powerConsumption # Power consumed by the device [mA] 18 | 19 | uint16 flags # various configuration flags (see graphic below) 20 | uint16 FLAGS_RE_ENUM = 0 # force re-enumeration 21 | uint16 FLAGS_POWER_MODE = 2 # self-powered (1), bus-powered (0) 22 | 23 | int8[32] vendorString # String containing the vendor name. 24 | # 32 ASCII bytes including 0-termination. 25 | int8[32] productString # String containing the product name. 26 | # 32 ASCII bytes including 0-termination. 27 | int8[32] serialNumber # String containing the serial number. 28 | # 32 ASCII bytes including 0-termination. 29 | # Changing the String fields requires special Host 30 | # drivers. -------------------------------------------------------------------------------- /ublox_msgs/msg/EsfALG.msg: -------------------------------------------------------------------------------- 1 | # ESF-ALG (0x10 0x14) 2 | # IMU alignment information 3 | # 4 | # This message outputs the IMU alignment angles which define the rotation from the installation-frame to the 5 | # IMU-frame. In addition, it indicates the automatic IMU-mount alignment status. 6 | # 7 | 8 | uint8 CLASS_ID = 16 9 | uint8 MESSAGE_ID = 20 10 | 11 | uint8 FLAGS_AUTO_MNT_ALG_ON = 0 12 | uint32 FLAGS_STATUS = 14 13 | 14 | uint8 FLAGS_STATUS_USER_FIXED_ANGLES_USED = 0 15 | uint8 FLAGS_STATUS_ROLL_PITCH_ANGLES_ALIGNEMENT_ONGOING = 1 16 | uint8 FLAGS_STATUS_ROLL_PITCH_YAW_ANGLES_ALIGNEMENT_ONGOING = 2 17 | uint8 FLAGS_STATUS_COARSE_ALIGNMENT_USED = 3 18 | uint8 FLAGS_STATUS_FINE_ALIGNEMENT_USED = 4 19 | 20 | uint8 ERROR_TILT_ARG_ERROR = 1 21 | uint8 ERROR_YAW_ARG_ERROR = 2 22 | uint8 ERROR_ANGLE_ERROR = 3 23 | 24 | uint32 iTOW 25 | uint8 version 26 | uint8 flags 27 | uint8 errors 28 | uint8 reserved0 29 | uint32 yaw # IMU-mount yaw angle [0, 360] 30 | int16 pitch # IMU-mount pitch angle [-90, 90] 31 | int16 roll # IMU-mount roll angle [-180, 180] 32 | -------------------------------------------------------------------------------- /ublox_msgs/msg/EsfINS.msg: -------------------------------------------------------------------------------- 1 | # ESF-INS (0x10 0x15) 2 | # Vehicle dynamics information 3 | # 4 | # This message outputs information about vehicle dynamics computed by the 5 | # Inertial Navigation System (INS) during ESF-based navigation. 6 | # For ADR products, the output dynamics information (angular rates and 7 | # accelerations) is expressed with respect to the vehicle-frame. 8 | # For UDR products, the output dynamics information (angular rates and 9 | # accelerations) is expressed with respect to the body-frame. 10 | # 11 | 12 | uint8 CLASS_ID = 16 13 | uint8 MESSAGE_ID = 21 14 | 15 | uint32 bitfield0 # Bitfield (see graphic below) 16 | uint32 BITFIELD0_VERSION = 255 # Message version (1 for this version). 17 | uint32 BITFIELD0_X_ANG_RATE_VALID = 256 # Compensated x-axis angular rate data 18 | # validity flag 19 | uint32 BITFIELD0_Y_ANG_RATE_VALID = 512 # Compensated y-axis angular rate data 20 | # validity flag 21 | uint32 BITFIELD0_Z_ANG_RATE_VALID = 1024 # Compensated z-axis angular rate data 22 | # validity flag 23 | uint32 BITFIELD0_X_ACCEL_VALID = 2048 # Compensated x-axis acceleration data 24 | # validity flag 25 | uint32 BITFIELD0_Y_ACCEL_VALID = 4096 # Compensated y-axis acceleration data 26 | # validity flag 27 | uint32 BITFIELD0_Z_ACCEL_VALID = 8192 # Compensated z-axis acceleration data 28 | # validity flag 29 | 30 | uint8[4] reserved1 # Reserved 31 | 32 | uint32 iTOW # GPS time of week of the navigation epoch [ms] 33 | int32 xAngRate # Compensated x-axis angular rate [deg/s / 1e-3] 34 | int32 yAngRate # Compensated y-axis angular rate [deg/s / 1e-3] 35 | int32 zAngRate # Compensated z-axis angular rate [deg/s / 1e-3] 36 | int32 xAccel # Compensated x-axis acceleration (gravity-free) [mg] 37 | int32 yAccel # Compensated y-axis acceleration (gravity-free) [mg] 38 | int32 zAccel # Compensated z-axis acceleration (gravity-free) [mg] -------------------------------------------------------------------------------- /ublox_msgs/msg/EsfMEAS.msg: -------------------------------------------------------------------------------- 1 | # ESF-MEAS (0x10 0x02) 2 | # External Sensor Fusion Measurements 3 | # 4 | # Possible data types for the data field are described in the ESF Measurement 5 | # Data section 6 | # 7 | 8 | uint8 CLASS_ID = 16 9 | uint8 MESSAGE_ID = 2 10 | 11 | uint32 timeTag # Time tag of measurement generated by external 12 | # sensor 13 | 14 | uint16 flags # Flags. Set all unused bits to zero: 15 | uint16 FLAGS_TIME_MARK_SENT_MASK = 3 # Time mark signal was supplied just 16 | # prior to sending this message: 0 = 17 | uint16 TIME_MARK_NONE = 0 18 | uint16 TIME_MARK_EXT0 = 1 19 | uint16 TIME_MARK_EXT = 2 20 | uint16 FLAGS_TIME_MARK_EDGE = 4 # Trigger on rising (0) or falling 21 | # (1) edge of time mark signal 22 | uint16 FLAGS_CALIB_T_TAG_VALID = 8 # Calibration time tag available. 23 | # Always set to zero. 24 | 25 | uint16 id # Identification number of data provider 26 | 27 | # Start of repeated block (N times) 28 | uint32[] data # data, see mask below 29 | uint32 DATA_FIELD_MASK = 16777215 # data 30 | uint32 DATA_TYPE_MASK = 1056964608 # type of data (1..63) 31 | uint32 DATA_TYPE_SHIFT = 24 32 | uint32 DATA_TYPE_NONE = 0 # data field contains no data 33 | uint32 DATA_TYPE_Z_AXIS_GYRO = 5 # z-axis gyroscope angular rate 34 | # [deg/s *2^-12 signed] 35 | uint32 DATA_TYPE_WHEEL_TICKS_FRONT_LEFT = 6 # front-left wheel ticks 36 | # Bits 0-22: unsigned tick value. 37 | # Bit 23: direction indicator 38 | # (0=forward, 1=backward) 39 | uint32 DATA_TYPE_WHEEL_TICKS_FRONT_RIGHT = 7 # front-right wheel ticks 40 | # Bits 0-22: unsigned tick value. 41 | # Bit 23: direction indicator 42 | # (0=forward, 1=backward) 43 | uint32 DATA_TYPE_WHEEL_TICKS_REAR_LEFT = 8 # rear-left wheel ticks 44 | # Bits 0-22: unsigned tick value. 45 | # Bit 23: direction indicator 46 | # (0=forward, 1=backward) 47 | uint32 DATA_TYPE_WHEEL_TICKS_REAR_RIGHT = 9 # rear-right wheel ticks 48 | # Bits 0-22: unsigned tick value. 49 | # Bit 23: direction indicator 50 | # (0=forward, 1=backward) 51 | uint32 DATA_TYPE_SINGLE_TICK = 10 # single tick (speed tick) 52 | # Bits 0-22: unsigned tick value. 53 | # Bit 23: direction indicator 54 | # (0=forward, 1=backward) 55 | uint32 DATA_TYPE_SPEED = 11 # speed m/s * 1e-3 signed 56 | uint32 DATA_TYPE_GYRO_TEMPERATURE = 12 # gyroscope temperature 57 | # [deg Celsius * 1e-2 signed] 58 | uint32 DATA_TYPE_GYRO_ANG_RATE_Y = 13 # y-axis gyroscope angular rate 59 | # [deg/s *2^-12 signed] 60 | uint32 DATA_TYPE_GYRO_ANG_RATE_X = 14 # x-axis gyroscope angular rate 61 | # [deg/s *2^-12 signed] 62 | uint32 DATA_TYPE_ACCELEROMETER_X = 16 # x-axis accelerometer specific 63 | # [force m/s^2 *2^-10 signed] 64 | uint32 DATA_TYPE_ACCELEROMETER_Y = 17 # y-axis accelerometer specific 65 | # [force m/s^2 *2^-10 signed] 66 | uint32 DATA_TYPE_ACCELEROMETER_Z = 18 # z-axis accelerometer specific 67 | # [force m/s^2 *2^-10 signed] 68 | 69 | 70 | 71 | # End of repeated block 72 | 73 | # Start of optional block (size is either 0 or 1) 74 | uint32[] calibTtag # Receiver local time calibrated. 75 | # This field must not be supplied when 76 | # calibTtagValid is set to 0 [ms] 77 | # End of optional block -------------------------------------------------------------------------------- /ublox_msgs/msg/EsfRAW.msg: -------------------------------------------------------------------------------- 1 | # ESF-RAW (0x10 0x03) 2 | # Raw sensor measurements 3 | # 4 | # The message contains measurements from the active inertial sensors connected 5 | # to the GNSS chip. Possible data types for the data field are accelerometer, 6 | # gyroscope and temperature readings as described in the ESF Measurement Data 7 | # section. Note that the rate selected in CFG-MSG is not respected. If a 8 | # positive rate is selected then all raw measurements will be output. 9 | # 10 | # Supported on ADR/UDR products. 11 | # 12 | 13 | uint8 CLASS_ID = 16 14 | uint8 MESSAGE_ID = 3 15 | 16 | uint8[4] reserved0 # Reserved 17 | 18 | EsfRAW_Block[] blocks -------------------------------------------------------------------------------- /ublox_msgs/msg/EsfRAW_Block.msg: -------------------------------------------------------------------------------- 1 | # See ESF-RAW 2 | 3 | uint32 data # Its scaling and unit depends on the type and is 4 | # the same as in ESF-MEAS 5 | uint32 DATA_FIELD_MASK = 16777215 6 | uint32 DATA_TYPE_MASK = 4278190080 # type of data 7 | # (0 = no data; 1..255 = data type) 8 | uint32 sTtag # sensor time tag -------------------------------------------------------------------------------- /ublox_msgs/msg/EsfSTATUS.msg: -------------------------------------------------------------------------------- 1 | # ESF-STATUS (0x10 0x10) 2 | # External Sensor Fusion (ESF) status information 3 | # 4 | # Supported on UDR/ADR products 5 | # 6 | 7 | uint8 CLASS_ID = 16 8 | uint8 MESSAGE_ID = 16 9 | 10 | uint32 iTOW # GPS time of week of the navigation epoch [ms] 11 | uint8 version # Message version (2 for this version) 12 | 13 | uint8[7] reserved1 # Reserved 14 | 15 | uint8 fusionMode # Fusion mode: 16 | uint8 FUSION_MODE_INIT = 0 # receiver is initializing some unknown values 17 | # required for doing sensor fusion 18 | uint8 FUSION_MODE_FUSION = 1 # GNSS and sensor data are 19 | # used for navigation solution computation 20 | uint8 FUSION_MODE_SUSPENDED = 2 # sensor fusion is temporarily disabled 21 | # due to e.g. invalid sensor data or detected 22 | # ferry 23 | uint8 FUSION_MODE_DISABLED = 3 # sensor fusion is permanently disabled 24 | # until receiver reset due e.g. to sensor 25 | # error 26 | 27 | uint8[2] reserved2 # Reserved 28 | 29 | uint8 numSens # Number of sensors 30 | 31 | 32 | # Start of repeated block (numSens times) 33 | EsfSTATUS_Sens[] sens 34 | # End of repeated block -------------------------------------------------------------------------------- /ublox_msgs/msg/EsfSTATUS_Sens.msg: -------------------------------------------------------------------------------- 1 | # See Esf-STATUS 2 | # 3 | 4 | uint8 sensStatus1 # Sensor status, part 1 (see graphic below) 5 | uint8 sensStatus2 # Sensor status, part 2 (see graphic below) 6 | uint8 freq # Observation frequency [Hz] 7 | uint8 faults # Sensor faults (see graphic below) -------------------------------------------------------------------------------- /ublox_msgs/msg/HnrPVT.msg: -------------------------------------------------------------------------------- 1 | # HNR-PVT (0x28 0x00) 2 | # High Rate Output of PVT Solution 3 | # 4 | # Note that during a leap second there may be more (or less) than 60 seconds in 5 | # a minute; see the description of leap seconds for details. 6 | # 7 | # This message provides the position, velocity and time solution with high 8 | # output rate. 9 | # 10 | # Supported on ADR and UDR products. 11 | # 12 | uint8 CLASS_ID = 40 13 | uint8 MESSAGE_ID = 0 14 | 15 | uint32 iTOW # GPS Millisecond time of week [ms] 16 | uint16 year # Year (UTC) 17 | uint8 month # Month, range 1..12 (UTC) 18 | uint8 day # Day of month, range 1..31 (UTC) 19 | uint8 hour # Hour of day, range 0..23 (UTC) 20 | uint8 min # Minute of hour, range 0..59 (UTC) 21 | uint8 sec # Seconds of minute, range 0..60 (UTC) 22 | 23 | uint8 valid # Validity flags 24 | uint8 VALID_DATE = 1 # Valid UTC Date 25 | uint8 VALID_TIME = 2 # Valid 26 | uint8 VALID_FULLY_RESOLVED = 4 # UTC time of day has been fully resolved 27 | # (no seconds uncertainty) 28 | uint8 VALID_MAG = 8 # Valid Magnetic Declination 29 | 30 | int32 nano # fraction of a second [ns], range -1e9 .. 1e9 (UTC) 31 | 32 | uint8 gpsFix # GPS fix Type, range 0..5 33 | uint8 FIX_TYPE_NO_FIX = 0 34 | uint8 FIX_TYPE_DEAD_RECKONING_ONLY = 1 35 | uint8 FIX_TYPE_2D = 2 # Signal from only 3 SVs, 36 | # constant altitude assumed 37 | uint8 FIX_TYPE_3D = 3 38 | uint8 FIX_TYPE_GPS_DEAD_RECKONING_COMBINED = 4 # GPS + Dead reckoning 39 | uint8 FIX_TYPE_TIME_ONLY = 5 # Time only fix 40 | 41 | uint8 flags # Fix Status Flags 42 | uint8 FLAGS_GNSS_FIX_OK = 1 # i.e. within DOP & accuracy masks 43 | uint8 FLAGS_DIFF_SOLN = 2 # DGPS used 44 | uint8 FLAGS_WKN_SET = 4 # Valid GPS week number 45 | uint8 FLAGS_TOW_SET = 8 # Valid GPS time of week (iTOW & fTOW) 46 | uint8 FLAGS_HEAD_VEH_VALID = 32 # heading of vehicle is valid 47 | 48 | uint8[2] reserved0 # Reserved 49 | 50 | int32 lon # Longitude [deg / 1e-7] 51 | int32 lat # Latitude [deg / 1e-7] 52 | int32 height # Height above Ellipsoid [mm] 53 | int32 hMSL # Height above mean sea level [mm] 54 | 55 | int32 gSpeed # Ground Speed (2-D) [mm/s] 56 | int32 speed # Speed (3-D) [mm/s] 57 | 58 | int32 headMot # Heading of motion (2-D) [deg / 1e-5] 59 | int32 headVeh # Heading of vehicle (2-D) [deg / 1e-5] 60 | 61 | uint32 hAcc # Horizontal Accuracy Estimate [mm] 62 | uint32 vAcc # Vertical Accuracy Estimate [mm] 63 | uint32 sAcc # Speed Accuracy Estimate [mm/s] 64 | uint32 headAcc # Heading Accuracy Estimate (both motion & vehicle) 65 | # [deg / 1e-5] 66 | 67 | uint8[4] reserved1 # Reserved -------------------------------------------------------------------------------- /ublox_msgs/msg/Inf.msg: -------------------------------------------------------------------------------- 1 | # UBX-INF (0x04, 0x00...0x04) 2 | # ASCII output 3 | # 4 | # This message has a variable length payload, representing an ASCII string. 5 | # 6 | 7 | uint8 CLASS_ID = 4 8 | 9 | char[] str -------------------------------------------------------------------------------- /ublox_msgs/msg/MgaGAL.msg: -------------------------------------------------------------------------------- 1 | # MGA-GAL (0x13 0x02) 2 | # Galileo Ephemeris Assistance 3 | # 4 | # This message allows the delivery of Galileo ephemeris assistance to a 5 | # receiver. See the description of AssistNow Online for details. 6 | # 7 | 8 | uint8 CLASS_ID = 19 9 | uint8 MESSAGE_ID = 2 10 | 11 | uint8 type # Message type (0x01 for this type) 12 | uint8 version # Message version (0x00 for this version) 13 | uint8 svid # Galileo Satellite identifier 14 | 15 | uint8 reserved0 # Reserved 16 | 17 | uint16 iodNav # Ephemeris and clock correction issue of Data 18 | int16 deltaN # Mean motion difference from computed value 19 | # [semi-cir cles/s * 2^-43] 20 | int32 m0 # Mean anomaly at reference time [semi-cir cles 2^-31] 21 | uint32 e # Eccentricity [2^-33] 22 | uint32 sqrtA # Square root of the semi-major axis [m^0.5 * 2^-19] 23 | int32 omega0 # Longitude of ascending node of orbital plane at weekly 24 | # epoch [semi-cir cles 2^-31] 25 | int32 i0 # inclination angle at reference time 26 | # [semi-cir cles 2^-31] 27 | int32 omega # Argument of perigee [semi-cir cles 2^-31] 28 | int32 omegaDot # Rate of change of right ascension 29 | # [semi-cir cles/s 2^-43] 30 | int16 iDot # Rate of change of inclination angle 31 | # [semi-cir cles/s 2^-43] 32 | int16 cuc # Amplitude of the cosine harmonic correction term to 33 | # the argument of latitude [radians * 2^-29] 34 | int16 cus # Amplitude of the sine harmonic correction term to 35 | # the argument of latitude [radians * 2^-29] 36 | int16 crc # Amplitude of the cosine harmonic correction term 37 | # to the orbit radius [radians * 2^-5] 38 | int16 crs # Amplitude of the sine harmonic correction term to the 39 | # orbit radius [radians * 2^-5] 40 | int16 cic # Amplitude of the cosine harmonic correction term to 41 | # the angle of inclination [radians * 2^-29] 42 | int16 cis # Amplitude of the sine harmonic correction term to the 43 | # angle of inclination [radians * 2^-29] 44 | uint16 toe # Ephemeris reference time [60 * s] 45 | int32 af0 # clock bias correction coefficient [s * 2^-34] 46 | int32 af1 # SV clock drift correction coefficient [s/s * 2^-46] 47 | int8 af2 # SV clock drift rate correction coefficient 48 | # [s/s^2 * 2^-59] 49 | uint8 sisaindexE1E5b # Signal-in-Space Accuracy index for dual frequency 50 | # E1-E5b 51 | uint16 toc # Clock correction data reference Time of Week [60 * s] 52 | int16 bgdE1E5b # E1-E5b Broadcast Group Delay 53 | 54 | uint8[2] reserved1 # Reserved 55 | 56 | uint8 healthE1B # E1-B Signal Health Status 57 | uint8 dataValidityE1B # E1-B Data Validity Status 58 | uint8 healthE5b # E5b Signal Health Status 59 | uint8 dataValidityE5b # E5b Data Validity Status 60 | 61 | uint8[4] reserved2 # Reserved -------------------------------------------------------------------------------- /ublox_msgs/msg/MonGNSS.msg: -------------------------------------------------------------------------------- 1 | # MON-GNSS (0x0A 0x28) 2 | # Information message major GNSS selection 3 | # 4 | # This message reports major GNSS selection. Augmentation systems are not 5 | # reported. 6 | # 7 | 8 | uint8 CLASS_ID = 10 9 | uint8 MESSAGE_ID = 40 10 | 11 | uint8 version # Message version (0x01 for this version) 12 | 13 | uint8 BIT_MASK_GPS = 1 14 | uint8 BIT_MASK_GLONASS = 2 15 | uint8 BIT_MASK_BEIDOU = 4 16 | uint8 BIT_MASK_GALILEO = 8 17 | 18 | uint8 supported # The major GNSS that can be supported by this receiver 19 | uint8 defaultGnss # Default major GNSS selection. If the default major GNSS 20 | # selection is currently configured in the efuse for this 21 | # receiver, it takes precedence over the default major 22 | # GNSS selection configured in the executing firmware of 23 | # this receiver. 24 | # see bit mask constants 25 | uint8 enabled # Current major GNSS selection enabled for this receiver 26 | # see bit mask constants 27 | 28 | uint8 simultaneous # Maximum number of concurrent major GNSS that can be 29 | # supported by this receiver 30 | 31 | uint8[3] reserved1 # Reserved 32 | -------------------------------------------------------------------------------- /ublox_msgs/msg/MonHW.msg: -------------------------------------------------------------------------------- 1 | # MON-HW (0x0A 0x09) 2 | # Hardware Status 3 | # 4 | # Status of different aspect of the hardware, such as Antenna, PIO/Peripheral 5 | # Pins, Noise Level, Automatic Gain Control (AGC) 6 | # 7 | # WARNING: this message is a different length than the MonHW message for 8 | # firmware version 6 9 | 10 | uint8 CLASS_ID = 10 11 | uint8 MESSAGE_ID = 9 12 | 13 | uint32 pinSel # Mask of Pins Set as Peripheral/PIO 14 | uint32 pinBank # Mask of Pins Set as Bank A/B 15 | uint32 pinDir # Mask of Pins Set as Input/Output 16 | uint32 pinVal # Mask of Pins Value Low/High 17 | uint16 noisePerMS # Noise Level as measured by the GPS Core 18 | uint16 agcCnt # AGC Monitor (counts SIGHI xor SIGLO, 19 | # range 0 to 8191) 20 | uint8 aStatus # Status of the Antenna Supervisor State Machine 21 | uint8 A_STATUS_INIT = 0 22 | uint8 A_STATUS_UNKNOWN = 1 23 | uint8 A_STATUS_OK = 2 24 | uint8 A_STATUS_SHORT = 3 25 | uint8 A_STATUS_OPEN = 4 26 | 27 | uint8 aPower # Current PowerStatus of Antenna 28 | uint8 A_POWER_OFF = 0 29 | uint8 A_POWER_ON = 1 30 | uint8 A_POWER_UNKNOWN = 2 31 | 32 | uint8 flags # Flags: 33 | uint8 FLAGS_RTC_CALIB = 1 # RTC is calibrated 34 | uint8 FLAGS_SAFE_BOOT = 2 # Safe boot mode (0 = inactive, 1 = active) 35 | uint8 FLAGS_JAMMING_STATE_MASK = 12 # output from Jamming/Interference Monitor: 36 | uint8 JAMMING_STATE_UNKNOWN_OR_DISABLED = 0 # unknown or feature disabled 37 | uint8 JAMMING_STATE_OK = 4 # ok - no significant jamming 38 | uint8 JAMMING_STATE_WARNING = 8 # interference visible but fix OK 39 | uint8 JAMMING_STATE_CRITICAL = 12 # interference visible and no fix 40 | uint8 FLAGS_XTAL_ABSENT = 16 # RTC XTAL is absent 41 | # (not supported in protocol versions < 18) 42 | uint8 reserved0 # Reserved 43 | uint32 usedMask # Mask of Pins that are used by the Virtual Pin 44 | # Manager 45 | uint8[17] VP # Array of Pin Mappings for each of the 17 46 | # Physical Pins 47 | uint8 jamInd # CW Jamming indicator, scaled: 48 | uint8 JAM_IND_NONE = 0 # No CW Jamming 49 | uint8 JAM_IND_STRONG = 255 # Strong CW Jamming 50 | 51 | uint8[2] reserved1 # Reserved 52 | 53 | uint32 pinIrq # Mask of Pins Value using the PIO Irq 54 | uint32 pullH # Mask of Pins Value using the PIO Pull High 55 | # Resistor 56 | uint32 pullL # Mask of Pins Value using the PIO Pull Low 57 | # Resistor 58 | -------------------------------------------------------------------------------- /ublox_msgs/msg/MonHW6.msg: -------------------------------------------------------------------------------- 1 | # MON-HW (0x0A 0x09) 2 | # Hardware Status 3 | # Firmware 6 4 | # 5 | # Status of different aspect of the hardware, such as Antenna, PIO/Peripheral 6 | # Pins, Noise Level, Automatic Gain Control (AGC) 7 | # 8 | # WARNING: this message is a different length than the MonHW message for 9 | # firmware version 7 & 8 10 | 11 | uint8 CLASS_ID = 10 12 | uint8 MESSAGE_ID = 9 13 | 14 | uint32 pinSel # Mask of Pins Set as Peripheral/PIO 15 | uint32 pinBank # Mask of Pins Set as Bank A/B 16 | uint32 pinDir # Mask of Pins Set as Input/Output 17 | uint32 pinVal # Mask of Pins Value Low/High 18 | uint16 noisePerMS # Noise Level as measured by the GPS Core 19 | uint16 agcCnt # AGC Monitor (counts SIGHI xor SIGLO, 20 | # range 0 to 8191) 21 | uint8 aStatus # Status of the Antenna Supervisor State Machine 22 | uint8 A_STATUS_INIT = 0 23 | uint8 A_STATUS_UNKNOWN = 1 24 | uint8 A_STATUS_OK = 2 25 | uint8 A_STATUS_SHORT = 3 26 | uint8 A_STATUS_OPEN = 4 27 | 28 | uint8 aPower # Current PowerStatus of Antenna 29 | uint8 A_POWER_OFF = 0 30 | uint8 A_POWER_ON = 1 31 | uint8 A_POWER_UNKNOWN = 2 32 | 33 | uint8 flags # Flags: 34 | uint8 FLAGS_RTC_CALIB = 1 # RTC is calibrated 35 | uint8 FLAGS_SAFE_BOOT = 2 # Safe boot mode (0 = inactive, 1 = active) 36 | uint8 FLAGS_JAMMING_STATE_MASK = 12 # output from Jamming/Interference Monitor: 37 | uint8 JAMMING_STATE_UNKNOWN_OR_DISABLED = 0 # unknown or feature disabled 38 | uint8 JAMMING_STATE_OK = 4 # ok - no significant jamming 39 | uint8 JAMMING_STATE_WARNING = 8 # interference visible but fix OK 40 | uint8 JAMMING_STATE_CRITICAL = 12 # interference visible and no fix 41 | uint8 FLAGS_XTAL_ABSENT = 16 # RTC XTAL is absent 42 | # (not supported in protocol versions < 18) 43 | uint8 reserved0 # Reserved 44 | uint32 usedMask # Mask of Pins that are used by the Virtual Pin 45 | # Manager 46 | uint8[25] VP # Array of Pin Mappings for each of the 25 47 | # Physical Pins 48 | uint8 jamInd # CW Jamming indicator, scaled: 49 | uint8 JAM_IND_NONE = 0 # No CW Jamming 50 | uint8 JAM_IND_STRONG = 255 # Strong CW Jamming 51 | 52 | uint8[2] reserved1 # Reserved 53 | 54 | uint32 pinIrq # Mask of Pins Value using the PIO Irq 55 | uint32 pullH # Mask of Pins Value using the PIO Pull High 56 | # Resistor 57 | uint32 pullL # Mask of Pins Value using the PIO Pull Low 58 | # Resistor -------------------------------------------------------------------------------- /ublox_msgs/msg/MonVER.msg: -------------------------------------------------------------------------------- 1 | # MON-VER (0x0A 0x04) 2 | # 3 | # Receiver/Software Version 4 | # Returned when the version is polled. 5 | 6 | uint8 CLASS_ID = 10 7 | uint8 MESSAGE_ID = 4 8 | 9 | char[30] swVersion # Zero-terminated software version string. 10 | char[10] hwVersion # Zero-terminated hardware version string. 11 | 12 | # Start of repeated block (N times) 13 | MonVER_Extension[] extension 14 | # End of repeated block 15 | -------------------------------------------------------------------------------- /ublox_msgs/msg/MonVER_Extension.msg: -------------------------------------------------------------------------------- 1 | # see MonVER message 2 | # 3 | 4 | char[30] field -------------------------------------------------------------------------------- /ublox_msgs/msg/NavATT.msg: -------------------------------------------------------------------------------- 1 | # NAV-ATT (0x01 0x05) 2 | # Attitude Solution 3 | # 4 | # This message outputs the attitude solution as roll, pitch and heading angles. 5 | # Supported on ADR and UDR products. 6 | # 7 | 8 | uint8 CLASS_ID = 1 9 | uint8 MESSAGE_ID = 5 10 | 11 | uint32 iTOW # GPS time of week of the navigation epoch [ms] 12 | uint8 version # Message version (0 for this version) 13 | 14 | uint8[3] reserved0 # Reserved 15 | 16 | int32 roll # Vehicle roll. [deg / 1e-5] 17 | int32 pitch # Vehicle pitch. [deg / 1e-5] 18 | int32 heading # Vehicle heading. [deg / 1e-5] 19 | uint32 accRoll # Vehicle roll accuracy (if null, roll angle is not 20 | # available). [deg / 1e-5] 21 | uint32 accPitch # Vehicle pitch accuracy (if null, pitch angle is not 22 | # available). [deg / 1e-5] 23 | uint32 accHeading # Vehicle heading accuracy [deg / 1e-5] -------------------------------------------------------------------------------- /ublox_msgs/msg/NavCLOCK.msg: -------------------------------------------------------------------------------- 1 | # NAV-CLOCK (0x01 0x22) 2 | # Clock Solution 3 | # 4 | 5 | uint8 CLASS_ID = 1 6 | uint8 MESSAGE_ID = 34 7 | 8 | uint32 iTOW # GPS Millisecond Time of week [ms] 9 | 10 | int32 clkB # Clock bias in nanoseconds [ns] 11 | int32 clkD # Clock drift in nanoseconds per second [ns/s] 12 | uint32 tAcc # Time Accuracy Estimate [ns] 13 | uint32 fAcc # Frequency Accuracy Estimate [ps/s] 14 | -------------------------------------------------------------------------------- /ublox_msgs/msg/NavDGPS.msg: -------------------------------------------------------------------------------- 1 | # NAV-DGPS (0x01 0x31) 2 | # DGPS Data Used for NAV 3 | # 4 | # This message outputs the Correction data as it has been applied to the current 5 | # NAV Solution. See also the notes on the RTCM protocol. 6 | # 7 | 8 | uint8 CLASS_ID = 1 9 | uint8 MESSAGE_ID = 49 10 | 11 | uint32 iTOW # GPS Millisecond time of week [ms] 12 | 13 | int32 age # Age of newest correction data [ms] 14 | int16 baseId # DGPS Base Station ID 15 | int16 baseHealth # DGPS Base Station Health Status 16 | int8 numCh # Number of channels for which correction data is 17 | # following 18 | 19 | uint8 status # DGPS Correction Type Status 20 | uint8 DGPS_CORRECTION_NONE = 0 21 | uint8 DGPS_CORRECTION_PR_PRR = 1 22 | 23 | uint16 reserved1 # Reserved 24 | 25 | NavDGPS_SV[] sv 26 | -------------------------------------------------------------------------------- /ublox_msgs/msg/NavDGPS_SV.msg: -------------------------------------------------------------------------------- 1 | # see message NavDGPS 2 | 3 | uint8 svid # Satellite ID 4 | 5 | uint8 flags # Bitmask / Channel Number and Usage: 6 | uint8 FLAGS_CHANNEL_MASK = 15 # Bitmask for channel number, range 0..15 7 | # Channel numbers > 15 marked as 15 8 | uint8 FLAGS_DGPS = 16 # DGPS Used for this SV 9 | 10 | uint16 ageC # Age of latest correction data [ms] 11 | float32 prc # Pseudo Range Correction [m] 12 | float32 prrc # Pseudo Range Rate Correction [m/s] 13 | 14 | -------------------------------------------------------------------------------- /ublox_msgs/msg/NavDOP.msg: -------------------------------------------------------------------------------- 1 | # NAV-DOP (0x01 0x04) 2 | # Dilution of precision 3 | # 4 | # - DOP values are dimensionless. 5 | # - All DOP values are scaled by a factor of 100. If the unit transmits a value 6 | # of e.g. 156, the DOP value is 1.56. 7 | # 8 | 9 | uint8 CLASS_ID = 1 10 | uint8 MESSAGE_ID = 4 11 | 12 | uint32 iTOW # GPS Millisecond Time of Week [ms] 13 | 14 | uint16 gDOP # Geometric DOP [1 / 0.01] 15 | uint16 pDOP # Position DOP [1 / 0.01] 16 | uint16 tDOP # Time DOP [1 / 0.01] 17 | uint16 vDOP # Vertical DOP [1 / 0.01] 18 | uint16 hDOP # Horizontal DOP [1 / 0.01] 19 | uint16 nDOP # Northing DOP [1 / 0.01] 20 | uint16 eDOP # Easting DOP [1 / 0.01] 21 | -------------------------------------------------------------------------------- /ublox_msgs/msg/NavHPPOSECEF.msg: -------------------------------------------------------------------------------- 1 | # NAV-HPPOSECEF (0x01 0x13) 2 | # High Precision Position Solution in ECEF 3 | # 4 | # See important comments concerning validity of position given in section 5 | # Navigation Output Filters. 6 | # 7 | 8 | uint8 CLASS_ID = 1 9 | uint8 MESSAGE_ID = 19 10 | 11 | uint8 version 12 | uint8[3] reserved0 13 | 14 | uint32 iTOW # GPS Millisecond Time of Week [ms] 15 | 16 | int32 ecefX # ECEF X coordinate [cm] 17 | int32 ecefY # ECEF Y coordinate [cm] 18 | int32 ecefZ # ECEF Z coordinate [cm] 19 | 20 | int8 ecefXHp # ECEF X high precision component [0.1mm] 21 | int8 ecefYHp # ECEF Y high precision component [0.1mm] 22 | int8 ecefZHp # ECEF Z high precision component [0.1mm] 23 | uint8 flags 24 | 25 | uint32 pAcc # Position Accuracy Estimate [0.1mm] 26 | -------------------------------------------------------------------------------- /ublox_msgs/msg/NavHPPOSLLH.msg: -------------------------------------------------------------------------------- 1 | # NAV-HPPOSLLH (0x01 0x14) 2 | # High Precision Geodetic Position Solution 3 | # 4 | # See important comments concerning validity of position given in section 5 | # Navigation Output Filters. 6 | # This message outputs the Geodetic position in the currently selected 7 | # Ellipsoid. The default is the WGS84 Ellipsoid, but can be changed with the 8 | # message CFG-DAT. 9 | # 10 | 11 | uint8 CLASS_ID = 1 12 | uint8 MESSAGE_ID = 20 13 | 14 | uint8 version 15 | uint8[2] reserved1 16 | int8 invalid_llh 17 | 18 | uint32 iTOW # GPS Millisecond Time of Week [ms] 19 | 20 | int32 lon # Longitude [deg / 1e-7] 21 | int32 lat # Latitude [deg / 1e-7] 22 | int32 height # Height above Ellipsoid [mm] 23 | int32 hMSL # Height above mean sea level [mm] 24 | int8 lonHp # Longitude [deg / 1e-9, range -99 to +99] 25 | int8 latHp # Latitude [deg / 1e-9, range -99 to +99] 26 | int8 heightHp # Height above Ellipsoid [mm / 0.1, range -9 to +9] 27 | int8 hMSLHp # Height above mean sea level [mm / 0.1, range -9 to +9] 28 | uint32 hAcc # Horizontal Accuracy Estimate [mm / 0.1] 29 | uint32 vAcc # Vertical Accuracy Estimate [mm / 0.1] 30 | -------------------------------------------------------------------------------- /ublox_msgs/msg/NavPOSECEF.msg: -------------------------------------------------------------------------------- 1 | # NAV-POSECEF (0x01 0x01) 2 | # Position Solution in ECEF 3 | # 4 | # See important comments concerning validity of position given in section 5 | # Navigation Output Filters. 6 | # 7 | 8 | uint8 CLASS_ID = 1 9 | uint8 MESSAGE_ID = 1 10 | 11 | uint32 iTOW # GPS Millisecond Time of Week [ms] 12 | 13 | int32 ecefX # ECEF X coordinate [cm] 14 | int32 ecefY # ECEF Y coordinate [cm] 15 | int32 ecefZ # ECEF Z coordinate [cm] 16 | uint32 pAcc # Position Accuracy Estimate [cm] 17 | -------------------------------------------------------------------------------- /ublox_msgs/msg/NavPOSLLH.msg: -------------------------------------------------------------------------------- 1 | # NAV-POSLLH (0x01 0x02) 2 | # Geodetic Position Solution 3 | # 4 | # See important comments concerning validity of position given in section 5 | # Navigation Output Filters. 6 | # This message outputs the Geodetic position in the currently selected 7 | # Ellipsoid. The default is the WGS84 Ellipsoid, but can be changed with the 8 | # message CFG-DAT. 9 | # 10 | 11 | uint8 CLASS_ID = 1 12 | uint8 MESSAGE_ID = 2 13 | 14 | uint32 iTOW # GPS Millisecond Time of Week [ms] 15 | 16 | int32 lon # Longitude [deg / 1e-7] 17 | int32 lat # Latitude [deg / 1e-7] 18 | int32 height # Height above Ellipsoid [mm] 19 | int32 hMSL # Height above mean sea level [mm] 20 | uint32 hAcc # Horizontal Accuracy Estimate [mm] 21 | uint32 vAcc # Vertical Accuracy Estimate [mm] 22 | -------------------------------------------------------------------------------- /ublox_msgs/msg/NavPVT.msg: -------------------------------------------------------------------------------- 1 | # NAV-PVT (0x01 0x07) 2 | # Navigation Position Velocity Time Solution 3 | # 4 | # Note that during a leap second there may be more (or less) than 60 seconds in 5 | # a minute; see the description of leap seconds for details. 6 | # 7 | # This message combines Position, velocity and time solution in LLH, 8 | # including accuracy figures 9 | # 10 | # WARNING: For firmware version 7, this message is a different length. 11 | # 12 | 13 | uint8 CLASS_ID = 1 14 | uint8 MESSAGE_ID = 7 15 | 16 | uint32 iTOW # GPS Millisecond time of week [ms] 17 | uint16 year # Year (UTC) 18 | uint8 month # Month, range 1..12 (UTC) 19 | uint8 day # Day of month, range 1..31 (UTC) 20 | uint8 hour # Hour of day, range 0..23 (UTC) 21 | uint8 min # Minute of hour, range 0..59 (UTC) 22 | uint8 sec # Seconds of minute, range 0..60 (UTC) 23 | 24 | uint8 valid # Validity flags 25 | uint8 VALID_DATE = 1 # Valid UTC Date 26 | uint8 VALID_TIME = 2 # Valid 27 | uint8 VALID_FULLY_RESOLVED = 4 # UTC time of day has been fully resolved 28 | # (no seconds uncertainty) 29 | uint8 VALID_MAG = 8 # Valid Magnetic Declination 30 | 31 | uint32 tAcc # time accuracy estimate [ns] (UTC) 32 | int32 nano # fraction of a second [ns], range -1e9 .. 1e9 (UTC) 33 | 34 | uint8 fixType # GNSS fix Type, range 0..5 35 | uint8 FIX_TYPE_NO_FIX = 0 36 | uint8 FIX_TYPE_DEAD_RECKONING_ONLY = 1 37 | uint8 FIX_TYPE_2D = 2 # Signal from only 3 SVs, 38 | # constant altitude assumed 39 | uint8 FIX_TYPE_3D = 3 40 | uint8 FIX_TYPE_GNSS_DEAD_RECKONING_COMBINED = 4 # GNSS + Dead reckoning 41 | uint8 FIX_TYPE_TIME_ONLY = 5 # Time only fix (High precision 42 | # devices) 43 | 44 | uint8 flags # Fix Status Flags 45 | uint8 FLAGS_GNSS_FIX_OK = 1 # i.e. within DOP & accuracy masks 46 | uint8 FLAGS_DIFF_SOLN = 2 # DGPS used 47 | uint8 FLAGS_PSM_MASK = 28 # Power Save Mode 48 | uint8 PSM_OFF = 0 # PSM is off 49 | uint8 PSM_ENABLED = 4 # Enabled (state before acquisition) 50 | uint8 PSM_ACQUIRED = 8 # Acquisition 51 | uint8 PSM_TRACKING = 12 # Tracking 52 | uint8 PSM_POWER_OPTIMIZED_TRACKING = 16 # Power Optimized Tracking 53 | uint8 PSM_INACTIVE = 20 # Inactive 54 | uint8 FLAGS_HEAD_VEH_VALID = 32 # heading of vehicle is valid 55 | uint8 FLAGS_CARRIER_PHASE_MASK = 192 # Carrier Phase Range Solution Status 56 | uint8 CARRIER_PHASE_NO_SOLUTION = 0 # no carrier phase range solution 57 | uint8 CARRIER_PHASE_FLOAT = 64 # carrier phase float solution (no fixed 58 | # integer measurements have been used to 59 | # calculate the solution) 60 | uint8 CARRIER_PHASE_FIXED = 128 # fixed solution (>=1 fixed integer 61 | # carrier phase range measurements have 62 | # been used to calculate the solution) 63 | 64 | uint8 flags2 # Additional Flags 65 | uint8 FLAGS2_CONFIRMED_AVAILABLE = 32 # information about UTC Date and Time of 66 | # Day validity confirmation is available 67 | uint8 FLAGS2_CONFIRMED_DATE = 64 # UTC Date validity could be confirmed 68 | uint8 FLAGS2_CONFIRMED_TIME = 128 # UTC Time of Day could be confirmed 69 | 70 | uint8 numSV # Number of SVs used in Nav Solution 71 | int32 lon # Longitude [deg / 1e-7] 72 | int32 lat # Latitude [deg / 1e-7] 73 | int32 height # Height above Ellipsoid [mm] 74 | int32 hMSL # Height above mean sea level [mm] 75 | uint32 hAcc # Horizontal Accuracy Estimate [mm] 76 | uint32 vAcc # Vertical Accuracy Estimate [mm] 77 | 78 | int32 velN # NED north velocity [mm/s] 79 | int32 velE # NED east velocity [mm/s] 80 | int32 velD # NED down velocity [mm/s] 81 | int32 gSpeed # Ground Speed (2-D) [mm/s] 82 | int32 heading # Heading of motion 2-D [deg / 1e-5] 83 | uint32 sAcc # Speed Accuracy Estimate [mm/s] 84 | uint32 headAcc # Heading Accuracy Estimate (both motion & vehicle) 85 | # [deg / 1e-5] 86 | 87 | uint16 pDOP # Position DOP [1 / 0.01] 88 | uint8[6] reserved1 # Reserved 89 | 90 | int32 headVeh # Heading of vehicle (2-D) [deg / 1e-5] 91 | int16 magDec # Magnetic declination [deg / 1e-2] 92 | uint16 magAcc # Magnetic declination accuracy [deg / 1e-2] 93 | -------------------------------------------------------------------------------- /ublox_msgs/msg/NavPVT7.msg: -------------------------------------------------------------------------------- 1 | # NAV-PVT (0x01 0x07) 2 | # Navigation Position Velocity Time Solution Firmware version 7 3 | # 4 | # Note that during a leap second there may be more (or less) than 60 seconds in 5 | # a minute; see the description of leap seconds for details. 6 | # 7 | # This message combines Position, velocity and time solution in LLH, 8 | # including accuracy figures 9 | # 10 | # WARNING: For firmware version 7, this message is a different length. 11 | # 12 | 13 | uint8 CLASS_ID = 1 14 | uint8 MESSAGE_ID = 7 15 | 16 | uint32 iTOW # GPS Millisecond time of week [ms] 17 | uint16 year # Year (UTC) 18 | uint8 month # Month, range 1..12 (UTC) 19 | uint8 day # Day of month, range 1..31 (UTC) 20 | uint8 hour # Hour of day, range 0..23 (UTC) 21 | uint8 min # Minute of hour, range 0..59 (UTC) 22 | uint8 sec # Seconds of minute, range 0..60 (UTC) 23 | 24 | uint8 valid # Validity flags 25 | uint8 VALID_DATE = 1 # Valid UTC Date 26 | uint8 VALID_TIME = 2 # Valid 27 | uint8 VALID_FULLY_RESOLVED = 4 # UTC time of day has been fully resolved 28 | # (no seconds uncertainty) 29 | uint8 VALID_MAG = 8 # Valid Magnetic Declination 30 | 31 | uint32 tAcc # time accuracy estimate [ns] (UTC) 32 | int32 nano # fraction of a second [ns], range -1e9 .. 1e9 (UTC) 33 | 34 | uint8 fixType # GNSS fix Type, range 0..5 35 | uint8 FIX_TYPE_NO_FIX = 0 36 | uint8 FIX_TYPE_DEAD_RECKONING_ONLY = 1 37 | uint8 FIX_TYPE_2D = 2 # Signal from only 3 SVs, 38 | # constant altitude assumed 39 | uint8 FIX_TYPE_3D = 3 40 | uint8 FIX_TYPE_GNSS_DEAD_RECKONING_COMBINED = 4 # GNSS + Dead reckoning 41 | uint8 FIX_TYPE_TIME_ONLY = 5 # Time only fix (High precision 42 | # devices) 43 | 44 | uint8 flags # Fix Status Flags 45 | uint8 FLAGS_GNSS_FIX_OK = 1 # i.e. within DOP & accuracy masks 46 | uint8 FLAGS_DIFF_SOLN = 2 # DGPS used 47 | uint8 FLAGS_PSM_MASK = 28 # Power Save Mode 48 | uint8 PSM_OFF = 0 # PSM is off 49 | uint8 PSM_ENABLED = 4 # Enabled (state before acquisition) 50 | uint8 PSM_ACQUIRED = 8 # Acquisition 51 | uint8 PSM_TRACKING = 12 # Tracking 52 | uint8 PSM_POWER_OPTIMIZED_TRACKING = 16 # Power Optimized Tracking 53 | uint8 PSM_INACTIVE = 20 # Inactive 54 | uint8 FLAGS_HEAD_VEH_VALID = 32 # heading of vehicle is valid 55 | uint8 FLAGS_CARRIER_PHASE_MASK = 192 # Carrier Phase Range Solution Status 56 | uint8 CARRIER_PHASE_NO_SOLUTION = 0 # no carrier phase range solution 57 | uint8 CARRIER_PHASE_FLOAT = 64 # carrier phase float solution (no fixed 58 | # integer measurements have been used to 59 | # calculate the solution) 60 | uint8 CARRIER_PHASE_FIXED = 128 # fixed solution (>=1 fixed integer 61 | # carrier phase range measurements have 62 | # been used to calculate the solution) 63 | 64 | uint8 flags2 # Additional Flags 65 | uint8 FLAGS2_CONFIRMED_AVAILABLE = 32 # information about UTC Date and Time of 66 | # Day validity confirmation is available 67 | uint8 FLAGS2_CONFIRMED_DATE = 64 # UTC Date validity could be confirmed 68 | uint8 FLAGS2_CONFIRMED_TIME = 128 # UTC Time of Day could be confirmed 69 | 70 | uint8 numSV # Number of SVs used in Nav Solution 71 | int32 lon # Longitude [deg / 1e-7] 72 | int32 lat # Latitude [deg / 1e-7] 73 | int32 height # Height above Ellipsoid [mm] 74 | int32 hMSL # Height above mean sea level [mm] 75 | uint32 hAcc # Horizontal Accuracy Estimate [mm] 76 | uint32 vAcc # Vertical Accuracy Estimate [mm] 77 | 78 | int32 velN # NED north velocity [mm/s] 79 | int32 velE # NED east velocity [mm/s] 80 | int32 velD # NED down velocity [mm/s] 81 | int32 gSpeed # Ground Speed (2-D) [mm/s] 82 | int32 heading # Heading of motion 2-D [deg / 1e-5] 83 | uint32 sAcc # Speed Accuracy Estimate [mm/s] 84 | uint32 headAcc # Heading Accuracy Estimate (both motion & vehicle) 85 | # [deg / 1e-5] 86 | 87 | uint16 pDOP # Position DOP [1 / 0.01] 88 | uint8[6] reserved1 # Reserved -------------------------------------------------------------------------------- /ublox_msgs/msg/NavRELPOSNED.msg: -------------------------------------------------------------------------------- 1 | # NAV-RELPOSNED (0x01 0x3C) 2 | # Relative Positioning Information in NED frame 3 | # 4 | # The NED frame is defined as the local topological system at the reference 5 | # station. The relative position vector components in this message, along with 6 | # their associated accuracies, are given in that local topological system 7 | # This message contains the relative position vector from the Reference Station 8 | # to the Rover, including accuracy figures, in the local topological system 9 | # defined at the reference station 10 | # 11 | # Supported on: 12 | # - u-blox 8 / u-blox M8 from protocol version 20 up to version 23.01 (only 13 | # with High Precision GNSS products) 14 | # 15 | 16 | uint8 CLASS_ID = 1 17 | uint8 MESSAGE_ID = 60 18 | 19 | uint8 version # Message version (0x00 for this version) 20 | uint8 reserved0 # Reserved 21 | uint16 refStationId # Reference Station ID. Must be in the range 22 | # 0..4095 23 | uint32 iTOW # GPS time of week of the navigation epoch 24 | # [ms] 25 | 26 | int32 relPosN # North component of relative position vector 27 | # [cm] 28 | int32 relPosE # East component of relative position vector 29 | # [cm] 30 | int32 relPosD # Down component of relative position vector 31 | # [cm] 32 | 33 | int8 relPosHPN # High-precision North component of relative 34 | # position vector. [0.1 mm] 35 | # Must be in the range -99 to +99. 36 | # The full North component of the relative 37 | # position vector, in units of cm, is given by 38 | # relPosN + (relPosHPN * 1e-2) 39 | int8 relPosHPE # High-precision East component of relative 40 | # position vector. [0.1 mm] 41 | # Must be in the range -99 to +99. 42 | # The full East component of the relative 43 | # position vector, in units of cm, is given by 44 | # relPosE + (relPosHPE * 1e-2) 45 | int8 relPosHPD # High-precision Down component of relative 46 | # position vector. [0.1 mm] 47 | # Must be in the range -99 to +99. 48 | # The full Down component of the relative 49 | # position vector, in units of cm, is given by 50 | # relPosD + (relPosHPD * 1e-2) 51 | 52 | uint8 reserved1 # Reserved 53 | 54 | uint32 accN # Accuracy of relative position North 55 | # component [0.1 mm] 56 | uint32 accE # Accuracy of relative position East component 57 | # [0.1 mm] 58 | uint32 accD # Accuracy of relative position Down component 59 | # [0.1 mm] 60 | 61 | uint32 flags 62 | uint32 FLAGS_GNSS_FIX_OK = 1 # A valid fix (i.e within DOP & accuracy 63 | # masks) 64 | uint32 FLAGS_DIFF_SOLN = 2 # Set if differential corrections were applied 65 | uint32 FLAGS_REL_POS_VALID = 4 # Set if relative position components and 66 | # accuracies are valid 67 | uint32 FLAGS_CARR_SOLN_MASK = 24 # Carrier phase range solution status: 68 | uint32 FLAGS_CARR_SOLN_NONE = 0 # No carrier phase range solution 69 | uint32 FLAGS_CARR_SOLN_FLOAT = 8 # Float solution. No fixed integer carrier 70 | # phase measurements have been used to 71 | # calculate the solution 72 | uint32 FLAGS_CARR_SOLN_FIXED = 16 # Fixed solution. One or more fixed 73 | # integer carrier phase range measurements 74 | # have been used to calculate the solution 75 | uint32 FLAGS_IS_MOVING = 32 # if the receiver is operating in moving 76 | # baseline mode (not supported in protocol 77 | # versions less than 20.3) 78 | uint32 FLAGS_REF_POS_MISS = 64 # Set if extrapolated reference position was 79 | # used to compute moving baseline solution 80 | # this epoch (not supported in protocol 81 | # versions less than 20.3) 82 | uint32 FLAGS_REF_OBS_MISS = 128 # Set if extrapolated reference observations 83 | # were used to compute moving baseline 84 | # solution this epoch (not supported in 85 | # protocol versions less than 20.3) -------------------------------------------------------------------------------- /ublox_msgs/msg/NavRELPOSNED9.msg: -------------------------------------------------------------------------------- 1 | # NAV-RELPOSNED (0x01 0x3C) 2 | # Relative Positioning Information in NED frame 3 | # 4 | # The NED frame is defined as the local topological system at the reference 5 | # station. The relative position vector components in this message, along with 6 | # their associated accuracies, are given in that local topological system 7 | # This message contains the relative position vector from the Reference Station 8 | # to the Rover, including accuracy figures, in the local topological system 9 | # defined at the reference station 10 | # 11 | # Supported on: 12 | # - u-blox 9 from protocol version 27.11 (only with High Precision GNSS products) 13 | # 14 | 15 | uint8 CLASS_ID = 1 16 | uint8 MESSAGE_ID = 60 17 | 18 | uint8 version # Message version (0x00 for this version) 19 | uint8 reserved1 # Reserved 20 | uint16 refStationId # Reference Station ID. Must be in the range 21 | # 0..4095 22 | uint32 iTOW # GPS time of week of the navigation epoch 23 | # [ms] 24 | 25 | int32 relPosN # North component of relative position vector 26 | # [cm] 27 | int32 relPosE # East component of relative position vector 28 | # [cm] 29 | int32 relPosD # Down component of relative position vector 30 | # [cm] 31 | int32 relPosLength # Length of the relative position vector 32 | # [cm] 33 | int32 relPosHeading # Heading of the relative position vector 34 | # [1e-5 deg] 35 | uint8[4] reserved2 # Reserved 36 | int8 relPosHPN # High-precision North component of relative 37 | # position vector. [0.1 mm] 38 | # Must be in the range -99 to +99. 39 | # The full North component of the relative 40 | # position vector, in units of cm, is given by 41 | # relPosN + (relPosHPN * 1e-2) 42 | int8 relPosHPE # High-precision East component of relative 43 | # position vector. [0.1 mm] 44 | # Must be in the range -99 to +99. 45 | # The full East component of the relative 46 | # position vector, in units of cm, is given by 47 | # relPosE + (relPosHPE * 1e-2) 48 | int8 relPosHPD # High-precision Down component of relative 49 | # position vector. [0.1 mm] 50 | # Must be in the range -99 to +99. 51 | # The full Down component of the relative 52 | # position vector, in units of cm, is given by 53 | # relPosD + (relPosHPD * 1e-2) 54 | int8 relPosHPLength # High-precision component of the length of 55 | # the relative position vector. 56 | # Must be in the range -99 to +99. 57 | # The full length of the relative position 58 | # vector, in units of cm, is given by 59 | # relPosLength + (relPosHPLength * 1e-2) 60 | 61 | uint32 accN # Accuracy of relative position North 62 | # component [0.1 mm] 63 | uint32 accE # Accuracy of relative position East component 64 | # [0.1 mm] 65 | uint32 accD # Accuracy of relative position Down component 66 | # [0.1 mm] 67 | uint32 accLength # Accuracy of length of the relative position 68 | # vector [0.1 mm] 69 | uint32 accHeading # Accuracy of heading of the relative position 70 | # vector [1e-5 deg] 71 | 72 | uint8[4] reserved3 # Reserved 73 | 74 | uint32 flags 75 | uint32 FLAGS_GNSS_FIX_OK = 1 # A valid fix (i.e within DOP & accuracy 76 | # masks) 77 | uint32 FLAGS_DIFF_SOLN = 2 # Set if differential corrections were applied 78 | uint32 FLAGS_REL_POS_VALID = 4 # Set if relative position components and 79 | # accuracies are valid 80 | uint32 FLAGS_CARR_SOLN_MASK = 24 # Carrier phase range solution status: 81 | uint32 FLAGS_CARR_SOLN_NONE = 0 # No carrier phase range solution 82 | uint32 FLAGS_CARR_SOLN_FLOAT = 8 # Float solution. No fixed integer carrier 83 | # phase measurements have been used to 84 | # calculate the solution 85 | uint32 FLAGS_CARR_SOLN_FIXED = 16 # Fixed solution. One or more fixed 86 | # integer carrier phase range measurements 87 | # have been used to calculate the solution 88 | uint32 FLAGS_IS_MOVING = 32 # if the receiver is operating in moving 89 | # baseline mode (not supported in protocol 90 | # versions less than 20.3) 91 | uint32 FLAGS_REF_POS_MISS = 64 # Set if extrapolated reference position was 92 | # used to compute moving baseline solution 93 | # this epoch (not supported in protocol 94 | # versions less than 20.3) 95 | uint32 FLAGS_REF_OBS_MISS = 128 # Set if extrapolated reference observations 96 | # were used to compute moving baseline 97 | # solution this epoch (not supported in 98 | # protocol versions less than 20.3) 99 | uint32 FLAGS_REL_POS_HEAD_VALID = 256 # Set if extrapolated reference observations 100 | # were used to compute moving baseline 101 | # solution this epoch (not supported in 102 | # protocol versions less than 20.3) 103 | uint32 FLAGS_REL_POS_NORM = 512 # Set if extrapolated reference observations 104 | # were used to compute moving baseline 105 | # solution this epoch (not supported in 106 | # protocol versions less than 20.3) -------------------------------------------------------------------------------- /ublox_msgs/msg/NavSAT.msg: -------------------------------------------------------------------------------- 1 | # NAV-SAT (0x01 0x35) 2 | # Satellite Information 3 | # 4 | # This message displays information about SVs which are either known to be 5 | # visible or currently tracked by the receiver. 6 | # 7 | 8 | uint8 CLASS_ID = 1 9 | uint8 MESSAGE_ID = 53 10 | 11 | uint32 iTOW # GPS time of week of the navigation epoch. [ms] 12 | uint8 version # Message version (1 for this version) 13 | uint8 numSvs # Number of satellites 14 | uint8[2] reserved0 # Reserved 15 | 16 | # start of repeated block (numSvs times) 17 | NavSAT_SV[] sv 18 | # end of repeated block -------------------------------------------------------------------------------- /ublox_msgs/msg/NavSAT_SV.msg: -------------------------------------------------------------------------------- 1 | # see NAV-SAT message 2 | # 3 | 4 | uint8 gnssId # GNSS identifier 5 | uint8 svId # Satellite identifier 6 | 7 | uint8 cno # Carrier to noise ratio (signal strength) ]dBHz 8 | int8 elev # Elevation (range: +/-90), unknown if out of range [deg] 9 | int16 azim # Azimuth (range 0-360), unknown if elevation is out of range 10 | # [deg] 11 | int16 prRes # Pseudo range residual [0.1 m] 12 | 13 | uint32 flags # Bitmask 14 | uint32 FLAGS_QUALITY_IND_MASK = 7 # Signal quality indicator: 15 | uint8 QUALITY_IND_NO_SIGNAL = 0 # no signal 16 | uint8 QUALITY_IND_SEARCHING_SIGNAL = 1 # searching signal 17 | uint8 QUALITY_IND_SIGNAL_ACQUIRED = 2 # signal acquired 18 | uint8 QUALITY_IND_SIGNAL_DETECTED_BUT_UNUSABLE = 3 # signal detected but 19 | # unusable 20 | uint8 QUALITY_IND_CODE_LOCKED_AND_TIME_SYNC = 4 # code locked and time 21 | # synchronized 22 | uint8 QUALITY_IND_CODE_AND_CARR_LOCK_AND_TIME_SYNC1 = 5 # code and carrier 23 | # locked and time 24 | # synchronized, 25 | # quality = 1 26 | uint8 QUALITY_IND_CODE_AND_CARR_LOCK_AND_TIME_SYNC2 = 6 # code and carrier 27 | # locked and time 28 | # synchronized, 29 | # quality = 2 30 | uint8 QUALITY_IND_CODE_AND_CARR_LOCK_AND_TIME_SYNC3 = 7 # code and carrier 31 | # locked and time 32 | # synchronized, 33 | # quality = 3 34 | # Note: Since IMES signals are not time synchronized, a channel tracking an IMES 35 | # signal can never reach a quality indicator value of higher than 3. 36 | uint32 FLAGS_SV_USED = 8 # whether SV is currently being 37 | # used for navigation 38 | uint32 FLAGS_HEALTH_MASK = 48 # SV health flag: 39 | uint32 HEALTH_UNKNOWN = 0 # unknown 40 | uint32 HEALTH_HEALTHY = 1 # healthy 41 | uint32 HEALTH_UNHEALTHY = 2 # unhealthy 42 | uint32 FLAGS_DIFF_CORR = 64 # whether differential correction 43 | # data is available for this SV 44 | uint32 FLAGS_SMOOTHED = 128 # whether carrier smoothed 45 | # pseudorange used 46 | uint32 FLAGS_ORBIT_SOURCE_MASK = 1792 # Orbit source: 47 | uint32 ORBIT_SOURCE_UNAVAILABLE = 0 # no orbit information is 48 | # available for this SV 49 | uint32 ORBIT_SOURCE_EPH = 256 # ephemeris is used 50 | uint32 ORBIT_SOURCE_ALM = 512 # almanac is used 51 | uint32 ORBIT_SOURCE_ASSIST_OFFLINE = 768 # AssistNow Offline orbit is 52 | # used 53 | uint32 ORBIT_SOURCE_ASSIST_AUTONOMOUS = 1024 # AssistNow Autonomous orbit is 54 | # used 55 | uint32 ORBIT_SOURCE_OTHER1 = 1280 # other orbit information is 56 | # used 57 | uint32 ORBIT_SOURCE_OTHER2 = 1536 # other orbit information is 58 | # used 59 | uint32 ORBIT_SOURCE_OTHER3 = 1792 # other orbit information is 60 | # used 61 | uint32 FLAGS_EPH_AVAIL = 2048 # whether ephemeris is available 62 | # for this SV 63 | uint32 FLAGS_ALM_AVAIL = 4096 # whether almanac is available for 64 | # this SV 65 | uint32 FLAGS_ANO_AVAIL = 8192 # whether AssistNow Offline data 66 | # is available for this SV 67 | uint32 FLAGS_AOP_AVAIL = 16384 # whether AssistNow Autonomous 68 | # data is available for this SV 69 | uint32 FLAGS_SBAS_CORR_USED = 65536 # whether SBAS corrections have 70 | # been used for this SV 71 | uint32 FLAGS_RTCM_CORR_USED = 131072 # whether RTCM corrections have 72 | # been used for this SV 73 | uint32 FLAGS_PR_CORR_USED = 1048576 # whether Pseudorange corrections 74 | # have been used for this SV 75 | uint32 FLAGS_CR_CORR_USED = 2097152 # whether Carrier range 76 | # corrections have been used for 77 | # this SV 78 | uint32 FLAGS_DO_CORR_USED = 4194304 # whether Range rate (Doppler) 79 | # corrections have been used for 80 | # this SV -------------------------------------------------------------------------------- /ublox_msgs/msg/NavSBAS.msg: -------------------------------------------------------------------------------- 1 | # NAV-SBAS (0x01 0x32) 2 | # SBAS Status Data 3 | # 4 | # This message outputs the status of the SBAS sub system 5 | # 6 | 7 | uint8 CLASS_ID = 1 8 | uint8 MESSAGE_ID = 50 9 | 10 | uint32 iTOW # GPS Millisecond time of week [ms] 11 | 12 | uint8 geo # PRN Number of the GEO where correction and integrity 13 | # data is used from 14 | 15 | uint8 mode # SBAS Mode 16 | uint8 MODE_DISABLED = 0 17 | uint8 MODE_ENABLED_INTEGRITY = 1 18 | uint8 MODE_ENABLED_TESTMODE = 3 19 | 20 | int8 sys # SBAS System (WAAS/EGNOS/...) 21 | int8 SYS_UNKNOWN = -1 22 | int8 SYS_WAAS = 0 23 | int8 SYS_EGNOS = 1 24 | int8 SYS_MSAS = 2 25 | int8 SYS_GAGAN = 3 26 | int8 SYS_GPS = 16 27 | 28 | uint8 service # SBAS Services available 29 | uint8 SERVICE_RANGING = 1 30 | uint8 SERVICE_CORRECTIONS = 2 31 | uint8 SERVICE_INTEGRITY = 4 32 | uint8 SERVICE_TESTMODE = 8 33 | 34 | uint8 cnt # Number of SV data following 35 | uint8[3] reserved0 # Reserved 36 | 37 | NavSBAS_SV[] sv 38 | -------------------------------------------------------------------------------- /ublox_msgs/msg/NavSBAS_SV.msg: -------------------------------------------------------------------------------- 1 | # see message NavSBAS 2 | # 3 | 4 | uint8 svid # SV Id 5 | uint8 flags # Flags for this SV 6 | uint8 udre # Monitoring status 7 | uint8 svSys # System (WAAS/EGNOS/...), same as SYS 8 | uint8 svService # Services available, same as SERVICE 9 | uint8 reserved1 # Reserved 10 | int16 prc # Pseudo Range correction in [cm] 11 | uint16 reserved2 # Reserved 12 | int16 ic # Ionosphere correction in [cm] 13 | -------------------------------------------------------------------------------- /ublox_msgs/msg/NavSOL.msg: -------------------------------------------------------------------------------- 1 | # NAV-SOL (0x01 0x06) 2 | # Navigation Solution Information 3 | # 4 | # This message combines Position, velocity and time solution in ECEF, including 5 | # accuracy figures 6 | # This message has only been retained for backwards compatibility; users are 7 | # recommended to use the UBX-NAV-PVT message in preference. 8 | # 9 | 10 | uint8 CLASS_ID = 1 11 | uint8 MESSAGE_ID = 6 12 | 13 | uint32 iTOW # GPS Millisecond time of week [ms] 14 | int32 fTOW # Fractional Nanoseconds remainder of rounded 15 | # ms above, range -500000 .. 500000 [ns] 16 | int16 week # GPS week (GPS time) 17 | 18 | uint8 gpsFix # GPSfix Type, range 0..5 19 | uint8 GPS_NO_FIX = 0 20 | uint8 GPS_DEAD_RECKONING_ONLY = 1 21 | uint8 GPS_2D_FIX = 2 22 | uint8 GPS_3D_FIX = 3 23 | uint8 GPS_GPS_DEAD_RECKONING_COMBINED = 4 24 | uint8 GPS_TIME_ONLY_FIX = 5 25 | 26 | uint8 flags # Fix Status Flags 27 | uint8 FLAGS_GPS_FIX_OK = 1 # Fix within limits i.e. within DOP & ACC Masks 28 | uint8 FLAGS_DIFF_SOLN = 2 # DGPS used 29 | uint8 FLAGS_WKNSET = 4 # Week Number valid 30 | uint8 FLAGS_TOWSET = 8 # Time of Week valid 31 | 32 | int32 ecefX # ECEF X coordinate [cm] 33 | int32 ecefY # ECEF Y coordinate [cm] 34 | int32 ecefZ # ECEF Z coordinate [cm] 35 | uint32 pAcc # 3D Position Accuracy Estimate [cm] 36 | int32 ecefVX # ECEF X velocity [cm/s] 37 | int32 ecefVY # ECEF Y velocity [cm/s] 38 | int32 ecefVZ # ECEF Z velocity [cm/s] 39 | uint32 sAcc # Speed Accuracy Estimate [cm/s] 40 | uint16 pDOP # Position DOP [1 / 0.01] 41 | uint8 reserved1 # Reserved 42 | uint8 numSV # Number of SVs used in Nav Solution 43 | uint32 reserved2 # Reserved 44 | -------------------------------------------------------------------------------- /ublox_msgs/msg/NavSTATUS.msg: -------------------------------------------------------------------------------- 1 | # NAV-STATUS (0x01 0x03) 2 | # Receiver Navigation Status 3 | # 4 | # See important comments concerning validity of position and velocity given in 5 | # section Navigation Output Filters. 6 | # 7 | 8 | uint8 CLASS_ID = 1 9 | uint8 MESSAGE_ID = 3 10 | 11 | uint32 iTOW # GPS Millisecond time of week [ms] 12 | 13 | uint8 gpsFix # GPSfix Type, this value does not qualify a fix as 14 | # valid and within the limits. See note on flag gpsFixOk 15 | # below 16 | uint8 GPS_NO_FIX = 0 17 | uint8 GPS_DEAD_RECKONING_ONLY = 1 18 | uint8 GPS_2D_FIX = 2 19 | uint8 GPS_3D_FIX = 3 20 | uint8 GPS_GPS_DEAD_RECKONING_COMBINED = 4 21 | uint8 GPS_TIME_ONLY_FIX = 5 22 | 23 | uint8 flags # Navigation Status Flags 24 | uint8 FLAGS_GPS_FIX_OK = 1 # position & velocity valid & within DOP & ACC 25 | # Masks 26 | uint8 FLAGS_DIFF_SOLN = 2 # Differential corrections were applied 27 | uint8 FLAGS_WKNSET = 4 # Week Number valid 28 | uint8 FLAGS_TOWSET = 8 # Time of Week valid 29 | 30 | uint8 fixStat # Fix Status Information 31 | uint8 FIX_STAT_DIFF_CORR_MASK = 1 # 1 = differential corrections available 32 | # map matching status: 33 | uint8 FIX_STAT_MAP_MATCHING_MASK = 192 34 | uint8 MAP_MATCHING_NONE = 0 # none 35 | uint8 MAP_MATCHING_VALID = 64 # valid but not used, i.e. map matching data 36 | # was received, but was too old 37 | uint8 MAP_MATCHING_USED = 128 # valid and used, map matching data was applied 38 | uint8 MAP_MATCHING_DR = 192 # valid and used, map matching data was 39 | # applied. In case of sensor unavailability map 40 | # matching data enables dead reckoning. 41 | # This requires map matched latitude/longitude 42 | # or heading data. 43 | 44 | uint8 flags2 # further information about navigation output 45 | # power safe mode state (Only for FW version >= 7.01; undefined otherwise) 46 | uint8 FLAGS2_PSM_STATE_MASK = 3 47 | uint8 PSM_STATE_ACQUISITION = 0 # ACQUISITION 48 | # [or when psm disabled] 49 | uint8 PSM_STATE_TRACKING = 1 # TRACKING 50 | uint8 PSM_STATE_POWER_OPTIMIZED_TRACKING = 2 # POWER OPTIMIZED TRACKING 51 | uint8 PSM_STATE_INACTIVE = 3 # INACTIVE 52 | # Note that the spoofing state value only reflects the detector state for the 53 | # current navigation epoch. As spoofing can be detected most easily at the 54 | # transition from real signal to spoofing signal, this is also where the 55 | # detector is triggered the most. I.e. a value of 1 - No spoofing indicated does 56 | # not mean that the receiver is not spoofed, it #simply states that the detector 57 | # was not triggered in this epoch. 58 | uint8 FLAGS2_SPOOF_DET_STATE_MASK = 24 59 | uint8 SPOOF_DET_STATE_UNKNOWN = 0 # Unknown or deactivated 60 | uint8 SPOOF_DET_STATE_NONE = 8 # No spoofing indicated 61 | uint8 SPOOF_DET_STATE_SPOOFING = 16 # Spoofing indicated 62 | uint8 SPOOF_DET_STATE_MULTIPLE = 24 # Multiple spoofing indication 63 | 64 | uint32 ttff # Time to first fix (millisecond time tag) [ms] 65 | uint32 msss # Milliseconds since Startup / Reset [ms] 66 | -------------------------------------------------------------------------------- /ublox_msgs/msg/NavSVIN.msg: -------------------------------------------------------------------------------- 1 | # NAV-SVIN (0x01 0x3B) 2 | # Survey-in data 3 | # 4 | # This message contains information about survey-in parameters. 5 | # Supported on: 6 | # - u-blox 8 / u-blox M8 with protocol version 20 (only with High Precision 7 | # GNSS products) 8 | 9 | uint8 CLASS_ID = 1 10 | uint8 MESSAGE_ID = 59 11 | 12 | uint8 version # Message version (0x00 for this version) 13 | uint8[3] reserved0 # Reserved 14 | 15 | uint32 iTOW # GPS time of week of the navigation epoch [ms] 16 | 17 | uint32 dur # Passed survey-in observation time [s] 18 | 19 | int32 meanX # Current survey-in mean position ECEF X coordinate [cm] 20 | int32 meanY # Current survey-in mean position ECEF Y coordinate [cm] 21 | int32 meanZ # Current survey-in mean position ECEF Z coordinate [cm] 22 | 23 | int8 meanXHP # Current high-precision survey-in mean position 24 | # ECEF X coordinate. 0.1_mm 25 | # Must be in the range -99..+99. 26 | # The current survey-in mean position ECEF X 27 | # coordinate, in units of cm, is given by 28 | # meanX + (0.01 * meanXHP) 29 | int8 meanYHP # Current high-precision survey-in mean position 30 | # ECEF Y coordinate. [0.1 mm] 31 | # Must be in the range -99..+99. 32 | # The current survey-in mean position ECEF Y 33 | # coordinate, in units of cm, is given by 34 | # meanY + (0.01 * meanYHP) 35 | int8 meanZHP # Current high-precision survey-in mean position 36 | # ECEF Z coordinate. [0.1 mm] 37 | # Must be in the range -99..+99. 38 | # The current survey-in mean position ECEF Z 39 | # coordinate, in units of cm, is given by 40 | # meanZ + (0.01 * meanZHP) 41 | 42 | uint8 reserved1 # Reserved 43 | 44 | uint32 meanAcc # Current survey-in mean position accuracy [0.1 mm] 45 | uint32 obs # Number of position observations used during survey-in 46 | uint8 valid # Survey-in position validity flag, 1 = valid 47 | # otherwise 0 48 | uint8 active # Survey-in in progress flag, 1 = in-progress 49 | # otherwise 0 50 | 51 | uint8[2] reserved3 # Reserved -------------------------------------------------------------------------------- /ublox_msgs/msg/NavSVINFO.msg: -------------------------------------------------------------------------------- 1 | # NAV-SVINFO (0x01 0x30) 2 | # Space Vehicle Information 3 | # 4 | 5 | uint8 CLASS_ID = 1 6 | uint8 MESSAGE_ID = 48 7 | 8 | uint32 iTOW # GPS Millisecond time of week [ms] 9 | 10 | uint8 numCh # Number of channels 11 | 12 | uint8 globalFlags # Bitmask 13 | # Chip Hardware generation flags 14 | uint8 CHIPGEN_ANTARIS = 0 # Antaris, Antaris 4 15 | uint8 CHIPGEN_UBLOX5 = 1 # u-blox 5 16 | uint8 CHIPGEN_UBLOX6 = 2 # u-blox 6 17 | uint8 CHIPGEN_UBLOX7 = 3 # u-blox 7 18 | uint8 CHIPGEN_UBLOX8 = 4 # u-blox 8 / u-blox M8 19 | 20 | uint16 reserved2 # Reserved 21 | 22 | NavSVINFO_SV[] sv 23 | -------------------------------------------------------------------------------- /ublox_msgs/msg/NavSVINFO_SV.msg: -------------------------------------------------------------------------------- 1 | # see message NavSVINFO 2 | # 3 | 4 | uint8 chn # Channel number, 255 for SVs not assigned to a channel 5 | uint8 svid # Satellite ID 6 | 7 | uint8 flags # Bitmask 8 | uint8 FLAGS_SV_USED = 1 # SV is used for navigation 9 | uint8 FLAGS_DIFF_CORR = 2 # Differential correction data 10 | # is available for this SV 11 | uint8 FLAGS_ORBIT_AVAIL = 4 # Orbit information is available for 12 | # this SV (Ephemeris or Almanach) 13 | uint8 FLAGS_ORBIT_EPH = 8 # Orbit information is Ephemeris 14 | uint8 FLAGS_UNHEALTHY = 16 # SV is unhealthy / shall not be 15 | # used 16 | uint8 FLAGS_ORBIT_ALM = 32 # Orbit information is Almanac Plus 17 | uint8 FLAGS_ORBIT_AOP = 64 # Orbit information is AssistNow 18 | # Autonomous 19 | uint8 FLAGS_SMOOTHED = 128 # Carrier smoothed pseudorange used 20 | 21 | uint8 quality # Bitfield 22 | # qualityInd: Signal Quality indicator (range 0..7). The following list shows 23 | # the meaning of the different QI values: 24 | # Note: Since IMES signals are not time synchronized, a channel tracking an IMES 25 | # signal can never reach a quality indicator value of higher than 3. 26 | uint8 QUALITY_IDLE = 0 # This channel is idle 27 | uint8 QUALITY_SEARCHING = 1 # Channel is searching 28 | uint8 QUALITY_ACQUIRED = 2 # Signal acquired 29 | uint8 QUALITY_DETECTED = 3 # Signal detected but unusable 30 | uint8 QUALITY_CODE_LOCK = 4 # Code Lock on Signal 31 | uint8 QUALITY_CODE_AND_CARRIER_LOCKED1 = 5 # Code and Carrier locked 32 | # and time synchronized 33 | uint8 QUALITY_CODE_AND_CARRIER_LOCKED2 = 6 # Code and Carrier locked 34 | # and time synchronized 35 | uint8 QUALITY_CODE_AND_CARRIER_LOCKED3 = 7 # Code and Carrier locked 36 | # and time synchronized 37 | 38 | uint8 cno # Carrier to Noise Ratio (Signal Strength) [dBHz] 39 | int8 elev # Elevation in integer degrees [deg] 40 | int16 azim # Azimuth in integer degrees [deg] 41 | int32 prRes # Pseudo range residual in centimetres [cm] 42 | -------------------------------------------------------------------------------- /ublox_msgs/msg/NavTIMEGPS.msg: -------------------------------------------------------------------------------- 1 | # NAV-TIMEGPS (0x01 0x20) 2 | # GPS Time Solution 3 | # 4 | 5 | uint8 CLASS_ID = 1 6 | uint8 MESSAGE_ID = 32 7 | 8 | uint32 iTOW # GPS Millisecond time of week [ms] 9 | int32 fTOW # Fractional Nanoseconds remainder of rounded 10 | # ms above, range -500000 .. 500000 [ns] 11 | int16 week # GPS week (GPS time) 12 | 13 | int8 leapS # Leap Seconds (GPS-UTC) [s] 14 | 15 | uint8 valid # Validity Flags 16 | uint8 VALID_TOW = 1 # Valid Time of Week 17 | uint8 VALID_WEEK = 2 # Valid Week Number 18 | uint8 VALID_LEAP_S = 4 # Valid Leap Seconds 19 | 20 | uint32 tAcc # Time Accuracy Estimate [ns] 21 | -------------------------------------------------------------------------------- /ublox_msgs/msg/NavTIMEUTC.msg: -------------------------------------------------------------------------------- 1 | # NAV-TIMEUTC (0x01 0x21) 2 | # UTC Time Solution 3 | # 4 | 5 | uint8 CLASS_ID = 1 6 | uint8 MESSAGE_ID = 33 7 | 8 | uint32 iTOW # GPS Millisecond time of week [ms] 9 | 10 | uint32 tAcc # Time Accuracy Estimate [ns] 11 | int32 nano # Fraction of second, range -1e9 .. 1e9 (UTC) [ns] 12 | uint16 year # Year, range 1999..2099 (UTC) [y] 13 | uint8 month # Month, range 1..12 (UTC) [month] 14 | uint8 day # Day of Month, range 1..31 (UTC) [d] 15 | uint8 hour # Hour of Day, range 0..23 (UTC) [h] 16 | uint8 min # Minute of Hour, range 0..59 (UTC) [min] 17 | uint8 sec # Seconds of Minute, range 0..60 (UTC) [s] (60 for 18 | # leap second) 19 | 20 | uint8 valid # Validity Flags 21 | uint8 VALID_TOW = 1 # Valid Time of Week 22 | uint8 VALID_WKN = 2 # Valid Week Number 23 | uint8 VALID_UTC = 4 # Valid Leap Seconds, i.e. Leap Seconds already known 24 | uint8 VALID_UTC_STANDARD_MASK = 240 # UTC standard Identifier Bit mask: 25 | uint8 UTC_STANDARD_NOT_AVAILABLE = 0 # Information not available 26 | uint8 UTC_STANDARD_CRL = 16 # Communications Research Labratory 27 | uint8 UTC_STANDARD_NIST = 32 # National Institute of Standards and 28 | # Technology (NIST) 29 | uint8 UTC_STANDARD_USNO = 48 # U.S. Naval Observatory (USNO) 30 | uint8 UTC_STANDARD_BIPM = 64 # International Bureau of Weights and 31 | # Measures (BIPM) 32 | uint8 UTC_STANDARD_EL = 80 # European Laboratory (tbd) 33 | uint8 UTC_STANDARD_SU = 96 # Former Soviet Union (SU) 34 | uint8 UTC_STANDARD_NTSC = 112 # National Time Service Center, China 35 | uint8 UTC_STANDARD_UNKNOWN = 240 -------------------------------------------------------------------------------- /ublox_msgs/msg/NavVELECEF.msg: -------------------------------------------------------------------------------- 1 | # NAV-VELECEF (0x01 0x11) 2 | # Velocity Solution in ECEF 3 | # 4 | # See important comments concerning validity of velocity given in section 5 | # Navigation Output Filters. 6 | # 7 | 8 | uint8 CLASS_ID = 1 9 | uint8 MESSAGE_ID = 17 10 | 11 | uint32 iTOW # GPS Millisecond time of week [ms] 12 | 13 | int32 ecefVX # ECEF X velocity [cm/s] 14 | int32 ecefVY # ECEF Y velocity [cm/s] 15 | int32 ecefVZ # ECEF Z velocity [cm/s] 16 | uint32 sAcc # Speed Accuracy Estimate [cm/s] 17 | -------------------------------------------------------------------------------- /ublox_msgs/msg/NavVELNED.msg: -------------------------------------------------------------------------------- 1 | # NAV-VELNED (0x01 0x12) 2 | # Velocity Solution in NED 3 | # 4 | # See important comments concerning validity of velocity given in section 5 | # Navigation Output Filters. 6 | # 7 | 8 | uint8 CLASS_ID = 1 9 | uint8 MESSAGE_ID = 18 10 | 11 | uint32 iTOW # GPS Millisecond time of week [ms] 12 | 13 | int32 velN # NED north velocity [cm/s] 14 | int32 velE # NED east velocity [cm/s] 15 | int32 velD # NED down velocity [cm/s] 16 | uint32 speed # Speed (3-D) [cm/s] 17 | uint32 gSpeed # Ground Speed (2-D) [cm/s] 18 | int32 heading # Heading of motion 2-D [deg / 1e-5] 19 | uint32 sAcc # Speed Accuracy Estimate [cm/s] 20 | uint32 cAcc # Course / Heading Accuracy Estimate [deg / 1e-5] 21 | -------------------------------------------------------------------------------- /ublox_msgs/msg/RxmALM.msg: -------------------------------------------------------------------------------- 1 | # RXM-ALM (0x02 0x30) 2 | # GPS Aiding Almanach Input/Output Message 3 | # 4 | # This message is provided considered obsolete, please use AID-ALM instead! 5 | # - If the WEEK Value is 0, DWRD0 to DWRD7 are not sent as the almanach is not 6 | # available for the given SV. 7 | # - DWORD0 to DWORD7 contain the 8 words following the Hand-Over Word ( HOW ) 8 | # from the GPS navigation message, either pages 1 to 24 of sub-frame 5 or 9 | # pages 2 to 10 of subframe 4. See IS-GPS-200 for a full description of the 10 | # contents of the Almanac pages. 11 | # - In DWORD0 to DWORD7, the parity bits have been removed, and the 24 bits of 12 | # data are located in Bits 0 to 23. Bits 24 to 31 shall be ignored. 13 | # - Example: Parameter e (Eccentricity) from Almanach Subframe 4/5, Word 3, 14 | # Bits 69-84 within the subframe can be found in DWRD0, Bits 15-0 whereas 15 | # Bit 0 is the LSB. 16 | # 17 | 18 | uint8 CLASS_ID = 2 19 | uint8 MESSAGE_ID = 48 20 | 21 | uint32 svid # SV ID for which this Almanach Data is 22 | # (Valid Range: 1 .. 32 or 51, 56, 63). 23 | uint32 week # Issue Date of Almanach (GPS week number) 24 | 25 | # Start of optional block 26 | uint32[] dwrd # Almanach Words 27 | # End of optional block 28 | -------------------------------------------------------------------------------- /ublox_msgs/msg/RxmEPH.msg: -------------------------------------------------------------------------------- 1 | # RXM-EPH (0x02 0x31) 2 | # GPS Aiding Ephemeris Input/Output Message 3 | # 4 | # This message is provided considered obsolete, please use AID-EPH instead! 5 | # - SF1D0 to SF3D7 is only sent if ephemeris is available for this SV. If not, 6 | # the payload may be reduced to 8 Bytes, or all bytes are set to zero, 7 | # indicating that this SV Number does not have valid ephemeris for the moment. 8 | # - SF1D0 to SF3D7 contain the 24 words following the Hand-Over Word ( HOW ) 9 | # from the GPS navigation message, subframes 1 to 3. See IS-GPS-200 for a 10 | # full description of the contents of the Subframes. 11 | # - In SF1D0 to SF3D7, the parity bits have been removed, and the 24 bits of 12 | # data are located in Bits 0 to 23. Bits 24 to 31 shall be ignored. 13 | # 14 | 15 | uint8 CLASS_ID = 2 16 | uint8 MESSAGE_ID = 49 17 | 18 | uint32 svid # SV ID for which this ephemeris data is (Valid Range: 1 .. 32). 19 | uint32 how # Hand-Over Word of first Subframe. This is 20 | # required if data is sent to the receiver. 21 | # 0 indicates that no Ephemeris Data is following. 22 | 23 | # Start of optional block 24 | uint32[] sf1d # Subframe 1 Words 3..10 (SF1D0..SF1D7) 25 | uint32[] sf2d # Subframe 2 Words 3..10 (SF2D0..SF2D7) 26 | uint32[] sf3d # Subframe 3 Words 3..10 (SF3D0..SF3D7) 27 | # End of optional block 28 | -------------------------------------------------------------------------------- /ublox_msgs/msg/RxmRAW.msg: -------------------------------------------------------------------------------- 1 | # RXM-RAW (0x02 0x10) 2 | # Raw Measurement Data 3 | # 4 | # Supported up to ublox 7 firmware. See RxmRAWX for ublox 8 5 | # This message contains all information needed to be able to generate a RINEX 6 | # observation file. 7 | # This message outputs pseudorange, doppler and carrier phase measurements for 8 | # GPS satellites once signals have been synchronised. No other GNSS types are 9 | # currently supported. 10 | # 11 | 12 | uint8 CLASS_ID = 2 13 | uint8 MESSAGE_ID = 16 14 | 15 | int32 rcvTOW # Measurement time of week in receiver local time [s] 16 | int16 week # Measurement week number in receiver local time [weeks] 17 | 18 | uint8 numSV # # of satellites following 19 | uint8 reserved1 # Reserved 20 | 21 | RxmRAW_SV[] sv # numSV times 22 | -------------------------------------------------------------------------------- /ublox_msgs/msg/RxmRAWX.msg: -------------------------------------------------------------------------------- 1 | # RXM-RAWX (0x02 0x15) 2 | # Multi-GNSS Raw Measurement Data 3 | # 4 | # This message contains the information needed to be able to generate a RINEX 3 5 | # multi-GNSS observation file. 6 | # This message contains pseudorange, Doppler, carrier phase, phase lock and 7 | # signal quality information for GNSS satellites once signals have been 8 | # synchronized. This message supports all active GNSS. 9 | # 10 | 11 | uint8 CLASS_ID = 2 12 | uint8 MESSAGE_ID = 21 13 | 14 | float64 rcvTOW # Measurement time of week in receiver local time [s] 15 | # approximately aligned to the GPS time system. The 16 | # receiver local time of week number and leap second 17 | # information can be used to translate the time to other 18 | # time systems. More information about the difference in 19 | # time systems can be found in RINEX 3 documentation. 20 | # For a receiver operating in GLONASS only mode, UTC 21 | # time can be determined by subtracting the leapS field 22 | # from GPS time regardless of whether the GPS leap 23 | # seconds are valid. 24 | uint16 week # GPS week number in receiver local time. [weeks] 25 | int8 leapS # GPS leap seconds (GPS-UTC). [s] 26 | # This field represents the receiver's best knowledge of 27 | # the leap seconds offset. A flag is given in the 28 | # recStat bitfield to indicate if the leap seconds 29 | # are known. 30 | uint8 numMeas # # of measurements to follow 31 | uint8 recStat # Receiver tracking status bitfield 32 | uint8 REC_STAT_LEAP_SEC = 1 # Leap seconds have been determined 33 | uint8 REC_STAT_CLK_RESET = 2 # Clock reset applied. Typically the receiver 34 | # clock is changed in increments of integer 35 | # milliseconds. 36 | uint8 version # Message version (0x01 for this version). 37 | uint8[2] reserved1 # Reserved 38 | 39 | RxmRAWX_Meas[] meas 40 | -------------------------------------------------------------------------------- /ublox_msgs/msg/RxmRAWX_Meas.msg: -------------------------------------------------------------------------------- 1 | # see message RxmRAWX 2 | # 3 | 4 | float64 prMes # Pseudorange measurement [m]. GLONASS inter frequency 5 | # channel delays are compensated with an internal 6 | # calibration table. 7 | float64 cpMes # Carrier phase measurement [L1 cycles]. The carrier 8 | # phase initial ambiguity is initialized using an 9 | # approximate value to make the magnitude of 10 | # the phase close to the pseudorange 11 | # measurement. Clock resets are applied to both 12 | # phase and code measurements in accordance 13 | # with the RINEX specification. 14 | float32 doMes # Doppler measurement [Hz] (positive sign for 15 | # approaching satellites) 16 | uint8 gnssId # GNSS identifier (see CfgGNSS for constants) 17 | 18 | uint8 svId # Satellite identifier (see Satellite Numbering) 19 | 20 | uint8 reserved0 # Reserved 21 | 22 | uint8 freqId # Only used for GLONASS: This is the frequency 23 | # slot + 7 (range from 0 to 13) 24 | uint16 locktime # Carrier phase locktime counter [ms] 25 | # (maximum 64500 ms) 26 | int8 cno # Carrier-to-noise density ratio (signal strength) 27 | # [dB-Hz] 28 | uint8 prStdev # Estimated pseudorange measurement standard 29 | # deviation [m / 0.01*2^n] 30 | uint8 cpStdev # Estimated carrier phase measurement standard 31 | # deviation (note a raw value of 0x0F indicates the 32 | # value is invalid) [cycles / 0.004] 33 | uint8 doStdev # Estimated Doppler measurement standard deviation 34 | # [Hz / 0.002*2^n] 35 | 36 | uint8 trkStat # Tracking status bitfield 37 | uint8 TRK_STAT_PR_VALID = 1 # Pseudorange valid 38 | uint8 TRK_STAT_CP_VALID = 2 # Carrier phase valid 39 | uint8 TRK_STAT_HALF_CYC = 4 # Half cycle valid 40 | uint8 TRK_STAT_SUB_HALF_CYC = 8 # Half cycle subtracted from phase 41 | 42 | uint8 reserved1 # Reserved 43 | -------------------------------------------------------------------------------- /ublox_msgs/msg/RxmRAW_SV.msg: -------------------------------------------------------------------------------- 1 | # see message RxmRAW 2 | # 3 | 4 | float64 cpMes # Carrier phase measurement [L1 cycles] 5 | float64 prMes # Pseudorange measurement [m] 6 | float32 doMes # Doppler measurement [Hz] 7 | 8 | uint8 sv # Space Vehicle Number 9 | int8 mesQI # Nav Measurements Quality Indicator 10 | # >=4 : PR+DO OK 11 | # >=5 : PR+DO+CP OK 12 | # <6 : likely loss of carrier lock in previous 13 | # interval 14 | int8 cno # Signal strength C/No. [dbHz] 15 | uint8 lli # Loss of lock indicator (RINEX definition) 16 | -------------------------------------------------------------------------------- /ublox_msgs/msg/RxmRTCM.msg: -------------------------------------------------------------------------------- 1 | # RXM-RTCM (0x02 0x32) 2 | # RTCM input status 3 | # 4 | # Output upon processing of an RTCM input message 5 | # Supported on: 6 | # - u-blox 8 / u-blox M8 from protocol version 20.01 up to version 23.01 7 | # 8 | 9 | uint8 CLASS_ID = 2 10 | uint8 MESSAGE_ID = 50 11 | 12 | uint8 version # Message version (0x02 for this version) 13 | uint8 flags # RTCM input status flags 14 | uint8 FLAGS_CRC_FAILED = 1 # 0 when RTCM message received and passed CRC 15 | # check, 1 when failed in which case refStation 16 | # and msgType might be corrupted and misleading 17 | 18 | uint8[2] reserved0 # Reserved 19 | 20 | uint16 refStation # Reference station ID 21 | uint16 msgType # Message type 22 | -------------------------------------------------------------------------------- /ublox_msgs/msg/RxmSFRB.msg: -------------------------------------------------------------------------------- 1 | # RXM-SFRB (0x02 0x11) 2 | # Subframe Buffer 3 | # 4 | # The content of one single subframe buffer 5 | # For GPS satellites, the 10 dwrd values contain the parity checked subframe 6 | # data for 10 Words. Each dwrd has 24 Bits with valid data (Bits 23 to 0). The 7 | # remaining 8 bits (31 to 24) have an undefined value. The direction within the 8 | # Word is that the higher order bits are received from the SV first. Example: 9 | # The Preamble can be found in dwrd[0], at bit position 23 down to 16. For more 10 | # details on the data format please refer to the ICD-GPS-200C 11 | # Interface document. 12 | # For SBAS satellites, the 250 Bit message block can be found in dwrd[0] to 13 | # dwrd[6] for the first 224 bits. The remaining 26 bits are in dwrd[7], whereas 14 | # Bits 25 and 24 are the last two data bits, and Bits 23 down to 0 are the 15 | # parity bits. For more information on SBAS data format, please refer to 16 | # RTCA/DO-229C (MOPS), Appendix A. 17 | # 18 | 19 | uint8 CLASS_ID = 2 20 | uint8 MESSAGE_ID = 17 21 | 22 | uint8 chn # Channel Number 23 | uint8 svid # ID of Satellite transmitting Subframe 24 | uint32[10] dwrd # Words of Data 25 | -------------------------------------------------------------------------------- /ublox_msgs/msg/RxmSFRBX.msg: -------------------------------------------------------------------------------- 1 | # RXM-SFRB (0x02 0x13) 2 | # Subframe Buffer 3 | # 4 | # This message reports a complete subframe of broadcast navigation data decoded 5 | # from a single signal. The number of data words reported in each message 6 | # depends on the nature of the signal. See the section on Broadcast Navigation 7 | # Data for further details. 8 | # 9 | 10 | uint8 CLASS_ID = 2 11 | uint8 MESSAGE_ID = 19 12 | 13 | uint8 gnssId # GNSS identifier (see Cfg GNSS for constants) 14 | 15 | uint8 svId # Satellite identifier within corresponding GNSS system 16 | uint8 reserved0 # Reserved 17 | uint8 freqId # Only used for GLONASS: This is the frequency 18 | # slot + 7 (range from 0 to 13) 19 | uint8 numWords # The number of data words contained in this message (up 20 | # to 10, for currently supported signals) 21 | uint8 chn # The tracking channel number the message was received 22 | # on 23 | uint8 version # Message version, (0x02 for this version) 24 | uint8 reserved1 # Reserved 25 | 26 | # Start of repeated block (numWords times) 27 | uint32[] dwrd # The data words 28 | # End of repeated block -------------------------------------------------------------------------------- /ublox_msgs/msg/RxmSVSI.msg: -------------------------------------------------------------------------------- 1 | # RXM-SVSI (0x02 0x20) 2 | # SV Status Info 3 | # 4 | # Status of the receiver manager knowledge about GPS Orbit Validity 5 | # 6 | # This message has only been retained for backwards compatibility; users are 7 | # recommended to use the UBX-NAV-ORB message in preference. 8 | 9 | uint8 CLASS_ID = 2 10 | uint8 MESSAGE_ID = 32 11 | 12 | int32 iTOW # GPS time of week of the navigation epoch [ms] 13 | int16 week # GPS week number of the navigation epoch [weeks] 14 | 15 | uint8 numVis # Number of visible satellites 16 | uint8 numSV # Number of per-SV data blocks following 17 | 18 | RxmSVSI_SV[] sv 19 | -------------------------------------------------------------------------------- /ublox_msgs/msg/RxmSVSI_SV.msg: -------------------------------------------------------------------------------- 1 | # see message RxmSVSI 2 | # 3 | 4 | uint8 svid # Satellite ID 5 | 6 | uint8 svFlag # Information Flags 7 | uint8 FLAG_URA_MASK = 15 # Figure of Merit (URA) range 0..15 8 | uint8 FLAG_HEALTHY = 16 # SV healthy flag 9 | uint8 FLAG_EPH_VAL = 32 # Ephemeris valid 10 | uint8 FLAG_ALM_VAL = 64 # Almanac valid 11 | uint8 FLAG_NOT_AVAIL = 128 # SV not available 12 | 13 | int16 azim # Azimuth 14 | int8 elev # Elevation 15 | 16 | uint8 age # Age of Almanac and Ephemeris 17 | uint8 AGE_ALM_MASK = 15 # Age of ALM in days offset by 4 18 | # i.e. the reference time may be in the future: 19 | # ageOfAlm = (age & 0x0f) - 4 20 | uint8 AGE_EPH_MASK = 240 # Age of EPH in hours offset by 4. 21 | # i.e. the reference time may be in the future: 22 | # ageOfEph = ((age & 0xf0) >> 4) - 4 23 | -------------------------------------------------------------------------------- /ublox_msgs/msg/TimTM2.msg: -------------------------------------------------------------------------------- 1 | # TIM-TM2 (0x0D, 0x03) 2 | # Time mark data 3 | # 4 | # Description for details. 5 | # 6 | # Supported on: 7 | # - u-blox 8 / u-blox M8 with protocol version 22 (only with Timing Products) 8 | # 9 | 10 | uint8 CLASS_ID = 13 11 | uint8 MESSAGE_ID = 3 12 | 13 | uint8 ch # Channel (i.e. EXTINT) upon which the pulse was measured 14 | 15 | uint8 flags # Bitmask [newRisingEdge, time, utc, timeBase, , newFallingEdge, run, mode] 16 | uint8 FLAGS_MODE_RUNNING = 1 # single = 0, running = 1 17 | uint8 FLAGS_RUN = 2 # armed = 0, stopped = 1 18 | uint8 FLAGS_NEWFALLINGEDGE = 4 # new falling edge detected 19 | uint8 FLAGS_TIMEBASE_GNSS = 8 # 0 = time base is receiver time, 1 = time base is GNSS Time (according to the configuration in CFG-TP5 for tpldx= 0) 20 | uint8 FLAGS_TIMEBASE_UTC = 16 # Time Base is UTC (the variant according to the configuration in CFG-NAV5 21 | uint8 FLAGS_UTC_AVAIL = 32 # 0 = utc not available, 1 = utc available 22 | uint8 FLAGS_TIME_VALID = 64 # 0 = time is not valid, 1 time is valid 23 | uint8 FLAGS_NEWRISINGEDGE = 128 # new rising edge detected 24 | 25 | uint16 risingEdgeCount # rising edge count 26 | uint16 wnR # week number of last rising edge 27 | uint16 wnF # week number of last falling edge 28 | uint32 towMsR # Tow of rising edge 29 | uint32 towSubMsR # Millisecond Fraction of Tow of rising edge in nanoseconds 30 | uint32 towMsF # tow of falling edge 31 | uint32 towSubMsF # millisecond fraction of tow of falling edge in nanoseconds 32 | uint32 accEst # Accuracy estimate 33 | -------------------------------------------------------------------------------- /ublox_msgs/msg/UpdSOS.msg: -------------------------------------------------------------------------------- 1 | # UPD-SOS (0x09 0x14) 2 | # 3 | # Firmware Supported on: 4 | # u-blox 8 / u-blox M8 from protocol version 15 up to version 23.01 5 | # 6 | 7 | uint8 CLASS_ID = 9 8 | uint8 MESSAGE_ID = 20 9 | 10 | uint8 cmd # Command 11 | # The host can send this message in order to save part of the BBR memory in a 12 | # file in flash file system. The feature is designed in order to emulate the 13 | # presence of the backup battery even if it is not present; the host can issue 14 | # the save on shutdown command before switching off the device supply. It is 15 | # recommended to issue a GNSS stop command before, in order to keep the BBR 16 | # memory content consistent. 17 | uint8 CMD_FLASH_BACKUP_CREATE = 0 # Create Backup File in Flash 18 | # The host can send this message in order to erase the backup file present in 19 | # flash. It is recommended that the clear operation is issued after the host has 20 | # received the notification that the memory has been restored after a reset. 21 | # Alternatively the host can parse the startup string 'Restored data saved on 22 | # shutdown' or poll the UBX-UPD-SOS message for getting the status. 23 | uint8 CMD_FLASH_BACKUP_CLEAR = 1 # Clear Backup File in Flash 24 | 25 | uint8[3] reserved1 # Reserved -------------------------------------------------------------------------------- /ublox_msgs/msg/UpdSOS_Ack.msg: -------------------------------------------------------------------------------- 1 | # UPD-SOS (0x09 0x14) 2 | # 3 | # Backup File Creation Acknowledge / System Restored from Backup 4 | # 5 | # Firmware Supported on: 6 | # u-blox 8 / u-blox M8 from protocol version 15 up to version 23.01 7 | # 8 | 9 | uint8 CLASS_ID = 9 10 | uint8 MESSAGE_ID = 20 11 | 12 | uint8 cmd # Command 13 | uint8 CMD_BACKUP_CREATE_ACK = 2 # Backup File Creation Acknowledge 14 | # The message is sent from the device as 15 | # confirmation of creation of a backup file 16 | # in flash. The host can safely shut down the 17 | # device after received this message. 18 | uint8 CMD_SYSTEM_RESTORED = 3 # System Restored from Backup 19 | # The message is sent from the device to 20 | # notify the host the BBR has been restored 21 | # from a backup file in flash. The host 22 | # should clear the backup file after 23 | # receiving this message. If the UBX-UPD-SOS 24 | # message is polled, this message will be 25 | # present. 26 | 27 | uint8[3] reserved0 # Reserved 28 | 29 | uint8 response # Response: 30 | uint8 BACKUP_CREATE_NACK = 0 # Not acknowledged 31 | uint8 BACKUP_CREATE_ACK = 1 # Acknowledged 32 | uint8 SYSTEM_RESTORED_RESPONSE_UNKNOWN = 0 # Unknown 33 | uint8 SYSTEM_RESTORED_RESPONSE_FAILED = 1 # Failed restoring from backup 34 | # file 35 | uint8 SYSTEM_RESTORED_RESPONSE_RESTORED = 2 # Restored from backup file 36 | uint8 SYSTEM_RESTORED_RESPONSE_NOT_RESTORED = 3 # Not restored (no backup) 37 | 38 | uint8[3] reserved1 # Reserved -------------------------------------------------------------------------------- /ublox_msgs/package.xml: -------------------------------------------------------------------------------- 1 | 2 | ublox_msgs 3 | 1.5.0 4 | 5 | 6 | ublox_msgs contains raw messages for u-blox GNSS devices. 7 | 8 | 9 | Johannes Meyer 10 | Veronica Lane 11 | BSD 12 | http://ros.org/wiki/ublox 13 | 14 | catkin 15 | 16 | message_generation 17 | message_runtime 18 | 19 | ublox_serialization 20 | ublox_serialization 21 | 22 | std_msgs 23 | std_msgs 24 | 25 | sensor_msgs 26 | sensor_msgs 27 | 28 | 29 | 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /ublox_serialization/CHANGELOG.rst: -------------------------------------------------------------------------------- 1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2 | Changelog for package ublox_serialization 3 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 4 | 5 | 1.5.0 (2021-10-15) 6 | ------------------ 7 | 8 | 1.4.1 (2020-06-04) 9 | ------------------ 10 | 11 | 1.4.0 (2020-05-28) 12 | ------------------ 13 | * Bump CMake minimum version to 3.0.2 14 | * Contributors: Gonçalo Pereira 15 | 16 | 1.3.1 (2020-03-12) 17 | ------------------ 18 | 19 | 1.3.0 (2020-01-10) 20 | ------------------ 21 | 22 | 1.2.0 (2019-11-19) 23 | ------------------ 24 | 25 | 1.1.2 (2017-08-02) 26 | ------------------ 27 | * README and package xml updates 28 | * Fixed bug with enabling INF messages. Changed how messages which update fix are enabled and changed name of subscribe param namespace to publish. 29 | * Added doxygen comments and made minor cleanup changes. 30 | * Added doxygen comments 31 | * Contributors: Veronica Lane 32 | 33 | 1.1.0 (2017-07-17) 34 | ------------------ 35 | * Updated package xmls with new version number and corrected my email address. Also updated readme to include information about new version plus new parameter 36 | * changed name of macro for clarity 37 | * changed receive message error print statements to only print in debug mode 38 | * Added additional MON messages. Received INF messages are now printed to the ROS console. Also added constants and comments to serialization and a new macro so 1 message can have multiple class, message ID pairs. 39 | * Contributors: Veronica Lane 40 | 41 | 1.0.0 (2017-06-23) 42 | ------------------ 43 | * added myself as maintainer to package xmls and updated version numbers of modified packages. 44 | * formatting 45 | * Formatting of copyright so it's <80 char and changed std::cout in Async worker to ROS_INFO messages 46 | * Update CfgGNSS message and serialization which now publishes and receives blocks and reads and configures all GNSS settings at once. Updated MonVER message and serialization, MonVER settings are displayed during initialization, including extension chars. Changed various std::cout messages to ROS_INFO and ROS_ERROR messages. 47 | * Contributors: Veronica Lane 48 | 49 | 0.0.5 (2016-08-06) 50 | ------------------ 51 | 52 | 0.0.4 (2014-12-08) 53 | ------------------ 54 | * Add install targets 55 | * Contributors: Kartik Mohta 56 | 57 | 0.0.3 (2014-10-18) 58 | ------------------ 59 | 60 | 0.0.2 (2014-10-03) 61 | ------------------ 62 | 63 | 0.0.1 (2014-08-15) 64 | ------------------ 65 | 66 | 0.0.0 (2014-06-23) 67 | ------------------ 68 | * ublox: first commit 69 | * Contributors: Chao Qu 70 | -------------------------------------------------------------------------------- /ublox_serialization/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.0.2) 2 | 3 | project(ublox_serialization) 4 | 5 | find_package(catkin REQUIRED COMPONENTS roscpp roscpp_serialization) 6 | 7 | catkin_package( 8 | INCLUDE_DIRS include 9 | CATKIN_DEPENDS roscpp roscpp_serialization) 10 | 11 | install(DIRECTORY include/ 12 | DESTINATION ${CATKIN_GLOBAL_INCLUDE_DESTINATION} 13 | PATTERN ".svn" EXCLUDE 14 | ) 15 | -------------------------------------------------------------------------------- /ublox_serialization/include/ublox/checksum.h: -------------------------------------------------------------------------------- 1 | //============================================================================== 2 | // Copyright (c) 2012, Johannes Meyer, TU Darmstadt 3 | // All rights reserved. 4 | 5 | // Redistribution and use in source and binary forms, with or without 6 | // modification, are permitted provided that the following conditions are met: 7 | // * Redistributions of source code must retain the above copyright 8 | // notice, this list of conditions and the following disclaimer. 9 | // * Redistributions in binary form must reproduce the above copyright 10 | // notice, this list of conditions and the following disclaimer in the 11 | // documentation and/or other materials provided with the distribution. 12 | // * Neither the name of the Flight Systems and Automatic Control group, 13 | // TU Darmstadt, nor the names of its contributors may be used to 14 | // endorse or promote products derived from this software without 15 | // specific prior written permission. 16 | 17 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 18 | // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 19 | // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 20 | // ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY 21 | // DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 22 | // (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 23 | // LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 24 | // ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 25 | // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 26 | // SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 | //============================================================================== 28 | 29 | #ifndef UBLOX_MSGS_CHECKSUM_H 30 | #define UBLOX_MSGS_CHECKSUM_H 31 | 32 | #include 33 | 34 | namespace ublox { 35 | 36 | /** 37 | * @brief calculate the checksum of a u-blox_message 38 | * @param data the start of the u-blox message 39 | * @param data the size of the u-blox message 40 | * @param ck_a the checksum a output 41 | * @param ck_b the checksum b output 42 | */ 43 | static inline void calculateChecksum(const uint8_t *data, 44 | uint32_t size, 45 | uint8_t &ck_a, 46 | uint8_t &ck_b) { 47 | ck_a = 0; ck_b = 0; 48 | for(uint32_t i = 0; i < size; ++i) 49 | { 50 | ck_a = ck_a + data[i]; 51 | ck_b = ck_b + ck_a; 52 | } 53 | } 54 | 55 | /** 56 | * @brief calculate the checksum of a u-blox_message. 57 | * @param data the start of the u-blox message 58 | * @param data the size of the u-blox message 59 | * @param checksum the checksum output 60 | * @return the checksum 61 | */ 62 | static inline uint16_t calculateChecksum(const uint8_t *data, 63 | uint32_t size, 64 | uint16_t &checksum) { 65 | uint8_t *byte = reinterpret_cast(&checksum); 66 | calculateChecksum(data, size, byte[0], byte[1]); 67 | return checksum; 68 | } 69 | 70 | } // namespace ublox 71 | 72 | #endif // UBLOX_MSGS_CHECKSUM_H 73 | -------------------------------------------------------------------------------- /ublox_serialization/include/ublox/serialization_ros.h: -------------------------------------------------------------------------------- 1 | //============================================================================== 2 | // Copyright (c) 2012, Johannes Meyer, TU Darmstadt 3 | // All rights reserved. 4 | 5 | // Redistribution and use in source and binary forms, with or without 6 | // modification, are permitted provided that the following conditions are met: 7 | // * Redistributions of source code must retain the above copyright 8 | // notice, this list of conditions and the following disclaimer. 9 | // * Redistributions in binary form must reproduce the above copyright 10 | // notice, this list of conditions and the following disclaimer in the 11 | // documentation and/or other materials provided with the distribution. 12 | // * Neither the name of the Flight Systems and Automatic Control group, 13 | // TU Darmstadt, nor the names of its contributors may be used to 14 | // endorse or promote products derived from this software without 15 | // specific prior written permission. 16 | 17 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 18 | // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 19 | // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 20 | // ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY 21 | // DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 22 | // (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 23 | // LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 24 | // ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 25 | // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 26 | // SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 | //============================================================================== 28 | 29 | #ifndef UBLOX_SERIALIZATION_ROS_H 30 | #define UBLOX_SERIALIZATION_ROS_H 31 | 32 | #include "serialization.h" 33 | #include "checksum.h" 34 | 35 | #include 36 | 37 | namespace ublox { 38 | 39 | template 40 | void Serializer::read(const uint8_t *data, uint32_t count, 41 | typename boost::call_traits::reference message) { 42 | ros::serialization::IStream stream(const_cast(data), count); 43 | ros::serialization::Serializer::read(stream, message); 44 | } 45 | 46 | template 47 | uint32_t Serializer::serializedLength( 48 | typename boost::call_traits::param_type message) { 49 | return ros::serialization::Serializer::serializedLength(message); 50 | } 51 | 52 | template 53 | void Serializer::write(uint8_t *data, uint32_t size, 54 | typename boost::call_traits::param_type message) { 55 | ros::serialization::OStream stream(data, size); 56 | ros::serialization::Serializer::write(stream, message); 57 | } 58 | 59 | } // namespace ublox 60 | 61 | #endif // UBLOX_SERIALIZATION_ROS_H 62 | -------------------------------------------------------------------------------- /ublox_serialization/package.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | ublox_serialization 4 | 1.5.0 5 | 6 | 7 | ublox_serialization provides header files for serialization of ROS messages to and from u-blox message format. 8 | 9 | 10 | Johannes Meyer 11 | Veronica Lane 12 | BSD 13 | http://ros.org/wiki/ublox 14 | 15 | catkin 16 | 17 | roscpp 18 | roscpp 19 | 20 | roscpp_serialization 21 | roscpp_serialization 22 | 23 | 24 | 25 | 26 | 27 | 28 | --------------------------------------------------------------------------------