Robot Home Page

RoboCar Control "Proxy" Communications


Telemetry data sent from the robots to the Interface Server is in XML format, and separated into "Messages" which are independent communication units. Using a Message packet allows the Robot data collection to be intermittant and time independent. The robot can connect and transmit a Message of any length at any time.

Each individual robot has a Java Control Proxy process, either on board or distributed on the network. These proxies communicate with the Interface Server Data Collector bean by sending packages of XML over RMI. The Robot XML Message packet has this format...


(We should make a DTD for t his, but English is useful too):

 			-- Required header


	-- Arbitrary comment(s)


		-- Message Packet

					--  id == Assigned Device ID

					--  time == transmit Device Time

					--    [mmm] == milliseconds


  <{Sample Set} time='mmm'>		-- Arbitrary sample data set

					--  [Sample Set] == sample name

  					--  t == sample Device Time

					--    [mmm] == milliseconds


    <{Data Set} {attr}='sss' [...]  />	-- Arbitrary data

    					--  [Data Set] == data type name

					--  [a] == Attribute name

					--  'sss' == attribute Value


     [...]				-- Multiple Data Sets


  			-- End of Sample Set


   [...]				-- Multiple Sample Sets



Example Message:

 

	-- From Device 1 at time yadayada

 			-- Output sample set at time -60 ms

  				-- drive data attribute velocity

  			-- turn data attribute heading

 					-- End Output Sample Set

 			--      ditto at time -40 ms

  

  

 

 			-- Input sample set at time -10 ms

  				-- Bumper attr switch settings

  			-- Battery attrs level and charge

  		-- Locator attrs ...

  				-- PIR data attr on/off

 					-- End Input Sample Set

				-- End MESSAGE

The MESSAGE time can be used to synchronize any offset between the Server's 'Absolute' time with the robot's internal Device Time. Using this offset the Sample Set times can be normalized before being stored.

In the Interface Server the Sample Set, Data Sample, and Attribute names will be combined into one unique Attribute Identifier for storage and eventual use or display.

Using this format, devices can create their own arbitrary elements of Sample Sets, Data Samples, and Attributes; and, transmit telemetry data to the Interface Server at any time. The Data Collector bean will calculate the normalized time for all the Sample Sets, create Attribute Identifiers for each new attribute, insert the data values into a database, and/or transmit them to an external client.

Users of the system may insert human readable names for all the attributes and devices, and define how the data values will be handled. The data can then be retrieved to a web browser for display or collected and analyzed by external processes.

Retrieved data sent to browsers will be in an XML table format, with a header that defines the meaning of each data field and a set of Records with ordered result values that match the header field definitions:

 			-- Required header


	-- Arbitrary comment(s)


				-- Telemetry data Packet


  				-- Header, defines record fields


    [Field Name]			-- Element information

     [...]				--  0....N


  				-- End of Header


  					-- Data Record


    [Value]			-- Element value

     [...]				--  0....N

    

  				-- End of Data Record


   [...]				-- Multiple Records



Example browser XML data:

 			-- Required header

				-- Telemetry data Packet

  				-- Header, defines record fields

    Device			-- Device ID

    Time				-- Normalized Sample Time

    Speed			-- robot speed

    Turn				-- robot turning direction

  				-- End of Header


  					-- Data Record

    ROBO1			-- Device ID

    1:20				-- Normalized Sample Time

    50				-- robot speed

    Left				-- robot turning direction

  				-- End of Data Record


  					-- Data Record

    ROBO2			-- Device ID

    1:20:050			-- Normalized Sample Time

    0				-- robot speed

    Cntr				-- robot turning direction

  				-- End of Data Record


  					-- Data Record

    ROBO1			-- Device ID

    1:24:000				-- Normalized Sample Time

    0				-- robot speed

    Cntr				-- robot turning direction

  				-- End of Data Record


This data may then be displayed as a table in a browser window, or further processed.