Package Summary
| Version | 0.53.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-10-23 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Yukinari Hisaki
- Mamoru Sobue
- Takayuki Murooka
Authors
- Yukinari Hisaki
Bidirectional Traffic
This module enables trajectory planning for vehicles on “single-lane bidirectional traffic” roads in autonomous driving systems. Here, “single-lane bidirectional traffic” refers to roads without a centerline, such as those commonly found in residential areas, as shown in the image below.

In the following descriptions, the term bidirectional traffic refers specifically to such single-lane bidirectional roads as shown in the image above.
Purpose/Role
The main roles of this module are as follows:
-
Generating a driving trajectory along the left (or right) side of the road center
This module provides a function to generate a trajectory along the left (or right) side of the road center on bidirectional traffic lanes. In some countries, traffic laws require vehicles to drive on the left or right side of the road center on bidirectional roads. For example, in Japan, Article 18, Paragraph 1 of the Road Traffic Act requires that vehicles must keep to the left side of the road center. Because of these legal requirements, this module provides the function to generate a trajectory that follows the left (or right) side of the road center on bidirectional roads.
-
Giving way to oncoming vehicles on bidirectional traffic roads
This module provides the function for the ego vehicle to stop on the left side of the road and give way to oncoming vehicles in all situations where vehicles must pass each other on bidirectional roads. Bidirectional traffic roads are often narrow, and it is dangerous for both the ego vehicle and the oncoming vehicle to pass while moving simultaneously. To avoid such dangerous situations, this module enables the ego vehicle to stop on the left side of the road until the oncoming vehicle has completely passed.
The representation of bidirectional traffic on a Lanelet map
Bidirectional lanelets are represented on a Lanelet map as two lanes with opposite directions that share the same LineString as their boundary. There is no need to assign any special tags to the lanelets.

