Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Основы моделирования роботов в среде CoppeliaSim. Учебное пособие-1

.pdf
Скачиваний:
2
Добавлен:
07.09.2026
Размер:
2 Мб
Скачать
☆
31
Вопросы для самоконтроля
1. Какие из пунктов необходимо отметить для того, чтобы выбранный объект мог взаимодействовать с роботами, их сенсорами и окружающими предметами:
a) Collidable (способность к столкновению). b) Renderable (визуализируемость). c) Detectable (обнаруживаемость). d) Measurable (измеримость).
2. Как называется окно, в котором может отображаться график (при его добавлении)?
a) Graph view. b) Data view. c) Floating view.
3. Куда поворачивает созданный ШаБот при столкновении с пре­пятствием?
8. ШаБот: движение по линии
Можно расширить возможности ШаБота, добавив способность
следования по проложенному пути (линии).
Загружаем файл со сценой с созданным ранее ШаБотом.
Сначала создаем первый из трех видеодатчиков: [Add --> Vision sensor --> Orthographic type]. В свойствах датчика устанавливаем пара­метры, согласно окну настройки, представленному на рис. 12.
Чтобы видеодатчик находился на полу, в окне изменения поло­жения объекта установим значения [180;0;0] для «Alpha-Beta-Gamma».
Существует несколько вариантов чтения информации с видео­датчика. Так как созданный датчик имеет всего 1 пиксел и легко управ- ляем, то можно запрашивать с него информацию в среднем значении яркости изображения. В более сложных случаях можно пропускать информацию через несколько фильтров.
32
Рис. 12. Пример установки параметров
Далее скопируем и дважды вставим видеодатчик, переименуем и получим три объекта: leftSensor, middleSensor и rightSensor. Устано­вим bubbleRob в качестве их родительского объекта.
Скорректируем расположение датчиков. Для этого в окне изме­нения положения объектов установим следующие значения (абсолют­ные координаты):
– левый датчик (leftSensor): [0.2;0.042;0.018];
– средний датчик (middleSensor): [0.2;0;0.018];
– правый датчик (rightSensor): [0.2;-0.042;0.018].
33
Теперь изменим окружение. Удалим несколько цилиндров-пре­пятствий перед ШаБотом. Сделаем «трассу», по которой будет следо­вать робот. Чтобы было удобнее, переключимся на вид сверху (с по-
мощью кнопки ). Далее выберем [Add --> Path --> Circle type]. Пе­рейдем к окну изменения положения объекта и выполним одно
из предложенных действий:
– при выделенной линии, <Ctrl> + ЛКМ (левая клавиша мыши) на одной из ее контрольных точек – таким образом мы сможем пере­носить их в нужные позиции;
– при выделенной линии, используя кнопку , переходим в режим редактирования линии и придаем ей желаемую форму.
Следует избегать чрезмерно сильных изгибов в линии, она не должна быть «слишком извилистой».
Далее в свойствах линии снимаем галочки у следующих пози­ций: «Show orientation of points», «Show path line» и «Show current posi­tion on path». Щелкним кнопку «Show path shaping dialog». Установим галочку у поля «Path shaping enabled», в поле «Type» выбираем «hori­zontal segment» и вводим 4.0 в поле «Scaling factor». Устанавливаем черный цвет линии.
Теперь возникает проблема: так как и пол, и линия имеют одну и ту же координату по оси Z, то иногда виден пол, иногда линия, и может случиться конфликт, когда ШаБот двинется по тропинке. По­этому нужно переместить линию по координате Z на 0.5 мм.
Последним шагом будет добавление скрипта к bubbleRob, чтобы он «знал», как ездить по линии. Для этого открываем скрипт, располо- женный около имени объекта в «Scene hierarchy», и заменяем его на следующий фрагмент кода:
if (sim_call_type==sim_childscriptcall_initialization) then bubbleRobBase =
34
simGetObjectAssociatedWithScript(sim_handle_self) ctrl = simGetUIHan­dle("bubbleRob_ui")simSetUIButtonLabel(ctrl,0,simGetObjectName(bub­bleRobBase).." speed") leftMotor = simGetObjectHandle("bubbleRob_left­Motor") rightMotor = simGetObjectHandle("bubbleRob_rightMotor") noseSensor = simGetObjectHandle("bubbleRob_sensingNose") minMaxSpeed = {50*math.pi/180, 300*math.pi/180} backUntilTime = -1 floorSensorHandles = {-1, -1, -1} floorSensorHandles[1]=simGetObjec­tHandle("leftSensor") floorSensorHandles[2]=simGetObjectHandle("mid­dleSensor") floorSensorHandles[3]=simGetObjectHandle("rightSensor") end if (sim_call_type == sim_childscriptcall_cleanup) then end if (sim_call_type == sim_childscriptcall_sensing) then end if (sim_call_type == sim_childscriptcall_actuation) then speed = minMaxSpeed[1]+(minMaxSpeed[2]-minMaxSpeed[1])* simGetUISlider(ctrl,3)/1000 result = simReadProximitySensor(noseSensor) if (result > 0) then
backUntilTime = simGetSimulationTime() + 4 end sensorReading = {false, false, false} for i = 1,3,1 do result,data= simReadVisionSensor(floorSensorHandles[i]) if (result >= 0) then
-- в data[11] содержится среднее значение
-- яркости изображения sensorReading[i] = (data[11] < 0.3) end print(sensorReading[i]) end rightV = speed leftV = speed if sensorReading[1] then
leftV = 0.03 * speed end if sensorReading[3] then
rightV = 0.03 * speed end
35
if sensorReading[1] and sensorReading[3] then backUntilTime =
simGetSimulationTime() + 2
end if (backUntilTime < simGetSimulationTime()) then simSetJointTargetVe-
locity(leftMotor,leftV) simSetJointTargetVelocity(rightMotor,rightV)
else
simSetJointTargetVelocity(leftMotor,-speed/2) simSetJointTargetVe-
locity(rightMotor,-speed/8)
end
end
Для отслеживания работы видеодатчиков добавим на сцену окно
отображения с помощью вызова контекстного меню сцены [Add -->
Floating view] и контекстное меню окошка [View --> Associate view with selected vision sensor].
Также рекомендуется удалить все лишние датчики из предыду-
щего кода на ваше усмотрение. Запускаем моделирование!
Задание 5. Измените цвет линии на зеленый и поменяйте соот-
ветствующим образом код в скрипте для ШаБота, чтобы он распозна­вал линию и ездил по ней.
Подсказка: обратите внимание на переменную, отвечающую
за яркость линии.
Вопросы для самоконтроля
1. С помощью какого приспособления роботы могут распозна-
вать линию, по которой им следует двигаться?
a) Proximity sensor (датчик близости). b) Vision sensor (видеодатчик). c) Force sensor (датчик силы).
36
2. Зачем линия, по которой движется робот, приподнимается над
«полом»?
a) Если управление по видео сработает недостаточно быстро, ро-
бот сможет зацепиться за линию колесом и это поможет ему удер­жаться на траектории.
b) Если линия будет находиться вровень с полом, то ее изобра-
жение на датчике робота может перекрываться изображением пола.
c) Чтобы использовать датчик расстояния для контроля нахожде-
ния робота на линии.
37
Список использованных источников
1. Сокол Н.А., Попов С.И. Основы конструкции и расчета авто-
мобиля. Ростов-на-Дону: Феникс, 2006. 303 с.
2. Попов С.И., Исаев А.Г., Марченко Э.В., Изюмов А.И. Тепло-
вые процессы технологических машин и мехатронных систем: учеб­ное пособие. Ростов-на-Дону: ДГТУ, 2022. 104 с.
3. Попов С.И., Изюмов А.И., Марченко Э.В., Филимонов М.Н.
Электротехнические системы в мехатронике и транспортно-техно­логических машинах: учеб. пособие. Ростов н/Д: Издательский центр ДГТУ, 2022. 144 с.
4. Макаров А.В., Титова А.П., Марченко Ю.В. Технология
и оборудование вибрационной отделочной обработки в абразивных средах: монография. Старый Оскол: РОСА, 2022. 232 с.
5. Бабичев А.П., Иванов В.В., Попов С.И., Донцов Н.С. Особен-
ности механизма формирования вибрационного химико-механиче­ского цинкового покрытия // Упрочняющие технологии и покрытия.
2018. Т. 14, № 2(158). С. 51–54.
6. Гальченко Г.А., Марченко Ю.В. Программный комплекс
моделирования движения автотранспортных средств в городских условиях // Известия высших учебных заведений. Северо-Кавказ­ский регион. Технические науки. 2018. № 1 (197). С. 132–136.
7. Иванов В.В., Лебедев В.А., Попов С.И., Донцов Н.С., Оста-
нин О.А. Анализ применения химико-механических вибрационных покрытий в машиностроении // Горное оборудование и электроме­ханика. 2019. №1. C. 3–12.
8. Иванов В.В., Попов С.И., Донцов Н.С. Механическое цинко-
вое покрытие, сформированное в условиях виброволновой техноло­гической системы // Мир гальваники. 2017. № 4(38). С. 80–84.
38
9. Иванов В.В., Попов С.И., Донцов Н.С., Денисенко Ю.Н.
Использование вибрационной механохимической обработки с одно­временным нанесением оксидного покрытия на алюминиевый сплав АК5М2 в пищевой промышленности // Гальванотехника и обра­ботка поверхности. 2020. Т. 28, № 3. С. 28–36.
10. Иванов В.В., Попов С.И., Донцов Н.С., Курская И.А. Нане-
сение вибрационного двухкомпонентного твердосмазочного меха­нохимического покрытия на различные детали из титанового сплава // Упрочняющие технологии и покрытия. 2020. Т. 16, № 9 (189). С. 404–407.
11. Иванов В.В., Попов С.И., Марченко Ю.В. Использование
полимерных рабочих сред для формирования оксидной пленки в условиях виброобработки // Вестник Рыбинской государственной авиационной технологической академии им. П.А. Соловьева. 2018. № 1(44). С. 108–113.
12. Иванов В.В., Селеменев М.Ф., Марченко Ю.В. Формирова-
ние вибрационных механохимических твердосмазочных покрытий на основе дисульфида молибдена // Фундаментальные и прикладные проблемы техники и технологии. 2011. №2(286). С. 73–78.
13. Короткий А.А., Марченко Ю.В., Попов С.И., Марченко Э.В.,
Панфилов А.В., Тимофеев С.А., Дашков Н.А. Способ конвейерного вывоза твердых бытовых отходов в урбанизированной среде // Патент на изобретение № 2739424 Российская Федерация, МПК В09В 1/00 (2006.01). № 2020117098; заявл. 12.05.20; опубл. 24.12.20, Бюл. № 36.
14. Лебедев В.А., Марченко Ю.В., Попов С.И., Марченко Э.В.,
Донцов Н.С. Методы обеспечения показателей качества реноизде­лий в авторемонтном производстве // Современные проблемы
39
горно-металлургического комплекса. Наука и производство: мате­риалы 14-й Всерос. науч.-практ. конф. с международным участием,
23–24 ноября. Т. I. Старый Оскол, 2017. С. 227–235.
15. Лебедев В.А., Самодумский Ю.М., Марченко Ю.В., Гонча-
ров В.А., Иванов В.В. Технология и организация восстановления де­талей и сборочных единиц: учеб. пособие. Ростов-на-Дону: Изда­тельский центр ДГТУ, 2012. 269 с.
16. Марченко Э.В., Попов С.И., Марченко Ю.В., Донцов Н.С.
Метод нанесения твердосмазочных материалов на стальной канат в процессе его производства // Виброволновые процессы в техноло­гии обработки деталей высокотехнологичных изделий: сб. тр. Меж­дунар. науч. симпозиума технологов-машиностроителей, 3–6 ок­тября. Ростов-на-Дону, 2017. С. 131–134.
17. Попов С.И., Валявин В.Ю., Подуст С.Ф., Линькова Е.Ф.,
Юрьева В.В. Диагностирование и испытание электрооборудования транспортных машин: учеб. пособие. Ростов-на-Дону: Издательский центр ДГТУ, 2010. 115 с.
18. Попов С.И., Гальченко Г.А., Марченко Ю.В., Дроздов Д.С.
Электронный контроль диспетчерского расписания как средство уменьшения выбросов вредных веществ в атмосферу // Безопас­ность техногенных и природных систем. 2021. № 2. С. 50-57.
19. Попов С.И., Донцов Н.С., Марченко Ю.В., Иванов В.В.,
Гальченко Г.А., Марченко Э.В. Электрооборудование автомобилей: учеб. пособие; Донской государственный технический университет. Ростов-на-Дону: ДГТУ, 2018. 235 с.
20. Попов С.И., Марченко Ю.В., Донцов Н.С., Иванов В.В.,
Марченко Э.В. Исследование возможности восстановления стенок цилиндра двигателей внутреннего сгорания (ДВС) за счет примене­ния твердосмазочных материалов на основе дисульфида молибдена
40
// Наукоемкие технологии на современном этапе развития машино­строения: материалы VIII международной научно-технической кон­ференции, 19–21 мая. М., 2016. С. 179–181.
21. Гальченко Г.А., Попов С.И., Марченко Ю.В., Донцов Н.С.,
Скудина А.А., Тимофеев С.А. Моделирование транспортных пото­ков: учеб. пособие. Ростов н/Д: Издательский центр ДГТУ, 2018. 124 с.
22. Юревич Е. И., Игнатова Е. И. Основные принципы мехатро-
ники // Мехатроника, автоматизация, управление, №3, 2006.
23. Юревич Е.И. Основы робототехники: учеб. пособие. СПб.:
БХВ-Петербург, 2017.
24. Шахинпур М. Курс робототехники. Пер. с англ. М.: Мир,
1990.
25. Филиппов С.А. Робототехника для детей и родителей. СПБ:
Наука, 2013. 319 с.
26. Фу К., Гонсалес Р. и др. Робототехника. М.: Мир, 1989.
27. Технический каталог промышленного робота KUKA IR
161/15 с RС 20/41.
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]