@@ -26,8 +26,6 @@ MrmHandler::MrmHandler() : Node("mrm_handler")
26
26
declare_parameter<double >(" timeout_operation_mode_availability" , 0.5 );
27
27
param_.use_emergency_holding = declare_parameter<bool >(" use_emergency_holding" , false );
28
28
param_.timeout_emergency_recovery = declare_parameter<double >(" timeout_emergency_recovery" , 5.0 );
29
- param_.timeout_takeover_request = declare_parameter<double >(" timeout_takeover_request" , 10.0 );
30
- param_.use_takeover_request = declare_parameter<bool >(" use_takeover_request" , false );
31
29
param_.use_parking_after_stopped = declare_parameter<bool >(" use_parking_after_stopped" , false );
32
30
param_.use_pull_over = declare_parameter<bool >(" use_pull_over" , false );
33
31
param_.use_comfortable_stop = declare_parameter<bool >(" use_comfortable_stop" , false );
@@ -434,41 +432,23 @@ void MrmHandler::updateMrmState()
434
432
435
433
// Get mode
436
434
const bool is_auto_mode = control_mode_->mode == ControlModeReport::AUTONOMOUS;
437
- const bool is_takeover_done = control_mode_->mode == ControlModeReport::MANUAL;
438
435
439
436
// State Machine
440
437
if (mrm_state_.state == MrmState::NORMAL) {
441
438
// NORMAL
442
439
if (is_auto_mode && is_emergency) {
443
- if (param_.use_takeover_request ) {
444
- takeover_requested_time_ = this ->get_clock ()->now ();
445
- is_takeover_request_ = true ;
446
- return ;
447
- } else {
448
- transitionTo (MrmState::MRM_OPERATING);
449
- return ;
450
- }
440
+ transitionTo (MrmState::MRM_OPERATING);
441
+ return ;
451
442
}
452
443
} else {
453
444
// Emergency
454
- // Send recovery events if "not emergency" or "takeover done"
445
+ // Send recovery events if "not emergency"
455
446
if (!is_emergency) {
456
447
transitionTo (MrmState::NORMAL);
457
448
return ;
458
449
}
459
- // TODO(TetsuKawa): Check if human can safely override, for example using DSM
460
- if (is_takeover_done) {
461
- transitionTo (MrmState::NORMAL);
462
- return ;
463
- }
464
450
465
- if (is_takeover_request_) {
466
- const auto time_from_takeover_request = this ->get_clock ()->now () - takeover_requested_time_;
467
- if (time_from_takeover_request.seconds () > param_.timeout_takeover_request ) {
468
- transitionTo (MrmState::MRM_OPERATING);
469
- return ;
470
- }
471
- } else if (mrm_state_.state == MrmState::MRM_OPERATING) {
451
+ if (mrm_state_.state == MrmState::MRM_OPERATING) {
472
452
// TODO(TetsuKawa): Check MRC is accomplished
473
453
if (mrm_state_.behavior == MrmState::PULL_OVER) {
474
454
if (isStopped () && isArrivedAtGoal ()) {
0 commit comments