SDK接口与HMI功能对应
通用接口
本章列出C++版本的 xCore SDK 与Robot Assist界面的对应关系。
连接机器人
建立与机器人的连接。机器人地址为创建robot 实例时传入的
template<WorkType Wt, unsigned short DoF>
void rokae::Robot_T< Wt, DoF >::connectToRobot (error_code &ec )
- 参数:[out] ec: 错误码

断开连接
断开与机器人连接。断开前会停止机器人运动, 请注意安全
void rokae::BaseRobot::disconnectFromRobot (error_code & ec)
-
参数: [out] ec: 错误码

查询机器人基本信息
- 参数: [out] ec: 错误码
- 返回: 机器人基本信息(控制器版本,机型,轴数)
struct Info {
std::string id; ///< 机器人uid, 可用于区分连接的机器人
std::string mac; ///< Mac地址
std::string version; ///< 控制器版本
std::string type; ///< 机器人机型名称
int joint_num; ///< 轴数
};
Info robotInfo(error_code &ec) const noexcept;

机器人上下电急停状态
机器人上下电以及急停状态
PowerState powerState(error_code &ec)
-
参数: [out] ec: 错误码
-
返回:
-
on - 上电
-
off - 下电
-
estop - 急停
-
gstop - 安全门打开
-

机器人上下电
机器人上下电。注: 只有无外接使能开关或示教器的机器人才能手动模式上电。
void setPowerState(bool on, error_code &ec)
- 参数:
- [in] on: true-上电|false-下电
- [out] ec: 错误码
机器人操作模式及切换
查询机器人当前操作模式
OperateMode operateMode(error_code &ec)
切换手自动模式
void setOperateMode(OperateMode mode, error_code &ec)
enum class OperateMode {
manual = 0, ///< 手动
automatic = 1, ///< 自动
unknown = Unknown ///< 未知(发生异常)
};
查询机器人运行状态
查询机器人当前运行状态 (空闲,运动中, 拖动开启等)
enum class OperationState {
idle = 0, ///< 机器人静止
jog = 1, ///< jog状态(未运动)
rtControlling = 2, ///< 实时模式控制中
drag = 3, ///< 拖动已开启
rlProgram = 4, ///< RL工程运行中
demo = 5, ///< Demo演示中
dynamicIdentify = 6, ///< 动力学辨识中
frictionIdentify = 7, ///< 摩擦力辨识中
loadIdentify = 8, ///< 负载辨识中
moving = 9, ///< 机器人运动中
jogging = 10, ///< Jog运动中
unknown = Unknown ///< 未知
};
OperationState operationState(error_code &ec)
状态说明:

获取当前关节角度
机器人当前轴角度, 单位: 弧度
- 参数: [out] ec: 错误码
- 返回: 轴角度值
std::array<double, DoF> jointPos(error_code &ec)


关节速度
机器人当前关节速度,单位:弧度/秒
- 参数: [out] ec: 错误码
- 返回: 关节速度
std::array<double, DoF> jointVel(error_code &ec)

获取关节力矩
关节力传感器数值,单位:NM
- 参数: [out] ec: 错误码
- 返回: 关节速力矩的值
std::array<double, DoF> jointTorque(error_code &ec)

查询控制器日志
查询控制器最新的日志
- 参数:
- [in] count 查询个数,上限是 10 条
- [in] level 指定日志等级,空集合代表不指定
- [out] ec: 错误码
- 返回: 日志信息
std::vector< LogInfo > rokae::BaseRobot::queryControllerLog ( unsigned count,const std::set< LogInfo::Level > & level,error_code & ec )

设置碰撞检测相关参数,打开/关闭碰撞检测功能
设置碰撞检测相关参数, 打开碰撞检测功能
- 参数:
- [in] sensitivity 碰撞检测灵敏度,范围 0.01-2.0
- [in] behaviour 碰撞后机器人行为, 支持 stop1(安全停止, stop0 和 stop1 处理方式相同)和 stop2(触发暂停), suppleStop(柔顺停止)
- [in] fallback_compliance
- 碰撞后行为是安全停止或触发暂停时,该参数含义是碰撞后回退距离,单位: 米
- 碰撞后行为是柔顺停止时,该参数含义是柔顺度,范围 [0.0, 1.0]
- [out] ec: 错误码
void enableCollisionDetection(const std::array<double, DoF> &sensitivity, StopLevel behaviour,
double fallback_compliance, error_code &ec) noexcept;
关闭碰撞检测功能
void disableCollisionDetection(error_code &ec)

