What will AI want to be when it grows up?

As the world advances in the age of artificial intelligence – particularly generative AI – it might feel as if there are androids among us. Artificial intelligence that can generate words and pictures, understand and respond to conversations, and perform tasks is a crowning achievement. At least it feels that way now, only time will tell where things will go next.

When we were children, we were always asked: “What do you want to be when you grow up? There was always a wide range of answers – one wanted to be a veterinarian, the other an astronaut, and so on. But if we could ask AI this question, what would it say?

Perhaps one of the most iconic AI characters is Lt. Commander Data (played by Brent Spiner), from the TV series Star Trek: The Next Generation. In it, Mr. Data helps with calculations and problem-solving, all with the speed and accuracy of an android. What often lets him down, however, is that he’s unable to understand and master human emotions. While his perception and access to information are all huge strengths, Data wants something incredibly human.

 

AI in Automotive Today

Today, artificial intelligence is one of the hottest topics in the world and it’s giving us an idea of what AI might want to be when it grows us. The automotive industry is embracing this technology in everything from its production line to vehicle software. It starts with the adaptation of in-car systems, such as ChatGPT by VW, Tesla’s AI-powered Autopilot, or the MBUX infotainment by Mercedes. There’s no doubt that, in time, it will advance further into our vehicles and to more safety-critical elements, as well as into human-car interaction, route-planning, and more that, right now, we can only dream of.

Here are some of the areas AI is already being used in the industry:

  1. Production line:

    1. Robots that build vehicles and are able to detect defective materials
    2. Parts warehouse management robots that AI in use sensing and routing

  2. Accident prevention:

    1. In-cabin driver awareness - falling asleep, DUI, distractions off-road 
    2. Pattern learning of dangerous driver behavior
    3. Obstacle identification
    4. Adaptation of car limitations according to weather conditions

  3. Maintenance: 

    1. Preventing car breakdown on-road by learning symptoms in advance.
    2. Car smart usage - reduce wear and tear.

  4. Fleets:

    1. Learning and plotting optimized distribution routes
    2. Detecting and identifying defects for car rental companies

In addition, here are three AI-driven areas of specific interest to me:

Autonomous Vehicles

You don’t get very far in a conversation about AI in automotive without touching on autonomous vehicles. 

There are five levels of automation with level one vehicles being able to handle single tasks such as automatic braking while level five is fully autonomous capabilities without the need for driver presence. 

Today we are at level 2 with advanced driver assist systems (ADAS) providing accident prevention capabilities such as forward collision warning (FCW), lane-keep assist, adaptive cruise control, and more. This enables independence but still needs to be monitored by the driver.

To achieve this, the vehicle needs to “see” the world outside and understand it. It does this through cameras, LiDar, radar, IR sensors, and more. With all this information, the vehicle can make small decisions such as keeping the car in the lane if it drifts out of the white lines.

As well as good hardware, this is only possible with the right software to accompany it, otherwise the vehicle won’t know what to do with the information the sensors and cameras are feeding it. 

The world is aspiring to get to a point where all vehicles are fully autonomous (level five). This would mean all cars talk to one another through Vehicle-to-Vehicle communication (V2V) and the infrastructure around them through Vehicle to Everything (V2X). Once we get to this point, all you’ll need to do is get in a car, tell it where you want to go, and let the AI do the rest.

Vehicle Insurance 

What if an insurance company could adjust insurance fees according to the behavior of the driver?

Usage-based insurance looks at your behavior as a driver and adjusts the price accordingly. This means safer drivers will have lower premiums than those considered more at risk. Previously things like black-box insurance have made this possible, but now insurers are exploring AI to facilitate this. 

According to McKinsey, 10% to 55% of roles within insurance could be replaced by AI in the next 10 years – particularly underwriting, claims, and finance. In the future, almost all claim and fix processes will be managed by AI, reducing human involvement to the minimum, and maybe even reducing the costs for us consumers.

Just like autonomous vehicles, this requires sophisticated software to be successful. However, as insurance companies are dealing with sensitive data, security is paramount. All the details of a driver need to be aggregated to a server to help teach the AI and inform its outcomes. Disregarding errors and security risks in the software could lead to noncompliance, legal issues, lost revenue, and poor brand reputation.

Predictive Vehicle Maintenance

When a car breaks down, there's nothing to do but fix it – sometimes making the car unusable and maybe even stuck somewhere, something that is extremely expensive for commercial fleet companies. But what if we could know what’s going to become an issue before it breaks? Proper maintenance of a vehicle will always help to keep breakdowns to a minimum but AI can take this to the next level with Predictive Maintenance.

