IrisZoOptions collects all parameters for the IRIS-ZO algorithm.
- Warning
- This feature is considered to be experimental and may change or be removed at any time, without any deprecation notice ahead of time.
- See also
- IrisZo for more details.
#include <drake/planning/iris/iris_zo.h>
◆ ParameterizationFunction
◆ IrisZoOptions() [1/3]
◆ IrisZoOptions() [2/3]
◆ IrisZoOptions() [3/3]
◆ get_parameterization()
Get the parameterization function.
- Note
- If the user has not specified this with
set_parameterization()
, then the default value of parameterization_
is the identity function, indicating that the regions should be grown in the full configuration space (in the standard coordinate system).
◆ get_parameterization_dimension()
std::optional<int> get_parameterization_dimension |
( |
| ) |
const |
Returns what the user has specified as the input dimension for the parameterization function, or std::nullopt if it has not been set.
A std::nullopt value indicates that IrisZo should use the ambient configuration space dimension as the input dimension to the parameterization.
◆ get_parameterization_is_threadsafe()
bool get_parameterization_is_threadsafe |
( |
| ) |
const |
Returns whether or not the user has specified the parameterization to be threadsafe.
- Note
- The default
parameterization_
is the identity function, which is threadsafe.
◆ operator=() [1/2]
◆ operator=() [2/2]
◆ Serialize()
void Serialize |
( |
Archive * |
a | ) |
|
Passes this object to an Archive.
Refer to YAML Serialization for background. Note: This only serializes options that are YAML built-in types.
◆ set_parameterization()
void set_parameterization |
( |
const ParameterizationFunction & |
parameterization, |
|
|
bool |
parameterization_is_threadsafe, |
|
|
int |
parameterization_dimension |
|
) |
| |
Ordinarily, IRIS-ZO grows collision free regions in the robot's configuration space C.
This allows the user to specify a function f:Q→C , and grow the region in Q instead. The function should be a map R^m to R^n, where n is the dimension of the plant configuration space, determined via checker.plant().num_positions()
and m is parameterization_dimension
if specified. The user must provide parameterization
, which is the function f, parameterization_is_threadsafe
, which is whether or not parametrization
can be called concurrently, and parameterization_dimension
, the dimension of the input space Q.
◆ bisection_steps
Maximum number of bisection steps.
◆ configuration_space_margin
double configuration_space_margin {1e-2} |
We retreat by this margin from each C-space obstacle in order to avoid the possibility of requiring an infinite number of faces to approximate a curved boundary.
◆ containment_points
std::optional<Eigen::MatrixXd> containment_points {std::nullopt} |
Points that are guaranteed to be contained in the final region provided their convex hull is collision free.
Note that if the containment points are closer than configuration_margin to an obstacle we will relax the margin in favor of including the containment points. The matrix containment_points
is expected to be of the shape dimension times number of points. IrisZo throws if the center of the starting ellipsoid is not contained in the convex hull of these containment points.
◆ delta
Upper bound on the probability the returned region has a fraction-in-collision greater than epsilon
.
◆ epsilon
Admissible fraction of the region volume allowed to be in collision.
◆ max_iterations
Maximum number of alternations between the ellipsoid and the separating planes step (a.k.a.
outer iterations).
◆ max_iterations_separating_planes
int max_iterations_separating_planes {20} |
Maximum number of rounds of adding faces to the polytope per outer iteration.
◆ max_separating_planes_per_iteration
int max_separating_planes_per_iteration {-1} |
Maximum number of faces to add per inner iteration.
Setting the value to -1 means there is no limit to the number of faces that can be added.
◆ meshcat
Passing a meshcat instance may enable debugging visualizations; this currently and when the configuration space is <= 3 dimensional.
◆ mixing_steps
Number of mixing steps used for hit-and-run sampling.
◆ num_particles
Number of particles used to estimate the closest collision.
◆ parallelism
Number of threads to use when updating the particles.
If the user requests more threads than the CollisionChecker supports, that number of threads will be used instead. However, see also parameterization_is_threadsafe
.
◆ random_seed
This option sets the random seed for random sampling throughout the algorithm.
◆ relative_termination_threshold
double relative_termination_threshold {1e-3} |
IRIS will terminate if the change in the volume of the hyperellipsoid between iterations is less that this percent of the previous best volume.
This termination condition can be disabled by setting to a negative value.
◆ require_sample_point_is_contained
bool require_sample_point_is_contained {true} |
The initial polytope is guaranteed to contain the point if that point is collision-free.
◆ tau
Decision threshold for the unadaptive test.
Choosing a small value increases both the cost and the power statistical test. Increasing the value of tau
makes running an individual test cheaper but decreases its power to accept a polytope. We find choosing a value of 0.5 a good trade-off.
◆ termination_threshold
double termination_threshold {2e-2} |
IRIS will terminate if the change in the volume of the hyperellipsoid between iterations is less that this threshold.
This termination condition can be disabled by setting to a negative value.
◆ verbose
Enables print statements indicating the progress of IrisZo.
The documentation for this class was generated from the following file: