Установите радиус для визуализации текущего местоположения и порог расстояния, чтобы обновить подкарту.
radius = 0.5;
distThresh = 15;
Закольцовывайте облака точек, локализуйте их на карте и обновляйте выбранную подкарту по мере необходимости.
numScans = numel(ptCloudScans);
for n = 1:numScans
ptCloud = ptCloudScans(n);
initPose = initPoseEsts(n);
poseTranslation = initPose.Translation;
[isInside,distToEdge] = isInsideSubmap(ndtMap,poseTranslation);
submapNeedsUpdate = ~isInside ... % Current pose is outside submap
|| any(distToEdge(1:2) < distThresh); % Current pose is close to submap edgeif submapNeedsUpdate
ndtMap = selectSubmap(ndtMap,poseTranslation,sz);
end% Localize the point cloud scan in the map.
currPose = findPose(ndtMap,ptCloud,initPose);
% Display the position of the estimate as a circle.
pos = [currPose.Translation(1:2) radius];
showShape('circle',pos,'Color','r');
% Pause to view the change.
pause(0.05)
end
Необходимая область, определенная как вектор с 6 элементами формы [<<reservedrangesplaceholder5> <reservedrangesplaceholder4> <reservedrangesplaceholder3> <reservedrangesplaceholder2> <reserved angesplaceholder1> <reservedrangesplaceholder0>
].
center - Центр подкарты 3-элементный вектор
Центр подкарты, заданный как 3-элементный вектор формы [xc
yc zc].
sz - Размер подкарты вдоль каждой оси 3-элементный вектор
Размер подкарты вдоль каждой оси, заданный как 3-элементный вектор вида [xsz
ysz zsz].
ndtMapOut - Карта неразрушающего контроля pcmapndt объект
Карта NDT, возвращенная как pcmapndt объект с обновленным SelectedSubmap свойство.
Если область выбранной подкарты находится вне пределов карты, выбранная подкарта ограничена пределами карты, как описано в XLimits, YLimits, и ZLimits свойства pcmapndt объект.
Совет
Используйте размер подкарты, достаточно большой, чтобы включить неопределенность оценок положения и области значений датчика, используемого с findPose. Большая подкарта может увеличить время расчета во время каждого вызова findPose функция, но она может также уменьшить частоту обновлений подкарты.
Расширенные возможности
Генерация кода C/C + + Сгенерируйте код C и C++ с помощью Coder™ MATLAB ®
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.