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

#include <robot.h>

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

Public Member Functions

virtual ~BaseRobot ()=default
 
 BaseRobot ()
 
virtual void loadFromFile (std::string path)=0
 загрузить параметры робота из файла More...
 
virtual std::vector< Eigen::Vector3d > getJointAxes (std::vector< double > state)
 
virtual std::vector< Eigen::Matrix4d > getTransformMatrices (std::vector< double > state)
 
virtual Eigen::Matrix4d getEndEffectorTransformMatrix (std::vector< double > state)
 
Eigen::Matrix4d getEndEffectorDiffTransformMatrix (std::vector< double > state, int iVal)
 
Eigen::Matrix4d getEndEffectorDiff2TransformMatrix (std::vector< double > state, int iVal, int jVal)
 
bool isStateEnabled (std::vector< double > state)
 
std::vector< double > getWorldTranslation () const
 
std::vector< double > getWorldRotation () const
 
std::vector< double > getWorldScale () const
 
std::vector< double > getWorldTransformVector () const
 
const std::shared_ptr< Eigen::Matrix4d > & getWorldTransformMatrix () const
 
unsigned long getJointCnt () const
 
std::vector< double > getMaxSpeedModules ()
 
std::vector< double > getMaxAccelerationModules ()
 
unsigned long getLinkCnt () const
 
std::vector< std::shared_ptr< JointParams > > getJointParamsList () const
 
std::vector< std::shared_ptr< Link > > getLinks () const
 
std::string getPath () const
 
void setWorldTranslation (const std::vector< double > &translation)
 
void setWorldRotation (const std::vector< double > &rotation)
 
void setWorldScale (const std::vector< double > &scale)
 
void setWorldTransformVector (const std::vector< double > &vec)
 
std::vector< std::string > getModelPaths () const
 
std::vector< double > getEndEffectorPos (std::vector< double > state)
 
std::vector< double > getEndEffectorDiffPos (std::vector< double > state, int iVal)
 
std::vector< double > getEndEffectorDiff2Pos (std::vector< double > state, int iVal, int jVal)
 
std::vector< double > getEndEffectorRGVector (std::vector< double > state)
 
std::vector< double > getEndEffectorDiffRGVector (std::vector< double > state, int iVal)
 
std::vector< double > getEndEffectorDiff2RGVector (std::vector< double > state, int iVal, int jVal)
 
std::vector< double > getAllLinkPositions (std::vector< double > state)
 
std::vector< double > getAllLinkRGVectors (std::vector< double > state)
 
std::vector< double > getMassCenterAbsolutePositions (std::vector< double > state)
 
virtual std::vector< double > getMassCenterLocalPositions ()
 
virtual std::vector< Eigen::Matrix3d > getInertias ()
 
std::vector< double > getRandomState ()
 

Protected Member Functions

void _fillWorldTransformMatrix ()
 
template<typename F >
void _forEachJoint (std::vector< double > state, const F &consumer)
 
template<typename F >
void _forEachDiffJoint (std::vector< double > state, int iVal, const F &consumer)
 
template<typename F >
void _forEachDiff2Joint (std::vector< double > state, int iVal, int jVal, const F &consumer)
 

Protected Attributes

std::vector< std::shared_ptr< Joint > > _joints
 
std::vector< std::shared_ptr< JointParams > > _jointParams
 
std::vector< double > _maxSpeedModules
 
std::vector< double > _maxAccelerationModules
 
std::vector< std::shared_ptr< Link > > _links
 
std::vector< std::shared_ptr< Link > > _nonHierarchicalLinks
 
std::string _path
 
std::vector< double > _worldTransformVector
 
std::shared_ptr< Eigen::Matrix4d > _worldTransformMatrix
 

Detailed Description

Базовый класс робота

Constructor & Destructor Documentation

◆ ~BaseRobot()

virtual bmpf::BaseRobot::~BaseRobot ( )
virtualdefault

Виртуальный деструктор (по умолчанию)

◆ BaseRobot()

BaseRobot::BaseRobot ( )

Конструктор

Member Function Documentation

◆ _fillWorldTransformMatrix()

void BaseRobot::_fillWorldTransformMatrix ( )
protected

Заполнить матрицу перехода из СК мира в СК робота

◆ _forEachDiff2Joint()

template<typename F >
void BaseRobot::_forEachDiff2Joint ( std::vector< double >  state,
int  iVal,
int  jVal,
const F &  consumer 
)
protected

перебор матриц преобразования из СК мира в СК соответствующего звена, при состоянии робота равном state (вместо i-ой и j-ой матриц преобразования берутся её частные производные по i-ой и j-ой координатам соответственно и вторая производная по i-ой координате, если i==j)

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

