-
Notifications
You must be signed in to change notification settings - Fork 8
Home
Graph Navigation !
Install apt dependencies:
$ sudo apt-get install -y liblua5.1-dev clang valgrind libeigen3-dev
$ sudo apt-get install g++ libqt4-dev cmake libpopt-dev
$ sudo apt-get install g++ liblua5.1-dev libeigen3-dev libglew1.5-dev
$ sudo apt-get install g++ freeglut3-dev libncurses5-dev libjpeg8-dev libgoogle-perftools-dev
$ sudo apt-get install g++ libsuitesparse-dev libblas-dev liblapack-dev libopenmpi-dev
$ sudo apt-get install g++ libgoogle-glog-dev libgflags-dev libceres-dev libtbb-dev
Next, clone dependent repositories:
git clone https://github.com/ut-amrl/amrl_maps.git
cd amrl_maps && export ROS_PACKAGE_PATH=`pwd`:$ROS_PACKAGE_PATH
cd ../ && git clone https://github.com/ut-amrl/amrl_msgs.git
cd amrl_msgs && export ROS_PACKAGE_PATH=`pwd`:$ROS_PACKAGE_PATH && make
cd ../ && git clone https://github.com/ut-amrl/enml.git
cd enml && export ROS_PACKAGE_PATH=`pwd`:$ROS_PACKAGE_PATH && make
Now, clone this repository:
cd ../ && git clone https://github.com/ut-amrl/graph_navigation.git
cd graph_navigation && export ROS_PACKAGE_PATH=`pwd`:$ROS_PACKAGE_PATH && make
Note that these are ROS-build packages, as opposed to catkin packages. With the exception of amrl_maps which doesn't need to be compiled, ROS-build packages should be built by running make
in the root of the package directory. This also means the path that the packages live on need to be added to your ROS_PACKAGE_PATH
.
You can do this on a per-session basis with
export ROS_PACKAGE_PATH=`pwd`:$ROS_PACKAGE_PATH
as above, or you can add the following to your .bashrc to make it persistent
export ROS_PACKAGE_PATH=~/my_path/to/graph_navigation:$ROS_PACKAGE_PATH
export ROS_PACKAGE_PATH=~/my_path/to/amrl_msgs:$ROS_PACKAGE_PATH
export ROS_PACKAGE_PATH=~/my_path/to/amrl_maps:$ROS_PACKAGE_PATH
export ROS_PACKAGE_PATH=~/my_path/to/enml:$ROS_PACKAGE_PATH
You can run navigation by executing the binary. When in the root of the package
$ ./bin/navigation
and you can feed it parameters as well. For instance, to change the map
parameter to load a non-default map,
$ ./bin/navigation --map maps/UT_Campus/UT_Campus.navigation.txt
Note that many of these are parameters that can be configured via config_reader
. Please see navigation code for details.
Topic specifying 2D laser scans for local obstacle detection.
Topic specifying odometry information from the robot platform.
Localization topic. Could be /localization
for ENML or /amcl_pose
for AMCL.
Topic that is used to give the robot it's initial pose in the world
The name of the map to use for navigation. Should be a vector map, which in general is not the map that is output by gmapping.
This is the topic navigation listens to for retrieving a commanded goal in the map frame. The expected type is amrl_msgs/Pose2Df