roboforum.ru

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

Ориентирование в 3D-пространстве

Сообщение KAI » 23 июн 2005, 19:09

Приводить куда эту картинку без синусов? На экран? А зачем она там?

Да почему на экран то? в массив, а из него придётся брать данные для какой то логики, и, например, решать на какой угол повернуть.
Аватара пользователя
KAI
 
Сообщения: 126
Зарегистрирован: 13 июн 2005, 11:03
Откуда: Ярославский регион

Сообщение =DeaD= » 24 июн 2005, 07:09

KAI писал(а):
Ну муху делать мне, например, неинтересно

А вы пробовали? :)  Спутник, на котором установлен был прибор, имитирующий глаз мухи распознавал марку самолёта в ЗАКРЫТОМ АНГАРЕ! ( извините за крик) источник - если не ошибаюсь это журнал "нейрокоипьютер"

Начали за здравие, а закончили... как обычно :)
Мы вроде про алгоритмы говорили, а вы про сенсоры начинаете речь :)

KAI писал(а):
Ну здасьте, а чего бы и не подготовить среду, если есть такая возможность.

Да верно всё, верно, но дальний то прицел - свободное путешествие и ориентация в любой среде?! Так не логичнее ли искать алгоритмы, которые решают эти проблемы. Ну сделаете вы братана, который ездит в заданной системе, так их уже есть!

Хм, так я не понял, в чем дальность то прицела, поставить такую задачу? Так масса людей поставило, проблема, что решило такую задачу немного людей. И как это связано с полярной системой координат?

KAI писал(а):
что за примитивные карты объектов?

Ну как сказать то правильно? карта конкретного болота для утки, ну так что ли? А вот мжду болотом в Африке и скандинавии нет карты, хотя наверное есть карта ориентиров - маяков?

У меня складывается впечатление, что вы хотите предложить алгоритм, который я уже рассказывал:
=DeaD= на робоклубе.ру писал(а): 2ASin: Я уже давненько обдумывал схожую мысль, про локации, но через некоторое время я её пока отложил, хотя придумал как использовать дальше. Моя гипотеза строилась несколько более широко: человек запоминает предметы, часто их взаимное расположение (включая целые "картинки" по 5-10 предметов), а также способы пройти из "рядом с предметом 1" мимо предметов 2 и 3 к "рядом с предметом 3".

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

Я буду комбинировать оба этих метода, т.к. я не могу и не хочу обеспечивать точность при перемещениях на большие расстояния, поэтому при перемещениях "из города А в город Б" я буду пользоваться относительной навигацией типа "на 3-ей по счету развилке нужно повернуть направо", или "посмотреть, какой номер дома видишь, найти его на карте и понять где примерно ты находишься" - КСТАТИ! ВОТ ОНО ОРИЕНТИРОВАНИЕ ПО МАЯКАМ! :) действительно! :)

В общем вот такие у меня наполеоновские задумки...

2vintich: Нет, знать что на развилке повернуть направо - это не требует знать координат развилки и не требует знать координаты обоих населенных пунктов, да и незачем они человеку.


KAI писал(а):
Приводить куда эту картинку без синусов? На экран? А зачем она там?

Да почему на экран то? в массив, а из него придётся брать данные для какой то логики, и, например, решать на какой угол повернуть.

Для какой такой логики? К координатам применим любое комформное преобразование одной из пар координат применять и вот так всё будем хранить, тоже же алгоритмы какие-нибудь можно будет применять? Смысл то какой именно эту с.к. выбирать?
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Сообщение arabesc » 30 июн 2005, 00:06

=DeaD=
Для себя в этом обсуждении так и не нашёл ответа - зачем понадобилось делать карту в полном 3D?
Мне кажется, разумнее начать с бинарной 2D карты или чуть более продвинутого варианта, где каждой ячейке мира присваивается вес проходимости. Это дало бы возможность роботу более или менее уверенно перемещаться в течении одной сессии работы.
Задачу распознования 3D объектов наверное стоит выделить как отдельную. Пользуясь относительно простой и надёжной 2D картой, робот сможет лучше перемещаться, чтобы рассмотреть объект интереса.
Что касается ориентирования на местности в момент включения. Есть идея активно использовать (но, конечно, не ограничиваться) информацию об освещении. В светлое время суток мощный поток света идёт от окон, в тёмное - от приборов освещения. Всегда в помещнии найдутся участки освещённые лучше или хуже остальных большую часть времени. Встроенные часы должны помочь роботу определиться с приоритетом поиска световых меток. Конечно, маячки получаются достаточно грубые и размытые, но это уже что-то, по этой информации можно строить предположения что и где находится. Есть, правда, у этого подхода минус, с которым не всегда легко справиться даже людям - большие зеркала :)
arabesc
 
