Tomson91

Skrzyżowania z sygnalizacją warunkową

7 postów w tym temacie

Witam.

Jako, że istnieją już sygnalizatory warunkowe do Omsi, postanowiłem napisać ten poradnik aby wyjaśnić w jaki sposób można przystosować konkretne skrzyżowanie do poprawnej obsługi tej sygnalizacji. Innymi słowy chodzi o to aby pojazdy skręcające np. w prawo wjeżdżały na skrzyżowanie na zielonym świetle oraz na czerwonym przy zapalonej strzałce do skrętu w prawo. Pojazdy jadące w innym kierunku z tego samego pasa powinny stosować się tylko do sygnalizatora ogólnego.

W praktyce wygląda to tak, że pojazdy AI, które skręcają przy zapalonej strzałce, wbrew przepisom ruchu drogowego nie zatrzymują się przed sygnalizatorem, co akurat osobiście uważam za plus gdyż jest to bardziej zgodne z rzeczywistością :P

A więc zaczynamy! Na początek musimy skopiować plik „.sco” skrzyżowania, które chcemy zmodyfikować. Ja dla przykładu posłużę się skrzyżowaniem „Einm_See.sco” z folderu „Sceneryobjects\Kreuz_MC”. Kopię nazywamy „Test_sygnalizacji.sco” po czym otwieramy ten plik notatnikiem i pod wpisem [friendlyname] wpisujemy „Test sygnalizacji”.

Zamykamy plik, otwieramy edytor map i kładziemy nasze skrzyżowanie w dowolnym miejscu, a także dołączamy do niego odpowiednie spliny ulic:

poradnik_sygnalizacji_1.jpg

Teraz musimy określić jak będzie działać nasza sygnalizacja świetlna. Załóżmy dla przykładu, że cały proces będzie przebiegał w ten sposób:

poradnik_sygnalizacji_2.jpg

Jak widzimy na powyższym schemacie, pojazdy skręcające w prawo z ulicy podporządkowanej mogą wjechać na skrzyżowanie w obydwu fazach natomiast pojazdy, które skręcają w lewo (z tej samej ulicy) - tylko w fazie II. Wniosek z tego jest taki, że wszystkie pojazdy, które jadą z tej ulicy korzystają z tego samego pasa ruchu (ścieżki) ale muszą stosować się do oddzielnych sygnalizatorów w zależności od tego, w którą stronę zamierzają skręcić. Domyślnie ścieżka odpowiedzialna za stosowanie się pojazdów do wskazań sygnalizatora (tzw. „ścieżka sterująca”) jest wspólna dla obydwu kierunków. Naszym zadaniem jest rozdzielenie tej ścieżki w taki sposób, żeby pojazdy skręcające w prawo wjeżdżały na inną „ścieżkę sterującą” niż pozostałe.

Najpierw jednak zajmiemy się kodem działania całej sygnalizacji świetlnej. Otwieramy za pomocą notatnika plik „Test_sygnalizacji.sco” i podmieniamy cały poniższy tekst...

[traffic_lights_group]
72.0000002444755

[traffic_light]
Main

[phase]
3
1.9999999686135

[phase]
6
30.9999984827171

[phase]
9
2.99999995292025

[phase]
0
0

[traffic_light]
Side

[phase]
0
39.0000004187554

[phase]
3
1.9999999686135

[phase]
6
24.9999996076687

[phase]
9
2.99999995292025

[phase]
0
0

[traffic_light]
Main_Ped

[phase]
6
27.9999999041864

[phase]
0
0

[traffic_light]
Side_Ped

[phase]
0
39.0000004187554

[phase]
6
21.9999993111511

[phase]
0
0

[traffic_light]
VacArrow_Main

[phase]
0
36.0000001222377

[phase]
6
3.999999937227

[phase]
0
0.99999998430675

...na nowy:

[traffic_lights_group]
50.0000000000000

[traffic_light]
Main

[phase]
3
2.0000000000000

[phase]
6
30.0000000000000

[phase]
9
3.0000000000000

[phase]
0
15.0000000000000

[traffic_light]
Side

[phase]
0
35.0000000000000

[phase]
3
2.0000000000000

[phase]
6
10.0000000000000

[phase]
9
3.0000000000000

[traffic_light]
Side_piesi

[phase]
0
2.0000000000000

[phase]
6
30.0000000000000

[phase]
0
18.0000000000000

[traffic_light]
Main_piesi

[phase]
0
37.0000000000000

[phase]
6
10.0000000000000

[phase]
0
3.0000000000000

