The Inside Track on Firefox Development.

« Firefox Alive and Kicking :-P | Main | Extension Manager Changes »

March 13, 2005

Navigation Systems

Since this is more widely read than my other blog (which I almost never post to anyway), and since this is still tech related, here's a new piece on automotive Navigation systems.

Most Needed Features of Car Navigation Systems

I have a 2004 Infiniti G35 Coupe, with the factory Navigation System. It has a number of features that make it pretty good compared to some of the competition, especially the rare and generally abyssimal systems used in German cars. I like the large, well positioned screen, the 3D/Perspective "BirdView", the variety of colors. But that's about where my praise ends. It's a pain to program, you can't program it while you're driving, the system updates slowly, yadda yadda.

Recently, I test drove Infiniti's new midsize luxury sport sedan, the M45. The M45 has a vastly improved Navigation system, which may now be the best in the industry. Not a lot of attention is given to the system when the car is marketed, so it may be one of the best kept secrets on a phenomenal automobile.

What follows is a list of things I think are pretty important for car Navigation:

Large, well placed screen

Pretty much everyone fails here, except Infiniti, Volvo, and maybe a few others I'm forgetting. If you have to look down and into the console to see the nav screen as you're driving, you have lost. Generally, the further the driver has to take his or her eyes away from the road, the higher the risk of accident becomes. If the thing diverting the attention of the driver is complex - a set of instructions, arrows, radio controls, a cell phone etc - then the risk is increased. It should be obvious that the closer the command center screen is placed to the area the driver is looking usually, the safer and easier its use will be.

Given that the screen can't be placed over the field of view, and that the main gauge pack generally resides just below where the driver is looking, down and to the right seems best - and that's where Infiniti and Volvo have been placing them. Infiniti took this a little further with the Fuga concept, placing the "next direction" icon in a LCD in the middle of the steering wheel. Sadly this did not make it to production, but the clever split screen mode on the nav system seems to take care of this.

An accessible interface

Generally, joystick controllers aren't the best sort of interface to use, especially while the vehicle is moving. It's for this reason that Infiniti disables most functions on the nav unit in the G35s while the vehicle is in motion. The G35's main input device is a 8 direction joystick which also acts as an "Enter" button when pressed in. When combined with the fact that the car's console stack was designed for the Japanese market and so the stick is on the other side, it is a real PITA to use. Nissan seems to have learned this lesson and has compromised on putting the joystick in the center of the console for all its new models. The other problem with the multifunction stick is that pushing it directly in to activate the commonly used "Enter" command since the stick has a tendency to rock in a direction... it's especially difficult to press in on the button directly when you're in a US car with the stick on the wrong side of the console.

The M45 improves this situation in a number of ways:

  • the control interface is now in the center of the console stack (especially important as the car is much wider than the G35) the enter key is a discrete button in the center of the control stack
  • the back button is better labeled (with the familiar back arrow from web browsers!)
  • the car features a jog dial for simplified and smoother navigation through menu items
  • up/down and enter functionality is duplicated on the steering wheel via a scroll switch!
  • a comprehensive voice command interface is included.

The M45's voice recognition isn't quite artificially intelligent, you still need to feed it information in a structured way, but it's recognition is generally very good and it affords one important feature I have not seen on any other car:

  • You can enter an arbitrary address into the system while the vehicle is in motion.

Basically, you push the voice button and then say something like "Destination" / "California" / "Mountain View" / "Amphitheatre Parkway" / "Sixteen Hundred"

I've looked at other voice controlled systems from other manufacturers such as Lexus and Honda, and all of them limit what you can speak to the system to invoking specific commands or addressbook entries. Now tell me, what's the common case? That you want the system to take you somewhere you know, or to take you somewhere completely new? My experience is that it's always pretty much somewhere I've never been before.

The M45 does not offer a touch screen interface as the Lexus GS430 does - firstly because its high, visible placement puts it out of reach of the driver's hands (probably for the best - saves it from getting fingerprints) - secondly because it's not really necessary: the other input mediums are so good.

A flexible Search interface

The nav system knows exactly where you are. It should be able to do a much better job than it does in the G35 of locating things around you. If you're looking for a business, you're going to be using the Point of Interest function(*)... in the G35 unless your POI fits a predefined category, there is no way to find matching entries nearby. E.g. if instead of going through the theatrics of searching for Fast Food and then having it show nearby McDonalds, you just want to say Business: McDonalds (this involves fewer menus, fewer clicks and is thus better from a usability point of view), the system should scan its database and show you N results starting at the closest to where you are right now. N is some arbitrary number of results - significantly less than the total number in the State, which is what you get right now in the G35 if you don't manually enter the city you're searching within.

