Zum Inhalt springen

Real Life Video auch für Daum Ergometer?


vb_man
 Teilen

Empfohlene Beiträge

Dolle Sache die hier angestoßen wurde - für Tests auf dem Classic Modell stehe ich zur Verfügung :)

 

Das ist gut zu wissen :D

 

Meine Roadmap ist in etwa:

 

1. Classic Steuerung testen (momentan noch kleinere Fehler)

2. Demnächst treffen die ersten Tacx Videos bei mir ein

3. Tacx Videos auf Classic testen (eventuell auch mit Beta Testern)

Diese Version zeigt aber noch KEINE Leistungsdaten über dem Video

4. Premium Steuerung machen (noch sehr viel zu tun :rolleyes:)

5. Tacx Videos auf Premium testen (mit Beta Testern)

6. Anzeige von Leistungsdaten & Höhenprofil über dem Video

 

:jump:

Link zu diesem Kommentar
Auf anderen Seiten teilen

Wenn man optisch den Gipfel geschafft hat, dann möchte man auch Entlastung spüren. Völlig richtig!

 

Das ist wirklich ein wichtiger Punkt. Bisher spricht ja auch nichts wirklich gegen die 10er, daher macht das Sinn, diese Auflösung zu probieren.

 

Bin voll und ganz dieser Meinung. Das ist beim Fitviewer teilweise etwas irritierend: man hat die Kuppe schon passiert und trotzdem für ein paar Sekunden noch vollen Widerstand.

 

 

Stehe fürs Testen auch zur Verfügung (P8i).

 

 

Martin

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich sehe schon, alle sind ganz heiß :D aber das momentane Motto ist noch etwas Geduld zu haben :o

 

Welches oder welche sollte man sich für die Testzwecke besorgen? Du brauchst die doch für die Daten.

 

Also ich hab noch keine Ahnung, da ich noch keine Tacx Filme habe :D

 

Aber prinzipiell sollten die ja alle gleich sein (vom Dateiformat...).

 

Ich werde auch keine Daten brauchen. Das Umwandeln der Daten kann jeder selbst mit dem Programm tun...

 

Und weil mich schon jemand per PN gefragt hat: Die Tacx Software braucht man logischerweise NICHT zu haben.

Link zu diesem Kommentar
Auf anderen Seiten teilen

bitte um einfache Beschreibung das auch ein alter Mann wie ich mitkomme.

 

Ich (versuche) ein Programm zu schreiben, dass es erlaubt die Tacx Filme mit einem Daum Ergometer (Classic / Premium) zu fahren.

 

Also ein ähnliches Programm wie Fitviewer (nur besser :D). Und als Filme kann man dann alle Tacx kompatiblen Filme verwenden :sm:

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hab gerade probiert die Tacx AVIs mit meinem Programm abzuspielen (ohne Ergo). Und siehe da, Tacx verwendet einen recht seltenen Codec: FFDShow MPEG-4 Video Decoder

 

Ein Installer für den Codec ist auf der Tacx DVD mit drauf.

 

Auf jeden Fall laufen die AVIs schon mal in der Simulation (ohne Ergo) problemlos :D

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hab gerade probiert die Tacx AVIs mit meinem Programm abzuspielen (ohne Ergo). Und siehe da, Tacx verwendet einen recht seltenen Codec: FFDShow MPEG-4 Video Decoder

 

Ein Installer für den Codec ist auf der Tacx DVD mit drauf.

 

Auf jeden Fall laufen die AVIs schon mal in der Simulation (ohne Ergo) problemlos :D

 

da du ein recht wiffer junge bist hab ich mal eine frage die nichts zur sache tut.

warum funktionieren avis unter windows vista nicht ?

bißl gegoogelt hab ich ja schon.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Heute mal wieder ein kleiner technischer Beitrag für alle die daran interessiert sind, wie so ein Programm funktioniert. Das zentrale Thema des Programmes ist ja das synchrone Abspielen des Filmes zu der Geschwindigkeit des Ergometers.

 

Die Methode meiner Wahl um den Film mit dem Ergo synchron zu halten ist die Abspielgeschwindigkeit des Filmes zu verändern. Diese "Playrate" ist numerischer Wert bei dem 1.0 der normalen Abspielgeschwindigkeit entspricht. Kleiner 1.0 ist langsamer und 0.0 ist Stillstand/Pause. Größer 1.0 ist schneller.

 

Da vom Ergometer nur jede Sekunde die aktellen Leistungsdaten wie zurückgelegte Distanz und aktuelle Geschwindigkeit ausgelesen werden ist eine direkte Kopplung des Films an den Ergometer nicht möglich. Daher muss das Steuerprogramm den Film immer an die Daten des Ergos "nachregeln".

 

Diese Regelung lässt sich am besten detailiert erläutern:

 

1. Vom Ergometer werden die zurückgelegte Distanz und aktuelle Geschwindigkeit abgefragt. Zusätzlich wird die aktuelle Position des laufenden Filmes abgefragt. Dies ist die Nummer des aktuell angezeigten Bildes (Current Frame).

 

2. Nun wird auf Grund der zurückgelegten Distanz die Nummer des Bildes ermittelt, welches an dieser Position aufgenommen wurde (Target Frame). Auch wird die Geschwindigkeit, mit der der Film an dieser Stelle aufgenommen wurde, ausgelsen. Diese Informationen stecken alle in der Tacx RLV-Datei.

 

3. Die "Basis-Playrate" des Filmes ergibt sich aus dem Verhältnis von der aktuellen Ergo Geschwindigkeit und der Aufnahme Geschwindigkeit des Filmes.

 

4. Nun ist es aber meist so, dass die Nummer des aktuell angezeigten Bildes und die Nummer des Bildes, welches eigentlich angezeigt werden sollte, nicht übereinstimmen. D.h. entweder läuft der Film vor oder nach. Um dies auszugleichen muss die zuvor ermittelte "Basis-Playrate" angepasst werden. Wenn der Film vorläuft muss sie verkleinert und wenn der Film nachläuft erhöht werden.

Wenn man jetzt versuchen würde diese Differenz zwischen den Bild-Nummern sofort, d.h. in der nächsten Sekunde, zu lösen, dann hätte man sehr unschöne Aufschaukelungs-Effekte der Playrate. D.h. es wird viel zu stark geregelt und dann muss noch stärker gegengeregelt werden usw.

Besser ist es, wenn versucht wird die Differenz zwischen den Bild-Nummern erst in ein paar Sekunden zu beseitigen. Die Wahl dieser Zeitspanne ist recht wichtig. Ist sie zu kurz, gibt es die genannten Aufschaukelungs-Effekte, ist sie zu lang, reagiert der Film nur sehr träge auf Geschwindgkeitsänderungen des Ergometers. Als bisher ganz guten Wert haben sich 5 sec erwiesen. Wobei das in weiteren Tests noch optimiert werden soll.

 

Und da für diejenigen, die etwas programmieren können, etwas Code mehr sagt als viele Worte hier die betroffene Funktion:

 

