Show EOL distros: 

Package Summary

Python driver for NovAtel SPAN devices.

Package Summary

Python driver for NovAtel SPAN devices.

Package Summary

Python driver for NovAtel SPAN devices.

Package Summary

Python driver for NovAtel SPAN devices.

Package Summary

Python driver for NovAtel SPAN devices.

Package Summary

Python driver for NovAtel SPAN devices.

ProPak6.png

Archived Status

The GitHub repository for this driver has been marked as Archived. Thus, this driver is not under active development and is not being maintained.

Support Status

This driver is specific to older OEM6 type NovAtel products and is not supported by NovAtel.

NovAtel released a supported driver in early 2020. It is available here: novatel_oem7_driver

Overview

This is a driver for NovAtel devices running SPAN, especially the ProPak6.

SPAN technology couples precision GNSS receivers with robust Inertial Measurement Units to provide reliable, continuously available, position, velocity and attitude—even through short periods of time when satellite signals are blocked or unavailable.

This driver publishes GNSS data as a sensor_msgs/NavSatFix, and inertial navigation system (INS) data as nav_msgs/Odometry. You can plot this using rviz, as well as monitoring your overall system using diagnostics:

rviz-novatel.png span-robot-monitor.png

Usage

Initial Setup

This driver assumes that your unit has been configured with the ethernet port enabled for TCP. There are various ways this can be set up, but the easiest is to connect to your receiver with Novatel Connect (zip), using the serial or USB interface. Then, using the device's console:

wificonfig state disabled
ethconfig etha auto auto auto auto
icomconfig icom1 tcp :3001
ipconfig etha static [address] 255.255.255.0 [gateway]
saveconfig
saveethernetdata etha

You can confirm that the settings were saved by power-cycling the device, reconnecting, and outputting these settings like so:

log wificonfig once
log ethconfig once
log icomconfig once
log ipconfig once

From the Wizards menu, select SPAN Alignment, which will take you through the position and orientation of the IMU relative to your vehicle's base_link, and the relative position of the GNSS antenna(s).

Note that if you only need the console and won't need to run the SPAN setup wizard, you may bypass Novatel Connect and just use an ordinary serial console at 9600 baud. If you are configuring multiple units, you can run the SPAN wizard only once, and enter the supplied SPAN setup commands into the other devices using the console or the configuration/command rosparam.

Launch

Run the example launchfile:

roslaunch novatel_span_driver example.launch ip:=[address] --screen

You should see topics come up for navsat/fix, navsat/odom, imu/data, /diagnostics, etc. These will publish data once the system has acquired an initial GNSS fix.

Nodes

Implementation

The driver exists in four parts, all of which run together in a single process:

Tests

The source repository includes example captures from a ProPak6 mounted on a Husky. To create your own captures, use tcpdump:

sudo tcpdump -i br0 port 3001 -w capture.pcap
gzip capture.pcap

Resources

The following documents from NovAtel are helpful in understanding what this driver is about and how it works:

If you'd like more information about Husky or would like a quote for Husky equipped with SPAN, please use the form here.

Roadmap

In the fullness of time, it may make sense to rewrite this driver in C++, but this is not immediately planned. Other possible next steps:

  • Allow the driver to deduce the SPAN setup parameters using URDF, rather than requiring a separate, parallel configuration.
  • Disable logs associated with messages not being subscribed to.
  • Output IMU data regardless of whether a GNSS fix has been achieved.
  • Interpret more of the system's diagnostic bitfields.

If you're interested in working on these or other extensions, please use the Github issue tracker to get in touch.

Wiki: novatel_span_driver (last edited 2020-10-29 17:59:13 by NovAtelApplicationsEngineering)