143 struct DistanceAndClosestPoint
146 Eigen::Vector2f closestPoint;
148 std::size_t clusterSize;
151 Eigen::Vector2f centroid;
157 std::optional<core::TwistLimits> safetyLimitsHumans(
viz::Layer& layer)
const;
158 std::optional<core::TwistLimits>
162 const Eigen::Vector2f& global_V_movement)
const;
164 DistanceAndClosestPoint
167 const std::vector<Eigen::Vector3f>& globalPoints)
const;
169 std::pair<core::TwistLimits, float>
173 featureIgnoreReason(
const std::vector<Eigen::Vector3f>& featurePoints3DGlobal,
174 const std::vector<Eigen::Vector2f>& featurePoints2DGlobal,
175 const Eigen::Vector2f& centroid)
const;
177 struct InternalVelocityLimitResult
180 std::optional<float> minDistance;
183 std::optional<Eigen::Vector2f> closestPoint;
188 InternalVelocityLimitResult
189 velocityLimitsDirectionDependent(
const Eigen::Vector2f& global_V_movement,
190 std::vector<DistanceAndClosestPoint>& minDistanceToObstacles,
191 const Eigen::Isometry3f& global_T_robot)
const;
193 InternalVelocityLimitResult velocityLimitsDirectionIndependent(
194 const std::vector<DistanceAndClosestPoint>& minDistanceToObstacles)
const;
203 simox::ColorMap humanColorMap_;
204 simox::ColorMap laserColorMap_;
206 mutable boost::circular_buffer<std::vector<memory::LaserScannerFeatures>>
207 laserScannerFeatureHistory_{5};