bicycleKinematics

Модель велосипедного транспортного средства

Описание

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

Создание

Описание

пример

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

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

Свойства

расширить все

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

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

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

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

The 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 эд. Кембридж, Массачусетс: Cambridge University Press, 2017.

[2] Corke, Peter I. Robotics, Vision and Control: Fundamental Algorithms in MATLAB. Спрингер, 2011.

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

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

.
Введенный в R2019b