lebai sdk  1.1.28
lebai c++ sdk with swig to support sereval languages.
Functions
机械臂运动.

机械臂运动相关的接口. 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 ()
 停止所有运动.
 

Detailed Description

机械臂运动相关的接口.

Function Documentation

◆ get_motion_state()

std::string lebai::l_master::Robot::get_motion_state ( unsigned int  id)

查询指定MotionId的运动状态.

Returns
id 指定的运动id.

◆ move_pvat()

void lebai::l_master::Robot::move_pvat ( std::vector< double >  p,
std::vector< double >  v,
std::vector< double >  a,
double  t 
)

伺服运动PVAT

Parameters
p关节位置,或者坐标位置(将通过运动学反解转为关节位置).
v每个关节的速度 (rad/s)。如该值为数字,则表示所有关节速度相同.
a每个关节的加速度 (rad/s2)。如该值为数字,则表示所有关节加速度相同.
t运动时间 (s)

◆ movec() [1/2]

int lebai::l_master::Robot::movec ( const CartesianPose &  cart_via,
const CartesianPose &  cart,
double  rad,
double  a,
double  v,
double  t,
double  r 
)

通过坐标位置发送机械臂圆弧运动

Parameters
[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,则无交融半径.
Returns
>0 发送成功.
<=0 发送失败.

◆ movec() [2/2]

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);

Parameters
[in]joint_via圆弧上途径点关节位置,为关节的角度值构成的数组.为圆上三点中的一点.
[in]joint圆弧目标点关节位置,为关节的角度值构成的数组.如果编程rad不为零,则为圆上三点中的一点.
[in]rad圆弧角度值,单位为弧度,如果为零,则走到目标点,正负值用来确定圆弧方向.
[in]a加速度.
[in]v速度.
[in]t时间参数,如果设置时间不为零,则按照时间计算出速度,而不使用速度参数.
[in]r交融半径,设置为0,则无交融半径.
Returns
>0 发送成功.
<=0 发送失败.

◆ movej() [1/2]

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);

Note
该接口为异步接口,仅向控制器内部的运动缓冲区写入一个关节移动即返回,不会等待运动结束.
Parameters
[in]cart_pose目标位置在机器人基座标系下的坐标数据(目前不支持在其它坐标系下的坐标数据),CartesianPose = std::map<std::string,double>,应当包括键为x,y,z,rz,ry,rx的值.
[in]a加速度.
[in]v速度.
[in]t时间参数,如果设置时间不为零,则按照时间计算出速度,而不使用速度参数.
[in]r交融半径,设置为0,则无交融半径.
Returns
>0 发送成功
<=0 发送失败

◆ movej() [2/2]

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);

Note
该接口为异步接口,仅向控制器内部的运动缓冲区写入一个关节移动即返回,不会等待运动结束.
Parameters
[in]joint_positions目标位置的关节数据,为关节的角度值构成的数组.
[in]a加速度
[in]v速度
[in]t时间参数,如果设置时间不为零,则按照时间计算出速度,而不使用速度参数.
[in]r交融半径,设置为0,则无交融半径.
Returns
>0 发送成功
<=0 发送失败

◆ movel() [1/2]

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);

Note
该接口为异步接口,仅向控制器内部的运动缓冲区写入一个关节移动即返回,不会等待运动结束.
Parameters
cart_pose目标位置在机器人基座标系下的坐标数据(目前不支持在其它坐标系下的坐标数据),CartesianPose = std::map<std::string,double>,应当包括键为x,y,z,rz,ry,rx的值.
a加速度.
v速度.
t时间参数,如果设置时间不为零,则按照时间计算出速度,而不使用速度参数.
r交融半径,设置为0,则无交融半径.
Returns
>0 发送成功.
<=0 发送失败.

◆ movel() [2/2]

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);

Note
该接口为异步接口,仅向控制器内部的运动缓冲区写入一个关节移动即返回,不会等待运动结束.
Parameters
[in]joint_positions目标位置的关节数据,为关节的角度值构成的数组.
[in]a加速度.
[in]v速度.
[in]t时间参数,如果设置时间不为零,则按照时间计算出速度,而不使用速度参数.
[in]r交融半径,设置为0,则无交融半径.
Returns
>0 发送成功
<=0 发送失败

◆ speedj()

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);
Parameters
[in]a加速度.
[in]v速度矢量
[in]t运动时间,默认t = 0,一直运动到限位.
Returns
>0 发送成功.返回运动号
<=0 发送失败.

◆ speedl()

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);

Parameters
[in]a加速度.
[in]v速度矢量
[in]t运动时间,默认t = 0,一直运动到限位.
[in]reference参考坐标系,默认为零.
Returns
>0 发送成功.返回运动号
<=0 发送失败.

◆ towardj()

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);

Note
该接口为异步接口,仅向控制器内部的运动缓冲区写入一个关节自由移动即返回,不会等待运动结束.
Parameters
[in]joint_positions目标位置的关节数据,为关节的角度值构成的数组.
[in]a加速度.
[in]v速度.
[in]t时间参数,如果设置时间不为零,则按照时间计算出速度,而不使用速度参数.
[in]r交融半径,设置为0,则无交融半径.
Returns
>0 发送成功.返回运动号
<=0 发送失败.

◆ wait_move()

void lebai::l_master::Robot::wait_move ( unsigned int  id)

等待运动完成.

Parameters
id指定运动的id(0为等待全部任务).