The OpenIMU open-source development chain is a big step forward — revolutionizing the development process of navigation in autonomous vehicles.

How To Quickly Build Your Own Reliable, Inexpensive, And Precise Autonomous System

Mike Horton | ACEINNA

Suppose you are designing an inspection drone for an offshore oil platforms where human inspection is dangerous and precision flight is key.

In your developmental testing, you realize that the flight control is becoming unstable as the drone flies near and under the steel structure. You determine this loss of control is due to GPS outages and magnetic inference from the bridge both of which negatively impact the drone’s attitude control system.

https://cdn-images-1.medium.com/max/800/1*NXC7tnoAIc78bxU_PBoNCg.jpeg

IMU technology can help Drones accurately navigate harsh environments

You realize that you need to upgrade the navigation of your drone to be more robust and accurate. After investigation, you find two not very attractive alternatives:

Option 1: Invest in a much higher-performance navigation solution such as a fiber-optic gyro based IMU (Inertial Measurement Unit). This is a bad option because the added cost is over $20K per vehicle and the weight of the larger IMU system will require you to fly a much larger drone to handle the added weight.

Option 2: Adjust the navigation solution to reduce trust in magnetic sensor when near the bridge and use a constrained dead-reckoning algorithm while directly under the bridge. However, your current navigation solution is a black-box and you can’t modify its operation sufficiently to do this. You will need to design a solution from scratch. This will take a large hardware and software development effort.

Many real-world navigation and control problems start like this. System developers are quickly confronted with either a large custom project or purchasing a very high-accuracy “overkill” solution.

A new low-cost hardware and open-source software stack called OpenIMUaims to provide a third more reasonable option. OpenIMU aims to simplify and modernize navigation system development by using a robust, professional-grade, customizable open-source software stack and easy-to-integrate hardware. OpenIMU includes thorough documentation and simulation making this environment a truly unique solution for advanced localization and navigation algorithms.

https://cdn-images-1.medium.com/max/800/1*HXYG2a4pnOSmq8MNqYoVIw.png

The OpenIMU Full Stack Solution

So back to the inspection drone, by using OpenIMU the system developer can start immediately get started (even without purchasing hardware) by first running simulation and second modifying pre-existing well tested algorithms in the OpenIMU distribution. In addition to having runnable source code and a simulation environment, full documentation — including all the math of the algorithms is available online.

On the embedded development side, the OpenIMU tool chain is an easily installed extension to the popular open-source code editor Visual Studio Code. Simply install VS Code and search for and install the ACEINNA extension. Once installed the OpenIMU home page will appear and you can start up a new navigation project. The easiest way to get started is to import a Custom IMU Example. These examples are ready-to-deploy OpenIMUapplications that demonstrate different levels of navigation algorithm complexity.

https://cdn-images-1.medium.com/max/800/1*sflIb38B2tfrjp1w4nBinQ.png

OpenIMU Platform Home Page

Of course, just simulation and coding is not going to actually get the drone flying, so time to introduce some hardware. Applications built with the OpenIMU stack run directly on low-cost OpenIMU hardware — the first of which is the OpenIMU300.

https://cdn-images-1.medium.com/max/600/1*1tz_hjuGeoNy4lHUWkMLQg.png

OpenIMU300 Inertial Measurement Unit Module

The OpenIMU300 is a proven 9-Axis IMU module that is fully-calibrated in ACEINNA’s factory for errors over temperature. The OpenIMU300 is also calibrated on a 3-axis rate-table to reduce errors like non-linearity and mis-alignment by up to a factor of 10X over other low-cost IMUs.

The OpenIMU300 also features multiple serial ports for integrating external GPS and other types of sensors, a SPI port, and a powerful 168MHz Coretex M4 floating point CPU. The baseline OpenIMU300 typically delivers better than 5 deg/Hr of drift, and ACEINNA is working on higher-performance modules. A developer kit comes with a JTAG pod, evaluation board, and a precision text fixture to help developers go from code to test in minutes.

Now that we have our navigation application ready to go and running on hardware, we are ready to collect some data and see if it all works. The OpenIMU solution has data real-world collection and logging needs covered as well. A combination of Python scripts and a developers website called —ACEINNA Navigation Studio make collecting and analyzing data a breeze. No need to write a custom driver for your new algorithm. A configurable JSON file allows these data logging and graphing tools to work even when your OpenIMU application has customized the data packets/messages to your own unique requirements.

https://cdn-images-1.medium.com/max/800/1*8Q5fWDbb1VqJXRwRwUH9rg.png

Live Custom IMU Data Captured and Logged with ACEINNA Navigation Studio

The OpenIMU open-source development chain is a big step forward — revolutionizing the development process of navigation in autonomous vehicles. Convenient, free, and modern software tools combined with low-cost navigation hardware is a powerful combination in many upcoming applications. ACEINNA is committed to continuing development of this family with both lower-cost and higher-performance modules on the horizon. More videos, blogs, and a community forum are also forthcoming resources that aim to democratize advanced navigation algorithms.

 

Links

 

The content & opinions in this article are the author’s and do not necessarily represent the views of RoboticsTomorrow

Comments (0)

This post does not have any comments. Be the first to leave a comment below.


Post A Comment

You must be logged in before you can post a comment. Login now.

Featured Product

High Performance Servo Drives for localized and distributed control applications from Servo2Go.com

High Performance Servo Drives for localized and distributed control applications from Servo2Go.com

Engineered to drive brushless and brush servomotors in torque, velocity or position mode, Servo2Go.com offers a broad selection of servo drives in a wide range of input voltages and output power levels.