autoware.universe icon indicating copy to clipboard operation
autoware.universe copied to clipboard

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

Open VRichardJP opened this issue 1 year ago • 3 comments

Checklist

  • [X] I've read the contribution guidelines.
  • [X] I've searched other issues and no duplicate issues were found.
  • [X] 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:

https://github.com/autowarefoundation/autoware.universe/blob/142bc49b57f6ca002c99efa6406b22ce9012448d/control/vehicle_cmd_gate/src/vehicle_cmd_gate.cpp#L436-L440

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 avatar Jan 10 '24 11:01 VRichardJP

Thank you for the report, it might be same issue as in https://github.com/autowarefoundation/autoware.universe/issues/4915 I created PRs for this issue but it still waits for review https://github.com/autowarefoundation/autoware.universe/pull/5183

brkay54 avatar Jan 10 '24 12:01 brkay54

@brkay54 Yes, this is the same issue. I have tested https://github.com/autowarefoundation/autoware.universe/pull/5183 and it works perfectly.

VRichardJP avatar Jan 11 '24 00:01 VRichardJP

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

brkay54 avatar Jan 11 '24 13:01 brkay54