坐标系标定
坐标系标定 (N 点标定)
- 注解 各坐标系类型支持的标定方法及注意事项:
- 工具坐标系: 三点/四点/六点标定法
- 工件坐标系: 三点标定。标定结果不会相对用户坐标系做变换,即,若为外部工件, - 返回:的结果是相对于基坐标系的。
- 基坐标系: 六点标定。标定前请确保动力学约束和前馈已关闭。 若标定成功(无错误码),控制器会自动保存标定结果,重启控制器后生效。
- 导轨基坐标系: 三点标定。若标定成功(无错误码),控制器会自动保存标定结果,重启控制器后生效。
- 参数:
- [in] points 轴角度列表,列表长度为 N。例如,使用三点法标定工具坐标系,应传入 3 组轴角度。轴角度的单位是弧度。
- [in] is_held true - 机器人手持 | false - 外部。仅影响工具/工件的标定
- [in] base_aux 基坐标系标定时用到的辅助点, 单位[米]
- [out] ec: 错误码
- 返回: 标定结果,当错误码没有被置位时,标定结果有效
template<WorkType Wt, unsigned short DoF>
FrameCalibrationResult rokae::Robot_T< Wt, DoF >::calibrateFrame (
FrameType type,
const std::vector< std::array< double, DoF > > &points,
bool is_held,
error_code &ec,
const std::array< double, 3 > & base_aux = {} )



设置导轨参数
-
模板参数: 参数类型
-
参数:
-
[in] name: 参数名,见 value 说明
-
[in] value:
-
参数: 参数名 数据类型 开关 enable bool 基坐标系 baseFrame Frame 导轨名称 name std::string 编码器分辨率 encoderResolution int 减速比 reductionRatio double 电机最大转速(rpm) motorSpeed int 软限位(m), [下限,上限] softLimit std::vector<double>运动范围(m), [下限,上限] range std::vector<double>最大速度(m/s) maxSpeed double 最大加速度(m/s^2) maxAcc double 最大加加速度(m/s^3) maxJerk double
-
template<typename R>
void rokae::setRailParameter(const std::string &name, R value, error_code &ec)
读取导轨参数
- 模板参数: 参数类型
- 参数:
- [in] name 参数名,见 setRailParameter()
- [out] value 参数数值,见 setRailParameter()
- [out] ec: 错误码,参数名不存在或数据类型不匹配返回错误码
template<typename R>
void getRailParameter(const std::string &name, R &value, error_code &ec) noexcept;

机器人运行速率调整
动态调整机器人运动速率,非实时模式时生效。
- 参数:
- [in] scale: 运动指令的速度的比例,范围 0.01 - 1。当设置 scale 为 1 时,机器人将以路径原本速度运动。
- [out] ec: 错误码
void rokae::BaseRobot::adjustSpeedOnline(double scale, error_code &ec)

通信相关
设置输入仿真模式
state true - 打开 | false - 关闭
void setSimulationMode(bool state, error_code &ec)

设置 xPanel 对外供电模式
xPanel 设置可对机器人的末端工具进行模式设置,该功能仅适用于协作机器人 xMate CR SR系列。
struct xPanelOpt {
/*
@brief 供电模式
*/
enum Vout {
off, ///< 不输出
reserve, ///< 保留
supply12v, ///< 输出12V
supply24v, ///< 输出24V
};
};
void setxPanelVout(xPanelOpt::Vout opt, error_code& ec)

协作相关
打开拖动&关闭拖动
打开拖动
- space 拖动空间. 轴空间拖动仅支持自由拖拽类型
- type 拖动类型
- ec 错误码
void enableDrag(DragParameter::Space space, DragParameter::Type type, error_code& ec, bool enable_drag_button = false)
关闭拖动
void disableDrag(error_code& ec)

路径操作
开始录制路径&停止录制路径&取消录制&保存路径&路径回放&删除保存的路径

力传感器标定
力传感器标定。标定过程需要约100ms, 该函数不会阻塞等待标定完成。标定前需要通过setToolset()设置正确的负载(Toolset::load), 否则会影响标定结果准确性。
- all_axes true - 标定所有轴 | false - 单轴标定
- 轴下标, 范围[0, DoF), 仅当单轴标定时生效
- ec 错误码
void calibrateForceSensor(bool all_axes, int axis_index, error_code &ec)

