Робот спускается по лестнице

Робот спускается по лестнице

15.1. Исполнитель Робот умеет перемещаться по лабиринту, начерченному на плоскости, разбитой на клетки. Ниже приведено описание Робота. У Робота есть четыре команды перемещения:

При выполнении любой из этих команд Робот перемещается на одну клетку соответственно: вверх ↑, вниз ↓, влево ←, вправо →. Между соседними (по сторонам) клетками может стоять стена, через которую Робот пройти не может. Если Робот получит команду передвижения через стену, то он разрушится.

Четыре команды проверяют истинность условия отсутствия стены у каждой стороны той клетки, где находится Робот:

сверху свободно снизу свободно слева свободно справа свободно

Эти команды можно использовать вместе с условием «eсли», имеющим следующий вид:

«Последовательность команд» — это одна или несколько любых команд, выполняемых Роботом. Например, для передвижения на одну клетку вправо, если справа нет стенки, можно использовать такой алгоритм:

В одном условии можно использовать несколько команд проверки условий, применяя логические связки и, или, не, например:

если (справа свободно) и не (снизу свободно) то
вправо
все

Для повторения последовательности команд можно использовать цикл «пока», имеющий следующий вид:

Например, для движения вправо, пока это возможно, можно использовать следующий алгоритм:

Также у Робота есть команда закрасить, закрашивающая клетку, в которой Робот находится в настоящий момент.

На бесконечном поле имеется лестница. Сначала лестница спускается вниз слева направо, потом поднимается вверх также слева направо. После подъема лестница переходит в вертикальную стену. Высота каждой ступени 1 клетка, ширина — 1 клетка. Количество ступенек, ведущих вверх, и количество ступенек, ведущих вниз, неизвестно. Между спуском и подъемом ширина площадки 1 клетка. Робот находится в клетке, расположенной в начале спуска. На рисунке указан один из возможных способов расположения стен и Робота (Робот обозначен буквой «Р»).

Напишите для Робота алгоритм, закрашивающий все клетки, расположенные непосредственно над лестницей, как показано на рисунке. Робот должен закрасить только клетки, удовлетворяющие данному условию. Например, для приведённого выше рисунка Робот должен закрасить следующие клетки (см. рисунок).

Конечное расположение Робота может быть произвольным. Алгоритм должен решать задачу для бесконечного поля и любого количества ступеней. При исполнении алгоритма Робот не должен разрушиться.

15.2. Напишите программу, которая по двум данным натуральным числам a и b, не превосходящим 30000, подсчитывает количество чётных натуральных чисел на отрезке [a, b] (включая концы отрезка). Программа получает на вход два натуральных числа a и b, при этом гарантируется, что 1 ≤ ab ≤ 30000. Проверять входные данные на корректность не нужно. Программа должна вывести одно число: количество чётных чисел на отрезке [a, b].

Источник

Робот спускается по лестнице

Исполнитель Робот умеет перемещаться по лабиринту, начерченному на плоскости, разбитой на клетки. Между соседними (по сторонам) клетками может стоять стена, через которую Робот пройти не может.

У Робота есть девять команд. Четыре команды − это команды-приказы:

вверх вниз влево вправо

При выполнении любой из этих команд Робот перемещается на одну клетку соответственно: вверх ↑, вниз ↓, влево ←, вправо →. Если Робот получит команду передвижения сквозь стену, то он разрушится.

Также у Робота есть команда закрасить, при которой закрашивается клетка, в которой Робот находится в настоящий момент.

Ещё четыре команды − это команды проверки условий. Эти команды проверяют, свободен ли путь для Робота в каждом из четырёх возможных направлений:

сверху свободно снизу свободно слева свободно справа свободно

Эти команды можно использовать вместе с условием «eсли», имеющим следующий вид:

Здесь условие − одна из команд проверки условия.

Последовательность команд − это одна или несколько любых команд-приказов.

Например, для передвижения на одну клетку вправо, если справа нет стенки и закрашивания клетки, можно использовать такой алгоритм:

если справа свободно то

В одном условии можно использовать несколько команд проверки условий, применяя логические связки и, или, не, например:

если (справа свободно) и (не снизу свободно) то

Для повторения последовательности команд можно использовать цикл «пока», имеющий следующий вид:

Например, для движения вправо, пока это возможно, можно использовать следующий алгоритм:

нц пока справа свободно

На бесконечном поле имеется лестница. Сначала лестница спускается вниз (справа налево), затем поднимается вверх. Высота каждой ступени − одна клетка, ширина − две клетки. Робот находится под верхней ступенькой правой части лестницы, в правой клетке.

Количество ступенек, ведущих вниз, и количество ступенек, ведущих вверх, неизвестно.

