A few years ago Dr. Trevor Jay and Chad Jenkins, two roboticists at Brown University in Providence, R.I., were trying to figure out how to create the best front end?the best user experience?for people who wanted to use robots.
Humans want to interact with robots using a graphical user interface, says Jenkins, associate professor, Department of Computer Science at Brown, and head of Robotics, Learning and Autonomy at Brown University (RLAB). ?We started talking about Flash because a lot of websites were [written] with Flash. Then we started talking about iPhone development and all sorts of things.?
Jay, who also works at the RLAB as a postdoctoral researcher, reminded Jenkins that most of the Web was driven by JavaScript, and that HTML5-type applications such as Gmail and Facebook were really JavaScript.
?That got us thinking that if we wanted to present a user interface to users of robots, maybe we could use the browser,? Jenkins says. ?Everybody has a browser; everybody has the Web in front of them. They?re used to interacting with the Web browser. Our main goal?since we?ve come to the realization of using the Web browser?is to make robot programming as easy as Web programming, through JavaScript and HTML5. You can use the same tools that you use to program your browser, or Web content, to make robots do things in the real world.?
A Bridge to Everywhere?
The pair is not alone in seeing how HTML5 could be a boon to those looking to expand robots? capabilities, while making them easier to operate. However, despite the language?s promise, some developers, such as James Lyne, director of technology strategy at the U.K.-based Web security firm Sophos Ltd., believe the latest HTML iteration still needs some work before it becomes an optimal robotics tool.
?HTML5 lets you produce rich Web applications like email clients and CRM clients and 3-D virtual environments. It also lets you interact with microphones and video devices to build really rich websites. HTML5 builds on the next-generation Internet and drastically improves the user experience,? Lyne notes.
Those attributes mean HTML5 should give robotics developers a lot more interoperability with devices such as webcams and microphones, and other devices that might be built into robots in the same way they are currently built into mobile tablets and smartphones, he says. ?If you extrapolate in that direction, the ability to build 3-D environments, you could build things like user interfaces and control systems in HTML5 Web applications so you could interact with robotics in HTML5 Web applications through the Web browser,? Lyne says.
Moreover, since HTML5 is richer than the previous version, roboticists could use it to develop something that interfaces with control systems and lets them control devices in the home using any number of Web applications. That?s because ?HTML5 is broadly supported, so it works on mobile devices, on tablets, on PCs, on Macs?it?s truly cross-platform, so it could be a good development language for user interfaces to those kinds of control systems,? Lyne says.
So what about the additional work that needs to be done before the HTML5 standard can fully support robotics interfaces? Specifically, what?s lacking is middleware that would enable robots to be seamlessly tied into a networked system, he says.
Lowering the Bar
But Jenkins begs to differ. Roboticists think at the operating system level, he notes. Thus, applications developed in ROS or Microsoft?s Robotics Developer Studio can handle the low-level tasks, while HTML5 becomes the easily connected user bridge.
As an analogy, Jenkins points to mobile apps. ?There are lots of people who are developing apps for the iPhone, and all of the applications are built on the low-level iOS. iOS is the actual operating system that runs all the Apple [mobile] devices, not the applications that go on top,? Jenkins says. ?If I want to make my nice tic-tac-toe application, or my nice crossword puzzle application, I don?t want to think about all those low-level details like interfacing with devices.?
So JavaScript and HTML5 provide a context where an application developer can concentrate on what he or she wants to do with a particular device, but not focus on controlling the actual device, Jenkins says. Moreover, ?What JavaScript and HTML5 provide people with is the ability to use robots and use your [developer?s] technology beyond your local environment.?
The little kernel of information that robotics developers need to know is that HTML5 has matured to the point, especially from a robotics perspective, that they can use it to do whatever they need to do, Jay says.