Limitations
This module does not support the following situations or functionalities.
-
Handling situations where passing is not possible
Depending on factors such as lane width, the size of the ego vehicle and the oncoming vehicle, and the surrounding environment, simple behaviors like those shown in the video above may not be sufficient for passing. In such cases, special behaviours such as reversing or clearing an intersection may be required. However, this module does not provide such functionality.
-
When the oncoming vehicle is giving way or moving slowly
In cases where the oncoming vehicle is trying to give way or is traveling at a low speed, it may be more appropriate for the ego vehicle to continue driving rather than stopping to give way. However, this module does not make any decision about whether to give way to the oncoming vehicle – it always pulls over to the left and stops.
-
Does not support the functionality of pulling into the shoulder to stop and give way
Depending on the road width, the ego vehicle may need to enter the shoulder in order to give way to an oncoming vehicle. However, this module does not support such functionality.
Inner workings/Algorithms
This module does not support the following situations or functionalities.
Keep Left
This module detects bidirectional lanelets from the lanelet map and performs a keep left maneuver. When keeping left, the shift starts from the beginning of the lanelet immediately before the bidirectional lanelet, and ends at the end of the bidirectional lanelet.
Give Way
State transition of GiveWay
To perform the give way maneuver, the GiveWay module has five internal states.
-
NoNeedToGiveWay
No oncoming vehicles present and driving normally or oncoming vehicles are far away.
-
ApproachingToShift
If an oncoming vehicle is detected, it generates a path to shift left and pull over, approaching the shift start point.
-
ShiftingRoadside
-
WaitingForOncomingCarsToPass
The ego vehicle stops and waits until all oncoming vehicles have passed.
-
BackToNormalLane
After the oncoming vehicle has passed, the ego vehicle performs a shift to return to its original driving lane.
The state transition diagram of the GiveWay module is shown below.
```plantuml @startuml skinparam state { BackgroundColor White BorderColor Black FontName “Arial” }
[*] –> NoNeedToGiveWay
state NoNeedToGiveWay : No oncoming vehicles,\ndriving normally state ApproachingToShift : Oncoming vehicle detected,\napproaching shift start
File truncated at 100 lines see the full file
Changelog for package autoware_behavior_path_bidirectional_traffic_module
0.53.0 (2026-09-29)
-
Merge remote-tracking branch 'origin/main' into prepare-0.53.0-changelog
-
chore(pre-commit): update clang-format to v22.1.5 (#13126)
- chore(pre-commit): update clang-format to v22.1.5
* style(pre-commit): autofix ---------
-
fix(pre-commit): update pre-commit-hooks-ros to v0.10.3 and adapt include guards (#13083)
- chore: sync files
* fix(pre-commit): adapt include guards to pre-commit-hooks-ros v0.10.3 ros-include-guard v0.10.3 only recognises an include guard when #endif is the last non-empty line of the file, so that feature test macros are no longer mistaken for guards. 29 headers failed that check. 25 headers wrap the guard in "// clang-format off" / "// clang-format on" because the #endif comment plus its // NOLINT exceeds the 100 column limit. Drop only the trailing "on" marker; the "off" marker then runs to end of file and still protects the line from being wrapped. 3 CUDA headers ended with "/* INDENT-ON /". Move it above the #endif so it stays paired with the "/ INDENT-OFF */" near the top of the file. autoware_behavior_path_planner/test/input.hpp closed its guard immediately after opening it, leaving the entire body unguarded. Move the #endif to the end. Also hold clang-format at v21.1.8. clang-format 22 migrates "AlignAfterOpenBracket: AlwaysBreak" to "BreakAfterOpenBracketIf: true", which forces a break after every "if (" whose condition does not fit on one line and reformats 88 files. ---------Co-authored-by: github-actions <<github-actions@github.com>> Co-authored-by: Mete Fatih Cırıt <<mfc@autoware.org>>
-
Contributors: Mete Fatih Cırıt, Ryohsuke Mitsudome, awf-autoware-bot[bot]
0.52.0 (2026-06-30)
0.51.0 (2026-05-01)
- Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
- feat(planning): replace autoware_universe_utils with specific autoware_utils sub-packagesr (#12443)
- Contributors: Vishal Chauhan, github-actions
0.50.0 (2026-02-14)
0.49.0 (2025-12-30)
0.48.0 (2025-11-18)
- Merge remote-tracking branch 'origin/main' into humble
- fix(bidirectional_traffic): suppress warning (#11221)
- fix(autoware_behavior_path_bidirectional_traffic_module): remove unused function (#11185)
- Contributors: Ryohsuke Mitsudome, Ryuta Kambe, Yukinari Hisaki
0.47.1 (2025-08-14)
0.47.0 (2025-08-11)
- style(pre-commit): update to clang-format-20 (#11088) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
- chore(bidirectional_traffic): modify readme (#10943) Update README.md
- Contributors: Mete Fatih Cırıt, Yukinari Hisaki
0.46.0 (2025-06-20)
-
Merge remote-tracking branch 'upstream/main' into tmp/TaikiYamada/bump_version_base
-
feat(autoware_behavior_path_bidirectional_traffic_module): add a functionality for bidirectional traffic (#10394)
- add bidirectional traffic module
- first version
- add virtual wall
- WIP
- apply new message type
- revert autoware_trajectory change
- WIP
- developping...
- fix bug
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
| Name |
|---|
| fmt |
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged autoware_behavior_path_bidirectional_traffic_module at Robotics Stack Exchange
Package Summary
| Version | 0.53.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-10-23 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Yukinari Hisaki
- Mamoru Sobue
- Takayuki Murooka
Authors
- Yukinari Hisaki
Bidirectional Traffic
This module enables trajectory planning for vehicles on “single-lane bidirectional traffic” roads in autonomous driving systems. Here, “single-lane bidirectional traffic” refers to roads without a centerline, such as those commonly found in residential areas, as shown in the image below.

In the following descriptions, the term bidirectional traffic refers specifically to such single-lane bidirectional roads as shown in the image above.
Purpose/Role
The main roles of this module are as follows:
-
Generating a driving trajectory along the left (or right) side of the road center
This module provides a function to generate a trajectory along the left (or right) side of the road center on bidirectional traffic lanes. In some countries, traffic laws require vehicles to drive on the left or right side of the road center on bidirectional roads. For example, in Japan, Article 18, Paragraph 1 of the Road Traffic Act requires that vehicles must keep to the left side of the road center. Because of these legal requirements, this module provides the function to generate a trajectory that follows the left (or right) side of the road center on bidirectional roads.
-
Giving way to oncoming vehicles on bidirectional traffic roads
This module provides the function for the ego vehicle to stop on the left side of the road and give way to oncoming vehicles in all situations where vehicles must pass each other on bidirectional roads. Bidirectional traffic roads are often narrow, and it is dangerous for both the ego vehicle and the oncoming vehicle to pass while moving simultaneously. To avoid such dangerous situations, this module enables the ego vehicle to stop on the left side of the road until the oncoming vehicle has completely passed.
The representation of bidirectional traffic on a Lanelet map
Bidirectional lanelets are represented on a Lanelet map as two lanes with opposite directions that share the same LineString as their boundary. There is no need to assign any special tags to the lanelets.

Limitations
This module does not support the following situations or functionalities.
-
Handling situations where passing is not possible
Depending on factors such as lane width, the size of the ego vehicle and the oncoming vehicle, and the surrounding environment, simple behaviors like those shown in the video above may not be sufficient for passing. In such cases, special behaviours such as reversing or clearing an intersection may be required. However, this module does not provide such functionality.
-
When the oncoming vehicle is giving way or moving slowly
In cases where the oncoming vehicle is trying to give way or is traveling at a low speed, it may be more appropriate for the ego vehicle to continue driving rather than stopping to give way. However, this module does not make any decision about whether to give way to the oncoming vehicle – it always pulls over to the left and stops.
-
Does not support the functionality of pulling into the shoulder to stop and give way
Depending on the road width, the ego vehicle may need to enter the shoulder in order to give way to an oncoming vehicle. However, this module does not support such functionality.
Inner workings/Algorithms
This module does not support the following situations or functionalities.
Keep Left
This module detects bidirectional lanelets from the lanelet map and performs a keep left maneuver. When keeping left, the shift starts from the beginning of the lanelet immediately before the bidirectional lanelet, and ends at the end of the bidirectional lanelet.
Give Way
State transition of GiveWay
To perform the give way maneuver, the GiveWay module has five internal states.
-
NoNeedToGiveWay
No oncoming vehicles present and driving normally or oncoming vehicles are far away.
-
ApproachingToShift
If an oncoming vehicle is detected, it generates a path to shift left and pull over, approaching the shift start point.
-
ShiftingRoadside
-
WaitingForOncomingCarsToPass
The ego vehicle stops and waits until all oncoming vehicles have passed.
-
BackToNormalLane
After the oncoming vehicle has passed, the ego vehicle performs a shift to return to its original driving lane.
The state transition diagram of the GiveWay module is shown below.
```plantuml @startuml skinparam state { BackgroundColor White BorderColor Black FontName “Arial” }
[*] –> NoNeedToGiveWay
state NoNeedToGiveWay : No oncoming vehicles,\ndriving normally state ApproachingToShift : Oncoming vehicle detected,\napproaching shift start
File truncated at 100 lines see the full file
Changelog for package autoware_behavior_path_bidirectional_traffic_module
0.53.0 (2026-09-29)
-
Merge remote-tracking branch 'origin/main' into prepare-0.53.0-changelog
-
chore(pre-commit): update clang-format to v22.1.5 (#13126)
- chore(pre-commit): update clang-format to v22.1.5
* style(pre-commit): autofix ---------
-
fix(pre-commit): update pre-commit-hooks-ros to v0.10.3 and adapt include guards (#13083)
- chore: sync files
* fix(pre-commit): adapt include guards to pre-commit-hooks-ros v0.10.3 ros-include-guard v0.10.3 only recognises an include guard when #endif is the last non-empty line of the file, so that feature test macros are no longer mistaken for guards. 29 headers failed that check. 25 headers wrap the guard in "// clang-format off" / "// clang-format on" because the #endif comment plus its // NOLINT exceeds the 100 column limit. Drop only the trailing "on" marker; the "off" marker then runs to end of file and still protects the line from being wrapped. 3 CUDA headers ended with "/* INDENT-ON /". Move it above the #endif so it stays paired with the "/ INDENT-OFF */" near the top of the file. autoware_behavior_path_planner/test/input.hpp closed its guard immediately after opening it, leaving the entire body unguarded. Move the #endif to the end. Also hold clang-format at v21.1.8. clang-format 22 migrates "AlignAfterOpenBracket: AlwaysBreak" to "BreakAfterOpenBracketIf: true", which forces a break after every "if (" whose condition does not fit on one line and reformats 88 files. ---------Co-authored-by: github-actions <<github-actions@github.com>> Co-authored-by: Mete Fatih Cırıt <<mfc@autoware.org>>
-
Contributors: Mete Fatih Cırıt, Ryohsuke Mitsudome, awf-autoware-bot[bot]
0.52.0 (2026-06-30)
0.51.0 (2026-05-01)
- Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
- feat(planning): replace autoware_universe_utils with specific autoware_utils sub-packagesr (#12443)
- Contributors: Vishal Chauhan, github-actions
0.50.0 (2026-02-14)
0.49.0 (2025-12-30)
0.48.0 (2025-11-18)
- Merge remote-tracking branch 'origin/main' into humble
- fix(bidirectional_traffic): suppress warning (#11221)
- fix(autoware_behavior_path_bidirectional_traffic_module): remove unused function (#11185)
- Contributors: Ryohsuke Mitsudome, Ryuta Kambe, Yukinari Hisaki
0.47.1 (2025-08-14)
0.47.0 (2025-08-11)
- style(pre-commit): update to clang-format-20 (#11088) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
- chore(bidirectional_traffic): modify readme (#10943) Update README.md
- Contributors: Mete Fatih Cırıt, Yukinari Hisaki
0.46.0 (2025-06-20)
-
Merge remote-tracking branch 'upstream/main' into tmp/TaikiYamada/bump_version_base
-
feat(autoware_behavior_path_bidirectional_traffic_module): add a functionality for bidirectional traffic (#10394)
- add bidirectional traffic module
- first version
- add virtual wall
- WIP
- apply new message type
- revert autoware_trajectory change
- WIP
- developping...
- fix bug
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
| Name |
|---|
| fmt |
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged autoware_behavior_path_bidirectional_traffic_module at Robotics Stack Exchange
Package Summary
| Version | 0.53.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-10-23 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Yukinari Hisaki
- Mamoru Sobue
- Takayuki Murooka
Authors
- Yukinari Hisaki
Bidirectional Traffic
This module enables trajectory planning for vehicles on “single-lane bidirectional traffic” roads in autonomous driving systems. Here, “single-lane bidirectional traffic” refers to roads without a centerline, such as those commonly found in residential areas, as shown in the image below.

In the following descriptions, the term bidirectional traffic refers specifically to such single-lane bidirectional roads as shown in the image above.
Purpose/Role
The main roles of this module are as follows:
-
Generating a driving trajectory along the left (or right) side of the road center
This module provides a function to generate a trajectory along the left (or right) side of the road center on bidirectional traffic lanes. In some countries, traffic laws require vehicles to drive on the left or right side of the road center on bidirectional roads. For example, in Japan, Article 18, Paragraph 1 of the Road Traffic Act requires that vehicles must keep to the left side of the road center. Because of these legal requirements, this module provides the function to generate a trajectory that follows the left (or right) side of the road center on bidirectional roads.
-
Giving way to oncoming vehicles on bidirectional traffic roads
This module provides the function for the ego vehicle to stop on the left side of the road and give way to oncoming vehicles in all situations where vehicles must pass each other on bidirectional roads. Bidirectional traffic roads are often narrow, and it is dangerous for both the ego vehicle and the oncoming vehicle to pass while moving simultaneously. To avoid such dangerous situations, this module enables the ego vehicle to stop on the left side of the road until the oncoming vehicle has completely passed.
The representation of bidirectional traffic on a Lanelet map
Bidirectional lanelets are represented on a Lanelet map as two lanes with opposite directions that share the same LineString as their boundary. There is no need to assign any special tags to the lanelets.

Limitations
This module does not support the following situations or functionalities.
-
Handling situations where passing is not possible
Depending on factors such as lane width, the size of the ego vehicle and the oncoming vehicle, and the surrounding environment, simple behaviors like those shown in the video above may not be sufficient for passing. In such cases, special behaviours such as reversing or clearing an intersection may be required. However, this module does not provide such functionality.
-
When the oncoming vehicle is giving way or moving slowly
In cases where the oncoming vehicle is trying to give way or is traveling at a low speed, it may be more appropriate for the ego vehicle to continue driving rather than stopping to give way. However, this module does not make any decision about whether to give way to the oncoming vehicle – it always pulls over to the left and stops.
-
Does not support the functionality of pulling into the shoulder to stop and give way
Depending on the road width, the ego vehicle may need to enter the shoulder in order to give way to an oncoming vehicle. However, this module does not support such functionality.
Inner workings/Algorithms
This module does not support the following situations or functionalities.
Keep Left
This module detects bidirectional lanelets from the lanelet map and performs a keep left maneuver. When keeping left, the shift starts from the beginning of the lanelet immediately before the bidirectional lanelet, and ends at the end of the bidirectional lanelet.
Give Way
State transition of GiveWay
To perform the give way maneuver, the GiveWay module has five internal states.
-
NoNeedToGiveWay
No oncoming vehicles present and driving normally or oncoming vehicles are far away.
-
ApproachingToShift
If an oncoming vehicle is detected, it generates a path to shift left and pull over, approaching the shift start point.
-
ShiftingRoadside
-
WaitingForOncomingCarsToPass
The ego vehicle stops and waits until all oncoming vehicles have passed.
-
BackToNormalLane
After the oncoming vehicle has passed, the ego vehicle performs a shift to return to its original driving lane.
The state transition diagram of the GiveWay module is shown below.
```plantuml @startuml skinparam state { BackgroundColor White BorderColor Black FontName “Arial” }
[*] –> NoNeedToGiveWay
state NoNeedToGiveWay : No oncoming vehicles,\ndriving normally state ApproachingToShift : Oncoming vehicle detected,\napproaching shift start
File truncated at 100 lines see the full file
Changelog for package autoware_behavior_path_bidirectional_traffic_module
0.53.0 (2026-09-29)
-
Merge remote-tracking branch 'origin/main' into prepare-0.53.0-changelog
-
chore(pre-commit): update clang-format to v22.1.5 (#13126)
- chore(pre-commit): update clang-format to v22.1.5
* style(pre-commit): autofix ---------
-
fix(pre-commit): update pre-commit-hooks-ros to v0.10.3 and adapt include guards (#13083)
- chore: sync files
* fix(pre-commit): adapt include guards to pre-commit-hooks-ros v0.10.3 ros-include-guard v0.10.3 only recognises an include guard when #endif is the last non-empty line of the file, so that feature test macros are no longer mistaken for guards. 29 headers failed that check. 25 headers wrap the guard in "// clang-format off" / "// clang-format on" because the #endif comment plus its // NOLINT exceeds the 100 column limit. Drop only the trailing "on" marker; the "off" marker then runs to end of file and still protects the line from being wrapped. 3 CUDA headers ended with "/* INDENT-ON /". Move it above the #endif so it stays paired with the "/ INDENT-OFF */" near the top of the file. autoware_behavior_path_planner/test/input.hpp closed its guard immediately after opening it, leaving the entire body unguarded. Move the #endif to the end. Also hold clang-format at v21.1.8. clang-format 22 migrates "AlignAfterOpenBracket: AlwaysBreak" to "BreakAfterOpenBracketIf: true", which forces a break after every "if (" whose condition does not fit on one line and reformats 88 files. ---------Co-authored-by: github-actions <<github-actions@github.com>> Co-authored-by: Mete Fatih Cırıt <<mfc@autoware.org>>
-
Contributors: Mete Fatih Cırıt, Ryohsuke Mitsudome, awf-autoware-bot[bot]
0.52.0 (2026-06-30)
0.51.0 (2026-05-01)
- Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
- feat(planning): replace autoware_universe_utils with specific autoware_utils sub-packagesr (#12443)
- Contributors: Vishal Chauhan, github-actions
0.50.0 (2026-02-14)
0.49.0 (2025-12-30)
0.48.0 (2025-11-18)
- Merge remote-tracking branch 'origin/main' into humble
- fix(bidirectional_traffic): suppress warning (#11221)
- fix(autoware_behavior_path_bidirectional_traffic_module): remove unused function (#11185)
- Contributors: Ryohsuke Mitsudome, Ryuta Kambe, Yukinari Hisaki
0.47.1 (2025-08-14)
0.47.0 (2025-08-11)
- style(pre-commit): update to clang-format-20 (#11088) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
- chore(bidirectional_traffic): modify readme (#10943) Update README.md
- Contributors: Mete Fatih Cırıt, Yukinari Hisaki
0.46.0 (2025-06-20)
-
Merge remote-tracking branch 'upstream/main' into tmp/TaikiYamada/bump_version_base
-
feat(autoware_behavior_path_bidirectional_traffic_module): add a functionality for bidirectional traffic (#10394)
- add bidirectional traffic module
- first version
- add virtual wall
- WIP
- apply new message type
- revert autoware_trajectory change
- WIP
- developping...
- fix bug
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
| Name |
|---|
| fmt |
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged autoware_behavior_path_bidirectional_traffic_module at Robotics Stack Exchange
Package Summary
| Version | 0.53.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-10-23 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Yukinari Hisaki
- Mamoru Sobue
- Takayuki Murooka
Authors
- Yukinari Hisaki
Bidirectional Traffic
This module enables trajectory planning for vehicles on “single-lane bidirectional traffic” roads in autonomous driving systems. Here, “single-lane bidirectional traffic” refers to roads without a centerline, such as those commonly found in residential areas, as shown in the image below.

In the following descriptions, the term bidirectional traffic refers specifically to such single-lane bidirectional roads as shown in the image above.
Purpose/Role
The main roles of this module are as follows:
-
Generating a driving trajectory along the left (or right) side of the road center
This module provides a function to generate a trajectory along the left (or right) side of the road center on bidirectional traffic lanes. In some countries, traffic laws require vehicles to drive on the left or right side of the road center on bidirectional roads. For example, in Japan, Article 18, Paragraph 1 of the Road Traffic Act requires that vehicles must keep to the left side of the road center. Because of these legal requirements, this module provides the function to generate a trajectory that follows the left (or right) side of the road center on bidirectional roads.
-
Giving way to oncoming vehicles on bidirectional traffic roads
This module provides the function for the ego vehicle to stop on the left side of the road and give way to oncoming vehicles in all situations where vehicles must pass each other on bidirectional roads. Bidirectional traffic roads are often narrow, and it is dangerous for both the ego vehicle and the oncoming vehicle to pass while moving simultaneously. To avoid such dangerous situations, this module enables the ego vehicle to stop on the left side of the road until the oncoming vehicle has completely passed.
The representation of bidirectional traffic on a Lanelet map
Bidirectional lanelets are represented on a Lanelet map as two lanes with opposite directions that share the same LineString as their boundary. There is no need to assign any special tags to the lanelets.

Limitations
This module does not support the following situations or functionalities.
-
Handling situations where passing is not possible
Depending on factors such as lane width, the size of the ego vehicle and the oncoming vehicle, and the surrounding environment, simple behaviors like those shown in the video above may not be sufficient for passing. In such cases, special behaviours such as reversing or clearing an intersection may be required. However, this module does not provide such functionality.
-
When the oncoming vehicle is giving way or moving slowly
In cases where the oncoming vehicle is trying to give way or is traveling at a low speed, it may be more appropriate for the ego vehicle to continue driving rather than stopping to give way. However, this module does not make any decision about whether to give way to the oncoming vehicle – it always pulls over to the left and stops.
-
Does not support the functionality of pulling into the shoulder to stop and give way
Depending on the road width, the ego vehicle may need to enter the shoulder in order to give way to an oncoming vehicle. However, this module does not support such functionality.
Inner workings/Algorithms
This module does not support the following situations or functionalities.
Keep Left
This module detects bidirectional lanelets from the lanelet map and performs a keep left maneuver. When keeping left, the shift starts from the beginning of the lanelet immediately before the bidirectional lanelet, and ends at the end of the bidirectional lanelet.
Give Way
State transition of GiveWay
To perform the give way maneuver, the GiveWay module has five internal states.
-
NoNeedToGiveWay
No oncoming vehicles present and driving normally or oncoming vehicles are far away.
-
ApproachingToShift
If an oncoming vehicle is detected, it generates a path to shift left and pull over, approaching the shift start point.
-
ShiftingRoadside
-
WaitingForOncomingCarsToPass
The ego vehicle stops and waits until all oncoming vehicles have passed.
-
BackToNormalLane
After the oncoming vehicle has passed, the ego vehicle performs a shift to return to its original driving lane.
The state transition diagram of the GiveWay module is shown below.
```plantuml @startuml skinparam state { BackgroundColor White BorderColor Black FontName “Arial” }
[*] –> NoNeedToGiveWay
state NoNeedToGiveWay : No oncoming vehicles,\ndriving normally state ApproachingToShift : Oncoming vehicle detected,\napproaching shift start
File truncated at 100 lines see the full file
Changelog for package autoware_behavior_path_bidirectional_traffic_module
0.53.0 (2026-09-29)
-
Merge remote-tracking branch 'origin/main' into prepare-0.53.0-changelog
-
chore(pre-commit): update clang-format to v22.1.5 (#13126)
- chore(pre-commit): update clang-format to v22.1.5
* style(pre-commit): autofix ---------
-
fix(pre-commit): update pre-commit-hooks-ros to v0.10.3 and adapt include guards (#13083)
- chore: sync files
* fix(pre-commit): adapt include guards to pre-commit-hooks-ros v0.10.3 ros-include-guard v0.10.3 only recognises an include guard when #endif is the last non-empty line of the file, so that feature test macros are no longer mistaken for guards. 29 headers failed that check. 25 headers wrap the guard in "// clang-format off" / "// clang-format on" because the #endif comment plus its // NOLINT exceeds the 100 column limit. Drop only the trailing "on" marker; the "off" marker then runs to end of file and still protects the line from being wrapped. 3 CUDA headers ended with "/* INDENT-ON /". Move it above the #endif so it stays paired with the "/ INDENT-OFF */" near the top of the file. autoware_behavior_path_planner/test/input.hpp closed its guard immediately after opening it, leaving the entire body unguarded. Move the #endif to the end. Also hold clang-format at v21.1.8. clang-format 22 migrates "AlignAfterOpenBracket: AlwaysBreak" to "BreakAfterOpenBracketIf: true", which forces a break after every "if (" whose condition does not fit on one line and reformats 88 files. ---------Co-authored-by: github-actions <<github-actions@github.com>> Co-authored-by: Mete Fatih Cırıt <<mfc@autoware.org>>
-
Contributors: Mete Fatih Cırıt, Ryohsuke Mitsudome, awf-autoware-bot[bot]
0.52.0 (2026-06-30)
0.51.0 (2026-05-01)
- Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
- feat(planning): replace autoware_universe_utils with specific autoware_utils sub-packagesr (#12443)
- Contributors: Vishal Chauhan, github-actions
0.50.0 (2026-02-14)
0.49.0 (2025-12-30)
0.48.0 (2025-11-18)
- Merge remote-tracking branch 'origin/main' into humble
- fix(bidirectional_traffic): suppress warning (#11221)
- fix(autoware_behavior_path_bidirectional_traffic_module): remove unused function (#11185)
- Contributors: Ryohsuke Mitsudome, Ryuta Kambe, Yukinari Hisaki
0.47.1 (2025-08-14)
0.47.0 (2025-08-11)
- style(pre-commit): update to clang-format-20 (#11088) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
- chore(bidirectional_traffic): modify readme (#10943) Update README.md
- Contributors: Mete Fatih Cırıt, Yukinari Hisaki
0.46.0 (2025-06-20)
-
Merge remote-tracking branch 'upstream/main' into tmp/TaikiYamada/bump_version_base
-
feat(autoware_behavior_path_bidirectional_traffic_module): add a functionality for bidirectional traffic (#10394)
- add bidirectional traffic module
- first version
- add virtual wall
- WIP
- apply new message type
- revert autoware_trajectory change
- WIP
- developping...
- fix bug
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
| Name |
|---|
| fmt |
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged autoware_behavior_path_bidirectional_traffic_module at Robotics Stack Exchange
Package Summary
| Version | 0.53.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-10-23 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Yukinari Hisaki
- Mamoru Sobue
- Takayuki Murooka
Authors
- Yukinari Hisaki
Bidirectional Traffic
This module enables trajectory planning for vehicles on “single-lane bidirectional traffic” roads in autonomous driving systems. Here, “single-lane bidirectional traffic” refers to roads without a centerline, such as those commonly found in residential areas, as shown in the image below.

In the following descriptions, the term bidirectional traffic refers specifically to such single-lane bidirectional roads as shown in the image above.
Purpose/Role
The main roles of this module are as follows:
-
Generating a driving trajectory along the left (or right) side of the road center
This module provides a function to generate a trajectory along the left (or right) side of the road center on bidirectional traffic lanes. In some countries, traffic laws require vehicles to drive on the left or right side of the road center on bidirectional roads. For example, in Japan, Article 18, Paragraph 1 of the Road Traffic Act requires that vehicles must keep to the left side of the road center. Because of these legal requirements, this module provides the function to generate a trajectory that follows the left (or right) side of the road center on bidirectional roads.
-
Giving way to oncoming vehicles on bidirectional traffic roads
This module provides the function for the ego vehicle to stop on the left side of the road and give way to oncoming vehicles in all situations where vehicles must pass each other on bidirectional roads. Bidirectional traffic roads are often narrow, and it is dangerous for both the ego vehicle and the oncoming vehicle to pass while moving simultaneously. To avoid such dangerous situations, this module enables the ego vehicle to stop on the left side of the road until the oncoming vehicle has completely passed.
The representation of bidirectional traffic on a Lanelet map
Bidirectional lanelets are represented on a Lanelet map as two lanes with opposite directions that share the same LineString as their boundary. There is no need to assign any special tags to the lanelets.

Limitations
This module does not support the following situations or functionalities.
-
Handling situations where passing is not possible
Depending on factors such as lane width, the size of the ego vehicle and the oncoming vehicle, and the surrounding environment, simple behaviors like those shown in the video above may not be sufficient for passing. In such cases, special behaviours such as reversing or clearing an intersection may be required. However, this module does not provide such functionality.
-
When the oncoming vehicle is giving way or moving slowly
In cases where the oncoming vehicle is trying to give way or is traveling at a low speed, it may be more appropriate for the ego vehicle to continue driving rather than stopping to give way. However, this module does not make any decision about whether to give way to the oncoming vehicle – it always pulls over to the left and stops.
-
Does not support the functionality of pulling into the shoulder to stop and give way
Depending on the road width, the ego vehicle may need to enter the shoulder in order to give way to an oncoming vehicle. However, this module does not support such functionality.
Inner workings/Algorithms
This module does not support the following situations or functionalities.
Keep Left
This module detects bidirectional lanelets from the lanelet map and performs a keep left maneuver. When keeping left, the shift starts from the beginning of the lanelet immediately before the bidirectional lanelet, and ends at the end of the bidirectional lanelet.
Give Way
State transition of GiveWay
To perform the give way maneuver, the GiveWay module has five internal states.
-
NoNeedToGiveWay
No oncoming vehicles present and driving normally or oncoming vehicles are far away.
-
ApproachingToShift
If an oncoming vehicle is detected, it generates a path to shift left and pull over, approaching the shift start point.
-
ShiftingRoadside
-
WaitingForOncomingCarsToPass
The ego vehicle stops and waits until all oncoming vehicles have passed.
-
BackToNormalLane
After the oncoming vehicle has passed, the ego vehicle performs a shift to return to its original driving lane.
The state transition diagram of the GiveWay module is shown below.
```plantuml @startuml skinparam state { BackgroundColor White BorderColor Black FontName “Arial” }
[*] –> NoNeedToGiveWay
state NoNeedToGiveWay : No oncoming vehicles,\ndriving normally state ApproachingToShift : Oncoming vehicle detected,\napproaching shift start
File truncated at 100 lines see the full file
Changelog for package autoware_behavior_path_bidirectional_traffic_module
0.53.0 (2026-09-29)
-
Merge remote-tracking branch 'origin/main' into prepare-0.53.0-changelog
-
chore(pre-commit): update clang-format to v22.1.5 (#13126)
- chore(pre-commit): update clang-format to v22.1.5
* style(pre-commit): autofix ---------
-
fix(pre-commit): update pre-commit-hooks-ros to v0.10.3 and adapt include guards (#13083)
- chore: sync files
* fix(pre-commit): adapt include guards to pre-commit-hooks-ros v0.10.3 ros-include-guard v0.10.3 only recognises an include guard when #endif is the last non-empty line of the file, so that feature test macros are no longer mistaken for guards. 29 headers failed that check. 25 headers wrap the guard in "// clang-format off" / "// clang-format on" because the #endif comment plus its // NOLINT exceeds the 100 column limit. Drop only the trailing "on" marker; the "off" marker then runs to end of file and still protects the line from being wrapped. 3 CUDA headers ended with "/* INDENT-ON /". Move it above the #endif so it stays paired with the "/ INDENT-OFF */" near the top of the file. autoware_behavior_path_planner/test/input.hpp closed its guard immediately after opening it, leaving the entire body unguarded. Move the #endif to the end. Also hold clang-format at v21.1.8. clang-format 22 migrates "AlignAfterOpenBracket: AlwaysBreak" to "BreakAfterOpenBracketIf: true", which forces a break after every "if (" whose condition does not fit on one line and reformats 88 files. ---------Co-authored-by: github-actions <<github-actions@github.com>> Co-authored-by: Mete Fatih Cırıt <<mfc@autoware.org>>
-
Contributors: Mete Fatih Cırıt, Ryohsuke Mitsudome, awf-autoware-bot[bot]
0.52.0 (2026-06-30)
0.51.0 (2026-05-01)
- Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
- feat(planning): replace autoware_universe_utils with specific autoware_utils sub-packagesr (#12443)
- Contributors: Vishal Chauhan, github-actions
0.50.0 (2026-02-14)
0.49.0 (2025-12-30)
0.48.0 (2025-11-18)
- Merge remote-tracking branch 'origin/main' into humble
- fix(bidirectional_traffic): suppress warning (#11221)
- fix(autoware_behavior_path_bidirectional_traffic_module): remove unused function (#11185)
- Contributors: Ryohsuke Mitsudome, Ryuta Kambe, Yukinari Hisaki
0.47.1 (2025-08-14)
0.47.0 (2025-08-11)
- style(pre-commit): update to clang-format-20 (#11088) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
- chore(bidirectional_traffic): modify readme (#10943) Update README.md
- Contributors: Mete Fatih Cırıt, Yukinari Hisaki
0.46.0 (2025-06-20)
-
Merge remote-tracking branch 'upstream/main' into tmp/TaikiYamada/bump_version_base
-
feat(autoware_behavior_path_bidirectional_traffic_module): add a functionality for bidirectional traffic (#10394)
- add bidirectional traffic module
- first version
- add virtual wall
- WIP
- apply new message type
- revert autoware_trajectory change
- WIP
- developping...
- fix bug
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
| Name |
|---|
| fmt |
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged autoware_behavior_path_bidirectional_traffic_module at Robotics Stack Exchange
Package Summary
| Version | 0.53.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-10-23 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Yukinari Hisaki
- Mamoru Sobue
- Takayuki Murooka
Authors
- Yukinari Hisaki
Bidirectional Traffic
This module enables trajectory planning for vehicles on “single-lane bidirectional traffic” roads in autonomous driving systems. Here, “single-lane bidirectional traffic” refers to roads without a centerline, such as those commonly found in residential areas, as shown in the image below.

In the following descriptions, the term bidirectional traffic refers specifically to such single-lane bidirectional roads as shown in the image above.
Purpose/Role
The main roles of this module are as follows:
-
Generating a driving trajectory along the left (or right) side of the road center
This module provides a function to generate a trajectory along the left (or right) side of the road center on bidirectional traffic lanes. In some countries, traffic laws require vehicles to drive on the left or right side of the road center on bidirectional roads. For example, in Japan, Article 18, Paragraph 1 of the Road Traffic Act requires that vehicles must keep to the left side of the road center. Because of these legal requirements, this module provides the function to generate a trajectory that follows the left (or right) side of the road center on bidirectional roads.
-
Giving way to oncoming vehicles on bidirectional traffic roads
This module provides the function for the ego vehicle to stop on the left side of the road and give way to oncoming vehicles in all situations where vehicles must pass each other on bidirectional roads. Bidirectional traffic roads are often narrow, and it is dangerous for both the ego vehicle and the oncoming vehicle to pass while moving simultaneously. To avoid such dangerous situations, this module enables the ego vehicle to stop on the left side of the road until the oncoming vehicle has completely passed.
The representation of bidirectional traffic on a Lanelet map
Bidirectional lanelets are represented on a Lanelet map as two lanes with opposite directions that share the same LineString as their boundary. There is no need to assign any special tags to the lanelets.

Limitations
This module does not support the following situations or functionalities.
-
Handling situations where passing is not possible
Depending on factors such as lane width, the size of the ego vehicle and the oncoming vehicle, and the surrounding environment, simple behaviors like those shown in the video above may not be sufficient for passing. In such cases, special behaviours such as reversing or clearing an intersection may be required. However, this module does not provide such functionality.
-
When the oncoming vehicle is giving way or moving slowly
In cases where the oncoming vehicle is trying to give way or is traveling at a low speed, it may be more appropriate for the ego vehicle to continue driving rather than stopping to give way. However, this module does not make any decision about whether to give way to the oncoming vehicle – it always pulls over to the left and stops.
-
Does not support the functionality of pulling into the shoulder to stop and give way
Depending on the road width, the ego vehicle may need to enter the shoulder in order to give way to an oncoming vehicle. However, this module does not support such functionality.
Inner workings/Algorithms
This module does not support the following situations or functionalities.
Keep Left
This module detects bidirectional lanelets from the lanelet map and performs a keep left maneuver. When keeping left, the shift starts from the beginning of the lanelet immediately before the bidirectional lanelet, and ends at the end of the bidirectional lanelet.
Give Way
State transition of GiveWay
To perform the give way maneuver, the GiveWay module has five internal states.
-
NoNeedToGiveWay
No oncoming vehicles present and driving normally or oncoming vehicles are far away.
-
ApproachingToShift
If an oncoming vehicle is detected, it generates a path to shift left and pull over, approaching the shift start point.
-
ShiftingRoadside
-
WaitingForOncomingCarsToPass
The ego vehicle stops and waits until all oncoming vehicles have passed.
-
BackToNormalLane
After the oncoming vehicle has passed, the ego vehicle performs a shift to return to its original driving lane.
The state transition diagram of the GiveWay module is shown below.
```plantuml @startuml skinparam state { BackgroundColor White BorderColor Black FontName “Arial” }
[*] –> NoNeedToGiveWay
state NoNeedToGiveWay : No oncoming vehicles,\ndriving normally state ApproachingToShift : Oncoming vehicle detected,\napproaching shift start
File truncated at 100 lines see the full file
Changelog for package autoware_behavior_path_bidirectional_traffic_module
0.53.0 (2026-09-29)
-
Merge remote-tracking branch 'origin/main' into prepare-0.53.0-changelog
-
chore(pre-commit): update clang-format to v22.1.5 (#13126)
- chore(pre-commit): update clang-format to v22.1.5
* style(pre-commit): autofix ---------
-
fix(pre-commit): update pre-commit-hooks-ros to v0.10.3 and adapt include guards (#13083)
- chore: sync files
* fix(pre-commit): adapt include guards to pre-commit-hooks-ros v0.10.3 ros-include-guard v0.10.3 only recognises an include guard when #endif is the last non-empty line of the file, so that feature test macros are no longer mistaken for guards. 29 headers failed that check. 25 headers wrap the guard in "// clang-format off" / "// clang-format on" because the #endif comment plus its // NOLINT exceeds the 100 column limit. Drop only the trailing "on" marker; the "off" marker then runs to end of file and still protects the line from being wrapped. 3 CUDA headers ended with "/* INDENT-ON /". Move it above the #endif so it stays paired with the "/ INDENT-OFF */" near the top of the file. autoware_behavior_path_planner/test/input.hpp closed its guard immediately after opening it, leaving the entire body unguarded. Move the #endif to the end. Also hold clang-format at v21.1.8. clang-format 22 migrates "AlignAfterOpenBracket: AlwaysBreak" to "BreakAfterOpenBracketIf: true", which forces a break after every "if (" whose condition does not fit on one line and reformats 88 files. ---------Co-authored-by: github-actions <<github-actions@github.com>> Co-authored-by: Mete Fatih Cırıt <<mfc@autoware.org>>
-
Contributors: Mete Fatih Cırıt, Ryohsuke Mitsudome, awf-autoware-bot[bot]
0.52.0 (2026-06-30)
0.51.0 (2026-05-01)
- Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
- feat(planning): replace autoware_universe_utils with specific autoware_utils sub-packagesr (#12443)
- Contributors: Vishal Chauhan, github-actions
0.50.0 (2026-02-14)
0.49.0 (2025-12-30)
0.48.0 (2025-11-18)
- Merge remote-tracking branch 'origin/main' into humble
- fix(bidirectional_traffic): suppress warning (#11221)
- fix(autoware_behavior_path_bidirectional_traffic_module): remove unused function (#11185)
- Contributors: Ryohsuke Mitsudome, Ryuta Kambe, Yukinari Hisaki
0.47.1 (2025-08-14)
0.47.0 (2025-08-11)
- style(pre-commit): update to clang-format-20 (#11088) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
- chore(bidirectional_traffic): modify readme (#10943) Update README.md
- Contributors: Mete Fatih Cırıt, Yukinari Hisaki
0.46.0 (2025-06-20)
-
Merge remote-tracking branch 'upstream/main' into tmp/TaikiYamada/bump_version_base
-
feat(autoware_behavior_path_bidirectional_traffic_module): add a functionality for bidirectional traffic (#10394)
- add bidirectional traffic module
- first version
- add virtual wall
- WIP
- apply new message type
- revert autoware_trajectory change
- WIP
- developping...
- fix bug
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
| Name |
|---|
| fmt |
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged autoware_behavior_path_bidirectional_traffic_module at Robotics Stack Exchange
Package Summary
| Version | 0.53.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-10-23 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Yukinari Hisaki
- Mamoru Sobue
- Takayuki Murooka
Authors
- Yukinari Hisaki
Bidirectional Traffic
This module enables trajectory planning for vehicles on “single-lane bidirectional traffic” roads in autonomous driving systems. Here, “single-lane bidirectional traffic” refers to roads without a centerline, such as those commonly found in residential areas, as shown in the image below.

In the following descriptions, the term bidirectional traffic refers specifically to such single-lane bidirectional roads as shown in the image above.
Purpose/Role
The main roles of this module are as follows:
-
Generating a driving trajectory along the left (or right) side of the road center
This module provides a function to generate a trajectory along the left (or right) side of the road center on bidirectional traffic lanes. In some countries, traffic laws require vehicles to drive on the left or right side of the road center on bidirectional roads. For example, in Japan, Article 18, Paragraph 1 of the Road Traffic Act requires that vehicles must keep to the left side of the road center. Because of these legal requirements, this module provides the function to generate a trajectory that follows the left (or right) side of the road center on bidirectional roads.
-
Giving way to oncoming vehicles on bidirectional traffic roads
This module provides the function for the ego vehicle to stop on the left side of the road and give way to oncoming vehicles in all situations where vehicles must pass each other on bidirectional roads. Bidirectional traffic roads are often narrow, and it is dangerous for both the ego vehicle and the oncoming vehicle to pass while moving simultaneously. To avoid such dangerous situations, this module enables the ego vehicle to stop on the left side of the road until the oncoming vehicle has completely passed.
The representation of bidirectional traffic on a Lanelet map
Bidirectional lanelets are represented on a Lanelet map as two lanes with opposite directions that share the same LineString as their boundary. There is no need to assign any special tags to the lanelets.

Limitations
This module does not support the following situations or functionalities.
-
Handling situations where passing is not possible
Depending on factors such as lane width, the size of the ego vehicle and the oncoming vehicle, and the surrounding environment, simple behaviors like those shown in the video above may not be sufficient for passing. In such cases, special behaviours such as reversing or clearing an intersection may be required. However, this module does not provide such functionality.
-
When the oncoming vehicle is giving way or moving slowly
In cases where the oncoming vehicle is trying to give way or is traveling at a low speed, it may be more appropriate for the ego vehicle to continue driving rather than stopping to give way. However, this module does not make any decision about whether to give way to the oncoming vehicle – it always pulls over to the left and stops.
-
Does not support the functionality of pulling into the shoulder to stop and give way
Depending on the road width, the ego vehicle may need to enter the shoulder in order to give way to an oncoming vehicle. However, this module does not support such functionality.
Inner workings/Algorithms
This module does not support the following situations or functionalities.
Keep Left
This module detects bidirectional lanelets from the lanelet map and performs a keep left maneuver. When keeping left, the shift starts from the beginning of the lanelet immediately before the bidirectional lanelet, and ends at the end of the bidirectional lanelet.
Give Way
State transition of GiveWay
To perform the give way maneuver, the GiveWay module has five internal states.
-
NoNeedToGiveWay
No oncoming vehicles present and driving normally or oncoming vehicles are far away.
-
ApproachingToShift
If an oncoming vehicle is detected, it generates a path to shift left and pull over, approaching the shift start point.
-
ShiftingRoadside
-
WaitingForOncomingCarsToPass
The ego vehicle stops and waits until all oncoming vehicles have passed.
-
BackToNormalLane
After the oncoming vehicle has passed, the ego vehicle performs a shift to return to its original driving lane.
The state transition diagram of the GiveWay module is shown below.
```plantuml @startuml skinparam state { BackgroundColor White BorderColor Black FontName “Arial” }
[*] –> NoNeedToGiveWay
state NoNeedToGiveWay : No oncoming vehicles,\ndriving normally state ApproachingToShift : Oncoming vehicle detected,\napproaching shift start
File truncated at 100 lines see the full file
Changelog for package autoware_behavior_path_bidirectional_traffic_module
0.53.0 (2026-09-29)
-
Merge remote-tracking branch 'origin/main' into prepare-0.53.0-changelog
-
chore(pre-commit): update clang-format to v22.1.5 (#13126)
- chore(pre-commit): update clang-format to v22.1.5
* style(pre-commit): autofix ---------
-
fix(pre-commit): update pre-commit-hooks-ros to v0.10.3 and adapt include guards (#13083)
- chore: sync files
* fix(pre-commit): adapt include guards to pre-commit-hooks-ros v0.10.3 ros-include-guard v0.10.3 only recognises an include guard when #endif is the last non-empty line of the file, so that feature test macros are no longer mistaken for guards. 29 headers failed that check. 25 headers wrap the guard in "// clang-format off" / "// clang-format on" because the #endif comment plus its // NOLINT exceeds the 100 column limit. Drop only the trailing "on" marker; the "off" marker then runs to end of file and still protects the line from being wrapped. 3 CUDA headers ended with "/* INDENT-ON /". Move it above the #endif so it stays paired with the "/ INDENT-OFF */" near the top of the file. autoware_behavior_path_planner/test/input.hpp closed its guard immediately after opening it, leaving the entire body unguarded. Move the #endif to the end. Also hold clang-format at v21.1.8. clang-format 22 migrates "AlignAfterOpenBracket: AlwaysBreak" to "BreakAfterOpenBracketIf: true", which forces a break after every "if (" whose condition does not fit on one line and reformats 88 files. ---------Co-authored-by: github-actions <<github-actions@github.com>> Co-authored-by: Mete Fatih Cırıt <<mfc@autoware.org>>
-
Contributors: Mete Fatih Cırıt, Ryohsuke Mitsudome, awf-autoware-bot[bot]
0.52.0 (2026-06-30)
0.51.0 (2026-05-01)
- Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
- feat(planning): replace autoware_universe_utils with specific autoware_utils sub-packagesr (#12443)
- Contributors: Vishal Chauhan, github-actions
0.50.0 (2026-02-14)
0.49.0 (2025-12-30)
0.48.0 (2025-11-18)
- Merge remote-tracking branch 'origin/main' into humble
- fix(bidirectional_traffic): suppress warning (#11221)
- fix(autoware_behavior_path_bidirectional_traffic_module): remove unused function (#11185)
- Contributors: Ryohsuke Mitsudome, Ryuta Kambe, Yukinari Hisaki
0.47.1 (2025-08-14)
0.47.0 (2025-08-11)
- style(pre-commit): update to clang-format-20 (#11088) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
- chore(bidirectional_traffic): modify readme (#10943) Update README.md
- Contributors: Mete Fatih Cırıt, Yukinari Hisaki
0.46.0 (2025-06-20)
-
Merge remote-tracking branch 'upstream/main' into tmp/TaikiYamada/bump_version_base
-
feat(autoware_behavior_path_bidirectional_traffic_module): add a functionality for bidirectional traffic (#10394)
- add bidirectional traffic module
- first version
- add virtual wall
- WIP
- apply new message type
- revert autoware_trajectory change
- WIP
- developping...
- fix bug
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
| Name |
|---|
| fmt |
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged autoware_behavior_path_bidirectional_traffic_module at Robotics Stack Exchange
Package Summary
| Version | 0.53.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-10-23 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Yukinari Hisaki
- Mamoru Sobue
- Takayuki Murooka
Authors
- Yukinari Hisaki
Bidirectional Traffic
This module enables trajectory planning for vehicles on “single-lane bidirectional traffic” roads in autonomous driving systems. Here, “single-lane bidirectional traffic” refers to roads without a centerline, such as those commonly found in residential areas, as shown in the image below.

In the following descriptions, the term bidirectional traffic refers specifically to such single-lane bidirectional roads as shown in the image above.
Purpose/Role
The main roles of this module are as follows:
-
Generating a driving trajectory along the left (or right) side of the road center
This module provides a function to generate a trajectory along the left (or right) side of the road center on bidirectional traffic lanes. In some countries, traffic laws require vehicles to drive on the left or right side of the road center on bidirectional roads. For example, in Japan, Article 18, Paragraph 1 of the Road Traffic Act requires that vehicles must keep to the left side of the road center. Because of these legal requirements, this module provides the function to generate a trajectory that follows the left (or right) side of the road center on bidirectional roads.
-
Giving way to oncoming vehicles on bidirectional traffic roads
This module provides the function for the ego vehicle to stop on the left side of the road and give way to oncoming vehicles in all situations where vehicles must pass each other on bidirectional roads. Bidirectional traffic roads are often narrow, and it is dangerous for both the ego vehicle and the oncoming vehicle to pass while moving simultaneously. To avoid such dangerous situations, this module enables the ego vehicle to stop on the left side of the road until the oncoming vehicle has completely passed.
The representation of bidirectional traffic on a Lanelet map
Bidirectional lanelets are represented on a Lanelet map as two lanes with opposite directions that share the same LineString as their boundary. There is no need to assign any special tags to the lanelets.

Limitations
This module does not support the following situations or functionalities.
-
Handling situations where passing is not possible
Depending on factors such as lane width, the size of the ego vehicle and the oncoming vehicle, and the surrounding environment, simple behaviors like those shown in the video above may not be sufficient for passing. In such cases, special behaviours such as reversing or clearing an intersection may be required. However, this module does not provide such functionality.
-
When the oncoming vehicle is giving way or moving slowly
In cases where the oncoming vehicle is trying to give way or is traveling at a low speed, it may be more appropriate for the ego vehicle to continue driving rather than stopping to give way. However, this module does not make any decision about whether to give way to the oncoming vehicle – it always pulls over to the left and stops.
-
Does not support the functionality of pulling into the shoulder to stop and give way
Depending on the road width, the ego vehicle may need to enter the shoulder in order to give way to an oncoming vehicle. However, this module does not support such functionality.
Inner workings/Algorithms
This module does not support the following situations or functionalities.
Keep Left
This module detects bidirectional lanelets from the lanelet map and performs a keep left maneuver. When keeping left, the shift starts from the beginning of the lanelet immediately before the bidirectional lanelet, and ends at the end of the bidirectional lanelet.
Give Way
State transition of GiveWay
To perform the give way maneuver, the GiveWay module has five internal states.
-
NoNeedToGiveWay
No oncoming vehicles present and driving normally or oncoming vehicles are far away.
-
ApproachingToShift
If an oncoming vehicle is detected, it generates a path to shift left and pull over, approaching the shift start point.
-
ShiftingRoadside
-
WaitingForOncomingCarsToPass
The ego vehicle stops and waits until all oncoming vehicles have passed.
-
BackToNormalLane
After the oncoming vehicle has passed, the ego vehicle performs a shift to return to its original driving lane.
The state transition diagram of the GiveWay module is shown below.
```plantuml @startuml skinparam state { BackgroundColor White BorderColor Black FontName “Arial” }
[*] –> NoNeedToGiveWay
state NoNeedToGiveWay : No oncoming vehicles,\ndriving normally state ApproachingToShift : Oncoming vehicle detected,\napproaching shift start
File truncated at 100 lines see the full file
Changelog for package autoware_behavior_path_bidirectional_traffic_module
0.53.0 (2026-09-29)
-
Merge remote-tracking branch 'origin/main' into prepare-0.53.0-changelog
-
chore(pre-commit): update clang-format to v22.1.5 (#13126)
- chore(pre-commit): update clang-format to v22.1.5
* style(pre-commit): autofix ---------
-
fix(pre-commit): update pre-commit-hooks-ros to v0.10.3 and adapt include guards (#13083)
- chore: sync files
* fix(pre-commit): adapt include guards to pre-commit-hooks-ros v0.10.3 ros-include-guard v0.10.3 only recognises an include guard when #endif is the last non-empty line of the file, so that feature test macros are no longer mistaken for guards. 29 headers failed that check. 25 headers wrap the guard in "// clang-format off" / "// clang-format on" because the #endif comment plus its // NOLINT exceeds the 100 column limit. Drop only the trailing "on" marker; the "off" marker then runs to end of file and still protects the line from being wrapped. 3 CUDA headers ended with "/* INDENT-ON /". Move it above the #endif so it stays paired with the "/ INDENT-OFF */" near the top of the file. autoware_behavior_path_planner/test/input.hpp closed its guard immediately after opening it, leaving the entire body unguarded. Move the #endif to the end. Also hold clang-format at v21.1.8. clang-format 22 migrates "AlignAfterOpenBracket: AlwaysBreak" to "BreakAfterOpenBracketIf: true", which forces a break after every "if (" whose condition does not fit on one line and reformats 88 files. ---------Co-authored-by: github-actions <<github-actions@github.com>> Co-authored-by: Mete Fatih Cırıt <<mfc@autoware.org>>
-
Contributors: Mete Fatih Cırıt, Ryohsuke Mitsudome, awf-autoware-bot[bot]
0.52.0 (2026-06-30)
0.51.0 (2026-05-01)
- Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
- feat(planning): replace autoware_universe_utils with specific autoware_utils sub-packagesr (#12443)
- Contributors: Vishal Chauhan, github-actions
0.50.0 (2026-02-14)
0.49.0 (2025-12-30)
0.48.0 (2025-11-18)
- Merge remote-tracking branch 'origin/main' into humble
- fix(bidirectional_traffic): suppress warning (#11221)
- fix(autoware_behavior_path_bidirectional_traffic_module): remove unused function (#11185)
- Contributors: Ryohsuke Mitsudome, Ryuta Kambe, Yukinari Hisaki
0.47.1 (2025-08-14)
0.47.0 (2025-08-11)
- style(pre-commit): update to clang-format-20 (#11088) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
- chore(bidirectional_traffic): modify readme (#10943) Update README.md
- Contributors: Mete Fatih Cırıt, Yukinari Hisaki
0.46.0 (2025-06-20)
-
Merge remote-tracking branch 'upstream/main' into tmp/TaikiYamada/bump_version_base
-
feat(autoware_behavior_path_bidirectional_traffic_module): add a functionality for bidirectional traffic (#10394)
- add bidirectional traffic module
- first version
- add virtual wall
- WIP
- apply new message type
- revert autoware_trajectory change
- WIP
- developping...
- fix bug
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
| Name |
|---|
| fmt |
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged autoware_behavior_path_bidirectional_traffic_module at Robotics Stack Exchange
Package Summary
| Version | 0.53.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-10-23 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Yukinari Hisaki
- Mamoru Sobue
- Takayuki Murooka
Authors
- Yukinari Hisaki
Bidirectional Traffic
This module enables trajectory planning for vehicles on “single-lane bidirectional traffic” roads in autonomous driving systems. Here, “single-lane bidirectional traffic” refers to roads without a centerline, such as those commonly found in residential areas, as shown in the image below.

In the following descriptions, the term bidirectional traffic refers specifically to such single-lane bidirectional roads as shown in the image above.
Purpose/Role
The main roles of this module are as follows:
-
Generating a driving trajectory along the left (or right) side of the road center
This module provides a function to generate a trajectory along the left (or right) side of the road center on bidirectional traffic lanes. In some countries, traffic laws require vehicles to drive on the left or right side of the road center on bidirectional roads. For example, in Japan, Article 18, Paragraph 1 of the Road Traffic Act requires that vehicles must keep to the left side of the road center. Because of these legal requirements, this module provides the function to generate a trajectory that follows the left (or right) side of the road center on bidirectional roads.
-
Giving way to oncoming vehicles on bidirectional traffic roads
This module provides the function for the ego vehicle to stop on the left side of the road and give way to oncoming vehicles in all situations where vehicles must pass each other on bidirectional roads. Bidirectional traffic roads are often narrow, and it is dangerous for both the ego vehicle and the oncoming vehicle to pass while moving simultaneously. To avoid such dangerous situations, this module enables the ego vehicle to stop on the left side of the road until the oncoming vehicle has completely passed.
The representation of bidirectional traffic on a Lanelet map
Bidirectional lanelets are represented on a Lanelet map as two lanes with opposite directions that share the same LineString as their boundary. There is no need to assign any special tags to the lanelets.

Limitations
This module does not support the following situations or functionalities.
-
Handling situations where passing is not possible
Depending on factors such as lane width, the size of the ego vehicle and the oncoming vehicle, and the surrounding environment, simple behaviors like those shown in the video above may not be sufficient for passing. In such cases, special behaviours such as reversing or clearing an intersection may be required. However, this module does not provide such functionality.
-
When the oncoming vehicle is giving way or moving slowly
In cases where the oncoming vehicle is trying to give way or is traveling at a low speed, it may be more appropriate for the ego vehicle to continue driving rather than stopping to give way. However, this module does not make any decision about whether to give way to the oncoming vehicle – it always pulls over to the left and stops.
-
Does not support the functionality of pulling into the shoulder to stop and give way
Depending on the road width, the ego vehicle may need to enter the shoulder in order to give way to an oncoming vehicle. However, this module does not support such functionality.
Inner workings/Algorithms
This module does not support the following situations or functionalities.
Keep Left
This module detects bidirectional lanelets from the lanelet map and performs a keep left maneuver. When keeping left, the shift starts from the beginning of the lanelet immediately before the bidirectional lanelet, and ends at the end of the bidirectional lanelet.
Give Way
State transition of GiveWay
To perform the give way maneuver, the GiveWay module has five internal states.
-
NoNeedToGiveWay
No oncoming vehicles present and driving normally or oncoming vehicles are far away.
-
ApproachingToShift
If an oncoming vehicle is detected, it generates a path to shift left and pull over, approaching the shift start point.
-
ShiftingRoadside
-
WaitingForOncomingCarsToPass
The ego vehicle stops and waits until all oncoming vehicles have passed.
-
BackToNormalLane
After the oncoming vehicle has passed, the ego vehicle performs a shift to return to its original driving lane.
The state transition diagram of the GiveWay module is shown below.
```plantuml @startuml skinparam state { BackgroundColor White BorderColor Black FontName “Arial” }
[*] –> NoNeedToGiveWay
state NoNeedToGiveWay : No oncoming vehicles,\ndriving normally state ApproachingToShift : Oncoming vehicle detected,\napproaching shift start
File truncated at 100 lines see the full file
Changelog for package autoware_behavior_path_bidirectional_traffic_module
0.53.0 (2026-09-29)
-
Merge remote-tracking branch 'origin/main' into prepare-0.53.0-changelog
-
chore(pre-commit): update clang-format to v22.1.5 (#13126)
- chore(pre-commit): update clang-format to v22.1.5
* style(pre-commit): autofix ---------
-
fix(pre-commit): update pre-commit-hooks-ros to v0.10.3 and adapt include guards (#13083)
- chore: sync files
* fix(pre-commit): adapt include guards to pre-commit-hooks-ros v0.10.3 ros-include-guard v0.10.3 only recognises an include guard when #endif is the last non-empty line of the file, so that feature test macros are no longer mistaken for guards. 29 headers failed that check. 25 headers wrap the guard in "// clang-format off" / "// clang-format on" because the #endif comment plus its // NOLINT exceeds the 100 column limit. Drop only the trailing "on" marker; the "off" marker then runs to end of file and still protects the line from being wrapped. 3 CUDA headers ended with "/* INDENT-ON /". Move it above the #endif so it stays paired with the "/ INDENT-OFF */" near the top of the file. autoware_behavior_path_planner/test/input.hpp closed its guard immediately after opening it, leaving the entire body unguarded. Move the #endif to the end. Also hold clang-format at v21.1.8. clang-format 22 migrates "AlignAfterOpenBracket: AlwaysBreak" to "BreakAfterOpenBracketIf: true", which forces a break after every "if (" whose condition does not fit on one line and reformats 88 files. ---------Co-authored-by: github-actions <<github-actions@github.com>> Co-authored-by: Mete Fatih Cırıt <<mfc@autoware.org>>
-
Contributors: Mete Fatih Cırıt, Ryohsuke Mitsudome, awf-autoware-bot[bot]
0.52.0 (2026-06-30)
0.51.0 (2026-05-01)
- Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
- feat(planning): replace autoware_universe_utils with specific autoware_utils sub-packagesr (#12443)
- Contributors: Vishal Chauhan, github-actions
0.50.0 (2026-02-14)
0.49.0 (2025-12-30)
0.48.0 (2025-11-18)
- Merge remote-tracking branch 'origin/main' into humble
- fix(bidirectional_traffic): suppress warning (#11221)
- fix(autoware_behavior_path_bidirectional_traffic_module): remove unused function (#11185)
- Contributors: Ryohsuke Mitsudome, Ryuta Kambe, Yukinari Hisaki
0.47.1 (2025-08-14)
0.47.0 (2025-08-11)
- style(pre-commit): update to clang-format-20 (#11088) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
- chore(bidirectional_traffic): modify readme (#10943) Update README.md
- Contributors: Mete Fatih Cırıt, Yukinari Hisaki
0.46.0 (2025-06-20)
-
Merge remote-tracking branch 'upstream/main' into tmp/TaikiYamada/bump_version_base
-
feat(autoware_behavior_path_bidirectional_traffic_module): add a functionality for bidirectional traffic (#10394)
- add bidirectional traffic module
- first version
- add virtual wall
- WIP
- apply new message type
- revert autoware_trajectory change
- WIP
- developping...
- fix bug
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
| Name |
|---|
| fmt |
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged autoware_behavior_path_bidirectional_traffic_module at Robotics Stack Exchange
Package Summary
| Version | 0.53.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-10-23 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Yukinari Hisaki
- Mamoru Sobue
- Takayuki Murooka
Authors
- Yukinari Hisaki
Bidirectional Traffic
This module enables trajectory planning for vehicles on “single-lane bidirectional traffic” roads in autonomous driving systems. Here, “single-lane bidirectional traffic” refers to roads without a centerline, such as those commonly found in residential areas, as shown in the image below.

In the following descriptions, the term bidirectional traffic refers specifically to such single-lane bidirectional roads as shown in the image above.
Purpose/Role
The main roles of this module are as follows:
-
Generating a driving trajectory along the left (or right) side of the road center
This module provides a function to generate a trajectory along the left (or right) side of the road center on bidirectional traffic lanes. In some countries, traffic laws require vehicles to drive on the left or right side of the road center on bidirectional roads. For example, in Japan, Article 18, Paragraph 1 of the Road Traffic Act requires that vehicles must keep to the left side of the road center. Because of these legal requirements, this module provides the function to generate a trajectory that follows the left (or right) side of the road center on bidirectional roads.
-
Giving way to oncoming vehicles on bidirectional traffic roads
This module provides the function for the ego vehicle to stop on the left side of the road and give way to oncoming vehicles in all situations where vehicles must pass each other on bidirectional roads. Bidirectional traffic roads are often narrow, and it is dangerous for both the ego vehicle and the oncoming vehicle to pass while moving simultaneously. To avoid such dangerous situations, this module enables the ego vehicle to stop on the left side of the road until the oncoming vehicle has completely passed.
The representation of bidirectional traffic on a Lanelet map
Bidirectional lanelets are represented on a Lanelet map as two lanes with opposite directions that share the same LineString as their boundary. There is no need to assign any special tags to the lanelets.

Limitations
This module does not support the following situations or functionalities.
-
Handling situations where passing is not possible
Depending on factors such as lane width, the size of the ego vehicle and the oncoming vehicle, and the surrounding environment, simple behaviors like those shown in the video above may not be sufficient for passing. In such cases, special behaviours such as reversing or clearing an intersection may be required. However, this module does not provide such functionality.
-
When the oncoming vehicle is giving way or moving slowly
In cases where the oncoming vehicle is trying to give way or is traveling at a low speed, it may be more appropriate for the ego vehicle to continue driving rather than stopping to give way. However, this module does not make any decision about whether to give way to the oncoming vehicle – it always pulls over to the left and stops.
-
Does not support the functionality of pulling into the shoulder to stop and give way
Depending on the road width, the ego vehicle may need to enter the shoulder in order to give way to an oncoming vehicle. However, this module does not support such functionality.
Inner workings/Algorithms
This module does not support the following situations or functionalities.
Keep Left
This module detects bidirectional lanelets from the lanelet map and performs a keep left maneuver. When keeping left, the shift starts from the beginning of the lanelet immediately before the bidirectional lanelet, and ends at the end of the bidirectional lanelet.
Give Way
State transition of GiveWay
To perform the give way maneuver, the GiveWay module has five internal states.
-
NoNeedToGiveWay
No oncoming vehicles present and driving normally or oncoming vehicles are far away.
-
ApproachingToShift
If an oncoming vehicle is detected, it generates a path to shift left and pull over, approaching the shift start point.
-
ShiftingRoadside
-
WaitingForOncomingCarsToPass
The ego vehicle stops and waits until all oncoming vehicles have passed.
-
BackToNormalLane
After the oncoming vehicle has passed, the ego vehicle performs a shift to return to its original driving lane.
The state transition diagram of the GiveWay module is shown below.
```plantuml @startuml skinparam state { BackgroundColor White BorderColor Black FontName “Arial” }
[*] –> NoNeedToGiveWay
state NoNeedToGiveWay : No oncoming vehicles,\ndriving normally state ApproachingToShift : Oncoming vehicle detected,\napproaching shift start
File truncated at 100 lines see the full file
Changelog for package autoware_behavior_path_bidirectional_traffic_module
0.53.0 (2026-09-29)
-
Merge remote-tracking branch 'origin/main' into prepare-0.53.0-changelog
-
chore(pre-commit): update clang-format to v22.1.5 (#13126)
- chore(pre-commit): update clang-format to v22.1.5
* style(pre-commit): autofix ---------
-
fix(pre-commit): update pre-commit-hooks-ros to v0.10.3 and adapt include guards (#13083)
- chore: sync files
* fix(pre-commit): adapt include guards to pre-commit-hooks-ros v0.10.3 ros-include-guard v0.10.3 only recognises an include guard when #endif is the last non-empty line of the file, so that feature test macros are no longer mistaken for guards. 29 headers failed that check. 25 headers wrap the guard in "// clang-format off" / "// clang-format on" because the #endif comment plus its // NOLINT exceeds the 100 column limit. Drop only the trailing "on" marker; the "off" marker then runs to end of file and still protects the line from being wrapped. 3 CUDA headers ended with "/* INDENT-ON /". Move it above the #endif so it stays paired with the "/ INDENT-OFF */" near the top of the file. autoware_behavior_path_planner/test/input.hpp closed its guard immediately after opening it, leaving the entire body unguarded. Move the #endif to the end. Also hold clang-format at v21.1.8. clang-format 22 migrates "AlignAfterOpenBracket: AlwaysBreak" to "BreakAfterOpenBracketIf: true", which forces a break after every "if (" whose condition does not fit on one line and reformats 88 files. ---------Co-authored-by: github-actions <<github-actions@github.com>> Co-authored-by: Mete Fatih Cırıt <<mfc@autoware.org>>
-
Contributors: Mete Fatih Cırıt, Ryohsuke Mitsudome, awf-autoware-bot[bot]
0.52.0 (2026-06-30)
0.51.0 (2026-05-01)
- Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
- feat(planning): replace autoware_universe_utils with specific autoware_utils sub-packagesr (#12443)
- Contributors: Vishal Chauhan, github-actions
0.50.0 (2026-02-14)
0.49.0 (2025-12-30)
0.48.0 (2025-11-18)
- Merge remote-tracking branch 'origin/main' into humble
- fix(bidirectional_traffic): suppress warning (#11221)
- fix(autoware_behavior_path_bidirectional_traffic_module): remove unused function (#11185)
- Contributors: Ryohsuke Mitsudome, Ryuta Kambe, Yukinari Hisaki
0.47.1 (2025-08-14)
0.47.0 (2025-08-11)
- style(pre-commit): update to clang-format-20 (#11088) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
- chore(bidirectional_traffic): modify readme (#10943) Update README.md
- Contributors: Mete Fatih Cırıt, Yukinari Hisaki
0.46.0 (2025-06-20)
-
Merge remote-tracking branch 'upstream/main' into tmp/TaikiYamada/bump_version_base
-
feat(autoware_behavior_path_bidirectional_traffic_module): add a functionality for bidirectional traffic (#10394)
- add bidirectional traffic module
- first version
- add virtual wall
- WIP
- apply new message type
- revert autoware_trajectory change
- WIP
- developping...
- fix bug
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
| Name |
|---|
| fmt |