Thunderbots Project
Loading...
Searching...
No Matches
robot_navigation_obstacle_factory.h
1#pragma once
2
3#include "proto/parameters.pb.h"
4#include "proto/primitive.pb.h"
5#include "shared/constants.h"
6#include "software/ai/navigator/obstacle/obstacle.hpp"
7#include "software/ai/navigator/trajectory/trajectory_path.h"
8#include "software/geom/point.h"
9#include "software/geom/polygon.h"
10#include "software/logger/logger.h"
11#include "software/world/world.h"
12
19{
20 public:
26 RobotNavigationObstacleFactory(TbotsProto::RobotNavigationObstacleConfig config);
27
36 std::vector<ObstaclePtr> createObstaclesFromMotionConstraints(
37 const std::set<TbotsProto::MotionConstraint> &motion_constraints,
38 const World &world) const;
39
48 std::vector<ObstaclePtr> createObstaclesFromMotionConstraint(
49 const TbotsProto::MotionConstraint &motion_constraint, const World &world) const;
50
58 ObstaclePtr createStaticObstacleFromRobotPosition(const Point &robot_position) const;
59
67 ObstaclePtr createStadiumEnemyRobotObstacle(const Robot &enemy_robot) const;
68
76 ObstaclePtr createConstVelocityEnemyRobotObstacle(const Robot &enemy_robot) const;
77
86 ObstaclePtr createFromMovingRobot(const Robot &robot,
87 const TrajectoryPath &traj) const;
88
96 ObstaclePtr createFromBallPosition(const Point &ball_position) const;
97
107 ObstaclePtr createFromShape(const Circle &circle) const;
108 ObstaclePtr createFromShape(const Polygon &polygon) const;
109 ObstaclePtr createFromShape(const Rectangle &rectangle) const;
110 ObstaclePtr createFromShape(const Stadium &stadium) const;
111
119 ObstaclePtr createCircleWithTrajectory(const Circle &circle,
120 const TrajectoryPath &traj) const;
121
129 ObstaclePtr createCircleWithConstVelocity(const Circle &circle,
130 const Vector &velocity) const;
131
141 ObstaclePtr createFromBallPlacement(const Point &placement_point,
142 const Point &ball_point) const;
143
144 private:
145 TbotsProto::RobotNavigationObstacleConfig config;
146 double robot_radius_expansion_amount;
147
161 ObstaclePtr createFromFieldRectangle(const Rectangle &field_rectangle,
162 const Rectangle &field_lines,
163 const Rectangle &field_boundary,
164 double additional_expansion_amount = 0.0) const;
165
185 std::vector<ObstaclePtr> createGoalObstacles(const Rectangle &goal,
186 bool isFriendly) const;
187};
Definition circle.h:10
Definition point.h:14
Definition polygon.h:12
Definition rectangle.h:10
Definition robot_navigation_obstacle_factory.h:19
ObstaclePtr createCircleWithTrajectory(const Circle &circle, const TrajectoryPath &traj) const
Definition robot_navigation_obstacle_factory.cpp:242
ObstaclePtr createFromShape(const Circle &circle) const
Definition robot_navigation_obstacle_factory.cpp:257
ObstaclePtr createConstVelocityEnemyRobotObstacle(const Robot &enemy_robot) const
Definition robot_navigation_obstacle_factory.cpp:213
ObstaclePtr createFromBallPosition(const Point &ball_position) const
Definition robot_navigation_obstacle_factory.cpp:188
ObstaclePtr createStadiumEnemyRobotObstacle(const Robot &enemy_robot) const
Definition robot_navigation_obstacle_factory.cpp:194
std::vector< ObstaclePtr > createObstaclesFromMotionConstraints(const std::set< TbotsProto::MotionConstraint > &motion_constraints, const World &world) const
Definition robot_navigation_obstacle_factory.cpp:173
ObstaclePtr createFromMovingRobot(const Robot &robot, const TrajectoryPath &traj) const
Definition robot_navigation_obstacle_factory.cpp:235
std::vector< ObstaclePtr > createObstaclesFromMotionConstraint(const TbotsProto::MotionConstraint &motion_constraint, const World &world) const
Definition robot_navigation_obstacle_factory.cpp:15
ObstaclePtr createFromBallPlacement(const Point &placement_point, const Point &ball_point) const
Definition robot_navigation_obstacle_factory.cpp:305
ObstaclePtr createStaticObstacleFromRobotPosition(const Point &robot_position) const
Definition robot_navigation_obstacle_factory.cpp:229
ObstaclePtr createCircleWithConstVelocity(const Circle &circle, const Vector &velocity) const
Definition robot_navigation_obstacle_factory.cpp:249
Definition robot.h:16
Definition stadium.h:12
Definition trajectory_path.h:19
Definition vector.h:12
Definition world.h:23