mu-calculus collision checker More...
#include <mu_calculus.h>
Public Member Functions | |
int | cc_update_insert_vertex (vertex_t *vertex_in) |
Update function for vertex insertion. | |
int | cc_update_insert_edge (edge_t *edge_in) |
Update function for edge insertion. | |
int | cc_update_delete_vertex (vertex_t *vertex_in) |
Update function for vertex deletion. | |
int | cc_update_delete_edge (edge_t *edge_in) |
Update function for edge insertion. | |
int | check_collision_state (state_t *state_in) |
Checks whether a given state is collision free. | |
int | check_collision_trajectory (trajectory_t *trajectory_in) |
Checks whether a given trajectory is collision free. | |
int | set_discretization_steps (int num_discretization_steps_in) |
Sets the number of discretization steps. | |
int | set_discretization_length (double discretization_length_in) |
Sets the length for the discretization. | |
int | add_region (region_t ®ion_in) |
Adds a new region to the list of regions. |
mu-calculus collision checker
This class implements a standard collision checker for the mu-calculus model checker. The mu-calculus model checer requires each trajectory to traverse from one region to another at most twice. This collision checker ensures that this property holds as an invariant.
int smp::collision_checker_mu_calculus< typeparams, NUM_DIMENSIONS >::add_region | ( | region_t & | region_in | ) |
Adds a new region to the list of regions.
This function adds a new region to the list of regions. Note that the NUM_DIMENSIONS template argument of the region and this class must match. Otherwise, compuilation errors will occur.
region_in | The reference to the new obstacle |
int smp::collision_checker_mu_calculus< typeparams, NUM_DIMENSIONS >::cc_update_delete_edge | ( | edge_t * | edge_in | ) | [virtual] |
Update function for edge insertion.
This function is called by the planner whenever an edge is delete from the graph. A pointer to the edge is given as an argument.
edge_in | A pointer to deleted edge. |
Implements smp::collision_checker_base< typeparams >.
int smp::collision_checker_mu_calculus< typeparams, NUM_DIMENSIONS >::cc_update_delete_vertex | ( | vertex_t * | vertex_in | ) | [virtual] |
Update function for vertex deletion.
This function is called by the planner whenever a vertex is deleted from the graph. A pointer to the vertex is given as an argument.
vertex_in | A pointer to deleted vertex. |
Implements smp::collision_checker_base< typeparams >.
int smp::collision_checker_mu_calculus< typeparams, NUM_DIMENSIONS >::cc_update_insert_edge | ( | edge_t * | edge_in | ) | [virtual] |
Update function for edge insertion.
This function is called by the planner whenever a new edge is added to the graph. A pointer to the new edge is given as an argument.
edge_in | A pointer to the new edge. |
Implements smp::collision_checker_base< typeparams >.
int smp::collision_checker_mu_calculus< typeparams, NUM_DIMENSIONS >::cc_update_insert_vertex | ( | vertex_t * | vertex_in | ) | [virtual] |
Update function for vertex insertion.
This function is called by the planner whenever a new vertex is added to the graph. A pointer to the new vertex is given as an argument.
vertex_in | A pointer to the new vertex. |
Implements smp::collision_checker_base< typeparams >.
int smp::collision_checker_mu_calculus< typeparams, NUM_DIMENSIONS >::check_collision_state | ( | state_t * | state_in | ) | [virtual] |
Checks whether a given state is collision free.
state_in | The state that will be checked for collision. |
Implements smp::collision_checker_base< typeparams >.
int smp::collision_checker_mu_calculus< typeparams, NUM_DIMENSIONS >::check_collision_trajectory | ( | trajectory_t * | trajectory_in | ) | [virtual] |
Checks whether a given trajectory is collision free.
trajectory_in | The trajectory that will be checked for collision. |
Implements smp::collision_checker_base< typeparams >.
int smp::collision_checker_mu_calculus< typeparams, NUM_DIMENSIONS >::set_discretization_length | ( | double | discretization_length_in | ) |
Sets the length for the discretization.
This function can be used to set the length of the discretization. In this case, the trajectory between two states is approximated by a line connecting them, and discretized in such a way that the maximum length of any segment is at most the parameter provided to this function.
discretization_length_in | Length of the discretization. |
int smp::collision_checker_mu_calculus< typeparams, NUM_DIMENSIONS >::set_discretization_steps | ( | int | num_discretization_steps_in | ) |
Sets the number of discretization steps.
This function can be used to set the number of intermediate states in the discretization process. In this case, the trajectory between two consecutive states is approximated by a straight line. And this line is discretized in such a way that the line includes number of states exactly equal to that provided to this function.
num_discretization_steps_in | Number of discretization steps. |