ROS Resources: Documentation | Support | Discussion Forum | Service Status | Q&A answers.ros.org
Ask Your Question
5

How can I use bag file data in Matlab? [closed]

asked 2011-09-27 03:21:02 -0500

fresh_ros_user gravatar image

I have datas in bag file such as velocity and acceleration from the sensors. I want to read data with respect to time domain to make calculations in Matlab. How can I gain the data and use in Matlab? Thanks for your answers.

edit retag flag offensive reopen merge delete

Closed for the following reason the question is answered, right answer was accepted by Procópio
close date 2017-07-27 01:19:39.377581

2 Answers

Sort by » oldest newest most voted
15

answered 2011-09-27 03:31:16 -0500

DimitriProsser gravatar image

If you play back the bag, you can use:

rostopic echo -p /topic_name

to display the data in a MatLab-friendly format. You can output this to a text file with:

rostopic echo -p /topic_name > data.txt

Or, you can even convert a topic directly to CSV with:

rostopic echo -b file.bag -p /topic

NOTE: This will only work with simple message types. LaserScans, PointClouds, arrays, etc won't work very well because the entire message is rendered to text.

The other option would be to use the rosbag API, located here to load the data into a C++ program and manipulate it that way.

edit flag offensive delete link more

Comments

Or use the python API along with scipy.io.savemat to write out a .mat file.
Dan Lazewatsky gravatar imageDan Lazewatsky ( 2011-09-27 04:38:37 -0500 )edit

Could you please show how to open that text file in Matlab? None of the tutorials helped me solve this

miloup gravatar imagemiloup ( 2014-04-06 21:15:57 -0500 )edit

Load the file to matlab workspace using the txtdata=load('filepath/mytextfile.txt). numdata=str2double(txtdata.mytextfile). Sometimes this does not work right away. Find out what is the import using commands like ischar() or isobj() and google the corresponding command to swap it to numericals.

Brivate Bungo gravatar imageBrivate Bungo ( 2017-03-20 08:28:22 -0500 )edit
0

answered 2017-07-25 18:37:43 -0500

You can use rosbag and select function in Matlab to load bag files into Matlab. https://www.mathworks.com/help/roboti...

edit flag offensive delete link more

Comments

This answer would be more helpful if you included information such as what function to use instead of just posting a link which can disappear at some point.

jayess gravatar imagejayess ( 2017-07-25 19:33:28 -0500 )edit

Question Tools

2 followers

Stats

Asked: 2011-09-27 03:21:02 -0500

Seen: 8,134 times

Last updated: Jul 25