11 #include <mrpt/containers/CDynamicGrid.h> 12 #include <mrpt/math/CPolygon.h> 13 #include <mrpt/nav/tpspace/CParameterizedTrajectoryGenerator.h> 14 #include <mrpt/typemeta/TEnumType.h> 22 const float x_,
const float y_,
const float phi_,
const float t_,
23 const float dist_,
const float v_,
const float w_)
24 :
x(x_),
y(y_),
phi(phi_),
t(t_),
dist(dist_),
v(v_),
w(w_)
32 mrpt::serialization::CArchive& o,
const TCPoint& p);
34 mrpt::serialization::CArchive& i,
TCPoint& p);
55 virtual void ptgDiffDriveSteeringFunction(
56 float alpha,
float t,
float x,
float y,
float phi,
float&
v,
69 bool inverseMap_WS2TP(
70 double x,
double y,
int& out_k,
double& out_d,
71 double tolerance_dist = 0.10)
const override;
77 mrpt::kinematics::CVehicleVelCmd::Ptr directionToMotionCommand(
78 uint16_t k)
const override;
79 mrpt::kinematics::CVehicleVelCmd::Ptr getSupportedKinematicVelocityCommand()
85 void setRefDistance(
const double refDist)
override;
88 size_t getPathStepCount(uint16_t k)
const override;
89 mrpt::math::TPose2D getPathPose(uint16_t k, uint32_t step)
const override;
90 double getPathDist(uint16_t k, uint32_t step)
const override;
91 bool getPathStepForDist(
92 uint16_t k,
double dist, uint32_t& out_step)
const override;
93 double getPathStepDuration()
const override;
96 void updateTPObstacle(
97 double ox,
double oy, std::vector<double>& tp_obstacles)
const override;
98 void updateTPObstacleSingle(
99 double ox,
double oy, uint16_t k,
double& tp_obstacle_k)
const override;
115 void internal_processNewRobotShape()
override;
116 void internal_initialize(
117 const std::string& cacheFilename = std::string(),
118 const bool verbose =
true)
override;
119 void internal_deinitialize()
override;
131 void loadFromConfigFile(
132 const mrpt::config::CConfigFileBase& cfg,
133 const std::string& sSection)
override;
134 void saveToConfigFile(
135 mrpt::config::CConfigFileBase& cfg,
136 const std::string& sSection)
const override;
138 void loadDefaultParams()
override;
140 double V_MAX{.0}, W_MAX{.0};
141 double turningRadiusReference{.10};
143 double m_resolution{0.05};
144 double m_stepTimeDuration{0.01};
146 void internal_readFromStream(mrpt::serialization::CArchive& in)
override;
147 void internal_writeToStream(
148 mrpt::serialization::CArchive& out)
const override;
152 void simulateTrajectories(
float max_time,
float max_dist,
float dt);
154 mrpt::math::TTwist2D getPathTwist(uint16_t k, uint32_t step)
const override;
172 float x_min,
float x_max,
float y_min,
float y_max,
175 x_min, x_max, y_min, y_max, resolution),
182 mrpt::serialization::CArchive* fil,
183 const mrpt::math::CPolygon& computed_robotShape)
const;
186 mrpt::serialization::CArchive* fil,
187 const mrpt::math::CPolygon& current_robotShape);
192 const float obsX,
const float obsY)
const;
201 const unsigned int icx,
const unsigned int icy,
const uint16_t k,
207 bool saveColGridsToFile(
208 const std::string& filename,
209 const mrpt::math::CPolygon& computed_robotShape)
const;
210 bool loadColGridsFromFile(
211 const std::string& filename,
212 const mrpt::math::CPolygon& current_robotShape);
223 : k_min(std::numeric_limits<uint16_t>::max()),
224 k_max(std::numeric_limits<uint16_t>::min()),
225 n_min(std::numeric_limits<uint32_t>::max()),
226 n_max(std::numeric_limits<uint32_t>::min())
235 return k_min == std::numeric_limits<uint16_t>::max();
241 mrpt::containers::CDynamicGrid<TCellForLambdaFunction>
mrpt::serialization::CArchive & operator>>(mrpt::serialization::CArchive &i, TCPoint &p)
std::vector< std::pair< uint16_t, float > > TCollisionCell
Definition: DiffDriveCollisionGridBased.h:162
Definition: DiffDriveCollisionGridBased.h:18
float y
Definition: DiffDriveCollisionGridBased.h:27
Definition: DiffDriveCollisionGridBased.h:50
uint32_t n_min
Definition: DiffDriveCollisionGridBased.h:231
bool isEmpty() const
Definition: DiffDriveCollisionGridBased.h:233
float w
Definition: DiffDriveCollisionGridBased.h:27
Definition: DiffDrive_C.h:14
CCollisionGrid(float x_min, float x_max, float y_min, float y_max, float resolution, DiffDriveCollisionGridBased *parent)
Definition: DiffDriveCollisionGridBased.h:171
void onNewNavDynamicState() override
Definition: DiffDriveCollisionGridBased.h:102
float x
Definition: DiffDriveCollisionGridBased.h:27
float phi
Definition: DiffDriveCollisionGridBased.h:27
double getMaxLinVel() const override
Definition: DiffDriveCollisionGridBased.h:94
std::vector< TCPointVector > m_trajectory
Definition: DiffDriveCollisionGridBased.h:142
DiffDriveCollisionGridBased const * m_parent
Definition: DiffDriveCollisionGridBased.h:168
double getMax_W() const
Definition: DiffDriveCollisionGridBased.h:110
std::vector< TCPoint > TCPointVector
Definition: DiffDriveCollisionGridBased.h:29
double getMaxAngVel() const override
Definition: DiffDriveCollisionGridBased.h:95
float v
Definition: DiffDriveCollisionGridBased.h:27
TCellForLambdaFunction()
Definition: DiffDriveCollisionGridBased.h:222
double getMax_V() const
Definition: DiffDriveCollisionGridBased.h:109
uint16_t k_min
Definition: DiffDriveCollisionGridBased.h:230
mrpt::containers::CDynamicGrid< TCellForLambdaFunction > m_lambdaFunctionOptimizer
Definition: DiffDriveCollisionGridBased.h:242
TCPoint(const float x_, const float y_, const float phi_, const float t_, const float dist_, const float v_, const float w_)
Definition: DiffDriveCollisionGridBased.h:21
CCollisionGrid m_collisionGrid
Definition: DiffDriveCollisionGridBased.h:215
float t
Definition: DiffDriveCollisionGridBased.h:27
Definition: DiffDriveCollisionGridBased.h:220
float dist
Definition: DiffDriveCollisionGridBased.h:27
Definition: DiffDriveCollisionGridBased.h:165
mrpt::serialization::CArchive & operator<<(mrpt::serialization::CArchive &o, const TCPoint &p)