Skip to content
Snippets Groups Projects
Select Git revision
  • master default
1 result

README.md

Blame
  • README.md 6.47 KiB

    Lavizu: web-based visualisation for robots

    Table of contents

    Purpose

    Lavizu is a graphical user interface for ROS-based systems. IT aims at letting you easily build custom user interface components for your own needs, using the many libraries and tools available for the web, such as D3 and SVG for visualisation.

    Dependencies

    • NodeJS (for compilation)
    • NPM or YARN (for the dependency managment)

    D3 integration with React

    We experimented on how to make charts and diagrams that exploit the power of D3 but within the context of React. The challenge resides in both libraries wanting to modify the DOM (basically, the web page) at the same time.

    As an illustration of this experiment, you can compare a pure D3 line chart and a version integrated in React. To do so, install the dependencies of this repository, open a terminal and change directory to this folder. Then, type npm start (or yarn start, if you have Yarn). This will open a web page containing a few "tabs" or widgets, among which a line chart. This is the React integrated version of the line chart. To view the pure D3 version, go to http://localhost:3000/LineChart.html.

    Now, the main interest of these two versions, is to see how they are implemented. The code for the former is in the folder src/LineChart, whereas for the latter it lies in public/LineChart.html.

    Create a new widget type

    Lavizu has little value as a general purpose ROS tool, compared to the feature-rich [rqt][https://wiki.ros.org/rqt]. Actually, we do not intend to make a contender to rqt nor reinvent too many kinds of wheels. Conversely, Lavizu is meant to ease the creation of custom visualisation and user interface, thanks to the web technologies.

    Run in test environment

    We recorded a learning session so that the visualisation tool can be tested alone. To replay this learning session in a loop, run the following commend form this repository's folder:

    rosbag play --clock --loop test-data/rd-dai-1.bag

    Available Javascript Scripts

    This project was bootstrapped with Create React App.

    In the project directory, you can run:

    npm start