[traffic_light]
Side_warunkowy

[phase]
3
2.0000000000000

[phase]
6
30.0000000000000

[phase]
9
3.0000000000000

[phase]
3
2.0000000000000

[phase]
6
10.0000000000000

[phase]
9
3.0000000000000

Warto mieć też kopię tego kodu gdyż w przyszłości będziemy musieli ponownie go podmienić.

Ze względu na to, że pojazdy mogą skręcić w prawo zarówno przy zielonym świetle ogólnego sygnalizatora jak i czerwonym przy zapalonej strzałce - cykl ten musi zawierać wskazania sygnalizatora ogólnego jak i warunkowego.

Zapisujemy i zamykamy plik. Otwieramy edytor skrzyżowań „OmsiObjectEditP.exe” (można go pobrać tutaj: http://www.omnibussimulator.de/download/OMSI-SDK_Tools_1.00.zip ) i ładujemy nasze skrzyżowanie (Object -> Load...). Ustawiamy kamerę w taki sposób aby dokładnie widzieć ścieżki z ulicy podporządkowanej (patrz screen poniżej). Aby przybliżyć sobie widok klikamy w zakładkę „View” [1] i przesuwamy suwak nieco w górę [2]:

poradnik_sygnalizacji_3.jpg

Wybieramy zakładkę „Path Edit” [1], klikamy na „ścieżkę sterującą” [2] i zapisujemy sobie gdzieś na kartce długość tej ścieżki [3]. Następnie dobieramy dla niej cykl sygnalizatora warunkowego (Traffic Lgts -> Side_warunkowy) [4]. Przy okazji przyporządkujemy tej ścieżce odpowiednią funkcję, która sprawi, że pojazdy mające zamiar na nią wjechać będą używać prawego kierunkowskazu. Rozwijamy listę kierunkowskazów (Blinker) i wybieramy prawy (Right) [5]:

poradnik_sygnalizacji_4.jpg

Teraz klikamy na następną ścieżkę, która prowadzi do skrętu w lewo [1], zapisujemy jej długość [2] po czym... usuwamy ją [3]:

poradnik_sygnalizacji_5.jpg

Klikamy na ścieżką sterującą i wybieramy funkcję „Create new Path” [1]. Teraz musimy przepisać odpowiednie parametry [2] ze ścieżki sterującej do tej, którą przed chwilą stworzyliśmy i zatwierdzić enterem. Dzięki temu nasza nowa ścieżka sterująca, która będzie kierować pojazdami skręcającymi w lewo, ma swój początek dokładnie w tym samym punkcie co ścieżka sterująca do skrętu w prawo co spowoduje, że pojazdy AI będą musiały zdecydować w którą stronę pojadą zanim przekroczą „próg reagowania na sygnalizację”. Jej długość musi być równa sumie długości, które poprzednio zapisaliśmy na kartce (w naszym przypadku wynosi ona: 9) [3].

Uwaga! Dużo skrzyżowań posiada rozwidlenia w tym samym punkcie, np. ścieżka skręcająca w prawo zaczyna się w tym samym punkcie co ścieżka skręcająca w lewo. Wówczas istnieje ryzyko, że pojazdy, które wjadą np. na ścieżkę sterującą do skrętu w prawo „przeskoczą” na ścieżkę skręcającą w lewo ponieważ długość obydwu nałożonych na siebie ścieżek sterujących jest taka sama.

W takim przypadku należy usunąć cały odcinek, który np. skręca w lewo, przedłużyć ścieżkę sterującą dla skrętu w lewo (najlepiej min. o 1m. aby uniemożliwić „przeskakiwanie pojazdów”) oraz stworzyć nową ścieżkę i za pomocą funkcji „Complete to...” połączyć ją z odpowiednim punktem tak aby powstał nowy lewoskręt.

Następnie dobieramy odpowiedni cykl sygnalizatorów oraz kierunkowskaz [4]:

poradnik_sygnalizacji_6.jpg

Zapisujemy i zamykamy edytor skrzyżowań.

Uwaga! Gdy zapisujemy zmiany w tym edytorze, to w naszym zmodyfikowanym pliku „.sco” wszystkie wartości dotyczące czasu trwania poszczególnych faz sygnalizacji ulegną samoistnej przemianie (np. wartość 30.0000000000000 zmieni się na 29.9999995292025). Zalecam wtedy ponowną podmianę całego kodu działania sygnalizacji na ten z liczbami całkowitymi gdyż w razie potrzeby łatwiej nam będzie wprowadzać zmiany.

Przechodzimy do edytora map.

Ustawiamy odpowiednie sygnalizatory przy każdej ulicy i za pomocą funkcji „Parent to” podłączamy je do skrzyżowania.

poradnik_sygnalizacji_7.jpg

Następnie wchodzimy do opcji sygnalizatorów i dla każdego z nich wybieramy odpowiedni cykl.

Uwaga! Dla sygnalizatora warunkowego nie przypisujemy cyklu „Side_warunkowy” bo wówczas strzałka zapalać nam się będzie w dwóch fazach sygnalizacji (wraz z zielonym światłem sygnalizatora ogólnego). Należy przypisać jej cykl takiego sygnalizatora, który tak jak ona zapala się tylko w I fazie. W naszym przypadku będzie to sygnalizator głównej ulicy „Main”:

poradnik_sygnalizacji_8.jpg

Gotowe! Teraz możemy sprawdzić jak działa nasza sygnalizacja w Omsi. Zamiast filmu udostępnię mapę z przykładowym skrzyżowaniem użytym w tym poradniku aby w razie jakichkolwiek wątpliwości można było wspomóc się na tym przykładzie.

poradnik_sygnalizacji_9.jpg

Do poprawnego działania mapki testowej wymagany jest dodatek „Polskie sygnalizatory”

Mam nadzieję, że ten poradnik pomoże Wam dostosowywać skrzyżowania do własnych potrzeb, choć nie ukrywam, że modyfikowanie bardziej skomplikowanych skrzyżowań może być kłopotliwe ze względu na wykrzywienie „ścieżek sterujących”, które potem trudno jest wydłużyć i dopasować do pozostałych.

Mapa testowa: DOWNLOAD

0

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Super WIELKIE DZIĘKI!! :):)