На рисунке указан один из возможных способов расположения лестницы и Робота (Робот обозначен буквой «Р»).

Напишите для Робота алгоритм, закрашивающий все клетки, расположенные непосредственно под ступенями лестницы. Требуется закрасить только клетки, удовлетворяющие данному условию. Например, для приведённого выше рисунка Робот должен закрасить следующие клетки (см. рисунок):

Конечное расположение Робота может быть произвольным. Алгоритм должен решать задачу для произвольного размера поля и любого допустимого расположения стен внутри прямоугольного поля. При исполнении алгоритма Робот не должен разрушиться, выполнение алгоритма должно завершиться.

Алгоритм может быть выполнен в среде формального исполнителя или записан в текстовом редакторе.

Сохраните алгоритм в формате программы Кумир или в текстовом файле. Название файла и каталог для сохранения Вам сообщат организаторы экзамена.

Это задание ещё не решено, приводим решение прототипа.

Выберите ОДНО из предложенных ниже заданий: 15.1 или 15.2.

15.1 Исполнитель Робот умеет перемещаться по лабиринту, начерченному на плоскости, разбитой на клетки. Между соседними (по сторонам) клетками может стоять стена, через которую Робот пройти не может. У Робота есть девять команд. Четыре команды — это команды-приказы:

вверх вниз влево вправо

При выполнении любой из этих команд Робот перемещается на одну клетку соответственно: вверх ↑, вниз ↓, влево ←, вправо →. Если Робот получит команду передвижения сквозь стену, то он разрушится. Также у Робота есть команда закрасить, при которой закрашивается клетка, в которой Робот находится в настоящий момент.

Ещё четыре команды — это команды проверки условий. Эти команды проверяют, свободен ли путь для Робота в каждом из четырёх возможных направлений:

сверху свободно снизу свободно слева свободно справа свободно

Эти команды можно использовать вместе с условием «eсли», имеющим следующий вид:

Здесь условие — одна из команд проверки условия. Последовательность команд — это одна или несколько любых команд-приказов.

Например, для передвижения на одну клетку вправо, если справа нет стенки и закрашивания клетки, можно использовать такой алгоритм:

если справа свободно то

В одном условии можно использовать несколько команд проверки условий, применяя логические связки и, или, не, например:

если (справа свободно) и (не снизу свободно) то

Для повторения последовательности команд можно использовать цикл «пока», имеющий следующий вид:

Например, для движения вправо, пока это возможно, можно использовать следующий алгоритм:

нц пока справа свободно

Выполните задание.

На бесконечном поле имеются две вертикальные стены и одна горизонтальная, соединяющая нижний конец левой и верхний конец правой вертикальных стен. Длины стен неизвестны. Робот находится в клетке, расположенной слева от нижнего края правой вертикальной стены, рядом со стеной. На рисунке указан один из возможных способов расположения стен и Робота (Робот обозначен буквой «Р»).

Напишите для Робота алгоритм, закрашивающий все клетки, примыкающие к вертикальным стенам справа. Робот должен закрасить только клетки, удовлетворяющие данному условию. Например, для приведённого выше рисунка Робот должен закрасить следующие клетки (см. рисунок).

Конечное расположение Робота может быть произвольным. Алгоритм должен решать задачу для произвольного размера поля и любого допустимого расположения стен внутри прямоугольного поля. При исполнении алгоритма Робот не должен разрушиться, выполнение алгоритма должно завершиться. Алгоритм может быть выполнен в среде формального исполнителя или записан в текстовом редакторе. Сохраните алгоритм в формате программы Кумир или в текстовом файле. Название файла и каталог для сохранения Вам сообщат организаторы экзамена.

15.2 Напишите программу для решения следующей задачи. Ученики 4 класса вели дневники наблюдения за погодой и ежедневно записывали дневную температуру. Найдите среднюю температуру за время наблюдения. Если количество дней, когда температура поднималась выше нуля градусов, не менее 5, выведите YES , иначе выведите NO . Программа получает на вход количество дней, в течение которых проводилось наблюдение N (1 ≤ N ≤ 31), затем для каждого дня вводится температура.

Источник

Двуногий робот Кэсси научился подниматься по ступеням всплепую

Разработка двуногих роботов — крайне непростая задача. Они дорогие, сложные, хрупкие и постоянно падают. Но если нужна машина, которая сможет выполнять все то, что делает человек, то лучше всего оснастить ее двумя нижними конечностями и научить выполнять сложные движения — например, пониматься и спускаться по ступеням, в том числе оступаясь на них. Американские инженеры нашли рискованный, но действенный метод решения этой задачи.

