aiSim integrates ROS

News & insights

Check our latest stories on automated driving

aiMotive's automotive-grade simulator, aiSim's lidar visualization&imagePreview=1

Written by Dávid Rejzinger / Posted at 11/24/21

aiSim integrates ROS

The world's first ISO26262 certified virtual validation suite, aiSim, has integrated ROS2, making it instantly compatible with one of the most popular prototyping frameworks for advanced driver-assistance systems and automated driving solutions. 

What is the ROS ecosystem?

ROS stands for Robot Operating System, an open-source framework containing a standardized collection of essential packages for robotics projects, and as such, it is a general software stack for anyone to build upon. Despite the name, it is not just an operating system; it's also a software environment with applications for scientific experiments, research prototypes, and final products too. 

Companies developing self-driving technology prefer to use ROS as the basis of their vehicle software, mainly because the whole ROS system has been designed to be fully distributed in terms of computation. This means that different computers can take part in the control processes and act together as a single entity. ROS is also attractive for developing self-driving technology because there is already a lot of code and visualization tools written for self-driving cars, which makes it relatively easy to start a self-driving project.

At the core of the distributed system are the smaller independent modules called (ROS) nodes. An application can have many such nodes, each covering different responsibilities and communication flow. In short, a plethora of functionality is available at the user's fingertips, all the while sparing them the complexity of building such a system on their own. 

aiSim – deterministic testing

aiSim integrated ROS2, a major API revision of the original ROS standard, leveraging its design for modularity, to share sensor data both in real-time and simulation-time. In this sense, sensors fulfil the same role as they would within a robotics environment. aiSim provides a control logic node, letting clients simulate different levels of automated driving functionality (such as AEB, LCA, LKA). Pairing this with the respective sensor feedback allows for closed-loop simulation through the ROS network. aiSim can provide the necessary sensor feedback for any level of self-driving, be it L1 or L5, whether it is a camera, lidar or radar.

Bayer encoded image data from aiSim visualized in RVIZ2

aiSim provided LiDAR PointCloud2 data displayed in RVIZ2

Another essential aspect within ROS is the underlying protocol, the Data Distribution Service (DDS). It defines how nodes communicate with each other: via self-defined channels categorized as topics, services, and actions. Each channel should be uniquely identifiable, and data transmitted through them is consolidated via associated message formats – for the most common modules, these are available within the ROS framework itself; for application-specific ones, the clients can create them.

The positive aspect here is that nodes communicating through the same topic will have to use the same message format, but that can take on any shape or convention the communicating partners agree upon. Consequently, this allows seamless integration between aiSim and our clients' software environment due to the minimal restriction applied to both sides.

Accelerating production

Many enticing parts of ROS have already been mentioned. From a product development perspective, one particular feature deserves more attention: the tools included. Visualization tools are given for sensor data display - such as camera and lidar - but the more important ones are the debugging and introspection tools for the network. These boost the troubleshooting capabilities of anyone using the software stack, which directly shrinks development time spent on any issue. Problems in real-time network environments might otherwise get quite complex and costly.

It is also advantageous to minimize the turnaround time for feedback about any new functionality implemented. The ROS framework has this covered as well by letting users manipulate the network itself or act as artificial data supplier nodes. A good example would be manually supplying control directives and validating the responses via network message analysis. 

ROS2 and the node-based architecture is the basis of many automotive frameworks. Since it is open-source, it is a good starting point for R&D projects, and with aiSim support, it becomes practical to test the algorithms in an automotive certified, deterministic environment, so you don't have to change the simulation environment later on. This shortens the time significantly from concept to production.