0

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

A na kości coś się znajdzie?

Owszem, ponieważ udało mi się udoskonalić metodę tworzenia skrzyżowań z kostek do tego stopnia, że jest już możliwe budowanie skrzyżowań z ustępowaniem pierwszeństwa (niekoniecznie z sygnalizacją). Ponadto pojazdy AI będą już używać kierunkowskazów.

Na razie jestem na etapie tworzenia poradnika dla tej metody dlatego myślę, że za jakiś czas pojawi się aktualizacja "Kostek sterujących ruchem AI". Osoby, które już zbudowały własne skrzyżowania z dotychczasowych kostek nie muszą się obawiać gdyż nowa metoda jest tylko rozszerzeniem starej (wymaga wykonania podobnych czynności).

0

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

A na kości coś się znajdzie?

Owszem' date=' ponieważ udało mi się udoskonalić metodę tworzenia skrzyżowań z kostek do tego stopnia, że jest już możliwe budowanie skrzyżowań z ustępowaniem pierwszeństwa (niekoniecznie z sygnalizacją). Ponadto pojazdy AI będą już używać kierunkowskazów.

Na razie jestem na etapie tworzenia poradnika dla tej metody dlatego myślę, że za jakiś czas pojawi się aktualizacja "Kostek sterujących ruchem AI". Osoby, które już zbudowały własne skrzyżowania z dotychczasowych kostek nie muszą się obawiać gdyż nowa metoda jest tylko rozszerzeniem starej (wymaga wykonania podobnych czynności).

[/quote']

Poprawiłeś mi dzisiaj humor tą informacją :)

Jesteś WIELKI :)

0

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Jak moge dostosowac plik RQ_15,5_3spur_11,5m_Sidewalk_junct.sco do Twoich wskazowek zwiazanych ze skrzyzowaniem warunkowym. Ni w 5 ni w 9 nie chce to dzialac i samochody jezdza na czerwonym swietle.

Do tego jeszcze program „OmsiObjectEditP.exe” nie chce otworzyc tego pliku, a zmiana czasu wg Twojego przykladu nic nie daje.

Co moge wiec zrobic, aby nikt nie krytykowal bledu na mapce?

0

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Ja mam pytanie czy sygnalizacja świetlna będzie działać prawidłowo na skrzyżowaniu zrobionym ze splinów bez kostek AI ?

0

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Tylko zarejestrowani użytkownicy mogą dodawać komentarze

Dodaj konto

Załóż nowe konto. To bardzo proste!


Zarejestruj nowe konto

Zaloguj się

Posiadasz już konto? Zaloguj się tutaj.


Zaloguj się teraz

  • Przeglądający   0 użytkowników

    Brak zarejestrowanych użytkowników, przeglądających tę stronę.