Introduction¶
Welcome to the link.developers guide.
Our community is doing data acquisition, data processing and data fusion. The applications we currently work on are connected intelligent vehicles, autonomous driving and robotics. These are emerging technologies with a high amount of research and growing demands for fast proof of concepts and the demonstration of competitive solutions.
To develop, integrate and deploy innovative software for these emerging technologies, we have joined forces in developing reusable software components. We do this based on the DRAIVE Link software.
We implement an open-edge model. That means our components are open-source (MPL 2.0) with a small interface to proprietary code.
Nodes and Meshes¶
Our software components are called Nodes. A node is a small, loosely coupled and reusable piece of software. It provides atomic functionality and pins to communicate with other nodes via messages.
Nodes can be dynamically connected and thus form a more complex application. This construct is called mesh.
Who this guide is for¶
This guide is for you, if you want to do sensor acquisition and data processing.
Let's have a look at some specific tasks this guide covers.
Node Developer¶
You are a software developer and you have a sensor you would like to acquire data from? Or you have an algorithm you would like to feed data into for processing and visualize its results? This guide will tell you how you can develop Link nodes, enabling you to write an acquisition node for your sensor. You can then do further analysis and data processing with other Link nodes.
Mesh Designer¶
You have some sensors and want to capture and process their data? This guide tells you how you can connect existing Link nodes with each other. This allows you to easily build a large mesh of nodes that are all able to exchange data with each other.
How to use this guide¶
In general, the guide assumes that you read it from front to back.
Later chapters will reference or detail things whose basics were explained earlier.
Nothing prevents you from skipping a chapter, though.
If knowledge of previous chapters is needed, you will usually find a link referencing the respective chapter and section.
There are three big clusters in this guide:
- a "system setup" chapter
- an introduction about running Link nodes
- a cluster about node development
In Chapter 1, we prepare the system for Link by installing and configuring the Conda package manager. Chapter 2 explains how you can run Link nodes at the example of a small sender and receiver for chat messages. Chapter 3 covers topics around the development of a node.
In Chapter 3.1, we go all steps to build a node from source code. We debug this locally built node in Chapter 3.2 and make a small modification to it in Chapter 3.3. Chapter 3.4 teaches you how to package the node and make it ready for distribution. Chapter 3.5 explains how you can contribute your node modifications back to the link.developers community. In Chapter 3.6, we go a few steps back and develop and node from scratch instead of modifying an existing one.
If you want to have a quick overview of the topics a specific chapter covers you can read the first and last paragraphs.
So, let's get started!