This is especially useful across fleets where keeping track of each individual vehicle can be challenging. AI can study how each vehicle is being used, monitor driver behavior, and begin to learn trends that could contribute to breakdowns. This will ensure fleet managers can minimize downtime while keeping on top of vehicle maintenance.

This technology can also take some of the unknown out of purchasing a second-hand car. With AI, the buyer could validate the health of the vehicle and see if any major breakdowns are around the corner. This can help them make a buying decision and potentially save a huge amount of money when looking for an affordable used vehicle.

In the future, we will see completely automated maintenance where the car will not need to get to the garage at specific times in the life of the vehicle, and the entire BOM (Bill of Material) for the car’s maintenance will be known ahead of time, lowering storage needs and enabling more efficient garage working hours.

Throughout the years, Mr. Data may not have been able to master human emotion but came close to learning to mimic this ability in his own way – or, of course, use a very buggy emotion chip. AI will probably be the same. It might be a good replacement for a lot of human tasks and maybe even perform better in some cases, but there will always be a limit.

During Star Trek: TNG, even with Mr. Data’s great programming, he still was prone to bugs and misuse of his abilities. According to Star Trek, computer bugs and cyber threats are still a real problem in the 24th century, and we have no reason to doubt the logic of the show’s writers. AI has real potential but it has to be used in a way that plays to its strengths.

Aurora Labs has developed an LCLM (Large Code Language Model)  that works at the line-of-code (LOC) level at runtime, this enables us to identify deviations and anomalies at a very basic level that can discover not only coding bugs but software functionality misbehavior as well. It can monitor the software in real-time to detect changes in the software’s behavior before these escalate to become critical system errors. Raising a flag before a system fails will not only ensure that the devices continuously learn and improve but could also save lives in devices such as cars or trucks. 

While emotions may be a step too far for AI-based devices, self-healing is one form of human nature that I truly believe can be achieved.Find out more about Aurors Labs’ technology here: https://www.auroralabs.com/product-overview/

Agile Development in Automotive

The automotive industry has traditionally been a bastion of structured development. Yet, as the digital age advances, there’s a growing need for more flexible practices. Unlike more traditional development processes, the agile methodology is non-linear and allows for increased adaptability — especially when making last-minute changes.

This is the final article in our three-part series (part 1| part 2) where we explore how AI impacts the automotive industry. In the first, we dove into the need for new tools in the software development process while the second looked at the need for innovation in process as well as technology.

Embracing controlled agility 

Agile development in automotive isn't about recklessly pushing new versions — though it might work that way in other industries. Cars are safety-critical machines, and there's no room for error. But this doesn't mean the industry can't benefit from an agile approach

By implementing controlled agile processes, developers can ensure small updates don't adversely impact the entire vehicle. This approach allows developers to make small, iterative changes while still meeting automotive industry regulations.

Benefits of iterative development 

From a developer's standpoint, the agile approach offers many advantages. Humans find it challenging to tackle large tasks head-on so it’s practical to break things down into more manageable pieces. When presented with a large task, like developing a brand new function, it can feel overwhelming. Breaking this down into smaller, more manageable chunks better fits natural human behavior, allowing for more productivity and flexibility. 

Developers can be more efficient by focusing on specific functions in phases and releasing them in small steps. This iterative process not only increases productivity but also ensures that each function is thoroughly tested before proceeding. This is vital when it comes to vehicle safety.

How AI tools can support the agile development process

Artificial intelligence tools have the potential to streamline the development process. For instance, consider the task of tracking bugs in a system. Traditional systems often require manual searches, leaving developers feeling like they’re looking for a needle in a haystack. 

AI can assist in understanding customer needs, generating tests, and ensuring that these tests align with requirements. This technology can help developers resolve errors more quickly by using AI to map the entire software system and give insights into exactly which lines of code have changed, which need testing, and which are causing issues. This helps to track down bugs, including those from unpredicted scenarios and edge cases that might otherwise be difficult to find.

Automating these aspects allows developers to be more agile in their software development and testing by getting faster quality feedback and enabling them to focus on what they do best: developing innovative solutions for the automotive industry.

The automotive industry is on the cusp of a significant transformation. As software-defined vehicles become the norm, the need for agile development becomes more important than ever. By integrating these methods and leveraging AI tools, developers can better innovate while improving efficiency.

 

Click here for more insights into the future of automotive software development.


Part 1| Part 2

Balancing Innovation and Process in Automotive Software Development

As the automotive industry grapples with the challenges of modernization, it's essential to understand that innovation in automotive software isn't just about the development of new features. It's equally about refining and redefining the processes that support it.

This is the second article in our three-part series where we explore how AI impacts the automotive industry. In the first, we dove into the need for new tools in the software development process.

The need for process innovation

