Class TwoCirclesFootprint

Inheritance Relationships

Base Type

Class Documentation

class TwoCirclesFootprint : public hateb_local_planner::BaseFootprintModel

Class that approximates the robot/human with two shifted circles.

Public Functions

inline TwoCirclesFootprint(double front_offset, double front_radius, double rear_offset, double rear_radius)

Default constructor of the abstract obstacle class.

Parameters:
  • front_offset – shift the center of the front circle along the robot/human orientation starting from the center at the rear axis (in meters)

  • front_radius – radius of the front circle

  • rear_offset – shift the center of the rear circle along the opposite robot/human orientation starting from the center at the rear axis (in meters)

  • rear_radius – radius of the front circle

~TwoCirclesFootprint() override = default

Virtual destructor.

inline void setParameters(double front_offset, double front_radius, double rear_offset, double rear_radius)

Set parameters of the contour/footprint.

Parameters:
  • front_offset – shift the center of the front circle along the robot/human orientation starting from the center at the rear axis (in meters)

  • front_radius – radius of the front circle

  • rear_offset – shift the center of the rear circle along the opposite robot/human orientation starting from the center at the rear axis (in meters)

  • rear_radius – radius of the front circle

inline virtual double calculateDistance(const PoseSE2 &current_pose, const Obstacle *obstacle) const override

Calculate the distance between the robot/human and an obstacle.

Parameters:
  • current_pose – Current robot/human pose

  • obstacle – Pointer to the obstacle

Returns:

Euclidean distance to the robot/human

inline virtual double estimateSpatioTemporalDistance(const PoseSE2 &current_pose, const Obstacle *obstacle, double t) const override

Estimate the distance between the robot/human and the predicted location of an obstacle at time t.

Parameters:
  • current_pose – robot/human pose, from which the distance to the obstacle is estimated

  • obstacle – Pointer to the dynamic obstacle (constant velocity model is assumed)

  • t – time, for which the predicted distance to the obstacle is calculated

Returns:

Euclidean distance to the robot/human

inline virtual void visualizeModel(const PoseSE2 &current_pose, std::vector<visualization_msgs::Marker> &markers, const std_msgs::ColorRGBA &color) const override

Visualize the robot/human using a markers.

Fill a marker message with all necessary information (type, pose, scale and color). The header, namespace, id and marker lifetime will be overwritten.

Parameters:
  • current_pose – Current robot/human pose

  • markers[out] container of marker messages describing the robot/human shape

  • color – Color of the footprint

inline virtual double getInscribedRadius() override

Compute the inscribed radius of the footprint model.

Returns:

inscribed radius

inline virtual double getCircumscribedRadius() const override

Compute the circumscribed radius of the footprint model.

Returns:

circumscribed radius

Private Members

double front_offset_
double front_radius_
double rear_offset_
double rear_radius_