Skip to content
Snippets Groups Projects
Commit df8d8acf authored by Fabian Reister's avatar Fabian Reister
Browse files

path progress

parent 075be8c7
No related branches found
No related tags found
No related merge requests found
...@@ -19,6 +19,11 @@ namespace simox::geometric_planning ...@@ -19,6 +19,11 @@ namespace simox::geometric_planning
{ {
return path->progress(toLocalPathFrame(global_T_pose)); return path->progress(toLocalPathFrame(global_T_pose));
} }
float ParametricPath::progress(const float param) const
{
return path->progress(param);
}
Pose Pose
ParametricPath::toLocalPathFrame(const Pose& global_T_pose) const ParametricPath::toLocalPathFrame(const Pose& global_T_pose) const
......
...@@ -32,6 +32,7 @@ namespace simox::geometric_planning ...@@ -32,6 +32,7 @@ namespace simox::geometric_planning
// helper functions to obtain the PathPrimitive's parameter and progress directly from a global pose // helper functions to obtain the PathPrimitive's parameter and progress directly from a global pose
float progress(const Pose& global_T_pose) const; float progress(const Pose& global_T_pose) const;
float progress(float param) const;
Pose toLocalPathFrame(const Pose& global_T_pose) const; Pose toLocalPathFrame(const Pose& global_T_pose) const;
......
...@@ -16,9 +16,16 @@ namespace simox::geometric_planning ...@@ -16,9 +16,16 @@ namespace simox::geometric_planning
PathPrimitive::progress(const Pose& pose) const PathPrimitive::progress(const Pose& pose) const
{ {
const float param = parameter(pose); const float param = parameter(pose);
return progress(param);
}
float PathPrimitive::progress(const float param) const
{
const auto range = parameterRange(); const auto range = parameterRange();
return (param - range.min) / (range.max - range.min); const float paramSanitized = clampParameter(param);
return (paramSanitized - range.min) / (range.max - range.min);
} }
......
...@@ -36,6 +36,7 @@ namespace simox::geometric_planning ...@@ -36,6 +36,7 @@ namespace simox::geometric_planning
* @return the progress in range [0,1] * @return the progress in range [0,1]
*/ */
float progress(const Pose& pose) const; float progress(const Pose& pose) const;
float progress(float param) const;
// math::AbstractFunctionR1R6 interface // math::AbstractFunctionR1R6 interface
Eigen::Vector3f GetPosition(float t) override; Eigen::Vector3f GetPosition(float t) override;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment