roboforum.ru

Технический форум по робототехнике.


Домашний робот-полотёр

Наше хобби — конструировать и программировать.
Демонстрация готовых роботов и устройств построенных своими руками.

Re: Домашний робот-полотёр

Сообщение Scorpio » 29 апр 2025, 01:00

Тебе уже говорили, что ты гений?! 115200 я взял из тестовой проги. Там скорость фиксированная. На увеличение попробовал до 230400. В даташите и на сайте, где купил ничего проскорость не написано. Так что все работает. Спасибо!
Аватара пользователя
Scorpio
 
Сообщения: 2694
Зарегистрирован: 30 сен 2008, 18:49
Откуда: Где-то в Латинской Америке

Re: Домашний робот-полотёр

Сообщение smur » 29 апр 2025, 08:50

Рад, что всё получилось) Я не гений, я практик) Сначала ищу достоверную информацию, лучше от производителя изделия и начинаю "плясать" от неё. Так же еще порой полезно "выкапывать" информацию о проблемных микрокодах, которую часто и сами производители официально не публикуют. Тут уже сложнее с поиском.
smur
 
Сообщения: 97
Зарегистрирован: 22 ноя 2016, 22:00

Re: Домашний робот-полотёр

Сообщение Scorpio » 29 апр 2025, 19:01

Я о таких скоростях соединений с устройствами раньше и не слышал)) Хотя понятно, что современный UART теоретически может и 2млн. Нашел потом даташит от SLAMTEC, есть там скорость. Раньше смотрел в Interface Protocol and Application Notes.
Вопросы к топикастеру:
Где почитать про самодельный SLAM? Вернее даже, про определение координат робота по лидару в известном заранее помещении. Как то не очень удалось найти про сам принцип. Понятно, что надо как-то вертеть контуры, обнаруженные лидаром и прикладывать их к известным частям карты. Но ведь бывают еще стулья, люди. Ты вроде сам все делал. С какой точностью удается определить положение робота? И с какой достоверностью? В каком виде хранишь карту, и как отмечаешь на ней уже помытые места? Я думаю пока в текстовом файле, где каждая строка - это состояние клеток одной горизонтали. Размер ячейки сетки соответствует диаметру платформы. Платформа может разворачиваться вокруг своей оси. С учетом швабры получается, что робот занимает 2 клетки. Или надо уменьшить градацию координатной сетки? Текущее направление тоже определяешь по лидару? У меня, в принципе для этого раньше использовался компас, но он бывает глючит. Есть еще энкодеры. Ты как то их используешь, или лидар заменяет все?
Таз с водой я нахожу по камере. В отличии от фиксированной зарядки, предполагается, что таз м.б. в любом доступном месте, например, посреди комнаты. В начале уборки, робот должен "оглядеться", чтобы найти таз. При первом подъезъде к нему, шваброид должен пометить таз на карте, чтобы в следующий раз быстро его найти. Либо искать заново, если таза на месте не оказалось. Ставить в одно место было бы проще, но так интереснее. В конце-концов, я не собираюсь запускать шваброида в серию. Это просто платформа для исследования технологий навигации в помещении, с возможностью практического применения. Гости просто балдеют, глядя на то, как робот сам подъезжает к тазу, разворачивается и полощет в нем швабру ))
Аватара пользователя
Scorpio
 
Сообщения: 2694
Зарегистрирован: 30 сен 2008, 18:49
Откуда: Где-то в Латинской Америке

Re: Домашний робот-полотёр

Сообщение smur » 29 апр 2025, 19:47

Пару лет назад активно читал по теме, но руки не дошли до реализации чего то движущегося.
Хотя вот Kinect удалось под линуксом запустить.

http://wiki.ros.org/navigation
http://wiki.ros.org/gmapping

SLAM
Доклады второго ROS Meetup по навигации роботов
https://habr.com/ru/post/493792/

Dynamic window based approach to mobile robot motion control in the presence of moving obstacles
https://ieeexplore.ieee.org/document/4209377

Dynamic window based approaches for avoiding obstacles in moving
https://www.sciencedirect.com/science/a ... 9018309746

