Recreating navigation performance results in egoTEB: Ego-centric, Perception Space Navigation Using Timed-Elastic-Bands.
Note: If you encounter any problems, please create an issue. |
---|
- Install wstool and other system dependencies
sudo apt-get install python-rosdep python-wstool build-essential python-rosinstall-generator python-rosinstall
-
Navigate to the root of your catkin workspace
-
Initialize
wstool
workspace and download all packages
wstool init src https://raw.githubusercontent.com/ivalab/NavBench/master/ICRA2020/rosinstall
- Install any missing system dependencies:
rosdep install --from-paths src -i -y
- Compile and source the workspace
catkin build
source devel/setup.sh
- (Optional but recommended) Periodically check for updates to this demo:
wstool merge -t src https://raw.githubusercontent.com/ivalab/NavBench/master/ICRA2020/rosinstall
wstool update -t src
To run a single navigation experiment of TEB navigating in a room populated with random obstacles, run the following command:
rosrun nav_scripts gazebo_master_demo.py
By default, the simulation gui is hidden. To display it, set the argument gui
in navigation_test/configs/launch/gazebo_turtlebot_empty_room_20x20_world.launch
to true
. It is highly recommended to return it to false
before running the full benchmark (below).
A benchmark comparing navigation performance of DWA, TEB, and egoTEB can be run as follows:
-
Create directory
~/simulation_data
for logging test outcomes. -
(Optional) Set the number of concurrent experiments to run using the
num_instances
variable at the beginning of themain
function at the bottom of thenavigation_test/scripts/scripts/gazebo_master.py
file. For most systems, this should be left at 1. For reference, a 24 hardware thread Intel Xeon E5-2640x2 @ 2.50GHz (Single Core Passmark 1468, Multi-Threaded score of 14649) can generally run up to 3 concurrent experiments without issue. Overloading your system can negatively impact the experiments. -
rosrun nav_scripts gazebo_master.py
and wait for it to complete. If something goes wrong and the process does not exit cleanly, tryrosrun nav_scripts killall.sh
-
Replace
~/simulation_data/results_...
innavigation_test/scripts/scripts/analyze_results.py
with the full path of your results file.rosrun nav_scripts analyze_results.py
to generate a markdown table of results.
-
Download sample rosbag of prerecorded data from: ''' https://drive.google.com/file/d/10glIc6hyeFE1OTMfC8wrL3jjvh4lklRz/view?usp=sharing '''
-
Replace
[full path to]demo_rosbag_2020-05-30-17-05-50.bag
innav_scripts/scripts/launch/rosbag/rosbag.launch
with the full path to the downloaded rosbag -
Run timing demo
rosrun nav_scripts timing_demo.py