(* badly named, since you're hardly ever looking for a Point of Interest, most often a Business - it should be called "Business/POI" "Business/Location" or something that better emphasizes that).

... which leads me to my next point. As I said, the car knows where you are. So please, please, prefill not only State but City for POI searches! When you're looking for something without a specific address in mind, you're generally looking for something Nearby.

Optimize Also for Area Familiarity

Most nav systems UE design today is focused on providing a solution for users who are completely out of their element in the area they're in right now, and want to give up everything and let the nav system tell them how to get to their destination.

This does not really help the case when the user is somewhat familiar with the lay of the land, and is in the midst of a complex environment, such as the SF Bay Area where there is a myriad of Freeway choices. Depending on the time of day, the standard shortest distance/shortest time choice may actually be by far the worst.

Consider this example:

- I am headed to an event in San Francisco. I have the address of the venue but don't know exactly where it is. I am familiar with the SF Bay Area though, and its freeway system. I am between Menlo Park and Redwood City, roughly midway up the Peninsula. I am on a surface street. I am not familiar with this area. It is rush hour. I would like to get to the city, and then to my destination itself. If I stop and program my G35 nav it will want to take me to US101, which is a disaster at this time of day. What I want to do is get to I280. The problem is I don't know where the nearest entrance ramp is onto I280. I know of one further up in Redwood City off Woodside Road, but maybe this isn't the nearest to me. Since the nav system only lets me enter an intersection, I'm sort of out of luck.

What I want to do is say "Take me to I280" with I280 as the destination. The system should find the nearest intersection to 280 and direct me there. Once I reach that point I can read the final address to the system. This is a system optimized for someone with basic familiarity of the area.

Responsive UI

My testing with the GS430 showed there to be a slight but perceptible lag between pressing a hard or soft button and a response from the system. In particular the touch screen seemed set up to take slow, deliberate presses. I'm a software engineer. My fingers move lightly and quickly, and I expect the system to keep up. If your navigation system is going to employ a touch interface, make it (best case) adaptive or (worst case) user adjustable. Lag from hard buttons is inexcusable.

The G35's search UI had an awful habit of locking up for extended periods while it was loading the results list. This is also frustrating... the result you want should be in the first few entries depending on your search and the quality of the search engine - so having to wait as all of the fast food restaurants in California are loaded into a list is annoying.

No arbitrary limits

The G35 has a number of very arbitrary limits in its software design, some of which can be exceptionally frustrating. To wit:
  • The size of the address book is limited. This forces the user to have to worry about what things are important enough to go into the address book.
  • The search history is limited
  • I'm pretty sure the Avoid Areas function is limited in this respect too, but I can't recall since I've never actually used it.

Don't force the user to program anything

Users hate pre-programming things. That's why programming the system via voice while on the road is such a huge, huge deal. Making the user get out of their desired workflow (which in the car case is getting somewhere they really want to be) and deal with the inadequacies of your system shows that you have not done a good job. For this reason:

  • it should be possible to set and save "Avoid Areas" during the process of entering a destination. For example, when I set my destination to San Francisco, I should be able to at that time tell it not to take me on US101. And then save that in a "Avoid Areas history", so that next time I enter a destination it's there as one of the available options.
  • If you look at the way it works in the G35 today (and probably others, even the new M although I have not verified) - when you get the car you need to sit down and think about all the areas you might want to avoid... and then once they're set, they're pretty much in effect, even if US101 is only worth avoiding during rush hours and just fine later at night.

Intelligence

Real time traffic data such as that used by the Acura RL simplify tasks for the user by creating software that does what they want while requiring them to think less. This is a good thing.

In the absence of reliable traffic data, or at least in the presence of other factors, intelligence applied to results sorting for the listing interface is appropriate, e.g. identifying common avoid areas or routes used for specific start and end points, times of day etc, and pushing those up the relevance stack so that the car learns what its operator likes to do, and suggests those items more prominently, or simply does them without prompting.

Work with the User

I have sometimes described in this document several ways to accomplish the same thing - notably the two methods I used to avoid US101 in rush hour: firstly by telling the nav system to take me to an alternate freeway and then feeding it my final destination, and secondly by programming the nav system up front and having a smart Avoid Areas/Intelligence system to have it do the right thing for me. The key thing is to offer a seamless, simple experience to the user that integrates with their desired workflow.

A 3D view

We're used to 2D when viewing maps because well, we're reading maps. Maps are 2D because of the limitation of their medium - paper. The 3D/birdview is the superior view when driving because it more clearly shows you the relationship between streets, objects etc. and the direction that you're driving.

Attractive UI

This is 2005. Infiniti sets a high bar with the M45's brilliant anti-aliased gradient shaded graphics, 3D view, etc. I found the GS430's to be rather pedestrian. We should be able to expect to have at least high quality high-color 2D graphics from today's technology.

Summary

Why do I expect all of this? Because car nav systems are generally priced at $2,000 or higher, they're as costly as a high performance desktop PC - a desktop PC with software that is vastly more complex than nav system software, high performance graphics capabilities and network ability. If $2,000 is only going to get you navigation, it should get you navigation that is excessively usable.

Automotive Navigation is a topic that is of great interest to me, has been ever since I got my G35. I'd like a new M45 Sport (Umbria Grey/Bourbon with Tech-Sirius, Journey Sport, and hey Mobile Entertainment while we're at it - may as well also throw in the aero kit w/spoiler). Sadly while the car is a decent value I still can't quite stretch myself to buying one. I do however think I have a lot to offer when it comes to critiques on these systems, so would gladly take a car fitting the description above in exchange for ongoing analysis, feedback and UI ideas if any Nissan/Infiniti execs happen to be reading ;-) [email me at ben at mozilla dot org!]

Posted by ben at March 13, 2005 3:08 AM