A few weeks ago, I went to visit Roasting Plant Coffee (http://rbi.ims.ca/5698-513), a new kind of automated coffee shop in New York. At the heart of the store is a patent-pending system that automatically roasts, grinds, brews and handles the coffee beans.
Operating under the control of an industrial PC and a handful of Wago PLCs, this JavaBot system (http://rbi.ims.ca/5698-514) pneumatically conveys green coffee beans from bins to an automated roasting station, roasts the beans and sends them back to short-term storage bins. When customers place an order, JavaBot carefully meters the roasted beans and sends them, again in overhead pneumatic tubes, to an automated brewing machine that can make just about any kind of coffee drink you want.
A human operator does take your money, push a button to place your order and hand you the finished drink. But that's about it. JavaBot bids “arrivederci” to bad baristas.
What struck me about the JavaBot — other than the fact it makes very good, noticeably fresh coffee — is that the system points in the direction much of design engineering is heading. Like so many custom machinery projects today, the most difficult and time-consuming aspects of creating JavaBot involved software development rather than classical mechanical design work.
Don't get me wrong. The JavaBot's mechanical design works really well, judging from its speed (typically less than 30 seconds) and coffee quality. Its designers and builders did an impressive job at transforming industrial automation technologies and mechanical components into a compact, retail-friendly system whose overhead air tubes would turn Willy Wonka green with envy. JavaBot's mechanical systems, which were built by Dave Phillips of Advanced Design Solutions, performed as expected right out of the box, according to Mike Hodor, Roasting Plant's technology vice president.
With the mechanical design work going smoothly, the bulk of the development time involved fine-tuning the system's distributed control software — which controls the precision metering of the beans, the thermal profile of the roasting process, grinding consistency and more. Combine all the different varieties and blends of coffee and the types of drinks with all the individualized brewing, metering, grinding and roasting parameters and you wind up with a control system that has to account for “many thousands of variables,” says Matt Youney, principal of Youney Automation, the company that developed JavaBot's controls.
The JavaBot is just one case in which the difficulty associated with the software and algorithm development has surpassed that of the mechanical design. Design News' pages are full of other examples. For a recent one, consider Tartan Racing's Boss (http://rbi.ims.ca/5698-515), the winner of DARPA's Urban Challenge fully automated car competition. According to Tartan's technology director, Chris Urmson, the engineers on that project wrote more than 300,000 lines of code and focused on algorithm development in their successful bid to create a fully autonomous car. The car's mechanical systems, while not easy to design and build, “were better understood” and therefore more straightforward, Urmson says.
The growing role of software and algorithm development in custom machines, robots and other complex products raises an important question about what it means to be a design engineer. Is it enough to have a flair for mechanical design or will you increasingly be judged on your ability to write good code?