Buran Motion Planning Framework
Public Member Functions | Static Public Member Functions | Protected Member Functions | List of all members
bmpf::Scene Class Reference

#include <scene.h>

Public Member Functions

 Scene ()=default
 
 Scene (const std::vector< std::shared_ptr< bmpf::BaseRobot >> &robot)
 
 ~Scene ()=default
 
unsigned long getActiveRobotCnt () const
 посчитать количество активных роботов посчитать количество активных роботов на сцене (объектов с переменными состояниями) More...
 
unsigned long addObject (std::string path)
 
unsigned long addObject (std::string path, std::vector< double > &transformVector)
 
void deleteRobot (long robotNum)
 
void saveToFile (const std::string &path)
 
void loadFromFile (const std::string &path)
 
std::vector< std::pair< long, long > > getJointIndexRanges ()
 
unsigned long getJointCnt () const
 
bool isSingleActiveRobot () const
 
std::vector< std::shared_ptr< bmpf::JointParams > > getJointParamsList ()
 
std::vector< double > getMaxSpeedModules ()
 
std::vector< double > getMaxAccelerationModules ()
 
std::vector< std::shared_ptr< bmpf::Link > > getLinks () const
 
std::vector< Eigen::Matrix4d > getTransformMatrices (const std::vector< double > &state)
 получить список матриц преобразований всех звеньев получить список матриц преобразований всех звеньев по состоянию сцены More...
 
std::vector< double > getEndEffectorPositions (const std::vector< double > &state)
 получить список положений (x,y,z) рабочих инструментов всех роботов получить список положений (x,y,z) рабочих инструментов всех роботов по состоянию сцены More...
 
std::vector< double > getEndEffectorDiffPositions (const std::vector< double > &state, int iVal)
 
std::vector< double > getEndEffectorDiff2Positions (const std::vector< double > &state, int iVal, int jVal)
 
std::vector< Eigen::Matrix4d > getEndEffectorTransformMatrices (const std::vector< double > &state)
 
std::vector< Eigen::Matrix4d > getEndEffectorDiffTransformMatrices (const std::vector< double > &state, int iVal)
 
std::vector< Eigen::Matrix4d > getEndEffectorDiff2TransformMatrices (const std::vector< double > &state, int iVal, int jVal)
 
std::vector< double > getEndEffectorRGVectors (const std::vector< double > &state)
 
std::vector< double > getEndEffectorDiffRGVector (const std::vector< double > &state, int iVal)
 
std::vector< double > getEndEffectorDiff2RGVector (const std::vector< double > &state, int iVal, int jVal)
 
std::vector< double > getAllLinkPositions (const std::vector< double > &state)
 
std::vector< double > getAllLinkRGVectors (const std::vector< double > &state)
 
bool isStateEnabled (const std::vector< double > &state)
 
bool isStateEnabled (std::vector< double > state, unsigned long robotNum)
 
std::vector< double > getRandomState ()
 
const std::vector< std::shared_ptr< bmpf::BaseRobot > > & getRobots () const
 
std::string getScenePath () const
 
std::vector< std::shared_ptr< Scene > > getSingleRobotScenes ()
 
std::vector< double > getSingleObjectState (const std::vector< double > &state, unsigned long objectNum)
 
std::vector< std::vector< double > > getGroupedTranslation () const
 
std::vector< std::vector< double > > getGroupedRotation () const
 
std::vector< std::vector< double > > getGroupedScale () const
 
std::vector< std::vector< double > > getGroupedTransformVector () const
 
std::vector< std::vector< std::string > > getGroupedModelPaths () const
 
void setGroupedTranslation (std::vector< std::vector< double >> groupedTranslation)
 
void setGroupedRotation (std::vector< std::vector< double >> groupedRotation)
 
void setGroupedScale (std::vector< std::vector< double >> groupedScale)
 
void setGroupedTransformVector (std::vector< std::vector< double >> transformVectors)
 
template<typename ... ArgsT>
std::vector< double > concatenateStates (ArgsT ... states)
 
template<typename ... ArgsT>
std::vector< int > concatenateCoords (ArgsT ... states)
 
std::vector< bool > areObjectsJointed ()
 
std::vector< int > getJointedObjectIndexes ()
 
std::vector< int > getNotJointedObjectIndexes ()
 

Static Public Member Functions

static std::vector< double > concatenateStates (const std::vector< std::vector< double >> &states)
 
static std::vector< double > concatenateStates (std::initializer_list< std::vector< double >> states)
 
