One of the biggest challenges for autonomous vehicles in built-up areas – be those urban environments or industrial settings like mines or ports – is what to do when your GNSS signal loses line of sight to some satellites, starts giving you multipath errors – or loses signal entirely.
In this article, we’ll look at ways to keep autonomous vehicles on the straight and narrow, even when satellite signal is patchy or non-existent.
I have an IMU – what’s the problem?
If you’re new to autonomy (or to this wiki series) then you might be tempted to think that simply installing an inertial measurement unit (IMU) in your vehicle is enough to solve the problem – after all, that’s what it’s there to do, right?
Well, yes – and no. The IMU does help to preserve the accuracy of the vehicle’s position (pitch, roll and yaw) when it loses GNSS signal, but it’s not perfect. IMUs are designed to work closely with GNSS updates – but on their own, they are subject to what’s known as IMU drift. Even a drop in GNSS coverage of just 60 seconds can lead to IMU drift of two metres, with no other aiding sensors. That amount of drift could quite easily cause an autonomous mining truck to hit the side of a shaft, or an autonomous reach stacker to collide with a large tower of sea containers. And, since GNSS signals are notoriously unreliable in many of the spaces where these vehicles operate, you need other options to keep them on the right path.
Option 1: constrain your IMU
If you know the dimensions of your vehicle including wheelbase and number of steering axles (and I certainly hope you do know those if you’re building an autonomous vehicle!) then you can tell your Kalman Filter to disregard lateral movement readings from your IMU that indicate IMU drift. On OxTS INS devices we call this Noslip, and it works for both yaw (lateral drift) and pitch (up and down movement).
Option 2: use additional sensors
The principle here is simple: if your IMU isn’t trustworthy enough to keep you on course without GNSS, get more data to help you stay on track.
A popular sensor that we use for this purpose is a wheelspeed sensor. Combining the wheelspeed sensor data with your IMU readings will help you weed out bad data caused by IMU drift and so keep your vehicle on track. However, other sensors can be used as well. At OxTS, for instance, we’ve developed LiDAR Odometry (or LiO for short), which enables our INS devices to use data from a vehicle-mounted LiDAR scanner to calculate velocity and heading information. In combination with the constraints we’ve put on our IMU using noslip, we can turn a map of our route from this…
… to this:
Integrating additional sensor data can be especially effective for autonomous vehicles from trucks to taxis because they are more likely to have additional sensors already on board, allowing you to improve accuracy relatively inexpensively. In fact, for some vehicles, you can even use the CAN bus to gather data from the vehicle’s on-board sensors, too.
Option 3: tight-coupling of GNSS and IMU data
If you’ve connected a GNSS receiver and an IMU, and are combining the data, then the result is what we would call loosely coupled data. It’s certainly good enough if you have strong GNSS signal, but – as we’ve already covered – once you lose satellites, your GNSS is unable to provide you with position data. Tightly coupling the data allows you to salvage some of that satellite data when you experience a partial drop in satellite coverage, and can help you regain accurate GNSS position faster when your INS can see satellites again.
Tightly coupling GNSS and IMU data essentially means going a level deeper into your GNSS data. The outputs you normally get from a GNSS receiver are the result of some processing done by the GNSS receiver itself; it’s taken data from all the satellites it can see and combined it to arrive at position and heading solutions which it passes to you as the output. In a tightly-coupled system, instead of relying on the output from the receiver, you take the raw data that the receiver uses and feed that into your navigation engine instead. This allows your engine to use IMU data to evaluate each individual satellite signal, disregarding the inaccurate ones and using the accurate ones to help limit IMU drift.
Tightly coupling your IMU and GNSS data has additional benefits, if you’re using an OxTS INS. We’ve engineered our devices so that, when GNSS signal is reacquired after losing it, the IMU data helps the INS regain RTK lock (essentially highly accurate GNSS) in a few seconds, instead of up to 30 seconds. This is great for autonomous vehicles because it means that they can correct any navigational issues much faster once they regain GNSS signal, reducing the risk of anything untoward happening.
Use as many methods as you can
You can combine all the methods above to keep your vehicle’s position accurate when you experience a drop in GNSS coverage – the more, the merrier, as they say. It’s also important to note that, depending on the setup of your vehicle, you may be able to access data via the CAN bus (for instance if your vehicle has its own wheelspeed sensor) that you can use, instead of buying new sensors.
The trick, however, is making sure it’s all configured correctly. For instance, to constrain your IMU effectively you’ll need to know the dimensions of the vehicle. Integrating additional sensors requires you to know the reference frame the sensor data is being provided in, and the units, so you can properly transform the data to make it match you IMU data (otherwise sideways movement might be interpreted as forwards, upwards, downwards, and so on). If you want to use data from sensors such as LiDAR, then it gets even more complex as the outputs from the sensors need to be processed to actually provide useful information for your navigation engine.
Hopefully this article has helped you plan out methods of dealing with drops in GNSS coverages. If you find you still have questions, however, then we’d love to help – just get in touch with us at firstname.lastname@example.org and we’ll do our best to help.