[Documentation] [TitleIndex] [WordIndex

Configuration of novatel_oem7_driver


Configuration Files

The novatel_oem7_driver configuration can be altered through yaml files referenced by the .launch files.

OEM7 Receiver configuration via std_init_commands.yaml

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/Log_Reference.htm

The list of NovAtel commands and log requests sent to the OEM7 receiver upon ROS driver startup are contained in the 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.

The path to the template std_init_commands.yaml file from the binary installation is:

 /opt/ros/${ROS_DISTRO}/share/novatel_oem7_driver/config/std_init_commands.yaml  

OEM7 Logging Configuration via std_oem7_raw_msgs.yaml

std_oem7_raw_msgs.yaml configures OEM7 logs that will be logged as binary blobs for post-processing in to the /novatel/oem7/oem7raw ROS topic. These logs can used for troubleshooting the OEM7 receiver and can be provided to NovAtel Customer Support if support is required.

std_oem7_raw_msgs.yaml is typically a subset of the list of the logs requested in std_init_commands.yaml.

The path to the template std_oem7_raw_msgs.yaml file from the binary installation is:

/opt/ros/${ROS_DISTRO}/share/novatel_oem7_driver/config/std_oem7_raw_msgs.yaml

OEM7 log names and IDs registered in oem7_msgs.yaml

Typically, this does not need modification, unless you are optimizing the driver and have revised the std_init_commands.yaml file.

oem7_msgs.yaml lists the OEM7 log names along with the corresponding binary ID’s. The binary ID for each log can be found in the OEM7 manual. It is necessary for each listed log name and binary ID pair to be correct. Messages not in this list will be ignored by novatel_oem7_driver.

The template oem7_msgs.yaml file from the binary installation is located at:

/opt/ros/${ROS_DISTRO}/share/novatel_oem7_driver/config/oem7_msgs.yaml

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 driver footprint.

When installed via the binary release, the templates for these two plugins are located at:

/opt/ros/${ROS_DISTRO}/share/novatel_oem7_driver/config/std_driver_config.xml
/opt/ros/${ROS_DISTRO}/share/novatel_oem7_driver/config/std_msg_handlers.yaml


Customizing Logging Configuration

The user may edit the driver's configuration files to customize their OEM7 receiver's configuration upon ROS start up.

This will impact what is reported to the ROS topic: /novatel/oem7/oem7raw

SPAN Lever Arm and Rotation Example

For this example, suppose the user wanted to add novatel_oem7_driver start up commands to configure the SPAN lever arm and rotation:

Then, suppose the user wanted to rotate the system's output to a frame other than the receiver default (such as the REP105 standard):

And, further suppose the user wanted to add additional log requests:

The following modifications would be necessary.

std_init_commands.yaml - receiver_init_commands

Edit std_init_commands.yaml to include the SETINSTRANSLATION and SETINSROTATION OEM7 commands. The receiver_init_commands section would appear as follows:

...
receiver_init_commands: 
#------------------------------------------------------------------------------ 
# Reset logging 
- "UNLOGALL THISPORT" 
- "SETINSTRANSLATION ANT1 1 2 3 0.05 0.05 0.05" 
- "SETINSROTATION RBV 0 90 180 3 3 3" 
#- "!PAUSE 10" 
#- "SETINSPROFILE LAND" 
#- "SETINSTRANSLATION ANT1 <x> <y> <z> <std. x> <std. y> <std. z> 
#- ... etc. 
#-----------------------------------------------------------------------------
...

Above the added lines were:

Changing Output Reference Frame

There is often motivation to output attitude measurements in some other frame than the vehicle frame defined by NovAtel, X-right, Y-forward, Z-up.

As an example, the vehicle frame defined in REP105 is X-forward, Y-left, Z-up and this output frame may be required to work with other sensors in ROS.

The USER argument can be used with both the SETINSTRANSLATION and SETINSROTATION commands to output the inertial attitude in whatever frame the end-user desires.

The SETINSROTATION USER command rotates from the IMU body frame to the user output frame. As an example, suppose the IMU is sitting in the vehicle with its coordinate frame aligned with the vehicle frame defined by NovAtel: X-right, Y-forward, Z-up. To rotate the inertial output frame from this orientation to X-forward, Y-left, Z-up, edit the receiver_init_commands section of the std_init_commands.yaml file as follows:

...
receiver_init_commands: 
#------------------------------------------------------------------------------ 
# Reset logging 
- "UNLOGALL THISPORT" 
- "SETINSTRANSLATION ANT1 1 2 3 0.05 0.05 0.05" 
- "SETINSROTATION RBV 0 90 180 3 3 3" 
- "SETINSROTATION USER 0 0 90"
#- "!PAUSE 10" 
#- "SETINSPROFILE LAND" 
#- "SETINSTRANSLATION ANT1 <x> <y> <z> <std. x> <std. y> <std. z> 
#- ... etc. 
#-----------------------------------------------------------------------------
...

Above the added line was:

which would rotate the frame 90 degrees right-handed positively about the Z-axis. The USER frame now aligns with the frame defined by REP105, X-forward, Y-left, Z-up.

std_init_commands.yaml - End of File

Add the additional logs to the end of std_init_commands.yaml, under the "Post-Processing Messages" text:

# Post-Processing Messages; not directly used to generate ROS messages. 
- "LOG RAWIMUSXB ONNEW" 
- "LOG INSUPDATESTATUSB ONNEW" 
- "LOG RAWEPHEMB ONNEW" 
- "LOG GLOEPHEMERISB ONNEW" 
- "LOG BDSEPHEMERISB ONNEW" 
- "LOG GALFNAVEPHEMERISB ONNEW" 
- "LOG GALINAVEPHEMERISB ONNEW" 
- "LOG RANGEB ONTIME 1" 
- "LOG MARK1TIMEB ONNEW" 
- "LOG MARKPOSB ONNEW"

Note that the added lines were:

oem7_msgs.yaml

Edit the oem7_msgs.yaml to add the new log names as well as the binary ID’s. Refer to the OEM7 manual to obtain the binary ID’s:

Add the additional message names below under the ‘More messages may be added...’ comment:

# Standard messages - Do not remove.
   BESTPOS:                      42
   BESTVEL:                      99
   BESTUTM:                     726
...
   RXSTATUS:                     93
   INSUPDATESTATUS:            1825
   INSCONFIG:                  1945
   PSRDOP2:                    1163
# More messages may be added in order to process Oem7 'raw' messages.
   MARK1TIME:                  1130
   MARKPOS:                     181

std_oem7_raw_msgs.yaml

Edit the std_oem7_raw_msgs.yaml to add the new log requests to have them included in the /novatel/oem7/oem7raw ROS topic:

Append the new log names to the end of the file:

oem7_raw_msgs:
- BESTPOS
- BESTVEL                     
- INSPVAX                    
- INSUPDATESTATUS
- RAWIMUSX
- RAWEPHEM                  
- GLOEPHEMERIS              
- BDSEPHEMERIS
- GALFNAVEPHEMERIS
- GALINAVEPHEMERIS
- RANGE            
- HEADING2                
- TIME                   
- RXSTATUS
- INSCONFIG   
- MARK1TIME
- MARKPOS             


Correction Services

TerraStar, Oceanix and VERIPOS Correction Services Overview

NovAtel OEM7 receivers can use NovAtel Correction Services to receive PPP corrections. This can improve your real-time position accuracy to as fine as 2.5cm RMS (via TerraStar-X™).
NovAtel offers correction services for different applications:

Correction Service

Application Types

TerraStar™

Various applications including precision agriculture, survey, automotive and aerial.

Oceanix

Marine applications including dredging, hydrographic survey and mapping.

VERIPOS

Offshore Oil and Gas


Correction Service Activation

To use NovAtel Correction Services with novatel_oem7_driver, you must:


To purchase a subscription, please contact your NovAtel Sales representative. To request a temporary, test subscription, please contact NovAtel Customer Support:
https://docs.novatel.com/OEM7/Content/Front_Matter/Customer_Support.htm


OEM7 Firmware & Model Considerations

OEM7 Firmware for ROS

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:
https://docs.novatel.com/OEM7/Content/Front_Matter/Customer_Support.htm

OEM7 Models

NovAtel receivers are able to run a range of functions which are determined by what the paid model of each 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:

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:
https://docs.novatel.com/OEM7/Content/Front_Matter/Customer_Support.htm


Return to the novatel_oem7_driver page for next steps


2024-11-23 14:49