Skip to content

Latest commit

 

History

History
57 lines (35 loc) · 2.45 KB

README.md

File metadata and controls

57 lines (35 loc) · 2.45 KB

argus-autoronto

The GUI project for aUToronto self driving car, and the course project of team RED for AER1514 Mobile Robotics Winter 2019.

Team RED

Names in alphabetical order:

System Diagram

Note: we've abandoned a Unity based approach in favor of the following new approach:

System Overview

Diagram created with Draw.io

Components:

  • rosbridge-xviz-connector: A data proxy server that read from rosbridge-server and serves data in XVIZ format, which is a opensource protocol from Uber to stream/visualize autonomy data.

  • GUI: A web UI based on Uber's streetscape.gl which is specialized to visualize data in XVIZ format. Right now we are using the demo example from streetscape.gl with some minor changes.

  • Map Tile Server: A map tile server that reads local OpenStreemMap data files and serve map images to the GUI.

Build and Run

Note: If running from a VM, make sure to enable 3D acceleration for it's graphics setting.

  1. Follow the steps (1, 2, and 4) in rosbridge-xviz-connector to start the neccessary services.

  2. Start the GUI

    For best performance, use cd gui && yarn build to build the webpage into gui/dist/ folder and then open gui/dist/index.html with a browser.

    Or optionally, use the following step to run a dev server for easier debugging:

    cd gui
    # please run yarn install before the next command to download dependencies
    export MapboxAccessToken=<your mapbox token>
    
    # to run the dev server with debugging capability:
    yarn start
    

    A browser window will automatically open and connect to the server from step 1.

  3. In developement/simulation mode, play the rosbag to start piping in data, e.g.

    rosbag play /mnt/hgfs/argus-autoronto/project-data/_2019-01-18-15-19-31_public_roads.bag
    
  4. After starting the rosbag, if the UI is not updated, refresh the browser window. Since some rosbag recordings are very short, be sensitive to the timing of refresh and play.