xCore-SDK  0.4.1
xCore SDK C# API
rokae::clr::ForceControl类 参考

力控指令 更多...

#include <force_control_cli.hpp>

Public 成员函数

 ForceControl (rokae::ForceControl_T< 5 > *)
 
 ForceControl (rokae::ForceControl_T< 6 > *)
 
 ForceControl (rokae::ForceControl_T< 7 > *)
 
void getEndTorque (FrameType ref_type, array< double >^% joint_torque_measured, array< double >^% external_torque_measured, array< double >^% cart_torque, array< double >^% cart_force, [Out] ErrorCode^% ec)
 获取当前力矩信息 更多...
 
void fcInit (FrameType type, [Out] ErrorCode^% ec)
 力控初始化 更多...
 
void fcStart ([Out] ErrorCode^% ec)
 开始力控,fcInit()之后调用。 如需在力控模式下执行运动指令,fcStart()之后可执行。 注意,如果在fcStart()之前通过moveAppend()下发了运动指令但未开始运动,fcStart之后就会执行这些运动指令。 更多...
 
void fcStop ([Out] ErrorCode^% ec)
 停止力控 更多...
 
void setControlType (int type, [Out] ErrorCode^% ec)
 设置阻抗控制类型 更多...
 
void setLoad (Load^ load, [Out] ErrorCode^% ec)
 设置力控模块使用的负载信息,fcStart()之后可调用。 更多...
 
void setJointStiffness (array< double >^ stiffness, [Out] ErrorCode^% ec)
 设置关节阻抗刚度, fcInit()之后调用生效. 更多...
 
void setCartesianStiffness (array< double >^ stiffness, [Out] ErrorCode^% ec)
 设置笛卡尔阻抗刚度, fcInit()之后调用生效. 更多...
 
void setCartesianNullspaceStiffness (double stiffness, [Out] ErrorCode^% ec)
 设置笛卡尔零空间阻抗刚度。fcInit()之后调用生效 更多...
 
void setJointDesiredTorque (array< double >^ torque, [Out] ErrorCode^% ec)
 设置关节期望力矩。fcStart()之后可调用 更多...
 
void setCartesianDesiredForce (array< double >^ value, [Out] ErrorCode^% ec)
 设置笛卡尔期望力/力矩。fcStart()之后可调用 更多...
 
void setSineOverlay (int line_dir, double amplify, double frequency, double phase, double bias, [Out] ErrorCode^% ec)
 设置绕单轴旋转的正弦搜索运动。 设置阻抗控制类型为笛卡尔阻抗(即setControlType(1))之后, startOverlay()之前调用生效。 各机型的搜索运动幅值上限和搜索运动频率上限不同,请参考《xCore控制系统手册》 SetSineOverlay指令的说明。 更多...
 
void setLissajousOverlay (int plane, double amplify_one, double frequency_one, double amplify_two, double frequency_two, double phase_diff, [Out] ErrorCode^% ec)
 设置平面内的莉萨如搜索运动。 设置阻抗控制类型为笛卡尔阻抗(即setControlType(1))之后, startOverlay()之前调用生效。 更多...
 
void startOverlay ([Out] ErrorCode^% ec)
 开启搜索运动,fcStart()之后调用生效。 搜索运动为前序设置的 setSineOverlay()setLissajousOverlay()的叠加 更多...
 
void stopOverlay ([Out] ErrorCode^% ec)
 停止搜索运动 更多...
 
void pauseOverlay ([Out] ErrorCode^% ec)
 暂停搜索运动。startOverlay()之后调用生效 更多...
 
void restartOverlay ([Out] ErrorCode^% ec)
 重新开启暂停的搜索运动。pauseOverlay()之后调用生效。 更多...
 
void setForceCondition (array< double >^ range, bool isInside, double timeout, [Out] ErrorCode^% ec)
 设置与接触力有关的终止条件 更多...
 
void setTorqueCondition (array< double >^ range, bool isInside, double timeout, [Out] ErrorCode^% ec)
 设置与接触力矩有关的终止条件 更多...
 
void setPoseBoxCondition (Frame^ supervising_frame, array< double >^ box, bool isInside, double timeout, [Out] ErrorCode^% ec)
 设置与接触位置有关的终止条件 更多...
 
void waitCondition ([Out] ErrorCode^% ec)
 激活前序设置的终止条件并等待,直到满足这些条件或者超时 更多...
 
