|
| TPlane (const Interval &tdomain) |
| Creates a 2d temporal space \([t_0,t_f]^2\).
|
|
| ~TPlane () |
| TPlane destructor.
|
|
void | compute_loops (float precision, const TubeVector &p, const TubeVector &v) |
| Computes the loops (detections and proofs) as a subpaving, from the tube of positions \([\mathbf{p}](\cdot)\) and the tube of velocities \([\mathbf{v}](\cdot)\).
|
|
void | compute_detections (float precision, const TubeVector &p) |
| Computes this tplane as a subpaving, from the tube of positions \([\mathbf{p}](\cdot)\) only.
|
|
void | compute_detections (float precision, const TubeVector &p, const TubeVector &v) |
| Computes this tplane as a subpaving, from the tube of positions \([\mathbf{p}](\cdot)\) and the tube of velocities \([\mathbf{v}](\cdot)\).
|
|
void | compute_proofs (const TubeVector &p) |
| Tries to prove the existence of loops in each detection set.
|
|
void | compute_proofs (const TubeVector &p, const TubeVector &v) |
| Tries to prove the existence of loops in each detection set.
|
|
int | nb_loops_detections () const |
| Returns the number of loop detections.
|
|
int | nb_loops_proofs () const |
| Returns the number of proven loops.
|
|
const std::vector< ConnectedSubset > & | detected_loops_subsets () const |
| Returns the set of detected loops.
|
|
const std::vector< IntervalVector > | detected_loops () const |
| Returns the set of boxed detected loops.
|
|
const std::vector< ConnectedSubset > & | proven_loops_subsets () const |
| Returns the set of proven loops.
|
|
const std::vector< IntervalVector > | proven_loops () const |
| Returns the set of boxed proven loops.
|
|
Trajectory | traj_loops_summary () const |
| Returns a temporal function of value 0 in case of no-detection, 1 in case of loop detection and 2 in case of loop proof.
|
|
void | compute_proofs (const std::function< IntervalVector(const IntervalVector &)> &f) |
| Tries to prove the existence of loops in each detection set.
|
|
| Paving (const IntervalVector &box, SetValue value=SetValue::UNKNOWN) |
| Creates a paving.
|
|
| ~Paving () |
| Paving destructor.
|
|
Paving * | get_first_subpaving () |
| Points to the first subpaving of the binary tree implementing this paving set.
|
|
const Paving * | get_first_subpaving () const |
| Points to the first subpaving of the binary tree implementing this paving set.
|
|
Paving * | get_second_subpaving () |
| Points to the second subpaving of the binary tree implementing this paving set.
|
|
const Paving * | get_second_subpaving () const |
| Points to the second subpaving of the binary tree implementing this paving set.
|
|
Paving * | get_root () |
| Returns a pointer to the root of the paving structure.
|
|
const Paving * | get_root () const |
| Returns a pointer to the root of the paving structure.
|
|
Paving * | get_first_leaf (SetValue val, bool without_flag=false) |
| Points to the first leaf of the specified value.
|
|
const Paving * | get_first_leaf (SetValue val, bool without_flag=false) const |
| Points to the first leaf of the paving structure.
|
|
void | bisect (float ratio=0.49) |
| Bisects this paving into two subpavings with some ratio bisection.
|
|
bool | is_leaf () const |
| Returns true if this paving is made of two subpavings.
|
|
bool | flag () const |
| Tests whether this paving has been flagged or not.
|
|
void | set_flag () const |
| Flags this paving and all its children.
|
|
void | reset_flags () const |
| Removes the flags of this Paving and all its children.
|
|
void | reset_paving (SetValue value=SetValue::UNKNOWN) |
| Same as building a new Paving object.
|
|
void | get_boxes (std::list< IntervalVector > &l_subpavings, SetValue val, SetValue neg_val=SetValue::DEFAULT) const |
| Returns a set of boxes leaves of some value.
|
|
void | get_pavings_intersecting (SetValue val, const IntervalVector &box_to_intersect, std::vector< const Paving * > &v_subpavings, bool no_degenerated_intersection=false) const |
| Returns a set of Paving leaves of some value and intersecting a given box.
|
|
void | get_neighbours (std::vector< const Paving * > &v_neighbours, SetValue val=SetValue::IN|SetValue::OUT|SetValue::UNKNOWN, bool without_flag=false) const |
| Returns the neighbors (adjacent items) of this Paving, having some value.
|
|
std::vector< ConnectedSubset > | get_connected_subsets (bool sort_by_size=false, SetValue val=SetValue::UNKNOWN|SetValue::IN) const |
| Returns the set of connected subsets of this paving.
|
|
| Set (const IntervalVector &box, SetValue value=SetValue::UNKNOWN) |
| Creates a set.
|
|
| ~Set () |
| Set destructor.
|
|
SetValue | value () const |
| Returns the value of this set.
|
|
int | size () const |
| Returns the dimension of the paving.
|
|
const IntervalVector & | box () const |
| Returns the n-dimensional box representing this set.
|
|
void | set_value (SetValue value) |
| Sets the integer value for this set.
|
|
Temporal representation of loops.
A t-plane is a 2d temporal space \([t_0,t_f]^2\) that may contain t-pairs corresponding to looped trajectories. Considering 2d trajectories \(\mathbf{p}(\cdot):[t_0,t_f]\to\mathbb{R}^2\), we temporally define the set of loops as: \(\mathbb{T}^*=\left\{(t_1,t_2)\in [t_0,t_f]^2 \mid \mathbf{p}(t_1)=\mathbf{p}(t_2) , t_1 < t_2 \right\}\)
This class allows to detect and prove loops considering uncertainties on \(\mathbf{p}(\cdot)\) or in cases where only the velocities \(\mathbf{v}(\cdot)\) of the robot are at hand.
This has been the object of the publications:
Loop detection of mobile robots using interval analysis
C. Aubry, R. Desmare, L. Jaulin
Automatica, 2013
Proving the existence of loops in robot trajectories
S. Rohou, P. Franek, C. Aubry, L. Jaulin
The International Journal of Robotics Research, 2018