Skip to content

7.4.7

Compare
Choose a tag to compare
@github-actions github-actions released this 20 Jan 08:44
· 167 commits to master since this release

Abstract

This PR contains a bug fix for the issue described here.
After applying this fix, the scenario in question now passes.

Details

  1. The problem arises when behavior_plugin_ptr_->getWaypoints() is called while the Blackboard does not contain the Waypoints value yet. In this function:
    https://github.com/tier4/scenario_simulator_v2/blob/ee61ede05d2969a395e9a946d0d035b73c845910/simulation/traffic_simulator/src/entity/vehicle_entity.cpp#L114-L127
  2. Default-initializing the missing values (that is, Waypoints and Obstacle) in the vehicle constructor seems to be fixing the issue.
  3. But after a deeper dive into the behavior tree actions, I have found an abnormality in the code:
    https://github.com/tier4/scenario_simulator_v2/blob/ee61ede05d2969a395e9a946d0d035b73c845910/simulation/behavior_tree_plugin/src/vehicle/follow_lane_sequence/follow_lane_action.cpp#L69-L138
  • There are multiple actions overloading tick() method (such as StopAtStopLineAction or FollowFrontEntityAction).
  • if the tick() method returns BT::NodeStatus::RUNNING or BT::NodeStatus::SUCCESS there is always setOutput("waypoints", waypoints); setOutput("obstacle", calculateObstacle(waypoints));.
  • if the tick() method returns BT::NodeStatus::FAILURE waypoints and obstacle is never set.
  • the only exception to this rule is changed in this PR.
  • removing this abnormality also fixes the issue.

References

Regressions OK

Related Issues