From a4fb1e9a4b346766e7645624a21a219309f999ff Mon Sep 17 00:00:00 2001 From: siyangy Date: Tue, 1 Aug 2017 13:09:36 -0700 Subject: [PATCH] Add routing callback to sim control --- .../dreamview/backend/sim_control/sim_control.cc | 14 ++++++++++---- .../dreamview/backend/sim_control/sim_control.h | 4 ++++ 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/modules/dreamview/backend/sim_control/sim_control.cc b/modules/dreamview/backend/sim_control/sim_control.cc index 080bbb29a0..bc230969e2 100644 --- a/modules/dreamview/backend/sim_control/sim_control.cc +++ b/modules/dreamview/backend/sim_control/sim_control.cc @@ -40,8 +40,9 @@ SimControl::SimControl() : prev_point_index_(0), next_point_index_(0), received_planning_(false), - initial_start_(true) { - if (FLAGS_enable_sim_control) { + initial_start_(true), + enabled_(FLAGS_enable_sim_control) { + if (enabled_) { RoutingResult routing; if (!GetProtoFromFile(FLAGS_routing_result_file, &routing)) { AWARN << "Unable to read start point from file: " @@ -70,13 +71,16 @@ void SimControl::SetStartPoint(const RoutingResult& routing) { prev_point_index_ = next_point_index_ = 0; received_planning_ = false; - Start(); + if (enabled_) { + Start(); + } } void SimControl::Start() { if (initial_start_) { - // Setup planning data callback. + // Setup planning and routing result data callback. AdapterManager::SetPlanningCallback(&SimControl::OnPlanning, this); + AdapterManager::SetRoutingResultCallback(&SimControl::SetStartPoint, this); // Start timer to publish localiztion and chassis messages. sim_control_timer_ = AdapterManager::CreateTimer( @@ -172,6 +176,8 @@ void SimControl::PublishChassis(double lambda) { chassis.set_engine_started(true); chassis.set_driving_mode(Chassis::COMPLETE_AUTO_DRIVE); chassis.set_gear_location(Chassis::GEAR_DRIVE); + // TODO(siyangy): set the real steering percentage. + chassis.set_steering_percentage(0.0); double cur_speed = Interpolate(prev_point_.v(), next_point_.v(), lambda); chassis.set_speed_mps(cur_speed); diff --git a/modules/dreamview/backend/sim_control/sim_control.h b/modules/dreamview/backend/sim_control/sim_control.h index 09b1daabc9..9c2a26a3f6 100644 --- a/modules/dreamview/backend/sim_control/sim_control.h +++ b/modules/dreamview/backend/sim_control/sim_control.h @@ -95,6 +95,10 @@ class SimControl { // Whether it is the first time the SimControl gets started. bool initial_start_; + // Whether the sim control is enabled. + // TODO(siyangy): This could be toggled by frontend. + bool enabled_; + apollo::common::TrajectoryPoint prev_point_; apollo::common::TrajectoryPoint next_point_; }; -- GitLab