├── .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 |
--------------------------------------------------------------------------------