115 struct DistanceAndClosestPoint
118 Eigen::Vector2f closestPoint;
120 std::size_t clusterSize;
123 std::optional<core::TwistLimits> safetyLimitsHumans(
viz::Layer& layer)
const;
124 std::optional<core::TwistLimits>
126 const Eigen::Vector2f& global_V_movement)
const;
128 DistanceAndClosestPoint
131 const std::vector<Eigen::Vector3f>& globalPoints)
const;
133 std::pair<core::TwistLimits, float>
136 bool isFeatureIgnored(
const std::vector<Eigen::Vector3f>& featurePoints3DGlobal,
137 const std::vector<Eigen::Vector2f>& featurePoints2DGlobal)
const;
139 struct InternalVelocityLimitResult
142 std::optional<float> minDistance;
145 std::optional<Eigen::Vector2f> closestPoint;
148 InternalVelocityLimitResult velocityLimitsDirectionDependent(
149 const Eigen::Vector2f& global_V_movement,
150 const std::vector<DistanceAndClosestPoint>& minDistanceToObstacles,
151 const Eigen::Isometry3f& global_T_robot)
const;
153 InternalVelocityLimitResult velocityLimitsDirectionIndependent(
154 const std::vector<DistanceAndClosestPoint>& minDistanceToObstacles)
const;
163 simox::ColorMap humanColorMap_;
164 simox::ColorMap laserColorMap_;
166 mutable boost::circular_buffer<std::vector<memory::LaserScannerFeatures>>
167 laserScannerFeatureHistory_{5};