Another quarter in the books. And what do we have to show for it? Lots of stuff! Today we are sharing the key updates from our latest product releases: Apex.Grace 2.2 and Apex.Ida 1.2.
These updates mark the beginning of development for new features available in this release and the releases that will follow later this year. Our focus remains on ease of use, performance, safety, and saving developers time. Also, this is the ultimate release before the major (API breaking) changes this summer. Be sure to inquire about our engineering releases to get a sneak peek of those significant changes that are about to come.
This is the first product release since our products underwent renaming. As a refresher, Apex.Grace is our unified SDK for software engineers developing automotive and robotics software (formerly known as Apex.OS). Apex.Ida is our one-stop shop for middleware needs and moving data within the system.
—
ROS 2 Foxy sync. Apex.Grace APIs are updated to be in sync with the upstream ROS 2 Foxy APIs. The core packages, such as rcl, rclcpp, rclpy, and the rosidl* family of packages, reflect the functionality and API of their upstream counterparts. This makes it simpler for developers to port code from ROS 2 APIs to use the more robust Apex.Grace APIs, and to have hybrid systems where some nodes are purely based on ROS 2 and other nodes based on Apex.Grace.
Persistent data storage. A new data persistence package enables developers to persist data (such as node-specific configuration data) between runs (instances) of the system. This is valuable during many of the stages of development, but in particular when you’re at the stage where you’re optimizing and tuning the applications within the system (like on a test vehicle). With the initial release, there is a TUI (terminal user interface) tool to interact with nodes that leverage the persistence feature. Later there will be graphical tools to simplify the workflow further.
SOME/IP connector for pre-production. Apex.Grace added support for SOME/IP connectors — an interface to connect the SOME/IP protocol with the data model of Apex.Grace (and ROS 2) — back in mid-2022. But that connector has quite rigid requirements as it is intended for production environments. So a new connector based on Franca IDL is added to enable more rapid prototyping and pre-production development. This allows our customers to speed up their development, particularly when connecting their legacy and incumbent systems with their robust and reliable next-gen systems.
UDS for vehicle diagnostics. Unified Diagnostics Services (UDS) is a must-have for series production and ensuring it’s feasible to test and deploy vehicles at scale. The UDS stack we developed is an add-on for Apex.Grace, and it makes it possible for ROS developers to integrate with standard automotive protocols like ISO 14229. UDS is widely used on many other vehicles outside of automotive too, such as agriculture and other industries with vehicles on four wheels. Like many other features within Apex.Grace, there’s an invaluable abstraction layer designed into the solution such that the application developer using Apex.Grace APIs can stick with the common publish/subscribe and services paradigms in their application code, and behind the scenes (via Apex.Ida), the requests and data are translated to the UDS-native format via DoIP (from ISO 13400, which covers Diagnostics over IP). We will share more details about our UDS stack in a dedicated blog post.
Improving quality of life. Developers are people too. We wanted to make their lives easier with more QOL changes that help our customer’s developers and our own. Apex.Ida is fortified with some behind-the-scenes but valuable changes, such as consolidating the ADE images required for the middleware components and improving the searchability of the Apex.Ida documentation. Legacy components — in both Apex.Ida and Apex.Grace — have been marked for deprecation.
Tooling and simplified workflows. Comparison is the thief of joy; however, some developer tools are simply more valuable than others. The rosbag2 tool received a truckload of love in this release. Following the ROS 2 community efforts, we’ve updated the Apex.Grace rosbag2 tool to match the bleeding edge version upstream. This means we natively support the new MCAP storage paradigm and have the latest feature set you’re used to from the stock ROS 2 rosbag2. Lastly, we detected and fixed some lagging performance on the data capture (record) side. Now, at worst, there is one copy incurred while recording data. And in most cases, there are zero copies. This is a tremendous and valuable performance increase, effectively increasing the throughput of data that can be captured. With this change, the most limiting factor is the hardware (disk write speed), not rosbag2 itself.
That’s all for now! I hope it sates your appetite for a few months while we work on the next new features and improvements.
—
If you are interested in Apex.AI products for your projects, contact us.
We’re always looking for awesome people who want to join our worldwide team!
Visit our careers page for a list of open positions.