35 #include <Ice/Current.h>
42 #include <RobotComponents/interface/components/ObstacleDetection/LaserScannerObstacleDetectionInterface.h>
45 #include <RobotAPI/interface/components/ObstacleAvoidance/DynamicObstacleManagerInterface.h>
52 virtual public LaserScannerObstacleDetectionInterface
63 void enable(const
Ice::Current& =
Ice::emptyCurrent) override;
64 void disable(const
Ice::Current& =
Ice::emptyCurrent) override;
73 const
Ice::Current& =
Ice::Current()) override;
84 void eval_obstacles();
85 float get_distance_from_point_to_line_segment(const
Eigen::Vector2f& start,
86 const
Eigen::Vector2f& end,
87 const
Eigen::Vector2f& p) const;
88 float get_angle_between_vectors(const
Eigen::Vector2f&, const
Eigen::Vector2f&) const;
91 int m_only_submit_first_n_results;
92 float m_max_distance_to_put_together;
93 float m_max_yaw_difference;
95 unsigned int m_periodic_task_interval;
96 unsigned int m_accept_lines_after;
102 std::mutex m_lines_buffer_mutex;
103 std::mutex m_enabled_mutex;
105 DynamicObstacleManagerInterface::
ProxyType m_obstacle_manager;