Google recently claimed that its self-driving cars are encountering fewer and fewer software errors and failures. The reduction in errors is bringing Google ever nearer to its ultimate goal of creating a car that is fully autonomous.
Cars That Drive Themselves
Google has been working on cars that are driven by sophisticated software rather than by a human user for some time, and has been testing them on the roads of California. Some predictions test that millions of autonomous vehicles could be on the road in just a few years.
However, at present the cars are not yet fully autonomous, and California regulations wisely require that they be fitted with a traditional steering wheel and only allowed on the road with a human test driver. When the software that pilots the car in normal circumstances encounters an error and fails, the human test driver takes over – a process referred to as disengagement.
Making a report to the California Department of Motor Vehicles at the end of last year, Google reported that fewer and fewer disengagements were occurring as tests went on and the software became more sophisticated and refined. Over roughly 424,000 miles of test driving, the human operator has had to take the wheel 272 times, 89 per cent of which were in a city environment where the software had to contend with more complex road conditions. Google’s ultimate goal is to develop a car that will work well enough to have no need for manual controls.
Learning Software
Finding and eliminating bugs is important with any kind of software if it is to operate smoothly and reliably, but especially when that software is responsible for human safety as with Google’s autonomous cars. Usually, bug finding is handled by specialised software testing services such as https://www.bugfinders.com/ or others but while this most likely still plays a role, Google is at least partly attributing the improvement to different factors.
The software that drives Google’s cars reportedly is a learning software, capable of using data gathered from its own mistakes to improve its performance in similar situations in the future. This, as well as manual improvements and the elimination of outright bugs, is helping to account for the fact that mistakes and disengagements are becoming less and less frequent as tests proceed.