◆ _forEachDiffJoint()

template<typename F >
void BaseRobot::_forEachDiffJoint ( std::vector< double >  state,
int  iVal,
const F &  consumer 
)
protected

перебор матриц преобразования из СК мира в СК соответствующего звена, при состоянии робота равном state (вместо i-ой матрицы преобразования берётся её частная производная по i-ой координате)

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

◆ _forEachJoint()

template<typename F >
void BaseRobot::_forEachJoint ( std::vector< double >  state,
const F &  consumer 
)
protected

перебор матриц преобразования из СК мира в СК соответствующего звена, при состоянии робота равном state

Parameters
stateсостояние
consumerобработчик для каждой матрицы

◆ getAllLinkPositions()

std::vector< double > BaseRobot::getAllLinkPositions ( std::vector< double >  state)

получить положения всех звеньев

Parameters
stateсостояние
Returns
положения всех звеньев

◆ getAllLinkRGVectors()

std::vector< double > BaseRobot::getAllLinkRGVectors ( std::vector< double >  state)

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

Parameters
stateсостояние
Returns
положения всех звеньев

◆ getEndEffectorDiff2Pos()

std::vector< double > BaseRobot::getEndEffectorDiff2Pos ( std::vector< double >  state,
int  iVal,
int  jVal 
)

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

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

◆ getEndEffectorDiff2RGVector()

std::vector< double > BaseRobot::getEndEffectorDiff2RGVector ( std::vector< double >  state,
int  iVal,
int  jVal 
)

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

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

◆ getEndEffectorDiff2TransformMatrix()

Eigen::Matrix4d BaseRobot::getEndEffectorDiff2TransformMatrix ( std::vector< double >  state,
int  iVal,
int  jVal 
)

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

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

◆ getEndEffectorDiffPos()

std::vector< double > BaseRobot::getEndEffectorDiffPos ( std::vector< double >  state,
int  iVal 
)

получить частную производную положения энд-эффектора робота по i-ой координате

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

◆ getEndEffectorDiffRGVector()

std::vector< double > BaseRobot::getEndEffectorDiffRGVector ( std::vector< double >  state,
int  iVal 
)

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

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

◆ getEndEffectorDiffTransformMatrix()

Eigen::Matrix4d BaseRobot::getEndEffectorDiffTransformMatrix ( std::vector< double >  state,
int  iVal 
)

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

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

◆ getEndEffectorPos()

std::vector< double > BaseRobot::getEndEffectorPos ( std::vector< double >  state)

получить положение рабочего инструмента робота

Parameters
stateсостояние
Returns
положение рабочего инструмента

◆ getEndEffectorRGVector()

std::vector< double > BaseRobot::getEndEffectorRGVector ( std::vector< double >  state)

получить положение и ориентацию(задана параметрами Родриго-Гамильтона)

Parameters
stateсостояние
Returns
положение и ориентацию(задана параметрами Родриго-Гамильтона)

◆ getEndEffectorTransformMatrix()

Eigen::Matrix4d BaseRobot::getEndEffectorTransformMatrix ( std::vector< double >  state)
virtual

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

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

◆ getInertias()

std::vector< Eigen::Matrix3d > BaseRobot::getInertias ( )
virtual

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

Returns
список тензоров инерции

◆ getJointAxes()

std::vector< Eigen::Vector3d > BaseRobot::getJointAxes ( std::vector< double >  state)
virtual

получить список осей вращения сочленений робота в СК мира по состоянию

Parameters
stateсостояние
Returns
список осей вращения сочленений робота

◆ getJointCnt()

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

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

Returns

◆ getJointParamsList()

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

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

Returns

◆ getLinkCnt()

unsigned long bmpf::BaseRobot::getLinkCnt ( ) const
inline

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

Returns

◆ getLinks()

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

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

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

◆ getMassCenterAbsolutePositions()

std::vector< double > BaseRobot::getMassCenterAbsolutePositions ( std::vector< double >  state)

получить список координат центров масс в СК базы робота(x1, y1, z1, x2, y2, z2, ...)

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

◆ getMassCenterLocalPositions()

std::vector< double > BaseRobot::getMassCenterLocalPositions ( )
virtual

получить список координат центров масс в СК соответствующих звеньев робота(x1, y1, z1, x2, y2, z2, ...)

Returns
список координат центров масс

◆ getMaxAccelerationModules()

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

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

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

◆ getMaxSpeedModules()

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

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

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

◆ getModelPaths()

std::vector< std::string > BaseRobot::getModelPaths ( ) const

