A Ride on Taiwan’s Self-Driving Bus

taiwan's self-driving busBy Philippe Z Lin

Do you think a self-driving bus running in a smart city is a futuristic ideal? Or do you believe that threats to connected cars are problems so far into the future that only Tesla drivers and researchers need to worry about them? The truth is, this future is a lot closer than you think.

The self-driving bus is now being tested on the streets of downtown Taipei. Taiwan’s self-driving bus first went on the road in May, but without passengers. The bus has officially moved to the next phase of its trial run from October to February 2021, which involves taking passengers, citizens, and foreign visitors alike. I was on this bus not too long ago, but before giving an account of my experience as a passenger, let me first introduce the bus’s mechanisms.

The electric bus, which is designed and operated by Turing Drive, is equipped with an HD map, GNSS (Global Navigation Satellite System) receivers, lidar (light detection and ranging) sensors, cameras, and radars. To enhance its driving safety, InVignal transmits real-time traffic light status information to the bus. Two V2X (vehicle-to-everything) roadside units were also deployed to alert the bus to potential collisions.  As an additional precaution and to ensure public safety, the bus’s maximum speed is limited to 20 km/h. While these devices allow the bus to drive itself, it is still manned by two service personnel: a driver (while the bus is self-driving, it is not driverless) tasked to override mechanisms if anything goes wrong, and an observer assigned to take note of unique events that might happen during each ride.

It runs a 12.3-km route on a bus-exclusive lane every day from 12:30 a.m. to 2:30 a.m. (0:30 to 2:30). Despite the off-peak hours, I had to wait seven days for a free trial-ride, because a lot of people also wanted to experience riding this self-driving bus.

When my ride day finally arrived, I found myself among other passengers waiting for the bus at its assigned stop. As you can see in the video, the driver did not need to hold the wheel for the bus to make it to the stop safely. I observed how the bus slowly came to a stop. 

The bus came very slowly at its stop.

Before entering the bus, the observer scanned my QR code. According to Turing Drive, this manual QR scanning system would be replaced by a different automated identification system when the bus is fully in service.  The observer role would also be removed as they are only meant to monitor the trial runs.

Once inside, the first thing I noticed was the big screen that displayed real-time parameters collected by lidar sensors, radars, and cameras, as well as a high-definition map displayed as white lines. 

Self-driving bus monitor
Figure 1. Monitor showing real-time parameters collected by lidar, radar, and cameras, along with the preloaded HD map

The bus runs on a Linux system that controls it via CAN (Controller Area Network) bus. The GPU (graphics processing unit) calculates and decides how to accelerate and brake. This system worked for the most part; however, the driver had to manually override it when we neared traffic lights because the communication system showed all red lights for the rest of our route. The driver would switch back to autopilot after driving past traffic lights. He joked that we were lucky since the system had been normal for a very long time before our particular drive.

In general, the bus accelerated smoothly, and it had no problem following the mostly linear bus lanes.  The braking system was also relatively smooth, but I could still hear gas pumps (or some type of actuator) hitting the brake in short and shallow spurts. As it was already midnight, we had the road mostly to ourselves. There were no other cars, pedestrians, or even stray animals crossing our path to really test the automatic braking system. The most unpleasant part of the ride for the passengers was the road bumps, which were more pronounced because of the slow speed.

Self-driving bus, passenger view
Figure 2. A view of the road from the passenger seats

Despite the speed limit, the bus only took around 15 minutes before safely arriving at the next bus stop.  All the passengers were given a bus ticket as a souvenir. My own experience was smooth, save for the hiccup with the traffic lights. I found that this was not always the case when I did further research —  there were rounds where the bus would suddenly hit the brakes after sensing cars on adjacent lanes.  

The testing period is meant to check for such issues, and we’re bound to see further improvements in the future. Turing Drive shared that they have already addressed the traffic light communication problem the very next day.

Right now, the bus is only cleared to drive during off-peak hours. The real challenge would be testing the bus on regular days and busy hours when the traffic is at its heaviest and pedestrians are crossing the streets. I look forward to my next ride and one day seeing it on the road during the daytime.

Here are some of the photos I took while on the bus, showing some of its mechanisms and my souvenir ticket.

Self-driving bus sensors
Figure 3. The bus has two lidar sensors (indicated by the yellow arrows) in front, in addition to several cameras

Self-driving bus's camera
Figure 4. One of the cameras on the bus

Self-driving bus RSU
Figure 5. The roadside unit (RSU).  Taiwan allows 5850 MHz-5925 MHz bands for DSRC and C-V2X

Self-driving bus souvenir ticket
Figure 6. My souvenir bus ticket

Security insights

Autonomous buses are being deployed in other places. For example, a self-driving bus in Hamburg, Germany is entering the second phase of its trial run that started in 2019, which means it will start carrying passengers as well. In Kitakyushu, Japan, a mid-sized self-driving bus is set to go on a test run from October to November. Meanwhile, in Toronto, Canada, a similar test will start in 2021 for a shuttle bus. No doubt, more countries have the same initiative in various stages of development.

For self-driving buses to navigate roads independently and safely take passengers from one point to another is an amazing demonstration. However, test runs are meant to reveal areas for improvement; it also allowed us to gain security insights into the system.

Our research into connected car defense solutions found that since it is a relatively new and uncharted space, the dangers are unknown and mostly speculated. Even though the bus is still in its testing phase, the fact that it is on the road could pull anticipated threats closer to the present.

Threats to connected vehicles involve some of the mechanisms that allow them to drive themselves and gather data from their surroundings. For example, a lot of research efforts have focused on the CAN bus component and its potential for transmitting malicious messages. Threat actors can also exploit potential vulnerabilities in the bus’s OS to compromise the system, abuse default system configurations, jam radio transmissions, or conduct man-in-the-middle (MitM) wireless data transmissions.

Thankfully, there is still time to make connected vehicles ready for the road and safe against cyberthreats. Manufacturers and developers can spend the present building security into the connected technologies that will run different types of smart vehicles, like these self-driving buses, in the future. For now, we can share our own general security recommendations:

  • IDS/IPS for CAN bus. These are network security systems that examine traffic flow to detect and prevent network attacks. IPS/IDS for CAN monitors the vehicle’s network for suspicious CAN messages by doing deep packet inspection.
  • Defenses for lidar and radar attacks. Research has revealed potential attacks on lidar and radar sensors. Self-driving models should be robust enough to prevent such attacks.
  • Measures to protect the OS. As I’ve mentioned earlier, the bus is operated by Linux and CUDA applications, so like any OS, it should be protected against threats.
HIDE

Like it? Add this infographic to your site:
1. Click on the box below.   2. Press Ctrl+A to select all.   3. Press Ctrl+C to copy.   4. Paste the code into your page (Ctrl+V).

Image will appear the same size as you see above.