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_PATH
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. - run
git submodule update --init --recursive
to pull submodules - Build the program:
Optionally, to compile on all cores (make sure you have sufficient RAM!)
make
make -j
- Do not run
cmake
,catkin_make
,rosbuild
.
Run ./bin/vector_display
--maps_dir
Directory from which to load maps. Default is "maps", which is a submodule ofvector_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 inmaps_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).
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