Eclipse AVSys adopts the model-based design methodology to describe an autonomous driving system. Using blocks and lines, users create a block diagram of the entire system, and based on it OSCAR IDE generates a ROS package and handles all dependencies. Finally, Eclipse AVSys builds the generated package on a target device and creates ready-to-launch executable ROS nodes.
- ROS-based system can be viewed as a graph, where nodes are computational processes that communicate with each other by passing messages through topics with publish/subscribe semantics.
- In a block diagram, nodes and topics are represented by blocks, and the message passing interface is represented by connections between blocks.
- Nodes and topics are defined as classes using EMF (Eclipse Modeling Framework).
- GEF (Graphical Editing Framework) is used to easily make and edit instances of defined classes.
- The actual visual representation of the classes is shown using Draw2D.
<A block diagram representation of a sample autonomous driving system>
The development process can be divided into the following steps:
- The graphical editor provides a drag-and-drop interface for creating instances of ROS publisher/subscriber nodes and topics.
- The model description is saved as an XML (Extensible Markup Language) file, from which the skeleton code is generated.
- Skeleton code of each module can be modified in the source code editor. All changes are simultaneously reflected in a model description and its graphical representation.
- Build automation tools generate a ROS package in compliance with the ROS Filesystem and transfer it to the target’s workspace directory via FTP (File Transfer Protocol). It checks for dependency issues, handles them, and builds the package.