Поиск A* (произносится «А звезда» или «А стар», от англ. A star) — в информатике и математике, алгоритм поиска по первому наилучшему совпадению на графе, который находит маршрут с наименьшей стоимостью от одной вершины (начальной) к другой (целевой, конечной).
https://ru.wikipedia.org/wiki/A*

ROS russia community robotics
1 574 members, 497 online
Сообщество ros на русском языке для обсуждения вопросов и совместных проектов. Запрещена реклама и размещение вакансий. Правила чата - https://t.me/rosrussia/13028
Чат с вакансиями @rosrussia_jobs
https://t.me/rosrussia

!!!
“Eurobot: планирование пути робота”
Авторы выступления: Георгий Щукин, Станислав Киселев
https://habr.com/ru/post/493792/

!!!
Свой стек навигации. Лучше чем у ROS?
https://habr.com/ru/post/479636/

Что общего между револьвером, шайбами и автономным роботом
https://habr.com/ru/post/478836/

https://github.com/ristle/EUrobotNavigation

!!!
https://github.com/ros-planning/navigation

Лазерный дальномер VL53L0X
https://www.ozon.ru/product/lazernyy-da ... -dnhX25RrA
VL53l1x


RGB-D SLAM With Kinect on Raspberry Pi 4 ROS Melodic
https://www.hackster.io/dmitrywat/rgb-d ... dic-ace795

https://www.hackster.io/microsoft/produ ... ect-ace795

!!!
How to use Kinect with NVIDIA Jetson Nano. Libfreenect demo and ROS node installation
https://www.youtube.com/watch?v=HTgsaG4KL5I
This time I will setup old RGBD sensor Kinect 360 on NVIDIA Jetson Nano.
Kinect 360 is still a decent depth sensor solution for low budget builds.
We will install freenect library, play with library demos (examples) and then try it with ROS (Robot Operating System).
There is a one thing to note – there are two models of Kinect 360: 1414 and 1473. The main difference between models 1414 and 1473 is the arrangement of the Kinect's sub-devices (camera, microphone array, tilt motor, internal USB hub). In model 1414, the camera was the "main" device, and had the Kinect's serial number attached to it. In model 1473, the serial number is now attached to the microphone device, and the camera device's serial number is bogus. This difference affect initial start of the device. And there is a hack how to fix it – it is mentioned in video.

Timeline:
0:13 – freenect library installation
1:12 – library examples
2:03 – fix LIBUSB_ERROR_NO_DEVICE issue
4:40 – Kinect ROS wrapper

Links:
Openkinect project - https://openkinect.org/wiki/Main_Page
How to turn old Kinect into a compact USB powered RGBD sensor - https://medium.com/robotics-weekends/...
libfreenect Github - https://github.com/OpenKinect/libfree...
ROS node Github - https://github.com/ros-drivers/freene...

Hardware info: https://openkinect.org/wiki/Hardware_info

!!!!!!
How to turn old Kinect into a compact USB powered RGBD sensor
https://medium.com/robotics-weekends/ho ... 3d58e10eb0


http://freneticrapport.blogspot.com/201 ... cable.html
https://openkinect.org/wiki/Getting_Started

https://suhastech.com/homemade-kinect-h ... -xbox-360/

!!
How to use an Xbox 360 Kinect on PC (Windows)
https://www.youtube.com/watch?v=u1AzY4OxzQM

!!!
https://dydx.me/2021-04-07/kinect-on-raspberry-pi


https://github.com/OpenKinect/libfreenect

https://github.com/OpenKinect/libfreenect2

!
https://aibegins.net/2020/11/22/give-yo ... os-noetic/

Use a Gazebo Depth Camera with ROS
http://classic.gazebosim.org/tutorials? ... onnect_ros

Работа с Kinect под ROS
https://robocraft.ru/robosoft/757

Dynamic window based approach to mobile robot motion control in the presence of moving obstacles
https://ieeexplore.ieee.org/document/4209377

Dynamic window based approaches for avoiding obstacles in moving
https://www.sciencedirect.com/science/a ... 9018309746
smur
 
Сообщения: 97
Зарегистрирован: 22 ноя 2016, 22:00

