Buran Motion Planning Framework
Public Member Functions | List of all members
bmpf::Collider Class Referenceabstract

Базовый класс для всех коллайдеров Базовый класс для всех коллайдеров, все функции являются чисто виртуальными Коллайдер выстраивает параметризированную сцену, состоящую из произвольного числа роботов, потом по состоянию возвращает флаг, соответствует ли это состояние коллизии моделей сцены. Состояния передаются в качестве матриц преобразований из текущей СК звена в следующую. Класс работает по следующему принципу: сначала мы задаём состояние кооллайдеру, а потом либо запускаем его рисование, либо проверку коллизий, одновременно эти два дейсвтвия выполняться не могут. При этом он оперирует только 3D объектами и их матрицами преобразований More...

#include <collider.h>

Inheritance diagram for bmpf::Collider:
Inheritance graph
[legend]

Public Member Functions

virtual void init (std::vector< std::vector< std::string >> groupedModelPaths, bool subColliders)=0
 
virtual void paint (std::vector< Eigen::Matrix4d > matrices, bool onlyRobot)=0
 
virtual bool isCollided (std::vector< Eigen::Matrix4d > matrices)=0
 
virtual bool isCollided (std::vector< Eigen::Matrix4d > matrices, std::vector< int > robotIndexes)=0
 проверка соответствует ли состояние сцены столкновению проверка соответствует ли состояние сцены (список матриц преобразований звеньев только для задействованных объектов) столкновению при этом учитываются только объекты с индексами из robotIndexes. More...
 
virtual std::vector< float > getPoints (std::vector< Eigen::Matrix4d > matrices)=0
 
virtual std::vector< double > getBoxCoords (unsigned long robotNum, std::vector< Eigen::Matrix4d > matrices)=0
 получить координаты куба, ограничивающего объём робота получить координаты куба, ограничивающего объём, в котором помещён робот с индексом robotNum, если задать его звеньям матрицы трансформации из списка всех матриц трансформации звеньев сцены, возвращает список из шести координат: min.x(), min.y(), min.z(), max.x(), max.y(), max.z() More...
 
virtual std::vector< double > getBoxPoints (unsigned long robotNum, std::vector< Eigen::Matrix4d > matrices)=0
 получить точки куба, ограничивающего объём робота получить точки куба, ограничивающего объём, в котором помещён робот с индексом robotNum, если задать его звеньям матрицы трансформации из списка всех матриц трансформации звеньев сцены, возвращает список из точек, по которым построится куб линиями GL_LINES ax, ay, az, bx, by, bz. More...
 

Detailed Description

Базовый класс для всех коллайдеров Базовый класс для всех коллайдеров, все функции являются чисто виртуальными Коллайдер выстраивает параметризированную сцену, состоящую из произвольного числа роботов, потом по состоянию возвращает флаг, соответствует ли это состояние коллизии моделей сцены. Состояния передаются в качестве матриц преобразований из текущей СК звена в следующую. Класс работает по следующему принципу: сначала мы задаём состояние кооллайдеру, а потом либо запускаем его рисование, либо проверку коллизий, одновременно эти два дейсвтвия выполняться не могут. При этом он оперирует только 3D объектами и их матрицами преобразований

Member Function Documentation

◆ getBoxCoords()

virtual std::vector<double> bmpf::Collider::getBoxCoords ( unsigned long  robotNum,
std::vector< Eigen::Matrix4d >  matrices 
)
pure virtual

получить координаты куба, ограничивающего объём робота получить координаты куба, ограничивающего объём, в котором помещён робот с индексом robotNum, если задать его звеньям матрицы трансформации из списка всех матриц трансформации звеньев сцены, возвращает список из шести координат: min.x(), min.y(), min.z(), max.x(), max.y(), max.z()

Parameters
robotNumномер робота в списке роботов
matricesсписок матриц преобразований звеньев
Returns
получить координаты куба, ограничивающего объём робота

Implemented in bmpf::SolidSyncCollider, and bmpf::SolidCollider.

◆ getBoxPoints()

virtual std::vector<double> bmpf::Collider::getBoxPoints ( unsigned long  robotNum,
std::vector< Eigen::Matrix4d >  matrices 
)
pure virtual

получить точки куба, ограничивающего объём робота получить точки куба, ограничивающего объём, в котором помещён робот с индексом robotNum, если задать его звеньям матрицы трансформации из списка всех матриц трансформации звеньев сцены, возвращает список из точек, по которым построится куб линиями GL_LINES ax, ay, az, bx, by, bz.

Parameters
robotNumномер робота в списке роботов
matricesсписок матриц преобразований звеньев
Returns
получить точки куба, ограничивающего объём робота

Implemented in bmpf::SolidCollider, and bmpf::SolidSyncCollider.

◆ getPoints()

virtual std::vector<float> bmpf::Collider::getPoints ( std::vector< Eigen::Matrix4d >  matrices)
pure virtual

возвращает список всех координат полигона (вектор нормали и координаты вершины): nx, ny, nz, ax, ay, az, bx, by, bz, cx, cy, cz по списку матриц состояния

Parameters
matricesсписок матриц преобразований звеньев
Returns
возвращает список всех координат полигона

Implemented in bmpf::SolidCollider, and bmpf::SolidSyncCollider.

◆ init()

virtual void bmpf::Collider::init ( std::vector< std::vector< std::string >>  groupedModelPaths,
bool  subColliders 
)
pure virtual

инициализация коллайдера

Parameters
groupedModelPathsвектор векторов путей к моделям. это связано с тем, что сцена строится на основе набора описаний роботов каждый из них содержит список путей к своим моделям
subCollidersфлаг, нудно ли составить виртуальные сцены для каждого подмножества объектов сцены

Implemented in bmpf::SolidSyncCollider, and bmpf::SolidCollider.

◆ isCollided() [1/2]

virtual bool bmpf::Collider::isCollided ( std::vector< Eigen::Matrix4d >  matrices)
pure virtual

проверка соответствует ли состояние сцены столкновению

Parameters
matricesсписок матриц преобразований звеньев
Returns
флаг, соответствует ли состояние сцены столкновению

Implemented in bmpf::SolidCollider, and bmpf::SolidSyncCollider.

◆ isCollided() [2/2]

virtual bool bmpf::Collider::isCollided ( std::vector< Eigen::Matrix4d >  matrices,
std::vector< int >  robotIndexes 
)
pure virtual

проверка соответствует ли состояние сцены столкновению проверка соответствует ли состояние сцены (список матриц преобразований звеньев только для задействованных объектов) столкновению при этом учитываются только объекты с индексами из robotIndexes.

Parameters
matricesсписок матриц преобразований звеньев
robotIndexesиндексы роботов
Returns
флаг, соответствует ли состояние сцены столкновению

Implemented in bmpf::SolidSyncCollider, and bmpf::SolidCollider.

◆ paint()

virtual void bmpf::Collider::paint ( std::vector< Eigen::Matrix4d >  matrices,
bool  onlyRobot 
)
pure virtual

рисование сцены коллайдера

Parameters
matricesсписок матриц преобразования из текущей СК звена в следующую
onlyRobotфлаг, нужно ли рисовать только роботов или ещё и статические объекты сцены

Implemented in bmpf::SolidCollider, and bmpf::SolidSyncCollider.


The documentation for this class was generated from the following file: