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;
72 const laser_scanner_feature_extraction::LineSegment2DChainSeq& globalLineSegmentChains,
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;
99 laser_scanner_feature_extraction::LineSegment2DChainSeq m_lines_buffer;
100 IceUtil::Time m_last_accepted_lines;
102 std::mutex m_lines_buffer_mutex;
103 std::mutex m_enabled_mutex;
105 DynamicObstacleManagerInterface::
ProxyType m_obstacle_manager;
Component()
Protected default constructor. Used for virtual inheritance. Use createManagedIceObject() instead.
void onInitComponent() override
Pure virtual hook for the subclass.
static const std::string default_name
void onDisconnectComponent() override
Hook for subclass.
void reportExtractedLineSegments(const laser_scanner_feature_extraction::LineSegment2DChainSeq &globalLineSegmentChains, const Ice::Current &=Ice::Current()) override
LaserScannerObstacleDetection() noexcept
void onConnectComponent() override
Pure virtual hook for the subclass.
armarx::PropertyDefinitionsPtr createPropertyDefinitions() override
void enable(const Ice::Current &=Ice::emptyCurrent) override
void setEnabled(bool enable, const Ice::Current &=Ice::emptyCurrent) override
void onExitComponent() override
Hook for subclass.
void disable(const Ice::Current &=Ice::emptyCurrent) override
std::string getDefaultName() const override
Retrieve default name of component.
The periodic task executes one thread method repeatedly using the time period specified in the constr...
This file offers overloads of toIce() and fromIce() functions for STL container types.
IceUtil::Handle< class PropertyDefinitionContainer > PropertyDefinitionsPtr
PropertyDefinitions smart pointer type.