The traditional industrial robot consists of an arm with multiple degrees of freedom and a specialized gripper. To prevent accidental injury to humans, it is typically incarcerated in a protective cage. However, next-generation robots are already enjoying their freedom. Improvements in batteries, sensors, artificial intelligence, and navigational accuracy mean autonomous robots are now working alongside us.
Autonomous or semi-autonomous, robots can potentially help with essential tasks such as inspecting infrastructure or controlling weeds on organic farms, to name just a few examples. A huge spectrum of applications now exists between the traditional robot arm bolted to the factory floor and fully autonomous units roaming the park.
What about safety? Software and the software tools you use to control these robots play a vital role in their correct and safe operation. Fortunately, there are good standards for functional safety of software in industrial applications.
And before it comes to safety evaluations, you need to make sure the software tools and toolchain you use are fit for purpose. For example, unless you are working with a highly specialized target processor, you often have a range of options to choose from when it comes to code compilation, both proprietary and open source. But how do you know which one is the best fit? That’s where SuperTest excels. It’s the most extensive commercially available test suite for C and C++ and is also extremely straightforward to use. That means you can quickly assess a toolchain to verify the conformance of the language and the library part of the implementation to the language specification.
If required or requested, you can also dig deeper. SuperTest comes with additional features. The calling convention tester generates pairs of test files, so by compiling one test file with one compiler and the second with another compiler, you can easily assess the compatibility of code generated by two different toolchains. The optimization test suite provides a deep dive into the correct implementation of compiler optimizations, and with some ingenuity and a high-speed clock, you can even use it to benchmark the effectiveness of optimizations. At the same time, you can collect statistics on the size of the generated object files. And that’s not all. It also contains 43 different arithmetic test suites for specific target data models.
Choosing the most suitable toolchain is not always easy, but getting it wrong has huge implications for the software development process, the correctness of the compiler-generated code, and the functional safety processes. The more efficient you can make an assessment, the more compilers you can evaluate. If you’re designing autonomous robots, selecting a suitable toolchain might just stop your robot from getting locked up.
Dr. Marcel Beemster, CTO
Subscribe to our monthly blog!