unicycleKinematics

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

Описание

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

Создание

Описание

пример

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

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

Свойства

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

Радиус колеса транспортного средства, заданного в метрах.

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

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

  • "WheelSpeedHeadingRate" — Скорость колеса и направляющаяся скорость вращения, заданная в радианах в секунду.

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

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

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

Примеры

свернуть все

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

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

kinematicModel = unicycleKinematics;
initialState = [0 0 0];

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

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

tspan = 0:0.05:1;
inputs = [10 1]; %Constant speed and turning left
[t,y] = ode45(@(t,y)derivative(kinematicModel,y,inputs),tspan,initialState);

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

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

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

Ссылки

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

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

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

Введенный в R2019b