получить список моделей, используемых роботом

Returns
список моделей, используемых роботом

◆ getPath()

std::string bmpf::BaseRobot::getPath ( ) const
inline

получить путь к описанию робота

Returns
путь к описанию робота

◆ getRandomState()

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

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

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

◆ getTransformMatrices()

std::vector< Eigen::Matrix4d > BaseRobot::getTransformMatrices ( std::vector< double >  state)
virtual

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

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

◆ getWorldRotation()

std::vector<double> bmpf::BaseRobot::getWorldRotation ( ) const
inline

получить поворот из СК мира в СК робота

Returns
поворот из СК мира в СК робота

◆ getWorldScale()

std::vector<double> bmpf::BaseRobot::getWorldScale ( ) const
inline

получить масштабирование из СК мира в СК робота

Returns
масштабирование из СК мира в СК робота

◆ getWorldTransformMatrix()

const std::shared_ptr<Eigen::Matrix4d>& bmpf::BaseRobot::getWorldTransformMatrix ( ) const
inline

получить матрицу перехода из СК мира в СК робота

Returns
матрица перехода из СК мира в СК робота

◆ getWorldTransformVector()

std::vector<double> bmpf::BaseRobot::getWorldTransformVector ( ) const
inline

получить вектор перехода из СК мира в СК робота: x,y,z; rotation: r,p,y; scale: x,y,z

Returns
вектор перехода из СК мира в СК робота

◆ getWorldTranslation()

std::vector<double> bmpf::BaseRobot::getWorldTranslation ( ) const
inline

получить смещение из СК мира в СК робота

Returns
смещение из СК мира в СК робота

◆ isStateEnabled()

bool BaseRobot::isStateEnabled ( std::vector< double >  state)

проверка допустимости углов поворота сочленения (рассчитывается по ограничениям сочленений)

Parameters
stateсостояние
Returns
флаг, допустим ли соответствующий набор углов поворота (конфигурация)

◆ loadFromFile()

virtual void bmpf::BaseRobot::loadFromFile ( std::string  path)
pure virtual

загрузить параметры робота из файла

Загрузить параметры робота из файла, нужно заполнить следующие поля: _jointParams, _links, _nonHierarchicalLinks, path

Parameters
pathпуть к файлу описания робота

Implemented in bmpf::URDFRobot, and bmpf::DHRobot.

◆ setWorldRotation()

void BaseRobot::setWorldRotation ( const std::vector< double > &  rotation)

задать поворот из СК мира в СК робота

Parameters
rotationповорот

◆ setWorldScale()

void BaseRobot::setWorldScale ( const std::vector< double > &  scale)

задать масштабирование из СК мира в СК робота

Parameters
scaleмасштабирование

◆ setWorldTransformVector()

void BaseRobot::setWorldTransformVector ( const std::vector< double > &  vec)

задать вектор перехода из СК мира в СК робота: x,y,z; rotation: r,p,y; scale: x,y,z

Parameters
vecвектор перехода

◆ setWorldTranslation()

void BaseRobot::setWorldTranslation ( const std::vector< double > &  translation)

задать смещение из СК мира в СК робота

Parameters
translationсмещение

Member Data Documentation

◆ _jointParams

std::vector<std::shared_ptr<JointParams> > bmpf::BaseRobot::_jointParams
protected

Параметры сочленений робота

◆ _joints

std::vector<std::shared_ptr<Joint> > bmpf::BaseRobot::_joints
protected

Сочленения робота

◆ _links

std::vector<std::shared_ptr<Link> > bmpf::BaseRobot::_links
protected

Звенья робота, сначала идут все звенья, участвующие в иерархии, затем - неучаствующие

◆ _maxAccelerationModules

std::vector<double> bmpf::BaseRobot::_maxAccelerationModules
protected

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

◆ _maxSpeedModules

std::vector<double> bmpf::BaseRobot::_maxSpeedModules
protected

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

◆ _nonHierarchicalLinks

std::vector<std::shared_ptr<Link> > bmpf::BaseRobot::_nonHierarchicalLinks
protected

звенья, которые не участвуют в иерархии сцены

◆ _path

std::string bmpf::BaseRobot::_path
protected

путь к описанию робота

◆ _worldTransformMatrix

std::shared_ptr<Eigen::Matrix4d> bmpf::BaseRobot::_worldTransformMatrix
protected

матрица перехода из СК мира в СК робота

◆ _worldTransformVector

std::vector<double> bmpf::BaseRobot::_worldTransformVector
protected

вектор перехода из СК мира в СК робота: position: x,y,z; rotation: r,p,y; scale: x,y,z


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