Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [sumo-dev] Student project

Hi Marvin,

to understand SUMO code and tests the following (Linux) commands are helpful for me (started from the base dir of a sumo-all package)

find src -name '*.cpp'|xargs grep indirectLeft

  Find all places in cpp files below src, which contain the string indirectLeft

find tests -type f -print0 |xargs -0 grep  indirect

  Find all places in the test suite, which use the string indirect (the print0 / -0 arguments are needed for file names with blanks)

These commands work also under Windows in a cygwin environment or WSL (Windows Subsystem for Linux).

Search the internet for "linux use find and xargs" for explanations.

Another error (which I have made myself too) is:

You change a program and see no changes. The reason is due to the settings in the PATH-Variables the previously installed program gets executed, not your modified one.

Have fun and success in your project,

Harald

Am 12.12.21 um 23:06 schrieb Jakob Erdmann:
If you are experienced in C++ programming and analyzing other peoples code then changing some variables and seeing what happens can be a viable approach to understand netconvert / netedit. Note, that we don't have the resources to teach you any of this nor to explain the details of the codebase.

Otherwise I'd recommend a different route:
- develop a formula that describes the parameters of intersections with indirect left bicycle turns (ideally, you can back your formula and its numerical parameters with a number of real world examples)
- use sumolib to find these intersections for a given .net.xml file https://sumo.dlr.de/docs/Tools/Sumolib.html
- write a python program that defines xml patch files for these connections that sets the 'indirectLeft' attribute
- if you are confident that your formula works well, document the formula and your example data and let me  worry about getting it plugged into netconvert / netedit.

regards,
Jakob

Am Sa., 11. Dez. 2021 um 19:04 Uhr schrieb Gran, Marvin <marvin.gran@xxxxxxxxxxxxxxxxxxx>:
Hello,
Jakobs answer was very helpful! I followed his advice and looked for the attribute 'indirectLeft'  in the NetConvert. The NetConvert uses the NBNetBuilder, which uses the NBEdge. There is a function buildInnerEdges which uses this variable in a significant way. I tried to set it to True on a trial basis, expecting that this would result in the Netedit building indirect lefts everywhere. If this would have worked I would have been at the right place in the code and could have started my planned changes here. Unfortunately I could not notice any change after recompiling the solution, which confused me a lot. Am I at the right place of the code or completely wrong?
Best regards, Marvin Gran

Von: sumo-dev <sumo-dev-bounces@xxxxxxxxxxx> im Auftrag von Jakob Erdmann <namdre.sumo@xxxxxxxxx>
Gesendet: Donnerstag, 9. Dezember 2021 15:24:13
An: sumo developer discussions
Betreff: Re: [sumo-dev] Student project
 
Hello,
each connection already has the attribute 'indirectLeft' which controls whether it should be a smooth curve (like a car) or consist of two straight sections and this attribute can be set in netedit. Hence I don't think a netedit extension is needed.
However, it would be useful to add netconvert option that enables a heuristic for setting this attribute automatically based on junction size, road speed, road class or anything else that might be a contributing factor. This should mainly take effect when importing network data without fully specified connections but could also be designed to permit updating existing .net.xml files
Note, that such an option would also take effect when creating new intersections in netedit since it uses netconvert as a back-end for guessing connections.


regards,
Jakob


Am Do., 9. Dez. 2021 um 14:09 Uhr schrieb Gran, Marvin <marvin.gran@xxxxxxxxxxxxxxxxxxx>:

Hi,

I am a student from TU Berlin in Germany and represent a student group of 7 people who want to create an extension for Sumo. We are primarily interested in making the behavior of cyclists more realistic based on collected data. Our current idea is to make cyclists behave differently at intersections depending on the size of the intersection and the surrounding traffic. Depending on the factors mentioned above, cyclists should either turn left directly like a car or alternatively make an indirect bycycle turn. Our approach is to work in Netedit, so that the connections at intersections are automatically generated differently depending on these factors. We are still at the beginning of the project and wonder if this is going in the right direction? Also a pointer where to do such changes in Netedit would be great!
Best regards, Marvin Gran
_______________________________________________
sumo-dev mailing list
sumo-dev@xxxxxxxxxxx
To unsubscribe from this list, visit https://www.eclipse.org/mailman/listinfo/sumo-dev
_______________________________________________
sumo-dev mailing list
sumo-dev@xxxxxxxxxxx
To unsubscribe from this list, visit https://www.eclipse.org/mailman/listinfo/sumo-dev

_______________________________________________
sumo-dev mailing list
sumo-dev@xxxxxxxxxxx
To unsubscribe from this list, visit https://www.eclipse.org/mailman/listinfo/sumo-dev

Back to the top