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

wheel_base is not initialized for AnalyticalJerkConstrainedSmoother in BehaviorVelocityPlannerNode #6915

Closed
3 tasks done
LIIHWF opened this issue May 1, 2024 · 3 comments
Closed
3 tasks done
Assignees
Labels
component:control Vehicle control algorithms and mechanisms. (auto-assigned) component:planning Route planning, decision-making, and navigation. (auto-assigned) type:bug Software flaws or errors.

Comments

@LIIHWF
Copy link

LIIHWF commented May 1, 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

According to the code in autoware.universe/planning/behavior_velocity_planner/node.cpp, an AnalyticalJerkConstrainedSmoother is created by calling onParam() in the constructor of the node.

However, nowhere is calling setWheelBase, leading the base_param_.wheel_base in the smoother to be uninitialized.

base_param_.wheel_base is accessed in applySteeringRateLimit method. The smoother in BehaviorVelocityPlanner can reach this method when executing behavior_velocity_intersection_module and calling checkCollision method in scene_intersection.cpp. The call chain is checkCollision -> util::calcIntersectionPassingTime -> smoothPath -> applySteeringRateLimit.

This should be a BUG and can be corrected by initializing wheel_base somewhere.

Expected behavior

base_param_.wheel_base is initialized after AnalyticalJerkConstrainedSmoother being constructed in autoware.universe/planning/behavior_velocity_planner/node.cpp (onParam)

Actual behavior

AnalyticalJerkConstrainedSmoother is constructed without any initialization in autoware.universe/planning/behavior_velocity_planner/node.cpp (onParam)

Steps to reproduce

Check the call chain checkCollision -> util::calcIntersectionPassingTime -> smoothPath -> applySteeringRateLimit by seeing the sources:

  • autoware.universe/planning/behavior_velocity_planner/node.cpp (AnalyticalJerkConstrainedSmoother is created in onParam())
  • autoware.universe/planning/behavior_velocity_intersection_module/src/scene_intersection.cpp (defines checkCollision called by modifyPathVelocityDetail <- modifyPathVelocity)
  • autoware.universe/planning/behavior_velocity_intersection_module/src/util.cpp (defines util::calcIntersectionPassingTime)
  • autoware.universe/planning/motion_velocity_smoother/src/smoother/smoother_base.cpp (defines applySteeringRateLimit)

Versions

No response

Possible causes

No response

Additional context

No response

@idorobotics idorobotics added the type:bug Software flaws or errors. label May 2, 2024
@soblin
Copy link
Contributor

soblin commented May 8, 2024

Thanks a lot, I will take a look at it

@meliketanrikulu meliketanrikulu added component:planning Route planning, decision-making, and navigation. (auto-assigned) component:control Vehicle control algorithms and mechanisms. (auto-assigned) labels May 9, 2024
@soblin
Copy link
Contributor

soblin commented May 21, 2024

#7078

@soblin
Copy link
Contributor

soblin commented May 21, 2024

The PR will be merged soon, thank you !

@soblin soblin closed this as completed May 21, 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) component:planning Route planning, decision-making, and navigation. (auto-assigned) type:bug Software flaws or errors.
Development

No branches or pull requests

4 participants