Software innovation is undeniably crucial, especially as consumers begin to demand more high-tech features such as autonomous driving capabilities. However, the real challenge lies in ensuring that developers are also innovating the processes used to build automotive software. Changing human behavior, especially in a legacy industry such as this, is no small feat. The serial production of software — which is akin to a manufacturing production line — may offer control but is no longer the most efficient or effective way to approach software development.

What’s needed is a more agile approach (more on this in the third part of this series), one that involves smaller steps and innovative testing methods, such as virtual environments. Complex software demands process innovation, and the industry must rise to meet this challenge.

As we mentioned in our previous article in the series, the traditional way of matching customer requirements with the finished product was through the V-shape model. This is the way things have been done for a long time but it’s time-consuming and, often, inaccurate. Innovation isn’t just about adopting new technologies, it’s about thinking outside of tradition and considering what new processes might be possible with advanced tools such as those using AI.

The cultural shift

The journey to process innovation is as much about culture as methodology. Developers, who are often bogged down by the daily grind of fixing bugs and releasing software, may overlook the need to reevaluate their processes. As more tech-forward companies bring agility and innovation to the table, however, larger OEMs are beginning to take notice. These industry giants are now seeking insights from agile startups, indicating a promising shift toward a more collaborative and innovative future.

For developers who are already thinking in this way, it’s a case of looking at requirements, development, and testing, then considering how those processes could be improved using technology or new ways of working. 

A good way to start thinking about this is in terms of the challenges. Within the traditional methods of development, what isn’t working? Perhaps the testing process takes too long or it’s difficult to get updates out on time. Maybe it’s external problems such as supplier deliveries that are causing issues. Whatever it might be, an innovative approach to the process could be the answer, especially when backed up by technology.

For example, if the testing process feels cumbersome, the question should be asked, is running all tests, no matter the software changes, the best way of achieving software quality? Switching to a process that incorporates AI to detect the changes in the software and analyze the potential quality risks could be the solution. For example, Auto Detect from Aurora Labs can efficiently select which tests have the highest probability of failure due to the changes made in the software in the specific build. Rather than running all tests available, this means only the necessary ones will run, significantly reducing time while still ensuring test effectiveness.

Shifting left

The cost, both in terms of money and resources, of detecting and fixing software problems increases as the software progresses through the software lifecycle. For example,  traditional methods of software updates come with certain limitations, especially when it comes to the speed at which manufacturers can release updates. For instance, updating car software traditionally involves inefficient processes that are integrated and implemented after the software has been developed and installed in the vehicle ECU – a cumbersome and data-intensive process that’s far from cost-effective. However, AI technology, such as Aurora Labs’ Auto Update, now allows for software updates to be integrated as an integral part of the software development process and not as an afterthought. 

To leverage the power of this technology, it’s important to build the tools into the Continuous Integration and Continuous Deployment (CI/CD) process. This not only makes the process more efficient but also paves the way for faster and more agile software development.

As the automotive industry continues its journey into the digital age, the balance between innovation and process will remain at its heart. By embracing agile methodologies, creating a culture of continuous improvement, shifting left with new technologies, and integrating AI tools, legacy automakers can ensure they keep ahead of the curve in a rapidly evolving industry. 

If you’d like to learn how artificial intelligence could bring innovation to your software development processes, get in touch here.

Part 1| Part 3

The Need for New Tools in Revolutionizing Automotive Software Development

This is part one of our series.

Automotive software is undergoing a technological shift. With evolving architectures and ever-increasing customer expectations, the traditional tools and methodologies that once dominated are now being challenged. As we move to the era of software-defined vehicles, there's a pressing need for a new generation of tools that can keep pace with these changes.

This is the first article in our three-part series on AI software development tools, where we explore how this technology impacts the automotive industry.

V-shape development and AI's role

Historically, the automotive industry has relied on the V-shape development model. This model begins with customer or OEM requirements on one side and culminates in tests to ensure these requirements are met on the other. Traditionally, this process was manual, involving extensive document reviews to ensure tests aligned with requirements.

However, with the advent of AI, this is changing. Large Language Models (LLMs) can now read and comprehend these documents, understanding their context. By training AI on these requirements, it can bridge the gap between what the customer needs and the testing process. This approach not only streamlines the process but also ensures a higher degree of accuracy.

This is an area early on in the development process where AI can have a significant impact. With an understanding of specific requirements, this technology can ensure that the software fits those customer needs at every stage of the development process. This speeds up the time to market by ensuring the project is on track at all times. Without AI traceability, there’s the risk of developers producing software that’s not quite fit for purpose, which could lead to additional time needed to bring the code in line with the original requirements.

Limitations of traditional tools

