ФАЙЛ "QUINTIC_POLYNOMIALS_PLANNER.PY"
Этот файл предназначен для создания пути с помощью квинтических полиномов для ровера, с учетом заданных начальных и конечных условий и ограничений на ускорение и рывок.
ИНИЦИАЛИЗАЦИЯ БИБЛИОТЕК
- math: стандартная библиотека для математических функций.
- matplotlib.pyplot: используется для создания графиков и визуализации данных.
- numpy: библиотека для работы с массивами и матрицами, а также для выполнения числовых операций.
ПАРАМЕТРЫ
Здесь заданы параметры максимального и минимального времени для достижения цели, а также флаг для отображения анимации.
КЛАСС QuinticPolynomial
Класс QuinticPolynomial определяет полином пятого порядка, используемый для вычисления траектории движения.
КОНСТРУКТОР КЛАССА __init__
Конструктор вычисляет коэффициенты квинтического полинома, решая систему уравнений.
- self.a0, self.a1, self.a2: начальные положения, скорость и ускорение.
- A и b: матрицы для решения системы уравнений с помощью np.linalg.solve.
Методы для вычисления траектории
- calc_point(t): возвращает позицию в момент времени t.
- calc_first_derivative(t): возвращает скорость в момент времени t.
- calc_second_derivative(t): возвращает ускорение в момент времени t.
- calc_third_derivative(t): возвращает рывок (jerk) в момент времени t.
ФУНКЦИЯ quintic_polynomials_planner
Функция для планирования траектории с использованием квинтических полиномов.
Процесс вычисления
1. Начальные параметры и переменные:
- Вычисляются начальные и конечные компоненты скорости и ускорения по осям x и y.
2. Перебор возможных времен T для достижения цели:
- Для каждого значения T от MIN_T до MAX_T с шагом MIN_T создаются полиномы для x и y.
3. Расчет траектории для каждого времени t:
- Используются методы класса QuinticPolynomial для вычисления положения, скорости, ускорения и рывка.
4. Проверка ограничений на ускорение и рывок:
- Если максимальные значения ускорения и рывка не превышают заданные пределы, путь считается найденным.
5. Анимация траектории:
- При включенном флаге show_animation отображается графическое представление траектории, скорости, ускорения и рывка.
ФУНКЦИЯ plot_arrow
Функция для отрисовки стрелки на графике, обозначающей направление движения. Если входные параметры не являются числами, функция вызывает себя рекурсивно для всех элементов.
ОСНОВНАЯ ФУНКЦИЯ main
Основная функция main определяет начальные и конечные параметры движения и вызывает функцию планирования траектории. Результаты отображаются на графиках при включенном флаге анимации.
ТОЧКА ВХОДА
Этот блок позволяет запускать скрипт как самостоятельное приложение. Процесс подготовки кода:
Создайте файл с названием quintic_polynomials_planner.py
Поэтапно добавьте код в окно программирования:
Установите необходимые библиотеки: в данном случае у нас не предустановлены библиотеки matplotlib, plotly и numpy. Если они у вас не установлены, установите библиотеки таким образом:
Откройте терминал VS Code (Terminal -> New Terminal или комбинацией Ctrl + Shift + `)
Пропишите в терминале эти команды (каждую команду прописывайте и запускайте поэтапно!): pip install matplotlib, pip install plotly, pip install numpy
После установки библиотек вы можете попробовать запустить этот код, у вас откроется приложение Python с графиком и стрелками, посмотрите как он работает
Last updated