Evaluation Type: Development Boards & Tools
Did you receive all parts the manufacturer stated would be included in the package?: True
What other parts do you consider comparable to this product?: There are similar (but not necessarily same) parts available from companies like VectorNav, PNI Corp, Analog Devices, Inertial Sense, TDK Invensense, etc. However, for this type of modules the detailed specifications matter, which makes it very hard to compare two devices unless they list exactly the same specs. In addition, the various devices offer varying levels of processing on the raw data, which further complicates a direct comparison.
What were the biggest problems encountered?: Although this is the "RTK" variant of the development kits, since the kit does not include another Zed-F9P board to act as RTK "base station", it was not possible to test the RTK performance of the system. I tried hard to find a free NTRIP service close to me, but the closest I could find was a few hundred kilometers away.
Much of the material related to my experiments and review of the Xsens MTi-680-DK is contained inside the blog posts I published in the preceding weeks and linked in the post below. Thus, this review post mostly contains things not covered in those posts. Readers are highly encouraged to read-through the linked blog posts for more details. I will also update this review post with links to any blog posts related to the MTi-680 I publish afterwards.
Among the various domains in engineering, I enjoy working most at the interface between the physical and virtual/software world. This usually means sensors as well as electromechanical control/actuation systems. The MTi-680-DK being a versatile sensor (containing gyros, accelerometers, magnetometers, barometer, temp sensor), and that too a fairly high performance one, made it a very exciting product for me to road-test. I am very glad and thankful that I was given this opportunity.
The MTi-680-DK development kit being reviewed is from the company Xsens, which is a company headquartered in Netherlands. Xsens is now part of Movella, which is a parent company consisting of Xsens, mCube and Kinduct. In a nutshell, the company is designing, building and selling devices for motion sensing/capture, tracking and analysis. Clicking the "Products" menu on the Xsens webpage provides a good overview of the various offerings from Xsens:All the devices under the "Inertial Sensor Module" heading below are from the MTi category of devices.
Over the weeks, while browsing the internet, I found out that the Xsens offerings are targeting various domains including entertainment (e.g., motion capture for movies), medical/health (e.g., gait analysis), sports and industrial/commercial (positioning and orientation systems). The Xsens website has a lot of very interesting case studies/examples of where its devices are being used.
The kit under review is the MTi-680-DK, which is the development kit for MTi-680 device. This particular device is from the 600 series of "MTi" devices from Xsens (Xsens MTi 600-series). The "8" in the series means this is the RTK variant from among the 600 series devices. The 600-series webpage states the following:
"The MTi 600-series is our most flexible industrial-grade MEMS-based orientation sensor. The products in this affordable series are lightweight and robust as well as cost-effective and easy to integrate. The series is highly flexible, with native CAN support, external or internal Global Navigation Satellite System (GNSS) receiver support and Real-Time Kinematic positioning (RTK). With this series, you can access multiple integration levels, as it includes Inertial Measurement Units (IMU), Vertical Reference Units (VRU), Attitude and Heading Reference System (AHRS) and Global Navigation Satellite System/Inertial Navigation System (INS/GNSS). The MTi 600-series offers full-featured sensor fusion algorithms with an easy-to-use open software development kit (SDK)."
In simpler words, and now focusing more on the MTi-680 device, here are the key takeaways about this device:
Before I start reviewing the MTi-680 module, I want to give the readers some idea of my own prior experience with Inertial/GNSS modules. I mention this because my prior knowledge in the domain is sure to influence the steepness of the learning curve for me and can be somewhat different for others.
I usually like to start with a very brief review of comparable devices available in the market since it helps to understand where the reviewed device finds its place amongst the various offerings in the market. I will mention a few companies that offer some similar products in this domain:
I am rather hesitant to use the words "similar" or "comparable" because I have learnt over time that when it comes to these Inertial/GNSS modules, the details (features, performance specifications) REALLY matter. As with the Xsens lineup, the devices offered by the various other companies can be categorized as raw sensors, IMUs (Inertial Measurement Unit), VRUs (Vertical Reference Unit), AHRS (Attitude & Heading Reference System), or INS/GNSS systems. (To read up on the differences between them, I will refer you to this page from Xsens) A fair comparison of any two devices will require that they both fall in the same category. Secondly, the price does not have a linear relation with the performance here. There is a saying "you pay 10 times for double the performance". This holds very true in this domain and made the comparison very tricky. The other major issue was that the prices for a lot of sensors/modules are not available on their websites and require filing a request for quote, which was a major hurdle for collecting this information. Lastly, different devices from various manufacturers can offer different special features/processing magic which further complicates any attempt to perform a good comparison.
The following blog post captured my unboxing experience and first impressions of the MTi-680-DK kit. Read the post for full details:
The following blog post captured my out-of-box experience with the MTi-680-DK kit from installing the relevant software until getting the first data out of the device (A "hello-sensor", if I may?).
My tests in this regard consisted majorly of experiments with the kit to understand the real-world performance of the device. The specifications on device datasheets can be tricky to understand, so this was an attempt to better understand what those numbers meant in more easily-understandable terms,. This was to eventually help determine what use-cases one can actually use the device in (or not) based on obtained results. It was also done to verify some of the performance numbers claimed in the device specifications. I also explored the effects of using the various optional algorithms made available in the device on the performance obtained. In the process, I also discovered interesting insights into the behavior of the internal Kalman Filter.
In Part 1, I mainly experimented with roll/tilt calibration accuracy, magnetometer/heading consistency as well as heading drift performance when utilizing different device options.
In Part 2, I focused mainly on the magnetometers, since they are usually some of the most troublesome sensors to work with. In this regard, I also explored how well the calibration application (Magnetic Field Mapper) performs under various (somewhat extreme) magnetic conditions, as well as performance of some of MTi's special algorithms in presence of magnetic distortions. I also looked at the various offline/online calibration options as well as the Magnetic Field Mapper SDK use cases.
The MTi-680 is an INS/GNSS kit. Keen readers will observe that I spent majority of my effort experimenting with features more relevant to the INS (Inertial Navigation System) part. This is somewhat true and comes from a bias in my own interests as well as the types of projects I have worked with (e.g., underwater robotics where GPS is not available, or gimbal systems where GPS is not relevant). That said, I actually did end up spending about a fortnight experimenting with the GPS features. Infact, after receiving and unboxing the kit I got somewhat obsessed with getting the RTK to work. It wasn't so hard to figure out, since I found several relevant articles in "base" (Xsens's knowledge-base articles). The main issue I encountered was that I needed RTCM corrections for RTK to work, broadcasted over the internet by some nearby NTRIP master "base station". After figuring out how to get the RTCM data to the MTi device in real-time (which is very straight forward if using MT-manager), I set out to find a nearby free NTRIP base station. This is where I hit a snag, whereby the closest free source I could find was >200 kilometers away. For reference, to get decent performance, you need NTRIP master within a 30km radius. When I tried using that particular station as my RTCM source, it made the GPS positioning worse than without it, which wasn't surprising.
After further digging, I found that setting up my own NTRIP master is actually not that complex, and I can set one up without any software cost and using one of the free NTRIP casting services (check out RTK2GO). However, you still need a GPS receiver that supports RTK. The ublox ZED-F9P on the MTi-680-DK is one of the supported devices, but you need two - on as base-station and one as the rover unit. For a moment I got excited when I saw the ublox NEO-M8P as another option, only to find out that both the GPS receivers I had lying around from some autopilots are all M8"N" variants, that don't support RTK. I will be writing a separate blog post with more details on this topic. Additionally, if I succeed in getting hold of another ZED-F9P or NEO-M8P device, then I can have my own NTRIP master, and that will definitely deserve a separate detailed blog post. I do wish the kit had come with one more ZED-F9P module (+antenna), so that I could have used that as my NTRIP base-station.
Good documentation is one of the most important things for any engineering device/kit, so naturally I have been paying special attention to this aspect over the past weeks. The documentation from Xsens can be accessed via the Xsens website ("Support" -> "Knowledge base") and is completely open, i.e., you do not require a customer account to access it. Same thing with the software downloads.
For the MTi devices, I would divide the available documentation into the following categories:
I also found the following page which lists all the various pages relevant to the MTi devices.
This includes links to all the documentation, "base" knowledge base articles, software download pages, etc. I found that having all the relevant knowledge base articles listed down here was especially useful and helped me notice articles about technical details that I had not thought of, and hence wouldn't have searched for them myself. For example, I found an article about synchronization, which turned out to be very interesting. It was a topic I had not paid much attention to before. Over the weeks I ended up reading many articles and have learnt a lot of new and interesting things in the domain.
I like the way Xsens has make the documentation available. All the documentation is made available online, which means you will always have access to the most updated version of the documentation. On the other hand, if you prefer documentation in pdf format, then there is a way to get that as well. For example, I wanted to have documentation in Pdf format so I could read-through the manuals on my ebook reader. I found that you can download pdf version of the manuals directly from the online documentation main pages.
This saved my eyes many hours of extra screen exposure. The pdf files can also be very valuable if you are going to a field location with limited connectivity, for example. MT manager's "documentation" help also takes you to the online documentation.
It also appears that the pdf version is generated/updated frequently, as shown by the date on the pdf manual I downloaded.
(This pdf file was downloaded on 1st October 2022)
I did some "spot checks" by comparing the pdf documents with the online documentation several times, and found that the information in both was the same, which was reassuring. I have to say, though, that the formatting appears much nicer on the web-pages as compared to the generated pdf manuals. Perhaps something that can be improved. I also found a few instances of the images from the web documentation not appearing in the generated pdf, for example as seen in the image below for the MTi Family Reference Manual.
Above: The pdf version doesn't display the image for the right-hand rule, while it is displayed fine in the online documentation.
Another thing I noticed is that the pdf version loses the (very useful) hyperlinks compared to the online documentation, which is a very big time-saver in case of the latter. I have seen many other pdf manuals embedding the hyperlinks, so it should be doable. Perhaps something that can be improved in the way the pdf versions are generated.
Overall, as I mentioned, in my view this is a very good way to make documentation available in both web and downloadable pdf files, since the users can refer to online documentation for the latest version in normal cases and download pdfs for cases when offline use is needed.
One thing that I couldn't find in the documentation (MTi-600 series User Manual, MTi Family reference Manual) was the recommended torque for the mounting screws. Since the MT-680 casing is made of Industrial plastic, I think the recommended torque value MUST be given to avoid over-tightening the module.
Availability Of Design Resources: Let's look at the design resources (or design "collateral" as some would say) made available for the MTi-680 device by Xsens:
Overall, I have found the documentation and design resources to be generally quite good. I have to mention that due to the huge amount of documentation and design resources available, and the road-test time limitations, I have not been able to go through all resource in full detail. I hope to continue covering more grounds in the coming months, as I integrate the device for some interesting hobby projects.
The MTi series lineup has several modules available, and for a new user it can be a lot of information to digest. I liked that Xsens has made available a simple web-based "tool" for the user to short-list/select the device(s) more suited to their use case by answering a few basic questions only. The options also have helpful tooltips in front of them to ease the selection process. It's simple, but I think it does the job well.
I tried the tool with a few different use cases in mind. The recommendations looked sensible.
The MTi-680 is an expensive device. Some people will be tempted to compare a device such as this with a cheap IMU sensor like the ubiquitous MPU6050 (or any similar commonly available 6/9 axis device) and ask "why can't I just use that device instead?". I want to briefly explain the differences:
I think the thing I like THE MOST about the MTi-680 is that it is so much flexible in usage. You can individually select which data to output (sensor data and/or final fused/filtered data), reporting interval for each data type (individually!), and even the formats (fixed points, floating points, etc.). I had never expected this level of flexibility from the device. For orientation, you can get the data out in Euler, Quaternions or rotation matrices. On top of that, you have options to run various filters, 3 of which can be stored on the device and switched-between without having to re-flash the firmware with a computer. Additionally, you get to use various special algorithms that can improve the performance in particular use cases. Even the World Magnetic Model is stored inside the device so you don't have to calculate and feed the magnetic declination values from your own source to get north-referenced outputs. There is seriously a lot going on in this tiny little device.
Above: "Device settings" of the UART interface showing the flexibility in specifying output data, reporting rates and formats - all individually!
Before starting to use the MTi-680 review, my initial expectation was that I will be able to finish testing the various aspects of the device in a few weeks. It took a lot longer, and I still can't claim I have managed to cover all aspects/features of the device yet. For many development kits, this happens because of how difficult it is to set up and get started. It was quite the opposite with the MTi-680. I experienced one of the smoothest out-of-box experiences (save a few minor issues), decent documentation and generally very intuitive applications/user interfaces. I had several experiments planned to get a firsts-hand feel of how good the actual performance is, and I started with the expectation of having to spend considerable amount of time preparing (e.g., writing scripts) for the experiments. However, once I started with the experiments, I realized that the Xsens software allowed me to get the needed information out of the devices without writing my own code. This really helped me focus on the experiments themselves and understanding the data/results and made the experience very pleasant!
So why did it take me more time than my expectation? Interestingly, it was because I had under-estimated how "loaded" the device is in terms of features. Once I started reading up the documentation and experimenting the device, I realized that there were so many things that were going on inside the tiny device that reading about those things in the manuals and "base" articles and trying them on the device took a lot of time. And I still feel I have not explored all the aspects of the device completely. That said, and depending on your use-case, as a user you may not necessarily need to know everything, rather just the relevant subset. In my case, since I wanted to cover as much ground as I could manage, there was plenty to keep my occupied for weeks. I am still amazed at how many features are packed inside this tiny little device. It's a seriously good piece of engineering!
My major gripe with the device, before I received it, was the high price tag. Personally, I try to limit my road-testing to products that I am going to use myself in future projects. This way I don't gather paperweights, and it also helps justify the long hours and effort spent in the review process. The MTi-680 was a rather interesting case, since it is a rather expensive part, at-least for use in hobby projects, and frankly I was a little bummed about this aspect initially. "Why couldn't Xsens make it available at a cheaper price", I asked myself. However, the more I learnt the details of this device, whether from reading documentation or from my own experimentation, the more I started to come to terms with the pricing. I have used some Inertial devices for hobby as well as serious work projects in the past, so I had some idea of performance vs pricing. I began to realize that building a device like this, with these many features inside, is no small task. In the past I have read about various techniques used to improve the performance of IMU/INS devices, usually in published research papers. While some of the other devices I used in the past had a subset (or none) of those advanced features, I feel the Xsens device has the superset of all of those techniques/features built inside. And that has changed my view about the price. If and when I need the performance, I can save myself the cost hiring several PhDs in the domain and months/years of development effort and instead simply use one of these modules in the product and focus more on the value-added features of my end product. Suddenly it doesn't feel that expensive anymore.
In summary, on one side, at ~1700$+ a piece, this is most certainly not a cheap device. On the other side, it comes factory calibrated, gives very solid performance out of the box and is very flexible in terms of how it can be used. It's also backed by comprehensive documentation and a responsive support team.
With those things in mind, let's look at a few scenarios:
Note that the MTi-680 is the most expensive variant in the MTi lineup, being INS/GNSS devices. There are other device offerings with a subset of features (IMU / VRU / AHRS) that have lower prices. One of those might make a better fit for your use-case.
I am very grateful to Xsens and Element14 for providing me this opportunity to learn and experiment with this nice kit. The kit will definitely see itself getting used in many of my technical adventures in the coming times.
Great work and outstanding summary.
I think your feedback on the product is what a manufacture would hope to get from a RoadTest. Great job.
Impressive review. I appreciated the dead on explanation on the differences between this device and mpu6050
One thing I have been wondering about for some time. Why did xsens go for an output-only CAN interface? The disadvantage is that if I have the module connected in my system via the CAN interface, I cannot modify any setting on the device via the CAN interface. But I am assuming there was a stronger argument to the contrary that such a choice was made? I am curious to know. Thanks
Thanks javagoza for reading through and your kind comment.
The test plan that I submitted for the road-test application was based on many individual tests that I have been doing over the weeks. On one side the device is designed to be very easy to use, which I think it succeeds at. But if you dive into the details, there is just so much going on inside - it's a very feature-rich device. Much like the layers of an onion. I think I realized this ~2 weeks into the road-test that there is a lot of grounds to cover, and the 2 months is not going to be enough . Anyway, I tried my best in the time I had, and I hope to write some more posts in the coming weeks/months related to some more experiments and mini projects I have in mind. Hope you'll find those interesting too!
saadtiwana_int , thanks and congratulations for this excellent review!
There is a lot of experimentation and research work in your review.
I also find your other blogs very interesting: