Welkom! Login voor uitgebreide toegang en gebruiksfuncties.

Updates:

Testbericht: het is bekend dat de zoekfunctie nog niet perfect werkt, er moet een  nieuwe index opgebouwd worden.

Traintastic - modelbaan besturingssoftware (gratis en open source)

in Al het andere!

Gestart door reinderlf, 7 april 2024 23:59

Vorige topic - Volgende topic

reinderlf

Hi,

Ik ben al een tijdje bezig met het ontwikkelen van een software programma om een modelspoorbaan te kunnen besturen/automatiseren. Het is uiteraard een project met van vele jaren en het is nog lang niet "af" 8)

Wat is Traintastic?
Traintastic is een nieuw besturings programma voor de modelspoorbaan. Het is nog volop in ontwikkeling, mocht je opzoek zijn naar een besturings programma voor de modelspoorbaan, dan is Traintastic voorlopig nog niet geschikt, Traintastic bevat nog lang niet de functionaliteit die de andere software pakketten bieden. Vind je het leuk om te experimenteren en te testen, check dan de development builds pagina, hier kun je de laatste ontwikkel/test versie downloaden.

Wat kan Traintastic?
Op dit moment is er ondersteuning voor:
- Het aansturen van locomotieven en functies
- Het aansturen van wissels en seinen
- Het inlezen van melders en contacten
- Het deels volgen van treinen in blokken (work in progress)
- RailCOM
- Uhlenbrock LISSY
- Maken van schakelborden
- Klok met instelbare snelheid (+LocoNet Fast clock)
- LNCV programmeren
- Ondersteuning voor: WLanMaus/Z21app en WiThrottle als handregelaar
- Scripting

Welke centrales kun je gebruiken met Traintastic?
Op dit moment is er ondersteuning voor:
- LocoNet: Digitrax, Intellibox, DR5000 etc.
- XpressNet: MultiMaus, Lenz etc.
- Z21
- DCC++EX
- ESU ECoS 1/2
- Marklin CS2/CS3
- LTD HSI-88

Waar wordt op dit moment aangewerkt?
Op dit moment ben ik bezig met het klaar maken van de Traintastic 0.3 "Copenhagenn" release, doel van de volgende release Traintastic 0.4 "Dublin" is om de basis verder te finetunen en (deels) automatische rijden toe te voegen.

Filmpjes
- DevPreview 001 - Train tracking
- DevPreview 002 - Add interface wizard

Links
- Website: https://traintastic.org
- De broncode is via GitHub: https://github.com/traintastic/traintastic (GPLv2 licentie)
- Traintastic Facebook pagina: https://www.facebook.com/traintastic.org/
- Traintastic user group op Facebook: https://www.facebook.com/groups/traintastic

Groeten,
Reinder

p.s. Mocht je een GitHub account hebben, geeft het project dan even een ster :angel:

AP3737

Hallo Reinder

Leuk project. Vanwege de grootte heb ik me daar zelf nooit aan gewaagd. Je zegt zelf al dat het een ,,meerdere jaren" project wordt. Respect!
Welke programmeertaal/ omgeving gebruik je? Met andere woorden, voor welke platformen is het bedoeld?
En (dit is niet negatief bedoeld) waarom ben je aan dit project begonnen, in plaats van Rocrail te verfijnen? Is het omdat je het gewoon een leuke uitdaging vindt, of omdat je specifieke dingen mist bij bestaande software. Indien ja, wat dan?

Groet
Aiko

reinderlf

Hi Aiko,

Het zijn al meerdere jaren :P de eerste regels code heb ik in 2019 geschreven :)

CiteerWelke programmeertaal/ omgeving gebruik je? Met andere woorden, voor welke platformen is het bedoeld?
Het is geschreven in C++ met Qt voor de user interface. Het kan draaien op Windows, Linux en macOS. (Al moet ik voor macOS nog wel iets van een installer/package maken.)

CiteerEn (dit is niet negatief bedoeld) waarom ben je aan dit project begonnen, in plaats van Rocrail te verfijnen? Is het omdat je het gewoon een leuke uitdaging vindt, of omdat je specifieke dingen mist bij bestaande software. Indien ja, wat dan?
Terechte vraag hoor :) Het "probleem" met RocRail is dat dat al een hele tijd niet meer open source is (ook al menen sommige mensen van wel), dus dat gaat niet. Ik wilde sowieso al eens een open source project beginnen leek me een mooie en leerzame uitdaging, daarnaast staat het ook wel leuk op je CV vind ik. De meeste pakketten die er zijn kunnen in de basis wel dezelfde dingen, nadeel is wel dat ze vaak een grote leercurve hebben. Mijn doel met Traintastic is een open source alternatief bieden waar de instap laag is maar waar ook de mensen die alles er uit willen halen mee uit de voeten kunnen (daarom zit er een scripting engine in.)

Vraag gerust als je meer vragen (of ideeen) hebt :)

Groeten,
Reinder


bask185

Ik begon op de MSV met iTrain. Ik vond het baanplan tekenen niet super intuitief werken en naar mijn mening zijn er echt veels te veel opties en geen manieren om er van af te komen. Ik had een keer per stom ongeluk het boxjes 'tandrad baan' aangevinkt en dat had ik niet door. Gevolg is dat ik niet snapte waarom geen een trein dat blok meer in wilde. Tegen de tijd dat je je fout gezien heb, ben je ook weer een uur verder. We hebben ook wel eens verkeerd ingevuld dat een loc maar 1 cabine had en hij stond achterstevoren baan op een eenrichtingsverkeer blok. Je raadt het al, die ging dus niet rijden en wij maar zoeken in die 20000 opties  :-\.

En voor de simpelheid, willen we ook rijden op melders en niet op positie. Dan hoef je namelijk helemaal geen lengtes meer in te voeren, niet van treinen, niet van blokken. Je hoeft ook geen treinen te eiken.

En om diezelfde reden geven we ook niks om of het een stoom, diesel of elektrische trein is. Ik zie nu al gebeuren dat iemand ooit een elektrisch trein toevoegt, die vervolgens weer geen route vinden omdat er ergens een blok niet 'geëlektrificeerd is'.

En zo heb je pakweg ~95% van alle opties die je tot je beschikking hebt soms niet eens nodig. Bouw gerust al die features in, want veel mensen gebruiken ze wel, maar als ik 1 idee mag opperen, zou dat zijn om een settings menu te maken waarbij je al die dingen eerst aan moet vinken voordat die opties in beeld komen bij blok en trein eigenschappen menuutjes.


BLok eigenschappen, 1 van 7 tabbladen. Wat rood is, gebruik ik niet. Maar stuk maken lukt me  :P

En ik kan zo nog 20 van die screenshots maken.

Zo'n lijstje met opties kan misschien lang worden, maar ik denk zelf dat als je alleen kan zien wat je wilt zien, dat het er beter van wordt, anyways my 2 cents.

Ik wil niet na een dag lang werken een handleiding van 223 pagina's er 'moeten' bij pakken om iets werkend te krijgen.
Ik wil niet 2 uur opzoek moeten gaan naar allerlei opties en wat niet omdat een trein vertikt te gaan rijden door een of andere foute setting die ik nooit in beeld had moeten krijgen in de eerste plaats.

Soms wil je gewoon dat je treinen... gewoon gaan..

Ik vind deze wel toepasselijk  ;D

(Vervang ship hier door train)

Mvg,

Bas


Train-Science.com
Train-Science github
It ain't rocket science ;-)

henk

Citaat van: bask185 op  8 april 2024 11:40

En voor de simpelheid, willen we ook rijden op melders en niet op positie. Dan hoef je namelijk helemaal geen lengtes meer in te voeren, niet van treinen, niet van blokken. Je hoeft ook geen treinen te eiken.

Dat is inderdaad een stuk eenvoudiger. Sterker, zo zijn de meeste programma's ooit begonnen. Koploper in ieder geval wel. Dat 'ijken' is later toegevoegd en het bleek aanzienlijk natuurlijker rijgedrag mogelijk te maken. Daar wil ik echt niet meer zonder.

Wat al die andere mogelijkheden betreft. Die zijn er over het algemeen op verzoek van hobbyïsten ingekomen. Ja, dan wordt het vaak een beetje een ratjetoe.  ;D
Maar eenmaal ingesteld, hoef je er verder weinig mee.
Het is heel Nederlands om iets heel Nederlands te vinden.

reinderlf

Interessante info, bedankt voor jullie reacties :)

