WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Robotics System Toolbox / Rosbag Positionsdaten plotten

 

jersey
Forum-Anfänger

Forum-Anfänger


Beiträge: 12
Anmeldedatum: 09.05.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.05.2017, 10:56     Titel: Robotics System Toolbox / Rosbag Positionsdaten plotten
  Antworten mit Zitat      
Moin,

leider habe ich ein Problem und hoffe hier Hilfe zu finden.
Ich habe mittels ROS Messdaten aufgenommen (2x Laserscanner, Odometrie, und ein Seilzug)
Diese möchte ich nun in Matlab verarbeiten. Dafür benutze ich die Robotics System Toolbox.
Nun habe ich die Rosbag-Dateien mit dem Befehlen:

Code:
filepath = fullfile('Rechnerpfad');
bagselect = rosbag(filepath);


eingelesen.
Außerdem habe ich es geschafft mir verschiedene Topics mit dem select-Befehl auszugeben(hier beispielhaft die Odometrie-Daten):

Code:
bagselect_odom = select(bagselect,'Topic','/odom');


Mein Problem ist nun, dass ich sowohl für die Odometriedaten, als auch für die Laserscandaten und die Seilzugdaten die X-Position über der Y-Position plotten möchte.
Leider weiß ich nicht, wie ich das machen kann.

Bisher habe ich es hinbekommen mir die Daten über der Zeit mit dem timeseries-Befehl zu plotten.

Code:
ts_odom_x = timeseries(bagselect_odom, 'Pose.Pose.Position.X');
figure;
plot(ts_odom_x)


Hat jemand eine Idee, wie ich das machen kann?
Private Nachricht senden Benutzer-Profile anzeigen


jersey
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 12
Anmeldedatum: 09.05.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.05.2017, 12:19     Titel:
  Antworten mit Zitat      
Ein kleines Update, da ich leider nicht weiterkomme:
Hat vielleicht sonst jemand eine Idee, wie man die Daten aus der timeseries herausbekommt und dann so plotten kann?
Probiert habe ich schon:

Code:
plot(ts_odom_x(:,2),ts_odom_y(:,2))

Code:
plot(ts_odom_x(2,:),ts_odom_y(2,:))


Hier kommt der Fehler: Index exceeds matrix dimensions.

Bei

Code:
plot(ts_odom_x(:,1),ts_odom_y(:,1))

Code:
plot(ts_odom_x(1,:),ts_odom_y(1,:))


kommt der Fehler: Data must be numeric, datetime, duration or an arry convertible to double.

Ich habe halt keine Ahnung, wie die timeseries abgespeichert wird, ich schätze mal in einer Matrix, aber anscheinend kann ich dort nicht einzelne Spalten/Zeilen rausplotten.

Zuletzt bearbeitet von jersey am 15.05.2017, 12:38, insgesamt einmal bearbeitet
Private Nachricht senden Benutzer-Profile anzeigen
 
jersey
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 12
Anmeldedatum: 09.05.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.05.2017, 12:37     Titel:
  Antworten mit Zitat      
Okay, hat sich geklärt.
Hier für alle, die ein ähnliches Problem haben.

Man kann die Daten aus einer Timeseries in eine Matrix schreiben, indem man:

Code:
odom_x=ts_odom_x.Data


verwendet.
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2024 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.