The automotive industry today is undergoing a revolution of autonomous driving. An unmanned vehicle can provide a higher level of safety for passengers, since it is deprived of the human factor. The widespread distribution of unmanned vehicles in the future will reduce the number of accidents, as well as save the time people spend on driving every day.
OSCAR (Open-Source CAR) is an open source research project of the StarLine unmanned vehicle uniting the best engineering minds of Russia. We called the OSCAR platform because we want to make every line of code relating to a car open to the community.

Platform anatomy
As a user of a vehicle, a car owner would like to get from point A to point B safely, comfortably and on time. Custom stories are varied, starting with a trip to work or shopping and ending with hanging out with friends or family without the constant need to keep an eye on the road.
')

Therefore, the highest level of the platform is user applications and environments. We count on three groups of users: individual users, commercial, and also platform developers. For each of these groups today we are designing a separate interface. The second level is the server part, which includes high-resolution maps, a simulation module, and an API serving the vehicle. The software level is the creation of programs that will be built into the car. And the two lower levels of the platform - work on the car itself, which involves the study of the digital interface of the machine itself and the installation of equipment.
Car
A modern car can have up to 70 electronic control units for various subsystems. Usually, the engine control unit is the most powerful processor, while others are used to control transmissions, airbags, anti-lock braking systems, audio systems, mirror adjustments ... Some of them form independent subsystems, while others exchange information and commands among themselves.
To ensure communication between vehicle devices, CAN standard was developed.
CAN-bus is a standard of industrial network, as well as a system of digital communication and control of electric devices of a car. Automotive devices are connected to the CAN bus in parallel to send and receive data. Having access to this digital interface, you can, for example, turn on the engine, open the doors, fold the mirrors of the car with the help of control commands.

To control the acceleration and steering of the car, we needed to access the CAN bus and understand the appropriate types of packages. StarLine NPO is a manufacturer of electronic devices, so we developed our own CAN bus adapter.

Currently, we can steer, brake and accelerate with a laptop.

Equipment
An important area of work is equipping the vehicle with sensors and sensors. There are a number of approaches to the equipment of an unmanned vehicle. For example, some companies use expensive lidars, while others abandon them, limiting themselves to other devices.

Now, the StarLine unmanned vehicle is equipped with several mono and binocular cameras, radars, lidars, and satellite navigation.
The task of the GPS receiver is to determine its location in space, as well as the exact time. Civilian GPS receivers have insufficient accuracy for positioning an unmanned vehicle, the error can be up to several meters. This happens both because of the signal re-reflection from the walls of buildings in the urban environment, and because of poorly predictable natural factors, such as changes in the signal speed from a satellite in the Earth’s ionosphere.
For positioning an unmanned vehicle, a civilian GPS receiver error is too large, and therefore we use ultra-precise satellite navigation in our design. To this end, a GNSS RTK receiver was installed on the vehicle, which uses more advanced positioning techniques and, thus, achieves centimeter positioning accuracy only through satellite navigation.
But while driving, the car may end up in a tunnel or under a bridge, where the signals from the satellites are too weak or absent. Because of this, the accuracy of the GNSS-RTK receiver will fall, or the positioning will be completely impossible. In these cases, the car will clarify its position using the odometer and accelerometer readings. Such algorithms that combine data from several disparate sources to reduce uncertainty are called sensor fusion algorithms.

In addition to the task of localizing an unmanned vehicle, it is also necessary to have an idea about dynamic obstacles that are not on the map, for example, cars moving alongside or people crossing the road. For these purposes, the unmanned vehicle uses data from radars and lidars. The radar uses radio waves to detect obstacles, and also, due to the Doppler effect, allows us to calculate their radial velocities. Lidar is an active optical range finder that constantly scans the surrounding space and forms its three-dimensional map, the so-called point cloud.
Each device that is used in an unmanned vehicle (from camera to RTK GNSS unit) needs to be configured before it can be installed.
Software
At the most large-scale level, UAV software consists of several modules, among which are: recognition, planning, localization and control.

The data from the cameras are used to recognize and detect objects, the radars receive the coordinates and speeds of surrounding objects, the lidars supply the algorithm with a cloud of points, and the GNSS RTK module uses satellite data to locate the car.
Then the data from the first three sources are combined to obtain information about the obstacles near the car.
At the same time, both satellite and lidar readings are used to solve the SLAM problem, which means the simultaneous localization and mapping of the terrain. This is an approach for creating a map of an unknown environment with tracking the location of an object in it. This information is used to calculate the 6 coordinates of the car, which include three spatial coordinates and three-dimensional velocity.
The next step is planning the local path of the vehicle. The last step is the control module that is used to actually execute the trajectory built during the construction of the track.
We are currently busy setting up and installing equipment and are also working on a vehicle control module.
Cloud
The server part consists of four blocks:
- HD cards
- Telemetry API
- API commands
- simulation module
First, we need a storage for maps to correctly localize the car, as well as telemetry service for data analysis. This is our early server architecture diagram, which includes two blocks. Later we will expand it using API commands to be able to send control commands to the vehicle from the server. We will also add a simulation module.

HD maps are maps that offer a complete picture of the real world with a centimeter accuracy, including everything related to road infrastructure, for example, information about lanes, signs, and the position of traffic lights. The map may also contain lidar data to allow the drone to localize on them.

Simulators are needed to generate traffic situations for debugging and testing. By simulating road situations, we can increase the robustness of our algorithms by conducting unit testing on an arbitrary number of miles of customizable scenarios and rare conditions, in part of the time and cost that would be required to test on real roads.

Road map
In July, we started with the development of a concept, created a team and started the path to prototype A. Prototype A is a car that can move on waypoints, but requires operator intervention to avoid obstacles. Prototype B, the development of which we plan to finish by the spring of 2019, is a car that can bypass obstacles without driver control.

So what has a drone in the heart?
At the heart of the autonomous car are advanced algorithms, data streams, high-performance interfaces and sophisticated equipment. In addition, the car needs not only hardware and software, but also server and client applications. This technological heart is open, and we rely not only on the StarLine team’s initiative, but also on the help of the open-source community.
The main task of the StarLine unmanned vehicle is to make people’s life more comfortable and safer. Technology is important to us, but we believe that technological and scientific knowledge exists in order to serve people, and this is the real heart of our endeavor. We are approaching the day when road safety will be provided with equipment, and people will have the opportunity to devote more time to what is important to them. And if you share our point of view, we are pleased to invite you to join us in creating the technologies of tomorrow.
GitLab project