void fcMonitor (bool enable, [Out] ErrorCode^% ec)
 启动/关闭力控模块保护监控。 设置监控参数(setJointMaxVel, setJointMaxMomentum, setJointMaxEnergy, setCartesianMaxVel)后,不立即生效, 调用fcMonitor(true)后开始生效,并且一直保持,直到调用fcMotion(false)后结束。 结束后保护阈值恢复成默认值,即仍然会有保护效果,关闭监控后不再是用户设置的参数 更多...
 
void setJointMaxVel (array< double >^ velocity, [Out] ErrorCode^% ec)
 设置力控模式下的轴最大速度 更多...
 
void setJointMaxMomentum (array< double >^ momentum, [Out] ErrorCode^% ec)
 设置力控模式下轴最大动量。 计算方式:F* t,可以理解为冲量,F为力矩传感器读数,t为控制周期,如果超过30个周期都超过动量阈值则触发保护 更多...
 
void setJointMaxEnergy (array< double >^ energy, [Out] ErrorCode^% ec)
 设置力控模式下轴最大动能。 计算方式:F* v,可以理解为功率,F为力矩传感器读数,v为关节速度, 如果超过30个周期都超过动能阈值则触发保护 更多...
 
void setCartesianMaxVel (array< double >^ velocity, [Out] ErrorCode^% ec)
 设置力控模式下, 机械臂末端相对基坐标系的最大速度 更多...
 

Protected 属性

rokae::ForceControl_T< 5 > * fc_cr5
 
rokae::ForceControl_T< 6 > * fc_xmate
 
rokae::ForceControl_T< 7 > * fc_pro
 
const int dof
 
rokae::BaseForceControl * fc_base
 

详细描述

力控指令

在文件 force_control_cli.hpp31 行定义.

成员函数说明

◆ fcInit()

void rokae::clr::ForceControl::fcInit ( FrameType  type,
[Out] ErrorCode^%  ec 
)

力控初始化

参数
type力控坐标系,支持world/wobj/tool/baseFrame/flange。工具工件坐标系使用setToolset()设置的坐标系
ec错误码

◆ fcMonitor()

void rokae::clr::ForceControl::fcMonitor ( bool  enable,
[Out] ErrorCode^%  ec 
)

启动/关闭力控模块保护监控。 设置监控参数(setJointMaxVel, setJointMaxMomentum, setJointMaxEnergy, setCartesianMaxVel)后,不立即生效, 调用fcMonitor(true)后开始生效,并且一直保持,直到调用fcMotion(false)后结束。 结束后保护阈值恢复成默认值,即仍然会有保护效果,关闭监控后不再是用户设置的参数

参数
enabletrue - 打开 | false - 关闭
ec错误码

◆ fcStart()

void rokae::clr::ForceControl::fcStart ( [Out] ErrorCode^%  ec)

开始力控,fcInit()之后调用。 如需在力控模式下执行运动指令,fcStart()之后可执行。 注意,如果在fcStart()之前通过moveAppend()下发了运动指令但未开始运动,fcStart之后就会执行这些运动指令。

参数
ec错误码

◆ fcStop()

void rokae::clr::ForceControl::fcStop ( [Out] ErrorCode^%  ec)

停止力控

参数
ec错误码

◆ getEndTorque()

void rokae::clr::ForceControl::getEndTorque ( FrameType  ref_type,
array< double >^%  joint_torque_measured,
array< double >^%  external_torque_measured,
array< double >^%  cart_torque,
array< double >^%  cart_force,
[Out] ErrorCode^%  ec 
)

获取当前力矩信息

参数
ref_type力矩相对的参考系
  • FrameType::world末端相对世界坐标系的力矩信息
  • FrameType::flange末端相对于法兰盘的力矩信息
  • FrameType::tool末端相对于TCP点的力矩信息
joint_torque_measured轴空间测量力信息,力传感器测量到的各轴所受力矩, 单位Nm
external_torque_measured轴空间外部力信息,控制器根据机器人模型和测量力计算出的各轴所受力矩信息, 单位Nm
cart_torque笛卡尔空间各个方向[X, Y, Z]受到的力矩, 单位Nm
cart_force笛卡尔空间各个方向[X, Y, Z]受到的力, 单位N
ec错误码

◆ pauseOverlay()

void rokae::clr::ForceControl::pauseOverlay ( [Out] ErrorCode^%  ec)

