How to get a cell array with lidarScan data for addScan?
4 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Blondi
am 1 Jul. 2022
Beantwortet: Garmit Pant
am 4 Jul. 2022
Hello,
I tried to use the code from https://de.mathworks.com/help/nav/ref/lidarslam.addscan.html.
But on Mathworks they have a cell array with the lidarScan data and I have a lidarScan array. How do I change this to cell array?
% piece of code from Mathworks
% load garage_fl1_southend.mat scans
% scans = scans(1:40:end);
% my code
T = readtable('lidar_scan.csv');
for j=2:62
ranges = T{j,9:1088}; % T ist my table with all the given information
% from the LiDAR. So I have measured ranges for every timestamp for every 0.25 step of the 270
% degrees
angles = linspace(-135,135,numel(ranges));
scan(1,j-1) = lidarScan(ranges,angles); % output lidarScan array
end
maxRange = 19.2; % meters
resolution = 10; % cells per meter
slamObj = lidarSLAM(resolution,maxRange);
slamObj.LoopClosureThreshold = 360;
slamObj.LoopClosureSearchRadius = 8;
for i = 1:numel(scans)
addScan(slamObj,scans{i}); % Error here
if rem(i,10) == 0
show(slamObj);
end
end
Brace indexing is not supported for variables of this type.
Error in addScan(slamObj,scans{i});
0 Kommentare
Akzeptierte Antwort
Garmit Pant
am 4 Jul. 2022
Hello Blondi
It is my understanding that you want to add LIDAR scans from your data to LIDAR SLAM maps.
You are facing an error because you are using an array in the form of 'scan' but trying to access it using cell array operations.
The error you are facing can be tackled by storing the LIDAR scan data into a cell array. You can create an empty cell array and store the LIDAR scans in it and then use the code given in the example. I have made some changes to the part of your code where you are reading the LIDAR scans and you can find them below.
T = readtable('lidar_scan.csv');
scan = {}
for j=2:62
ranges = T{j,9:1088}; % T ist my table with all the given information
% from the LiDAR. So I have measured ranges for every timestamp for every 0.25 step of the 270
% degrees
angles = linspace(-135,135,numel(ranges));
scan{j-1} = lidarScan(ranges,angles); % output lidarScan array
end
I hope thid would help you. You can further read about the addScan function here: https://www.mathworks.com/help/nav/ref/lidarslam.addscan.html
0 Kommentare
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Labeling, Segmentation, and Detection finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!