LINUX.ORG.RU

[алгоритм] маппинг одной координатной системы в другую

 


0

1

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

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

Существует ли такой алгоритм, которым можно было бы транслировать координаты кривых с изображения в инструкции для поворота роторов руки? Вроде, повернуть на столько-то градусов с такой-то скоростью.


Ответ на: комментарий от anonymous

Круто, логика на уровне сайнс фикшена 70х.

mashina ★★★★★
()

Если у вас азимутальный мотор вращает платформу, на которой закреплен альт-мотор, вращающий первый сегмент манипулятора, а на другом конце первого сегмента расположен третий альт-мотор, вращающий второй сегмент. В итоге, зная длины сегментов, можно однозначно перевести координаты {x,y,z} в углы поворота движков.

По координатам {x,y} определяем азимут (угол поворота первого привода), по r - длине радиус-вектора точки {x,y,z} - угол поворота третьего привода, по r и z - высоту (угол поворота второго привода).

А вот если у вас какая-нибудь конструкция, допускающая неоднозначные решения, задачка сильно усложнится...

Eddy_Em ☆☆☆☆☆
()
Ответ на: MusicBox от ilyaq1

вот так зайдешь а там ж...

psv1967 ★★★★★
()
Ответ на: комментарий от xio

А причем тут линукс, если там на ноуте винда XP?

anonymous
()

То ТС: извольте почитать мастодонтов

Фу, Гонсалез, Ли - Робототехника, МИР, 1989
Шахинпур - Курс робототехники, МИР, 1990
Там вам будут формулы и алгоритмы[br ЗЫ: когда у меня читали на 3 курсе робототехнику, лабы по прямой и обратной задаче кинематики робота и определению усилий в сочленениях решались в скилабе ну не больше чем в 100-150 строчек (с красотой и сбором повторяющихся вычислений в функции). Как уже отметили, там были операции с матрицами преобразования.
В вашем случае решать надо обратную задачу кинематики - по закону движения схвата определять изменения линейных или угловых перемещений в приводах звеньев. ЕМНИП использовался (да, да, анон, предлагавший отчислить из универа предлагающих численные методы) метод градиентного спуска.
Если вы почитаете книжки и не найдёте решение, я таки могу порыться в бэкапах и найти свои лабы за 3 курс по роботехнике. Всё равно у меня на 5 курсе заново её читать будут.

adriano32 ★★★
()

Зачем для рисования на горизонтальной плоскости используется такая рука робота? Плоттерам хватает двумерного мира «вперёд-назад и вправо-влево» для рисования на двумерной плоскости.

anonymous
()
Ответ на: комментарий от adriano32

> ЕМНИП использовался (да, да, анон, предлагавший отчислить из универа предлагающих численные методы) метод градиентного спуска.

Ты уравнения вида tg x = const предлагаешь решать численными методами? Молодец.

anonymous
()
Ответ на: комментарий от anonymous

На самом деле, никакой разницы нет.
Давно разработанный матаппарат в указанной выше литературе даёт общий подход как для вращательных так и для поступательных (и других) сочленений.
ТС не выложил же ТЗ, которое перед ним, может ему такое задание поставили, сделать робота с тремя вращательными сочленениями.
Так у него три движка вращают звенья, а как вы предложили, два будут тягать рейки в X-Y, а третий рейкой же регулировать расстояние от рабочей от поверхности в Z.
На кафедрах автоматизации технических вузов разработка робота - любииимый боооян, обычно ни одним из студентов/дипломников/аспирантов не доводимый до ума.

adriano32 ★★★
()
Ответ на: комментарий от pathfinder

> Налицо избыточность степеней свободы. Как они будут исключаться из решаемой задачи?

Убираем просто три координаты руки и все. Например - отключая три произвольно взятых мотора.

anonymous
()
Ответ на: комментарий от adriano32

> Давно разработанный матаппарат в указанной выше литературе даёт общий подход как для вращательных так и для поступательных (и других) сочленений.

Это понятно, что есть общие подходы, но в задаче ТС подход не общий, в задаче ТС надо посчитать углы треугольника по трем известным сторонам. Применять для этого какие-то ЧМ будет только полный кретин.

anonymous
()

Спасибо, друзья! Это была не совсем лаба, но командный проект, по условиям которого нужно было смастерить робота из примитивных компонент, который бы рисовал скетч прежде просмотренного через вебкамеру и обработанного соответствующим образом рисунка ли, фотографии ли, в зависимости от уровня сложности.

Дело было в достаточно продвинутом в инженерном плане университете POSTECH города Поханг, Южная Корея, в рамках зимней школы по Computational Neuroscience, т.е. изначально фокуса на инженерных задачах не было. Как я там с примитивной математикой оказался — well, до сей поры она мне не очень требовалась и я ее забыл по факту, хотя само мероприятие оказалось сильным стимулом для того, чтобы мне захотелось повторить элементарные вещи хотя бы на уровне первых курсов (чем сейчас и занимаюсь). Как дело доходит до реальных задач, так без соответствующих практических навыков никуда-с.

Ребята там были, в том числе, и очень сильные из других южнокорейских ВУЗов (KAIST, KIST, если кто знает — это заведения уровня MIT), одна команда, состоящая из всяких аэро-космических инженеров и тэпэ уж не знаю с каких курсов, собрала замечательного робота уже на второй день на основе продвинутых алгоритмов навроде Self-organizing Maps, написала матлаб-код ну и потом ходила курила. Моя же команда зафейлила на этапе интеграции алгоритмов и организации кода, т.е. основные вещи у нас были сделаны, но что-то не сошлось в конце.

Так выглядел лучший проект: http://www.youtube.com/watch?v=BJprFHYs7JE Вот и сами они: http://aipainter.nubimaru.com/

«Такие дела».

xio
() автор топика
Ответ на: комментарий от anonymous

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

olegsov
()
Ответ на: комментарий от xio

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

Это геометрия, средняя школа, 9-10 классы

anonymous
()
Ответ на: комментарий от olegsov

> а если условия задачи меняются?

А если нет? Есть задача, есть условия, для этих входных данных получаем простое решение. Есть вопросы?

Если есть, то:

Чем сложнее решение, тем больше время на 1) разработку 2) отладку 3) сложнее поддержка

anonymous
()
Ответ на: комментарий от xio

написала матлаб-код ну и потом ходила курила.

наглядный пример, когда можно взять высокоуровневый язык и сделать всё в несколько раз быстрее, не потеряв в эффективности :) «петоно» и другие фобы негодуют...

olegsov
()
Ответ на: комментарий от olegsov

Yup

Только негодуют Цэ-пуристы, я думаю, а питонисты поддерживают вполне.

xio
() автор топика
Ответ на: комментарий от olegsov

А, ну все правильно, «фобы» же, не «филы».

xio
() автор топика
Ответ на: комментарий от xio

Это был намёк на то, что нужно начинать читать :) А заканчивать нужно криволинейными координатами и, к примеру, рассмотрением динамики точки в таких системах (гугл гамильтониан/метрический тензор) - вот это уже 2-ой курс универа.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.