Once the basic architecture was up and running, and could consistently control my Robosapien via the USB-UIRT, it was time to do some design brainstorming. What was it that I liked about the RS remote control? What didn’t I like? What features would I really want to see in a remote control?
I had some clues. For example, one of the European university websites mentioned that RS has 9 degrees of freedom. How could I show that on the control, and make it easy to control each degree of freedom? In thinking about that problem, I recalled how the Japanese Robot Battle competitors program their robots. They typically have their left hand on the robot while their right hand is typing commands into the computer keyboard. They get immediate tactile feedback at a gut level.That lead me to the idea that the controller image should map directly to the Robosapien itself – hopefully on a 1:1 basis.
After some consideration, I came up with the following design guidelines:
- Intuitive – in other words, the remote control function should provide a WYSIWYG type of experience.
- Logical – it should make sense at a gut level and not require a lot of analysis to use.
- Shallow – as much as possible one button press should evoke the behavior you want. Control and multiple key strokes should be minimized.
- Facilitate – it should help the user and anticipate their desires, not get in the way of them.
- Toy – Robosapien, after all is said and done, is a toy. The remote control should be toy like in terms of design, colors, and experience.
- Fun – If it isn’t fun, then no one (including me) is going to use it for very long.
With that in mind, I came up with this design -
(click on the graphic for a full size image)
Once I had the controls laid out the way I wanted them, it was easy to combine the design with the operational software. Using Visual Basic 6, I imported the graphic layout into a form, then created an image array with enough elements for all the buttons. Each element in the image array overlays a button image in the graphic. This makes it easy to do things like tool tip text hints for mouse-overs.
The end result: an extremely easy to use, intuitive, fun to play with, remote control for my Robosapien.
When I have a chance over the next week or so, I’ll put together a post covering the details of using an image array to simulate graphic buttons in Visual Basic.