top of page

Self-Driving Cars

with ROS and Autoware

hosted by Apex.AI

Self-driving cars will transform the way we travel and commute.

This technology merges robotics, machine learning, engineering,

and modern software development methods.

What is the course about?


Developing production-grade autonomous driving systems require a stack of interrelated technologies. This course brings together all the significant parts into a practical step-by-step guide to architect, develop, test, and deploy an autonomous system.

This intermediate-level course using the popular open-source robotics frameworks ROS 2 and Autoware.Auto algorithms and covers through the course of 14 lectures,  state-of-the-art techniques that combine hardware, software, algorithms, methodologies, tools, and data analytics.

What will I learn?


You’ll learn a modern approach to developing complex systems for autonomy that the most innovative automotive companies are adopting. The teachers are experienced professionals who have contributed open-source materials moving the industry towards higher standards of design, engineering, and safety. 


Who should take the course?

This is an intermediate-level course for individuals who develop pre-production autonomous driving systems. ​Participants should have knowledge of C++ (including testing), robotics frameworks, and system integration.

Built in collaboration by

AS logo dark.png
LG CI_3D_rgb_Standard-01.png

 Get notified when new lectures will be released!

  • What is the history of Apex.AI? How did Apex.AI get started?
    Apex.AI, Inc. was founded by Jan and Dejan in 2017. Jan has been working on autonomous vehicles since starting his Ph.D. work in 1997 and Dejan has been working on robotics and software frameworks since 2008. Both Jan and Dejan have contributed to ROS since its inception in 2008: During his Ph.D. work at TU Munich, Dejan developed ROS-based software. Later, after joining Bosch in Palo Alto, he worked closely with Willow Garage on the core ROS codebase. During that time, Jan was at the helm of Bosch's robotics and autonomous driving labs in Palo Alto. He coordinated Bosch's contribution to ROS in the PR2 Beta program of Willow Garage, and his lab was the only corporate contestant that was awarded a PR2 platform for research. ​ Based on the observation that many companies apply ROS to safety-critical systems without having a thorough understanding of the requirements and implications, the duo decided to start Apex.AI to provide Apex.Grace as a robust and reliable version of ROS 2 for safety-critical systems including functional safety certification and professional support.
  • What is Apex.AI doing differently than other companies working on autonomous vehicle technology?
    We do not reinvent the wheel. Instead, we take ROS, which is a great and established open framework for robotics and autonomous systems R&D, and make it robust and reliable for use in automotive and other safety-critical applications. Specifically, we provide Apex.Grace as a robust and reliable version of ROS 2 for safety-critical systems including adequate certification and professional support, both of which are outside of the scope of an open-source project.
  • Is the company called Apex?
    The correct spelling of our company name is Apex.AI. The full legal name of our US entity is Apex.AI, Inc. and the full legal name of our German entity is Apex.AI GmbH. Apex.AI GmbH is a wholly-owned subsidiary of Apex.AI, Inc.
  • What does “Apex" mean?"
    In Latin, the word Apex means 'summit, peak, tip, top, extreme end, or highest honors’ (source Wikipedia). In geometry, an apex (plural apices) is the vertex which is in some sense the "highest" of the figure to which it belongs (source Wikipedia). In motorsport, when driving the optimal racing line, the apex is the point at which an inner tire of the vehicle touches the inner edge of a curve (source Wikipedia). In ecosystems, Apex species are central to the functioning of ecosystems and the maintenance of biodiversity (source Wikipedia).
  • What is ROS?
    ROS stands for Robot Operating System, but it’s not really an operating system. It is better understood as a meta-operating system or Software Development Kit (SDK) that is used to develop robotics applications: it provides open-source software, libraries, and tools that are needed to develop, debug, test, and deploy your robotics application. ROS is developed and maintained by our friends at Open Robotics.
  • What is Apex.Grace and how is Apex.Grace different from ROS?
    Apex.Grace is a fork of ROS 2 that has been made so robust and reliable that it can be used for the development and production of highly-safety critical systems such as autonomous vehicles, robots, and aerospace applications. Apex.Grace is API-compatible to ROS 2. In a nutshell, Apex.Grace is an SDK for autonomous driving software and other safety-critical mobility applications.
  • Is Apex.Grace a research project or professional software?
    Apex.Grace is enterprise software. It’s available to professional user under a commercial license subscription
  • Is Apex.Grace open-source?
    No, Apex.Grace is not open-source. Apex.Grace is sold under a proprietary license. ROS 2 is open-source and Apex.Grace is API-compatible to ROS 2. A lot of the bugs we fixed in ROS 2 in the process of forking ROS 2, we have contributed back into open-source ROS 2.
  • Are you working on a full-stack for autonomous driving?
    We believe that developing safe and secure autonomous driving systems is an incredibly challenging problem. We further believe that this challenge requires a diverse ecosystem of technologies, components, systems, products, and of course companies building these. We strive for an open ecosystem in which customers can select best-in-class hardware components, software modules, computers, sensors, actuators, and services, and combine these into a stack that works best for their individual problems. We are providing components for this ecosystem and not a closed full-stack system.
  • What is functional safety certification?
    The safety of functionality of technical systems is described in technical norms, i.e. IEC 61508 in general, ISO 26262 for automotive, and DO-178B for aerospace systems. These norms stipulate the required safety level depending on the safety criticality of the intended functionality and the development process to get to that level. ​ Apex.Grace are software components to be used as parts in safety-critical autonomous mobility systems. Apex.Grace is certified as a Safety Element out of Context (SEooC) up to ASIL D which represents the highest functional safety level in ISO 26262. ASIL stands for Automotive Safety Integrity Level. ​ Apex.AI is working with TÜV NORD, one of the most reputable assessors in the field, to achieve certification for Apex.Grace.
  • How is your software robust to failure in ways that other companies aren't already doing, and why do you think this hasn't been more of a focus in the autonomous vehicle space?"
    We use established automotive software development practices, e.g. as described in part 6 the automotive functional safety norm ISO 26262, which has been employed for years in the development of software for small micro-controller-based vehicle computers, such as engine ECUs or ESP ECUs. ​ We are now applying the rigorous software development standards for automotive software to the development of highly complex robotics and autonomous driving software. In practice, this means that we have substantial experience in writing software with static memory, non-blocking synchronization primitives, and real-time logging while also knowing how to abstract them away behind easy-to-use ROS 2 APIs.
  • Why is functional safety certification required?
    If you are working on a demo or R&D prototype, then you likely do not require certification. If you are working on a product, then you may (or may not) require certification depending on the regulatory and product liability-related requirement in your market. Independent from obtaining actual certification, you (presumably) will want to achieve robustness and reliability of both a) your software implementation (as described in ISO 26262 part 6 and 8) and b) your functional performance (as described in ISO/PAS 21448:2019), so that your work product fulfills your customer expectations. While building a complex robotic system that has a robust, reliable, and real-time capable software stack you will likely find that a set of implementation requirements, coding requirements, and guidelines is required. You will also find that those requirements and guidelines are very similar to ours and hence similar to the ones described in functional safety guidelines and best practices. You could of course also choose to reinvent the software wheel, come up with all those requirements and guidelines on your own, and spend a multiple of the amount of time and resources, or you could use the collected wisdom of years of automotive functional safety expertise and follow what others have written down for you in ISO 26262, part 6 and 8. Whether you then choose to also get certification (besides following the guidelines that lead to certification) is again your choice. The Apex.Grace value proposition is that the complexity of these (admittedly) tedious software implementation best practices is abstracted into easy-to-use APIs from Apex.Grace, so that you and your developers don’t have to be an expert in embedded, real-time, and functionally safe programming, but can rather focus on creating functional performance.

The presentations/training themselves are licensed under the Creative Commons Attribution 3.0 Unported License (CC BY 3.0). Any video of the presentation posted on YouTube is licensed for use under the YouTube license. Any videos posted on a platform other than YouTube are licensed for use under the Creative Commons - Attribution-ShareAlike 3.0 License. (CC BY SA 3.0). Any data sets hosted by Apex.AI for the course are licensed under The Creative Commons Attribution 3.0 Unported License (CC BY 3.0). If the data set is hosted outside of our site under a different license it will be clearly labeled as such.
Any software/source code is licensed under the Apache 2.0 license.

bottom of page