www.robotrambler.com | home | current projects | RoXI

© RoXI - Robot Extended Interface - (pronounced "rocks-eee")

[The Juggler] A juggler, or conjurer, who arranges on a stand
at a fair a certain number of objects and,
shifting them, connecting them, rearranging them,
achieves a certain number of effects".

- Italo Calvino, in 'The Castle of Crossed Destinies'.

|> Basic Features
|> Example Illustration
|> Command Formats
|> Preliminary Results
|> Demo Software Download

[05.2009 - RoXI is currently in development]

RoXI is currently being developed and tested in parallel with Project Roland - Robot Oliver.

<| RoXI Basic Features

RoXI is a Windows-based GUI for robot control and monitoring. It is written in Visual C#, using the Microsoft .NET Framework, and the (free) Express development tools. This framework includes a nice object-oriented language and IDE, and provides zillions of pre-built software objects, ready to harvest for useful purposes. A working demo of RoXI is available for downloading, see below.

  1. multiple robots - designed from the beginning to be able to control and monitor several robots simultaneously.
  2. RF networking - designed to use a common RF-link, such as Zigbee, which supports standard RS232 communications and multiple networked nodes operating on the same RF-channel.
  3. multiple windows - uses multiple windows which can be opened, resized, and relocated on the Windows workspace separately.
  4. control window - uses a common window for steering and control of all robots.
  5. monitor windows - uses a separate, resizable monitor window for each robot.
  6. uses a common Terminal Emulator window which controls RS232 communications to all robots.
  7. real-time video display - currently, this is a separate application program running under Windows simultaneous with RoXI, and which receives direct streaming video from a wireless camera located on the robot; see Oliver page for info on video hardware used.

On good design.

<| Example Illustration

Below is shown an illustration of a sample RoXI screen. Individual windows are:

  • main control and steering window (bottom-left) - a robot can be steered around interactively using a movable, colored 'steering puck' on the steering grid (left), or more simply using button controls (right); steering setting can either track mouse position, or be selected on mouse button-up.
  • multiple pucks can be used simultaneously to control more than one robot.
  • the same steering grid is also used to control pan+tilt servos (for aiming sensors, etc), where applicable.
  • Terminal Emulator window (top-left) - allows PC comport discovery, serial parameter settings, and shows communications with all robots over the common RS232 channel. Actual Tx-command data to Oliver is shown, including received Report data from the robot.
  • monitor window for robot Oliver (top-middle, dummy data shown) - screen is minimized to display only partial information, eg battery voltages and motor currents; all data displays are dynamic, and updated several times a second.
  • real-time video window (top-right) - video window is blank here, since Windows PrintScreen capture does not seem to catch video.
  • monitor window for robot Roland (bottom-right, dummy data shown) - screen is expanded to show more info, including sonar displays in both long-range and short-range formats, as well as RS232 comms.
  • monitor windows show only dummy data here; Terminal window illustrates actual data transmission. All windows can be resized and moved around independently.

    [shown half-size here; click for normal-size, orig 1280x800 pixels]
    [RoXI Demo Screen]

    Command & Parameter Settings.
    Next is an example display of the screen used to set display parameters for the Robot Monitor screens, and also for formatting command strings sent to the robots.

    Specifically, various windows allow linking command buttons to command strings in different formats, plus setting parameters for the Robot Monitor screen Bargraph displays as well as the graphical Sonar displays. In addition, the specific command strings for each case can be formatted, and sent to the Terminal/SerialPort for interactive testing. The screen illustrates the effects of formatting and sending a Test command ("S4\r") for the fifth Sonar device; results show up on the Parameters screen, as well as the Terminal and Robot Monitor screens. (note that the Sonar display is still simulated here, but the command formatting/transmission is actual)

    [shown half-size here; click for normal-size]
    [Parameter Setting]

    <| Command Formats

    The current version of RoXI uses a simple command format, where all data are sent via RS232 as ASCII characters - first is a command header character, then the robot address, then a command string, then a "single" databyte with up to 3 ASCII characters, and terminated by a carriage return "\r".

    • RoXI Transmit Format: "Q0S1\r", where "Q" signifies a RoXI GUI command, "0" is the robot's address (up to 8 robots can be commanded), and "S1" is the specific command (eg, request Sonar #1 range value).

    • Robot Response Format: "X0S1240\r", where "X" signifies response from robot, "0" is the robot's address, "S1" is a repeat of the command being responded to, and "240" is the data value.

    The format is designed so that multiple robots can be controlled and communicated with simultaneously using a single RS232 serial port, and Zigbee RF network. The Zigbee transceivers have on-board buffering and use a CSMA-CA (carrier-sense, multiple access - collision avoidance) protocol to prevent data collisions when RoXI or various robots transmit simultaneously.

    Later versions of RoXI will include more complex command formats, and hopefully will also include a hook to wifi.

    <| Preliminary Results

    [05.2009]. Initial results using RoXI are encouraging. It is fairly easy to steer a robot around, while also watching streaming video from the robot wireless camera in a window on the computer screen. Response time for command transmission after a 'steering puck' is moved has no noticeable delay. This is true even when the PC is simultaneously executing video capture and display while RoXI is running [Windows XP PC with 1.6-Ghz clock].

    A Tale of Two Chips. RoXI has been tested so far in commanding 2 remote controller chips, one an OOPic-II, initially used to operate Robot Oliver, and the second a custom chip used for R/C servo control. Some additional commands were added to RoXI specifically to command the servo chip.

    With the OOPic, steering control of Oliver is very sluggish. The OOPic cannot process commands fast enough, and especially when steered using the real-time "tracking" mode, commands are continually missed. Oliver will need a much faster processor for parsing and executing commands in real-time. In contrast, the servo controller chip is known from other circumstances to be able to respond in a few microseconds to servo move commands at baudrates to 115,200, and in this case, servo arm movements are essentially instantaneous with 'pan+tilt' puck movements on the steering grid. In these tests, the PC RS232 port was connected directly to the other chips, without the RF-link, and possible RF device delays, inline.

    Response time is still being tested, but so far, RoXI steering response time looks fast, and indicates the Windows .NET SerialPort object has suitably fast access to the comm hardware.

    <| Demo Software. Download a working demo: RoXI-Demo executable (250 Kbytes, 06/08/09) - note: this is a highly preliminary version of RoXI.

    • no installation procedure is necessary; simply download .EXE, and run.
    • many features of RoXI are implemented, and others are still in development; some debug info is shown on the screens.
    • demo requires a Windows-based computer with the .NET framework installed (should work with any WinXP machine; but has not been tested on Windows Vista).
    • RoXI was designed to work at display resolution of 1280x800 pixels, and is usable down to 1024x768, but displays are somewhat cramped at 800x600.

    NOTE - this program will probably not run correctly directly off the internet, and should be downloaded first before running. Be sure to use a virus checker whenever downloading executables.

    Feedback is welcome.

    contact: oric_dan12358@yahoo.com
    (remove the anti-spam "number" suffix from the address)


  • Dave Shinsle's Loki GUI - also Seeker

    <| TOP

    © www.robotrambler.com, originated April 2009