Show EOL distros:
Package Summary
Python driver for NovAtel SPAN devices.
- Maintainer status: developed
- Maintainer: Mike Purvis <mpurvis AT clearpathrobotics DOT com>
- Author: NovAtel Support <support AT novatel DOT com>
- License: BSD
- Source: git https://github.com/ros-drivers/novatel_span_driver.git (branch: master)
Package Summary
Python driver for NovAtel SPAN devices.
- Maintainer status: developed
- Maintainer: Mike Purvis <mpurvis AT clearpathrobotics DOT com>, Ian Colwell <icolwell AT gsd.uwaterloo DOT ca>, Josh Whitley <jwhitley AT autonomoustuff DOT com>
- Author: NovAtel Support <support AT novatel DOT com>
- License: BSD
- Source: git https://github.com/ros-drivers/novatel_span_driver.git (branch: master)
Package Summary
Python driver for NovAtel SPAN devices.
- Maintainer status: maintained
- Maintainer: Mike Purvis <mpurvis AT clearpathrobotics DOT com>, Ian Colwell <icolwell AT gsd.uwaterloo DOT ca>, Josh Whitley <jwhitley AT autonomoustuff DOT com>
- Author: NovAtel Support <support AT novatel DOT com>
- License: BSD
- Source: git https://github.com/ros-drivers/novatel_span_driver.git (branch: master)
Package Summary
Python driver for NovAtel SPAN devices.
- Maintainer status: developed
- Maintainer: Mike Purvis <mpurvis AT clearpathrobotics DOT com>, Ian Colwell <icolwell AT gsd.uwaterloo DOT ca>, Josh Whitley <jwhitley AT autonomoustuff DOT com>
- Author: NovAtel Support <support AT novatel DOT com>
- License: BSD
- Source: git https://github.com/ros-drivers/novatel_span_driver.git (branch: master)
Package Summary
Python driver for NovAtel SPAN devices.
- Maintainer status: maintained
- Maintainer: Mike Purvis <mpurvis AT clearpathrobotics DOT com>, Ian Colwell <icolwell AT gsd.uwaterloo DOT ca>, Josh Whitley <jwhitley AT autonomoustuff DOT com>
- Author: NovAtel Support <support AT novatel DOT com>
- License: BSD
- Source: git https://github.com/ros-drivers/novatel_span_driver.git (branch: master)
Package Summary
Python driver for NovAtel SPAN devices.
- Maintainer status: maintained
- Maintainer: Mike Purvis <mpurvis AT clearpathrobotics DOT com>, Ian Colwell <icolwell AT gsd.uwaterloo DOT ca>, Josh Whitley <jwhitley AT autonomoustuff DOT com>
- Author: NovAtel Support <support AT novatel DOT com>
- License: BSD
- Source: git https://github.com/ros-drivers/novatel_span_driver.git (branch: master)
Contents
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:
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:
A translator which receives the binary NovAtel data logs and use them to populate the messages supplied by novatel_msgs.
A NovatelPublisher class, which subscribes to those NovAtel-specific messages, and republishes them as standard ROS messages like sensor_msgs/NavSatFix and nav_msgs/Odometry.
A NovatelDiagnostics class, which specifically handles publishing a diagnostics, so that you can monitor the state of the SPAN system using rqt_robot_monitor.
A NovatelWheelVelocity class, which optionally subscribes to your platform's encoder odom topic, and passes that data through to the SPAN system so that it can use it in its fused pose estimate.
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.