Homepage Index
about E*
building and running
documentation
Quick Links
NEW wiki and E* devkit
project summary
browse sources
browse documentation
download
mailing lists
|
E* Interpolated Graph Replanner
The E* algorithm is a path planner for (mobile) robotics. Unlike A*,
which constrains movements to graph edges, it produces smooth
trajectories by interpolating between edges. Like D*, it supports
dynamic replanning after local path cost changes. E* was originally
developed for a PhD thesis
(chapter 4) at the Autonomous
Systems Lab of the Swiss Federal
Institute of Technology in Zürich (formerly at its sister
institution EPFL in Lausanne). It is
written in C++ and provides a C wrapper for easier interfacing with
other systems.
----------------------------------------------------------------------
Copyright (C) 2004, 2005 Swiss Federal Institute of Technology, Lausanne
Copyright (C) 2005, 2006,2007 Roland Philippsen <roland dot philippsen at gmx net>
Released under the GNU General Public License, version 2.
----------------------------------------------------------------------
Building and Running E*
NEW: Try the E* Development Kit!
Go to the estar-devkit
page on the NEW Wiki and try that. Otherwise, keep
reading...
0. Get all Required Dependencies
-
Boost smart pointers and graph
library (download at Sourceforge)
-
Building from SVN requires GNU Automake, Autoconf, and Libtool. If you build a downloaded tarball, you do not need this.
-
Optionally (for the test programs) an OpenGL implementation. The
configure script should detect this automatically.
-
Optionally Doxygen
for generating the documentation.
1. Get the Source Code
You can get the cutting-edge version from the repository, in which
case you need GNU Automake, Autoconf, and Libtool (see
dependencies above). Or just grab a release tarball from the
download
page.
This project uses the Subversion revision control
system. The repository can be browsed
online on Sourceforge. Be
sure to only take the trunk/estar part if you're only
interested in the most recent sources, like this:
$ svn co https://estar.svn.sourceforge.net/svnroot/estar/trunk/estar
For more information on working with the Subversion repository, look
at the online
documentation available on Sourceforge.
2. Build
The easiest way build is with the build-stage.sh
script. If you do not have GNU Automake + Autoconf + Libtool,
you need to pass it the '-s' option to skip recreating build
files. otherwise, just go ahead:
$ cd estar
$ ./build-stage.sh
Which will "install" everything underneath the stage/
directory. Otherwise, if you want to install into
/path/to/somewhere you can use:
$ cd estar
$ ./build-stage.sh -p /path/to/somewhere
See the output of ./build-stage.sh -h for more options.
If you want to, the documentation can be generated with Doxygen, but if you downloaded one
of the estar-with-doc-* packages you won't need this.
$ cd estar/build
$ doxygen Doxyfile
Then simply point your favorite browser to html/index.html
3. Test
After building and installing, test programs will be either in
estar/stage/bin/ (if you built using build-stage.sh) or
in /path/to/somewhere/bin/ (if you configured and
installed manually).
The graphical programs are controlled using the keyboard:
- SPACE: Compute one propagation step.
- c : Continuous propagation, plot each step.
- f : Flush - Propagate all cells, then plot.
- q : Quit (and optionally write to file)
Main E* Test: test_estar_gfx
This program is a graphical test of E*. It expects the name of a grid
config file and runs the E* algorithm using the goal and robot
positions (indices) defined therein. You can use the -t
option to disable graphical output, in which case it makes sense to
also define an output file using -o filename in order to
capture the result (it simply writes resulting cell values in ASCII).
In the misc/ directory there are some grid config files
that can be used for test_estar_gfx:
grid-nhp-*.txt are grid definitions created
by Akin Sisbot at LAAS-CNRS for testing E* on his PhD results for a
human-aware motion planner.
grid-small.txt is a small hand-crafted grid
grid-hex-small.txt is a trial triangular mesh
grid... this is work in progress, triangular meshes are not yet
working reliably
Main PNF Test: test_pnf_gfx
With this program you can test the PNF algorithm, which is a planner
that takes into account dynamic obstacles and relies on E* to create
smooth navigation functions. See the documentation
section for more information about PNF.
test_pnf_gfx expects the name of a config file. If you
specify the string "paper" as second argument, then the plots will be
in greyscale and with a different layout (supposedly better for
inclusion in publications).
In the misc/ directory there are some grid config files
that can be used for test_pnf_gfx:
pnf-static-impulse.pnf A setup with a single wall
between the robot and the goal.
pnf-dynamic-impulse.pnf A setup with a single
dynamic object between the robot and the goal in an otherwise empty
environment.
pnf-setup-iros06-*.pnf Setups for the IROS'06 paper
(see documentation below), not all were used
though.
pnf-setup-star06-*.pnf Setups for the STAR paper
(see documentation below).
There are also two utility scripts for creating vector-format figures
of PNF plots. plot_pnf.sh uses gnuplot to create a
contour plot of PNF values in XFig
format. pnf_3d_riskplot.sh uses gnuplot and fig2dev to
create a 3D plot of PNF risk data in PDF format. You can tweak those
scripts in order to plot other data.
Other Programs
test_estar_replan_gfx: Program for comparing two
instances of E*, with the goal of checking that dynamic replanning
produces the same results as re-initializing and replanning from
scratch. You can use the mouse to add and remove obstacles.
test_dbg_opt: Small test for checking whether debug
messages get pruned properly (they do).
test_estar: An old text-only test program for
E*. See the source-code for options.
test_estar_cwrap: A text-only program to check
whether the C-wrapper code works.
test_estar_queue: Text-only debugging of the E*
queue-ing mechanism. Will still be useful one day when work on
triangular meshes is taken up again...
test_fake_os: Totally simple compile-test to see
whether the rudimentary estar::fake_os class behaves
correctly.
test_pnf_cooc and test_pnf_cooc3d: Old
test programs for verifying the co-occurrence probability
computations of PNF (which was ported from Matlab code that was
written by Björn Jensen at ASL-EPFL back in 2002 or
2003).
test_pnf_riskmap: Checks if
pnf::PNFRiskMap does wht it should.
test_shape: Tests the estar::Sprite
class.
Documentation
The online documentation was generated
using Doxygen. Each release can
also be downloaded with documentation, simply choose one of the
tarballs tagged with-doc on the download
page. There are also some papers available here:
- E* poster at
IROS 2007 (and the corresponding flyer)
presented during the Workshop on Algorithmic Motion Planning for
Autonomous Robots in Challenging Environments.
- E* at ICRA
2005 (PDF, old formulation, but gives basic insights)
@INPROCEEDINGS{philippsen:2005,
author = {Roland Philippsen and Roland Siegwart},
title = {An Interpolated Dynamic Navigation Function},
booktitle = {Proceedings of the IEEE International Conference
on Robotics and Automation (ICRA)},
year = 2005
}
- Technical Report on
"light" E* 2006 (PDF, the formulation which is implemented on
Sourceforge).
@TECHREPORT{philippsen:2006a,
author = {Roland Philippsen},
title = {A Light Formulation of the E* Interpolated Path Replanner},
institution = {Autonomous Systems Lab,
Ecole Polytechnique Federale de Lausanne},
year = 2006
}
- PNF in STAR
2006 (zipped PDF).
@INBOOK{philippsen:2006b,
author = {Philippsen, R. and Jensen, B. and Siegwart, R.},
editor = {Laugier, C. and Chatila, R.},
chapter = {Towards Real-Time Sensor-Based Path Planning
in Highly Dynamic Environments},
title = {Autonomous Navigation in Dynamic Environments},
publisher = {Springer Tracts on Advanced Robotics},
year = 2006
}
|