static std::vector< int > concatenateCoords (const std::vector< std::vector< int >> &coords)
 

Protected Member Functions

void _initObjects ()
 

Detailed Description

Класс сцены

Constructor & Destructor Documentation

◆ Scene() [1/2]

bmpf::Scene::Scene ( )
default

Конструктор по умолчанию

◆ Scene() [2/2]

Scene::Scene ( const std::vector< std::shared_ptr< bmpf::BaseRobot >> &  robot)
explicit

конструктор сцены от одного робота

Parameters
robotробот

◆ ~Scene()

bmpf::Scene::~Scene ( )
default

Деструктор по умолчанию

Member Function Documentation

◆ _initObjects()

void Scene::_initObjects ( )
protected

заполняет по имеющимся на сцене роботам общие списки jointCnt, _jointIndexRanges, _jointParams и _links

◆ addObject() [1/2]

unsigned long Scene::addObject ( std::string  path)

Добавить робота на сцену

Parameters
pathпуть к описанию робота
Returns
id добавленного робота в общем списке роботов

◆ addObject() [2/2]

unsigned long Scene::addObject ( std::string  path,
std::vector< double > &  transformVector 
)

добавить робота на сцену

Parameters
pathпуть к описанию робота,
transformVectorвектор трансформации position: x,y,z; rotation: r,p,y; scale: x,y,z
Returns
id добавленного робота в общем списке роботов

◆ areObjectsJointed()

std::vector<bool> bmpf::Scene::areObjectsJointed ( )
inline

получить список флагов, имеет ли тот или иной объект звенья

Returns
список флагов, имеет ли тот или иной объект звенья

◆ concatenateCoords() [1/2]

template<typename ... ArgsT>
std::vector<int> bmpf::Scene::concatenateCoords ( ArgsT ...  states)
inline

объединить состояния роботов (вспомогательный метод)

Parameters
statesсписок состояний
Returns
объединённое состояние

◆ concatenateCoords() [2/2]

std::vector< int > Scene::concatenateCoords ( const std::vector< std::vector< int >> &  coords)
static

объединить координаты роботов

Parameters
coordsкоординаты
Returns
объединённый список координат

◆ concatenateStates() [1/3]

template<typename ... ArgsT>
std::vector<double> bmpf::Scene::concatenateStates ( ArgsT ...  states)
inline

объединить состояния роботов (вспомогательный метод)

Parameters
statesсписок состояний
Returns
объединённое состояние

◆ concatenateStates() [2/3]

std::vector< double > Scene::concatenateStates ( const std::vector< std::vector< double >> &  states)
static

объединить состояния роботов (последовательно)

Parameters
statesсписок состояний
Returns
объединённое состояние

◆ concatenateStates() [3/3]

std::vector< double > Scene::concatenateStates ( std::initializer_list< std::vector< double >>  states)
static

объединить состояния роботов (последовательно)

Parameters
statesсписок состояний
Returns
объединённое состояние

◆ deleteRobot()

void Scene::deleteRobot ( long  robotNum)

удалить робота со сцены

Parameters
robotNumномер робота в общем списке

◆ getActiveRobotCnt()

unsigned long Scene::getActiveRobotCnt ( ) const

посчитать количество активных роботов посчитать количество активных роботов на сцене (объектов с переменными состояниями)

Returns
количество активных роботов на сцене

◆ getAllLinkPositions()

std::vector< double > Scene::getAllLinkPositions ( const std::vector< double > &  state)

получить список положений звеньев всех роботов по состоянию сцены (x,y,z)

Parameters
stateсостояние сцены
Returns
список положений звеньев

◆ getAllLinkRGVectors()

std::vector< double > Scene::getAllLinkRGVectors ( const std::vector< double > &  state)

получить список положений (x,y,z) и ориентаций (параметры Родриго-Гамильтона) звеньев всех роботов по состоянию сцены

Parameters
stateсостояние сцены
Returns
список положений и ориентаций

◆ getEndEffectorDiff2Positions()

std::vector< double > Scene::getEndEffectorDiff2Positions ( const std::vector< double > &  state,
int  iVal,
int  jVal 
)

получить частную производную положений рабочих инструментов роботов по i-ой и j-ой координатам

Parameters
stateсостояние сцены
iValиндекс координаты, по которой первый раз берётся производная
jValиндекс координаты, по которой второй раз берётся производная
Returns
частная производная положений рабочих инструментов

◆ getEndEffectorDiff2RGVector()

std::vector< double > Scene::getEndEffectorDiff2RGVector ( const std::vector< double > &  state,
int  iVal,
int  jVal 
)

получить частную производную положения и ориентации рабочего инструмента (заданы параметрами Родриго-Гамильтона) по i-ой и j-ой координатам

Parameters
stateсостояние сцены
iValиндекс координаты, по которой первый раз берётся производная
jValиндекс координаты, по которой второй раз берётся производная
Returns
частная производная

◆ getEndEffectorDiff2TransformMatrices()

std::vector< Eigen::Matrix4d > Scene::getEndEffectorDiff2TransformMatrices ( const std::vector< double > &  state,
int  iVal,
int  jVal 
)

получить частные производные матриц преобразования из СК базы робота в СК рабочего инструмента для каждого робота сцены по i-ой координате и j-ой координате

Parameters
stateсостояние сцены
iValиндекс координаты, по которой первый раз берётся производная
jValиндекс координаты, по которой второй раз берётся производная
Returns
частные производные матриц преобразования

◆ getEndEffectorDiffPositions()

std::vector< double > Scene::getEndEffectorDiffPositions ( const std::vector< double > &  state,
int  iVal 
)

Получить частную производную положений рабочих инструментов роботов по i-ой координате

Parameters
stateсостояние сцены
iValиндекс координаты, по которой берётся производная
Returns
частная производная положений рабочих инструментов

◆ getEndEffectorDiffRGVector()

std::vector< double > Scene::getEndEffectorDiffRGVector ( const std::vector< double > &  state,
int  iVal 
)

получить частную производную положения и ориентации рабочего инструмента (заданы параметрами Родриго-Гамильтона) по i-ой координате

Parameters
stateсостояние сцены
iValиндекс координаты, по которой берётся производная
Returns
частная производная

◆ getEndEffectorDiffTransformMatrices()

std::vector< Eigen::Matrix4d > Scene::getEndEffectorDiffTransformMatrices ( const std::vector< double > &  state,
int  iVal 
)

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

Parameters
stateсостояние сцены
iValиндекс координаты, по которой берётся производная
Returns
частные производные матриц преобразования

◆ getEndEffectorPositions()

std::vector< double > Scene::getEndEffectorPositions ( const std::vector< double > &  state)

получить список положений (x,y,z) рабочих инструментов всех роботов получить список положений (x,y,z) рабочих инструментов всех роботов по состоянию сцены

Parameters
stateсостояние сцены
Returns
список положений

◆ getEndEffectorRGVectors()

std::vector< double > Scene::getEndEffectorRGVectors ( const std::vector< double > &  state)

получить список положений и ориентаций рабочего инструмента (заданы параметрами Родриго-Гамильтона)

Parameters
stateсостояние сцены
Returns
список положений и ориентаций

◆ getEndEffectorTransformMatrices()

std::vector< Eigen::Matrix4d > Scene::getEndEffectorTransformMatrices ( const std::vector< double > &  state)

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

Parameters
stateсостояние сцены
Returns
матрицы преобразования

◆ getGroupedModelPaths()

std::vector< std::vector< std::string > > Scene::getGroupedModelPaths ( ) const

получить пути к моделям для каждого из роботов (группируются по роботам)

Returns
пути к моделям для каждого из роботов

◆ getGroupedRotation()

std::vector< std::vector< double > > Scene::getGroupedRotation ( ) const

получить повороты для каждого из роботов

Returns
повороты для каждого из роботов

◆ getGroupedScale()

std::vector< std::vector< double > > Scene::getGroupedScale ( ) const

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

Returns
масштабы для каждого из роботов

◆ getGroupedTransformVector()

std::vector< std::vector< double > > Scene::getGroupedTransformVector ( ) const

получить векторы преобразования для каждого из роботов

Returns
векторы преобразования для каждого из роботов

◆ getGroupedTranslation()

std::vector< std::vector< double > > Scene::getGroupedTranslation ( ) const

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

Returns
смещения для каждого из роботов

◆ getJointCnt()

unsigned long bmpf::Scene::getJointCnt ( ) const
inline

получить суммарное количество сочленений у всех роботов на сцене

Returns
суммарное количество сочленений у всех роботов на сцене

◆ getJointedObjectIndexes()

std::vector<int> bmpf::Scene::getJointedObjectIndexes ( )
inline

получить список индексов всех объектов, имеющих звенья

Returns
список индексов всех объектов, имеющих звенья

◆ getJointIndexRanges()

