HyperPlan is a tool for automatic selection of a motion planning algorithm and its parameters that optimize some performance metric over a given set of problems.
It uses HpBandSter as the underlying optimization package.
Run the following commands:
sudo apt-get install python3.8-dev python3.8-venv
python3.8 -m venv venv
source venv/bin/activate
pip install --isolated -r requirements.txt
Build a recent version of OMPL.app
somewhere. Make sure that ompl_benchmark
is somewhere in the $PATH.
TODO
-
Install ROS Melodic and these build tools:
sudo apt-get install python-wstool python-catkin-tools
-
Check out the code:
export CATKIN_WS=~/ws_hyperplan mkdir -p $CATKIN_WS/src cd $CATKIN_WS/src wstool init . git clone [email protected]:KavrakiLab/hyperplan.git wstool merge $CATKIN_WS/src/hyperplan/hyperplan.rosinstall wstool update
-
Configure and build the code:
cd $CATKIN_WS catkin config --extend /opt/ros/$ROS_DISTRO \ --cmake-args -DCMAKE_BUILD_TYPE=Release -DCMAKE_EXPORT_COMPILE_COMMANDS=ON rosdep install -y --from-paths src --ignore-src --rosdistro $ROS_DISTRO catkin build
-
Source the workspace.
source $CATKIN_WS/devel/setup.bash
Below are some examples on how to run the command line tool to optimize for different objectives using different backends.
Find a planner configuration that optimizes speed of geometric planning:
./examples/speed.sh
Find a planner configuration that optimizes speed of kinodynamic planning:
./examples/speed_kinodynamic.sh
Find a planner configuration that optimizes convergence rate of asymptotically (near-)optimal geometric planning:
./examples/convergence.sh
Type ./scripts/hyperplan.py --help
to see all options. See the shared
directory for the result files. See the scripts ./scripts/analysis.py
and
./scripts/hyperplanvis.{py,R}
for examples of how to perform some basic
analysis of the results.
TODO
Using a docker image makes it easier to run multiple HyperPlan workers on the same machine. You can download a docker image of the version that was used for the IROS 2021 paper via these commands:
docker pull mmoll/hyperplan:latest
docker tag mmoll/hyperplan:latest hyperplan:latest
You can build your own hyperplan of the current version of the code like so:
catkin build docker-hyperplan
Check out ./examples/robowflex-docker.sh
for an example of how to use the Docker image.