Are cars actually going to use open source software?
2024-09-29 10:01:44 994
Open source ecosystem is an important engine to promote software technology innovation, it can be said that many great software and OS in the world now rely on open source, to prosperity.
In the field of autonomous driving platform, there are also many open source platforms, of which Autoware is the most famous, it can be said that its status in the world of autonomous driving is no less than “Linux”. Of course, it should not be interpreted as an OS, it is actually a set of software libraries and tools that can help users quickly build robotics applications. As one of the must-know platforms for engineers in the automotive field, and one of the most valuable software frameworks for getting started in autonomous driving, its popularity has been on the rise in recent times.
World's first open source software for autonomous driving
Have you noticed that autonomous driving has been moving particularly fast in recent years? In addition to the faster development of the chips themselves, open source platforms have been one of the key factors in accelerating the pace of autonomous driving.
Autopilot platform open source history is not long, Autoware is the world's first “All-in-One” (all-in-one) open source software for self-driving cars, now the domestic high degree of Baidu Apollo are its “little brother! “It is based on ROS (Robot Operating System). It is based on ROS (Robot Operating System) and used under the Apache 2.0 license to support commercial deployment of autonomous driving in a variety of vehicles and applications.
Autoware's open source algorithms were originally first proposed in August 2015 by Shinpei Kato, a visiting associate professor at Nagoya University and an associate professor at the University of Tokyo.In late December 2015, Prof. Shinpei Kato founded Tier IV to maintain Autoware and apply it to real self-driving cars.
And since then, open-source self-driving platforms have been surfacing like a rainbow:
Baidu Apollo: launched in April 2017, including a complete set of hardware, software and cloud service solutions that can help developers quickly build autonomous driving systems of all types and sizes, abandoning the traditional ROS from version 3.5 in favor of its own development of CyberRT, and Apollo's recommendation of a 64-bit x86 instruction set CPU plus NVIDIA GPU architecture;
NVIDIA DriveWorks: NVIDIA has not only abandoned ROS, but also abandoned Ubuntu, using the microkernel QNX instead of Ubuntu. although the software itself is open source, but must be used under the premise of using NVIDIA GPUs, and DriveWorks is actually only the top layer, the key underlying DriveOS, NVIDIA did not open source, because DriveOS has quite a lot of QNX contribution, and QNX is certainly to charge;
Continental Automotive subsidiary Elektrobit's EB robinsand Predictor: VECTOR, Bosch's ETAS and Continental's EB are known as the AUTOSAR middleware trio, and its EB robins do not take into account the non-vehicle-grade underlayment system at all, and it is highly dependent on Autosar, whose evaluation suite is running the EB robinos e-Horizon Provider. robinos e-Horizon Provider (ADASIS) for Raspberry Pi devices, so it mainly supports Arm architecture;
comma.ai's OpenPilot: unlike the products above, OpenPilot focuses on delivering Advanced Driver Assistance System (ADAS) features such as adaptive cruise control and auto-steering, and OpenPolit's cereal middleware focuses on lightweight, high performance, and maintaining global consistency of service protocols
CARLA: It is an open source autonomous driving simulation platform that provides realistic traffic environment simulation, which can be used to test and validate autonomous driving algorithms, and can be coupled with Autoware.
From the above major vendors, software computing frameworks can be mainly divided into three technology routes: ROS-derived autonomous driving platforms, specialized autonomous driving platforms (such as Cyber RT), and Autosar, a software framework developed for industry. In the beginning, vendors were all based on ROS, just like Autoware, and then slowly changed their routes, while Autoware has kept its heart and is based on ROS.
In terms of instruction set architecture, Autoware recommends the Arm instruction set architecture, but also supports Arm. Historically, Autoware was initially supported by Arm, and later AMD became one of the platinum members of the Autoware Foundation. In addition, Autoware's platinum members include Huawei, AWS, Foxconn, TIER IV, and others.
With the passage of time, Autoware has become a recognized open source project.
Seeing Autoware on the inside
Autoware has many advantages. First, modular architecture, as an all-in-one platform, it integrates all the functions required for automated driving, and is designed with modular architecture with clearly defined interfaces and APIs; second, scalability, not only can it be oh-share to expand more functions, but also linkage to other software; third, it is constantly evolving, and its latest version has begun to be redesigned based on ROS 2.0: fourth, it supports a variety of automated driving application scenarios, such as cabs, buses, freight transportation, logistics, agriculture, construction, mining and so on.
What's more, the Autoware Autopilot Platform for ROS 2 adopts a code-first approach, making it as easy as possible to develop new applications for such systems, with highly repeatable code that is easier to learn than other platforms, and is suitable for beginners; the code is available on Github (https://github.com/ The code is fully open source on Github ( autowarefoundation/autoware) and can be installed and used directly. In addition, Autoware autopilot platform considers more embedded systems.
Sensor part, Autoware supports multiple sensors, including camera, LiDAR (laser radar), inertial guidance (IMU) and GPS, etc. It provides driving and fusion algorithms for multiple sensors, and the main functions include sensing, localization, planning and control. In Autoware, each camera is managed separately to perform different tasks such as object detection and traffic light recognition. In addition, Autoware autopilot platform does not support the synthesis of different camera images into a single image; in Autoware, multiple radar scanners can be combined to provide rich fused point cloud data for more accurate target detection, tracking and localization; GPS/GNSS receivers typically generate NMEA-compliant text strings through a serial interface. Currently, almost all GPS/GNSS products will be compatible with the existing nmea2tfpose nodes of the Autoware Autopilot platform; however, Autoware does not yet have a standalone IMU module adapter, as positioning via 3D maps and odometers based on SLAM algorithms is sufficiently reliable without the use of IMUs. However, since IMUs are still useful in certain scenarios, the Autoware Autopilot platform supports the integration of IMU drivers and data into native modules.
The algorithmic part, includes three main functions: perception, decision making and path planning. Among them, the perception function consists of three modules: localization, detection and prediction; the decision-making function spans the perception and path planning functions, according to the results of perception, Autoware decides the current driving behavior, so that it can select the appropriate planning function; the role of the path planning function is to formulate a global motion scheme and a local motion scheme based on the results of perception and decision-making, and the path planning function consists of two modules: task and motion Composition.
Drive part, the output of the algorithm part is a set of speed, angular speed, wheel angle and curvature, this information will be sent as commands through the vehicle interface to the wire controller, which is responsible for the change of direction angle and throttle.
In particular, the current versions of Autoware.Universe (developer version) and Autoware.core (stable version) are very rich in content, with a qualitative leap in functionality and performance compared to the two previous versions of Autoware.Ai and Autoware.Auto, consisting of Sensing, Map, Localization Ai and Autoware.Auto. It consists of seven modules: Sensing, Map, Localization, Perception, Planning, Control, and Vehicle Interface. However, Autoware is not foolproof. Although it has been upgraded from ROS 1 to ROS 2, which solves problems such as real-time, master node, and can't run embedded, there is not a lot of construction in terms of vehicle regulations. In addition, the business model of autonomous driving open source projects is not clear, making it difficult to form effective development teams. Within the automotive industry, there is also no open source project that can be used directly on the product, and strict testing and certification requires a large capital investment.
Comparison of Apollo, what are the differences and similarities
Apollo belongs to the same open source autonomous driving platform track, also has a very good popularity, the industry has a lot of discussion about the two. Engineers generally believe that the pursuit of rapid landing and ecosystem, Autoware is better.ROS as the world's richest robot operating system, has accumulated a lot of experience, avoiding the duplication of the development work of the developers, and improving the development efficiency. However, the success of ROS, “failure” also ROS, after all, ROS more for the robot, was not originally for the automotive field. At the same time, because Linux is an extremely open development environment, the kernel scheduler for the algorithm business logic is not clear, can only guarantee a fair allocation of resources. Therefore, there is no logic in the running order of ROS Node. Of course, Autoware has gradually filled these shortcomings as it enters newer versions.
If you want to pursue the performance of some special scenarios, choose Apollo, which has no scheduling, no algorithmic algorithmic logic, and Component component, which communicates with each other through the Cyber channel. However, Cyber RT users have less experience, while the resources are not as comprehensive as ROS.
Of course, there are some dual-system options on the market today, namely Autoware (ROS 2) combined with Apollo. There are also some vendors such as Apex.AI that are starting to experiment with combining Autoware (ROS 2) and Autosar. It's all open source anyway, so there's nothing wrong with combining them.
Autosar and ROS unified in Apex.AI products, source: Apex.AI
All in all, Autoware itself is very popular within the engineer community and is one of the must-know platforms for anyone interested in the industry. In order to let the majority of engineers learn Autoware better, the Automotive Development Circle had also released some learning materials, and in the future, the Automotive Development Circle will continue to provide more materials for the majority of engineers.