You are a C++ software engineer or a domain expert in robotics, and your boss asks you to make the software system you are developing “safe”. How will you go about doing this? How can you build a functionally safe, reliable, and certifiable software system using modern C++?
I just returned from CppCon 2019 in Aurora, Colorado where I talked about using modern C++ to build reliable and real-time software for use in safety-critical autonomous mobility applications. I illustrated the challenges and solutions using examples such as avoiding memory allocations during exception handling, how to use memory pools for standard containers in a way which prevents memory fragmentation, additions Apex.AI made to the standard thread library to make it suitable for real-time applications and how to do failure injection to achieve the coverage required for the highest safety levels.
If you are interested, you can find the presentation here. Feel free to reach out to us via firstname.lastname@example.org with questions about this presentation or to learn more about how we use modern C++ to build Apex.OS* and autonomous driving application software.
*As of January 2023 we renamed our products: Apex.Grace was formerly known as Apex.OS, and Apex.Ida was formerly known as Apex.Middleware.