Head Unit Development in Ulm Labs
In the HMI and Navigation Area we are developing part of the new Head Unit for BMW. The head unit hosts native applications like navigation, radio, etc. It is the central gateway between the user, vehicle and Internet-based services like real-time traffic information, search, music streaming, etc. It implements the man-machine-interface enabling usage of applications and services via several input/output means, like voice, gestures, touch, displays, loudspeakers, etc.
Moreover a SW platform for the next generation vehicle head unit is being developed in cooperation with our partners. BMW Car IT focuses especially on the following topics: Software update, personalization, extensibility, security, navigation, user interaction.
To achieve our goals we use primarily the following technologies:
We code mainly in C/C++ (11/14) with frameworks like Boost and STL. When coding in C++ we use GTest, GMock, Qt, and CMake as tools in our daily line of work. For testing out components, we have developed our own test framework in Python.
We work both with hardware samples and virtualized target hardware locally on each developer’s box. This way we can rapidly test our changes, correct them, and submit them to our main line.
Upon integration, we use an extensive suit of integration tests (in addition to our mentioned Unit tests, of course) to ensure that our mainline software does not suffer from regressions. Our development process uses Jenkins continuous integration (CI) in combination with Git/Gerrit for code reviews and collaboration.
We all are very excited, at BMW Car-IT , about this project and look forward to see it on the streets.