Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Основы моделирования роботов в среде CoppeliaSim. Учебное пособие
.pdf
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 position on path». Щелкним кнопку «Show path shaping dialog». Установим
галочку у поля «Path shaping enabled», в поле «Type» выбираем «horizontal 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 = simGetUIHandle("bubbleRob_ui")simSetUIButtonLabel(ctrl,0,simGetObjectName(bubbleRobBase).." speed") leftMotor = simGetObjectHandle("bubbleRob_leftMotor") 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]=simGetObjectHandle("leftSensor") floorSensorHandles[2]=simGetObjectHandle("middleSensor") 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.
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
