![]() |
xCore-SDK
0.4.1
xCore SDK C# API
|
力控指令 更多...
#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.hpp 第 31 行定义.
void rokae::clr::ForceControl::fcInit | ( | FrameType | type, |
[Out] ErrorCode^% | ec | ||
) |
力控初始化
type | 力控坐标系,支持world/wobj/tool/baseFrame/flange。工具工件坐标系使用setToolset()设置的坐标系 |
ec | 错误码 |
void rokae::clr::ForceControl::fcMonitor | ( | bool | enable, |
[Out] ErrorCode^% | ec | ||
) |
启动/关闭力控模块保护监控。 设置监控参数(setJointMaxVel, setJointMaxMomentum, setJointMaxEnergy, setCartesianMaxVel)后,不立即生效, 调用fcMonitor(true)后开始生效,并且一直保持,直到调用fcMotion(false)后结束。 结束后保护阈值恢复成默认值,即仍然会有保护效果,关闭监控后不再是用户设置的参数
enable | true - 打开 | false - 关闭 |
ec | 错误码 |
void rokae::clr::ForceControl::fcStart | ( | [Out] ErrorCode^% | ec | ) |
开始力控,fcInit()之后调用。 如需在力控模式下执行运动指令,fcStart()之后可执行。 注意,如果在fcStart()之前通过moveAppend()下发了运动指令但未开始运动,fcStart之后就会执行这些运动指令。
ec | 错误码 |
void rokae::clr::ForceControl::fcStop | ( | [Out] ErrorCode^% | ec | ) |
停止力控
ec | 错误码 |
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 | 力矩相对的参考系
|
joint_torque_measured | 轴空间测量力信息,力传感器测量到的各轴所受力矩, 单位Nm |
external_torque_measured | 轴空间外部力信息,控制器根据机器人模型和测量力计算出的各轴所受力矩信息, 单位Nm |
cart_torque | 笛卡尔空间各个方向[X, Y, Z]受到的力矩, 单位Nm |
cart_force | 笛卡尔空间各个方向[X, Y, Z]受到的力, 单位N |
ec | 错误码 |
void rokae::clr::ForceControl::pauseOverlay | ( | [Out] ErrorCode^% | ec | ) |
暂停搜索运动。startOverlay()之后调用生效
ec | 错误码 |
void rokae::clr::ForceControl::restartOverlay | ( | [Out] ErrorCode^% | ec | ) |
重新开启暂停的搜索运动。pauseOverlay()之后调用生效。
ec | 错误码 |
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 | 错误码 |
void rokae::clr::ForceControl::setCartesianMaxVel | ( | array< double >^ | velocity, |
[Out] ErrorCode^% | ec | ||
) |
设置力控模式下, 机械臂末端相对基坐标系的最大速度
velocity | 依次为:X Y Z [m/s], A B C [rad/s], 范围 >=0 |
ec | 错误码 |
void rokae::clr::ForceControl::setCartesianNullspaceStiffness | ( | double | stiffness, |
[Out] ErrorCode^% | ec | ||
) |
设置笛卡尔零空间阻抗刚度。fcInit()之后调用生效
stiffness | 范围[0,4], 大于4会默认设置为4, 单位Nm/rad |
ec | 错误码 |
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 | 错误码 |
void rokae::clr::ForceControl::setControlType | ( | int | type, |
[Out] ErrorCode^% | ec | ||
) |
设置阻抗控制类型
type | 0 - 关节阻抗 | 1 - 笛卡尔阻抗 |
ec | 错误码 |
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。 设置下限时, 负值表示负方向上的最大值; 设置上限时, 负值表示负方向上的最小值。 |
isInside | true - 超出限制条件时停止等待; false - 符合限制条件时停止等待 |
timeout | 超时时间, 范围[1, 600], 单位秒 |
ec | 错误码 |
void rokae::clr::ForceControl::setJointDesiredTorque | ( | array< double >^ | torque, |
[Out] ErrorCode^% | ec | ||
) |
设置关节期望力矩。fcStart()之后可调用
torque | 力矩值, 范围[-30,30], 单位Nm |
ec | 错误码 |
void rokae::clr::ForceControl::setJointMaxEnergy | ( | array< double >^ | energy, |
[Out] ErrorCode^% | ec | ||
) |
设置力控模式下轴最大动能。 计算方式:F* v,可以理解为功率,F为力矩传感器读数,v为关节速度, 如果超过30个周期都超过动能阈值则触发保护
energy | 动能 [N·rad/s],范围 >=0 |
ec | 错误码 |
void rokae::clr::ForceControl::setJointMaxMomentum | ( | array< double >^ | momentum, |
[Out] ErrorCode^% | ec | ||
) |
设置力控模式下轴最大动量。 计算方式:F* t,可以理解为冲量,F为力矩传感器读数,t为控制周期,如果超过30个周期都超过动量阈值则触发保护
momentum | 动量 [N·s],范围 >=0 |
ec | 错误码 |
void rokae::clr::ForceControl::setJointMaxVel | ( | array< double >^ | velocity, |
[Out] ErrorCode^% | ec | ||
) |
设置力控模式下的轴最大速度
velocity | 轴速度 [rad/s],范围 >=0 |
ec | 错误码 |
void rokae::clr::ForceControl::setJointStiffness | ( | array< double >^ | stiffness, |
[Out] ErrorCode^% | ec | ||
) |
设置关节阻抗刚度, fcInit()之后调用生效.
各机型的最大刚度不同,请参考《xCore控制系统手册》 SetJntCtrlStiffVec指令的说明
stiffness | 各轴刚度 |
ec | 错误码 |
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 | 错误码 |
设置力控模块使用的负载信息,fcStart()之后可调用。
load | 负载 |
ec | 错误码 |
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 }, 单位米 |
isInside | true - 超出限制条件时停止等待; false - 符合限制条件时停止等待 |
timeout | 超时时间, 范围[1, 600], 单位秒 |
ec | 错误码 |
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 | 错误码 |
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。 设置下限时, 负值表示负方向上的最大值; 设置上限时, 负值表示负方向上的最小值。 |
isInside | true - 超出限制条件时停止等待; false - 符合限制条件时停止等待 |
timeout | 超时时间, 范围[1, 600], 单位秒 |
ec | 错误码 |
void rokae::clr::ForceControl::startOverlay | ( | [Out] ErrorCode^% | ec | ) |
开启搜索运动,fcStart()之后调用生效。 搜索运动为前序设置的 setSineOverlay()或 setLissajousOverlay()的叠加
ec | 错误码 |
void rokae::clr::ForceControl::stopOverlay | ( | [Out] ErrorCode^% | ec | ) |
停止搜索运动
ec | 错误码 |
void rokae::clr::ForceControl::waitCondition | ( | [Out] ErrorCode^% | ec | ) |
激活前序设置的终止条件并等待,直到满足这些条件或者超时
ec | 错误码 |
|
protected |
在文件 force_control_cli.hpp 第 37 行定义.
|
protected |
在文件 force_control_cli.hpp 第 38 行定义.
|
protected |
在文件 force_control_cli.hpp 第 34 行定义.
|
protected |
在文件 force_control_cli.hpp 第 36 行定义.
|
protected |
在文件 force_control_cli.hpp 第 35 行定义.