This is an old revision of the document!


Data Visualization CLient

The Data Visualization Client listens to a given ros topic for data_vis_msgs and displays them as a chart. Currently donut charts and bar charts are supported.

Example

This simple web site subscribes to the topic 'data_vis_msgs' and adds diagrams to the div 'chart'.

<!DOCTYPE html>
<head>
  <meta charset="utf-8">
 
  <script type="text/javascript" src="http://cdn.robotwebtools.org/EventEmitter2/current/eventemitter2.min.js"></script>
  <script type="text/javascript" src="http://cdn.robotwebtools.org/ColladaAnimationCompress/current/ColladaLoader2.min.js"></script>
  <script type="text/javascript" src="http://cdn.robotwebtools.org/roslibjs/current/roslib.min.js"></script>
  <script type="text/javascript" src="DonutChart.js"></script>
  <script type="text/javascript" src="BarChart.js"></script>
  <script type="text/javascript" src="DataVisClient.js"></script>
  <script src="http://d3js.org/d3.v3.min.js"></script>
 
  <script type="text/javascript" type="text/javascript">
    function init() {
 
      var ros = new ROSLIB.Ros({
        url : 'ws://localhost:9090'
      });
 
      var options = {
        ros: ros,
        containerId: '#chart',
        topic: 'data_vis_msgs'
      };
      var dataVisClient = new DataVisClient(options);
    }
  </script>
</head>
<style>
</style>
 
<body onload="init()">
 
<div id="top">
<h1>DataVis Demo</h1>
<div id="chart">
 
</div>
</div>
</body>

Make sure DonutChart.js, BarChart.js and DataVisClient.js are in the same directory as the html file and you run

$ roslaunch knowrob_vis knowrob_vis.launch

on your localhost. By now messages can be published to the same topic like this:

$ rostopic pub /data_vis_msgs data_vis_msgs/DataVis '
  {
    id: "idstring",
    type: 0,
    title: "some title",
    xlabel: "x",
    ylabel: "y",
    {
      value1: ["a","b","c"],
      value2: ["3","8","5"]
    }
  }
'

Type 0 means donut chart, type 1 bar chart. To update data in a already existing diagram simply publish the message again with the same id and new data in value1 and value2. The chart will update immediately.

To remove a chart, publish a message with its id and an empty array for value2.