Технический форум по робототехнике.
Angel71 » 06 ноя 2012, 23:51
потыкал в несколько проектов, попались все на сях.
citizen писал(а):В моем случае требуется именно определение положения робота на карте, причем желательно без начального указания положения.
одно из определений slam
Метод одновременной навигации и построения карты (SLAM от англ. Simultaneous Location and Mapping) — метод, используемый роботами и автономными транспортными средствами для построения карты в неизвестном пространстве или для обновления карты в заранее известном пространстве с одновременным контролем текущего местоположения и пройденного пути.
citizen » 06 ноя 2012, 23:58
SLAM обычно или карту с нуля строит, или продолжает достраивать текущую, но только в том случае, если при запуске будут указаны координаты робота относительно карты. Без одометрии я реализаций SLAM вообще не видел, есть, правда, с использованием IMU и качественного дальномера. Ну а у меня одометрия довольно посредственная и дальномер не лучший.
Angel71 » 07 ноя 2012, 00:06
кто мешает одометрию добавить? "только в том случае, если при запуске будут указаны координаты робота относительно карты" мистика прям какая-то.
а взять и отложить в сторону уже имеющуюся карту и начать строить новую, чтобы потом сопоставить данные и найти все возможные координаты, не? довели возможные местоположения до одного и совмещайте карты. вы же не ищите идеальный алгоритм, который в любой местности сможет сориентироваться? бо тогда или стираете данные карты и строите заново, либо добавляете другие источники информации - маячки, метки, ....
"слам для чайников"
http://ocw.mit.edu/courses/aeronautics-and-astronautics/16-412j-cognitive-robotics-spring-2005/projects/1aslam_blas_repo.pdf с примерами на шарпе.
citizen » 07 ноя 2012, 01:05
Тоже довольно интересное чтение, спасибо.
По поводу изначального положения - хотелось бы, чтобы изначальными данными для робота был номер комнаты(для каждой комнаты своя карта готовая). Также хочется, чтобы робот мог работать без одометрии, так как она с румбы 400 неточная идет.
Angel71 » 07 ноя 2012, 04:47
а зачем вам супер-пупер точность? калман рас, увязывание данных из различных источников два. варианта всего три:
- по максимуму использовать то, что есть
- или листать за более точные датчики, лепить локальную систему позиционирования, вычислялку помоднее и видеокамеру,...
- забить
номер комнаты это уже координаты. пару минут поездить и можно будет получить более точные координаты. опять всё в или или упирается. хотите стартовать с любой точки, работайте над алгоритмами. не хотите заморачиваться, стартуйте с базы - координаты есть, вектор есть.
noonv » 07 ноя 2012, 08:55
на имеющейся карте можно локализоваться только по данным дальномера
например, при помощи MCL (Monte Carlo localization).
у меня всё руки не доходят выложить свой С++-ный пример
Angel71 » 07 ноя 2012, 10:06
noonv, про несколько карт и монте карло эт dp-slam. использовать только данные от "дальномера" имхо опрометчиво.
Mux » 08 ноя 2012, 19:36
отличный девайс
Duhas » 09 ноя 2012, 08:50
citizen писал(а): причем везде используют MATLAB, с которым я совершенно не знаком.
а вы попробуйте. хороший пакет )
citizen » 12 ноя 2012, 01:38
Экспериментировал с алгоритмом RANSAC (из "slam for dummies"). Часть линий обнаруживает, часть нет, но при этом дает очень много ложных линий. Решил продолжать придумывать свой алгоритм. Алгоритм, к примеру, должен учитывать, что на больших дальностях падает точность.
sub_null » 12 ноя 2012, 13:55
citizen » 12 ноя 2012, 16:57
В пылесосе стоит более приличный дальномер и более качественная одометрия.
Drunya » 13 ноя 2012, 11:14
А можно поинтересоваться схемой драйвера ЛД?
citizen » 13 ноя 2012, 14:05
Там все совсем просто. Лазер управляется напряжением.
Источником напряжения является lm317 в стандартном включении, для регулировки напряжения используется подстроечный резистор.
Получавшееся напряжение подается на лазер через токоограничительный резистор 40 ом и транзистор bc847.
Никаких обратных связей нет.
Валера » 23 ноя 2012, 14:07
Очень интересный проект.
Хотелось бы по больше узнать по подключению TSL1401 к мк, в словах если можно как происходила обработка данных с светочувствительной линейки и как математическим методом вы повысили разрешение?
Полазив по инету нашёл несколько ссылок по этой тематики, может кому пригодится:
http://solidstate.karelia.ru/~ivashen/M ... lab_5.htmlhttp://www.prom-engin.ru/site/index.php ... angulyaciahttp://www.sensorika.com/content/view/89/83/