J'essaie de tracer des données à partir de deux fichiers rosbag différents en utilisant gnuplot. J'essaie d'automatiser cela car j'ai un certain nombre de fichiers qui devront être exécutés.Script Gnuplot shell Données ROS provenant de plusieurs fichiers
Je dois prendre le premier élément de la première colonne de chaque fichier et décaler les données de la colonne w.r.t. cela (et ensuite diviser par 10^9) pour obtenir le temps en secondes. Mon problème est que mon script renvoie quelque chose de différent lorsque je l'exécute plusieurs fois. Il retournera alors, soit le premier, le deuxième ou (parfois) la troisième commande de la parcelle, qui est ce que je suis intéressé par
Le code que j'ai bricolé est ci-dessous.
#!/bin/bash
gnuplot -persist <<-EOFMarker
set autoscale
set datafile separator ","
set key autotitle columnhead
plot "bag1" using (\$1):2 with linespoints
first=GPVAL_DATA_X_MIN
plot "bag2" using (\$1):3 with linespoints
second=GPVAL_DATA_X_MIN
plot "bag1" using ((\$1-first)/10**9):2, "bag2" using ((\$1-second)/10**9):3
EOFMarker
Une exemple de l'ensemble de données est:
%time,field.1,field.2,field.3
1.50317427276591E+018,23,64,64
1.50317427281556E+018,232,74,64
1.50317427285689E+018,216,76,64
1.50317427287325E+018,183,85,64
1.50317427292519E+018,165,89,64
1.50317427298662E+018,129,96,64
1.50317427300161E+018,115,101,64
1.50317427309547E+018,102,112,64
Et le second fichier d'entrée est:
%time,field.1,field.2,field.3,field.4
1.50317425501603E+018,55,45,229,98755
1.50317425501843E+018,55,45,229,98752
1.5031742550235E+018,51,43,229,98758
1.50317425502979E+018,51,43,229,98761
1.50317425504176E+018,55,41,231,98764
1.50317425504579E+018,55,41,231,98770
1.50317425504728E+018,50,42,232,98773
1.50317425504855E+018,50,42,232,98773
1.50317425505353E+018,55,41,229,98770
1.50317425506442E+018,55,41,229,98770
Je ne l'ai jamais vécu code où plusieurs passages produisent des résultats différents. Quelqu'un peut-il me diriger dans la bonne direction pour réparer ce gâchis? Les sorties sont les trois graphiques ci-dessous. Aucun message d'erreur n'est généré à partir du script à tout moment.
sortie Première:
troisième (et souhaitée) sortie:
Quelle est la sortie différente que vous obtenez? – tima
Donc, je suis nouveau à ce sujet, pas sûr que je peux poster des captures d'écran. Mais essentiellement deux fois cela me donne la sortie de: "plot" bag1 "en utilisant (\ $ 1): 2 avec linespoints", puis une fois il me donne la sortie de "plot" bag2 "en utilisant (\ $ 1): 3 avec des linespoints". Et aléatoirement, il donne le troisième, "intrigue" bag1 "en utilisant (($ 1-first)/10 ** 9): 2," bag2 "en utilisant (($ 1-seconde)/10 ** 9): 3" – airborne
vous pouvez intégrer les captures d'écran dans votre message, ou simplement mettre à jour votre message avec la sortie dans un bloc de code – tima