By Dr. Lance B. Eliot, the AI Insider for AI Trends and a regular contributor
Suppose that someone gave away their software for free. Are they crazy? Not really. We all know about software “freemium” models nowadays, whereby a software application is made available for free and the trick to monetizing the giveaway involves either posting ads and making money from advertisers, or making money by having the user be willing to purchase add-ons, such as buying additional elements or even lives in an online video game. But suppose they are giving away the actual source code of the software. This is the stuff that is used to actually produce the software application. With the source code, you can essentially make your own software application and do so without much added effort.
Is giving away the source code to software crazy? Some believe it is. Why would someone give away their source code? Believe it or not, in many cases it is done because the software producer is altruistic and genuinely thinks that software should be freely available to all. There are some proponents of open sourcing of software that earnestly have the view that all of mankind would be better off if all software source code was openly available. These do-gooders have a viewpoint about the world that can be difficult for those that are more capitalistic to readily fathom, and often rally around a moral philosophy or a political agenda as the core rationale for open sourcing software.
There are other more economic motivations for open source software too. One perspective is to make available source code to kickstart a marketplace, and then become an expert in that marketplace that can charge for providing advice about the software or by making add-ons to it. This is akin to the freemium model. Yet another approach is sometimes done by academics that want to provide a springboard for research and make advancements in some area of software development. Unbeknownst to those outside the inner realm of the computer aficionados, open source has been a significant niche since nearly the start of the computer era, including the popular operating system known as Linux and the popular web server known as Apache. Google has particularly made open source a known aspect to the masses via their Android operating system, and Microsoft has been brought toward open source, albeit kicking-and-screaming due to the outcries and demands of the marketplace.
What does it truly mean to declare that source code is indeed open source? There is a lot of variability on the matter and some “open source” is actually not very open sourced, meaning that the maker might claim it is open source but they then put tons of restrictions on the licensing aspects of the source code. This is a bit of trick to pretend you have something that is considered open source when in fact it is not. More official definitions of open source say that to be true open source the maker must abide by particular distribution requirements.
The Open Source Initiative (OSI) has a relatively “standardized” definition of open source that commonly is accepted and consists of ten requirements:
- Free Redistribution – no royalty or other fees, no restriction on selling or giving away the software
- Source Code – source code must be included and cannot be obfuscated
- Derived Works – must allow for modifications and derived works, must abide by free original terms
- Integrity of The Author’s Source Code – must not hide who the source code originally came from
- No Discrimination Against Persons or Groups – cannot restrict certain persons from use
- No Discrimination Against Fields of Endeavor – cannot restrict from being used commercially
- Distribution of License – cannot require added licensing and nor require a non-disclosure agreement
- License Must Not Be Specific to a Product – cannot embed it into something else that does have restrictions, the original openness must be maintained
- License Must Not Restrict Other Software – cannot force non-open source to become open source simply due to including this open source
- License Must Be Technology-Neutral – cannot make the license dependent on a specific technology
This background about open source takes us to the juncture of being able to discuss open source for self-driving cars. There are currently only a handful of bona fide efforts to push toward open source for self-driving cars. These fledgling efforts each have their own motivation. Though it might be nice to think that we are potentially going to produce a full open source model for self-driving cars, I would say it is quite unlikely. As will be explained next, there are lots of reasons that it just isn’t going to happen.
Allow me a moment to emphasize that I don’t want to crush anybody’s dreams, but as you will see there is not going to be sufficient momentum and commitment to produce a fully viable open source self-driving car. Ouch! I know that my assertion hurts for those that are putting their soul into trying to get an open source effort off-the-ground, so to speak, and really my heart does go out to you all. In short, sadly, the odds are not in your favor.
Let’s take a look at the three most prominent open source self-driving car attempts: (1) Openpilot, (2) Udacity, and (3) Autoware.
Openpilot has the most chances for some commercial success, but I am anticipating it is going to ultimately peter out and other than offshoots it is not going to be producing a true open source self-driving car. Udacity is an interesting exercise in trying to crowdsource a self-driving car and it will provide a great learning opportunity for many future self-driving car engineers, but it is not going to get us to a true open source self-driving car. Autoware is a handy academic approach and will provide fodder for research and development, but it is not going to get us to a true open source self-driving car. So, these three major efforts are all interesting and valuable as a means to understand what it takes to craft a self-driving car and yet none will get us toward a working, on-the-road, Level-5 self-driving car. I am willing to put down money on a bet that my predictions will be correct.
Openpilot was started by George Hotz and gained a lot of splash with his efforts in 2016 and 2015. He originally was going to be an upstart to create a self-driving car that would overtake the efforts of Google’s Waymo, Tesla, and everyone else in the self-driving car maker space. He boosted that he could use his hacker skills to produce a self-driving car in a fraction of the time and effort that the big guns were doing so. This bluster was brought to the test when he was questioned by the government about meeting self-driving car regulations, which he then tried to fight by claiming they were trying to squash the little guy. He then shifted his business model and decided to make his efforts open source. He says it was to get out from under the thumb of regulations, while others say that he was going nowhere on his self-driving car efforts and would not have been able to meet his bold claims. His stated hope is to become the Android of self-driving cars via his open source efforts. A laudable goal and one that could also bring great commercial success, if it can be pulled off.
His approach consists of providing an open source hardware device called Comma Neo, which provides various sensory capabilities for a self-driving car and is based on the use of an Android phone. It is intended to be mounted where your rear-view mirror sits. You can build the device from the specifications provided by Hotz’s project at Comma.AI or look at Github. Some have already done so and created attention for example at the Consumer Electronics Show (CES) in Las Vegas at the start of 2017 (see my coverage of the CES show). Supported cars are currently just the Acura ILX 2016 with AcuraWatch Plus and the Honda Civic 2016 Touring Edition.
The mass media press continues to blindly tout this effort by Hotz as being a self-driving car, but even he openly admits that he has not provided something that can turn your car into a self-driving car. The Openpilot software, available at Comma.AI or Github, provides a lane keeping assist and an adaptive cruise control capability. This not the same as a Level-5 self-driving car. Not even close. They urge that drivers realize that the driver of the car still has the responsibility for driving the car. He defends his open source capabilities as being on par with what Tesla has been providing, and so in that sense one can certainly understand his claims. The mass media press has been as wrong about what Tesla’s cars can do as they have been about what self-driving cars are all about.
Udacity is known for wanting to democratize education. They launched their self-driving car “Nanodegree” certificate program to help educate engineers on what it takes to create a self-driving car. Via the use of hundreds or perhaps even thousands of students around the world, they offer an educational program that aims to also produce an open source self-driving car. According to Udacity, since programmers can contribute to applications like Linux and Apache, why not also contribute toward the future of automotive technology too. Opting to buy a 2016 Lincoln MKZ, Udacity has outfitted their one car with some Velodyne VLP-16 LIDARS (see my piece on LIDAR technology), a Delphi radar unit, cameras by Point Grey Blackfly, and other components.
Taking a novel approach to this effort, Udacity has been issuing contests or challenges to get students to contribute source code to the open source project. Aiming at a Level-4 self-driving car, this effort acknowledges that it is not striving for a Level-5 at this time. The first contest consisted of asking students to design a mount for the Udacity provided cameras. Doing so would reduce the noise in the data collected from the cameras, which otherwise were susceptible to the bumpy motions of the car. The next challenge consists of using a neural network for deep learning to predict steering angles. This is all great stuff, but I think you can see that it is like trying to build a self-driving car one itty bitty piece at a time, and doing so by hit-and-miss of whomever happens to want to contribute to the effort. As I say, a wonderful educational experience and goal, but not the likely way to actually produce a self-driving car anytime soon.
Autoware is an academic effort aiming toward open source for a self-driving car, and the project is being led by researchers at Nagoya University and Nagasaki University in Japan. They have chosen to use a ZMP Robo Car that is based on the Toyota Prius. Considered a prototype system, it uses Velodyne LIDAR sensors, Point Grey Ladybug and Grasshopper cameras, Javad RTK sensors for GPS info, and so on. In many respects, this is really more about advancing algorithms for autonomous driving, rather than producing a commercial product that can be sold into the marketplace.
Why am I so seemingly doubtful about anyone being able to successfully bring to fruition an open source version of self-driving car? My reasons are manifold.
First, there is an “arms race” effort now underway to get us to a true self-driving car. You can only compete in that arms race by having incredible focus and determination. Most open source projects tend to be lackadaisical. Those that want to contribute do so, and often are just doing it as a side hobby. Trying to move forward as rapidly as possible on a new innovation does not occur by happenstance.
Second, this is a life-or-death kind of open source project. Most open source projects involve aspects that aren’t going to kill you. The source code that controls a multi-ton car or truck has the potential to harm you and others around you. Are you really willing to entrust your self-driving car to some open sourced software that had contributors by anyone that wanted to do so? Imagine if you knew that the braking system for the self-driving car was written by a teenager that wrote the code while also doing their algebra homework in high school.
Third, related to the life-or-death topic, the open source software for a self-driving car must have in-depth attention to safety. If you look at the average programmer and how they code software, safety is usually the last on their list of considerations. Most programmers don’t know how to code for safety. They tend to disregard safety issues. The focus is usually to get the “meat” of the system done, and then come back around later on, if they have time, and add some code for safety purposes. For a self-driving car, this is the opposite of what should take place. Safety needs to be at the core, and everything else is added around it.
Fourth, the amount of software needed to fully provide a true self-driving car is huge. Efforts like Openpilot are only scratching the surface of what a self-driving car does. Doing a lane following approach is extremely simple in comparison to the full features of a proper self-driving car. The magnitude of the software, and the complexity, will make it hard and likely futile to have volunteers around the world that can put this together. You need a focused and master minded organized collective to do this.
Fifth, the money to be made right now is for software engineers that have self-driving car software skills to be working at the known auto makers and for-money research outfits. Finding skilled software developers to do self-driving car software of any kind, whether open source or not, can be nearly impossible. The ones that are doing open source tend to be wanna be’s, rather than actual working and professional software developers for self-driving cars. Those with the right skills are already working 50 to 60 hours per week at Waymo, Uber, Tesla, Ford, Nissan, and so on. They don’t have the bandwidth to be putting effort toward a free-oriented open source project.
If I were you, I wouldn’t bet on seeing a self-driving car that was built via open source. Even if it was somehow accomplished, I would have serious doubts about being a passenger in such a car. Though open source is a wonderful concept and at times a beneficial contribution to society, the notion of open source for a commercial version of a self-driving car is doubtful. I am sure we’ll have various research oriented open source instances for self-driving cars, and in fact many of those might spring forth new innovations in the self-driving car realm. For those reasons, yes, please do continue the open source efforts. We can use whatever venue possible to push ahead on self-driving car technology.
This content is original to AI Trends.