The traditional approach to updating embedded software in vehicles is cumbersome. For instance, traditional update methods require the previous version of the software to be completely erased in order to make space for the latest version. Given that modern cars have more than 100 ECUs, this method becomes problematic, as well as time and data-intensive. This also makes it difficult to roll back to a previous version should the latest software cause an issue within the vehicle.

The industry's reliance on tools that build these embedded software images is a significant limitation. However, newer technologies are emerging that allow for updating only the changed parts of the software. This approach, while requiring the integration of new tools into the CI/CD process, offers a faster and more agile way to update software.

Aurora Labs’ Auto Update technology creates the smallest possible update file to be written to the next free space on the existing flash memory, eliminating the need to overwrite the existing software version and enabling instant rollback if needed. Utilizing AI and advanced algorithms means update files are 6x smaller than alternative differential technologies, directly affecting data transmission and cloud storage costs. In addition to the need for remote software updates during aftermarket service, there are great time and resource efficiencies to be realized during the product development and system testing (/pilot vehicles) stages.

AI's transformative potential

The potential of AI in revolutionizing automotive software development is vast. For many developers, AI is becoming more than an add-on, it’s an integral part of their toolkit. They see opportunities where AI can be used to develop and test code, bringing fresh perspectives and methodologies to the table.

The automotive industry stands at a crossroads. With the rise of software-defined vehicles, the tools and methodologies of the past may no longer suffice. Embracing new tools, such as those that use AI, is not just beneficial; it's essential. As the industry continues to evolve, those willing to innovate will lead the way, shaping the future of automotive software development.

If you’d like to learn more about the Aurora Labs suite of artificial intelligence tools, get in touch today.

 

Part 2| Part 3

Commercial Vehicles are Miles Ahead in Innovation

Commercial vehicles have a wealth of different requirements compared to passenger vehicles. Whether that's due to their size, the miles they need to cover, or the complexities of using autonomy in a logistics setting, there's a lot of work going into future-proofing these vehicles.

Remarkable innovations are taking place in the world of commercial vehicles, driven by their data collection capabilities and the unique challenges they face. In this article, we'll dive into some of these advancements and what that means going forward.

Driver-assist systems

Just as in passenger vehicles, trucks are fitted with advanced driver assist systems (ADAS). For the most part, these are similar to those in cars with features such as lane-keeping assist and collision mitigation to help improve safety.

However, because trucks are larger and heavier than passenger vehicles, they need additional safety features such as brake hold mode to avoid driver fatigue during long periods of standstill, and auto hold, which is exclusive to the Freightliner Cascadia. This feature actively brakes the truck to a safe stop in its lane rather than letting the truck roll to a halt in the event the driver is incapacitated.

In the future, these features will become even more sophisticated with improvements in both hardware and software, allowing trucks to identify hazards from further away. This will help to improve visibility and safety for truck drivers and the other road users around them.

Autonomous driving and platooning

We're closer to an autonomous truck than we are to full driverless cars. The reason is that commercial vehicles spend most of their time on the highway, which is a much less complex environment when it comes to the road markings, what's around, and the types of maneuvers one might want to make. Compared to a passenger vehicle that might be navigating tight city streets or narrow country lanes where other vehicles, pedestrians, or animals might seemingly come out of nowhere, there's a lot of predictability in driving on the highway.

Many of the tests on autonomous trucks are still being carried out with a driver to take over should something go wrong but we're closer than we've ever been. With new hardware innovations that make the most of LIDAR, cameras, and radar systems, combined with more powerful ECUs, we could see driverless trucks traveling for 24 hours a day. Something a human driver could never do.

While this might not be the reality just yet, there have been some promising results from truck platooning trials. This is where a convoy of trucks is able to follow one another closely to reduce air drag, improve fuel economy, and free up space on the roads. This is automation rather than full autonomy, though, as drivers are still needed when the vehicle needs to break from the convoy and continue to its destination.

Predictive maintenance

The use of artificial intelligence enables fleet managers to get a better sense of when maintenance might be required on a commercial vehicle. Using sensors within the vehicle, as well as AI tools, the maintenance needs of a truck can be accurately predicted. This avoids the need to send technicians into the field, and instead, allows vehicles to be worked on when they are back at base.

By predicting the maintenance needs of a vehicle, fleet managers can ensure those routes are covered by other trucks in order to minimize downtime. On top of this, handling maintenance in this way also improves safety. Tire sensors combined with predictive maintenance algorithms could help avoid blow-outs, for example.

Software innovations

While hardware is important, it's the software that runs all these smart features. This makes commercial vehicles incredibly complex, so software innovation is needed to ensure the systems run without issue. 

Software development tools are needed to ensure that system integration is validated throughout the truck's lifetime; OTA updates should be performed with zero downtime and without interrupting the truck's productivity; and continuous software behavior monitoring should also be performed, even while the truck is on the road. This ensures any system malfunctions are detected before they cause vehicle downtime.

