Industry Technology

Under the Hood of a Self-Driving Taxi, a Look at Computation and Other Core Self-Driving Car Systems

The objective of Voyage's self-driving vehicles is to deliver fully functional autonomous taxis within five years.

Introduction

Auto-pilot or self-driving is one of the hottest topics these days, especially granted the explosion of deep learning algorithms and neural networks. Influential entrepreneurs and companies are competing with each other to be the first to push this technology into its next phase. Recently Oliver Cameron, CEO of Voyage, who was the former Udacity Vice President, introduced his idea and explained a new possibility in self-driving systems. The objective of Voyage’s self-driving vehicles is to deliver fully functional autonomous taxis within five years. The innovative idea behind Voyage’s model is to add the autonomous capabilities to ordinary cars, without creating the vehicles from scratch.

The paradigm of a self-driving system can be summarized as sense, plan, and act (SPA). To be specific, the self-driving car senses the environment around it, plans the path from start to destination, and then acts or executes the path planned. To follow this paradigm, the car requires a complex system composed of hardware and software.

The Voyage Architecture

The hardware configuration of Voyage self-driving multi-sensor model is presented in Figure 1. Oliver introduced this architecture through three different fields, which are computed, power, and drive-by-wire it, respectively.

f1.JPG

Compute
The hardware of the Homer system, the first self-driving taxi by Voyage is listed below:

  • Gigabyte AORUS motherboard
  • Intel Core i7-7700K Kaby Lake Quad-Core 2.4 GHz processor
  • NVIDIA Titan X
  • 64GB RAM
  • 3TB SSD

This monster configuration utilizes Docker containers and the Robot Operating System (ROS) for quick prototyping of perception and motion planning and controls nodes in Ubuntu OS. Although Ubuntu is applicable for the real-time operating system (RTOS), which is very much a necessity for production of self-driving cars, it still can be a good tool to prototype and test the algorithm as rapidly as possible.

When a Voyage car self-drives on the road, data is acquired by the raw sensors, then processed by the ROS nodes, which are mini-programs running independently while interconnected to each other, and finally generate output signals to control the car through the drive-by-wire units. While on the road, ROS inside a Voyage car records data for every single second and store as a detailed log, which can be used to simulate the driving condition on a laptop instead of actual driving.

Voyage utilizes deep learning to detect the state of traffic lights, recognize obstacles, separate buildings from the road with scene classification, and compute steering condition from imagery in end-to-end networks. To accomplish these complex goals, Voyage prefers to use a NIVIDA Titan Xp as their backup.

Power

Voyage uses the same battery as the Ford Fusion does, but unlike the Ford Fusion Hybrid, the Body Control Module inside Voyage will not turn off the Power Distribution Unit (PDU) and the Linux Box by changing the factory configuration. Utilizing the FORScan, FTDI Chip-enabled OBD-II tool, Oliver claims that their engineers modified the original factory settings so that the auto-driving cars would never auto-shutdown again.

Drive-by-Wire

Consider a drive-by-wire kit as the interface between sensors and actuators. This kit is used to release the operational commands (steering, braking, etc) after the data is computed. The actuators mentioned here are the accelerator pedal, brake pedal, and steering rack. The actuator of the accelerator pedal in the drive-by-wire kit is connected between the pedal assembly and the Engine Control Module (ECM). Once the system is down, the potentiometers send 0-5 V signal to ECM; however, as the kit is enabled, a new signal is generated and sent to ECM.

Technical Review:

Voyage said their mission is to build an affordable point-to-point transportation solution for the world. Not sure the definition of “affordable”, but the hardware listed by Oliver is quite challenging to only run the software. Not to mention the price of NVIDIA Titan XP. Oliver needs to specify whether the hardware is equipped with a centralized control for all the taxis. Otherwise, if every self-driving taxi needs hardware units like this, it will cost a lot more than other auto-driving companies.

In the recent interview, Cameron stated that the main focus of Voyage is to retrofit existing vehicles with self-driving technology, unlike its potential competitors such as Uber, Ford, and, of course, Tesla. Currently, Uber has been repeatedly testing its robotic (not autonomous) taxis with the help of humans behind the wheels. Ford claimed that its fully autonomous taxis would be ready by 2021. Last but not least, Tesla planned to start the self-driving taxis without further information. It looked like Voyage wanted to take over the entire market as soon as possible, in case other companies would get into this field.

There has not been any information so far stating what autonomous level Voyage tried to achieve, but its goal is quite ambitious. It tried to operate its own self-driving taxi service entirely, which consists of creating a ride-hailing platform like Uber and Lyft, offering voice controls operated by the driver that gets the car going, control music, and make stops.

Having said that, self-driving taxi is a new idea in the market now. With the success of Uber, Lift, or any other car-sharing companies, there will be the possibility that a person purchases several autonomous vehicles and starts their own self-driving taxi company. All this person needs to do is to have their PC in front of them, and monitor the run-time data feedback and real-time car conditions. Sounds really fun!


Technical Analyst:  Joni Chung | Localization: Xiang Chen

0 comments on “Under the Hood of a Self-Driving Taxi, a Look at Computation and Other Core Self-Driving Car Systems

Leave a Reply

%d bloggers like this: