bicycleKinematics

Велосипедная модель транспортного средства

Описание

bicycleKinematics создает велосипедную модель транспортного средства, чтобы симулировать упрощенную подобную автомобилю динамику аппарата. Эта модель представляет транспортное средство двумя осями, разделенными расстоянием, WheelBase. Состояние транспортного средства задано как трехэлементный вектор, [x y , который theta], с глобальным позиционным xy, задал в метрах, и угле рыскания транспортного средства, theta, заданном в радианах. Переднее колесо может крутиться с держащимся углом psi. Заголовок транспортного средства, theta, задан в центре задней оси. Чтобы вычислить состояния производной времени модели, используйте derivative функция с входными командами и текущим состоянием робота.

Создание

Описание

пример

kinematicModel = bicycleKinematics создает велосипед кинематический объект модели со значениями свойств по умолчанию.

kinematicModel = bicycleKinematics(Name,Value) дополнительные свойства наборов к заданным значениям. Можно задать несколько свойств в любом порядке.

Свойства

развернуть все

Основа колеса относится к расстоянию между передними и задними осями транспортного средства, заданными в метрах.

Область значений скорости транспортного средства является двухэлементным вектором, который обеспечивает минимальные и максимальные скорости транспортного средства, [MinSpeed MaxSpeed], заданный в метрах в секунду.

Максимальный руководящий угол, psi, относится к максимальному углу, транспортное средство может управляться направо или оставляться, задаваться в радианах. Значение pi/2 предоставляет транспортному средству радиус превращения минимума 0. Это свойство используется, чтобы подтвердить обеспеченный пользователями вход состояния.

Это свойство только для чтения возвращает минимальный радиус превращения транспортного средства в метрах. Минимальный радиус вычисляется с помощью основы колеса и максимального руководящего угла.

VehicleInputs свойство задает формат входных команд модели при использовании derivative функция. Свойство имеет две допустимых опции в виде строки или вектора символов:

  • "VehicleSpeedSteeringAngle" — Скорость транспортного средства и держащийся угол

  • "VehicleSpeedHeadingRate" — Скорость транспортного средства и направляющаяся скорость вращения

Функции объекта

derivativeПроизводная времени состояния транспортного средства

Примеры

свернуть все

Создайте робота

Задайте робота и установите начальную стартовую позицию и ориентацию.

kinematicModel = bicycleKinematics;
initialState = [0 0 0];

Симулируйте движение робота

Установите промежуток симуляции к 1 с с 0,05 тактами с и входными командами к 2 м/с и левым поворотом. Симулируйте движение робота при помощи ode45 решатель на derivative функция.

tspan = 0:0.05:1;
inputs = [2 pi/4]; %Turn left
[t,y] = ode45(@(t,y)derivative(kinematicModel,y,inputs),tspan,initialState);

Постройте путь

figure
plot(y(:,1),y(:,2))

Figure contains an axes. The axes contains an object of type line.

Ссылки

[1] Линчуйте, Кевин М. и Франк К. Парк. Современная Робототехника: Механика, Планирование и Управление 1-й редактор Кембридж, MA: Издательство Кембриджского университета, 2017.

[2] Corke, Петр I. Робототехника, видение и управление: основные алгоритмы в MATLAB. Спрингер, 2011.

Расширенные возможности

Генерация кода C/C++
Генерация кода C и C++ с помощью MATLAB® Coder™.

Введенный в R2019b