30 #include <shared_mutex>
37 #include <Eigen/Geometry>
40 #include <Ice/Current.h>
43 #include <DynamicObstacleAvoidance/Agent.hpp>
44 #include <DynamicObstacleAvoidance/Environment.hpp>
53 #include <RobotAPI/interface/components/ObstacleAvoidance/DSObstacleAvoidanceInterface.h>
61 virtual public DSObstacleAvoidanceInterface,
76 dsobstacleavoidance::Config
77 getConfig(
const Ice::Current& = Ice::emptyCurrent)
82 const obstacledetection::Obstacle& obstacle,
83 const Ice::Current& = Ice::emptyCurrent)
86 std::vector<obstacledetection::Obstacle>
92 const std::string& obstacle_name,
93 const Ice::Current& = Ice::emptyCurrent)
98 const obstacleavoidance::Agent& agent,
99 const Ice::Current& = Ice::emptyCurrent)
150 sanity_check_obstacle(
const obstacledetection::Obstacle& obstacle)
169 unsigned task_interval = 20;
170 mutable std::mutex mutex;
171 bool needs_update =
true;
178 unsigned task_interval = 100;
182 struct dynamic_obstacle_avoidance
184 dsobstacleavoidance::Config cfg;
185 DynamicObstacleAvoidance::Environment env;
186 mutable std::shared_mutex mutex;
187 std::string load_obstacles_from_file =
188 "RobotAPI/obstacle_avoidance/r034_2d_scene_obstacles.json";
193 enum class update_type
203 DSObstacleAvoidance::buffer::update_type
type;
206 mutable std::mutex mutex;
207 std::vector<DSObstacleAvoidance::buffer::update> update_log;
208 std::map<std::string, obstacledetection::Obstacle> obstacles;
209 bool needs_env_update;
213 DSObstacleAvoidance::visualization m_vis;
215 DSObstacleAvoidance::watchdog m_watchdog;
217 DSObstacleAvoidance::dynamic_obstacle_avoidance m_doa;
219 DSObstacleAvoidance::buffer m_buf;