We broke stuff to make it better
In these releases, we made many (API) breaking changes in the SDK, which means there are a lot of major improvements coming for our customers. They have had a sneak peek at all the changes through our engineering releases, but now we’re ready to share the contents with the rest of the world.
A dose of modern remedies
The throughline of these major additions and integrations is being the bleeding edge. For the automotive industry, some of these concepts are leagues beyond what some players thought was feasible, especially for safety-critical automotive software in an SOP/25 (start of production) program.
Adoption of the C++17 toolchain |
|
Platform support for the NVIDIA Drive AGX Orin with QNX OS for Safety 2.2 |
|
Hermetic builds with Bazel |
|
Smaller changes that still pack a punch
There are some more changes that we are excited about, because we know how valuable these are to the developers using Apex.Grace and Apex.Ida:
Zero-copy transport API is dead simple to use
No longer requires special annotations (@flat) in messages to leverage shared memory, which is a common limitation for any middleware providing zero-copy transport mechanisms
This change speeds up development since message definitions and middleware code need not be recompiled when a given message type needs to use (or stop using) the zero-copy transport mechanism. It also removes the need to refactor existing application code, so another chunk of time is saved
Introduction of a process manager
Nodes and processes can be started, stopped, and restarted at runtime
The process manager can be controlled programmatically and react to system state changes on a per-project basis
Replaces the primitive (static behavior) launcher used in Apex.Grace to date; this flexibility is very helpful in pre-production environments. And because of how we designed this, it’s used in production environments too (i.e., it is safe)
Dynamic configuration features
Available through an extension of Apex.Grace Settings, which is used for node- and process-level configuration management
The dynamic behavior required for enabling rapid prototyping in early stage and pre-production development is now available with Settings
Built-in substitutions to avoid absolute paths
Built-in substitutions for environment variables allowing more flexible Settings files
Composable Settings files
These capabilities are particularly useful in defining how and when nodes and processes will be started and stopped by the process manager
Overhauled ROS IDL code generation infrastructure
Greatly simplifies the code generation pipelines
Developers and system integrators get a boost in usability through improved error handling
Collectively these changes — along with the other capabilities of Apex.Grace and Apex.Ida — give developers more freedom, allowing them to breeze through their prototyping phase and arrive at the pre-production and production phases more quickly than was ever possible before. Our work in the latter half of this year will continue in this vein.
Non-stop to SOP
As we enter the latter half of the year, our focus is on API stability, safety, and saving developers time. Stand by for our next product release announcement before the end of the year. That’s all for now, folks.
—
If you are interested in Apex.AI products for your projects, contact us.