Waar ik iig aan zat te denken is een soort "skill level" instelling. zie: https://github.com/traintastic/traintastic/discussions/71
Waardoor je naar mate je wat ervarener bent opties kan toevoegen, zodat het allemaal beetje behapbaar blijft. Andere optie zou idd kunnen zijn om het wat meer specifiek te doen op optie niveau. Traintastic laat sowieso al zo veel mogelijk dingen weg die op basis van andere instellingen geen functie hebben op dat moment, b.v. een baudrate instelling als je via netwerk verbinding maakt met je centrale.

IJken van treinen is wel mooi idd, maar het moet wat mij betreft ook zonder kunnen, dat maakt het ook makkelijker om te starten :)

Handleiding ben ik wel beetje aan begonnen, maar ik ben nu meer bezig om het in de software te verwerken zodat de software je zo veel mogelijk helpt :)

Joz

Citaat van: bask185 op  8 april 2024 11:40
En voor de simpelheid, willen we ook rijden op melders en niet op positie. Dan hoef je namelijk helemaal geen lengtes meer in te voeren, niet van treinen, niet van blokken. Je hoeft ook geen treinen te eiken.

Met de Artificial Intelligence technieken van tegenwoordig, zou het toch helemaal niet meer nodig moeten zijn om treinen te ijken en lengtes in te voeren.  8)
Hooguit de lengte van één of twee blokken invoeren, en het systeem zou op basis daarvan de treinen vanzelf moeten 'leren' kennen. En daarna kunnen die treinen het systeem laten leren hoe lang de andere blokken zijn. Hoe langer je rijdt, hoe beter het systeem leert wat het aanstuurt?

rjr

Citaat van: reinderlf op  8 april 2024 13:07
Interessante info, bedankt voor jullie reacties :)

Waar ik iig aan zat te denken is een soort "skill level" instelling. zie: https://github.com/traintastic/traintastic/discussions/71
Waardoor je naar mate je wat ervarener bent opties kan toevoegen, zodat het allemaal beetje behapbaar blijft. Andere optie zou idd kunnen zijn om het wat meer specifiek te doen op optie niveau. Traintastic laat sowieso al zo veel mogelijk dingen weg die op basis van andere instellingen geen functie hebben op dat moment, b.v. een baudrate instelling als je via netwerk verbinding maakt met je centrale.

IJken van treinen is wel mooi idd, maar het moet wat mij betreft ook zonder kunnen, dat maakt het ook makkelijker om te starten :)

Handleiding ben ik wel beetje aan begonnen, maar ik ben nu meer bezig om het in de software te verwerken zodat de software je zo veel mogelijk helpt :)

Weet niet of je koploper kent?
Die heeft veel van dit al. Daar heb je standaard een installatie die je wat zaken laat instellen waardoor je, zonder dat je ervaring hebt een baan, schaduwstation met 7 blokken, gewoon station met 5 blokken en 7 treinen, alle treinen binnen 1 dag automatisch kunt laten rijden.  Praktijk ervaring hiervan vorige maand gezien.

Maar daar kun je op een gegeven moment extra opties kiezen waardoor je meer kunt instellen en meer kunt regelen.
Ijken van de treinen is daar niet nodig, maar kan wel. Wil je snel ijken dan doe je een paar stappen, wil je heel precies kunnen stoppen doe je alle stappen.
Dan nog altijd op basis van melders, maar per trein kun je daar dan een  beetje van afwijken wat een realistischer geheel geeft. Nodig zeker niet, maar wel mooi dat het er is.

Citaat van: Joz op  8 april 2024 13:18
Met de Artificial Intelligence technieken van tegenwoordig, zou het toch helemaal niet meer nodig moeten zijn om treinen te ijken en lengtes in te voeren.  8)
Hooguit de lengte van één of twee blokken invoeren, en het systeem zou op basis daarvan de treinen vanzelf moeten 'leren' kennen. En daarna kunnen die treinen het systeem laten leren hoe lang de andere blokken zijn. Hoe langer je rijdt, hoe beter het systeem leert wat het aanstuurt?