Сообщения: 6
Зарегистрирован: 26 июн 2005, 20:46
Откуда: Москва

Сообщение =DeaD= » 30 июн 2005, 08:29

arabesc писал(а):=DeaD=
Для себя в этом обсуждении так и не нашёл ответа - зачем понадобилось делать карту в полном 3D?

А где сказано про полное 3D? Я вроде про векторные 2D карты говорил.

arabesc писал(а):Мне кажется, разумнее начать с бинарной 2D карты или чуть более продвинутого варианта, где каждой ячейке мира присваивается вес проходимости. Это дало бы возможность роботу более или менее уверенно перемещаться в течении одной сессии работы.

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

arabesc писал(а):Есть идея активно использовать (но, конечно, не ограничиваться) информацию об освещении. В светлое время суток мощный поток света идёт от окон, в тёмное - от приборов освещения. Всегда в помещнии найдутся участки освещённые лучше или хуже остальных большую часть времени. Встроенные часы должны помочь роботу определиться с приоритетом поиска световых меток. Конечно, маячки получаются достаточно грубые и размытые, но это уже что-то, по этой информации можно строить предположения что и где находится. Есть, правда, у этого подхода минус, с которым не всегда легко справиться даже людям - большие зеркала :)

Кстати, надо подумать над использованием этого подхода, что-то в этом есть :)
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Сообщение arabesc » 30 июн 2005, 23:36

=DeaD= писал(а):А где сказано про полное 3D? Я вроде про векторные 2D карты говорил.
=DeaD= писал(а):1. Обязательно (уже есть) вариант 3-х мерного массива из 0 и 1;

После этого я не заметил ссылок на переход к другому формату данных.

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

По моему мнению, логичнее исходить из требований задачи, а не из абстрактных желаний. Если задача вычислительно тяжела, то и решать её нужно на соответствующем доступном в данное время оборудовании.
Думаю, сейчас полностью переложить на мобильные мозги относительно небольшого робота можно только сбор информации от датчиков и передача их в стационарный мозговой центр, а так же контроль выполнения пришедших обратно распоряжений. Т.е. всё достаточно тупые и легко алгоритмизуемые задачи. А то, где надо "подумать" должно исполняться на мощном, а потому скорее всего большом, тяжёлом и прожорливом компьютере.
Кроме того, что понимать под PC и желанием его не использовать? Всё строить на микроконтроллерах? Сомневаюсь, что этот путь имеет какую либо ценность в глобальном плане. Мне кажется имеет смысл шире использовать устройства вроде этого или этого.

=DeaD= писал(а):Кстати, надо подумать над использованием этого подхода, что-то в этом есть :)

Тут даже две идеи. Первая - выделять и отслеживать именно источники света, а остальную информацию максимально отсеивать. А вторая - работать с картой диффузного освещения среды, т.е. низкочастотным (на вид, сильно размытым) вариантом изображения. Такие изображения должны хорошо сжиматься, например, wavelet'ами. А их результирующая иерархическая структура поможет организовать быстрый поиск по базе нужных фрагментов и их сравнение. Ещё, сюда же, наверное, можно прикрутить модный нынче в компьютерной графике базис сферических гармоник...
arabesc
 
Сообщения: 6
Зарегистрирован: 26 июн 2005, 20:46
Откуда: Москва

Сообщение =DeaD= » 01 июл 2005, 07:05

arabesc писал(а):
=DeaD= писал(а):А где сказано про полное 3D? Я вроде про векторные 2D карты говорил.
=DeaD= писал(а):1. Обязательно (уже есть) вариант 3-х мерного массива из 0 и 1;

После этого я не заметил ссылок на переход к другому формату данных.

Да. Это пожалуй я уже наврал... нельзя обсуждать одну и ту же тему на 2х форумах, иногда забываю на втором форуме вводные расширять :) в общем начиная с моей идеи про маяки я говорю про 2D (косвенно следует из упоминания 2х углов в маяках).

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

