Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Vehicle get stuck because vehicle command gate does not want to send steering command while "paused" #6044

Closed
3 tasks done
VRichardJP opened this issue Jan 10, 2024 · 3 comments · Fixed by #5183
Closed
3 tasks done
Assignees
Labels
component:control Vehicle control algorithms and mechanisms. (auto-assigned)

Comments

@VRichardJP
Copy link
Contributor

VRichardJP commented Jan 10, 2024

Checklist

  • I've read the contribution guidelines.
  • I've searched other issues and no duplicate issues were found.
  • I'm convinced that this is not my fault but a bug.

Description

I have this problem with freespace planning where Autoware often refuse to restart after it has been stopped halfway in a curve:

image

I observe the trajectory follower node complains the steering is not converged so it requires the vehicle to remain stopped. Yet, it outputs the correct steering target in the control command message:

Current steering when stuck (/vehicle/status/steering_status):

stamp:
  sec: 1704883251
  nanosec: 691513130
steering_tire_angle: -0.07187381386756897

Trajectory follower node command (/control/trajectory_follower/control_cmd):

stamp:
  sec: 1704882913
  nanosec: 889614390
lateral:
  stamp:
    sec: 1704882913
    nanosec: 889451380
  steering_tire_angle: 0.393218457698822
  steering_tire_rotation_rate: 0.5679231286048889
longitudinal:
  stamp:
    sec: 1704882913
    nanosec: 889483518
  speed: 0.0
  acceleration: -3.409665822982788
  jerk: 0.0

Right after the trajectory follower node, there is the vehicle command gate. And I see the control command keeps the current steering instead of forwarding the trajectory controller node command:

/control/command/control_cmd:

stamp:
  sec: 1704882999
  nanosec: 749559566
lateral:
  stamp:
    sec: 1704882999
    nanosec: 749559566
  steering_tire_angle: -0.07187381386756897
  steering_tire_rotation_rate: 0.0
longitudinal:
  stamp:
    sec: 1704882999
    nanosec: 749559566
  speed: 0.0
  acceleration: -1.5
  jerk: 0.0

By adding a couple printf, I found that the vehicle command is changed to a stop because the AdapiPauseInterface "is paused". Here:

// Check pause. Place this check after all other checks as it needs the final output.
adapi_pause_->update(filtered_commands.control);
if (adapi_pause_->is_paused()) {
filtered_commands.control = createStopControlCmd();
}

I am not sure what it means, or how to leave this state. Is it paused because the vehicle is stopped? But then, the vehicle is stopped because the steering is not converged, and the steering is not moved because the vehicle is stopped?

Any idea ?

Expected behavior

Autoware doesn't get stuck

Actual behavior

Gets stuck on steering not converged

Steps to reproduce

Difficult. The problem occurs only with my custom freespace planner algorithm

Versions

No response

Possible causes

No response

Additional context

No response

@VRichardJP VRichardJP added the component:control Vehicle control algorithms and mechanisms. (auto-assigned) label Jan 10, 2024
@brkay54
Copy link
Member

brkay54 commented Jan 10, 2024

Thank you for the report, it might be same issue as in #4915
I created PRs for this issue but it still waits for review #5183

@VRichardJP
Copy link
Contributor Author

@brkay54 Yes, this is the same issue.
I have tested #5183 and it works perfectly.

@brkay54
Copy link
Member

brkay54 commented Jan 11, 2024

@VRichardJP Thank you for the confirmation. I also linked this issue to the PR.

@brkay54 brkay54 self-assigned this Jan 14, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
component:control Vehicle control algorithms and mechanisms. (auto-assigned)
Projects
None yet
2 participants