Buran Motion Planning Framework
|
#include <robot.h>
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 |
Базовый класс робота
|
virtualdefault |
Виртуальный деструктор (по умолчанию)
BaseRobot::BaseRobot | ( | ) |
Конструктор
|
protected |
Заполнить матрицу перехода из СК мира в СК робота
|
protected |
перебор матриц преобразования из СК мира в СК соответствующего звена, при состоянии робота равном state (вместо i-ой и j-ой матриц преобразования берутся её частные производные по i-ой и j-ой координатам соответственно и вторая производная по i-ой координате, если i==j)
state | состояние |
iVal | индекс координаты, по которой первый раз берётся производная |
jVal | индекс координаты, по которой второй раз берётся производная |
consumer | обработчик для каждой матрицы |
|
protected |
перебор матриц преобразования из СК мира в СК соответствующего звена, при состоянии робота равном state (вместо i-ой матрицы преобразования берётся её частная производная по i-ой координате)
state | состояние |
iVal | индекс координаты, по которой берётся производная |
consumer | обработчик для каждой матрицы |
|
protected |
перебор матриц преобразования из СК мира в СК соответствующего звена, при состоянии робота равном state
state | состояние |
consumer | обработчик для каждой матрицы |
std::vector< double > BaseRobot::getAllLinkPositions | ( | std::vector< double > | state | ) |
получить положения всех звеньев
state | состояние |
std::vector< double > BaseRobot::getAllLinkRGVectors | ( | std::vector< double > | state | ) |
получить список положений(x,y,z) и ориентаций (параметры Родриго-Гамильтона) всех звеньев
state | состояние |
std::vector< double > BaseRobot::getEndEffectorDiff2Pos | ( | std::vector< double > | state, |
int | iVal, | ||
int | jVal | ||
) |
получить частную производную положения энд-эффектора робота по i-ой и j-ой координатам
state | состояние |
iVal | индекс координаты, по которой первый раз берётся производная |
jVal | индекс координаты, по которой второй раз берётся производная |
std::vector< double > BaseRobot::getEndEffectorDiff2RGVector | ( | std::vector< double > | state, |
int | iVal, | ||
int | jVal | ||
) |
получить частную производную положения и ориентации(задана параметрами Родриго-Гамильтона) по i-ой и j-ой координатам
state | состояние |
iVal | индекс координаты, по которой первый раз берётся производная |
jVal | индекс координаты, по которой второй раз берётся производная |
Eigen::Matrix4d BaseRobot::getEndEffectorDiff2TransformMatrix | ( | std::vector< double > | state, |
int | iVal, | ||
int | jVal | ||
) |
Получить частную производную по i-ой и j-ой координатам матрицы преобразования из СК базы робота в СК рабочего инструмента
state | состояние |
iVal | индекс координаты, по которой первый раз берётся производная |
jVal | индекс координаты, по которой второй раз берётся производная |
std::vector< double > BaseRobot::getEndEffectorDiffPos | ( | std::vector< double > | state, |
int | iVal | ||
) |
получить частную производную положения энд-эффектора робота по i-ой координате
state | состояние |
iVal | индекс координаты, по которой берётся производная |
std::vector< double > BaseRobot::getEndEffectorDiffRGVector | ( | std::vector< double > | state, |
int | iVal | ||
) |
получить частную производную положения и ориентации(задана параметрами Родриго-Гамильтона) по i-ой координате
state | состояние |
iVal | индекс координаты, по которой берётся производная |
Eigen::Matrix4d BaseRobot::getEndEffectorDiffTransformMatrix | ( | std::vector< double > | state, |
int | iVal | ||
) |
Получить частную производную по i-ой координате матрицы преобразования из СК базы робота в СК рабочего инструмента
state | состояние |
iVal | индекс координаты, по которой берётся производная |
std::vector< double > BaseRobot::getEndEffectorPos | ( | std::vector< double > | state | ) |
получить положение рабочего инструмента робота
state | состояние |
std::vector< double > BaseRobot::getEndEffectorRGVector | ( | std::vector< double > | state | ) |
получить положение и ориентацию(задана параметрами Родриго-Гамильтона)
state | состояние |
|
virtual |
получить матрицу преобразования из СК базы робота в СК рабочего инструмента по состоянию
state | состояние |
|
virtual |
получить список тензоров инерции
|
virtual |
получить список осей вращения сочленений робота в СК мира по состоянию
state | состояние |
|
inline |
получить кол-во сочленений робота
|
inline |
получить количество параметров сочленений робота
|
inline |
получить количество звеньев робота
|
inline |
получить список звеньев робота
std::vector< double > BaseRobot::getMassCenterAbsolutePositions | ( | std::vector< double > | state | ) |
получить список координат центров масс в СК базы робота(x1, y1, z1, x2, y2, z2, ...)
state | состояние |
|
virtual |
получить список координат центров масс в СК соответствующих звеньев робота(x1, y1, z1, x2, y2, z2, ...)
|
inline |
получить максимальные по модулю значения ускорения каждой из обобщённых координат
|
inline |
получить максимальные по модулю значения скорости каждой из обобщённых координат
std::vector< std::string > BaseRobot::getModelPaths | ( | ) | const |
получить список моделей, используемых роботом
|
inline |
получить путь к описанию робота
std::vector< double > BaseRobot::getRandomState | ( | ) |
получить случайное состояние
|
virtual |
получить список матриц преобразований всех звеньев по состоянию
state | состояние |
|
inline |
получить поворот из СК мира в СК робота
|
inline |
получить масштабирование из СК мира в СК робота
|
inline |
получить матрицу перехода из СК мира в СК робота
|
inline |
получить вектор перехода из СК мира в СК робота: x,y,z; rotation: r,p,y; scale: x,y,z
|
inline |
получить смещение из СК мира в СК робота
bool BaseRobot::isStateEnabled | ( | std::vector< double > | state | ) |
проверка допустимости углов поворота сочленения (рассчитывается по ограничениям сочленений)
state | состояние |
|
pure virtual |
загрузить параметры робота из файла
Загрузить параметры робота из файла, нужно заполнить следующие поля: _jointParams, _links, _nonHierarchicalLinks, path
path | путь к файлу описания робота |
Implemented in bmpf::URDFRobot, and bmpf::DHRobot.
void BaseRobot::setWorldRotation | ( | const std::vector< double > & | rotation | ) |
задать поворот из СК мира в СК робота
rotation | поворот |
void BaseRobot::setWorldScale | ( | const std::vector< double > & | scale | ) |
задать масштабирование из СК мира в СК робота
scale | масштабирование |
void BaseRobot::setWorldTransformVector | ( | const std::vector< double > & | vec | ) |
задать вектор перехода из СК мира в СК робота: x,y,z; rotation: r,p,y; scale: x,y,z
vec | вектор перехода |
void BaseRobot::setWorldTranslation | ( | const std::vector< double > & | translation | ) |
задать смещение из СК мира в СК робота
translation | смещение |
|
protected |
Параметры сочленений робота
|
protected |
Сочленения робота
|
protected |
Звенья робота, сначала идут все звенья, участвующие в иерархии, затем - неучаствующие
|
protected |
максимальные по модулю значения ускорения каждой из координат
|
protected |
максимальные по модулю значения скорости каждой из координат
|
protected |
звенья, которые не участвуют в иерархии сцены
|
protected |
путь к описанию робота
|
protected |
матрица перехода из СК мира в СК робота
|
protected |
вектор перехода из СК мира в СК робота: position: x,y,z; rotation: r,p,y; scale: x,y,z