ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

Revision history [back]

I don't know how Savioke implemented their system. This response is about the general question of building robots controlled by nice UI's.

There are many valid approaches, and choosing between them is a trade-off between the required performance, allowable hardware integration time, cost, prior experience of the development team, etc. etc., so different approaches make sense for different situations. In general, the scheduling and performance needs of the UI will be very different than those of "the rest of the robot," which is why it's convenient to run them on separate hardware devices. Low-end tablets are crazy cheap now, so there isn't a big cost penalty anymore to having a separate processor driving the UI.

Integrating with a UX-centric platform like a tablet or any other random UI hardware gadget can be really tricky, since those all platforms will have their own (massive) software ecosystem, and depending on the platform, it can be hard to graft a ROS distribution onto it. I'd suggest having a look at Robot Web Tools, which sends ROS messages back and forth over standard javascript, so you can create user interfaces in a web browser. Then (ideally) you can point a web browser provided by the UI hardware (tablet/phone/kiosk/etc.) at the same web page, and you're up and running.

If you wanted/needed to use more Android-specific features, you can use rosjava to write native code, but then of course the UI will be tied to Android. Have a look at the android page on the wiki for some starting pointers if you want to go that route.