Ступени всегда были большой проблемой для роботов любых видов — двуногих, четвероногих, на гусеницах и так далее. И обычно, если такая машина осваивает перемещение по лестнице, это значит, что она использует массу сенсоров и много вычислительных мощностей. Команда инженеров из Университета штата Орегон и Agility Robotics решила совсем отказаться от датчиков — и это сработало на удивление хорошо. Изобретатели описали свой подход в статье для конференции по робототехнике, рассказывает Spectrum.

Робот Casssie слеп, то есть не получает информации о ступенях, по которым поднимается и спускается. Он получает только проприоцептивную обратную связь — знает только то, что его конечности расположены определенным образом по отношению к остальному телу и касаются какой-то поверхности. Страхующий трос ни коим образом не поддерживает робота, только предотвращает падение дорогого оборудования.

Как видно на видео, Кэсси движется крайне неуклюже: бьется о перила, спотыкается, соскальзывает со ступеней, ставит ногу не туда и иногда возвращается. Но каким-то образом ему удается не только не упасть, но и добраться до цели назначения. В этом и заключается уникальность подхода — вместо того чтобы разрабатывать идеальную систему преодоления лестниц с качественными сенсорами и серьезной обработкой данных, эта технология позволяет добиться результата быстрее, пусть и не так элегантно.

Секрет мастерства Кэсси в методе обучения с подкреплением. Сначала тренировки проходили в смоделированной среде типичного городского здания, а затем полученные знания пришлось закрепить в реальных условиях, в которых присутствовали помехи, которые трудно точно смоделировать.

Как это часто бывает с машинным обучением, разработчики не знают доподлинно, почему один подход оказывается удачным, а другой — нет. Например, Кэсси лучше справляется с подъемом по ступеням, если движется быстрее. Когда он ставит ногу медленно и аккуратно, то часто рискует упасть (ведь он слепой), но на средней скорости это не так страшно, потому что импульс движения вперед оказывается сильнее, чем силы, толкающего его назад.

«Эта работа демонстрирует удивительные способности слепого движения и оставляет открытым вопрос, где находится их граница», — говорится в конце статьи.

Другая разработка Agility Robotics — робот Digit. Он тоже двуногий и предназначается для доставки посылок от машины до двери дома. Во время поездки робот в сложенном виде будет лежать в салоне, а затем пройдет по садовой дорожке, куда беспилотному фургону въезд запрещен. Заказчик системы — компания Ford — планировала запустить уже в этом году.

Источник

«Слепой» Cheetah 3 робот может подниматься по лестнице, заваленной препятствиями

Теперь робот Cheetah(Гепард) 3 MIT может прыгать и скакать по пересеченной местности, подниматься по лестнице, заваленной мусором, и быстро восстанавливать равновесие.

90-фунтовый механический зверь — размером с большого лабрадора — намеренно предназначен для всего этого, не полагаясь на камеры или любые внешние датчики окружающей среды. Вместо этого он проворно «чувствует» свой путь через свое окружение таким образом, что инженеры описывают как «слепое передвижение», так же, как пробиваться через черную комнату.

«Существует много неожиданных действий, с которыми робот должен справиться, не слишком полагаясь на видение», — говорит дизайнер робота Sangbae Kim, адъюнкт-профессор машиностроения в Массачусетском технологическом институте. «Видение может быть шумным, слегка неточным, а иногда и недоступным, и если вы слишком полагаетесь на видение, ваш робот должен быть очень точным и в конечном итоге будет медленным. Поэтому мы хотим, чтобы робот больше полагался на тактильную информацию. Таким образом, он может справляться с неожиданными препятствиями и при этом двигаться быстро».

В октябре на Международной конференции по интеллектуальным роботам в Мадриде исследователи представят возможности робота без зрения. Помимо слепого передвижения, команда продемонстрирует улучшенное оборудование робота, в том числе расширенный диапазон движения по сравнению с его предшественником Cheetah 2, который позволяет роботу растягиваться назад и вперед и крутиться из стороны в сторону, подобно тому, что на видео до прыжка.

Kim предполагает, что в течение ближайших нескольких лет робот выполнит задачи, которые в противном случае были бы слишком опасными или недоступными для людей.

«Cheetah 3 предназначен для выполнения универсальных задач, таких как осмотр электростанций, который включает в себя различные условия местности, включая лестницы, бордюры и препятствия на земле», — говорит Kim. «Я думаю, что есть бесчисленные случаи, когда мы хотели посылать роботов для выполнения простых задач вместо людей. Опасную, грязную и трудную работу можно сделать гораздо безопаснее с помощью роботов с дистанционным управлением».

Алгоритм принятия решений

