To me, one of the most exciting elements of this announcement is GMās plan to build a self-driving vehicle-focused test track.
Test tracks are a major obstacle to autonomous vehicle development in Silicon Valley, because the land is just so expensive, so regulated, and so hard to bundle together into a large parcel.
Googleās test track is a decommissioned air force base in the Central Valley, hours away from the Mountain View campus.
One of the big advantages of vehicle development in the midwest is the relative bounty of cheap, greenfield land.
The projects that I undertook were mostly distinct from the coursework. The three big projects I worked on were:
Lane Detection
Self-Driving Sumobot
This Blog
Lane Detection
The lane detection software was the most immediately gratifying of those projects.
There are a several free collections of road images online, or you could even create your own using a mobile phone in your car.
Then, using OpenCV and a sequence of Canny edge transforms and Hough filters and perspective warps, I was able too identify images on the road. If I were to do the project now, using what Iāve learned since, Iād probably also look at connected components algorithms and gradient contrasts.
This project seemed the most exciting when I started, but it turned out to be a little bit of a bust.
I bought a Zumobot from Pololu and began trying to program it to drive itself.
I got some basic driving maneuvers working, but I started this project too early in my robotics education and didnāt really know how to make progress. Eventually I kind of lost focus and never got back to it.
But with the background that I eventually picked up through further courses, I think I could go back and have a lot of fun with this project.
Blogging
I started this blog as a below-the-radar serious of posts, with the intention of just getting myself up to speed on autonomous vehicles.
I showed it to my little brother at one point, and he suggested publishing the posts more widely.
Friends had told me about how great Medium is for blogging, and Iāve been really happy that I moved my writing here.
Of these three projects, blogging is the only one I have kept up since starting my job on Fordās AV team. Itās fun, it keeps me current on industry news, and itās nice to get the constant feedback that people are reading and following what I write.
Iāve always found Rolls-Royce to be an intriguing car brand, simply because so few people purchase their vehicles.
I ran the math once and figured that Rolls-Royce makes so much money on each vehicle that they can offset the incredibly low volumes and still design amazing cars.
The RR answer is simply staggering in the extremism of its opulence and swagger. I witnessed it rolling in to the stage here in London this morning, and it felt like I was attending the inauguration of a giant cruise ship. Measuring nearly 20 feet in length (5.9m) and five feet tall, the Vision 100 dwarfs its occupants and nearby attendants in a way that even the grandest present-day Rolls-Royces canāt quite match.
Recently I outlined a short series of posts Iāll be writing about how I landed a job in autonomous vehicles.
The first part of that equation was coursework.
There are so many free online courses to take!
My background is that I have a pretty solid foundation in software engineering, including an undergraduate degree in computer science. But most recently my programming has been on the web, not so much in the machine learning and embedded systems areas that dominate vehicle software.
Here are the courses I took:
Artificial Intelligence for Robotics (Udacity): This is a terrific and super-fun introduction into self-driving cars by Sebastian Thrun. Thrun is both the founder of Udacity and also the founder of Googleās self-driving car project and also a former professor at Stanford. Taking the class is like being in the presence of greatness.
Machine Learning (Coursera): This class is really broad, covering supervised and unsupervised learning algorithms, as well as optimization and tuning. The teacher is Andrew Ng, who is like Sebastian Thrunās mirror imageāāāStanford professor, then founder of Coursera, now head of Baiduās self-driving car program.
Control of Mobile Robots (Coursera): This course is taught through Courseraās partnership with Georgia Tech, and covers the basics of control theory. It was especially helpful for me, as a computer science undergrad with minimal background in mechanical engineering.
Deep Learning (Udacity): This is a relatively short overview of the theory behind deep neural networks, with some practical programming exercises.
Deep Learning (NVIDIA): In practice, itās possible to get a lot of value out of deep neural networks with only a thin understanding of how DNNs actually work. Thatās because practitioners can get a lot of mileage out of deep learning frameworks like Caffe, Theano, and Torch. This course provides an overview of each framework, along with programming exercises.
Intro to Parallel Programming with CUDA (Udacity): Deep learning plays a prominent role in autonomous software, and deep learning is itself enabled by the massive parallelization that GPUs offer. CUDA is the parallel programming framework created by NVIDIA, and this course provides great background into how parallel programming works.
Underactuated Robotics (edX): This was by far the most math-heavy of the courses I took, owing to its target audienceāāāMIT upperclassmen. I confess that due to some family obligations I only finished about 2/3 of the course. But the course provides terrific exercises in how to model robots in the physical world. It also forced me to brush up on my advanced math.
All of these are fairly advanced courses. Some of the programming exercises are in C++, some in Python, many in Matlab.
For somebody with minimal software engineering background, I might recommend starting with some more introductory computer science and linear algebra courses.
But for somebody with my backgroundāāāthat is to say, a strong software engineer with no real robotics experience, I found these classes to be terrific.
About eight months ago, I decided to wind down my long-running recruiting assessment business, Candidate Metrics, and move on to a new adventure.
I knew I wanted to get a big win for my career and work in an area that was really exciting. Self-driving cars were a natural fit.
Unfortunately, the web developer + recruiting software salesman + entrepreneur role I had been inhabiting for five years was only marginally relevant to the world of autonomous vehicles.
So I went to work building up the skills and CV to transition myself into autonomous vehicles. This transition had three big parts:
From start to finish, the whole cycle took almost six months, although I was winding down my old business at one end and finalizing my job offer at the other end, so there were really only three months where this was pretty much my full-time job.
Since there might be other people out there excited about autonomous vehicles but without a masterās degree in robotics, or years of embedded software experience, Iāll spend the next three days diving into each of the line items above.
Also, news seems to be slow in the AV world this week and I need something to write aboutĀ š
It serves as a good overview of the OEMs and suppliers involved in the race to launch self-driving cars.
Toews covers several different sensor manufacturers, including those involved in Lidar, cameras, and computer chips. He also reviews software vendors in areas like mapping, machine learning, and security.
There are lots of nits to pick about parts of the ecosystem that he doesnāt coverāāāTier 1 suppliers come to mindāāābut that might have just been due to editorial space constraints. And overall itās a good overview of the industry.
Iāve been consistently impressed by the ability of the financial press to cover the autonomous vehicle space, and this is another example of their success.
The Michigan plate application is a significant milestone for the company, which made its public debut in January at the CES technology trade show in Las Vegas. Itās backed by Chinese billionaire Jia Yueting and has about 700 workers at a former Nissan sales office near Los Angeles.
Faraday Future has been testing āmulesāāāātest cars used to analyze powertrain and chassis systems before full prototype vehicles are developedāāāfor about a year now. The company told The News itās tested in its home state of California, as well as Michigan and other locations that it declined to reveal.
There is also this:
Faraday Future has no working prototype car, and a representative told The News that it canāt confirm a timeline for introducing one.
A few months ago, while I was beating the bushes for an autonomous vehicle job, I read yet another profile of the wunderkind George Hotz and his self-driving car startup, Comma.ai.
So I wrote him. Would he hire me?, I asked.
A few minutes later he replied, Can you come by tomorrow?
It was the fastest response I got from any of self-driving car companies I pursued.
And so I found myself sitting in the garage of the George Hotzās house and lab in San Francisco, brainstorming how to get an inexpensive, smartphone-based system to drive a car.
How much data would the video require? How could we train a neural network without labeling the data?
It was a lot of fun.
Shortly thereafter my job offer from Ford came through and I went in that direction, but I still have a lot of fondness for Comma.ai, and admiration for George Hotz, and appreciation for his willingness to give me a shot.
Commaās autonomous driver sounds like itās coming along nicely, and theyāre soon to launch their data-gathering program, so they can train those neural networks we talked about.
As Hotz says in the article:
Teslaās never going to sell aftermarket self-driving systems for Honda Civics. Thatās what weāre doing.
And I wish them a lot of luck and success. The world will be a better place for it.
Baidu recently announced that it will be releasing a mass-market autonomous vehicle by 2021, shifting plans from its previous stated intention of building self-driving buses limited to well-defined routes.
Interestingly, Baidu has invested in Uber, and has stated their interest in ride-sharing partnerships. They also claim to be testing their autonomous vehicles on the road in China already.
One angle of Baidu that is especially interesting to me is their employment of Andrew Ng as their chief scientist and one of leaders of their autonomous vehicle effort.
Ng has a lot of accomplishments under his belt for a 40-year-old. He earned tenure as a computer science professor at Stanford, he co-founded the online learning company Coursera, and he is now the chief scientist at Baidu.
I took Ngās machine learning course on Coursera, and it was terrific. Heās a great a teacher. But, as I understand that, he left academia behind to build production software at Baidu.
This is something of a trend. Googleās autonomous vehicle efforts were built by Sebastian Thrun, another Stanford computer science professor. Uberās autonomous vehicle program largely consists of buying out the professors and scientists at Carnegie Mellon Universityās vaunted robotics lab.
Itās rare for tenured professors to leave academia for industry, but itās happened a few times now in the autonomous vehicle industry. I canāt help but wonder if weāll see more.