public double GetPlaySpeedFactor( double distance /* Unit: Meters */, double speed /* Unit: Meters/Second */, uint currentFrameNumber )
{
uint targetFrameNumber = this.GetTargetFrameNumber( distance );
double recordingSpeed = this.GetRecordingSpeed( distance );

double baseSpeedFactor = speed / recordingSpeed;
double speedFactor = baseSpeedFactor;
double baseFramesPerSecond = baseSpeedFactor * _frameRate;

long frameDiff = (long)currentFrameNumber - (long)targetFrameNumber;
double factorChange = 0;

double TIME_TO_CHANGE = 5;

if( frameDiff > 0 )
{
	// ... langsamer !

	factorChange = -( frameDiff / ( baseFramesPerSecond * TIME_TO_CHANGE ) );
}
else if( frameDiff 	{
	// ... schneller !

	factorChange = ( -frameDiff / ( baseFramesPerSecond * TIME_TO_CHANGE ) );
}

speedFactor = speedFactor + factorChange;

if( speedFactor 		speedFactor = 0;

return speedFactor;
}

 

Das bedeutet in der Praxis, dass der Film fast immer etwas vor- bzw. nachläuft. Das Programm ist ständig damit beschäftigt diese Differenz durch eine Regelung zu minimieren.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Heute mal wieder ein kleiner technischer Beitrag für alle die daran interessiert sind, wie so ein Programm funktioniert. Das zentrale Thema des Programmes ist ja das synchrone Abspielen des Filmes zu der Geschwindigkeit des Ergometers.

 

Die Methode meiner Wahl um den Film mit dem Ergo synchron zu halten ist die Abspielgeschwindigkeit des Filmes zu verändern. Diese "Playrate" ist numerischer Wert bei dem 1.0 der normalen Abspielgeschwindigkeit entspricht. Kleiner 1.0 ist langsamer und 0.0 ist Stillstand/Pause. Größer 1.0 ist schneller.

 

Da vom Ergometer nur jede Sekunde die aktellen Leistungsdaten wie zurückgelegte Distanz und aktuelle Geschwindigkeit ausgelesen werden ist eine direkte Kopplung des Films an den Ergometer nicht möglich. Daher muss das Steuerprogramm den Film immer an die Daten des Ergos "nachregeln".

 

Diese Regelung lässt sich am besten detailiert erläutern:

 

1. Vom Ergometer werden die zurückgelegte Distanz und aktuelle Geschwindigkeit abgefragt. Zusätzlich wird die aktuelle Position des laufenden Filmes abgefragt. Dies ist die Nummer des aktuell angezeigten Bildes (Current Frame).

 

2. Nun wird auf Grund der zurückgelegten Distanz die Nummer des Bildes ermittelt, welches an dieser Position aufgenommen wurde (Target Frame). Auch wird die Geschwindigkeit, mit der der Film an dieser Stelle aufgenommen wurde, ausgelsen. Diese Informationen stecken alle in der Tacx RLV-Datei.

 

3. Die "Basis-Playrate" des Filmes ergibt sich aus dem Verhältnis von der aktuellen Ergo Geschwindigkeit und der Aufnahme Geschwindigkeit des Filmes.

 

4. Nun ist es aber meist so, dass die Nummer des aktuell angezeigten Bildes und die Nummer des Bildes, welches eigentlich angezeigt werden sollte, nicht übereinstimmen. D.h. entweder läuft der Film vor oder nach. Um dies auszugleichen muss die zuvor ermittelte "Basis-Playrate" angepasst werden. Wenn der Film vorläuft muss sie verkleinert und wenn der Film nachläuft erhöht werden.

Wenn man jetzt versuchen würde diese Differenz zwischen den Bild-Nummern sofort, d.h. in der nächsten Sekunde, zu lösen, dann hätte man sehr unschöne Aufschaukelungs-Effekte der Playrate. D.h. es wird viel zu stark geregelt und dann muss noch stärker gegengeregelt werden usw.

Besser ist es, wenn versucht wird die Differenz zwischen den Bild-Nummern erst in ein paar Sekunden zu beseitigen. Die Wahl dieser Zeitspanne ist recht wichtig. Ist sie zu kurz, gibt es die genannten Aufschaukelungs-Effekte, ist sie zu lang, reagiert der Film nur sehr träge auf Geschwindgkeitsänderungen des Ergometers. Als bisher ganz guten Wert haben sich 5 sec erwiesen. Wobei das in weiteren Tests noch optimiert werden soll.

 

Und da für diejenigen, die etwas programmieren können, etwas Code mehr sagt als viele Worte hier die betroffene Funktion:

 

public double GetPlaySpeedFactor( double distance /* Unit: Meters */, double speed /* Unit: Meters/Second */, uint currentFrameNumber )
{
uint targetFrameNumber = this.GetTargetFrameNumber( distance );
double recordingSpeed = this.GetRecordingSpeed( distance );

double baseSpeedFactor = speed / recordingSpeed;
double speedFactor = baseSpeedFactor;
double baseFramesPerSecond = baseSpeedFactor * _frameRate;

long frameDiff = (long)currentFrameNumber - (long)targetFrameNumber;
double factorChange = 0;

double TIME_TO_CHANGE = 5;

if( frameDiff > 0 )
{
	// ... langsamer !

	factorChange = -( frameDiff / ( baseFramesPerSecond * TIME_TO_CHANGE ) );
}
else if( frameDiff 	{
	// ... schneller !

	factorChange = ( -frameDiff / ( baseFramesPerSecond * TIME_TO_CHANGE ) );
}

speedFactor = speedFactor + factorChange;

if( speedFactor 		speedFactor = 0;

return speedFactor;
}

 

Das bedeutet in der Praxis, dass der Film fast immer etwas vor- bzw. nachläuft. Das Programm ist ständig damit beschäftigt diese Differenz durch eine Regelung zu minimieren.

 

http://www.lpph-amstetten.at/dialekt/mp3/2519.wav :D ... :rofl: (übersetzung: gemächlich)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Frage in die Runde:

 

In den Tacx RLV Dateien stecken Infos zu verschiedenen Abschnitten der Tour. Kann mich mal jemand mit einer Tacx Rolle aufklären, wie das die Tacx Software handelt? Wird man vor dem Start gefragt welche "Tour" man von den hinterlegten fahren will?

 

Das wär doch sicher ein schönes Feature das so zu übernehmen, oder? Dann muss man nicht immer den ganzen Film fahren, sondern kann sich einen Teil rauspicken...

 

FR_Ventoux.rlv:

---

Total Trip: 0 - 67806

Sault - Ventoux : 0 - 23955

Malaucéne - Ventoux: 45169,1 - 67416

Ventoux Descent: 24007,8 - 48420,2

Sault - Ventoux - Malaucéne: 0 - 48513,1

Route 1: 0 - 16679,4

Route 2: 16679,4 - 31658,9

Route 3: 31658,9 - 52926,9

Route 4: 52926,9 - 67806,6

 

 

FR_AlpineClassic.rlv

---

Total Trip: 0 - 82159

Col du Galibier TT: 3853 - 20125

l'Alpe-d'Huez TT: 68288,9 - 82158,9

Route 1 Col du Galibier: 0 - 12096,9

Route 2 Col du Galibier: 12061,1 - 30593

Route 3 Col du Lautaret: 30593 - 51326

Route 4 Col du Lautaret: 51387,1 - 68136,1

Route 5 l'Alpe d'Huez: 68165,1 - 77118,9

Route 6 l'Alpe d'Huez: 77336,1 - 82162,8

Col du Galibier + warm up: 0 - 30593

l'Alpe-d'Huez + warm up: 60890,4 - 82162,8

Galibier Top - Foot Lautaret: 20125 - 64717,9

Lac Chambon - Foot d'Huez: 54289,3 - 68288,9

 

IT_Milan-SanRemo.rlv

---

Total Trip: 0 - 84482

Poggio - San Remo: 66794 - 84397

Cipressa - San Remo: 49892 - 84397

1: Alassio : 0 - 26215

2: Imperia : 26215 - 47151,1

3: Riva Ligura: 47151,1 - 70291,1

4: San Remo: 70168,3 - 84397,2

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich habe das Elite-System mal ausprobiert und es kann auch Abschnitte anspringen, die man aus einer Auswahl anklicken kann.

 

Meinst du während des laufenden Trainings oder vor dem Start?

 

Möglich wäre beides. Z.B. wäre es möglich mit den Pfeil Tasten der Tastatur zum nächsten hinterlegten Punkt zu springen (oder zurück...).

Link zu diesem Kommentar
Auf anderen Seiten teilen

Beim Elite bin ich immer in das Hauptmenü zurückgesprungen mit einer Taste. Du stoppst schon das lfd. Training und springst zurück in das Hauptfenster und kannst dann aus den vorhandenen Strecken deine neue Auswahl vornehmen. Gleichzeitig läuft von der angewählten Strecke, solange man noch kein Training begonnen hat, das Video ab diesem Abschnitt mit der aufgezeichneten Videogeschwindigkeit durch.

 

P.S.

Vorschau läuft in einem kleinen Vorschaufenster ab.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Gibt es für solch Problemstellungen schon vorhandene lösungsansätze oder musst Du Dir alles selber erarbeiten?

 

Nein, da gibt es nix öffentliches. Das ist schon alles selbst überlegt.

 

Ich weiß nicht, ob FitViewer oder Tacx das genauso machen. Ich galube aber schon, da es nicht so viele Möglichkeiten gibt das zu tun...

 

Um die Tatsache mit dem vor- bzw. nachlaufen des Filmes besser verstehen zu können hab ich für die Tests eine Debug-Zeile am Kopf des Filmes eingefügt.

 

Da sieht man:

- die aktuelle Bildnummer (FrameNumber)

- in der Klammer dahinter die Bildnummern-Differenz (FrameDiff)

- die aktuelle Distanz in Metern

- in der Klammer dahinter die aktuelle Distanz-Differenz in Metern

- die aktuelle Abspielrate (FrameRate)

- die aktuelle Steigung

 

Im angehängten Screenshot läuft der Film also ein Bild vor, was 0.3 Metern entspricht.

ep_shot_1.png

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi

 

Wenn man den Film startet, kommt am anfang die Abfrage, ganze Tour oder einzelne Strecken, die man mit der Maus anspringen kann, aber die Teile sind deffiniert, dh. man kann nicht einfach bei zB:

km5,98 einsteigen sondern nur an ganz bestimmten Punkten, oder bestimmte Abschnitte mit deffinierten Ende wählen.

 

Wie gehts berghab?

also man muß bergab ganz wenig treten, nur ganz aufhöhren geht auch nicht, man hat immer den eindruck es schiebt jemand von hinten.

Ich habe die Motorbremse und Tacx Imagig Fortius.

 

 

gruß alucard

 

Hallo

So wie ich es verstanden habe werden die Tacx Dateien in Epp Dateien umgewandelt und werden sich bergab normal wie jede andere Epp Datei fahren lassen.

Jore

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

 Teilen

×
×
  • Neu erstellen...