Re: Домашний робот-полотёр

Сообщение Scorpio » 29 апр 2025, 23:14

Ого! Спасибо за столь обширный материал! Но, если отбросить все ссылки с корнем ROS (у меня C# под винду), и с корнем Kinnect (он где то валяется, но в данном проекте не участвует), то оставшиеся статьи, на вопрос "как роботу определьть свое местонахождение на карте с помощью лидара? ", вроде бы не отвечают. Посмотрю еще повнимательнее.
Аватара пользователя
Scorpio
 
Сообщения: 2694
Зарегистрирован: 30 сен 2008, 18:49
Откуда: Где-то в Латинской Америке

Re: Домашний робот-полотёр

Сообщение smur » 03 май 2025, 20:27

Я так понял активность идет вот здесь:
t.me/rosrussia/1
Где можно найти много информации и ссылок. Народу там много, включая китайских ботов и проч.
По идее ROS неплохой вариант для сборки разных проектов, тем более, что многие серьёзные игроки делают решения под ROS.

В общем городит кто во что горазд. Фрейморки рождаются как грибы после дождя и так же быстро загибаются.
Интересно конечно искать какие то академические подходы.

Если говорить о профессиональном сканировании местности и построении карт, то обзор решений:
Обзор оборудования и программ для сканирования и построения карты
Схемы сборки SLAM системы 3D картографирования
https://www.youtube.com/watch?v=lodlZUsVdWE
Данный обзор хорош тем, что делался не программистом, поэтому получился без перекосов в ту или иную сторону. Человек проанализировал рынок профессиональных решений.

Ну и еще неск ссылок, то что я быстро пролистал по теме:
Конференция по робототехнике и искусственному интеллекту ROS Meetup 26 апреля 2025
https://habr.com/ru/companies/sberbank/news/903950/

Архив выступлений на ROS Meetup
https://docs.google.com/spreadsheets/d/ ... id=0#gid=0

Хакатон по сборке и программированию
t.me/rosrussia/85000

Результаты хакатона — инструкции по сборке и программированию ROS2 роботов
https://habr.com/ru/companies/sberbank/articles/903126/

MEPhI_ROS2_drone - это двухколесный робот с открытым исходным кодом, разработанный для образовательных целей командой студентов из НИЯУ МИФИ. MEPhI_ROS2_drone полностью интегрирован с ROS2 и является отличной базовой платформой для плавного введения в ROS2. Благодаря открытому коду и исходным файлам 3D моделей любой желающий может модифицировать и настроить робота в соответствии со своими требованиями.
https://github.com/Muhamedli/MEPhI_ROS2_drone
Данный проект является форком проекта Andino, ПО, конструкция и электрическая схема которого были доработаны под наши требования.
https://github.com/Ekumen-OS/andino
Andino Navigation
We rely on Nav2 stack in order to navigate Andino.
https://github.com/ros-navigation/navigation2
https://docs.nav2.org/getting_started/index.html
This C++ library provides a framework to create BehaviorTrees. It is designed to be flexible, easy to use and fast.
https://www.behaviortree.dev/docs/learn ... /BT_basics
https://www.behaviortree.dev/docs/Intro

Образовательный ROS2-робот: аппаратная архитектура и выбор компонентов
https://habr.com/ru/companies/sberbank/articles/891376/

ROS2 - Народный курс
https://stepik.org/course/221157/promo
Этот курс охватывает ключевые аспекты работы с ROS2 (Robot Operating System 2) и предназначен для тех, кто хочет освоить робототехнику с использованием современных инструментов. Мы подробно рассмотрим установку и настройку ROS2, создание и управление нодами, а также взаимодействие роботов с различными сенсорами и приводами. Курс включает как теоретические, так и практические задания, которые помогут вам построить, запрограммировать и выполнять действия на реальном роботе и в симуляции.

Добавлено спустя 2 минуты 59 секунд:
Так что многие ушли в ROS, тем более, что серьёзные игроки на рынке вовсю раскручивают эту тему.
Придется догонять, чтобы быть в тусовке.
smur
 
Сообщения: 97
Зарегистрирован: 22 ноя 2016, 22:00

Re: Домашний робот-полотёр

Сообщение sned » 04 май 2025, 06:25

Scorpio писал(а):С какой точностью удается определить положение робота? И с какой достоверностью? Размер ячейки сетки соответствует диаметру платформы. Платформа может разворачиваться вокруг своей оси. С учетом швабры получается, что робот занимает 2 клетки. Или надо уменьшить градацию координатной сетки? Текущее направление тоже определяешь по лидару? Есть еще энкодеры. Ты как то их используешь, или лидар заменяет все?

Карты у меня строятся с разрешением 1см.В идеале точность определения координат такая же но как правило обстановка в комнате постоянно меняется относительно карты которая была построена ранее(сморщенные или сдвинутые шторы или покрывало свисающее с дивана или стулья перемещённые) поэтому точность меняется и хуже.Курс обязательно определяется по карте тоже.Собственно координаты робота и определяются путём совмещения картинки скана лидара с картой вертя её на 360 градусов.Выбирается наилучшее совпадение и в дальнейшем экономя вычисления можно вертеть скан только около определённого ранее курса и места.В литературе о слам много упоминается применение фильтра калмана, но я не понял как его можно прикрутить и не применяю в явном виде и честно говоря без него всё не плохо.Вам теория наверное не очень подходит, в ros это работает из коробки.Интересно сравнить но я с ros не дружу)) Гирокурс с электронного модуля применяется главным образом в движении для улучшения пид драйверов двигателей.Энкодеры для движения пид тоже главным образом.
На счёт двух клеток.Робот находится всегда в одной клетке с точностью до см)) А уже программа вычисляет траекторию обьезда препятствий.Про мойку по отрезкам я уже писал.В общем можно описать процесс мойки от точки до точки с изумрудами(не помытые точки) и собирание их.Много времени и размышлений у меня заняло оптимизация этого процесса.Движение с минимальным числом поднятия и опускания швабры.Наверное есть ещё и дальше куда оптимизировать.
sned
 
