Motion planning geometry utility functions
(#include <mrpt/nav/nav_plan_geometry_utils.h>
)
// global functions bool mrpt::nav::collision_free_dist_segment_circ_robot( const mrpt::math::TPoint2D& p_start, const mrpt::math::TPoint2D& p_end, const double robot_radius, const mrpt::math::TPoint2D& obstacle, double& out_col_dist ); bool mrpt::nav::collision_free_dist_arc_circ_robot( const double arc_radius, const double robot_radius, const mrpt::math::TPoint2D& obstacle, double& out_col_dist );
Global Functions
bool mrpt::nav::collision_free_dist_segment_circ_robot( const mrpt::math::TPoint2D& p_start, const mrpt::math::TPoint2D& p_end, const double robot_radius, const mrpt::math::TPoint2D& obstacle, double& out_col_dist )
Computes the collision-free distance for a linear segment path between two points, for a circular robot, and a point obstacle (ox,oy).
Parameters:
std::runtime_error |
If the two points are closer than an epsilon (1e-10) |
Returns:
true if a collision exists, and the distance along the segment will be in out_col_dist; false otherwise.
bool mrpt::nav::collision_free_dist_arc_circ_robot( const double arc_radius, const double robot_radius, const mrpt::math::TPoint2D& obstacle, double& out_col_dist )
Computes the collision-free distance for a forward path (+X) circular arc path segment from pose (0,0,0) and radius of curvature R (>0 -> +Y, <0 -> -Y), a circular robot and a point obstacle (ox,oy).
Returns:
true if a collision exists, and the distance along the path will be in out_col_dist; false otherwise.