Dit zit dus al in koploper. Oud programma, maar kun je prima rijden zonder de treinen te ijken, of lengtes in te voeren. Zelfs niet voor 1 of 2 blokken.
In het begin zie je dan wel dat treinen inderdaad abrupt stoppen in de stopmelder, en naar mate je langer rijd wordt dat beter.
Doe je wel ijken en lengtes in voeren dan heeft het programma al voorkennis en kan hij vanaf het begin al een betere inschatting maken, en het daarna vervijnen. Dus ja, is net wat je wilt.

PS, wil zeker niet zeggen dat een nieuw programma niet nodig is. In tegen deel, een goed nieuw programma is zeker welkom, zeker ook omdat wat ontwikkelingen betreft koploper stil ligt. Maar heet was zijn tijd wel ver vooruit met zaken die hier genoemd worden al lang geimplementeerd.

Dus bij een nieuw programma zou je inderdaad een snelle start moeten kunnen maken, maar daarnaast veel mogelijkheden hebben om het aan eigen wensen aan te passen. En dat betekend dan ook veel instellingen omdat niet iedereen gelijk is. En daar zit een gevaar als je een programma wilt hebben dat veel zelf wil leren. Want dan is het maar de vraag of het de juiste kant op gaat voor de gebruiker er van. En er zou dan op zijn minst een soort van analyze mode moeten zijn waarbij het progamma ook aangeeft welke beslissingen hij waarom neemt.

b.v bij onderstaande voorbeeld, ergens een melding dat blok niet gekozen wordt vanwege lok geen tandradlok. Dan weet je ook waar je het zoeken moet als je gedrag wilt aanpassen.

Groet,
Roelco

bask185

CiteerEn daarna kunnen die treinen het systeem laten leren hoe lang de andere blokken zijn.
Ik opperde precies dit idee wel eens op iTrain forum. Goed idee dus  :P. Daarbij specificeerde ik expliciet dat het spoor schoon moet zijn en je een degelijke trein (= goed rijgedrag met cruise control) Maar een van die digibeten die daar vragen "beantwoorden" die schoot het al direct onderuit.

"Als je spoor vies werkt het al niet"
"Als je trein niet constant rijdt op hellingen werkt het niet".

Niet eens meer de moeite genomen om in discussie te gaan  ::).

Bas
Train-Science.com
Train-Science github
It ain't rocket science ;-)

reinderlf

CiteerMet de Artificial Intelligence technieken van tegenwoordig, zou het toch helemaal niet meer nodig moeten zijn om treinen te ijken en lengtes in te voeren.  8)
Hooguit de lengte van één of twee blokken invoeren, en het systeem zou op basis daarvan de treinen vanzelf moeten 'leren' kennen. En daarna kunnen die treinen het systeem laten leren hoe lang de andere blokken zijn. Hoe langer je rijdt, hoe beter het systeem leert wat het aanstuurt?

Ja, die richting zat ik al eens op te denken, je wilt het liefst dat de software zoveel mogelijk zelf doet :) Het resultaat is natuurlijk beter als de trein netjes een constante snelheid rijdt en de sporen schoon zijn, maar dat moet bij op positie rijden ook, dan bepaal je vanaf de melder icm met de tijd en snelheid waar de trein is, dat werkt ook alleen maar goed als de snelheid constant is en de melder timing nauwkeurig is.

Citeer
Weet niet of je koploper kent?
Die heeft veel van dit al. Daar heb je standaard een installatie die je wat zaken laat instellen waardoor je, zonder dat je ervaring hebt een baan, schaduwstation met 7 blokken, gewoon station met 5 blokken en 7 treinen, alle treinen binnen 1 dag automatisch kunt laten rijden.  Praktijk ervaring hiervan vorige maand gezien.

Koploper ken ik een beetje, wat ik daar niet zo handig aan vind is dat je verbindingen tussen blokken en de wissels die er tussen liggen zelf moet invoeren. Persoonlijk teken ik liever een schema en dan mag de software dat uitzoeken, scheelt een boel werk (en minder kans op fouten). Los daarvan heeft Paul natuurlijk een mooi stuk software gebouwd waar velen dankbaar gebruik van maken. Koploper heeft een optie om rook/geluid uit te zetten, dat vond ik wel een leuke en handige optie, dat heeft Traintastic dus ook :)

CiteerPS, wil zeker niet zeggen dat een nieuw programma niet nodig is. In tegen deel, een goed nieuw programma is zeker welkom, zeker ook omdat wat ontwikkelingen betreft koploper stil ligt. Maar heet was zijn tijd wel ver vooruit met zaken die hier genoemd worden al lang geimplementeerd.

