Featured Post

This is the Kodak Moment for the Auto Industry

Plug-In Drivers Not Missin' the Piston Electric vehicles are here to stay. Their market acceptance is currently small but growing...

Monday, October 18, 2021

Hoverboards Don't Hover, Sea Monkeys Aren't Monkeys, Tesla's Full Self-Driving Doesn't Fully Self Drive And It Doesn't Matter!

Disclosure: I'm long Tesla.

Let's talk about Beta software. This will be an important foundation for the rest of the discussion. Here are the basic stages of software development:

Pre-alpha - major sections of the software are incomplete and/or non-functional. Formal testing has not started.

Alpha - Most of the features have some level of functionality although they may have major known defects. Testing begins, but much of the test plan may be blocked (due to the known defects).

Beta - All of the features have some level of functionality. There are still known defects, but testing on all features can formally begin to uncover the unknown defects. There may be many beta releases, e.g., beta1, beta2...

Betas come in several flavors: 

Private beta - aka Closed beta. Software is kept internal to the development team and quality team. No one outside of this circle has access to the bits. 

Limited release beta - a select group of customers or development partners can run the software with the understanding that it still has known and unknown bugs. This software must not be used in a production environment without safeguards. The users must assume the software will do the worst possible thing, at the worst possible time (remember there are known and unknown defects). 

Open beta - aka Public beta. This is just like a limited beta except now anyone (with the minimum hardware requirements) can install and use the software with the understanding that it has defects, testing is still ongoing, and it is not yet approved for production release, safeguards must be in place.

Release Candidate (RC) - The known bugs are minor and the product could be released with these known documented defects. Testing is still ongoing and new defects are likely to be found. There may be many RC releases as defects are resolved and testing restarts to ensure that a "fix" didn't break something else (aka cause a regression).

Production Release - All verification tests are passed. The known defects are documented. The software is stable. Unknown defects may (likely) still exist (this is nearly always true in software development). 

Field Hardened - Software that's been deployed for a significant time. It's had multiple bug fix releases and security patches. The defect report rate had declined to near zero. No new features (that may bring new bugs and vulnerabilities) have been added recently... 

What Is FSD? (software lifecycle)

In the software lifecycle, Tesla's Full Self Driving (FSD) Beta is a limited release beta. The driver must maintain vigilance and assume it will do the worst possible thing at the worst possible time. The licensed driver behind the wheel is the safeguard. As Tesla rolls the beta out to more people, based on their safety score, FSD is still a limited release beta (just a little less limited). FSD is still years away from being considered Field Hardened. This is the level that it would need to be before the steering wheel could be removed. 

Levels Of Autonomy

The Society of Automotive Engineers (SAE) International has defined 5 levels of driving autonomy (6 levels if you count level 0, no autonomy). But they've made a major error in this scale in that it includes both human-piloted levels with various levels of assistance and it includes levels of fully autonomous systems where humans have no responsibility for driving. 

I think this has contributed to some of the confusion about autonomous driving. 

In Levels 0 - 2, the human is responsible for everything. Levels 1 and 2 may include assistance systems such as ABS, cruise control, lane following, traffic-aware cruise control, blind-spot warning, lane change assist, traffic light indication, sign recognition, and more. However, even with all of these assists, the driver must maintain awareness of their surroundings and they are responsible for the vehicle's actions. 

Let's come back to level 3 in a moment. 

Level 4 - 5: in these levels, the vehicle does all of the driving. There may not even be a steering wheel. Level 4 would be geo-fenced (or otherwise limited), such as an airport shuttle to/from long-term parking. Whereas Level 5 would be able to drive to any location that a typical person could drive, think robo taxi.

Part of the problem is that these have radically different levels of human responsibility, yet they are on the same scale. 

Level 1-2 should be called Driver Assistance (DA) levels and it could be expanded far beyond 2 levels based on how many assistance features are offered. 

Level 4 and 5 should be called Autonomous Drive (AD) levels. 

Creating independent categories, based on who's responsible (human-piloted or machine-piloted) removes any confusion as to who is responsible for piloting the vehicle. You have either a driver assistance system or an autonomous system. The responsibility is clearly defined. 

Level 3 - I promised we'd come back this one. Level 3 is not really a separate level, it's a level that operates at Level 4 some of the time and Level 2 at other times. This level operates autonomously in some areas but requires a human driver when it leaves this well-defined geofenced zone. The human is given adequate warning before the vehicle leaves the geofenced zone and there's a clear hand-off protocol from machine-pilot to human-driver. An example could be a semi-truck that can drive on the freeways with no human supervision; however, once it leaves the freeway, it can no longer pilot itself, and a human pilot is required. When the human is driving, it may have driver assistance features. This is a DA-AD hybrid system. 

Geofencing is the simplest example, but other operational domain parameters (such as time-of-day or weather) may also require the human to take over.

What Is FSD? (Level of Autonomy)

In the levels of autonomy, Tesla's FSD Beta is a driver assistance (DA) feature. The aspirational plan is for this software to evolve into an autonomous drive (AD) system, but it is far from there now. Tesla has bright minds working on the problem and enthusiastic drivers providing them with the data they need to continuously improve the system, but right now, it is still a DA system and the person behind the wheel is fully responsible for the actions of the vehicle. 

Tesla has not announced plans for a Level 3 or Level 4* product. They plan to go from Level 2 (driver assist) to Level 5 (robotaxi).

* Level 4 would be perfect for The Boring Company tunnels. This controlled environment would be much easier for an AI pilot to master than the above-ground real world. This could likely be deployed years before a Level 5 system.

If It Doesn't Drive Itself, Why Is It Called FSD? 

If you really still need this question answered, you must have skipped ahead; the answer is there above, but that's okay; I'll summarize it here. Tesla has a goal of making a robotaxi. This is an early version of that software, it does not fully work yet. This early version works some of the time, under some circumstances. This is a beta version of the software. 

What About the Sea Monkeys?! (I only came here to talk about them)

I hear you saying, "Sure, hoverboards don't hover and sea monkeys are not monkeys, but I don't put my life in their hands! I don't let them drive on city streets where pedestrians are crossing. Other drivers have not opted-in to allow Tesla test beta software on them." That's true, but you didn't opt-in for the distracted driver, the drunk driver, the person with broken taillights. So rather than fear-mongering, let's look at the data. Tesla's are the safest vehicles on the road; they have fewer crashes per million miles than the average vehicle and their statistics in Autopilot mode is even better than when they are solely human-driven. They are not accident-free, but if that's the standard, there wouldn't be any cars on the road.