Buran Motion Planning Framework
|
#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 () |
Класс сцены
|
default |
Конструктор по умолчанию
|
explicit |
конструктор сцены от одного робота
robot | робот |
|
default |
Деструктор по умолчанию
|
protected |
заполняет по имеющимся на сцене роботам общие списки jointCnt, _jointIndexRanges, _jointParams и _links
unsigned long Scene::addObject | ( | std::string | path | ) |
Добавить робота на сцену
path | путь к описанию робота |
unsigned long Scene::addObject | ( | std::string | path, |
std::vector< double > & | transformVector | ||
) |
добавить робота на сцену
path | путь к описанию робота, |
transformVector | вектор трансформации position: x,y,z; rotation: r,p,y; scale: x,y,z |
|
inline |
получить список флагов, имеет ли тот или иной объект звенья
|
inline |
объединить состояния роботов (вспомогательный метод)
states | список состояний |
|
static |
объединить координаты роботов
coords | координаты |
|
inline |
объединить состояния роботов (вспомогательный метод)
states | список состояний |
|
static |
объединить состояния роботов (последовательно)
states | список состояний |
|
static |
объединить состояния роботов (последовательно)
states | список состояний |
void Scene::deleteRobot | ( | long | robotNum | ) |
удалить робота со сцены
robotNum | номер робота в общем списке |
unsigned long Scene::getActiveRobotCnt | ( | ) | const |
посчитать количество активных роботов посчитать количество активных роботов на сцене (объектов с переменными состояниями)
std::vector< double > Scene::getAllLinkPositions | ( | const std::vector< double > & | state | ) |
получить список положений звеньев всех роботов по состоянию сцены (x,y,z)
state | состояние сцены |
std::vector< double > Scene::getAllLinkRGVectors | ( | const std::vector< double > & | state | ) |
получить список положений (x,y,z) и ориентаций (параметры Родриго-Гамильтона) звеньев всех роботов по состоянию сцены
state | состояние сцены |
std::vector< double > Scene::getEndEffectorDiff2Positions | ( | const std::vector< double > & | state, |
int | iVal, | ||
int | jVal | ||
) |
получить частную производную положений рабочих инструментов роботов по i-ой и j-ой координатам
state | состояние сцены |
iVal | индекс координаты, по которой первый раз берётся производная |
jVal | индекс координаты, по которой второй раз берётся производная |
std::vector< double > Scene::getEndEffectorDiff2RGVector | ( | const std::vector< double > & | state, |
int | iVal, | ||
int | jVal | ||
) |
получить частную производную положения и ориентации рабочего инструмента (заданы параметрами Родриго-Гамильтона) по i-ой и j-ой координатам
state | состояние сцены |
iVal | индекс координаты, по которой первый раз берётся производная |
jVal | индекс координаты, по которой второй раз берётся производная |
std::vector< Eigen::Matrix4d > Scene::getEndEffectorDiff2TransformMatrices | ( | const std::vector< double > & | state, |
int | iVal, | ||
int | jVal | ||
) |
получить частные производные матриц преобразования из СК базы робота в СК рабочего инструмента для каждого робота сцены по i-ой координате и j-ой координате
state | состояние сцены |
iVal | индекс координаты, по которой первый раз берётся производная |
jVal | индекс координаты, по которой второй раз берётся производная |
std::vector< double > Scene::getEndEffectorDiffPositions | ( | const std::vector< double > & | state, |
int | iVal | ||
) |
Получить частную производную положений рабочих инструментов роботов по i-ой координате
state | состояние сцены |
iVal | индекс координаты, по которой берётся производная |
std::vector< double > Scene::getEndEffectorDiffRGVector | ( | const std::vector< double > & | state, |
int | iVal | ||
) |
получить частную производную положения и ориентации рабочего инструмента (заданы параметрами Родриго-Гамильтона) по i-ой координате
state | состояние сцены |
iVal | индекс координаты, по которой берётся производная |
std::vector< Eigen::Matrix4d > Scene::getEndEffectorDiffTransformMatrices | ( | const std::vector< double > & | state, |
int | iVal | ||
) |
получить частные производные матриц преобразования из СК базы робота в СК рабочего инструмента для каждого робота сцены по i-ой координате
state | состояние сцены |
iVal | индекс координаты, по которой берётся производная |
std::vector< double > Scene::getEndEffectorPositions | ( | const std::vector< double > & | state | ) |
получить список положений (x,y,z) рабочих инструментов всех роботов получить список положений (x,y,z) рабочих инструментов всех роботов по состоянию сцены
state | состояние сцены |
std::vector< double > Scene::getEndEffectorRGVectors | ( | const std::vector< double > & | state | ) |
получить список положений и ориентаций рабочего инструмента (заданы параметрами Родриго-Гамильтона)
state | состояние сцены |
std::vector< Eigen::Matrix4d > Scene::getEndEffectorTransformMatrices | ( | const std::vector< double > & | state | ) |
получить матрицы преобразования из СК базы робота в СК рабочего инструмента для каждого робота сцены
state | состояние сцены |
std::vector< std::vector< std::string > > Scene::getGroupedModelPaths | ( | ) | const |
получить пути к моделям для каждого из роботов (группируются по роботам)
std::vector< std::vector< double > > Scene::getGroupedRotation | ( | ) | const |
получить повороты для каждого из роботов
std::vector< std::vector< double > > Scene::getGroupedScale | ( | ) | const |
получить масштабы для каждого из роботов
std::vector< std::vector< double > > Scene::getGroupedTransformVector | ( | ) | const |
получить векторы преобразования для каждого из роботов
std::vector< std::vector< double > > Scene::getGroupedTranslation | ( | ) | const |
получить смещения для каждого из роботов
|
inline |
получить суммарное количество сочленений у всех роботов на сцене
|
inline |
получить список индексов всех объектов, имеющих звенья
|
inline |
получить диапазоны индексов сочленений всех роботов
|
inline |
получить список параметров сочленений робота
|
inline |
получить список звеньев робота
|
inline |
получить максимальные по модулю значения ускорения каждой из координат
|
inline |
получить максимальные по модулю значения скорости каждой из координат
|
inline |
получить список индексов всех объектов, не имеющих звенья
std::vector< double > Scene::getRandomState | ( | ) |
получить случайное состояние сцены
|
inline |
получить список роботов
|
inline |
получить путь к описанию сцены
std::vector< double > Scene::getSingleObjectState | ( | const std::vector< double > & | state, |
unsigned long | objectNum | ||
) |
получить состояние робота
state | состояние сцены |
objectNum | номер робота в списке роботов |
|
inline |
Получить виртуальные сцены с одним активным роботом
std::vector< Eigen::Matrix4d > Scene::getTransformMatrices | ( | const std::vector< double > & | state | ) |
получить список матриц преобразований всех звеньев получить список матриц преобразований всех звеньев по состоянию сцены
state | состояние |
|
inline |
проверка, находится ли на сцене всего один активный робот
bool Scene::isStateEnabled | ( | const std::vector< double > & | state | ) |
проверка, допустимо ли состояние сцены (по допустимым диапазонам звеньев)
state | состояние сцены |
bool Scene::isStateEnabled | ( | std::vector< double > | state, |
unsigned long | robotNum | ||
) |
проверка, допустимо ли состояние сцены для конкретного робота (по допустимым диапазонам звеньев)
state | состояние сцены |
robotNum | номер робота в списке роботов |
void Scene::loadFromFile | ( | const std::string & | path | ) |
загрузить из файла
path | путь к описанию сцены |
void Scene::saveToFile | ( | const std::string & | path | ) |
сохранить в файл
path |
void Scene::setGroupedRotation | ( | std::vector< std::vector< double >> | groupedRotation | ) |
задать повороты для каждого из роботов
groupedRotation | повороты для каждого из роботов |
void Scene::setGroupedScale | ( | std::vector< std::vector< double >> | groupedScale | ) |
задать масштабы для каждого из роботов
groupedScale | масштабы для каждого из роботов |
void Scene::setGroupedTransformVector | ( | std::vector< std::vector< double >> | transformVectors | ) |
задать векторы преобразования для каждого из роботов
transformVectors | векторы преобразования для каждого из роботов |
void Scene::setGroupedTranslation | ( | std::vector< std::vector< double >> | groupedTranslation | ) |
задать смещения для каждого из роботов
groupedTranslation | смещения для каждого из роботов |