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))

Ссылки

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

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

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

Введенный в R2019b