/osi-visualizer

A tool to visualize OSI data from two different sources. Data can be stored in files and replayed afterwards, or validated using a Python interface.

Primary LanguageC++OtherNOASSERTION

OSI Visualizer

Travis Build Status

OSI Visualizer serves as a visualization tool for the current implementation of OSI (Open Simulation Interface) messages. It supports GroundTruth, SensorView and SensorData messages and allows the visualization of two independent data channels using different input types (file and network stream). For more information see the documentation here.

Usage

Use the configuration panel at the right (see Screenshot below) to load e.g. a OSI trace file for channel 1 at Playback and choose a port to which it will be send (here 5564). Select the data type SensorView according to the content of the file. After that enter into the IP field the localhost and into the port field the receiving port (here 5563) for channel 2 in the panel below at Connection. Select the data type it is expected to visualize (here SensorData). In this example an intermediary on localhost processes the data from the input file using a OSMP sensor model, transforms it into SensorData and sends it to port 5563.

Now you can click on play for channel 1 and 2 and you can visualize the communication between these two channels. Channel 1 plays the selected OSI input file scenario and sends out the OSI message to port 5564 at the same time. Channel 2 visualizes the received OSI messages at localhost at port 5563 showing it on the canvas (see demo screenshot below).

Installation

Environment and dependencies

Currently we recommend users to use the osi-visualizer under Ubuntu Linux 18.04 LTS. You can see a working development environment based on Ubuntu 18.04 LTS in the Docker file in the repository.

  • cmake (>= 3.5)
  • Qt (>= 5.5.0)
  • ZeroMQ (>= 4.2.1) OSI Visualizer needs to use ZeroMQ libraries to complete the socket communication between different sensor / traffic / scenario simulators. Note that the C++ Bindings are required as well.
  • protobuf (>= 2.6.1)
  • FMILibrary (>= 2.0.2)
  • OSI (>= 3.1.2)

It is often a good idea to first update the system using

$ sudo apt-get update && sudo apt-get upgrade && sudo apt-get autoremove

to ensure up-to-date packages.

You can install package dependencies using the provided install-deps.sh, and OSI and FMILibrary build dependencies using the provided build-install-build-deps.sh:

$ sudo bash install-deps.sh
$ sudo bash build-install-build-deps.sh

Build and run

$ bash build.sh
$ ./build/osi-visualizer

or just manually if dependecies are already installed:

$ git clone https://github.com/OpenSimulationInterface/osi-visualizer.git
$ cd osi-visualizer
$ git submodule update --init
$ mkdir build
$ cd build
$ cmake ..
$ make -j8
$ ./osi-visualizer