Я хотел бы построить робота, который следует виртуальному пути (а не видимому пути, подобному «черной линии на белой поверхности» и т. Д.).
Я просто в восторге, увидев несколько научно-фантастических видеороликов, на которых роботы несут товары и материалы в людном месте. И они действительно не следуют физической линии. Они чувствуют препятствия, глубину и т. Д.
Я хотел бы построить одного такого робота, который следует определенному (виртуальному) пути из точки А в Б.
Я попробовал пару вещей:
Использование магнитного датчика «эффекта Холла» на роботе и проводе, проводящем ток (под столом). Проблема заключалась в том, что близость датчика Холла настолько мала (<2 см), что очень трудно судить, находится ли робот на линии или не на линии. Даже использование серии магнитов не может решить эту проблему, так как мой стол имеет толщину 1 дюйм. Так что эта идея провалилась: P
Использование ультрафиолетовой краски (на линии) и использование ультрафиолетовых светодиодов на роботе в качестве датчиков. Это даст больше движения зигзага для робота. И из-за потенциальной угрозы использования источника ультрафиолетового света даже эта идея провалилась: P
В конце концов я подумал о том, чтобы иметь камеру сверху и использовать алгоритмы обработки изображений, чтобы увидеть, находится ли робот на линии или расходится.
Есть ли лучшее решение, чем это? Действительно ищу некоторые креативные и простые решения. :)
Ответы:
Есть много возможных способов решения этой проблемы, и все они зависят от доступных материалов и опыта робота-строителя.
Короче говоря, критерии таковы:
В зависимости от длины пути, использование кодеров может быть достаточно. Однако следует отметить, что из-за физической неточности дрейф делает одометрию (то, что мы называем использованием датчиков для измерения расстояния) непрактичной для больших расстояний. Тем не менее, это легко для коротких расстояний, и по крайней мере следует учитывать.
Если расстояние слишком велико только для одометрии, следует рассмотреть возможность использования какого-либо датчика для измерения поворотов (например, гироскоп или компас ). Повороты, как правило, вносят наибольшие ошибки в одометрию (измерение по прямой не приводит к большим ошибкам), поэтому использование датчика поворотов может иногда сделать одометрию жизнеспособным решением.
Если одометрия или одометрия + чувственное вращение не сработают, мы начинаем проявлять креативность. Если вы хотите, чтобы робот следовал по траектории, состоящей в основном из прямых сегментов, вы можете разместить ИК-светодиоды в заданных «путевых точках» на столе, и пусть робот распознает эти светодиоды и последовательно движется к каждой путевой точке.
Однако, это все еще оставляет некоторую визуальную маркировку на столе (хотя это может быть замаскировано до некоторой степени), и было бы здорово иметь возможность обойтись без этого. Другим подходом было бы использование лазерных указателей, сияющих параллельно поверхности стола, но на несколько дюймов выше стола. Робот может использовать фоторезистор, чтобы определять, когда он пересекает лазер, и это может дать ему знать, когда повернуть.
В общем, я думаю, что одометрия, дополненная датчиком угла, вероятно, является лучшим выбором для вашего робота, по крайней мере, так, как вы это описали. Возможно, я смогу придумать больше вариантов, но это все, что я вижу сейчас.
Просто любопытно - почему вы хотите, чтобы линия была невидимой? Зная, почему может открыть еще несколько возможностей.
источник
Anki использует оптические датчики в своих игрушечных автомобилях для реализации линейных последователей. Оптические датчики чувствительны в инфракрасном диапазоне. Тот факт, что линии не видны, легко объясним: линии покрыты черным цветом, который прозрачен в ИК-диапазоне. К таким цветам относятся палиоген черный L 86 или палиоген черный S 84 от BASF . Если вы размещаете штрих-коды вдоль линий, вы даже можете получить информацию об абсолютном позиционировании от оптических датчиков.
источник
У меня есть короткий ответ на ваш вопрос. Это только для робота с поддержкой ROS. Есть много способов сделать это, но я так и сделал. Я использовал ROS и Kuka Youbot. Это может быть любой робот, использующий ROS. Очень полезно знать ROS, если вы планируете заниматься робототехникой.
Используйте ROS Затем используйте GMapping для отображения вашей среды. Пример комнаты или прихожей и сохранить карту. Затем, используя RVIZ, укажите целевую позицию на карте.
источник
Ну, тебе не нужна никакая строка в этом отношении. Единственное, что вам, вероятно, понадобится, это глобальные координаты. если вы можете поместить своего робота в поле, определяемое глобальными координатами, и применить простые правила ньютоновской физики, робот может переходить из одной точки в другую. Основываясь на своем текущем местоположении, он узнает текущий угол поворота, желаемый угол поворота и координаты цели (также известные как «поза»). Как только вы обеспечите скорость робота, он начнет двигаться к координатам цели. На каждой итерации он пересчитывает свою позу и при необходимости вносит коррективы.
источник