SDK接口与RL指令的对应关系
轴运动MoveAbsJ
- 目标轴角度
- 末端线速度, 单位mm/s, 关节速度根据末端线速度大小划分几个区间,详见setDefaultSpeed()
- 转弯区, 单位mm
MoveAbsJCommand(JointPosition target, double speed = USE_DEFAULT, double zone = USE_DEFAULT);
RL指令:MoveAbsJ
说明:
MoveAbsJ (Move Absolute Joint) 用于把机器人和外部轴运动到一个以轴角度定义的位置上,用于快速定位或者移动机器人到某个精确的轴角度。所有的轴同步运动,机器人末端沿一条不规则的曲线移动,请注意是否有发生碰撞的危险。MoveAbsJ 指令中使用的 tool 参数不会影响机器人的终点位置,但控制器仍然需要使用 tool 参数进行动力学的计算。
轴运动MoveJ
- 目标笛卡尔点位
- 末端线速度, 单位mm/s, 关节速度根据末端线速度大小划分几个区间,详见setDefaultSpeed()
- 转弯区, 单位mm
MoveJCommand(CartesianPosition target, double speed = USE_DEFAULT, double zone = USE_DEFAULT);
RL指令:MoveJ
说明:
MoveJ (Move The Robot By Joint Movement) 用于对机器人末端运动轨迹没有要求的场合,
使机器人快速的从一个点运动到另一个点。所有的轴同步运动,机器人末端沿一条不规则的曲线移动,请注意是否有发生碰撞的危险。
MoveJ 指令与 MoveAbsJ 最大的区别在于给定的目标点格式不同。 MoveJ 的目标点是工具(TCP)的空间位姿而不是关节轴角度。
末端直线轨迹MoveL
- 目标笛卡尔点位
- 末端线速度, 单位mm/s, 关节速度根据末端线速度大小划分几个区间,详见setDefaultSpeed()
- 转弯区, 单位mm
MoveLCommand(CartesianPosition target, double speed = USE_DEFAULT, double zone = USE_DEFAULT);
RL指令:MoveL
说明:
用于将工具中心点 TCP 沿直线移动到给定的目标位置。
当起点和终点姿态不同时, 姿态将与位置同步旋转到终点的姿态。由于平移和旋转速度是分开指定的,为了保证不超出指定速度的限制, MoveL 指令最终的运动时间取决于姿态、位置和臂角变化时间较长的那一个。因此在执行某些特定轨迹(例如位移很小而姿态变化很大)时,如果机器人运动速度明显过慢或过快,请检查转动速度设置是否合理。当需要保持工具中心点 TCP 静止,而只调整工具姿态时,可以通过为 MoveL 指定位置相同但姿态不同的起点和终点来实现。
圆弧轨迹MoveC
- 目标点
- 辅助点
- 末端线速度, 单位mm/s, 关节速度根据末端线速度大小划分几个区间,详见setDefaultSpeed()
- 转弯区, 单位mm
MoveCCommand(CartesianPosition target, CartesianPosition aux, double speed = USE_DEFAULT, double zone = USE_DEFAULT);
RL指令:MoveC
说明:
MoveC ( Move Circle) 用于将工具中心点 TCP 沿圆弧经过中间辅助点移动到给定的目标位置。当起点和终点姿态不同时,姿态将与位置同步旋转到终点的姿态,辅助点的姿态不影响圆弧运动过程。由于平移和旋转速度是分开指定的,为了保证不超出指定速度的限制,MoveC 指令最终的运动时间取决于姿态、位置和臂角变化时间较长的那一个。 因此在某些特定轨迹(例如位移很小而姿态变化很大)下,如果机器人运动速度明显过慢或过快,请检查转动速度设置是否合理。
全圆轨迹MoveCF
- 目标点
- 辅助点
- 末端线速度, 单位mm/s
- 转弯区, 单位mm
- 执行角度, 单位弧度
MoveCFCommand(const CartesianPosition &target, const CartesianPosition &aux, double angle, double speed = USE_DEFAULT, double zone = USE_DEFAULT);
RL指令:MoveCF
说明:
MoveCF(Move Circle Full)用于将工具中心点 TCP 沿着由起点和两个辅助点确定的圆形路径,以给定的全圆执行角度进行移动和旋转。MoveCF 全圆运动的终点由全圆执行角度确定,两个辅助点只用来确定圆形路径的空间位置。全圆运动过程中姿态将以参数指定的方式变化,且辅助点的姿态不影响全圆运动过程中的姿态。MoveCF 指令最终的运动时间只取决于位置变化的时间。因此在圆半径较小的情况下,请检查运动速度设置是否合理,以免发生姿态旋转过快的情况。
螺旋线轨迹MoveSP
- target 终点姿态
- r0 初始半径 [m]
- rStep每旋转单位角度,半径的变化 [m/rad]
- angle合计旋转角度 [rad]
- dir 旋转方向, true - clockwise | false - anticlockwise
- speed 末端线速度, 单位mm/s
MoveSPCommand(const CartesianPosition &target, double r0, double rStep, double angle, bool dir, double speed = USE_DEFAULT);
RL指令:MoveSP
说明:
MoveSP (Move Spiral) 用于将工具中心点 TCP 按照指定初始半径、旋转增率、合计旋转角度和旋转方向,在与工件坐标系 xy 平行的平面内画阿基米德螺旋线。运动过程中姿态线性变化到目标点中的指定姿态。注意:当 MoveSP 指令运动中途暂停,继续运行,将以当前点为起点重新生成路径,不再继续之前的路径。
力控初始化
-
frame_type 力控坐标系,支持world/wobj/tool/base/flange。工具工件坐标系使用setToolset()设置的坐标系
-
ec 错误码
void fcInit(FrameType frame_type, error_code &ec)
RL指令:FcInit
说明:
用于力控开启前的一些初始化工作,如设置工件、工具和力控坐标系。
设置阻抗控制类型
-
type 0 - 关节阻抗 | 1 - 笛卡尔阻抗
-
ec 错误码
void setControlType(int type, error_code &ec)
RL指令:SetControlType (ctrl_type)
说明:
ctrl_type,数据类型:int,阻抗控制类型,
支持:
0:关节阻抗
1:笛卡尔阻抗
设置笛卡尔阻抗刚度
-
stiffness 依次为:X Y Z方向阻抗力刚度[N/m], X Y Z方向阻抗力矩刚度[Nm/rad]
-
ec 错误码
void setCartesianStiffness(const std::array<double, 6> &stiffness, error_code &ec)
RL指令:
SetCartCtrlStiffVec trans(stiff_x,trans_stiff_y,trans_stiff_z,rot_stiff_x,rot_stiff_y,rot_stiff_z);
trans_stiff_x,数据类型:double,X 方向笛卡尔阻抗力刚度,单位:N/m。
trans_stiff_y,数据类型:double,Y 方向笛卡尔阻抗力刚度,单位:N/m。
trans_stiff_z,数据类型:double,Z 方向笛卡尔阻抗力刚度,单位:N/m。
rot_stiff_x,数据类型:double,X 方向笛卡尔阻抗力矩刚度,单位:N.m/rad。
rot_stiff_y,数据类型:double,Y 方向笛卡尔阻抗力矩刚度,单位:N.m/rad。
rot_stiff_z,数据类型:double,Z 方向笛卡尔阻抗力矩刚度,单位:N.m/rad。
设置笛卡尔零空间阻抗刚度
-
stiffness 范围[0,4], 大于4会默认设置为4, 单位Nm/rad
-
ec 错误码
void setCartesianNullspaceStiffness(double stiffness, error_code &ec)
RL指令:
SetCartNsStiff(cart_ns_stiff);
cart_ns_stiff,数据类型:double,笛卡尔零空间阻抗刚度,取值范围(0~4),单位:Nm/rad。
设置关节阻抗刚度
- stiffness 各轴刚度
- ec 错误码
void setJointStiffness(const std::array<double, DoF> &stiffness, error_code &ec)
RL指令:
SetJntCtrlStiffVec( jnt1_stiff,jnt2_stiff,jnt3_stiff,jnt4_stiff,jnt5_stiff, jnt6_stiff,jnt7_stiff);
Jnt1_stiff,数据类型:double,关节 1 阻抗刚度,单位:Nm/rad。
Jnt2_stiff,数据类型:double,关节 2 阻抗刚度,单位:Nm/rad。
Jnt3_stiff,数据类型:double,关节 3 阻抗刚度,单位:Nm/rad。
Jnt4_stiff,数据类型:double,关节 4 阻抗刚度,单位:Nm/rad。
Jnt5_stiff,数据类型:double,关节 5 阻抗刚度,单位:Nm/rad。
Jnt6_stiff,数据类型:double,关节 6 阻抗刚度,单位:Nm/rad。
Jnt7_stiff,数据类型:double,关节 7 阻抗刚度,单位:Nm/rad。//设置 6 轴机器人时此参数默认为 0。
设置关节期望力矩
- torque 力矩值, 范围[-30,30], 单位Nm
- ec 错误码
void setJointDesiredTorque(const std::array<double, DoF> &torque, error_code &ec)
RL指令 SetJntTrqDes (tau_d1,tau_d2,tau_d3,tau_d4,tau_d5,tau_d6,tau_d7);
tau_d1,数据类型:double,关节 1 期望力矩,取值范围(-30~30),单位 N.m。
tau_d2,数据类型:double,关节 2 期望力矩,取值范围(-30~30),单位 N.m。
tau_d3,数据类型:double,关节 3 期望力矩,取值范围(-30~30),单位 N.m。
tau_d4,数据类型:double,关节 4 期望力矩,取值范围(-30~30),单位 N.m。
tau_d5,数据类型:double,关节 5 期望力矩,取值范围(-30~30),单位 N.m。
tau_d6,数据类型:double,关节 6 期望力矩,取值范围(-30~30),单位 N.m。
tau_d7,数据类型:double,关节 7 期望力矩,取值范围(-30~30),单位 N.m。//设置 6 轴机器人时此参数默认为 0。
设置笛卡尔期望力/力矩
- value 依次为: X Y Z方向笛卡尔期望力, 范围[-60,60], 单位N; X Y Z方向笛卡尔期望力矩, 范围[-10,10], 单位Nm
- ec 错误码
void setCartesianDesiredForce(const std::array<double, 6> &value, error_code &ec)
RL指令:SetCartForceDes (force_x,force_y,force_z,torque_x,torque_y,torque_z);
force_x,数据类型:double,X 方向笛卡尔期望力,取值范围(-60~60),单位 N。
force_y,数据类型:double,Y 方向笛卡尔期望力,取值范围(-60~60),单位 N。
force_z,数据类型:double,Z 方向笛卡尔期望力,取值范围(-60~60),单位 N。
torque_x,数据类型:double,X 方向笛卡尔期望力矩,取值范围(-10~10),单位 N.m。
torque_y,数据类型:double,Y 方向笛卡尔期望力矩,取值范围(-10~10),单位 N.m。
torque_z,数据类型:double,Z 方向笛卡尔期望力矩,取值范围(-10~10),单位 N.m。
设置绕单轴旋转的正弦搜索运动
设置阻抗控制类型为笛卡尔阻抗(即setControlType(1))之后, startOverlay()之前调用生效。
各机型的搜索运动幅值上限和搜索运动频率上限不同,请参考《xCore控制系统手册》 SetSineOverlay指令的说明。
- line_dir 搜索运动参考轴: 0 - X | 1 - Y | 2 - Z
- amplify 搜索运动幅值, 单位Nm
- frequency 搜索运动频率, 单位Hz
- phase 搜索运动相位, 范围[0, PI], 单位弧度
- bias 搜索运动偏置, 范围[0, 10], 单位Nm
- ec 错误码
void setSineOverlay(int line_dir, double amplify, double frequency, double phase,double bias, error_code &ec)
RL指令:SetSineOverlay( line_dir, amplify, frequncy, phase, bias);
line_dir,数据类型:int,搜索运动参考轴,支持
0:参考方向为 X 轴
1:参考方向为 Y 轴
2:参考方向为 Z 轴
Amplify,数据类型:double,搜索运动幅值,单位 N.m。
Frequncy,数据类型:double,搜索运动频率,单位 Hz。
Phase,数据类型:double,搜索运动相位,取值范围(-3.14~3.14),单位 rad。
Bias,数据类型:double,搜索运动偏置,取值范围(-10~10),单位 N.m。
设置平面内的莉萨如搜索运动
设置阻抗控制类型为笛卡尔阻抗(即setControlType(1))之后, startOverlay()之前调用生效。
- plane 搜索运动参考平面: 0 - XY | 1 - XZ | 2 - Y
- amplify_one 搜索运动一方向幅值, 范围[0, 20], 单位Nm
- frequency_one 搜索运动一方向频率, 范围[0, 5], 单位Hz
- amplify_two 搜索运动二方向幅值, 范围[0, 20]单位Nm
- frequency_two 搜索运动二方向频率, 范围[0, 5], 单位Hz
- phase_diff 搜索运动两个方向相位偏差, 范围[0, PI], 单位弧度
- ec 错误码
void setLissajousOverlay(int plane, double amplify_one, double frequency_one, double amplify_two,double frequency_two, double phase_diff, error_code &ec)
RL指令:SetLissajousOverlay(plane, amplify_one, frequncy_one, amplify_two, frequncy_two, phase_diff);
Plane,数据类型:int,搜索运动参考平面,支持
0:参考平面为 XY 平面
1:参考平面为 XZ 平面
2:参考平面为 YZ 平面
amplify_one,数据类型:double,搜索运动一方向幅值,取值范围(-20~20),单位 N.m。
frequncy_one,数据类型:double,搜索运动一方向频率,取值范围(0~5),单位 Hz。
amplify_two,数据类型:double,搜索运动二方向幅值,取值范围(-20~20),单位 N.m。
frequncy_two,数据类型:double,搜索运动二方向频率,取值范围(0~5),单位 Hz。
phase_diff,数据类型:double,搜索运动两个方向相位偏差,取值范围(-3.14~3.14),单位 rad
设置力控模块使用的负载
- load 负载
- ec 错误码
void setLoad(const Load &load, error_code &ec)
RL指令:SetLoad(m,rx,ry,rz,Ixx,Iyy,Izz );
M,数据类型:double,负载质量,单位:kg,范围(0~25);
Rx,数据类型:double,负载质心在法兰坐标系 x 方向的距离,单位:mm,范围(-300,300);
Ry,数据类型:double,负载质心在法兰坐标系 y 方向的距离,单位:mm,范围(-300,300);
Rz,数据类型:double,负载质心在法兰坐标系 z 方向的距离,单位:mm,范围(-300,300);
Ixx,数据类型:double,负载质心 x 轴的主轴惯量,单位:kg*mm^2,范围(0,100000);
Iyy,数据类型:double,负载质心 y 轴的主轴惯量,单位:kg*mm^2,范围(0,100000);
Izz,数据类型:double,负载质心 z 轴的主轴惯量,单位:kg*mm^2,范围(0,100000);
其他力控指令的SDK接口与RL的对应关系
| 功能 | SDK接口 | RL指令 |
|---|---|---|
| 开启前面设置的搜索运动 | startOverlay | StartOverlay |
| 暂停搜索运动 | pauseOverlay | PauseOverlay |
| 重新开启暂停的搜索运动 | restartOverlay() | RestartOverlay |
| 停止搜索运动 | stopOverlay | StopOverlay |
| 开启力控 | fcStart | FcStart |
| 停止力控 | fcStop | FcStop |
| 设置与接触力有关的终止条件 | setForceCondition | FcCondForce |
| 设置与接触力矩有关的终止条件 | setTorqueCondition | FcCondTorque |
| 设置与接触位置有关的终止条件 | setPoseBoxCondition | FcCondPosBox |
| 激活设置的终止条件并等待 | waitCondition | FcCondWaitWhile |
| 启动/关闭力控模块保护监控 | fcMonitor | FcMonitor |
| 设置力控模式下的轴最大速度 | setJointMaxVel | SetFcJointVelMax |
| 设置机械臂末端相对基坐标系的最大速度 | setCartesianMaxVel | SetFcCartVelMax |
| 设置力控模式下轴最大动量 | setJointMaxMomentum | SetFcJointMomentumMax |
| 设置力控模式下轴最大动能 | setJointMaxEnergy | SetFcJointEnergyMax |
路径回放
SDK接口:
-
name 要回放的路径名称
-
rate 回放速率, 应小于3.0, 1为路径原始速率。注意当速率大于1时,可能产生驱动器无法跟随错误
-
ec 错误码
void replayPath(const std::string& name, double rate, error_code& ec)
RL指令:ReplayPath( path [, rate] [, wobj/tool] );
Path,数据类型:path,拖动回放路径类型,在路径列表中定义、拖动示教录制。
Rate,数据类型:double,回放百分比,范围 0.01~3.00。0.01 表示按照拖动时 1%运行速率回放;
1.00 表示 100%运行速率原速回放;3.00 表示 300%运行速率回放。
wobj/tool,数据类型:工具|工件。指定多动回放指令的末端设备是某个工具或者工件,回放时机
器人会按照对应设备的工具更改回放的控制参数,提高运行的稳定性