Quickly build your own reliable, cheap and precise autonomous system
08 October 2018
Suppose you are designing an inspection drone for an offshore oil platform where human inspection is dangerous and precision flight is key. In your developmental testing, you realise 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.
You realise 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 fibre-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 the 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 OpenIMU aims to provide a third more reasonable option. OpenIMU aims to simplify and modernise navigation system development by using a robust, professional-grade, customisable open-source software stack and easy-to-integrate hardware. OpenIMU includes thorough documentation and simulation making this environment a truly unique solution for advanced localisation and navigation algorithms.
So back to the inspection drone, by using OpenIMU the system developer can 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 OpenIMU applications that demonstrate different levels of navigation algorithm complexity.
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.
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 5deg/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 analysing 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 customised the data packets/messages to your own unique requirements.
The OpenIMU open-source development chain is a big step forward – revolutionising 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.
Contact Details and Archive...