По моему мнению, логичнее исходить из требований задачи, а не из абстрактных желаний. Если задача вычислительно тяжела, то и решать её нужно на соответствующем доступном в данное время оборудовании.
Думаю, сейчас полностью переложить на мобильные мозги относительно небольшого робота можно только сбор информации от датчиков и передача их в стационарный мозговой центр, а так же контроль выполнения пришедших обратно распоряжений. Т.е. всё достаточно тупые и легко алгоритмизуемые задачи. А то, где надо "подумать" должно исполняться на мощном, а потому скорее всего большом, тяжёлом и прожорливом компьютере.
Кроме того, что понимать под PC и желанием его не использовать? Всё строить на микроконтроллерах? Сомневаюсь, что этот путь имеет какую либо ценность в глобальном плане. Мне кажется имеет смысл шире использовать устройства вроде этого или этого.

Абсолютно согласен, однако ввиду того что я думаю долгое время заниматься этой темой, да и тема не на 5 минут, я пытаюсь привлечь к участию большее количество народу, даже того, чьи цели изначально расходятся с моими, вдруг через них "правильные" придут :)

arabesc писал(а):
=DeaD= писал(а):Кстати, надо подумать над использованием этого подхода, что-то в этом есть :)

Тут даже две идеи. Первая - выделять и отслеживать именно источники света, а остальную информацию максимально отсеивать. А вторая - работать с картой диффузного освещения среды, т.е. низкочастотным (на вид, сильно размытым) вариантом изображения. Такие изображения должны хорошо сжиматься, например, wavelet'ами. А их результирующая иерархическая структура поможет организовать быстрый поиск по базе нужных фрагментов и их сравнение. Ещё, сюда же, наверное, можно прикрутить модный нынче в компьютерной графике базис сферических гармоник...

Что-то я как-то ущербным себя чувствую, сегодня вечером после работы обшарю инет на эту тему, вдруг чего пойму... хотя что такое вейвлеты и преобразование фурье приблизительно в курсе и даже задачки решал в универе :)
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Сообщение GraphD » 01 окт 2005, 02:46

Есть еще такая идея:
1. Конфигурация робота задана - высота и ориентация стереопары относительно корпуса робота.
2. Нужно найти на изображении ПОЛ. Он по-определению плоский и ровный в ближнем окружении робота, а значит координаты точек пола легко аналитически вычисляются. Задача - найти на изображениях точки пола с совпадающими аналитическими координатами.

Зная где пол, можно на его поверхности искать возможные пути движения.

ИМХО
GraphD
 
Сообщения: 157
Зарегистрирован: 01 окт 2005, 00:56
Откуда: С.-Петербург

Сообщение =DeaD= » 01 окт 2005, 07:05

GraphD писал(а):Есть еще такая идея:
1. Конфигурация робота задана - высота и ориентация стереопары относительно корпуса робота.
2. Нужно найти на изображении ПОЛ. Он по-определению плоский и ровный в ближнем окружении робота, а значит координаты точек пола легко аналитически вычисляются. Задача - найти на изображениях точки пола с совпадающими аналитическими координатами.

Зная где пол, можно на его поверхности искать возможные пути движения.

ИМХО

Если у вас на полу нет персидского ковра, то как раз нахождение пола на рисунке - это еще та задача... :) проверено на стереопарах :)
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Сообщение SSG » 01 мар 2007, 15:10

И чего я везде опаздываю? Может я - тормоз?
Тема весьма интересная и сложная. Есть предложение разбить поставленнюу задачу на более простые подзадачи и частные случаи (здаесь уже всякие идеи выскаывались). Распыляться ни к чему. Я бы пытался экспериментировать по описанным ниже этапам (если бы у меня было СТОЛЬКО времени) с обязательными полевыми испытаниями или моделированием на ПК.
1. ОРИЕНТАЦИЯ ПО ДВУМЕРНОЙ КАРТЕ
1.1. Вначале нужно выделить случай с уверенным определением своего местоположения после просыпания (или выдвижения гипотезы с последующей проверкой и коррекцией в процессе движения) на известной двумерной карте, которая пусть и представлена в виде матрицы конечного размера и состоит из нулей (проход свободен) и единиц (-фигушки). И никаких маяков! В качестве решения принимается описание необходимых "органов чувств" и алгоритма анализа получаемой от них информации.
1.2. Научить прокладывать маршрут от текущего положения до точки (места) с заданными координатами.
1.3. Научить корректировать маршрут при натыкании на препятствия, не указанные на карте.
Решение задачи 1 целиком будет уже неплохим достижением для домашнего робота.
2.ОРИЕНТАЦИЯ В ДВУМЕРНОМ НЕИЗВЕСТНОМ ПРОСТРАНСТВЕ
В первую очередь нужно определиться со смыслом болтания робота в таком пространстве и вопросом морали его бессердечных создателей-эксплуататоров, забросивших несчастного в такое двумерное или трехмерное пространство  :) . Основной задачей в данном случае видится перемещение из текущего местонахождения в точку с указанными координатами. При этом указывая вторую точку мы уже выбираем начало отсчета и систему координат. Задача непростая. Для решения, если хочется не случайн туда попасть  :) , необходимо будет запоминать исследуемую местность и при малых перемещениях делать коррекцию карты. При попадании в тупик нужно прокладывать новый маршрут по уже изветному учатку карты к неизведанному и исследовать его на предмет наличия пути и т.д. Если проход есть - он будет обнаружен.
Ой!...Понесло... Короче - если кто-нибудь вернется в тему - будем и дальше беседовать. А то такое чувство, что сам с собой говоришь... :(
Аватара пользователя
SSG
 
Сообщения: 1058
Зарегистрирован: 15 янв 2007, 19:23
Откуда: Беларусь, Барановичи
прог. языки: С для МК, Delphi для ПК

Сообщение D-M » 01 мар 2007, 16:35

для моделирования робота в 2Д пространстве можно использовать программу RoboMap (искать на Железном Феликсе)
Аватара пользователя
D-M
 
Сообщения: 486
Зарегистрирован: 28 мар 2006, 17:28
Откуда: Пенза

Сообщение Myp » 01 мар 2007, 18:54

а толку кудато итти если своих координат не знаешь....

перво наперво это надо научиться определять своё положение в пространстве

хотябы попытаться увидеть 4 стены
или посмотреть на потолок и попытаться найти линию соединения потолка со стеной, определить геометрию помещения
имхо смотреть на потолок наиболее оптимально в квартирах
там полюбому в центре есть какойто обьект(лампа люстра плафон) и не стоит всяких тапочек и табуреток
а граница потолка и стены практически во всех квартирах легко распознаваема

и вот тогда можно высчитывать всякие карты и тд

насчёт блуждания в готовой карте...
в нете есть открытые алгоритмы определения направления движения на карте не просто из 0 и 1 а из градаций(типа пройти можно но лучше обойти)



короче проблемы ориентирования и перемещения нет
проблемма именно в ЗРЕНИИ
поди распознай что там не просто куча дверок ручек и графического мусора а например сервант...
так что всё упираеться в компьютерное зрение =/
у нас в городе в институте на кафедре математики без проблем справились бы с распознаванием лиц, потолка и тп, но кафедра работает за деньги и на иностранные фирмы
естественно никаких алгоритмов не допросишься
Аватара пользователя
Myp
скрытый хозяин вселенной :)
 
Сообщения: 18018
Зарегистрирован: 18 сен 2006, 12:26
Откуда: Тверь по прозвищу Дверь
прог. языки: псевдокод =) сила в алгоритме!
ФИО: глубокоуважаемый Фёдор Анатольевич

Сообщение =DeaD= » 01 мар 2007, 23:41

SSG писал(а):И чего я везде опаздываю? Может я - тормоз?
Тема весьма интересная и сложная. Есть предложение разбить поставленнюу задачу на более простые подзадачи и частные случаи (здаесь уже всякие идеи выскаывались). Распыляться ни к чему. Я бы пытался экспериментировать по описанным ниже этапам (если бы у меня было СТОЛЬКО времени) с обязательными полевыми испытаниями или моделированием на ПК.
1. ОРИЕНТАЦИЯ ПО ДВУМЕРНОЙ КАРТЕ
1.1. Вначале нужно выделить случай с уверенным определением своего местоположения после просыпания (или выдвижения гипотезы с последующей проверкой и коррекцией в процессе движения) на известной двумерной карте, которая пусть и представлена в виде матрицы конечного размера и состоит из нулей (проход свободен) и единиц (-фигушки). И никаких маяков! В качестве решения принимается описание необходимых "органов чувств" и алгоритма анализа получаемой от них информации.
1.2. Научить прокладывать маршрут от текущего положения до точки (места) с заданными координатами.
1.3. Научить корректировать маршрут при натыкании на препятствия, не указанные на карте.
Решение задачи 1 целиком будет уже неплохим достижением для домашнего робота.
2.ОРИЕНТАЦИЯ В ДВУМЕРНОМ НЕИЗВЕСТНОМ ПРОСТРАНСТВЕ
В первую очередь нужно определиться со смыслом болтания робота в таком пространстве и вопросом морали его бессердечных создателей-эксплуататоров, забросивших несчастного в такое двумерное или трехмерное пространство  :) . Основной задачей в данном случае видится перемещение из текущего местонахождения в точку с указанными координатами. При этом указывая вторую точку мы уже выбираем начало отсчета и систему координат. Задача непростая. Для решения, если хочется не случайн туда попасть  :) , необходимо будет запоминать исследуемую местность и при малых перемещениях делать коррекцию карты. При попадании в тупик нужно прокладывать новый маршрут по уже изветному учатку карты к неизведанному и исследовать его на предмет наличия пути и т.д. Если проход есть - он будет обнаружен.
Ой!...Понесло... Короче - если кто-нибудь вернется в тему - будем и дальше беседовать. А то такое чувство, что сам с собой говоришь... :(


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

Поэтому сначала попробуйте решить на маяках - и так хватит задачи обхода ненанесенных на карту препятствий.

PS: По поводу карты из 0 и 1 - это вам не Pacman, вы осознаете размеры или точность карты и как вообще потом с этим работать? В этом смысле если карта заранее готова, то 100% лучше векторную брать.
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Сообщение =DeaD= » 01 мар 2007, 23:42

D-M писал(а):для моделирования робота в 2Д пространстве можно использовать программу RoboMap (искать на Железном Феликсе)

И чего же там такого можно намоделировать? :) Pacman? :)
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Сообщение =DeaD= » 01 мар 2007, 23:45

Myp писал(а):а толку кудато итти если своих координат не знаешь....
перво наперво это надо научиться определять своё положение в пространстве

Правильная мысль :)

Myp писал(а):хотябы попытаться увидеть 4 стены
или посмотреть на потолок и попытаться найти линию соединения потолка со стеной, определить геометрию помещения
имхо смотреть на потолок наиболее оптимально в квартирах
там полюбому в центре есть какойто обьект(лампа люстра плафон) и не стоит всяких тапочек и табуреток
а граница потолка и стены практически во всех квартирах легко распознаваема

Черезчур много частностей и условностей.

Myp писал(а):насчёт блуждания в готовой карте...
в нете есть открытые алгоритмы определения направления движения на карте не просто из 0 и 1 а из градаций(типа пройти можно но лучше обойти)

И снова про растровые карты - прикиньте их точность и размер.


Myp писал(а):короче проблемы ориентирования и перемещения нет
проблемма именно в ЗРЕНИИ

Проблема перемещения есть и неслабая, хотя и зрение тоже не малая задачка.

Myp писал(а):у нас в городе в институте на кафедре математики без проблем справились бы с распознаванием лиц, потолка и тп, но кафедра работает за деньги и на иностранные фирмы
естественно никаких алгоритмов не допросишься

Распознавание лиц и так умеют все - куча примеров бесплатных в инете лежит, потолок распознавать тривиально - смотришь наверх и продолжаешь во все стороны пока не стукнешься в "жесткий переход цвета" - это и есть границы потолка :)
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Сообщение Myp » 02 мар 2007, 00:34

И снова про растровые карты - прикиньте их точность и размер.

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

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

привязываться к карте записанной в памяти робота это вобще детсад
нужна система ориентирования реального времени с зачатком интеллекта, распознавание объектов

я считаю что если можно создать алгоритм осознанного определения объектов то вопрос ориентирования в этих объектах будет решаем

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

закройте глаза и пройдите из комнаты в комнату
может вы и расшибёте нос или мебель уроните но вы пройдёте полюбому, так как у вас есть сенсоры столкновения и ПРИМЕРНОЕ понимание куда  надо повернуть если что случиться.
тоесть знание что другая комната не дальше чем через 20 шагов и не ближе чем через 7, и повернуть надо по дороге минимум один раз на 90 градусов.
простейшие устойчивые паттерны которые у вас уже есть, плюс то чему вы научитесь пока ходите с закрытыми глазами(быстро не идти, если стена попробовать рядом)

короче обычные математические алгоритмы не рулят в неоределённой и меняющейся среде
Аватара пользователя
Myp
скрытый хозяин вселенной :)
 
Сообщения: 18018
Зарегистрирован: 18 сен 2006, 12:26
Откуда: Тверь по прозвищу Дверь
прог. языки: псевдокод =) сила в алгоритме!
ФИО: глубокоуважаемый Фёдор Анатольевич

Пред.След.

Вернуться в Алгоритмы

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

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

cron