64 void Init(
bool set_start_point, nlohmann::json start_point_attr,
65 bool use_start_point_position =
false)
override;
71 void Start()
override;
86 void Reset()
override;
92 const std::shared_ptr<apollo::planning::ADCTrajectory> &trajectory);
93 void OnPlanningCommand(
94 const std::shared_ptr<apollo::planning::PlanningCommand>
96 void OnReceiveNavigationInfo(
97 const std::shared_ptr<apollo::relative_map::NavigationInfo>
99 void OnPredictionObstacles(
100 const std::shared_ptr<apollo::prediction::PredictionObstacles>
106 bool PerfectControlModel(
110 void PublishChassis(
double cur_speed,
115 void PublishDummyPrediction();
117 void InitTimerAndIO();
123 void Start(
double x,
double y,
double v = 0.0,
double a = 0.0)
override;
125 void InitStartPoint(
double start_velocity,
double start_acceleration);
129 void InitStartPoint(
double x,
double y,
double start_velocity,
130 double start_acceleration);
138 void ClearPlanning();
140 void InternalReset();
144 std::unique_ptr<cyber::Node> node_;
146 std::shared_ptr<cyber::Reader<apollo::localization::LocalizationEstimate>>
147 localization_reader_;
148 std::shared_ptr<cyber::Reader<apollo::planning::ADCTrajectory>>
150 std::shared_ptr<cyber::Reader<apollo::relative_map::NavigationInfo>>
152 std::shared_ptr<cyber::Reader<apollo::prediction::PredictionObstacles>>
154 std::shared_ptr<cyber::Reader<apollo::planning::PlanningCommand>>
155 planning_command_reader_;
156 std::shared_ptr<cyber::Writer<apollo::localization::LocalizationEstimate>>
157 localization_writer_;
158 std::shared_ptr<cyber::Writer<apollo::canbus::Chassis>> chassis_writer_;
159 std::shared_ptr<cyber::Writer<apollo::prediction::PredictionObstacles>>
163 std::unique_ptr<cyber::Timer> sim_control_timer_;
166 std::unique_ptr<cyber::Timer> sim_prediction_timer_;
169 static constexpr double kSimControlIntervalMs = 10;
170 static constexpr double kSimPredictionIntervalMs = 100;
173 std::shared_ptr<apollo::planning::ADCTrajectory> current_trajectory_;
176 int prev_point_index_ = 0;
177 int next_point_index_ = 0;
180 bool received_planning_ =
false;
183 bool start_point_from_localization_ =
false;
186 bool send_dummy_prediction_ =
true;
199 std::mutex timer_mutex_;
201 FRIEND_TEST(SimControlTest, Test);
202 FRIEND_TEST(SimControlTest, TestDummyPrediction);