Using AI is a vital part of this development and maintenance process and can help detect changes in the software's lines of code, behavior, and relationships within a vehicle.

This not only speeds up the development process but can also improve the time to market for updates and additional features. Aurora Labs' Vehicle Software Intelligence helps solve some of the challenges of developing software for commercial vehicles -- both now and in the future. If you like to find out more, book a demo here.

“Automotive software is super hard!” – The Shared Challenges of Automotive Software

Automotive software is a hot topic at the moment, and rightly so. Everyone from modern electric vehicle companies to legacy manufacturers are discussing the challenges and opportunities of software.

In a recent interview with Fully Charged, Jim Farley, CEO of Ford Motor Company, spoke about the difficulties in getting software right. He highlighted the issues with multiple software providers and the lack of integration between them, something that caused Ford to bring the development of its electric architecture in-house.

"It's so difficult for legacy car companies to get software right," said Farley. "The problem is that software is written by 150 different companies and they don't talk to each other. There are different software programming languages, the structure of the software is different, it's millions of lines of code, and we can't even understand it all. That's why at Ford we've decided to completely insource electric architecture and to do that, you need to write all the software yourself. But just remember, car companies haven’t written software, they've never written software, so we're literally writing the software to operate the vehicle for the first time ever."

It's not just Ford that's facing these issues, but Tesla too. In a Twitter Spaces interview, Farley spoke to Elon Musk about software. Even though Tesla is the leading software-defined vehicle manufacturer, Musk admitted: "Automotive software is super hard."

Stellantis isn't immune either. " has gotten too complicated, too expensive, some of the cars you get in and I have to ask someone how to start it," said Ned Curic, CTO of Stellantis, during a talk at Innovation Day for CEA-Leti in Grenoble.

Stellantis, which manufactures cars under the Citroen, Fiat, Peugeot, Alfa Romeo, Opel, Dodge, Jeep, and Vauxhall brands, is all too aware of how complex modern cars have become. During the same talk, Curic explained: "We need to figure out how to do more with less. We eliminated 150 features out of 250 in the cabin . We have 270 silicon devices in a vehicle -- we have shrunk that to 70."

It's not just a handful of brands putting this level of thought into their software. A recent report from Reuters Events showcased the consistent focus on connected and software-defined vehicles. Almost 60% of its conference attendees said they were interested in this area.

The report also highlighted how many larger manufacturers are keeping their software development in-house. Markus Duesmann, CEO of Audi explained how external collaboration on software isn’t on the cards any time soon. He said: "At the moment, it would take away speed and add complexity. We are big enough to cooperate with ourselves and to have enough scalability."

Toyota's new CEO, Koji Sato, is also focusing on software. During an announcement back in April, he said: "Connecting the latest hardware and software will enable cars and various software applications to freely connect. Arene will fulfill an important role as a platform to support this kind of evolution. We will do our utmost to develop a next-generation BEV for 2026 together with Woven By Toyota."

Other brands are working on their own software platforms too. Mercedes-Benz has a new MB.OS infotainment system that will link to other areas of the vehicle and will be built around partnerships with tech firms such as Google and Nvidia. "We are dedicated to building the world's most desirable cars," Mercedes CEO Ola Källenius said. "We made the decision to be the architects of our own operating system -- a unique chip-to-cloud architecture that leverages its full access to our vehicles' hardware and software components."

AI creates actionable insights

The comments from these industry leaders all illustrate the need for solutions that address the challenges manufacturers are facing. AI-based tools can help overcome many of these hurdles from requirements to coding to continuous integration and continuous deployment (CI/CD).

One way automakers can speed up the development process and get updates out more quickly is with AI tools, such as those from Aurora Labs. This speeds up everything from development to testing to deployment by adding focus and traceability to the software development lifecycle.

The ongoing quest to solve these challenges presents an exciting opportunity. Industry giants like Ford, Tesla, Mercedes Benz, VW, Toyota, and Stellantis are all engaging with the issue head-on, each recognizing the value and the challenge of insourcing software development. The key to success for car brands -- whether they tackle their software in-house or outsource it -- is understanding the role AI-based tools play in the software development and maintenance process.

With the ever-present necessity for innovation, every player in the automotive industry must consider the role of software as an integral part of their future. Leveraging AI for more rapid and efficient development cycles will be key to staying relevant and competitive in an ever-evolving market.If you'd like to find out more about how AI can solve the big challenges facing manufacturers, download the whitepaper here: Five software development challenges in automotive and how AI is addressing them.

Navigating Complexity: The Challenge of Building Reliable Automotive Software

