lebai sdk
1.1.28
lebai c++ sdk with swig to support sereval languages.
|
机械臂运动相关的接口. More...
Functions | |
int | lebai::l_master::Robot::movej (const std::vector< double > &joint_positions, double a, double v, double t, double r) |
通过关节位置发送机械臂关节移动 More... | |
int | lebai::l_master::Robot::movej (const CartesianPose &cart_pose, double a, double v, double t, double r) |
通过坐标位置发送机械臂关节移动 More... | |
int | lebai::l_master::Robot::movel (const std::vector< double > &joint_positions, double a, double v, double t, double r) |
通过关节位置发送机械臂直线移动 More... | |
int | lebai::l_master::Robot::movel (const CartesianPose &cart_pose, double a, double v, double t, double r) |
通过坐标位置发送机械臂直线移动 More... | |
int | lebai::l_master::Robot::movec (const std::vector< double > &joint_via, const std::vector< double > &joint, double rad, double a, double v, double t, double r) |
通过关节位置发送机械臂圆弧运动. More... | |
int | lebai::l_master::Robot::movec (const CartesianPose &cart_via, const CartesianPose &cart, double rad, double a, double v, double t, double r) |
通过坐标位置发送机械臂圆弧运动 More... | |
int | lebai::l_master::Robot::speedj (double a, const std::vector< double > &v, double t=0.0) |
通过关节速度矢量发送机械臂关节匀速运动 More... | |
int | lebai::l_master::Robot::speedl (double a, const CartesianPose &v, double t=0.0, const CartesianPose &reference={{"x", 0.0}, {"y", 0.0}, {"z", 0.0}, {"rx", 0.0}, {"ry", 0.0}, {"rz", 0.0}}) |
通过坐标速度矢量发送机械臂关节匀速运动 More... | |
int | lebai::l_master::Robot::towardj (const std::vector< double > &joint_positions, double a, double v, double t, double r) |
通过关节位置发送机械臂关节自由移动. More... | |
void | lebai::l_master::Robot::move_pvat (std::vector< double > p, std::vector< double > v, std::vector< double > a, double t) |
伺服运动PVAT More... | |
void | lebai::l_master::Robot::wait_move (unsigned int id) |
等待运动完成. More... | |
void | lebai::l_master::Robot::wait_move () |
等待所有运动完成. | |
unsigned int | lebai::l_master::Robot::get_running_motion () |
查询当前正在运动的MotionId(无运动时返回上次MotionId). | |
std::string | lebai::l_master::Robot::get_motion_state (unsigned int id) |
查询指定MotionId的运动状态. More... | |
void | lebai::l_master::Robot::stop_move () |
停止所有运动. | |
机械臂运动相关的接口.
std::string lebai::l_master::Robot::get_motion_state | ( | unsigned int | id | ) |
查询指定MotionId的运动状态.
void lebai::l_master::Robot::move_pvat | ( | std::vector< double > | p, |
std::vector< double > | v, | ||
std::vector< double > | a, | ||
double | t | ||
) |
伺服运动PVAT
p | 关节位置,或者坐标位置(将通过运动学反解转为关节位置). |
v | 每个关节的速度 (rad/s)。如该值为数字,则表示所有关节速度相同. |
a | 每个关节的加速度 (rad/s2)。如该值为数字,则表示所有关节加速度相同. |
t | 运动时间 (s) |
int lebai::l_master::Robot::movec | ( | const CartesianPose & | cart_via, |
const CartesianPose & | cart, | ||
double | rad, | ||
double | a, | ||
double | v, | ||
double | t, | ||
double | r | ||
) |
通过坐标位置发送机械臂圆弧运动
[in] | cart_via | 圆弧上途径点坐标位置,应当包括键为x,y,z,rz,ry,rx的值.为圆上三点中的一点. |
[in] | cart | 圆弧目标点坐标位置,应当包括键为x,y,z,rz,ry,rx的值.如果编程rad不为零,则为圆上三点中的一点. |
[in] | rad | 圆弧角度值,单位为弧度,如果为零,则走到目标点,正负值用来确定圆弧方向. |
[in] | a | 加速度. |
[in] | v | 速度. |
[in] | t | 时间参数,如果设置时间不为零,则按照时间计算出速度,而不使用速度参数. |
[in] | r | 交融半径,设置为0,则无交融半径. |
int lebai::l_master::Robot::movec | ( | const std::vector< double > & | joint_via, |
const std::vector< double > & | joint, | ||
double | rad, | ||
double | a, | ||
double | v, | ||
double | t, | ||
double | r | ||
) |
通过关节位置发送机械臂圆弧运动.
示例代码
robot.movec({3.0/ 180.0 * M_PI, -48.0/ 180.0 * M_PI, 78.0/ 180.0 *
M_PI, 9.0/ 180.0 * M_PI, -67.0/ 180.0 * M_PI, -3.0/ 180.0 * M_PI}, {-28/ 180.0 * M_PI, -59.0/ 180.0 * M_PI, 96.0/ 180.0 * M_PI, -2.0/ 180.0 * M_PI, -92.0/ 180.0 * M_PI, 16.0/ 180.0 * M_PI}, 0.0, 1.0, 0.5, 0.0, 0.0);
[in] | joint_via | 圆弧上途径点关节位置,为关节的角度值构成的数组.为圆上三点中的一点. |
[in] | joint | 圆弧目标点关节位置,为关节的角度值构成的数组.如果编程rad不为零,则为圆上三点中的一点. |
[in] | rad | 圆弧角度值,单位为弧度,如果为零,则走到目标点,正负值用来确定圆弧方向. |
[in] | a | 加速度. |
[in] | v | 速度. |
[in] | t | 时间参数,如果设置时间不为零,则按照时间计算出速度,而不使用速度参数. |
[in] | r | 交融半径,设置为0,则无交融半径. |
int lebai::l_master::Robot::movej | ( | const CartesianPose & | cart_pose, |
double | a, | ||
double | v, | ||
double | t, | ||
double | r | ||
) |
通过坐标位置发送机械臂关节移动
示例代码:
robot.movej({”x",-0.296},{"y",-0.295},{"z",0.285},{"rz",60.0 / 180.0 *
M_PI},{"ry",-5.0 / 180.0 * M_PI},{"rx", 81.0 / 180.0 * M_PI}}, 3.0, 1.0, 0.0, 0.0);
[in] | cart_pose | 目标位置在机器人基座标系下的坐标数据(目前不支持在其它坐标系下的坐标数据),CartesianPose = std::map<std::string,double>,应当包括键为x,y,z,rz,ry,rx的值. |
[in] | a | 加速度. |
[in] | v | 速度. |
[in] | t | 时间参数,如果设置时间不为零,则按照时间计算出速度,而不使用速度参数. |
[in] | r | 交融半径,设置为0,则无交融半径. |
int lebai::l_master::Robot::movej | ( | const std::vector< double > & | joint_positions, |
double | a, | ||
double | v, | ||
double | t, | ||
double | r | ||
) |
通过关节位置发送机械臂关节移动
示例代码:
std::vector<double> joint_positions = {0.0, -60.0 / 180.0 * M_PI, 80.0
/ 180.0 * M_PI, -10.0 / 180.0 * M_PI, -60.0 / 180.0 * M_PI, 0.0}; robot.movej(joint_positions, 3.0, 1.0, 0.0, 0.0);
[in] | joint_positions | 目标位置的关节数据,为关节的角度值构成的数组. |
[in] | a | 加速度 |
[in] | v | 速度 |
[in] | t | 时间参数,如果设置时间不为零,则按照时间计算出速度,而不使用速度参数. |
[in] | r | 交融半径,设置为0,则无交融半径. |
int lebai::l_master::Robot::movel | ( | const CartesianPose & | cart_pose, |
double | a, | ||
double | v, | ||
double | t, | ||
double | r | ||
) |
通过坐标位置发送机械臂直线移动
示例代码:
robot.movel({”x",-0.296},{"y",-0.295},{"z",0.285},{"rz",60.0 / 180.0 *
M_PI},{"ry",-5.0 / 180.0 * M_PI},{"rx", 81.0 / 180.0 * M_PI}}, 3.0, 1.0, 0.0, 0.0);
cart_pose | 目标位置在机器人基座标系下的坐标数据(目前不支持在其它坐标系下的坐标数据),CartesianPose = std::map<std::string,double>,应当包括键为x,y,z,rz,ry,rx的值. |
a | 加速度. |
v | 速度. |
t | 时间参数,如果设置时间不为零,则按照时间计算出速度,而不使用速度参数. |
r | 交融半径,设置为0,则无交融半径. |
int lebai::l_master::Robot::movel | ( | const std::vector< double > & | joint_positions, |
double | a, | ||
double | v, | ||
double | t, | ||
double | r | ||
) |
通过关节位置发送机械臂直线移动
示例代码:
std::vector<double> joint_positions = {0.0, -60.0 / 180.0 * M_PI, 80.0
/ 180.0 * M_PI, -10.0 / 180.0 * M_PI, -60.0 / 180.0 * M_PI, 0.0}; robot.movel(joint_positions, 3.0, 1.0, 0.0, 0.0);
[in] | joint_positions | 目标位置的关节数据,为关节的角度值构成的数组. |
[in] | a | 加速度. |
[in] | v | 速度. |
[in] | t | 时间参数,如果设置时间不为零,则按照时间计算出速度,而不使用速度参数. |
[in] | r | 交融半径,设置为0,则无交融半径. |
int lebai::l_master::Robot::speedj | ( | double | a, |
const std::vector< double > & | v, | ||
double | t = 0.0 |
||
) |
通过关节速度矢量发送机械臂关节匀速运动
示例代码:
robot.speedj( 1.0, {0.5,0.0,0.0,0.0,0.0,0.0}, 0.0);
[in] | a | 加速度. |
[in] | v | 速度矢量 |
[in] | t | 运动时间,默认t = 0,一直运动到限位. |
int lebai::l_master::Robot::speedl | ( | double | a, |
const CartesianPose & | v, | ||
double | t = 0.0 , |
||
const CartesianPose & | reference = {{"x", 0.0}, {"y", 0.0}, {"z", 0.0}, {"rx", 0.0}, {"ry", 0.0}, {"rz", 0.0}} |
||
) |
通过坐标速度矢量发送机械臂关节匀速运动
示例代码:
robot.speedl( 1.0, {{"x", 0.0}, {"y", 0.0}, {"z", 0.1}, {"rx", 0.0},
{"ry", 0.0}, {"rz", 0.0}}, 0.0);
[in] | a | 加速度. |
[in] | v | 速度矢量 |
[in] | t | 运动时间,默认t = 0,一直运动到限位. |
[in] | reference | 参考坐标系,默认为零. |
int lebai::l_master::Robot::towardj | ( | const std::vector< double > & | joint_positions, |
double | a, | ||
double | v, | ||
double | t, | ||
double | r | ||
) |
通过关节位置发送机械臂关节自由移动.
示例代码:
std::vector<double> joint_positions = {0.0, -60.0 / 180.0 * M_PI, 80.0
/ 180.0 * M_PI, -10.0 / 180.0 * M_PI, -60.0 / 180.0 * M_PI, 0.0}; robot.toawrdj(joint_positions, 3.0, 1.0, 0.0, 0.0);
[in] | joint_positions | 目标位置的关节数据,为关节的角度值构成的数组. |
[in] | a | 加速度. |
[in] | v | 速度. |
[in] | t | 时间参数,如果设置时间不为零,则按照时间计算出速度,而不使用速度参数. |
[in] | r | 交融半径,设置为0,则无交融半径. |
void lebai::l_master::Robot::wait_move | ( | unsigned int | id | ) |
等待运动完成.
id | 指定运动的id(0为等待全部任务). |