УДК 681.518.3
Разработка математической модели кинематики и динамики колесного дифференциального робота
Марченко Ксения Павловна – студент магистратуры кафедры Робототехнических систем и мехатроники Московского государственного технического университета имени Н. Э. Баумана.
Коновалов Константин Владимирович – аспирант кафедры Робототехнических систем и мехатроники Московского государственного технического университета имени Н. Э. Баумана.
Ершов Сергей Дмитриевич – студент магистратуры кафедры Робототехнических систем и мехатроники Московского государственного технического университета имени Н. Э. Баумана.
Ахмад Авс – студент магистратуры кафедры Робототехнических систем и мехатроники Московского государственного технического университета имени Н. Э. Баумана.
Вассуф Язан – студент магистратуры кафедры Робототехнических систем и мехатроники Московского государственного технического университета имени Н. Э. Баумана.
Аннотация: В статье описывается построение кинематической и динамической модели дифференциального робота с использование программы компьютерного моделирования MATLAB/Simulink. Был рассмотрен алгоритм движения к ближайшей точки, чтобы робот мог отработать заданную оператором траекторию. Была разработана модель динамики и проведён сравнительный анализ с моделью построенной в библиотеке MATLAB/Multibody.
Ключевые слова: колесный робот, уравнения кинематической модели, уравнения динамики, моделирование.
В настоящее время ставится вопрос о создании надежных колесных транспортных средств, которые должны реализовывать повышенную проходимость и мобильность. С помощью применения методов математического моделирования можно без проблем решить данный вопрос.
При решении задач повышенного качества и надежность колесных транспортных средств ставятся две цели: научная и практическая. Первая цель обусловлена способностью расширения представлений о динамических процессах, происходящих в транспортных средствах (ТС) при движении по деформируемым грунтам. Вторая включает в себя создания ТС, способных обеспечивать высокую мобильность при перемещении в любых погодно-климатических условиях.
При поверхностном изучении данной темы возникает проблема изучения математических моделей, развитие которых определяется как сопоставления теоретических данных и экспериментально полученных результатов. Но возникает одна важная сложность – взаимодействие ТС с деформируемыми грунтами, потому что они обладают такими свойствами, как неоднородность и сложность структуры, что влияет на динамику движения колесных ТС.
Ставилась цель разработки математической модели дифференциального робота.
В ходе данной работы были поставлены следующие задачи:
- Разработать кинематическую модель колесного робота.
- Разработать динамическую модель колесного робота.
- Провести энергетический расчет двигателя и выбрать его.
- Промоделировать полученные модели в Matlab.
- Проверить работоспособность робота при реализации сложной траектории.
Требования:
- Дифференциальный робот.
- Скорость колесного робота минимальная - 5 км/ч, максимальная - 25 км/ч.
Масса-габариты:
- Общая масса колесного робота: 15 кг. Масса конструкции: 10 кг. Полезная нагрузка: 5 кг
- Габариты: робот должен быть 300 мм в ширину и 400 мм в длину.
- Диаметр колес 200 мм, ширина колес 25 мм.
В состав колесного дифференциального робота должны включаться: плата усилителя мощности, которая обрабатывает сигналы периферийных модулей (камера, антенна, подсветка); привод левого и правого колеса, включающие в себя двигатели, энкодеры и датчики скорости; источник питания в виде ионного аккумулятора; беспроводная связь в виде антенны для управления от оператора, а также дополнительная периферия в виде GPS модуля.
Уравнения кинематической модели
Данный робот имеет два колеса с независимыми приводами, которые можно использовать для управления скоростью движения и угловой скоростью (рис. 1)[1].
Рисунок 1. Схема движения колесного робота.
Когда мы рассматриваем прямую кинематику, то на вход такой системы подаем угловую скорость и
в рад/с. На выходе получаем линейную скорость V(м/с) и угловую скорость
(рад/с).
Формируя закон управления, получим систему из 2х уравнений:
.
Вводя координаты х, y, , получим новую систему:
Подставив эту систему в предыдущую получим:
.
При расчете обратной кинематики на вход системы будут подаваться линейная скорость V(м/с) и угловая скорость (рад/с), а на выходе будем снимать угловую скорость
и
в рад/с. Тогда система уравнений изменится и примет вид:
Моделирование колесного робота проводилось в программе Matlab в пакете Simulink. Для этого нам понадобится библиотека Mobile Robotics Simulation (рис. 2)[2].
Рисунок 2. Библиотека Mobile Robotics Simulation.
Рассмотрим систему, когда робот будет ехать из начала координат в определенную точку и из начала координат, через точку на плоскости и обратно. Чтобы смоделировать такую систему нам понадобится такие блоки как: “Обратная кинематика”, “Симуляция движения”, “Следование за точкой” и “Визуализация робота”. На вход системы подается матрица из чисел, которые определяют координаты положения точек перемещения. Для блока “Симуляция движения” были заданы две константы L=0,5 и R = 0,1. Тогда система будет выглядеть следующим образом (рис. 3):
Рисунок 3. Модель системы.
Для более удобной визуализации всех процессов работы колесного робота, было принято решение добавить блок “Прямая кинематика”, чтобы видеть, какие на выходе мы получаем угловые скорости и
в рад/с. А также добавим блок для вывода положения робота [x,y,
] и блок для вывода угловой скорости колес
и
в рад/с.
Тогда система примет вид (рис. 4):
Рисунок 4. Полная модель робота.
Рассмотрим перемещение из точки в точку. На вход системы подается матрица из двух точек: [0,0;2,2]. Время, которое колесный робот потратит на перемещение из начала координат в точку [2,2] возьмем примерно t1 = 3 сек (рис. 5):
Рисунок 5. Передвижение из точки в точку.
А также посмотрим данные, которые выдала система (рис. 6):
Рисунок 6. Данные с системы.
В блоке “Скорость и угловая скорость” видим, что робот поехал со скоростью , что соответствует минимальной заданной скорости по ТЗ. В блоке “Скорость колес” можно увидеть с какая угловая скорость подавалась на оба колеса. В итоге робот затратил на перемещение из точки в точку время t=2,05 сек, что удовлетворило требованиям.
Далее рассмотрим перемещение робота из начала координат в заданную точку и обратно. Для этого на вход системы подадим новую матрицу [0,0;2,2;0,0]. И зададим примерное время, которое может затратить робот:
t2 = 13 сек (рис. 7):
Рисунок 7. Передвижение колесного робота.
На данном графике можно увидеть траекторию движения робота, а также путь его разворота. Можно заметить, что для разворота ему не потребовалось делать большой крюк.
Посмотрим на данные, которые выдала система (рис. 8):
Рисунок 8. Новые данные с системы.
В блоке “Скорость и угловая скорость” видим, что робот поехал со скоростью , что соответствует заданной скорости по ТЗ. В блоке “Скорость колес” можно увидеть с какая угловая скорость подавалась на оба колеса. В итоге робот затратил на перемещение из точки в точку время t=5,4 сек, что удовлетворило требованиям.
Рассмотрим перемещение робота по тяжелой траектории. Для этого на вход системы подадим новую матрицу [0,0;2,6; 10,16; 20,20;18,6; -1, 5;0,0]. И зададим примерное время, которое может затратить робот: t2 = 50 сек (рис. 9):
Рисунок 9. Передвижение по сложной траектории.
Посмотрим на данные, которые выдала система (рис. 10):
Рисунок 10. Данные с системы.
В блоке “Скорость и угловая скорость” видим, что робот поехал со скоростью . В блоке “Скорость колес” можно увидеть с какая угловая скорость подавалась на оба колеса. В итоге данный робот затратил на перемещение из точки в точку время t=49.5 сек, что также удовлетворило требованиям.
Уравнения динамики
Рассматривая прямую динамику колесного робота, известно, что на вход такой системы подаем моменты, которые должны реализовать левое и правое колеса, которые обозначаются и
соответственно. На выходе получаем линейное ускорение a (
и угловое ускорение
(рад/
, или проинтегрировав эти значения, получаем линейную скорость V(м/с) и угловую скорость
(рад/с).
Формируя закон управления, получим систему из 2х уравнений:
,
где и
- моменты, развиваемые моторами, которые приводят в движения колеса;
b - коэффициент смещения центра массы робота от оси вращения ( в данном случае b=0),
r - радиус колес;
m - масса робота;
L - ширина робота.
Вводя координаты х, y, , получим новую систему:
Тогда получим удобную форму представления динамики колесного робота в виде системы уравнений:
.
Будем рассматривать систему, которая движется по плоской поверхности. За основу возьмем уже созданную в Matlab Multibody [2] систему двухколесного робота (рис. 11), которая состоит из: корпуса робота, двух опорных колес и двух движущих колес. В системе моделируются взаимодействия с опорной поверхностью с помощью библиотеки, а также моделируется сложная модель трения.
Рисунок 11. Двухколесный робот multibody.
На вход данного робота подается две матрицы моментов для правого и левого колеса:
[0;0;0;-0.001;0;0;0;0.001;-0.0005;0;0;0;0.0005;-0.0005;0;0;0;0.0005;0.00075;0;0;0;-0.00075] - правое колесо,
[0;0;0;-0.00025;0;0;0;0.00025;-0.0005;0;0;0;0.0005;-0.00025;0;0;0;0.00025;0.00075;0;0;0;-0.00075] - левое колесо.
При движении робот описывает траекторию, показанную на рисунке 12:
Рисунок 12. Траектория двухколесного робота.
Теперь смоделируем свою модель. Данная модель будет включать в себя 2 блока: прямая динамика и кинематика. На вход будем также подавать моменты и
на оба колеса. С помощью блока кинематики мы сможем снять значения положения х и у робота на плоскости.
Разработанная модель показана на рисунке 13.
Рисунок 13 Разработанная модель.
Блоки прямой динамики и кинематики были разработаны с учетом полученной нами системы уравнений (рис. 14, 15).
Рисунок 14. Блок прямой динамики.
Рисунок 15. Блок кинематики.
На вход системы подаем те же значения моментов для правого и левого колеса.
При движении робот описывает траекторию, показанную на рисунке 16:
Рисунок 16. Траектория движения разработанного робота.
Сравнив два графика, можно сделать вывод, что разработанная мною система повторяет готовую модель. А значит она разработана верно.
Проверим передвижение модели по заданным траекториям.
1. Движение по спирали: на вход подадим две матрицы моментов:
[0;0;0;0.001;0;0;0;0.001;0.0005;0;0;0;0.0005;0.0005;0;0;0;0.0005;0.00075;0;0;0;0.00075] - для правого колеса;
[0;0;0;0.00025;0;0;0;0.00025;0.0005;0;0;0;0.0005;0.00025;0;0;0;0.0005;0.00075;0;0;0;0.00075] - для левого колеса.
В итоге получим график передвижения (рис. 17):
Рисунок 17. Движение по спирали.
2. Движение по окружности:
[0;0;0;0.001;0;0;0;0.001] - правое колесо;
[0;0;0;0.0001;0;0;0;0.0001] - левое колесо.
Получаем график передвижения (рис. 18):
Рисунок 18. Движение по окружности.
3. Движение по прямой:
[0.0005;0.0025;-0.0025;0.0035;-0.0035;0.0035;-0.0035;0.0035;-0.0035;0.0035;-0.0035;0.0035;-0.0035] - для правого колеса;
[0.0005;0.002;-0.002;0.0025;-0.0025;0.003;-0.003;0.0035;-0.0035;0.0035;-0.0035;0.0035;-0.0035] - для левого колеса.
Получаем график (рис. 19):
Рисунок 19. Движение по прямой.
Список литературы
- С. Л. Зенкевич, А.В. Назарова, Система управления мобильного колесного робота. М.: Вестник МГТУ им. Н.Э. Баумана. Сер. “Приборостроение”, 2006.
- Mobile Robotics Simulation Toolbox [Электронный ресурс] URL: https://www.mathworks.com/matlabcentral/fileexchange/66586-mobile-robotics-simulation-toolbox.
- Simscape Multibody Contact Forces Library [Электронный ресурс] URL: https://www.mathworks.com/matlabcentral/fileexchange/47417-simscape-multibody-contact-forces-library.