With vehicles featuring more advanced driver assist systems than ever -- as well as autonomous capabilities -- it's no wonder software has become the most important element in a modern vehicle. As a result, automotive software is becoming more complex than ever, with more lines of code, modules, and components. This means the challenge of maintaining quality and reliability becomes even more pronounced.

Traditional software development practices are struggling to keep pace with the growing needs of today's vehicles. Many developers continue to use outdated methods, such as repetitive and time-consuming testing strategies, in an attempt to improve quality and reliability. The new era of software-defined vehicles demands an innovative approach to meet the need for comprehensive testing and rapid iteration.

Artificial intelligence as a quality assurance tool

Artificial intelligence (AI) tools are emerging as key allies in automotive software development -- especially when it comes to quality assurance. At the design level, AI tools can provide tested and proven blueprints, reducing the need to build every project from scratch. This significantly simplifies the development process and saves crucial time and resources. Furthermore, AI can provide a framework that maintains consistency and speeds up the development process.

When it comes to testing, AI's potential is equally transformative. These tools can identify specific tests to focus on based on the updated software functions and their interdependencies, which helps optimize test selection. The end result is a more efficient testing process that helps support the creation of reliable software and updates.

Aurora Labs' Auto Detect adds a layer of AI to the testing process to give actionable insights into which tests have the highest probability of failure. This means that when a new version is committed to the software repository, Auto Detect will optimize the order of test runs by selecting the tests to run first, ensuring a faster time to failure. This speeds up the software testing process while still ensuring all essential functions are tested.

The same tool can also improve quality by ensuring 100% test coverage. With hundreds of millions of lines of code and complex interdependencies throughout a single vehicle, manually trying to achieve 100% test coverage is a monumental task. Auto Detect uses Line-of-Code Intelligence to deliver detailed insights into the coverage of your tests, allowing developers to see what's covered by the testing scenarios -- and, crucially, what's not.

Culture change

In an industry as established as automotive, change can be difficult to implement, especially when it comes to ingrained development processes. However, the need for process innovation is as pressing as the need for software innovation. Traditional development models, such as the sequential production line model, are often inadequate for managing complex software projects.

An agile approach embraces small iterative steps and anticipates potential issues. Tools such as those developed by Aurora Labs are already proving to be game-changers in this area. For example, the automotive industry is familiar with the V-model development methodology, where customer requirements and corresponding tests form the two arms of the "V" with development at the base.

Traditionally, aligning these two aspects has been a manual task. However, AI tools can now read and understand documents, interpret the context, and map out the connection between the requirements, the software, and the corresponding tests. In this way, AI is not just working side by side with software development but is becoming an integral part of the process by identifying areas for improvement and ensuring compliance with regulations.

The road to reliable automotive software development lies in striking a balance between software innovation and process refinement. AI tools can undoubtedly catalyze this journey, but their success hinges on the ability of developers to weave these tools into an efficient, scalable, and innovative development process -- one that is prepared for the rapid changes defining the future of the automotive industry.

If you'd like to find out more about how Aurora Labs' AI tools can support your automotive software development, download the whitepaper here: Five software development challenges in automotive and how AI is addressing them.

Automotive Saftey (r)Evolution

On September 30, 1955, police, ambulance, and fire crews arrived at the scene of a horrific two-car collision at a desert intersection in Cholame, California. Medics found that the driver of the Porsche, rising star James Dean, had been thrown from the car and killed instantly.

Following an investigation into the collision, it was determined that Dean hadn't been wearing a seatbelt. If he had, he most likely would've survived the crash. This high-profile death raised public awareness of the importance of seatbelts and ushered in the age of automotive safety.

Not much changed in the coming years in terms of new safety features in vehicles but more people did start to wear seatbelts. It was only when electronic control units (ECUs) started to become commonplace that manufacturers began to introduce safety features such as ABS, ESP, airbags, and more recently, lane-keeping assist, Forward Collision Warning (FCW) and other advanced driver assist systems (ADAS).

History of the ECU

General Motors introduced the first electronics system into a vehicle in 1978. By 1981 all GM vehicles contained an engine control unit that helped manage fuel use and power within the vehicle. In the early 1980s, hybrid digital systems became popular with other manufacturers, too, these were able to measure and process inputs from the engine to yield preset output values. This ROM system, as it was known, was one of the first tunable systems.

By 1991 almost all US and Japanese manufacturers has abandoned carburettors in favour of fuel-injection systems controlled by microprocessors.

Now, all ECUs use a microprocessor that processes engine inputs in real-time. They're much more robust than other systems, especially as an engine begins to wear. As well as lending themselves well to tuning, these systems also enable more sophisticated safety features.

ECU-based safety technologies