std::vector<std::pair<long, long> > bmpf::Scene::getJointIndexRanges ( )
inline

получить диапазоны индексов сочленений всех роботов

Returns
диапазоны индексов сочленений всех роботов

◆ getJointParamsList()

std::vector<std::shared_ptr<bmpf::JointParams> > bmpf::Scene::getJointParamsList ( )
inline

получить список параметров сочленений робота

Returns
список параметров сочленений робота

◆ getLinks()

std::vector<std::shared_ptr<bmpf::Link> > bmpf::Scene::getLinks ( ) const
inline

получить список звеньев робота

Returns
список звеньев робота

◆ getMaxAccelerationModules()

std::vector<double> bmpf::Scene::getMaxAccelerationModules ( )
inline

получить максимальные по модулю значения ускорения каждой из координат

Returns
максимальные по модулю значения ускорения каждой из координат

◆ getMaxSpeedModules()

std::vector<double> bmpf::Scene::getMaxSpeedModules ( )
inline

получить максимальные по модулю значения скорости каждой из координат

Returns
максимальные по модулю значения скорости каждой из координат

◆ getNotJointedObjectIndexes()

std::vector<int> bmpf::Scene::getNotJointedObjectIndexes ( )
inline

получить список индексов всех объектов, не имеющих звенья

Returns
список индексов всех объектов, не имеющих звенья

◆ getRandomState()

std::vector< double > Scene::getRandomState ( )

получить случайное состояние сцены

Returns
случайное состояние сцены

◆ getRobots()

const std::vector<std::shared_ptr<bmpf::BaseRobot> >& bmpf::Scene::getRobots ( ) const
inline

получить список роботов

Returns
список роботов

◆ getScenePath()

std::string bmpf::Scene::getScenePath ( ) const
inline

получить путь к описанию сцены

Returns
путь к описанию сцены

◆ getSingleObjectState()

std::vector< double > Scene::getSingleObjectState ( const std::vector< double > &  state,
unsigned long  objectNum 
)

получить состояние робота

Parameters
stateсостояние сцены
objectNumномер робота в списке роботов
Returns
состояние робота

◆ getSingleRobotScenes()

std::vector<std::shared_ptr<Scene> > bmpf::Scene::getSingleRobotScenes ( )
inline

Получить виртуальные сцены с одним активным роботом

Returns
виртуальные сцены с одним активным роботом

◆ getTransformMatrices()

std::vector< Eigen::Matrix4d > Scene::getTransformMatrices ( const std::vector< double > &  state)

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

Parameters
stateсостояние
Returns
список матриц преобразований

◆ isSingleActiveRobot()

bool bmpf::Scene::isSingleActiveRobot ( ) const
inline

проверка, находится ли на сцене всего один активный робот

Returns
находится ли на сцене всего один активный робот

◆ isStateEnabled() [1/2]

bool Scene::isStateEnabled ( const std::vector< double > &  state)

проверка, допустимо ли состояние сцены (по допустимым диапазонам звеньев)

Parameters
stateсостояние сцены
Returns
флаг, допустимо ли состояние сцены

◆ isStateEnabled() [2/2]

bool Scene::isStateEnabled ( std::vector< double >  state,
unsigned long  robotNum 
)

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

Parameters
stateсостояние сцены
robotNumномер робота в списке роботов
Returns
флаг, допустимо ли состояние сцены

◆ loadFromFile()

void Scene::loadFromFile ( const std::string &  path)

загрузить из файла

Parameters
pathпуть к описанию сцены

◆ saveToFile()

void Scene::saveToFile ( const std::string &  path)

сохранить в файл

Parameters
path

◆ setGroupedRotation()

void Scene::setGroupedRotation ( std::vector< std::vector< double >>  groupedRotation)

задать повороты для каждого из роботов

Parameters
groupedRotationповороты для каждого из роботов

◆ setGroupedScale()

void Scene::setGroupedScale ( std::vector< std::vector< double >>  groupedScale)

задать масштабы для каждого из роботов

Parameters
groupedScaleмасштабы для каждого из роботов

◆ setGroupedTransformVector()

void Scene::setGroupedTransformVector ( std::vector< std::vector< double >>  transformVectors)

задать векторы преобразования для каждого из роботов

Parameters
transformVectorsвекторы преобразования для каждого из роботов

◆ setGroupedTranslation()

void Scene::setGroupedTranslation ( std::vector< std::vector< double >>  groupedTranslation)

задать смещения для каждого из роботов

Parameters
groupedTranslationсмещения для каждого из роботов

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