Of het nu nodig is of niet maakt mij niet uit :P, ik bouw het in de eerste plaats omdat ik het zelf wil bouwen, en daarnaast deel ik het graag met anderen die het ook willen gebruiken  8)

Citeerbij onderstaande voorbeeld, ergens een melding dat blok niet gekozen wordt vanwege lok geen tandradlok. Dan weet je ook waar je het zoeken moet als je gedrag wilt aanpassen.

Een "the computer say no" situatie, dat is idd heel vervelend. Via een andere weg heb ik daar ook al een verzoek voor gehad omdat in sommige software dat niet te achterhalen is, dus dat is zeker iets wat ik in Traintastic ga toevoegen. Hiervoor zitten in Traintastic debug opties voor verschillende onderdelen die je aan kunt zetten, daarmee kun je in de log zien wat Traintastic doet, b.v. communicatie met de centrale.

Genoeg zaken nog om over na te denken, eerst volgende stap zal het blokken / treinen aspect verder uitwerken en verbeteren, zal hier zo nu en dan ook ff wat achterlaten, beetje extra input is wel fijn :)




Hasenwald

Ik heb begrepen dat de volgende versie van iTrain (versie 6, dit najaar geloof ik) alleen nog maar op positie rijden ondersteunt en niet meer op melder rijden (klassiek wordt dat genoemd in iTrain). Dat betekent voor mij dat er niet ge-upgrade gaat worden naar versie 6. Dan is versie 5 mijn laatste iTrain versie. 
Groet, Enrico

Hasenwald  |  Epoche III-IV-V  | H0 Roco-Line 2.1  |  BMD16N-SD  |  Digikeijs 4018  |  IB II  |  Power 4  |  iTrain Plus

rjr

Citaat van: Hasenwald op  9 april 2024 01:26
Ik heb begrepen dat de volgende versie van iTrain (versie 6, dit najaar geloof ik) alleen nog maar op positie rijden ondersteunt en niet meer op melder rijden (klassiek wordt dat genoemd in iTrain). Dat betekent voor mij dat er niet ge-upgrade gaat worden naar versie 6. Dan is versie 5 mijn laatste iTrain versie. 

Hoe valt dat te rijmen met een opmerking als hieronder die blijkbaar ook van Itrain komt:

Citaat van: bask185 op  8 april 2024 15:51

"Als je spoor vies werkt het al niet"
"Als je trein niet constant rijdt op hellingen werkt het niet".

Als je alleen op positie rijdt, en het spoor is vies dan werkt dat toch niet, dan weet je toch nooit dat de trein ook daadwerkelijk zijn eindpositie bereikt heeft?
Binnen koploper maak ik best wel gebruik van doorrijden of virtuele melders zoals ze daar heten, maar dat is dan niet meer op crusiale punten.

Roelco

bask185

Citeerblijkbaar ook van Itrain komt
Nee, het komt van een digitbeet die 'los' mag lopen op het iTrain forum.

Ik had laatst een verzoek ingediend om via iTrain een adres te kunnen dispatchen met een virtuele loconet interface. Volgens mij was het dezelfde digitbeet die al direct er op in dook met "volgens mij kan dat ook niet met loconet".. wat dus niet waar is  ::)

Mvg,

Bas
Train-Science.com
Train-Science github
It ain't rocket science ;-)

reinderlf

#13
LocoNet dispatch moet ik ook nog es toe voegen, heb al een hele tijd terug eens een Uhlenbrock FRED gekocht, maar nog nooit mee getest. Misschien iets voor op Roadmap van Traintastic 0.4 :)

Ben nu nog bezig met het afronden van de add interface wizard, zie video:
https://www.youtube.com/v/2gYl7zVnHGo

Op dit moment staan de volgende centrales in de lijst:


Er zijn natuurlijk nog veel meer centrales, hebben jullie nog suggesties van centrales die nog in de lijst kunnen (liefst met bijbehorende instellingen ;))

Hasenwald

Groet, Enrico

Hasenwald  |  Epoche III-IV-V  | H0 Roco-Line 2.1  |  BMD16N-SD  |  Digikeijs 4018  |  IB II  |  Power 4  |  iTrain Plus