Many vehicles now have a dedicated ADAS ECU that draws information from the vehicle's cameras, lidar and radar systems, and inertial measurement units, as well as map data. This enables various safety features, including:

  • Lane-keeping assist
  • Blindspot warning
  • Adaptive cruise control
  • Automatic emergency braking
  • Hill descent control
  • Lane change assistance

How to safely create an ECU

In order to power these advanced safety features, an ECU needs to be safe in itself. In 2014, for example, there was an incident where a software defect caused unintended acceleration with drivers unable to apply the brakes.

In order to avoid similar issues that could impact the safety of a vehicle, it's important that software is thoroughly tested. With more than 100 million lines of code and interdependencies that span every single vehicle system, this is too much for a human developer to work on alone. The use of artificial intelligence in the testing process is vital when it comes to obtaining 100% test coverage in order to uncover potential defects.

It's also important for developers to understand how each function in the software relates to one another. For example, a small change or update to the software controlling the braking system will affect more than how the car stops during normal driving -- it'll also impact ABS, emergency braking, and even adaptive cruise control, as all these systems are intertwined.

One of the main conclusions from an investigation performed by the Barr Group that led to the creation of a safety standard was that "testing is not enough to establish safety". Today, we understand that even these standards are needed to be enhanced.

Line-of-Code Intelligence is an AI-based tool that maps complex automotive software systems in order to understand the interdependencies of functions that might otherwise seem unrelated. This helps developers create safer ECUs from which to run advanced driver assistance features.

Regulating these complex systems

In 2011, the International Standards Organisation (ISO) created ISO 26262. This framework helps to identify the potential risks of software and hardware failure in a vehicle. As part of this, there are specific Automotive Safety Integrity Levels (ASILs) that can be assigned to a safety requirement and its potential hazards. These are determined by a series of classifications based on the likelihood of a hazardous event, the severity of a potential injury, and the controllability of a driver to prevent or mitigate that injury.

Depending on those factors, the safety requirement is given an ASIL ranging from A to D. The most safety-critical systems are ASIL D, and these have the most stringent testing requirements.

The latest version of ISO 26262 was released in 2018 and extended the scope from passenger cars to all road vehicles. Automakers were quick to adopt it in order to make their driver assistance systems as safe as possible.

Automotive safety has come a long way since James Dean's tragic crash, but there's still a way to go to ensure modern systems are as safe as can be. If you'd like to explore more about how artificial intelligence can improve automotive safety, find out more about Aurors Labs' technology here.

Continuously Better — a Recipe for Winners

Making devices, processes, and even people continuously better is not a new idea. Case in point -- we were watching a documentary about Henry Ford last week and one of his main business principles was 'good isn't good enough', and he continuously made improvements to an already revolutionary factory floor. He implemented processes and technology -- mainly the conveyer belt - to make sure building the Model T was more seamless, bringing automotive parts to employees instead of employees going to find parts. Fast forward almost 100 years, and the same principle is executed by successful companies.

The browser wars were won because Google ensured Chrome was always being improved with seamless updates increasing speed, enhancing security and introducing new features. In the automotive world, where software is now a driving force, vehicle manufacturers are continuously making the consumer experience better with over-the-air software updates. The problem is they are not always seamless.

For example, a friend recently received a letter from his car manufacturer explaining that an update to fix the infotainment system was available. The options were to take the car to the dealer or to update the vehicle on his own. A link to instructions on how to do the update himself was in the text of the letter. Going to the noted website, he landed on a YouTube page with a video of how to do the update. When he went to his vehicle to follow the instructions -- they were totally incorrect, and the UI in the video didn't even match the UI in the vehicle. Not very seamless.

Tesla is always used as an example of how to best do seamless over-the-air updates offering new features and functions that consumers will look forward to and enjoy. On the other end of the spectrum, there are those that think updates are "Big Brotherish" and should not be allowed at all.

However, continuously better will always win. But, unlike mobile phones and laptops, 'continuously better' for the vehicle requires a great deal more effort on technology testing, quality assurance, third-party certification and regulation. The generation coming up in the world expects their vehicle to mimic their phone, and they want the same user experience. The generation building these solutions today is responsible to make sure 'continuously better' keeps the next generation safe while simultaneously meeting their expectations of personalized and satisfying user experiences.

Ghosts in the machine: why does software misbehave?

"There have always been ghosts in the machine. Random segments of code, that have grouped together to form unexpected protocols. Unanticipated, these free radicals engender questions of free will, creativity, and even the nature of what we might call the soul."

In the movie I Robot, based on the book of the same name by Isaac Asimov, Dr. Lanning coins the term "Ghosts in the machine" and goes on to explain why robots behave in an unexpected way and not as they were programmed.

These ghosts aren't limited to sci-fi. In fact, they're something we deal with every day in software development. As technology has become more complex, we're faced with deviations that mean software doesn't quite behave in the way we expect it to -- just like Dr. Lanning's robots.