Cheetah 3 может вслепую пробираться вверх по лестницам и через неструктурированную местность и может быстро восстановить равновесие перед лицом неожиданных сил благодаря двум новым алгоритмам, разработанным командой Kim: алгоритму обнаружения контакта и алгоритму прогнозирования управления.

Алгоритм обнаружения контакта помогает роботу определить наилучшее время для того, чтобы текущая нога переключилась с качания в воздухе, на встать на землю.

«Когда речь заходит о переключении с воздуха на землю, переключение должно быть очень хорошим», — говорит Kim.

Алгоритм обнаружения контакта помогает роботу определить лучшее время для перехода ноги между колебаниями и шагом, постоянно вычисляя для каждой ноги три вероятности: вероятность контакта ноги с землей, вероятность создания силы после того, как нога попадает на землю и вероятность того, что нога будет в середине. Алгоритм вычисляет эти вероятности на основе данных гироскопов, акселерометров и положений суставов ног, которые фиксируют угол и высоту ноги относительно земли.

Если, например, робот неожиданно ступит на деревянный блок, его тело внезапно наклонится, сдвинув угол и высоту робота. Эти данные будут немедленно поданы на вычисление трех вероятностей для каждой ноги, которые алгоритм будет сочетать, чтобы оценить, должна ли каждая нога совершать точек вниз, или поднимать и отбрасывать, чтобы сохранить равновесие — все это время робот практически слеп.

«Если люди закрывают глаза и делают шаг, у нас есть ментальная модель для того, где может быть земля, и может подготовиться к ней. Но мы также полагаемся на ощущение прикосновения земли, — говорит Kim. «Мы делаем то же самое, комбинируя несколько источников информации, чтобы определить время перехода».

Исследователи протестировали алгоритм в экспериментах с бегом Cheetah 3 на лабораторной беговой дорожке и поднялись по лестнице. Обе поверхности были завалены случайными объектами, такими как деревянные блоки и рулоны ленты.

«Он не знает высоты каждого шага и не знает, что на лестнице есть препятствия, но он просто шагает, не теряя равновесия», — говорит Kim. «Без этого алгоритма робот был бы очень неустойчивым и легко упал».

Планы на будущее

Слепое передвижение робота также частично было вызвано алгоритмом прогнозом управления, который предсказывает, какое усилие необходимо применять для данной ноги, как только она совершит шаг.

«Алгоритм обнаружения контакта скажет вам:«Настало время применить силу к земле», — говорит Kim. «Но как только вы окажетесь на земле, теперь вам нужно рассчитать, какие силы применять, чтобы вы могли правильно двигать тело».

Алгоритм управления прогнозом модели рассчитывает мультипликативные положения тела и ног робота в полсекунды в будущем, если какая-либо сила применяется любой данной ногой при ее контакте с землей.

«Скажем, что кто-то пинает робота в бок”, — говорит Kim. “Когда нога уже на земле, алгоритм решает, какую я должен применить силу на ногу? Потому что у меня есть нежелательная скорость слева, поэтому я хочу применить силу в противоположном направлении, чтобы убить эту скорость. Если я применю 100 ньютонов в противоположном направлении, что произойдет через полсекунды?”

Алгоритм предназначен для выполнения этих вычислений для каждого этапа каждые 50 миллисекунд или 20 раз в секунду. В экспериментах исследователи прикладывали неожиданные силы, пиная и толкая робота, когда он бежал рысцой на беговой дорожке, и дергая его за поводок, когда он поднимался по лестнице с препятствиями. Они обнаружили, что алгоритм предсказания позволяет роботу быстро создавать встречные силы, чтобы восстановить равновесие и продолжать двигаться вперед, не наклоняясь слишком далеко в противоположном направлении.

“Именно благодаря этому упреждающему контролю можно применить правильные силы на земле в сочетании с этим алгоритмом контактного перехода, который делает каждый контакт очень быстрым и безопасным”, — говорит Kim.

Команда уже добавила камеры к роботу, чтобы дать ему визуальную обратную связь о своем окружении. Это поможет в отображении общей среды и даст роботу визуальную информацию о больших препятствиях, таких как двери и стены. Но на данный момент команда работает над дальнейшим улучшением слепого движения робота.

“Сначала нам нужен очень хороший контроллер без зрения», — говорит Kim. “И когда мы добавим зрение, даже если оно может дать вам неправильную информацию, нога должна быть в состоянии справиться с препятствием. Потому что если это то, что камера не видит? Что он будет делать? Вот где слепое передвижение может помочь. Мы не хотим слишком доверять нашему зрению.”

Это исследование было поддержано, в частности, Naver, Toyota Research Institute, Foxconn и военно-воздушным управлением научных исследований.

Источник

Читайте также:  Лестницы наружные размер ступеней лестницы
Оцените статью