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
- Add the project directory to
ROS_PACKAGE_PATH:(Replaceexport ROS_PACKAGE_PATH=MYDIRECTORY:$ROS_PACKAGE_PATHMYDIRECTORYwith the actual directory) You can also add this to your~/.bashrcfile so that you don't have to do this every time you open a new terminal. - run
git submodule update --init --recursiveto pull submodules - Build the program:
Optionally, to compile on all cores (make sure you have sufficient RAM!)
makemake -j - Do not run
cmake,catkin_make,rosbuild.
Run ./bin/vector_display
--maps_dirDirectory from which to load maps. Default is "maps", which is a submodule ofvector_displaypointing to https://github.com/ut-amrl/amrl_maps--mapInitial localization map to load. This should be the name of one of the folders inmaps_dir, as we look for a map at:(maps_dir)/(map)/(map).vectormap.txt--edit_localizationcan be set to true to edit localization map (see below)--edit_navigationcan 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).
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
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
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.
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.
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.
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