暂停搜索运动。startOverlay()之后调用生效

参数
ec错误码

◆ restartOverlay()

void rokae::clr::ForceControl::restartOverlay ( [Out] ErrorCode^%  ec)

重新开启暂停的搜索运动。pauseOverlay()之后调用生效。

参数
ec错误码

◆ setCartesianDesiredForce()

void rokae::clr::ForceControl::setCartesianDesiredForce ( array< double >^  value,
[Out] ErrorCode^%  ec 
)

设置笛卡尔期望力/力矩。fcStart()之后可调用

参数
value依次为: X Y Z方向笛卡尔期望力, 范围[-60,60], 单位N; X Y Z方向笛卡尔期望力矩, 范围[-10,10], 单位Nm
ec错误码

◆ setCartesianMaxVel()

void rokae::clr::ForceControl::setCartesianMaxVel ( array< double >^  velocity,
[Out] ErrorCode^%  ec 
)

设置力控模式下, 机械臂末端相对基坐标系的最大速度

参数
velocity依次为:X Y Z [m/s], A B C [rad/s], 范围 >=0
ec错误码

◆ setCartesianNullspaceStiffness()

void rokae::clr::ForceControl::setCartesianNullspaceStiffness ( double  stiffness,
[Out] ErrorCode^%  ec 
)

设置笛卡尔零空间阻抗刚度。fcInit()之后调用生效

参数
stiffness范围[0,4], 大于4会默认设置为4, 单位Nm/rad
ec错误码

◆ setCartesianStiffness()

void rokae::clr::ForceControl::setCartesianStiffness ( array< double >^  stiffness,
[Out] ErrorCode^%  ec 
)

设置笛卡尔阻抗刚度, fcInit()之后调用生效.

各机型的最大刚度不同,请参考《xCore控制系统手册》 SetCartCtrlStiffVec指令的说明

参数
stiffness依次为:X Y Z方向阻抗力刚度[N/m], X Y Z方向阻抗力矩刚度[Nm/rad]
ec错误码

◆ setControlType()

void rokae::clr::ForceControl::setControlType ( int  type,
[Out] ErrorCode^%  ec 
)

设置阻抗控制类型

参数
type0 - 关节阻抗 | 1 - 笛卡尔阻抗
ec错误码

◆ setForceCondition()

void rokae::clr::ForceControl::setForceCondition ( array< double >^  range,
bool  isInside,
double  timeout,
[Out] ErrorCode^%  ec 
)

设置与接触力有关的终止条件

参数
range各方向上的力限制 { X_min, X_max, Y_min, Y_max, Z_min, Z_max }, 单位N。 设置下限时, 负值表示负方向上的最大值; 设置上限时, 负值表示负方向上的最小值。
isInsidetrue - 超出限制条件时停止等待; false - 符合限制条件时停止等待
timeout超时时间, 范围[1, 600], 单位秒
ec错误码

◆ setJointDesiredTorque()

void rokae::clr::ForceControl::setJointDesiredTorque ( array< double >^  torque,
[Out] ErrorCode^%  ec 
)

设置关节期望力矩。fcStart()之后可调用

参数
torque力矩值, 范围[-30,30], 单位Nm
ec错误码

◆ setJointMaxEnergy()

void rokae::clr::ForceControl::setJointMaxEnergy ( array< double >^  energy,
[Out] ErrorCode^%  ec 
)

设置力控模式下轴最大动能。 计算方式:F* v,可以理解为功率,F为力矩传感器读数,v为关节速度, 如果超过30个周期都超过动能阈值则触发保护

参数
energy动能 [N·rad/s],范围 >=0
ec错误码

◆ setJointMaxMomentum()

void rokae::clr::ForceControl::setJointMaxMomentum ( array< double >^  momentum,
[Out] ErrorCode^%  ec 
)

设置力控模式下轴最大动量。 计算方式:F* t,可以理解为冲量,F为力矩传感器读数,t为控制周期,如果超过30个周期都超过动量阈值则触发保护

参数
momentum动量 [N·s],范围 >=0
ec错误码

◆ setJointMaxVel()

void rokae::clr::ForceControl::setJointMaxVel ( array< double >^  velocity,
[Out] ErrorCode^%  ec 
)

设置力控模式下的轴最大速度

参数
velocity轴速度 [rad/s],范围 >=0
ec错误码

