How do I make an INS with ROS?

asked 2018-03-18 12:55:03 -0500

kylerlaird gravatar image

updated 2018-03-26 07:52:35 -0500

I have been using dual Real Time Kinematic (RTK) receivers for my tractor projects. This gives me reliable position, yaw, and roll at low rates (10 Hz), which has been barely sufficient for the (poor) custom code that I used. I have been trying to use more standard ROS components in my projects as I improve my code.

I recently began working with an Inertial Navigation System (INS) and it's wonderful to get a full Pose from a single device at up to 1000 Hz. I modified the manufacturer's driver to provide correct Pose, Transform, and Odometry. It has been easy to use this to make waypoints and feed a Pure Pursuit planner. The problem I have is that an INS like this is expensive (~$12K) and total overkill for what I'm doing (driving on ground at 5.5 MPH). I want a solution I can recommend for ROS-Agriculture projects without big budgets.

Is there a way to achieve similar result using standard ROS components? The articles I find on Kalman filtering seem to assume that NavSatFix does not provide sufficiently accurate absolute position data. RTK, however, does provide sufficient accuracy and precision for my needs. Also, I want my position to be Universal Transverse Mercator; I don't want the origin to be the startup location.

Are there existing ROS components to do this?

Briefly, I have:

  • position (+- 8mm horizontal/15mm vertical)
  • yaw (+- 0.2 degrees)
  • roll (+- 0.2 degrees)
  • 9 degree of freedom inertial measurement unit (Tinkerforge IMU Brick 2.0)

I want a full Pose with similar accuracy, ideally at a rate greater than my Global Navigation Satellite System data.


The need I'm describing is "non-holonomic constraint." A possible approach to this in ROS is to use an existing EKF and then add "virtual sensors" which use the vehicle's kinematics. My tractors, for example, follow the ground and have limited acceleration. Also, their movement side-to-side is limited by ground speed and can be roughly predicted based on the steering input.

Here are some documents on the subject.

edit retag flag offensive close merge delete


I'm guessing from the context that INS is Inertial Navigation System? Please update your question with a definition of INS. Different acronyms mean different things to different people (RTK, GNSS?), or beginners may have no idea what they are.

jayess gravatar image jayess  ( 2018-03-18 13:46:55 -0500 )edit