Code Monkey home page Code Monkey logo

vector_display's Introduction

vector_display

Dependencies

  1. glog
  2. gflags
  3. Lua5.1
  4. Qt5
  5. ROS

You can install the dependencies except for ROS on *buntu using:

sudo apt install libgoogle-glog-dev libgflags-dev liblua5.1-0-dev qt5-default

For installation instructions for ROS, please consult the ROS Installation Wiki

Build

  1. Add the project directory to ROS_PACKAGE_PATH:
    export ROS_PACKAGE_PATH=MYDIRECTORY:$ROS_PACKAGE_PATH
    
    (Replace MYDIRECTORY with the actual directory) You can also add this to your ~/.bashrc file so that you don't have to do this every time you open a new terminal.
  2. Build the program:
    make
    
    Optionally, to compile on all cores (make sure you have sufficient RAM!)
    make -j
    
  3. Do not run cmake, catkin_make, rosbuild.

Running

Run ./bin/vector_display

Command line flags

  • --maps_dir Directory from which to load maps. Default is "maps", which is a submodule of vector_display pointing to https://github.com/ut-amrl/amrl_maps
  • --map Initial localization map to load. This should be the name of one of the folders in maps_dir, as we look for a map at: (maps_dir)/(map)/(map).vectormap.txt
  • --edit_localization can be set to true to edit localization map (see below)
  • --edit_navigation can be set to true to edit navigation map (see below)

...Additional flags can be discovered by running ./bin/vector_display --help (the block about flags from vector_display_thread.cpp are the most useful).

Editing a Localization Map

vector_display can be used to edit localization maps, which are used by EnML for localization. To edit localization maps, simply run vector_display with the edit_localization flag set to true.

When in map editing mode, Shift + Click + Drag will create a new vector line as a part of the map, and Ctrl + Click will remove an existing line. Creating a localization map is best done while running enml and playing through a bag file, so you can observe the long-term features enml picks up on, and add them to the map.

Alternatively, this manual editing can be used to clean up vector maps generated by nautilus (https://github.com/ut-amrl/nautilus) This map should include any consistent, long-term features the in the environment that are detectable by LiDAR

Note

When creating a new localization map, the suggested procedure is to create a new folder in the maps directory with the same name as the map, and then from the maps directory perform cp EmptyMap/EmptyMap.vectormap.txt (map)/(map).txt

Editing a Navigation Map

vector_display can be used to edit and create navigation maps, which are used by graph navigation (https://github.com/ut-amrl/graph_navigation) for high-level planning. These graphs look like a connected series of nodes and edges, and each edge can be given certain properties (although most such properties are not used in the actual planning yet).

To see an example navigation graph, try running vector_display with edit_navigation set to true while pointing to a map with an existing navigation graph, such as UT_Campus.

When editing a navigation graph, you will see the localization map as well, for reference. Shift+Click will create a new node. Shift + Click + Drag between any two nodes to create an edge between them. Ctrl + Click on a node or edge to delete it. Alt + Drag will move an edge or node.

Note

When creating a new navigation map for an existing localization map, you must first run, from the maps directory touch (map)/(map).navigation.txt to create an empty navigation map file.

Examples

Running with EnML

When running EnML(https://github.com/ut-amrl/enml) with the -d1 flag, visualization messages will be published, which will automatically be displayed by vector_display.

EnML Example

An example ROS bag recording of visualizations published by Episodic non-Markov Localization: https://drive.google.com/file/d/1xFRnl43OD2SQKTVB_t0nEv_48WumtSWT/view?usp=sharing

vector_display's People

Contributors

ashajain21 avatar corrievs avatar joydeep-b avatar kvsikand avatar loganzartman avatar trayveet avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.