Class ABITstar

Inheritance Relationships

Base Type

Class Documentation

class ABITstar : public ompl::geometric::BITstar

Advanced Batch Informed Trees (ABIT*)

ABIT* (Advanced Batch Informed Trees) is an almost-surely asymptotically optimal path planner. It views the planning problem as the two subproblems of approximation and search. This perspective allows it use advanced graph-search techniques, such as inflation and truncation.

This implementation of ABIT* derives from BIT* which means it benefits from a couple of features not mentioned in the ABIT* publication. It can handle multiple starts, multiple goals, a variety of optimization objectives (e.g., path length), and with just-in-time sampling, infinite problem domains. Note that for some of optimization objectives, the user must specify a suitable heuristic and that when this heuristic is not specified, it will use the conservative/always admissible zero-heuristic.

This implementation also includes some new advancements, including the ability to prioritize exploration until an initial solution is found (Delayed rewiring), the ability to generate samples only when necessary (Just-in-time sampling), and the ability to periodically remove samples that have yet to be connected to the graph (Sample dropping). With just-in-time sampling, ABIT* can even solve planning problems with infinite state space boundaries, i.e., (-inf, inf).

The inflation and truncation factor update policies of this implementation reflect the policies used to create the experimental results in ABIT*’s publication. Each increasingly dense RGG is searched twice, once with a very high inflation factor (gABITstarSetInitialInflationFactor, 1’000’000 by default), and once with an inflation factor that scales as 1 + inflation_parameter / q, where inflation_parameter is a parameter that scales the inflation factor (gABITstarSetInflationScalingParameter, 10 by default) is and q is the number of samples. Each search is truncated with a truncation factor of 1 + truncation_parameter / q, where truncation_parameter is a parameter that influences the truncation factor (gABITstarSetTruncationScalingParameter, 5 by default) and q is the number of samples again. For more information see ABIT*’s publication.

M. P. Strub, J. D. Gammell. “Advanced BIT* (ABIT*): Sampling-based planning with advanced graph-search techniques.” in Proceedings of the IEEE international conference on robotics and automation (ICRA), Paris, France, 31 May – 4 Jun. 2020. DOI: arXiv:2002.06589. Video 1: ICRA submission video. Video 2: ICRA presentation video

Associated publication:

Public Functions

ABITstar(const base::SpaceInformationPtr &spaceInfo, const std::string &name = "ABITstar")
virtual ~ABITstar() override = default
void setInitialInflationFactor(double factor)

Set the inflation factor for the initial search.

void setInflationScalingParameter(double parameter)

Set the parameter for the inflation factor update policy.

void setTruncationScalingParameter(double parameter)

Set the parameter for the truncation factor update policy.

double getInitialInflationFactor() const

Get the inflation factor for the initial search.

double getInflationScalingParameter() const

Get the inflation scaling parameter.

double getTruncationScalingParameter() const

Get the truncation scaling parameter.

double getCurrentInflationFactor() const

Get the inflation factor for the current search.

double getCurrentTruncationFactor() const

Get the truncation factor for the current search.