computeBoundaryModel

Получите y - координаты контуров маршрута, данных x - координаты

Синтаксис

yWorld = computeBoundaryModel(boundaries,xWorld)

Описание

пример

yWorld = computeBoundaryModel(boundaries,xWorld) вычисляет y - мировые координаты оси моделей контура маршрута в заданном x - мировые координаты оси.

  • Если boundaries является однополосной граничной моделью, то yWorld является вектором координат, соответствующих координатам в xWorld.

  • Если boundaries является массивом моделей контура маршрута, то yWorld является матрицей. Каждая строка или столбец yWorld соответствуют модели контура маршрута, вычисленной в x - координаты последовательно или вектор-столбец xWorld.

Примеры

свернуть все

Создайте объект parabolicLaneBoundary смоделировать контур маршрута. Вычислите положения маршрута вдоль набора местоположений оси X.

Задайте параболические параметры и создайте модель контура маршрута.

parabolicParams = [-0.005 0.15 0.55];
lb = parabolicLaneBoundary(parabolicParams);

Вычислите местоположения оси Y для данных местоположений оси X в области значений датчика камеры, смонтированного к передней стороне автомобиля.

xWorld = 3:30; % in meters
yWorld = computeBoundaryModel(lb,xWorld);

Постройте граничные точки маршрута. Чтобы соответствовать системе координат, инвертируйте порядок оси и измените направление X.

plot(yWorld,xWorld)
axis equal
set(gca,'XDir','reverse')

Создайте маршрут 3 метра шириной.

lb = parabolicLaneBoundary([-0.001,0.01,1.5]);
rb = parabolicLaneBoundary([-0.001,0.01,-1.5]);

Вычислите модель контура маршрута вручную от 0 до 30 метров вдоль оси X.

xWorld = (0:30)';
yLeft = computeBoundaryModel(lb,xWorld);
yRight = computeBoundaryModel(rb,xWorld);

Создайте видимый с большого расстояния график и плоттер контура маршрута. Отобразите информацию о маршруте о видимом с большого расстояния графике.

bep = birdsEyePlot('XLimits',[0 30],'YLimits',[-5 5]);
lanePlotter = laneBoundaryPlotter(bep,'DisplayName','Lane boundaries');
plotLaneBoundary(lanePlotter,{[xWorld,yLeft],[xWorld,yRight]});

Создайте плоттер пути. Создайте и отобразите путь автомобиля, оборудованного датчиком, который перемещается через центр маршрута.

yCenter = (yLeft + yRight)/2;
egoPathPlotter = pathPlotter(bep,'DisplayName','Ego vehicle path');
plotPath(egoPathPlotter,{[xWorld,yCenter]});

Найдите контуры маршрута эго кандидата от массива контуров маршрута.

Создайте массив кубических контуров маршрута.

lbs = [cubicLaneBoundary([-0.0001, 0.0, 0.003,  1.6]), ...
       cubicLaneBoundary([-0.0001, 0.0, 0.003,  4.6]), ...
       cubicLaneBoundary([-0.0001, 0.0, 0.003, -1.6]), ...
       cubicLaneBoundary([-0.0001, 0.0, 0.003, -4.6])];

Для каждого контура маршрута вычислите местоположение оси Y, в котором x-координата 0.

xWorld = 0; % meters
yWorld = computeBoundaryModel(lbs,0);

Используйте вычисленные местоположения, чтобы найти контуры маршрута эго, которые лучше всего соответствуют критериям.

leftEgoBoundaryIndex = find(yWorld == min(yWorld(yWorld>0)));            
rightEgoBoundaryIndex = find(yWorld == max(yWorld(yWorld<=0)));
leftEgoBoundary = lbs(leftEgoBoundaryIndex);
rightEgoBoundary = lbs(rightEgoBoundaryIndex);

Постройте контуры с помощью видимого с большого расстояния графика и плоттера контура маршрута.

bep = birdsEyePlot('XLimits',[0 30],'YLimits',[-5 5]);
lbPlotter = laneBoundaryPlotter(bep,'DisplayName','Left-lane boundary','Color','r');
rbPlotter = laneBoundaryPlotter(bep,'DisplayName','Right-lane boundary','Color','g');
plotLaneBoundary(lbPlotter,leftEgoBoundary)
plotLaneBoundary(rbPlotter,rightEgoBoundary)

Входные параметры

свернуть все

Модели контура маршрута, содержащие параметры раньше, вычисляли y - координаты оси, заданные как объект контура маршрута или массив объектов контура маршрута. Доступными объектами является parabolicLaneBoundary и cubicLaneBoundary.

x- местоположения оси контуров в мировых координатах, заданных как действительный скалярный или вектор с действительным знаком.

Смотрите также

Объекты

Функции

Введенный в R2017a