scenario_simulator_v2 C++ API
misc_object_entity.hpp
Go to the documentation of this file.
1 // Copyright 2015 TIER IV, Inc. All rights reserved.
2 //
3 // Licensed under the Apache License, Version 2.0 (the "License");
4 // you may not use this file except in compliance with the License.
5 // You may obtain a copy of the License at
6 //
7 // http://www.apache.org/licenses/LICENSE-2.0
8 //
9 // Unless required by applicable law or agreed to in writing, software
10 // distributed under the License is distributed on an "AS IS" BASIS,
11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 // See the License for the specific language governing permissions and
13 // limitations under the License.
14 
15 #ifndef TRAFFIC_SIMULATOR__ENTITY__MISC_OBJECT_ENTITY_HPP_
16 #define TRAFFIC_SIMULATOR__ENTITY__MISC_OBJECT_ENTITY_HPP_
17 
18 #include <optional>
20 #include <traffic_simulator_msgs/msg/misc_object_parameters.hpp>
21 
22 namespace traffic_simulator
23 {
24 namespace entity
25 {
27 {
28 public:
29  explicit MiscObjectEntity(
31  const std::shared_ptr<hdmap_utils::HdMapUtils> &,
32  const traffic_simulator_msgs::msg::MiscObjectParameters &);
33 
34  void onUpdate(double, double) override;
35 
36  auto getCurrentAction() const -> std::string override;
37 
38  auto getDefaultDynamicConstraints() const
39  -> const traffic_simulator_msgs::msg::DynamicConstraints & override;
40 
41  auto getEntityTypename() const -> const std::string & override
42  {
43  static const std::string result = "MiscObjectEntity";
44  return result;
45  }
46 
47  ~MiscObjectEntity() override = default;
48 
49  auto getGoalPoses() -> std::vector<geometry_msgs::msg::Pose> override { return {}; }
50 
51  std::optional<traffic_simulator_msgs::msg::Obstacle> getObstacle() override
52  {
53  return std::nullopt;
54  }
55 
56  auto getRouteLanelets(double) -> lanelet::Ids override
57  {
58  THROW_SEMANTIC_ERROR("getRouteLanelets function cannot not use in MiscObjectEntity");
59  }
60 
61  auto getWaypoints() -> const traffic_simulator_msgs::msg::WaypointsArray override
62  {
63  return traffic_simulator_msgs::msg::WaypointsArray();
64  }
65 
66  void requestSpeedChange(double, bool) override;
67 
68  void requestSpeedChange(const speed_change::RelativeTargetSpeed &, bool) override;
69 
71  const std::vector<CanonicalizedLaneletPose> &, const RouteOption &) override
72  {
73  THROW_SEMANTIC_ERROR("requestAssignRoute function cannot not use in MiscObjectEntity");
74  }
75 
77  const std::vector<geometry_msgs::msg::Pose> &, const RouteOption &) override
78  {
79  THROW_SEMANTIC_ERROR("requestAssignRoute function cannot not use in MiscObjectEntity");
80  }
81 
83  {
84  THROW_SEMANTIC_ERROR("requestAcquirePosition function cannot not use in MiscObjectEntity");
85  }
86 
88  {
89  THROW_SEMANTIC_ERROR("requestAcquirePosition function cannot not use in MiscObjectEntity");
90  }
91 
92  void requestSpeedChange(
93  const double, const speed_change::Transition, const speed_change::Constraint,
94  const bool) override;
95 
96  auto getBehaviorParameter() const -> traffic_simulator_msgs::msg::BehaviorParameter override;
97 
98  void setBehaviorParameter(const traffic_simulator_msgs::msg::BehaviorParameter &) override;
99 
100  void setVelocityLimit(double) override
101  {
103  }
104 
105  void setAccelerationLimit(double) override
106  {
108  }
109 
110  void setAccelerationRateLimit(double) override
111  {
113  }
114 
115  void setDecelerationLimit(double) override
116  {
118  }
119 
120  void setDecelerationRateLimit(double) override
121  {
123  }
124 
125  auto getMaxAcceleration() const -> double override
126  {
127  THROW_SEMANTIC_ERROR("getMaxAcceleration function cannot not use in MiscObjectEntity");
128  }
129 
130  auto getMaxDeceleration() const -> double override
131  {
132  THROW_SEMANTIC_ERROR("getMaxDeceleration function cannot not use in MiscObjectEntity");
133  }
134 };
135 } // namespace entity
136 } // namespace traffic_simulator
137 
138 #endif // TRAFFIC_SIMULATOR__ENTITY__MISC_OBJECT_ENTITY_HPP_
Definition: entity_base.hpp:53
const std::string name
Definition: entity_base.hpp:347
Definition: misc_object_entity.hpp:27
void requestAssignRoute(const std::vector< CanonicalizedLaneletPose > &, const RouteOption &) override
Definition: misc_object_entity.hpp:70
void setAccelerationRateLimit(double) override
Definition: misc_object_entity.hpp:110
void setBehaviorParameter(const traffic_simulator_msgs::msg::BehaviorParameter &) override
Definition: misc_object_entity.cpp:49
auto getGoalPoses() -> std::vector< geometry_msgs::msg::Pose > override
Definition: misc_object_entity.hpp:49
void requestSpeedChange(double, bool) override
Definition: misc_object_entity.cpp:70
void onUpdate(double, double) override
Definition: misc_object_entity.cpp:29
auto getMaxAcceleration() const -> double override
Definition: misc_object_entity.hpp:125
void setAccelerationLimit(double) override
Definition: misc_object_entity.hpp:105
void requestAcquirePosition(const CanonicalizedLaneletPose &, const RouteOption &) override
Definition: misc_object_entity.hpp:82
void requestAcquirePosition(const geometry_msgs::msg::Pose &, const RouteOption &) override
Definition: misc_object_entity.hpp:87
void setVelocityLimit(double) override
Definition: misc_object_entity.hpp:100
std::optional< traffic_simulator_msgs::msg::Obstacle > getObstacle() override
Definition: misc_object_entity.hpp:51
void setDecelerationLimit(double) override
Definition: misc_object_entity.hpp:115
MiscObjectEntity(const std::string &name, const CanonicalizedEntityStatus &, const std::shared_ptr< hdmap_utils::HdMapUtils > &, const traffic_simulator_msgs::msg::MiscObjectParameters &)
Definition: misc_object_entity.cpp:21
void requestAssignRoute(const std::vector< geometry_msgs::msg::Pose > &, const RouteOption &) override
Definition: misc_object_entity.hpp:76
auto getCurrentAction() const -> std::string override
Definition: misc_object_entity.cpp:38
auto getEntityTypename() const -> const std::string &override
Definition: misc_object_entity.hpp:41
auto getBehaviorParameter() const -> traffic_simulator_msgs::msg::BehaviorParameter override
Definition: misc_object_entity.cpp:43
auto getMaxDeceleration() const -> double override
Definition: misc_object_entity.hpp:130
auto getRouteLanelets(double) -> lanelet::Ids override
Definition: misc_object_entity.hpp:56
void setDecelerationRateLimit(double) override
Definition: misc_object_entity.hpp:120
auto getWaypoints() -> const traffic_simulator_msgs::msg::WaypointsArray override
Definition: misc_object_entity.hpp:61
auto getDefaultDynamicConstraints() const -> const traffic_simulator_msgs::msg::DynamicConstraints &override
Definition: misc_object_entity.cpp:54
Definition: entity_status.hpp:32
Definition: lanelet_pose.hpp:28
#define THROW_SEMANTIC_ERROR(...)
Definition: exception.hpp:59
Definition: lanelet_wrapper.hpp:40
geometry_msgs::msg::Pose Pose
Definition: lanelet_wrapper.hpp:66
Transition
Definition: speed_change.hpp:26
Definition: api.hpp:32
std::string string
Definition: junit5.hpp:26
Definition: route_option.hpp:25
Definition: speed_change.hpp:35