◆ setJointStiffness()

void rokae::clr::ForceControl::setJointStiffness ( array< double >^  stiffness,
[Out] ErrorCode^%  ec 
)

设置关节阻抗刚度, fcInit()之后调用生效.

各机型的最大刚度不同,请参考《xCore控制系统手册》 SetJntCtrlStiffVec指令的说明

参数
stiffness各轴刚度
ec错误码

◆ setLissajousOverlay()

void rokae::clr::ForceControl::setLissajousOverlay ( int  plane,
double  amplify_one,
double  frequency_one,
double  amplify_two,
double  frequency_two,
double  phase_diff,
[Out] ErrorCode^%  ec 
)

设置平面内的莉萨如搜索运动。 设置阻抗控制类型为笛卡尔阻抗(即setControlType(1))之后, startOverlay()之前调用生效。

参数
plane搜索运动参考平面: 0 - XY | 1 - XZ | 2 - YZ
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错误码

◆ setLoad()

void rokae::clr::ForceControl::setLoad ( Load load,
[Out] ErrorCode^%  ec 
)

设置力控模块使用的负载信息,fcStart()之后可调用。

参数
load负载
ec错误码

◆ setPoseBoxCondition()

void rokae::clr::ForceControl::setPoseBoxCondition ( Frame supervising_frame,
array< double >^  box,
bool  isInside,
double  timeout,
[Out] ErrorCode^%  ec 
)

设置与接触位置有关的终止条件

参数
supervising_frame长方体所在的参考坐标系, 相对于外部工件坐标系。外部工件坐标系是通过setToolset()设置的, toolset.reference
box定义一个长方体 { X_start, X_end, Y_start, Y_end, Z_start, Z_end }, 单位米
isInsidetrue - 超出限制条件时停止等待; false - 符合限制条件时停止等待
timeout超时时间, 范围[1, 600], 单位秒
ec错误码

◆ setSineOverlay()

void rokae::clr::ForceControl::setSineOverlay ( int  line_dir,
double  amplify,
double  frequency,
double  phase,
double  bias,
[Out] ErrorCode^%  ec 
)

设置绕单轴旋转的正弦搜索运动。 设置阻抗控制类型为笛卡尔阻抗(即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错误码

◆ setTorqueCondition()

void rokae::clr::ForceControl::setTorqueCondition ( array< double >^  range,
bool  isInside,
double  timeout,
[Out] ErrorCode^%  ec 
)

设置与接触力矩有关的终止条件

参数
range各方向上的力矩限制 { X_min, X_max, Y_min, Y_max, Z_min, Z_max }, 单位Nm。 设置下限时, 负值表示负方向上的最大值; 设置上限时, 负值表示负方向上的最小值。
isInsidetrue - 超出限制条件时停止等待; false - 符合限制条件时停止等待
timeout超时时间, 范围[1, 600], 单位秒
ec错误码

◆ startOverlay()

void rokae::clr::ForceControl::startOverlay ( [Out] ErrorCode^%  ec)

开启搜索运动,fcStart()之后调用生效。 搜索运动为前序设置的 setSineOverlay()setLissajousOverlay()的叠加

参数
ec错误码

◆ stopOverlay()

void rokae::clr::ForceControl::stopOverlay ( [Out] ErrorCode^%  ec)

停止搜索运动

参数
ec错误码

◆ waitCondition()

void rokae::clr::ForceControl::waitCondition ( [Out] ErrorCode^%  ec)

激活前序设置的终止条件并等待,直到满足这些条件或者超时

参数
ec错误码

类成员变量说明

◆ dof

const int rokae::clr::ForceControl::dof
protected

在文件 force_control_cli.hpp37 行定义.

◆ fc_base

rokae::BaseForceControl* rokae::clr::ForceControl::fc_base
protected

在文件 force_control_cli.hpp38 行定义.

◆ fc_cr5

rokae::ForceControl_T<5>* rokae::clr::ForceControl::fc_cr5
protected

在文件 force_control_cli.hpp34 行定义.

◆ fc_pro

rokae::ForceControl_T<7>* rokae::clr::ForceControl::fc_pro
protected

在文件 force_control_cli.hpp36 行定义.

◆ fc_xmate

rokae::ForceControl_T<6>* rokae::clr::ForceControl::fc_xmate
protected

在文件 force_control_cli.hpp35 行定义.


该类的文档由以下文件生成: