перемещение виртуального сочлененного объекта в виртуальном пространстве с предотвращением столкновений сочлененного объекта с элементами окружающего пространства
Классы МПК: | G06T17/40 манипулирование трехмерными (3D) изображениями, например с использованием CAD установок графического автоматического проектирования |
Автор(ы): | МЭЙ Бруно (FR), РАМСТЕЙН Эдуард (FR), ШЕДМЭ Патрик (FR) |
Патентообладатель(и): | СНЕКМА МОТОРС (FR) |
Приоритеты: |
подача заявки:
2004-10-25 публикация патента:
20.10.2007 |
Изобретение относится к области имитации перемещения виртуального сочлененного объекта в виртуальном пространстве. Техническим результатом является повышение быстродействия. В способе вычисляют расстояние взаимодействия между сочлененным объектом (10) и элементом окружающего его пространства (13), определяют по указанному расстоянию взаимодействие первой точки (Р1), принадлежащей одному из сочлененных элементов (11) сочлененного объекта (10), и второй точки (Р2), принадлежащей элементу окружающего его пространства (13), определяют по первой и второй точкам (P1, P2) уникального вектора (V) отведения отведение сочлененного объекта (10) от элемента (13d) окружающего его пространства (13) при помощи движения, определенного в соответствии с единственным вектором (V) отведения и воздействующего на глобальное положение и/или глобальную ориентацию, и/или степени свободы сочлененного объекта для предотвращения столкновения сочлененного объекта (10) с элементом (13d) окружающего пространства. 13 з.п. ф-лы, 11 ил.
Формула изобретения
1. Способ перемещения виртуального сочлененного объекта (10) в виртуальном пространстве (13) последовательностью элементарных перемещений, причем сочлененный объект (10) определен в указанном пространстве (13) глобальным положением, глобальной ориентацией и углами сочленений, определяющими положение совокупности сочлененных элементов (11), составляющих указанный сочлененный объект в соответствии со степенями свободы, при этом способ включает следующие этапы:
вычисляют расстояние взаимодействия между сочлененным объектом (10) и элементами окружающего его пространства (13);
определяют по расстоянию взаимодействия первую точку (Р1), принадлежащую одному из элементов (11) сочлененного объекта (10), и вторую точку (Р2), принадлежащую элементу окружающего его пространства (13), таким образом, что расстояние взаимодействия соответствует глубине проникновения сочлененного объекта (10) и элемента окружающего его пространства (13) или минимальному расстоянию между сочлененным объектом (10) и элементом окружающего его пространства (13);
по результатам указанного определения первой и второй точек (P1, P2) находят единственный вектор ( ) отведения, причем при расстоянии взаимодействия, соответствующем глубине проникновения, первая и вторая точки (P1, P2) образуют начальную и конечную точки указанного вектора ( ) соответственно, а при расстоянии взаимодействия, соответствующему минимальному расстоянию, первая и вторая точки (Р1, Р2) образуют конечную и начальную точки указанного вектора ( ) соответственно;
отводят сочлененный объект (10) от элемента окружающего его пространства (13) с помощью движения, определенного в соответствии с единственным вектором ( ) отведения, причем движение отведения осуществляют движением переноса, воздействующим на глобальное положение сочлененного объекта, и/или движением поворота, воздействующим на глобальную ориентацию сочлененного объекта, и/или движением поворота сочленений, воздействующим на каждое сочленение, принадлежащее последовательности сочленений, предшествующей элементу сочлененного объекта, которому принадлежит указанная первая точка.
2. Способ по п.1, отличающийся тем, что дополнительно включает этап определения наличия столкновения сочлененного объекта (10) с элементами окружающего его пространства (13), проводимый после каждого элементарного движения в указанной последовательности элементарных движений.
3. Способ по п.1, отличающийся тем, что расстояние взаимодействия соответствует глубине проникновения таким образом, что вектор ( ) отведения равен разности координат второй точки (P2) и первой точки (Р1), причем указанная глубина проникновения обеспечивает возможность перемещения сочлененного объекта (10) с ограниченными и контролируемыми столкновениями с элементами окружающего его пространства (13).
4. Способ по п.1, отличающийся тем, что расстояние взаимодействия соответствует минимальному расстоянию таким образом, что вектор ( ) отведения равен разности координат первой точки (Р1) и второй точки (P2), причем указанное минимальное расстояние обеспечивает возможность перемещения сочлененного объекта (10) без столкновений с элементами окружающего его пространства (13).
5. Способ по п.1, отличающийся тем, что дополнительно включает этап отмены последнего элементарного движения в указанной последовательности элементарных движений при наличии столкновения сочлененного объекта (10) с элементом окружающего его пространства (13).
6. Способ по п.1, отличающийся тем, что движение переноса пропорционально компонентам вектора ( ) отведения, воздействующего на глобальное положение сочлененного объекта (10).
7. Способ по п.1, отличающийся тем, что движение поворота, воздействующее на глобальную ориентацию сочлененного объекта (10), включает следующие этапы:
определяют первый глобальный вектор ( 1g) между центром (G) тяжести сочлененного объекта (10) и начальной точкой вектора ( )отведения;
определяют второй глобальный вектор ( 2g) между центром (G) тяжести сочлененного объекта (10) и конечной точкой вектора ( ) отведения;
вычисляют угол ( g) глобального поворота, необходимый для совмещения первого глобального вектора со вторым глобальным вектором;
вычисляют один или несколько элементарных углов глобального поворота путем разложения угла глобального поворота по одной или нескольким осям, определяющим глобальную ориентацию сочлененного объекта (10);
поворачивают сочлененный объект (10) на один или несколько углов, пропорциональных одному или нескольким элементарным углам глобального поворота.
8. Способ по п.1, отличающийся тем, что движение поворота сочленения, воздействующее на данное сочленение (12а) каждого из сочленений, принадлежащих к последовательности сочленений, предшествующих элементу сочлененного объекта, которому принадлежит указанная первая точка, включает следующие этапы:
определяют первый локальный вектор (V1l) между центром указанного сочленения (12а) и начальной точкой вектора (V) отведения;
определяют второй локальный вектор (V2l) между центром указанного сочленения (12а) и конечной точкой вектора (V) отведения;
вычисляют угол ( l) локального поворота, необходимый для совмещения первого локального вектора со вторым локальным вектором;
вычисляют один или несколько элементарных углов поворота сочленения путем разложения угла локального поворота по одной или нескольким осям, определяющим одну или несколько степеней свободы, соответствующих указанному сочленению;
поворачивают сочлененный элемент (11) в указанном сочленении на один или несколько углов, пропорциональных одному или нескольким элементарным углам сочленения.
9. Способ по п.7, отличающийся тем, что угол ( g) глобального поворота вычисляют по глобальному векторному произведению первого и второго глобальных векторов, а угол ( l) локального поворота вычисляют по локальному векторному произведению первого и второго локальных векторов.
10. Способ по п.7, отличающийся тем, что один или несколько элементарных углов глобального поворота вычисляют по одному или нескольким скалярным произведениям глобального векторного произведения и одной или нескольких осей степеней глобальной ориентации, а один или несколько элементарных углов поворота сочленения вычисляют по одному или нескольким скалярным произведениям локального векторного произведения и одной или нескольких осей степеней свободы данного сочленения.
11. Способ по п.1, отличающийся тем, что перемещение сочлененного объекта (10) осуществляют с помощью фактора (22, 32) притяжения, воздействующего на глобальное положение и/или глобальную ориентацию, и/или степени свободы сочлененного объекта.
12. Способ по п.1, отличающийся тем, что отведение сочлененного объекта от элементов окружающего его пространства осуществляют с помощью фактора (21, 31) скольжения, воздействующего на глобальное положение и/или глобальную ориентацию, и/или степени свободы сочлененного объекта.
13. Способ по п.1, отличающийся тем, что дополнительно включает этап перемещения сочлененного объекта (10) в режиме реального времени, осуществляемого оператором с помощью управляющего фактора (23, 33), воздействующего на положение и/или ориентацию, и/или степени свободы сочлененного объекта.
14. Способ по любому из пп.1-14, отличающийся тем, что сочлененный объект (10) представляет собой виртуальный манекен (10а), перемещающийся по полу виртуального пространства, причем данный манекен определен своим положением на указанном виртуальном полу, ориентацией относительно вертикальной оси, перпендикулярной указанному полу и проходящей через центр тяжести манекена, и углами сочленений, определяющими совокупность его сочлененных элементов.
Описание изобретения к патенту
Область техники, к которой относится изобретение
Настоящее изобретение относится к области имитации перемещения виртуального сочлененного объекта в виртуальном пространстве. Изобретение касается, в частности, предотвращения столкновений сочлененного объекта с элементами окружающего его пространства.
Уровень техники
Моделирование в виртуальной реальности используется в настоящее время в различных отраслях, например в авиационной и космической отраслях промышленности. Например, цифровые модели часто используют для оценки взаимодействия между различными деталями.
Кроме того, моделирование может использоваться для имитации действий человека или робота в определенных условиях с целью наглядного представления, например, перемещений, которые должен совершить техник или робот для выполнения таких действий. Эта методика полезна для оценки и оптимизации доступности определенных элементов оборудования, например двигателя самолета, требующих регулярного осмотра и обслуживания.
Таким образом, моделирование с использованием виртуального сочлененного объекта позволяет контролировать степень доступности различных элементов конструкций уже на стадии их моделирования.
Виртуальный сочлененный объект представляет собой совокупность цифровых данных, определяющих кинематическую систему, характеризуемую сочлененными элементами, которым соответствует определенное количество степеней свободы.
Таким образом, в каждый момент виртуальный сочлененный объект может быть определен своим общим положением в метрическом пространстве и значениями степеней свободы своих сочленений (суставов). Эти данные, а также параметры, определяющие пространство, в котором находится виртуальный сочлененный объект, могут быть сохранены на носителе цифровых данных.
Известны применения виртуальных сочлененных объектов в приложениях такого рода.
Один из примеров такого применения приводится в статье Chedmail, Damay et Le Roy, озаглавленной «Réalité virtuelle, maquette numérique du produit, outils de distribution et partage de la conception» (Journées Priméca, La Plagne, 7-9 avril 1999).
В этой статье предлагается способ оценки легкости монтажа и демонтажа объектов в загроможденном пространстве при помощи модели перемещения двух виртуальных сочлененных рук в виртуальном пространстве.
Для предотвращения столкновений сочлененных рук с элементами окружающего пространства по методике, предложенной в указанной статье, используется вычисление градиента линии столкновения относительно степеней свободы сочлененных рук.
Для вычисления градиентов по методу конечных разностей необходимо осуществить многочисленные перемещения каждого сочленения сочлененных рук и рассчитать для каждого перемещения длину линии столкновения. Эта методика крайне медленна и требует больших затрат времени на вычисления.
Раскрытие изобретения
Задача, на решение которой направлено настоящее изобретение, заключается в устранении вышеописанных недостатков и в предложении способа, позволяющего имитировать перемещения или манипуляции сочлененного объекта с предотвращением его столкновений с элементами окружающего его пространства с ограничением времени расчетов.
Для решения поставленных задач предлагается способ перемещения виртуального сочлененного объекта в виртуальном пространстве последовательностью элементарных перемещений, причем сочлененный объект определен в данном пространстве глобальным положением, глобальной ориентацией и углами сочленений, определяющими положение совокупности сочлененных элементов, составляющих указанный сочлененный объект, в соответствии со степенями свободы. Способ по изобретению включает следующие этапы:
- вычисляют расстояние взаимодействия между сочлененным объектом и элементами окружающего его пространства;
- определяют по расстоянию взаимодействия первую точку, принадлежащую одному из элементов сочлененного объекта, и вторую точку, принадлежащую элементу окружающего его пространства, таким образом, что расстояние взаимодействия соответствует глубине проникновения сочлененного объекта и элемента окружающего его пространства или минимальному расстоянию между сочлененным объектом и элементом окружающего его пространства;
- по результатам указанного определения первой и второй точек находят единственный вектор отведения, причем при расстоянии взаимодействия, соответствующем глубине проникновения, первая и вторая точки образуют начальную и конечную точки указанного вектора соответственно, а при расстоянии взаимодействия, соответствующем минимальному расстоянию, первая и вторая точки образуют конечную и начальную точки указанного вектора соответственно;
- отводят сочлененный объект от элемента окружающего его пространства с помощью движения, определенного в соответствии с единственным вектором отведения, причем движение отведения осуществляют движением переноса, воздействующим на глобальное положение сочлененного объекта, и/или движением поворота, воздействующим на глобальную ориентацию сочлененного объекта, и/или движением поворота сочленений, воздействующим на каждое сочленение, принадлежащее последовательности сочленений, предшествующей элементу сочлененного объекта, которому принадлежит указанная первая точка.
Таким образом, способ по изобретению использует единственное вычисление расстояния взаимодействия для отведения сочлененного объекта от элементов окружающего его пространства. Это обеспечивает значительное упрощение процедуры и существенную экономию времени.
Способ по изобретению дополнительно включает этап определения наличия столкновения сочлененного объекта с элементами окружающего его пространства, проводимый после каждого элементарного движения в указанной последовательности элементарных движений.
По первому варианту осуществления изобретения расстояние взаимодействия соответствует глубине проникновения таким образом, что вектор отведения равен разности координат второй точки и первой точки. Данная глубина проникновения обеспечивает возможность перемещения сочлененного объекта с ограниченными и контролируемыми столкновениями с элементами окружающего его пространства.
По второму варианту осуществления изобретения расстояние взаимодействия соответствует минимальному расстоянию таким образом, что вектор отведения равен разности координат первой точки и второй точки. Данное минимальное расстояние обеспечивает возможность перемещения сочлененного объекта без столкновений с элементами окружающего его пространства.
Способ дополнительно содержит этап отмены последнего элементарного движения в указанной последовательности элементарных движений при наличии столкновения сочлененного объекта с элементом окружающего его пространства.
В оптимальном варианте указанные этапы определения первой и второй точек, определения вектора и отведения сочлененного объекта не осуществляют при отсутствии столкновения данного сочлененного объекта с элементами окружающего его пространства.
В соответствии с первой особенностью изобретения отведение сочлененного объекта от элемента окружающего его пространства может быть осуществлено движением переноса, пропорциональным компонентам вектора отведения и воздействующим на глобальное положение сочлененного объекта.
В соответствии со второй особенностью изобретения отведение сочлененного объекта от элемента окружающего его пространства осуществляют движением поворота, воздействующим на глобальную ориентацию сочлененного объекта, причем движение поворота включает следующие этапы:
- определение первого глобального вектора между центром тяжести сочлененного объекта и начальной точкой вектора отведения;
- определение второго глобального вектора между центром тяжести сочлененного объекта и конечной точкой вектора отведения;
- вычисление угла глобального поворота, необходимого для совмещения первого глобального вектора со вторым глобальным вектором;
- вычисление одного или нескольких элементарных углов глобального поворота путем разложения угла глобального поворота по одной или нескольким осям, определяющим глобальную ориентацию сочлененного объекта;
- поворот сочлененного объекта на один или несколько углов, пропорциональных одному или нескольким элементарным углам глобального поворота.
В соответствии с третьей особенностью изобретения отведение сочлененного объекта от элемента окружающего его пространства осуществляют движением поворота сочленения, воздействующим на каждое из сочленений, принадлежащих последовательности сочленений, предшествующих элементу сочлененного объекта, которому принадлежит указанная первая точка. При этом движение поворота сочленения, воздействующее на данное сочленение каждого из указанных сочленений, включает следующие этапы:
- определение первого локального вектора между центром указанного сочленения и начальной точкой вектора отведения;
- определение второго локального вектора между центром указанного сочленения и конечной точкой вектора отведения;
- вычисление угла локального поворота, необходимого для совмещения первого локального вектора со вторым локальным вектором;
- вычисление одного или нескольких элементарных углов поворота сочленения путем разложения угла локального поворота по одной или нескольким осям, определяющим одну или несколько степеней свободы, соответствующих указанному сочленению;
- поворот сочлененного элемента в указанном сочленении на один или несколько углов, пропорциональных одному или нескольким элементарным углам сочленения.
Угол глобального поворота может быть вычислен по глобальному векторному произведению первого и второго глобальных векторов, а угол локального поворота может быть вычислен по локальному векторному произведению первого и второго локальных векторов.
Один или несколько элементарных углов глобального поворота могут быть вычислены по одному или нескольким скалярным произведениям глобального векторного произведения и одной или нескольких осей степеней глобальной ориентации, а один или несколько элементарных углов поворота сочленения могут быть вычислены по одному или нескольким скалярным произведениям локального векторного произведения и одной или нескольких осей степеней свободы данного сочленения.
В соответствии с одним из вариантов осуществления изобретения перемещение сочлененного объекта может быть осуществлено с помощью фактора притяжения, воздействующего на глобальное положение и/или глобальную ориентацию, и/или степени свободы сочлененного объекта.
Отведение сочлененного объекта от элементов окружающего его пространства может быть осуществлено с помощью фактора скольжения, воздействующего на глобальное положение и/или глобальную ориентацию, и/или степени свободы сочлененного объекта.
В оптимальном варианте способ дополнительно включает этап перемещения сочлененного объекта в режиме реального времени, осуществляемого оператором с помощью управляющего фактора, воздействующего на положение и/или ориентацию, и/или степени свободы сочлененного объекта.
В соответствии с одной из особенностей изобретения сочлененный объект может представлять собой виртуальный манекен, перемещающийся по полу виртуального пространства. Данный манекен определяется своим положением на виртуальном полу, ориентацией относительно вертикальной оси, перпендикулярной полу и проходящей через центр тяжести манекена, и углами сочленении, определяющими совокупность его сочлененных элементов.
Краткое описание чертежей
Другие особенности и преимущества способа по изобретению станут ясны из нижеследующего подробного описания, приводимого без наложения каких-либо ограничений со ссылками на прилагаемые чертежи. На чертежах:
- фиг.1 изображает в перспективе аппаратные средства, служащие для осуществления системы или способа по изобретению;
- фиг.2А крайне схематично иллюстрирует виртуальный сочлененный объект, определенный согласно изобретению в метрическом пространстве;
- фиг.2В крайне схематично иллюстрирует виртуальный манекен, определенный согласно изобретению в метрическом пространстве;
- фиг.3А крайне схематично иллюстрирует вектор отведения, определенный согласно изобретению в режиме минимального расстояния;
- фиг.3В крайне схематично иллюстрирует вектор отведения, определенный согласно изобретению в режиме глубины проникновения;
- фиг.4 крайне схематично иллюстрирует движение отведения, воздействующее согласно изобретению на глобальное положение сочлененного объекта;
- фиг.5 крайне схематично иллюстрирует движение отведения согласно изобретению, воздействующее на глобальную ориентацию сочлененного объекта;
- фиг.6 крайне схематично иллюстрирует движение отведения, воздействующее согласно изобретению на одно конкретное сочленение сочлененного объекта;
- фиг.7А представляет собой блок-схему, иллюстрирующую основные этапы перемещения сочлененного объекта по изобретению;
- фиг.7В представляет собой модификацию фиг.7А;
- фиг.8 крайне схематично иллюстрирует архитектуру многофакторной системы, используемой для перемещения сочлененного объекта согласно изобретению.
Осуществление изобретения
На фиг.1 изображена система, которая может быть использована для моделирования перемещений сочлененного объекта. Эта система содержит рабочую станцию (или компьютер) 1, обладающую (обладающий) хорошими графическими характеристиками и используемую (используемый) для исполнения компьютерной программы, разработанной для осуществления способа по изобретению.
Компьютер 1 содержит обычные для устройств такого типа аппаратные средства. Более конкретно, компьютер содержит центральный блок 2, выполняющий последовательности команд программного обеспечения, соответствующего способу по изобретению, центральное запоминающее устройство 3, сохраняющее данные исполняемых программ, носители цифровых данных (жесткий диск, дисковод 4 для компакт-дисков, дисковод для гибких дисков и т.д.), обеспечивающие длительное хранение данных и программного обеспечения, периферийные устройства ввода (клавиатуру 5, мышь 6 типа «2D» или «3D», джойстик и т.д.). В состав компьютера входят также периферийные устройства вывода (экран 7, стереоскопические шлемы или очки и т.д.), обеспечивающие отображение перемещений сочлененного объекта.
Разумеется, для увеличения вычислительных мощностей моделирование по изобретению может осуществляться на нескольких рабочих станциях, работающих параллельно.
На фиг.2А крайне схематично изображен виртуальный сочлененный объект 10, определенный древовидной структурой сочленений. Таким образом, сочлененный объект 10 определен совокупностью «пассивных объектов», т.е. сочлененных элементов 11, соединенных между собой сочленениями 12, которые могут быть классифицированы по известным методикам.
Сочлененному объекту 10 также может быть приписана локальная система отсчета с началом координат в центре G тяжести этого объекта.
В частности, эта локальная система отсчета может содержать единственную ось , проходящую через центр G тяжести сочлененного объекта 10.
Сочлененный объект 10 перемещается в виртуальном пространстве 13, загроможденном несколькими объектами или препятствиями 13а, 13b, 13с, 13d, столкновения с которыми сочлененный объект 10 должен избегать в процессе своего перемещения. Сочлененный объект 10 и окружающее его пространство определены в метрическом пространстве (О; х, у, z).
В этом метрическом пространстве легко могут быть определены положения и ориентации сочлененного объекта 10 и различных объектов 13а, 13b, 13с, 13d окружающего его пространства 13.
Так, сочлененный объект 10 в окружающем его пространстве 13 может быть в любой момент определен глобальным положением, глобальной ориентацией и углами наклона сочленений, определяющими положение совокупности сочлененных элементов 11 в соответствии с их степенями свободы.
Глобальное положение сочлененного объекта 10 может быть определено декартовыми координатами его центра G тяжести по осям х, у, z.
Глобальная ориентация может быть определена по известной методике тремя углами, определяющими ориентацию приписанной к сочлененному объекту оси Z относительно осей х, у, z.
Разумеется, также следует учитывать параметры или ограничения, накладываемые пределами движения сочленений и физическими связями между различными частями тела или элементами 11 сочлененного объекта 10.
Эти данные и переменные, определяющие сочлененный объект 10, а также параметры, определяющие окружающее его пространство 13, сохраняют в запоминающем устройстве 3 компьютера 1.
Как показано на фиг.2В, сочлененный объект может, в частности, представлять собой виртуальный манекен 10а, перемещающийся по полу в виртуальном пространстве 13.
В этом случае манекен 10а может быть определен углами сочленений, определяющими совокупность его сочлененных элементов, своим положением на виртуальном полу и ориентацией относительно вертикальной оси перпендикулярной указанному полу и проходящей через центр G тяжести манекена 10а.
Сочлененный объект 10, например манекен 10а, по известной методике может быть перемещен в виртуальном пространстве 13 с помощью последовательности элементарных движений, например, чтобы достичь некоторой цели 13с.
Так, для создания траектории, позволяющей сочлененному объекту 10 достичь цели 13с, можно воздействовать на глобальное положение сочлененного объекта 10, используя заранее определенный шаг р изменения глобального положения, и/или на ориентацию сочлененного объекта, используя заранее определенный шаг o изменения ориентации, и/или на степени свободы сочлененного объекта, используя заранее определенный шаг а перемещения сочленений.
Этот процесс можно представить как притяжение сочлененного объекта 10 к цели 13с без учета размеров цели 13с или любых других объектов 13а, 13b пространства 13.
Чтобы предотвратить столкновения сочлененного объекта 10 с элементами окружающего его пространства 13, необходимо определить критерий столкновения. Такой критерий может быть определен по методике, известной специалистам в данной области, путем вычисления расстояния взаимодействия сочлененного объекта 10 с элементами окружающего его пространства 13, которые также содержат точки, определяющие это расстояние взаимодействия.
Следует отметить, что расстояние взаимодействия может соответствовать минимальному расстоянию между сочлененным объектом 10 и элементом окружающего его пространства или глубине их взаимного проникновения.
На фиг.3А и 3В проиллюстрировано определение расстояния взаимодействия элемента сочлененного объекта 10 и объекта 13d, принадлежащего окружающему пространству.
В частности, пример, представленный на фиг.3А, иллюстрирует критерий минимального расстояния между сочлененным объектом 10 и элементом окружающего его пространства, а также точки Р1 и Р2, определяющие это минимальное расстояние.
Далее, пример, представленный на фиг.3В, иллюстрирует критерий глубины взаимного проникновения сочлененного объекта 10 и элемента окружающего его пространства, а также точки Р1 и Р2, определяющие эту глубину проникновения.
Таким образом, вычисление расстояния взаимодействия позволяет определить точку Р1, в дальнейшем описании называемую «первой точкой»; принадлежащую одному из элементов 11 сочлененного объекта 10, и другую точку Р2, в дальнейшем описании называемую «второй точкой», принадлежащую окружающему пространству 13.
Это позволяет определить по этим первой точке Р1 и второй точке Р2 единственный вектор отведения.
Согласно методу, основанному на вычислении минимального расстояния (фиг. 3А), вектор отведения равен разности координат первой точки Р1 и второй точки Р2. Другими словами, вторая точка Р2 образует начальную точку вектора а первая точка Р1 образует конечную точку вектора отведения.
В отличие от этого согласно методу, основанному на вычислении глубины проникновения (фиг.3В), вектор отведения равен разности координат второй точки Р2 и первой точки Р1. Другими словами, первая точка Р1 образует начальную точку вектора отведения, а вторая точка Р2 образует конечную точку вектора отведения.
Наконец, для предотвращения столкновения сочлененного объекта 10 с элементами окружающего его пространства 13 этот сочлененный объект 10 может быть отведен от элементов окружающего его пространства движением, определенным в соответствии с единственным вектором отведения и воздействующим на глобальное положение и/или глобальную ориентацию, и/или степени свободы сочлененного объекта 10.
На фиг.4-6 проиллюстрированы движения отведения сочлененного объекта по методу минимального расстояния. Однако данный принцип, разумеется, остается неизменным и в случае использования метода глубины проникновения.
На фиг.4 изображено движение отведения, воздействующее на глобальное положение сочлененного объекта.
Отведение сочлененного объекта 10 от элемента окружающего пространства 13 осуществляют движением переноса, пропорциональным компонентам вектора отведения, воздействующего на глобальное положение сочлененного объекта, т.е. где - положительный коэффициент.
В частности, в случае манекена 10а, в котором глобальное положение определено в плоскости (х, у), учитывают только проекцию вектора отведения на эту плоскость.
Таким образом, движение переноса вносит вклад в предотвращение столкновения путем глобального перемещения сочлененного объекта 10.
Следует отметить, что единственный вектор отведения, рассчитанный по минимальному расстоянию или глубине проникновения, может быть нормирован на величину элементарного шага р изменения положения, т.е. движение переноса определяют по следующей формуле:
.
На фиг.5 изображено движение отведения, воздействующее на глобальную ориентацию сочлененного объекта.
Отведение сочлененного объекта 10 от элемента окружающего пространства 13 осуществляют определением поворота вокруг некоторой точки (например, центра G тяжести), необходимого для смещения точки приложения вектора отведения на этом сочлененном объекте 10 в направлении этого вектора . Угол этого поворота нормирован на величину элементарного шага о изменения ориентации.
Такое движение поворота, воздействующее на глобальную ориентацию сочлененного объекта 10, может быть определено следующей последовательностью действий.
Определяют вектор называемый в дальнейшем «первым глобальным вектором», соединяющий центр G тяжести сочлененного объекта 10 и начальную точку вектора . В данном примере начальной точкой вектора отведения является вторая точка Р2, однако в случае использования метода глубины проникновения ею являлась бы первая точка Р1.
Аналогичным образом определяют второй глобальный вектор соединяющий центр G тяжести сочлененного объекта 10 и конечную точку Р1 вектора отведения.
Затем вычисляют называемый в дальнейшем «углом глобального поворота» угол поворота, необходимого для совмещения первого глобального вектора и второго глобального вектора Угол глобального поворота может быть вычислен с использованием векторного произведения (называемого в дальнейшем «глобальным векторным произведением») первого глобального вектора и второго глобального вектора Таким образом, угол глобального поворота вычисляют по следующей формуле:
Этот угол глобального поворота раскладывают на один или несколько элементарных углов gi глобального поворота, соответствующих осям, определяющим глобальную ориентацию сочлененного объекта. Один или несколько элементарных углов gi глобального поворота могут быть вычислены с использованием скалярного произведения или произведений глобального векторного произведения и одной или нескольких осей глобальной ориентации.
Наконец, сочлененный объект 10 поворачивают на один или несколько углов , пропорциональных указанным элементарным углам gi глобального поворота. Элементарные углы gi глобального поворота нормированы на величины, соответствующие элементарному шагу о изменения ориентации, т.е.
В частности, если глобальная ориентация сочлененного объекта определяется единственной осью , как в примере, приведенном на фиг.2, то вращательное движение сочлененного объекта вокруг данной оси определяет единственный нормированный элементарный угол глобального поворота, вычисляемый по следующей формуле:
На фиг.6 проиллюстрировано движение поворота сочленения, воздействующее на степени свободы сочлененного объекта.
Следует отметить, что отведение сочлененного объекта 10 от элемента окружающего его пространства 13 осуществляют движением поворота сочленения, воздействующего на каждое из его сочленений 12, принадлежащих к последовательности сочленений, предшествующей элементу 11 сочлененного объекта, которому принадлежит определенная выше первая точка Р1 (см. фиг.2А и 2В).
Если, например, сочлененный объект представляет собой виртуальный манекен 10а, а расстояние взаимодействия манекена 10а и элемента окружающего его пространства 13 определено первой точкой Р1, находящейся на предплечье, то последовательность сочленений соответствует локтю, плечу и ключице. Другими словами, движение поворота сочленения рассчитывают таким образом, чтобы оно воздействовало на все сочленения 12 руки, предшествующие предплечью. Если же первая точка Р1 принадлежит плечу, то последовательность сочленений содержит только сочленения плеча и ключицы. Если первая точка Р1 принадлежит кисти, то в движении участвуют все сочленения 12 руки, т.е. последовательность сочленений содержит запястье, локоть, плечо и ключицу.
Таким образом, для данного сочлененного объекта 10 последовательность сочленений зависит от элемента 11 сочлененного объекта 10, который содержит первую точку Р1.
В частности, пример, приведенный на фиг.6, демонстрирует движение поворота сочленения, воздействующее на данное сочленение 12а, входящее в последовательность сочленений 12а, 12b и 12с.
Это движение поворота сочленения, воздействующее на данное сочленение 12а, может быть определено путем осуществления следующих действий.
Определяют первый вектор (называемый в дальнейшем «первым локальным вектором»), соединяющий центр данного сочленения 12а и начальную точку Р2 вектора отведения.
Аналогичным образом определяют второй локальный вектор соединяющий центр данного сочленения 12а и конечную точку Р1 вектора отведения.
Затем вычисляют называемый в дальнейшем «углом локального поворота» угол поворота, необходимого для совмещения первого локального вектора со вторым локальным вектором Угол локального поворота может быть вычислен с использованием векторного произведения (называемого в дальнейшем «локальным векторным произведением») первого локального вектора и второго локального вектора по следующей формуле:
Этот угол локального поворота раскладывают на один или несколько элементарных углов li поворота сочленения, соответствующих одной или нескольким осям определяющим одну или несколько степеней свободы данного сочленения 12а сочлененного объекта 10. В данном примере данное сочленение 12а содержит две оси и Один или несколько элементарных углов li поворота сочленения могут быть рассчитаны с использованием одного или нескольких скалярных произведений локального векторного произведения и одной или нескольких осей степеней свободы данного сочленения 12а.
Наконец, сочлененный элемент поворачивают в данном сочленении на один или несколько углов i, пропорциональных указанным одному или нескольким элементарным углам li поворота сочленения.
Элементарные углы li поворота сочленения нормированы на величины, соответствующие шагам перемещения сочленения о.
Сочлененный элемент поворачивают в данном сочленении на один или несколько углов, вычисленных по следующей формуле:
Разумеется, все вышеописанные действия должны быть произведены для всех сочленений 12а, 12b и 12с, образующих данную последовательность сочленений.
Таким образом, использование единственного вектора отведения, вычисленного по минимальному расстоянию или глубине проникновения, позволяет существенно усовершенствовать процедуру предотвращения столкновений сочлененного объекта 10 с элементами окружающего его пространства 13.
Настоящее изобретение позволяет значительно сократить количество расчетов минимального расстояния или глубины проникновения, которые требуют весьма значительных затрат времени на вычисления, по сравнению с известными методиками вычисления градиентов, не снижая точности предотвращения столкновений сочлененного объекта с элементами окружающего пространства.
На фиг.7А представлена блок-схема, иллюстрирующая основные этапы моделирования перемещения сочлененного объекта с предотвращением его столкновений с элементами окружающего пространства.
На этапе S0 происходит инициализация программы и определение некоторых параметров. Например, инициализируется счетчик тактовых сигналов или этапов вычислений моделирования.
Аналогичным образом на этапе S0 могут быть определены элементарные изменения (шаги) смещения положения ( р), ориентации ( о) и сочленений ( а). Например, различные шаги могут быть определены в зависимости от характеристик сочленений 12. Альтернативно, может быть выбран оптимальный постоянный шаг для всех сочленений 12 на протяжении всей траектории движения сочлененного объекта 10.
На этапе S1 осуществляют вычисление элементарного движения сочлененного объекта 10.
На этапе S2 производят проверку на наличие столкновения данного сочлененного объекта 10 с элементами окружающего его пространства 13. Критерий столкновения зависит от величины расстояния взаимодействия.
Другими словами, при использовании метода, основанного на минимальном расстоянии, столкновение можно считать случившимся, если это минимальное расстояние меньше или равно некоторому предельному расстоянию, которое может быть равно нулю, чтобы обеспечить возможность перемещения сочлененного объекта 10 без столкновений с элементами окружающего его пространства 13.
В отличие от этого при использовании метода, основанного на глубине проникновения, столкновение можно считать случившимся, если эта глубина больше или равна некоторой предельной глубине проникновения. Таким образом, в зависимости от выбора этого предельного значения можно, в одном варианте, обеспечить перемещение сочлененного объекта 10 без столкновений с элементами окружающего его пространства 13 или, в другом варианте, обеспечить перемещение сочлененного объекта 10 с ограниченными и контролируемыми столкновениями с элементами окружающего его пространства 13. В этом последнем случае возможно моделирование некоторой упругости при соприкосновении сочлененного объекта 10 с элементами окружающего пространства 13.
Если в соответствии с критерием этапа S2 столкновение отсутствует, на этапе S3 перемещение сочлененного объекта 10, вычисленное на этапе S1, отображают, например, на экране 7 компьютера 1, после чего происходит возврат к тому же этапу S1 для вычисления следующего элементарного перемещения.
Таким образом, действия по выбору первой и второй точек, определению вектора отведения и отведению сочлененного объекта 10 от элементов окружающего пространства 13 на этапе S3 не производят.
В то же время при наличии столкновения на этапе S4 производят отмену элементарного перемещения, вычисленного на этапе S1.
Затем, на этапе S5, рассчитывают движение, определенное на основе единственного вектора отведения и воздействующее на глобальное положение и/или глобальную ориентацию, и/или степени свободы сочлененного объекта для отведения сочлененного объекта 10 от элемента окружающего его пространства 13, после чего происходит возврат к этапу S1.
На фиг.7В изображен вариант фиг.7А, применимый исключительно к методу вычислений с использованием глубины проникновения.
Блок-схема, представленная на этом чертеже, совпадает с блок-схемой фиг.7А, но не содержит этапа S4.
Таким образом, при обнаружении на этапе S2 столкновения происходит немедленный переход к этапу S5 отведения данного объекта 10 от элемента окружающего его пространства 13 без отмены последнего элементарного перемещения, что обеспечивает возможность небольшого взаимного проникновения объекта 10 и элементов окружающего его пространства 13.
Перемещение виртуального сочлененного объекта 10 в виртуальном пространстве может быть осуществлено при помощи «многофакторной» системы или любой другой известной системы.
Как крайне схематично показано на фиг.8, для моделирования перемещения сочлененного объекта 10 может быть использована архитектура многофакторной системы 50. Эта многофакторная система 50 образована совокупностью активных элементов (факторов) 20, 21, 22, 23, 30, 31, 32 и 33, воздействующих на пассивные объекты (элементы 11 и сочленения 12), образующие сочлененный объект 10, в соответствии с окружающим его пространством.
Данные (переменные) сочлененного объекта 10 и окружающего его пространства образуют общие данные 15, через которые взаимодействуют различные факторы.
Архитектура многофакторной системы может быть осуществлена в форме нескольких этапов или уровней, в виде пирамиды, так что основные факторы вносят свой вклад в действия факторов более высокого уровня.
В данном примере многофакторная система 50 содержит первый уровень 51 и второй уровень 52.
Первый уровень 51 иллюстрирует воздействие (или глобальный вклад в него) на сочлененный объект 10 и содержит вклад первого глобального фактора 20 и вклад второго глобального фактора 30, воздействующих на сочлененный объект 10 через общие данные 15.
Первый глобальный фактор 20 воздействует на положение и ориентацию сочлененного объекта 10, а второй глобальный фактор 30 воздействует на внутренние степени свободы сочленения 12 сочлененного объекта 10.
Второй уровень 52 иллюстрирует различные вклады, поступающие от факторов различных типов, порождающих вклады первого и второго глобальных факторов 20 и 30 и взаимодействующих через общие данные 15.
Таким образом, перемещение сочлененного объекта 10 может быть осуществлено с помощью фактора притяжения, воздействующего на глобальное положение и/или глобальную ориентацию, и/или степени свободы сочлененного объекта.
Кроме того, отведение данного сочлененного объекта 10 от элементов окружающего его пространства может быть осуществлено с помощью фактора скольжения, воздействующего на глобальное положение и/или глобальную ориентацию, и/или совокупность степеней свободы сочлененного объекта.
Так, второй уровень 52 многофакторной системы 50 может содержать фактор 21 отталкивающего скольжения, воздействующий на глобальное положение и/или глобальную ориентацию сочлененного объекта 10, фактор 22 глобального притяжения, воздействующий на глобальное положение и/или на глобальную ориентацию сочлененного объекта 10, фактор 31 кинематического скольжения, воздействующий на внутренние степени свободы сочленений 12 сочлененного объекта 10, и фактор 32 кинематического притяжения, воздействующий на внутренние степени свободы сочленения 12 сочлененного объекта.
Кроме того, сочлененный объект 10 может передвигаться оператором, воздействующим на положение и/или ориентацию, и/или степени свободы этого сочлененного объекта, в режиме реального времени.
Так, второй уровень 52 многофакторной системы 50 может также содержать глобальный управляющий фактор 23, воздействующий на глобальное положение и/или глобальную ориентацию сочлененного объекта 10, и внутренний управляющий фактор 33, воздействующий на внутренние степени свободы сочленений 12 сочлененного объекта 10.
Класс G06T17/40 манипулирование трехмерными (3D) изображениями, например с использованием CAD установок графического автоматического проектирования