понедельник, 21 января 2013 г.

Робот для состязаний: "Батик". Часть II

В младшей категории World Robot Olympiad 2013 помимо того, что случайным образом выкладываются кубики в стартовой области, случайным образом выкладываются корзины, в которые кубики надо выгрузить - точнее, корзины остаются на том и том же месте, но вот цвет корзины меняется от попытки к попытке.
Таким образом, робот заранее не знает, в какую по номеру корзину ему придется вести тот или иной кубик. Следовательно роботу перед тем, как переместиться к нужной корзине, чтобы выложить, например, синий кубик, надо сначала определить в какой корзине ожидаются синие кубики.

Поэтому можно сформулировать несколько подходов к выкладыванию кубиков в корзины:

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

В таком случае вполне вероятна ситуация, когда первые подъезды к корзинам будут "исследовательские". Например, на схеме ниже робот не сможет выложить красный кубик в первые две корзины, но он и не сможет ехать сразу к третьей, поскольку не знает, что именно в нее нужно складывать красные кубики.


А если потом ему нужно отвезти зеленый кубик, перемещаться придется опять к первой корзине - хотя это робот сможет сделать сразу (не заезжая во вторую), поскольку "закрепил" за первой корзиной зеленый цвет во время "исследовательских" перемещений.


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

Этот подход можно оценить следующим образом:
  • Время выполнения: долго
  • Сложность конструкции: простая
  • Сложность программы: высокая (будет описано в отдельной статье)

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


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

Следовательно, робот, использующий такую стратегию, можно оценить как
  • Время выполнения: самый быстрый
  • Сложность конструкции: сложная
  • Сложность программы: низкая

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



При этом робот размещается над разделительным бортиком между двумя корзинами.


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

Оценка такого подхода лучше, чем у первого, но хуже, чем у второго
Время выполнения: среднее
Сложность конструкции: средней сложности
Сложность программы: высокая
  • Время выполнения: среднее
  • Сложность конструкции: средней сложности
  • Сложность программы: высокая

4 комментария:

  1. Из текста правил совершенно непонятно, должен ли робот сам выяснять, где какой цвет корзины, или ему это будет известно на момент начала раунда. Если цвет неизвестен, то программа получается гораздо сложнее, чем для робота в средней возрастной группе, а это как минимум, нелогично.
    Похожая задача с сортировкой кубиков была в 2011 году, но тогда это было задание для старшей возрастной группы. И то, насколько я знаю, в том соревновании расположение цветов корзин было известно заранее.
    Вряд ли организаторы решили, что можно младшей группе подсунуть задание от старшей группы, да ещё и усложнить его.

    ОтветитьУдалить
    Ответы
    1. Регламент сейчас говорит, что ни положение кубиков, ни положение корзин заранее не известно.
      Задание сложное с точки зрения программирования, согласен, зато с точки зрения конструирования - не очень - кубики поднимать не надо - их можно уже положить в робота на старте.

      Удалить
  2. Добавлю также, что в случае, когда неизвестен как порядок кубиков, так и расположение корзин, потребуется либо использовать два сенсора цвета, либо сделать механизм для перемещения сенсора из положения "на кубик" в положение "на пол". Это явно задача не для пятиклассников.

    ОтветитьУдалить
    Ответы
    1. А в чем проблема использовать два сенсора? Можно даже все четыре. Вот сенсоры касания и расстояния в этой задаче точно ни к чему.

      Удалить

Related Posts Plugin for WordPress, Blogger...