Trickery

    I've been driving my Tesla Model 3 for about 15 months now and it's the best car ever. It's amazing. I love it. And Autopilot is a not-small part of that amazingness. However, I'm going to get a bit picky here. I'm not a fan of the nag. Let me explain.

    Tesla's Autopilot is officially a "driver assist" system, NOT an autonomous driving system (as of 2020 January). It's already a better, safer, more reliable driver on highways than I am and it's unbelievably convenient so I use it every day, but it's not a full autonomy system. And therefore, to ensure safety, we need some way of monitoring the driver and knowing that they are paying attention to the road and the car and that they are ready to take immediate control of the car in the event of an emergency any time Autopilot is engaged. And if the car determines that the driver is not paying attention, the car can "nag" the driver and then disable the driver assist functionality if need be.

    Tesla decided a long time ago that the driver physically keeping their hands on the steering wheel was a reliable indication of driver attentiveness. I disagree with this assumption. I can have my hands on the steering wheel and my eyes closed, or my attention elsewhere. So this foundational premise is seriously flawed. Additionally, the way that Tesla measures hands-on-the-wheel has some major problems. Tesla measures hand contact by measuring torque on the steering wheel and looking for "disturbances" that presumably come from the driver's hands. This solution is also fundamentally flawed because when I have my hands on the wheel I typically have BOTH hands on the wheel and my hands are closely following Autopilot's motions. That means the weight of my arms is minimal to begin with, and then the weights of the two arms on opposite sides of the steering wheel cancel each other out and no torque disturbance is sensed by the steering system. So in practice, when I'm driving along the highway with Autopilot engaged, with both hands firmly placed on the steering wheel, watching the road and the car constantly, the car is beeping at me every 15-20 seconds instructing me to put my hands on the steering wheel because it can't sense them there. In order to satisfy this nag I then have to apply an asymmetrical torque to the wheel for several seconds at a time; just enough torque for the car to sense a disturbance but not enough torque to disengage Autopilot. Which is a completely unnatural thing to do. So this frequent interruption and requirement of unnatural behavior actually distracts me away from the proper supervision of road conditions and proper operation of the car, instead of ensuring I stay focused on the car and the road as intended.

    General Motors appears to have a much better solution. GM's Super Cruise system has the same problem to deal with: it's a driver assist system, not a full autonomy system, so it needs to constantly monitor and ensure driver attentiveness. GM chooses to monitor driver attentiveness by placing an RGBD camera in the steering wheel, facing the driver, watching the driver's face and eyes, ensuring that the driver keeps their eyes pointed at the road ahead. It does not require that the driver keep their hands on the wheel. I like this solution a lot more. It's a much more direct and (I expect) reliable indication of driver attentiveness and it doesn't require unnatural behavior that can actually distract the driver away from the road. Here's a quick video comparison.

    So almost as soon as I bought my Tesla Model 3 I decided to defeat the Autopilot nag. The ideal solution would be something un-intrusive, invisible, automated, and reversible (since I imagine the Autopilot nag will go away someday). I thought very briefly about tapping into whatever signal indicated steering wheel torque and injecting noise there, but I quickly decided that that was a very bad idea. Seriously, that's a really bad idea. Don't even attempt that. There are so many things that could go wrong, potentially resulting in losing control of the car. A much easier and safer option was to simply produce the mechanical disturbance that Autopilot wanted via some automated means. I thought about connecting a motor to the steering wheel and energizing that with a known torque every few seconds, before realizing that the required motor would be large and noisy and obnoxious and I would have to develop control hardware and software and I just wanted to not have to wobble the steering wheel constantly. I read about other people hanging weights on their steering wheels (water bottles and oranges and what not), which provided a constant torque input, but those didn't appear to be reliable and certainly weren't convenient or unobtrusive.

    After a bit of thought, I looked at the steering wheel and noticed the small gap between the rotating steering wheel and the stationary steering column. Just slightly more than 1/8 inch wide. Maybe I could use that. The steering wheel moves when the car drives on Autopilot. It's still mechanically connected to the steering system. So there's relative motion across that 1/8" gap. An object jammed into that gap would create friction, perhaps enough of a torque disturbance to satisfy the Autopilot nag. And I had some two-part urethane left over from previous projects.


    I drew up the part I wanted, 3D printed a mold for it, and pumped urethane into that mold. After a few iterations, I produced this little object. It's about one inch square, about 3/16" thick, and it fits perfectly on the top of the steering column, jammed into that little gap. And it's about 80% reliable. Whenever you want to use it, you just stick it in there. You take it out when you're done. The car drives, Autopilot steers, the steering wheel turns, and the chunk of rubber produces friction that Autopilot interprets as hand on the wheel. It's not perfect. It slides out after extended use. Every 10-20 minutes you have to push it back into place. And it doesn't work reliably on road trips. On long Interstate straightaways the steering wheel isn't turning much and so no torque disturbances are produced. This really limits its usefulness. And so after about a year I decided to improve my solution.

    As I mentioned, other people have defeated the Autopilot nag by simply hanging objects on the edges of their steering wheels, producing an approximately constant torque offset using gravity. Autopilot seems to be perfectly happy with this. So I decided to pursue this solution, though a bit more elegantly than with water bottles jammed into the steering wheel. I put together a system to directly measure the applied torque on the steering wheel and then I went for a drive. After about an hour of testing, it looked like it takes between 0.3Nm and 0.45Nm of applied torque to satisfy the Autopilot nag. Closer to the low end of that band most of the time. Knowing that, all I have to do is construct a weight that fits onto the steering wheel and produces that much torque.


    I went through quite a few design iterations before calling it good. I optimized the part to fit neatly around the outer edge of the steering wheel (at the greatest possible radius, which minimized the required weight) and I used a four-bar clamp to grip the steering wheel tightly without scratching it. The final product works beautifully. It's small, lightweight, and effortless to use.



    That's it. That's the whole solution. Just a chunk of metal that clips onto the steering wheel. This does not in any way improve Autopilot's performance. It does not turn Autopilot into a fully autonomous system. I still have to maintain uninterrupted supervision of the car and the road. But I do argue that this solution improves driver safety (and of course driver convenience and comfort) by eliminating a sub-optimally implemented feature that is ineffective in theory and counterproductive in practice. Over the past few weeks of use, the weight has worked perfectly. Most of the time it sits in my cupholder. When I get onto the highway and engage Autopilot, I snap it onto the steering wheel. I keep my eyes on the road, my hands rest comfortably in my lap, and Autopilot never nags me to take my focus off the road in order to wiggle the steering wheel in a specific way. When I do need to intervene and take manual control of the car, the clip doesn't inhibit my ability to do that. It's terrific. I can't wait until this experience is standard for all Autopilot users.

Comments