У меня есть комната размером 300 х 300 см с потолком высотой 25 см (да, двадцать пять сантиметров). Он содержит 50 маленьких колесных роботов (около 20 см х 20 см). Центральный компьютер будет управлять движениями роботов, используя беспроводную сеть для отправки им команд положения. Роботы будут выполнять свой собственный контроль положения в замкнутом контуре, чтобы сэкономить пропускную способность беспроводной сети. Роботы имеют 32-битные ARM микроконтроллеры. У них есть датчики положения колес и возможность точного управления колесом.
Проблема: Роботы на самом деле не могут этого сделать, потому что у них нет возможности измерить свое положение в комнате.
Вопрос: Как можно дать роботам возможность измерять свое положение и ориентацию с точностью лучше ± 5 мм? Я ищу точное и надежное решение, которое не зависит от окклюзии и не требует мощного ПК для каждого робота. Все датчики, необходимые для локализации, могут быть легко добавлены к роботам. Микроконтроллеры можно легко заменить на более мощные, если этого требует решение для локализации.
источник
Ответы:
Некоторые идеи у меня в голове ... Как правило, вы можете либо дать каждому роботу почувствовать свою позицию, либо использовать какую-то систему, чтобы найти роботов и отправить им информацию об их положении (или их комбинации). Возможно, использование других положений робота для определения местоположения - это еще один вариант, если они могут общаться. Вы также можете объединить информацию датчиков от роботов и других источников.
оптический
Вы можете кодировать абсолютное или относительное положение на полу или потолке. Датчик на роботе может посмотреть на них. Такой датчик, как в вашей оптической мыши, может получать относительное движение от большинства поверхностей даже без какого-либо рисунка. Были мыши старого стиля, которые использовали узорчатую сетку.
Вы можете иметь две (или более) камеры на каждом роботе, смотрящем в разные стороны, если стены комнаты имеют правильный вид рисунка, вы можете определить свое местоположение на основе изображений. Вращающаяся камера является еще одним вариантом. Обструкция камеры другими роботами может быть проблемой.
Сенсорная матрица или камера в полу или на потолке могут определять местонахождение роботов, а затем вы можете отправлять роботам их местоположение.
Какой-то вращающийся оптический датчик, который может определять направление оптического маяка (например, светодиод).
Звук
У вас может быть несколько маяков, излучающих ультразвуковые щебеты. Если они все синхронизированы (например, фиксированная задержка между ними), то, учитывая их местоположение, вы можете использовать расчет времени полета для определения положения робота. Много лет назад я работал с ультразвуковым дигитайзером, точность которого составляла около миллиметра на расстоянии около метра, так что, похоже, это примерно так. В зависимости от формы вашего робота и конфигурации роя, отражения и препятствия могут быть или не быть проблемой. Вам нужно будет поэкспериментировать, но мое внутреннее чувство заключается в том, что с достаточным количеством маяков вы можете добиться хороших результатов.
Ультразвуковые дальномеры на каждом роботе. (вращается?) Может отобразить расстояние до других роботов или стен.
Если что-то из этого звучит интересно, я могу попытаться развить эти идеи немного дальше.
источник
Если потолок представляет собой плоскую поверхность, которая видна с верхушек роботов, вы можете размещать полосы маркеров (или некоторые другие известные опорные узоры) на потолке через равные промежутки времени. Полосы могут быть белыми или черными линиями или узкой отражающей лентой, обнаруживаемой с помощью фотодатчиков поверх роботов.
Если датчики положения колеса и точное управление колесом достаточно хороши для поддержания желаемой точности данных о местоположении, когда робот переместился не дальше, чем на расстояние d от точно известного положения, полосы (это могут быть белые полосы, черные полосы или узкая отражающая лента) может потребоваться разместить не дальше, чем примерно на расстоянии d / √2.
Программное обеспечение для планирования движения, вероятно, должно быть адаптировано. Если положение робота постоянно неправильное, когда он пересекает полосу, отрегулируйте его отношение количества кодировщиков колес к пройденному расстоянию; или если полоса будет видна, если подвижная нога будет немного длиннее, вытяните ногу, чтобы пересечь полосу; или перейти к калибровке по нескольким полосам непосредственно перед любыми чувствительными к положению операциями; или выполнять чувствительные к положению операции в точке пересечения полосы.
Существует довольно много возможных шаблонов. Ортогональные полосы, расположенные параллельно осям x и y, вероятно, проще всего создавать и работать с ними. Но стоит обратить внимание на бычьи глаза, перекрестие, клинья, штрих-коды и другие шаблоны.
источник
Небольшое расстояние между верхом робота и потолком действительно ограничивает ваши возможности. Кажется, почти невозможно получить централизованный обзор всей комнаты и работать оттуда.
Я не уверен, о какой «комнате» вы говорите, и сколько вы можете ее использовать, но это может быть вариант размещения маркеров на потолке, а не роботов. Учитывая небольшое расстояние, вам придется в значительной степени полностью заполнить потолок крошечными маркерами, которые могут быть полностью видны камерой, направленной вверх, на каждого робота, хотя вы можете расположить эту камеру ниже на роботе, скажем, между передние и задние колеса с обеих сторон, чтобы дать вам более широкий угол обзора. Но самой большой проблемой было бы напечатать достаточно четких маркеров, чтобы обработать весь потолок.
В качестве альтернативы может быть целесообразно оборудовать пол большим количеством меток RFID, при условии, что вы можете найти считыватели с достаточно маленьким диапазоном (AFAIK, считыватели RFID сообщат вам только о том, что определенный тег находится в диапазоне, а не там, где он находится). Считыватель RFID Phidgets уже имеет диапазон ок. 3 дюйма, поэтому, если вы не локализуетесь, увидев, какую группу тегов вы можете наблюдать (если можно наблюдать несколько тегов одновременно - можете ли вы сказать, что у меня нет реального опыта работы с RFID?), Вам придется экспериментировать с получать теги меньшего размера и «экранировать» их от читателя, чтобы они не могли быть прочитаны, кроме как на очень близком расстоянии.
В целом это кажется сложным, но очень интересным испытанием. Если это для работы, я предполагаю, что вы не можете сказать нам цель проекта, но это, конечно, звучит интригующе :)
источник
Если о системе vicon не может быть и речи, то вы можете использовать систему калиброванных камер для считывания маркеров, размещенных над роботами.
Вроде как то, что эти исследователи сделали в этой статье (см. Стр. 16)
Однако, как отметили другие, если потолок очень низкий, у вас не будет прямой видимости к вершине роботов, и вам будет сложно использовать этот метод.
источник