Сообщения: 309
Зарегистрирован: 08 апр 2013, 08:09
Откуда: Екатеринбург
ФИО: Сергей

Re: Домашний робот-полотёр

Сообщение Scorpio » 05 май 2025, 17:55

Ничего не имею против ROS. Ноды, сообщения, подписки. Наверное, все это правильно. Лет 12 назад, когда ROS только появилась, пытался я ее поюзать. Даже запустить толком не получилось. Сейчас, вероятно, все проще и стабильнее. Под C# у меня много своих наработок, так что полотера буду доделывать на нем. Ну, а следующую тележку попробую на малине с ROS. Почему бы и нет, раз все энтот рос так хвалят.

Лидар, кстати, оказался вполне приличным. Компактный, почти бесшумный, и вот:
Lid3.jpg
Расположение робота.

Lid2.jpg
Наложение показаний лидара (красные точки) на карту.

Видит даже тонкие ножки барного стула.
Координаты робота определяются в мм. Ячейки на карте по 225мм (половина кафелины), чтобы отмечать их как занятые мебелью, запланированные для мытья, или уже помытые. Крутить карту я еще не научился. Пока примерно считаю пройденное расстояние по энкодеру и пытаюсь уточнить конечное положение по расстоянию от недвижимых стен (темно серый) и не особо передвигаемой мебели (светло серый). Однако, что делать, когда попадает подвижная мебель между роботом и стеной, пока не придумал. По идее, зону уборки всяко надо от стульев освобождать.
Шваброид с лидаром на башке получился высотой аж 45см, что конечно не практично. Журнальный столик, например, он уже не видит. Мочалка швабры оказалась несколько короче ширины робота, так что углы в принципе не промыть. Если концепт заслужит одобрения к практическому применению, то придется переделать тележку на более компактную и приземистую, как у топикастера. Но, что-то мне подсказывает, что к тому времени я уже утрачу интерес к самодельным полотерам))
Аватара пользователя
Scorpio
 
Сообщения: 2694
Зарегистрирован: 30 сен 2008, 18:49
Откуда: Где-то в Латинской Америке

Пред.

Вернуться в Наши проекты

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0

cron