rodrigoqueiroz / geoscenarioserver

8 stars 1 forks source link

Improvments on Social Force Model calculations #63

Closed scott-larter closed 3 years ago

scott-larter commented 3 years ago

This pull request focuses on changes in the Social Force Model calculation, specifically calculating the repelling forces caused by other pedestrians.

I changed the forces calculations in other_pedestrian_interaction() from sp/Pedestrian.py to reference a different paper that was more adapted to pedestrians in a traffic environment. This paper is linked in the code comments. These forces include an evasive effect (to evade pedestrians walking in the opposite direction) and a following effect (to follow behind a pedestrian with the same destination). The following effect is temporarily removed because it needs to be calibrated properly before being added as it was causing unrealistic behavior.

To test, run one of the three pedestrian scenarios in scenarios/pedestrian_scenarios/ and observe that the agents accelerate and decelerate at a more realistic rate and avoid other pedestrians in the scenario.

The Social Force Model will continue to be improved, but this is a good merging point as my attention will shift towards setting up the evaluation structure.

mchlswyr commented 3 years ago

I've tested the three pedestrian scenarios and have some comments for each:

scott-larter commented 3 years ago

I've tested the three pedestrian scenarios and have some comments for each:

* In all scenarios, the speed of the pedestrians seems realistic

* In `gs_intersection_no_vehicle.osm`, `p1` seems to bounce between the boundries of the crosswalk

* `p1` doesn't do this in `gs_intersection_xwalk_signal.osm`

* `gs_intersection_crowd.osm` looks like it works well; the pedestrians successfully move past each other without causing a jam

* In `gs_intersection_xwalk_signal.osm`, the pedestrian looks like it moves at a realistic speed, but the crosswalk light changes before they reach the end; maybe the crosswalk green light should last a little longer?