Skip to content

Commit 041fc26

Browse files
Merge pull request #1783 from odincodeshen/pr-1689
separate the 2nd SOAFEE into another PR
2 parents 4b5469e + 140a6f1 commit 041fc26

File tree

13 files changed

+691
-0
lines changed

13 files changed

+691
-0
lines changed

assets/contributors.csv

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,4 +82,5 @@ Odin Shen,Arm,odincodeshen,odin-shen-lmshen,,
8282
Avin Zarlez,Arm,AvinZarlez,avinzarlez,,https://www.avinzarlez.com/
8383
Shuheng Deng,Arm,,,,
8484
Yiyang Fan,Arm,,,,
85+
Julien Jayat,Arm,,,,
8586
Geremy Cohen,Arm,geremyCohen,geremyinanutshell,,
Lines changed: 105 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,105 @@
1+
---
2+
additional_search_terms:
3+
- linux
4+
- automotive
5+
6+
7+
layout: installtoolsall
8+
minutes_to_complete: 20
9+
author: Odin Shen
10+
multi_install: false
11+
multitool_install_part: false
12+
official_docs: https://cyclonedds.io/
13+
test_images:
14+
- ubuntu:latest
15+
test_maintenance: true
16+
title: Cyclone DDS
17+
tool_install: true
18+
weight: 1
19+
---
20+
21+
The [Eclipse Cyclone DDS](https://cyclonedds.io/) is an open-source implementation of the Data Distribution Service ([DDS](https://en.wikipedia.org/wiki/Data_Distribution_Service)) standard, designed for high-performance, real-time, and scalable communication in autonomous systems, robotics, industrial IoT, and aerospace applications.
22+
It is part of the Eclipse Foundation and is widely used in ROS 2 as a key middleware for inter-process communication.
23+
24+
## Before you begin
25+
26+
ROS2 is available for Linux, macOS and Windows.
27+
This article provides a quick solution to install Cyclone DDS on Linux.
28+
29+
Confirm you are using an Arm machine by running:
30+
31+
```bash
32+
uname -m
33+
```
34+
35+
The output should be:
36+
37+
```output
38+
aarch64
39+
```
40+
41+
If you see a different result, you are not using an Arm computer running 64-bit Linux.
42+
43+
Also, you need install following before building Cyclone DDS:
44+
45+
- C Compiler (i.e. GCC).
46+
- GIT.
47+
- CMAKE (3.7 or later).
48+
- OpenSSL (1.1 or later)
49+
50+
## How do I build Cyclone DDS on Arm?
51+
52+
We will install Cyclone DDS from source code.
53+
Clone the GitHub link and create a build folder.
54+
55+
```bash
56+
git clone https://github.com/eclipse-cyclonedds/cyclonedds.git
57+
```
58+
59+
Once download, you can build and install Cyclone DDS on Linux.
60+
In order to verify the installation, we enable `BUILD_EXAMPLES` and `BUILD_TESTING` for further testing.
61+
62+
```bash
63+
cd cyclonedds
64+
mkdir build
65+
cmake -DBUILD_EXAMPLES=ON -DBUILD_TESTING=ON -DCMAKE_INSTALL_PREFIX=<install-location> ..
66+
cmake --build .
67+
cmake --build . --target install
68+
```
69+
70+
{{% notice Note %}}
71+
The two cmake --build commands might require being executed with sudo depending on the <install-location>.
72+
{{% /notice %}}
73+
74+
75+
## Quick test on Cyclone DDS
76+
77+
After success build up the code, you are able to use Cyclone DDS now.
78+
To verify the installation, you can run the Hello World example on cyclonedds/build/bin folder.
79+
80+
Open two terminals and move to the cyclonedds/build/bin/ directory and in each terminal run:
81+
82+
{{< tabpane code=true >}}
83+
{{< tab header="Publisher" language="bash">}}
84+
cd cyclonedds/build/bin/
85+
./HelloworldPublisher
86+
{{< /tab >}}
87+
{{< tab header="Subscriber" language="bash">}}
88+
cd cyclonedds/build/bin/
89+
./HelloworldSubscriber
90+
{{< /tab >}}
91+
{{< /tabpane >}}
92+
93+
If you observe the following message from each of terminal, it's mean Cyclone DDS has been successfully installed on Arm machine.
94+
You are now ready to use Cyclone DDS.
95+
96+
{{< tabpane code=true >}}
97+
{{< tab header="Publisher" language="log">}}
98+
=== [Publisher] Waiting for a reader to be discovered ...
99+
=== [Publisher] Writing : Message (1, Hello World)
100+
{{< /tab >}}
101+
{{< tab header="Subscriber" language="log">}}
102+
=== [Subscriber] Waiting for a sample ...
103+
=== [Subscriber] Received : Message (1, Hello World)
104+
{{< /tab >}}
105+
{{< /tabpane >}}

content/install-guides/ros2.md

Lines changed: 133 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,133 @@
1+
---
2+
additional_search_terms:
3+
- linux
4+
- cloud
5+
6+
7+
layout: installtoolsall
8+
minutes_to_complete: 30
9+
author: Odin Shen
10+
multi_install: false
11+
multitool_install_part: false
12+
official_docs: https://www.ros.org/blog/getting-started/
13+
test_images:
14+
- ubuntu:latest
15+
test_maintenance: true
16+
title: ROS2
17+
tool_install: true
18+
weight: 1
19+
---
20+
21+
The Robot Operating System [ROS](https://www.ros.org/) is a set of software libraries and tools for building robot applications.
22+
ROS 2 is the latest version, designed to enhance security, improve distributed system communication, and support real-time performance, addressing some of the limitations of ROS 1.
23+
24+
## Before you begin
25+
26+
ROS2 is available for Ubuntu Linux 22.04, 24.04 and Windows 11.
27+
28+
This article provides a quick solution to install ROS2 for Ubuntu on Arm.
29+
30+
Confirm you are using an Arm machine by running:
31+
32+
```bash
33+
uname -m
34+
```
35+
36+
The output should be:
37+
38+
```output
39+
aarch64
40+
```
41+
42+
If you see a different result, you are not using an Arm computer running 64-bit Linux.
43+
44+
## How do I Install ROS2 for Ubuntu on Arm?
45+
46+
We will install ROS 2 using APT.
47+
By default, the Ubuntu package lists do not include ROS 2, so you need to manually execute the setup first.
48+
49+
```bash
50+
sudo apt update
51+
sudo apt install curl -y
52+
sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg
53+
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null
54+
```
55+
56+
There are two of distros (Jazzy Jalisco and Humble Hawksbill) can be installed depended on your Ubuntu version.
57+
For Ubuntu Linux 24.04, you should use Jazzy Jalisco.
58+
For Ubuntu Linux 22.04, you should use Humble Hawksbill.
59+
60+
{{< tabpane code=true >}}
61+
{{< tab header="Ubuntu 24.04" language="bash">}}
62+
sudo apt update
63+
sudo apt install ros-jazzy-desktop
64+
sudo apt install ros-jazzy-ros-base
65+
source /opt/ros/jazzy/setup.bash
66+
{{< /tab >}}
67+
{{< tab header="Ubuntu 22.04" language="bash">}}
68+
sudo apt update
69+
sudo apt install ros-humble-desktop
70+
sudo apt install ros-humble-ros-base
71+
sudo apt install ros-dev-tools
72+
source /opt/ros/humble/setup.bash
73+
{{< /tab >}}
74+
{{< /tabpane >}}
75+
76+
Confirm the version `ros2` is installed by using printenv:
77+
78+
```bash
79+
printenv ROS_DISTRO
80+
```
81+
The output should print either `jazzy` or `humble`, depending on your Ubuntu version.
82+
83+
84+
## Quick test on ROS2
85+
86+
In one terminal run a `talker`:
87+
88+
```bash
89+
ros2 run demo_nodes_cpp talker
90+
```
91+
92+
The output will continue to be similar to the one shown below, indicating that ROS 2 is publishing the “hello world” string along with a sequence number.
93+
94+
```output
95+
[INFO] [1741389626.338343545] [talker]: Publishing: 'Hello World: 1'
96+
[INFO] [1741389627.338329328] [talker]: Publishing: 'Hello World: 2'
97+
[INFO] [1741389628.338317118] [talker]: Publishing: 'Hello World: 3'
98+
[INFO] [1741389629.338322551] [talker]: Publishing: 'Hello World: 4'
99+
[INFO] [1741389630.338318200] [talker]: Publishing: 'Hello World: 5'
100+
[INFO] [1741389631.338334884] [talker]: Publishing: 'Hello World: 6'
101+
[INFO] [1741389629.338322551] [talker]: Publishing: 'Hello World: 7'
102+
[INFO] [1741389630.338318200] [talker]: Publishing: 'Hello World: 8'
103+
[INFO] [1741389631.338334884] [talker]: Publishing: 'Hello World: 9'
104+
...
105+
```
106+
107+
Then, open another terminal source the setup file and then run `listener`:
108+
{{< tabpane code=true >}}
109+
{{< tab header="Ubuntu 24.04" language="bash">}}
110+
source /opt/ros/jazzy/setup.bash
111+
ros2 run demo_nodes_cpp listener
112+
{{< /tab >}}
113+
{{< tab header="Ubuntu 22.04" language="bash">}}
114+
source /opt/ros/humble/setup.bash
115+
ros2 run demo_nodes_cpp listener
116+
{{< /tab >}}
117+
{{< /tabpane >}}
118+
119+
If you see "I heard [Hello World: ]" in second terminal shown below, it's mean your ROS2 has been successfully installed.
120+
You are now ready to use ROS2.
121+
122+
```output
123+
[INFO] [1741389927.137762134] [listener]: I heard: [Hello World: 1]
124+
[INFO] [1741389928.125120177] [listener]: I heard: [Hello World: 2]
125+
[INFO] [1741389929.125042010] [listener]: I heard: [Hello World: 3]
126+
[INFO] [1741389930.125046472] [listener]: I heard: [Hello World: 4]
127+
[INFO] [1741389931.125055785] [listener]: I heard: [Hello World: 5]
128+
[INFO] [1741389932.125434760] [listener]: I heard: [Hello World: 6]
129+
[INFO] [1741389933.125044887] [listener]: I heard: [Hello World: 7]
130+
[INFO] [1741389934.125124370] [listener]: I heard: [Hello World: 8]
131+
[INFO] [1741389935.125036222] [listener]: I heard: [Hello World: 9]
132+
...
133+
```
Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
---
2+
title: Software-Defined Vehicle (SDV) and SOAFEE
3+
weight: 2
4+
5+
### FIXED, DO NOT MODIFY
6+
layout: learningpathall
7+
---
8+
9+
## Introduction to Software-Defined Vehicles
10+
11+
In recent years, the automotive industry has been undergoing a transformation driven by software, with the concept of the Software-Defined Vehicle (SDV) emerging as a key paradigm for the future of intelligent cars. As the number of Electronic Control Units (ECUs) increases and vehicle systems become more complex, the traditional hardware-driven development approach is no longer sufficient. To improve development efficiency and product quality, automotive software development is shifting toward a Shift-Left approach, accelerating validation and deployment processes.
12+
13+
## The Evolution of Software-Defined Vehicles
14+
15+
The core idea of SDV is to make software the primary differentiating factor of a vehicle, enabling continuous feature updates via Over-The-Air (OTA) technology. This approach allows manufacturers to shorten development cycles while continuously improving safety and performance after a vehicle is released. Moreover, SDV promotes the adoption of Service-Oriented Architecture (SOA), enabling modular and scalable software that integrates seamlessly with cloud services.
16+
17+
However, this transition introduces new challenges, particularly in software development and validation. The traditional V-model development process struggles to meet SDV demands since defects are often detected late in development, leading to costly fixes. As a result, Shift-Left has become a crucial strategy to address these challenges.
18+
19+
One useful Arm Automotive [landing page](https://www.arm.com/markets/automotive/software-defined-vehicles) that you can read.
20+
21+
## Shift-Left: Detecting Issues Early to Enhance Development Efficiency
22+
23+
Shift-Left refers to moving testing, validation, and security assessments earlier in the development process to reduce costs and improve reliability. In the SDV context, this means incorporating software architecture design, virtual testing, and automated validation in the early stages to ensure the final product meets safety and performance requirements.
24+
25+
The key benefits of Shift-Left include:
26+
27+
- Reduced Development Costs: Early defect detection minimizes time and resources spent on late-stage fixes.
28+
29+
- Accelerated Development: Continuous Integration and Continuous Deployment (CI/CD) speed up software releases.
30+
31+
- Improved System Reliability: Simulation and virtual testing enhance software quality and safety.
32+
33+
However, Shift-Left requires appropriate tools and frameworks to support its implementation; otherwise, it can increase testing complexity. This is where SOAFEE (Scalable Open Architecture for Embedded Edge) plays a critical role.
34+
35+
Check this [blog](https://newsroom.arm.com/blog/automotive-virtual-platforms) understand how to use virtual platforms enable the automotive industry to accelerate the silicon and software development process through virtual prototyping.
36+
37+
## SOAFEE: A Standardized Solution for SDV Development
38+
39+
SOAFEE, an open architecture initiative led by Arm and industry partners, aims to provide a unified framework for software-defined vehicles. It leverages cloud-native technologies and is optimized for embedded environments, enabling developers to adopt modern DevOps workflows to accelerate software development.
40+
41+
SOAFEE addresses several key challenges:
42+
43+
- Consistent Development Environment: A standardized abstraction layer allows developers to build and test software across different hardware platforms.
44+
45+
- Support for Virtualization and Containerization: Enables software testing in virtual machines or containers, facilitating flexible deployment and updates.
46+
47+
- Enhanced Security and Functional Safety Testing: Built-in security mechanisms and best practices ensure reliability across different use cases.
48+
49+
With SOAFEE, developers can more effectively adopt Shift-Left methodologies, reducing development bottlenecks and improving software quality. Furthermore, SOAFEE promotes smoother collaboration between different suppliers, fostering an ecosystem for SDV software development.
50+
51+
As the Software-Defined Vehicle paradigm gains traction, the automotive industry is transitioning toward a software-driven future. To meet the demands of rapid iteration and high-quality standards, development teams must adopt a Shift-Left approach, shifting testing and validation earlier to minimize costs and risks. However, this transition requires the right tools and frameworks, and SOAFEE emerges as the ideal solution to address these challenges.
52+
53+
With the adoption of SOAFEE, automotive software development will become more standardized and efficient, enabling companies to realize the vision of SDVs faster while delivering a safer, smarter, and more flexible vehicle experience.
54+
55+
Visit [SOAFEE](https://www.soafee.io/) website to find more detail.
56+
57+
In the following sections, you will explore a Shift-Left demonstration example that leverages SOAFEE to enable early deployment of autonomous driving software before the hardware is ready.
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
---
2+
title: Essential Automotive Software Technologies
3+
weight: 3
4+
5+
### FIXED, DO NOT MODIFY
6+
layout: learningpathall
7+
---
8+
9+
Before diving into the Deep Dive section of this learning path, I would like to first introduce a few essential software technologies that you need to understand.
10+
11+
## Robot Operating System 2 (ROS 2)
12+
13+
Robot Operating System 2 (ROS 2) is an open-source robotics middleware designed to provide a flexible, scalable, and real-time capable framework for robot development. It builds upon the foundations of ROS 1, addressing limitations in distributed computing, security, and multi-robot collaboration. ROS 2 is widely used in autonomous systems, industrial automation, and research applications.
14+
15+
Key Features of ROS 2:
16+
- **Cross-Platform Support**: Runs on Linux, Windows, and real-time operating systems (RTOS), ensuring flexibility in deployment.
17+
18+
- **Real-Time Capabilities**: Uses Data Distribution Service (DDS) for efficient inter-process communication, enabling real-time performance.
19+
20+
- **Enhanced Security & Reliability**: Provides encrypted communication, deterministic scheduling, and built-in fault tolerance.
21+
22+
- **Multi-Robot & Distributed System Support**: Enables large-scale robotic systems and cloud-based robotics applications.
23+
24+
- **Modular and Scalable Architecture**: Uses a node-based system where different components operate independently.
25+
26+
Applications of ROS 2:
27+
28+
- ROS 2 is used in autonomous vehicles, robotic arms, drones, and medical robots. It supports simulation tools like Gazebo and integrates with AI frameworks for advanced robotics applications.
29+
30+
- ROS 2’s enhanced performance and flexibility make it a crucial enabler for the future of robotics, providing developers with a powerful platform for building intelligent, autonomous systems.
31+
32+
Arm’s computing platform fully supports ROS 2 operations. You can use this [link](/install-guides/ros2/) to learn how to install it on an Arm-based machine.
33+
34+
## Autoware Open AD Kit
35+
36+
The [Open AD Kit](https://autoware.org/open-ad-kit/), the first SOAFEE blueprint, is a collaborative initiative within the [Autoware](https://autoware.org/) and SOAFEE ecosystems. Developed with contributions from Autoware Foundation members and alliance partners, its goal is to enable Autoware as a fully software-defined platform.
37+
38+
The Autoware Foundation hosts Autoware, the world’s leading open-source autonomous driving project.
39+
40+
Autoware, built on ROS, features a modular AD stack with well-defined interfaces and APIs for perception, localization, planning, and control. It supports diverse sensors and hardware, enabling adaptability across vehicle types and applications, from research to commercial deployment.
41+
42+
Committed to democratizing AD technology, Autoware fosters collaboration among industry, researchers, and developers. By promoting open standards and innovation, the foundation accelerates autonomous driving adoption while ensuring safety, scalability, and real-world usability, driving the future of autonomous mobility through open-source development and ecosystem synergy.
43+
44+
The Open AD Kit Blueprint has evolved through multiple iterations of containerized Autoware software. It supports both cloud and edge deployments in physical and virtual environments, with OTA updates enabling seamless software upgrades.
45+
The Open AD Kit project continues to be developed at the Open AD Kit working group, and the following are the main goals and principles of the collaborative project:
46+
• Introducing modern cloud-native development and deployment methodologies for the Autoware use
47+
• Introducing mixed-critical orchestration, paving the way for safety and certifiability
48+
• Enabling validation using virtual prototyping platforms to achieve shift-left paradigms
49+
• Providing a consistent production environment to deploy Autoware using hardware abstraction technologies to enable hardware-agnostic solutions
50+
51+
The Open AD Kit Blueprint has been widely adopted by many ecosystem players to develop their own custom-flavored implementations. The blueprint provides a practical and demonstrable example of building SDV applications, particularly in the autonomous driving domain. Additionally, it serves as a model for creating SOAFEE blueprints, fostering a dynamic ecosystem around them.
52+
53+
In the following sessions, you will learn how to use the OpenAD Kit autonomous driving simulation environment to run SOAFEE within container and facilitate communication through ROS 2.
54+

0 commit comments

Comments
 (0)