40 const int WN = 25, WV = 30;
43 sSection,
"robot_radius",
m_robotRadius, WN, WV,
"Robot radius [m].");
53 std::vector<double> shap_x(N), shap_y(N), shap_z(N);
54 for (
int i = 0; i < N; i++)
57 R * cos(i * 2 *
M_PI / (N - 1)),
R * sin(i * 2 *
M_PI / (N - 1)), 0,
58 shap_x[i], shap_y[i], shap_z[i]);
62 origin.
x(), origin.
y(), .0, shap_x[0], shap_y[0], shap_z[0]);
63 for (
unsigned int i = 1; i <= shap_x.size(); i++)
65 const unsigned int idx = i % shap_x.size();
70 origin.
x() -
R * 0.02, origin.
y(), .0, origin.
x() +
R * 0.02,
73 origin.
x(), origin.
y() -
R * 0.02, .0, origin.
x(),
74 origin.
y() +
R * 0.02, .0);
108 const double x,
const double y)
const 114 const double ox,
const double oy)
const void loadDefaultParams() override
Loads a set of default parameters; provided exclusively for the PTG-configurator tool.
~CPTG_RobotShape_Circular() override
void appendLineStrip(float x, float y, float z)
Appends a line whose starting point is the end point of the last line (similar to OpenGL's GL_LINE_ST...
virtual void internal_processNewRobotShape()=0
Will be called whenever the robot shape is set / updated.
void internal_shape_saveToStream(mrpt::serialization::CArchive &out) const
void composePoint(double lx, double ly, double &gx, double &gy) const
An alternative, slightly more efficient way of doing with G and L being 2D points and P this 2D pose...
#define MRPT_THROW_UNKNOWN_SERIALIZATION_VERSION(__V)
For use in CSerializable implementations.
This class allows loading and storing values and vectors of different types from a configuration text...
void appendLine(const mrpt::math::TSegment3D &sgm)
Appends a line to the set.
double getMaxRobotRadius() const override
Returns an approximation of the robot radius.
void setRobotShapeRadius(const double robot_radius)
Robot shape must be set before initialization, either from ctor params or via this method...
double x() const
Common members of all points & poses classes.
T hypot_fast(const T x, const T y)
Faster version of std::hypot(), to use when overflow is not an issue and we prefer fast code...
void write(const std::string §ion, const std::string &name, enum_t value, const int name_padding_width=-1, const int value_padding_width=-1, const std::string &comment=std::string())
double evalClearanceToRobotShape(const double ox, const double oy) const override
Evals the clearance from an obstacle (ox,oy) in coordinates relative to the robot center...
Virtual base class for "archives": classes abstracting I/O streams.
bool isPointInsideRobotShape(const double x, const double y) const override
Returns true if the point lies within the robot shape.
A class used to store a 2D pose, including the 2D coordinate point and a heading (phi) angle...
mrpt::vision::TStereoCalibResults out
#define MRPT_LOAD_HERE_CONFIG_VAR( variableName, variableType, targetVariable, configFileObject, sectionNameStr)
void loadShapeFromConfigFile(const mrpt::config::CConfigFileBase &source, const std::string §ion)
CPTG_RobotShape_Circular()
A set of independent lines (or segments), one line with its own start and end positions (X...
void internal_shape_loadFromStream(mrpt::serialization::CArchive &in)
void add_robotShape_to_setOfLines(mrpt::opengl::CSetOfLines &gl_shape, const mrpt::poses::CPose2D &origin=mrpt::poses::CPose2D()) const override
Auxiliary function for rendering.
void saveToConfigFile(mrpt::config::CConfigFileBase &cfg, const std::string &sSection) const override
This method saves the options to a ".ini"-like file or memory-stored string list. ...