exponenta event banner

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

Ссылки

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

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

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

Введенный в R2019b