We're not quite at the point where autonomous vehicles could develop their own will but it's true that computers, robots, vehicles, and other programmed machines create such ghosts of unexpected behaviour. Understanding why these glitches happen is a vital step in reducing their frequency and handling them when they do show up.

Let's explore some of the common reasons why software deviates from its intended behaviour.

Untested combinations of events

Testing a new vehicle is a very complex task. A vehicle model may have a high number of variations depending on the feature set, country of destination, and other parameters. This results in a variety of different versions of the vehicle software for a single model year, creating complex testing scenarios.

Despite a rigorous testing process, which includes specific combinations of events, caveats still exist. This is because it's difficult to predict all of the different scenarios a vehicle will face as there are so many variables that could affect the software at any one point.

The use of artificial intelligence in the testing process is a potential solution to this as it can help come up with combinations of events a human might not think of. The AI can create new scenarios based on the expected interactions of the code. This helps developers find new edge cases they may not have come across during a manual testing process.

 

Testing doesn't always reflect real life

As well as an untested combination of events, there's also the chance that a test suite might not cover a real-life situation. Tests might cover a very specific and narrow band of scenarios that can be predicted and controlled in laboratory testing, but life out on the road is often unpredictable -- especially when you take into account weather conditions, road type, number of passengers, etc.

After production, continuous monitoring of the software behavior, while the vehicle is on the road, can give information about real-life situations. This gives the tester a more accurate view and insight into the running code instead of a birds-eye view. AI technology can support this as the car is in use.

Glitches are often incorrectly written software

What the world refers to as a computer glitch or a software bug is often an incorrectly written piece of software. This can cause unforeseen behaviour that could lead to a software update or recall.

The reason for the incorrect software may vary. It's not because of bad developers, but because writing software for a vehicle is incredibly complex and can incorporate a lot of factors that can collide with each other. Perhaps a developer or architect neglects to take into account a specific input or measurement that may affect the behaviour of the specific function or module.

As vehicles transition to a set of computers (ECUs) on wheels, it's clearer than ever how real life can throw up surprises that just can't be replicated manually in the lab. Mistakes happen, making it vital that automakers adopt more testing and debugging capabilities. Data also plays a role here and it's crucial to be able to receive as much information as one can throughout the software lifecycle, all the way from development to maintenance.

Incorrect data

With incorrect data from the network, a car's software might behave strangely. This is because it's expecting specific types of data so it can react accordingly. If the data is incorrect, the car will be unable to respond in the manner it was originally designed. The reason for the incorrect data could be faulty flash memory, a sensor malfunction, or a bit error in a message on the network.

Some mitigation mechanisms are in place to overcome the problem of misinformation due to bit error -- such as code correction algorithms, CRC data validation algorithms, ECC flash integrity checks, and more. More types of data range limitations and checks are suited to verify the correctness.

Although these types of mechanisms are in place, even with the "correct" data, an error may arise from an unfamiliar combination of information. This could be something that seems so illogical to the human eye that it would have never been considered during the testing process. So even though the code is written correctly and was tested successfully, an error can still occur.

Data reception issues

A problem with data reception can cause lags in a system, which consequently causes operational delays. This can also be fatal if a safety system doesn't engage in the time it should. Such a scenario may cause brakes not to work when they should or airbags that don't deploy in time to ensure occupant safety.

Latency and lag in the propagation of data over the network are issues that are hard to overcome and may pose a grave danger to the vehicle, passengers, and bystanders.

Million Lines of Code -- Information is Beautiful

Modern vehicles are software on wheels, and they're getting more complex all the time. The average vehicle currently has 100 million lines of code (LOC), but this is forecasted to grow to 600 million LOC for a Level-5 autonomous vehicle. With more LOC, the chance of encountering ghosts in the machine becomes even greater. Understanding how these glitches occur and what vehicles are commonly recalled for can help us solve these problems before they get out of hand.

Leaning on artificial intelligence technology to support the development process is key when it comes to automotive software. Presenting new ways to debug and get a clearer view of what's happening in real-time is becoming imperative in order not just to develop a better, safer vehicle but also to shorten the time from when a software bug occurs to the point of finding a solution and deploying it to the cars on the road, incorporating it with the ability for fast deployment is even better.

Glitches don't always present a safety concern, but they should be treated seriously. Instead, they manifest as small issues that can cause frustration for drivers. Reducing the effect of these glitches on the end-user is vital for manufacturers. Even in cases where a glitch does appear, an over-the-air update is often enough to fix the problem. It's also important that automakers are able to quickly roll back the software to a previous version should a glitch appear following an update.

If you'd like to learn about how Aurora Labs can help you identify potential issues and improve the testing process during development, book a demo here.