GCC Code Coverage Report


Directory: ./
File: include/hpp/core/path-optimization/rs-time-parameterization.hh
Date: 2024-08-10 11:29:48
Exec Total Coverage
Lines: 0 2 0.0%
Branches: 0 0 -%

Line Branch Exec Source
1 //
2 // Copyright (c) 2019 - 2024 CNRS
3 //
4 // Author: Florent Lamiraux
5 //
6
7 // Redistribution and use in source and binary forms, with or without
8 // modification, are permitted provided that the following conditions are
9 // met:
10 //
11 // 1. Redistributions of source code must retain the above copyright
12 // notice, this list of conditions and the following disclaimer.
13 //
14 // 2. Redistributions in binary form must reproduce the above copyright
15 // notice, this list of conditions and the following disclaimer in the
16 // documentation and/or other materials provided with the distribution.
17 //
18 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
19 // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
20 // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
21 // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
22 // HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
23 // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
24 // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
25 // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
26 // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
27 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
28 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
29 // DAMAGE.
30
31 #ifndef HPP_CORE_PATH_OPTIMIZATION_RS_TIME_PARAMETERIZATION_HH
32 #define HPP_CORE_PATH_OPTIMIZATION_RS_TIME_PARAMETERIZATION_HH
33
34 #include <hpp/core/path-optimizer.hh>
35 #include <hpp/core/steering-method/constant-curvature.hh>
36
37 namespace hpp {
38 namespace core {
39 namespace pathOptimization {
40 /// Time parameterization of Reeds and Shepp paths
41 ///
42 /// This class computes a time parameterization for a concatentation
43 /// of Reeds and Shepp paths (in fact of constant curvature paths)
44 class HPP_CORE_DLLAPI RSTimeParameterization : public PathOptimizer {
45 public:
46 /// Create instance and return shared pointer
47 static RSTimeParameterizationPtr_t create(const ProblemConstPtr_t& problem);
48 /// Compute the time parameterization of a path
49 ///
50 /// \param path input path,
51 /// \precond path should be a concatenation of
52 /// hpp::core::ConstantCurvature instances
53 ///
54 /// The parameterized path starts and ends with velocity equal to 0.
55 /// On each segment, it accelerates, moves at maximal speed and
56 /// decelerates to the minimal velocity to pass curvature discontinuity.
57 virtual PathVectorPtr_t optimize(const PathVectorPtr_t& path);
58
59 protected:
60 /// Constructor
61 /// \param minLinVel, maxLinVel minimal and maximal velocity.
62 /// Minimal velocity is the linear velocity allowed when
63 /// switching discontinuously the radius of curvature,
64 /// \param maxAngVel maximal angular velocity,
65 /// \param linearAcceletion linearDeceleration linear acceleration and
66 /// deceleration that can be different.
67 RSTimeParameterization(const ProblemConstPtr_t& problem)
68 : PathOptimizer(problem) {}
69 }; // class ReedsShepp
70
71 } // namespace pathOptimization
72 } // namespace core
73 } // namespace hpp
74 #endif // HPP_CORE_PATH_OPTIMIZATION_RS_TIME_PARAMETERIZATION_HH
75