The main purpose of this PR is to implement the new and improved path-planning algorithm for pedestrians. This branch started as an integration of "wall forces" in the Social Force Model but has extended much further than that so the branch name is no longer descriptive of the changes made.
Summary of major changes and additions:
Completely changed the path-planning method. Previously, pedestrians selected multiple waypoints from their initial position to their destination at the beginning of their lifecycle and never changed the route. Now, the pedestrians only select a few lanelets forward that bring them closer to their destination and replan their route when they reach the end of their local sequence of lanelets.
Replaced the Update Waypoint maneuver with the Enter and Exit Crosswalk maneuvers as necessary. These are more descriptive and represent a higher-level decision made by an actual pedestrian.
Added lanelets to the lanelet2_university_weber_alt_walkways.osm map that connect pedestrian walkways and areas to crosswalks. This allows pedestrians to search for and find valid routes as a sequence of consecutive lanelets. The fact that all pedestrian lanelets need to be bidirectional added some complexity to the code so there are many instances of checking the orientation of lanelets and inverting them if necessary.
Removed the "wall forces" from the Social Force Model (despite the branch name) since pedestrians should be allowed to pass through a walkway border temporarily if they need to.
I believe these are all the major changes. These changes have a lot of collateral effects on the code and I understand that this is a larger pull request. Please don't hesitate to ask me about anything if it is not clear or if I missed something here.
As usual, to test, run each of the scenarios in scenarios/pedestrian_scenarios/.
Please note:
The gs_intersection_xwalk_signal scenario is uneventful because I have not fully handled how the pedestrian selects which crosswalk lights to respond to and which to ignore. This will be one of my next major focuses.
I added a bunch more pedestrians to the gs_intersection_crowd scenario so this is an interesting one to test.
The main purpose of this PR is to implement the new and improved path-planning algorithm for pedestrians. This branch started as an integration of "wall forces" in the Social Force Model but has extended much further than that so the branch name is no longer descriptive of the changes made.
Summary of major changes and additions:
lanelet2_university_weber_alt_walkways.osm
map that connect pedestrian walkways and areas to crosswalks. This allows pedestrians to search for and find valid routes as a sequence of consecutive lanelets. The fact that all pedestrian lanelets need to be bidirectional added some complexity to the code so there are many instances of checking the orientation of lanelets and inverting them if necessary.I believe these are all the major changes. These changes have a lot of collateral effects on the code and I understand that this is a larger pull request. Please don't hesitate to ask me about anything if it is not clear or if I missed something here.
As usual, to test, run each of the scenarios in
scenarios/pedestrian_scenarios/
. Please note:gs_intersection_xwalk_signal
scenario is uneventful because I have not fully handled how the pedestrian selects which crosswalk lights to respond to and which to ignore. This will be one of my next major focuses.gs_intersection_crowd
scenario so this is an interesting one to test.