-
Notifications
You must be signed in to change notification settings - Fork 32
/
extract_ros_data.m
executable file
·130 lines (107 loc) · 4.18 KB
/
extract_ros_data.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
function [] = extract_ros_data(file_name, load_folder, save_folder, cam_name)
%EXTRACT_ROS_DATA reads a ROS bag, and saves the events, IMU messages and
%camera info in a mat file.
%
% Syntax: extract_ros_data(file_name, load_folder, save_folder)
%
% You will need the matlab_rosbag package:
% https://github.com/bcharrow/matlab_rosbag
%
% Inputs:
% file_name - name of the bag file (no extension).
% load_folder - folder of the bag. No trailing slash. Set to . by
% default.
% save_folder - folder the mat is saved in. Set to load_folder by
% default.
% cam_name - OPTIONAL name of the event camera topic if not davis or
% dvs.
%
% See also GENERATE_UNDISTORT_MAP
%
% Author: Alex Zihao Zhu, University of Pennsylvania
% Email: alexzhu(at)seas.upenn.edu
% Copyright 2018 University of Pennsylvania
% Alex Zihao Zhu, Nikolay Atanasov, Kostas Daniilidis
%
% THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS, CONTRIBUTORS, AND THE
% TRUSTEES OF THE UNIVERSITY OF PENNSYLVANIA "AS IS" AND ANY EXPRESS OR
% IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
% OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
% IN NO EVENT SHALL THE COPYRIGHT OWNER, CONTRIBUTORS OR THE TRUSTEES OF
% THE UNIVERSITY OF PENNSYLVANIA BE LIABLE FOR ANY DIRECT, INDIRECT,
% INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
% NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
% DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
% THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
% (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
% THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
if nargin==1
load_folder = '.';
end
if nargin < 3
save_folder = load_folder;
end
if nargin == 4
fprintf(['Warning: You have set the cam_name argument to ''%s''. ', ...
'If this is intentional, please ignore this message.\n'], cam_name)
end
bag_name = strcat(load_folder,'/', file_name, '.bag');
fprintf('Reading ROS bag %s. This may take some time.\n', bag_name)
bag = ros.Bag.load(bag_name);
event_topics = bag.topics('.*events');