提交 a4fb1e9a 编写于 作者: S siyangy 提交者: Calvin Miao

Add routing callback to sim control

上级 410e856b
......@@ -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);
......
......@@ -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_;
};
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册