Configuration of novatel_oem7_driver
There are two ways that the driver can be configured:
Through the .yaml files in
/config
Through the launch.py files
/launch
If the binary driver is installed, the path to the config files is:
/opt/ros/${ROS_DISTRO}/share/novatel_oem7_driver/config/
Note
A default configuration is preprogrammed into the driver, so minimal configuration on the driver side is required, especially for the very first launch. Additional configuration can be done to modify driver behaviour, connection settings, topic publishing, publishing rates, etc.
Configuration on the receiver side is almost always required for successful operation. This includes proper setup of the following:
Communication Protocol Configuration - OEM7 Communication Options
GNSS Positioning Type Configuration - FAQ: How to Configure the Receiver for Different Positioning Types?
SPAN Configuration - Refer to both std_init_commands.yaml and our best practices on SPAN setup: APN-109-SPAN-Overview-and-Integration-Guide
Config Files
The novatel_oem7_driver by Hexagon | NovAtel generates ROS messages from multiple NovAtel OEM7 logs. OEM7 logs are formatted in an open log format that is heavily documented at the NovAtel Documentation Portal available here:
https://docs.novatel.com/OEM7/Content/Logs/OEM7_Core_Logs.htm
std_init_commands.yaml
The list of NovAtel commands and log requests sent to the OEM7 receiver upon ROS driver startup are contained in the config/std_init_commands.yaml
file.
Some of the included log commands are required for proper ROS driver operation.
The logs that are needed for the novatel_oem7_driver to function are categorized under a “do not remove these messages” header.
The user may choose to add additional NovAtel configuration commands or log requests if they are customizing the driver.
Important
std_init_commands.yaml contains additional commented out SPAN configuration commands (i.e. SETINSPROFILE, SETINSTRANSLATION, etc..). If additional SPAN configuration is required (i.e. the receiver has not been configured yet for SPAN or its desirable to have the ROS driver do this upon each start), these lines can be uncommented and used. Otherwise the receiver can be configured in advance using manual receiver communication and saving with SAVECONFIG.
oem7_msgs.yaml
Messages listed here that are logged (likely via std_init_commands) will be published into the oem7raw topic. oem7raw is used for post processing and troubleshooting. As of novatel_oem7_driver version 20.6.0, std_msg_topics.yaml is generated with all supported logs by novatel_oem7_driver so no modifications are required. Prior to version 20.6.0 in order to add additional logs, list the OEM7 log names along with the corresponding message ID’s. The message ID for each log can be found in the OEM7 manual.
Warning
Not all NovAtel logs will be supported by the ROS driver. The only logs supported by the ROS driver are listed in oem7_msgs.yaml starting with Humble 20.6.0. If you would like an additional log to be published into either oem7raw or into a ROS topic, please contact Support to request it.
oem7_supported_imus.yaml
Supported IMUs for many common setups have been configured in this file. To add an additional IMU modify oem7_support_imus primarily using the information found in the IMU Type table on this page:
https://docs.novatel.com/OEM7/Content/SPAN_Commands/CONNECTIMU.htm
std_msg_handlers.yaml
After a message from the receiver is decoded by the ROS driver, it is directed to a handler to control the publishing of some topics. There is no need to modify this file unless adding or removing a handler.
std_msg_topics.yaml
This file controls which topics are published. To disable a specific topic from publishing you can comment it out here.
Important
It’s highly recommended to publish and collect oem7raw for troubleshooting purposes or to use with post-processing software like Inertial Explorer.
Note
The RAWIMUSX log/topic is disabled by default due to it’s high bandwidth and similarities to imu/data_raw.
Launch Files
When launching the driver, you call one of three launch files (or a custom one of your design):
Launch File |
Connection Type |
oem7_net.launch.py |
TCP and UDP Connections |
oem7_port.launch.py |
USB and Serial Connections |
oem7_file.launch.py |
File Based Input (playback) |
More information about how to call the launch file and arguments specific to each launch file can be found at: Driver Runtime Operation
There are general parameters in the launch files to modify the behaviour of the driver. Information about each parameter can be found in the README of the Source Code of novatel_oem7_driver.
Driver Plugins std_driver_config.xml and std_msg_handlers.yaml
The novatel_oem7_driver for ROS contains two plugins to be loaded. There is no need to modify these unless you are developing your own plugins or optimizing the driver footprint.
OEM7 Firmware & Model Considerations
OEM7 Firmware
To use the novatel_oem7_driver for ROS with an OEM7 receiver, make sure you are running a current OEM7 firmware for your specific hardware. To update your OEM7 firmware, go to the NovAtel support site, locate your OEM7 hardware and follow the update instructions.
SPAN-Enabled receivers novatel.com/support/span-gnss-inertial-navigation-systems
Smart Antennas novatel.com/support/smart-antennas
GNSS Receivers (Non-SPAN) novatel.com/support/high-precision-gnss-gps-receivers
If you require assistance, you may contact NovAtel Customer Support. Please be sure to include a text copy and paste of your OEM7 receiver’s output to the command:
LOG VERSION
You may contact NovAtel Customer Support here.
OEM7 Models
NovAtel receivers are able to run a range of functions which are determined by what model is authorized on the OEM7 receiver. It is possible to purchase upgrades to your model once you have your OEM7 hardware. ROS users may consider this to add functionality such as:
Extra GNSS constellation support (Add Support for Glonass, Galileo, Beidou, etc.)
Add PPP/RTK correction support
Add SPAN support (sensor fusion positioning such as to integrate an IMU)
To view the latest models please view (note the table on the last page):
https://novatel.com/products/model-list-and-discontinued-products
To purchase a model upgrade, please contact your NovAtel Sales representative. To request a temporary model upgrade, please contact NovAtel Customer Support.