struct RBLParams
{
double step_size;
double radius;
double encumbrance;
double dt;
double beta_min;
double betaD;
double beta;
double d1;
double d2;
double d3;
double d4;
double d5;
double d6;
double d7;
double th;
double ph;
double max_connection_dist;
double cwvd_rob;
double cwvd_obs;
double radius_search;
bool use_z_rule;
double z_ref;
double z_min;
double z_max;
bool only_2d = false;
};
class RBLController
{
public:
RBLController(const RBLParams& params);
void setCurrentPosition(const Eigen::Vector3d& point);
void setGroupPositions(const std::vector<Eigen::Vector3d>& list_points);
void setPCL(const sensor_msgs::PointCloud2::ConstPtr& list_points);
void setGoal(const Eigen::Vector3d& point);
mrs_msgs::Reference getNextRef();
Eigen::Vector3d getGoal();
Eigen::Vector3d getCurrentPosition();
Eigen::Vector3d getCentroid();
pcl::PointCloud<pcl::PointXYZ> getPCL();
};
mrs_lib,mrs_msgsand any kind of ROS msgs but useEigenwherever possible