ARCS SDK API
0.24.0
|
机器人算法相关的对外接口 更多...
#include <robot_algorithm.h>
Public 成员函数 | |
RobotAlgorithm () | |
virtual | ~RobotAlgorithm () |
ForceSensorCalibResult | calibrateTcpForceSensor (const std::vector< std::vector< double >> &forces, const std::vector< std::vector< double >> &poses) |
力传感器标定算法(三点标定法) 更多... | |
ForceSensorCalibResultWithError | calibrateTcpForceSensor2 (const std::vector< std::vector< double >> &forces, const std::vector< std::vector< double >> &poses) |
力传感器标定算法(三点标定法) 更多... | |
int | payloadIdentify (const std::string &data_file_no_payload, const std::string &data_file_with_payload) |
基于电流的负载辨识算法接口 更多... | |
int | payloadIdentify1 (const std::string &file_name) |
新版基于电流的负载辨识算法接口 更多... | |
int | payloadCalculateFinished () |
负载辨识是否计算完成 更多... | |
Payload | getPayloadIdentifyResult () |
获取负载辨识结果 更多... | |
bool | frictionModelIdentify (const std::vector< std::vector< double >> &q, const std::vector< std::vector< double >> &qd, const std::vector< std::vector< double >> &qdd, const std::vector< std::vector< double >> &temp) |
关节摩擦力模型辨识算法接口 更多... | |
ResultWithErrno | calibWorkpieceCoordinatePara (const std::vector< std::vector< double >> &q, int type) |
工件坐标系标定算法接口(需要在调用之前正确的设置机器人的TCP偏移) 输入多组关节角度和标定类型,输出工件坐标系位姿(相对于机器人基坐标系) 更多... | |
ResultWithErrno | forwardDynamics (const std::vector< double > &q, const std::vector< double > &torqs) |
动力学正解 更多... | |
ResultWithErrno | forwardDynamics1 (const std::vector< double > &q, const std::vector< double > &torqs, const std::vector< double > &tcp_offset) |
动力学正解,基于给定的TCP偏移 更多... | |
ResultWithErrno | forwardKinematics (const std::vector< double > &q) |
运动学正解, 基于激活的TCP偏移(最近的通过 setTcpOffset 设置的参数) 输入关节角度,输出TCP位姿 更多... | |
ResultWithErrno | forwardKinematics1 (const std::vector< double > &q, const std::vector< double > &tcp_offset) |
运动学正解 输入关节角度,输出TCP位姿 更多... | |
ResultWithErrno | forwardToolKinematics (const std::vector< double > &q) |
运动学正解(忽略 TCP 偏移值) 更多... | |
ResultWithErrno | inverseKinematics (const std::vector< double > &qnear, const std::vector< double > &pose) |
运动学逆解 输入TCP位姿和参考关节角度,输出关节角度 更多... | |
ResultWithErrno | inverseKinematics1 (const std::vector< double > &qnear, const std::vector< double > &pose, const std::vector< double > &tcp_offset) |
运动学逆解 输入TCP位姿和参考关节角度,输出关节角度 更多... | |
ResultWithErrno1 | inverseKinematicsAll (const std::vector< double > &pose) |
求出所有的逆解, 基于激活的 TCP 偏移 更多... | |
ResultWithErrno1 | inverseKinematicsAll1 (const std::vector< double > &pose, const std::vector< double > &tcp_offset) |
求出所有的逆解, 基于提供的 TCP 偏移 更多... | |
ResultWithErrno | inverseToolKinematics (const std::vector< double > &qnear, const std::vector< double > &pose) |
运动学逆解(忽略 TCP 偏移值) 更多... | |
ResultWithErrno1 | inverseToolKinematicsAll (const std::vector< double > &pose) |
运动学逆解(忽略 TCP 偏移值) 更多... | |
std::vector< std::vector< double > > | pathMovej (const std::vector< double > &q1, double r1, const std::vector< double > &q2, double r2, double d) |
求解movej之间的轨迹点 更多... | |
ResultWithErrno | calcJacobian (const std::vector< double > &q, bool base_or_end) |
计算机械臂末端的雅克比矩阵 更多... | |
std::vector< std::vector< double > > | pathBlend3Points (int type, const std::vector< double > &q_start, const std::vector< double > &q_via, const std::vector< double > &q_to, double r, double d) |
求解交融的轨迹点 更多... | |
int | generatePayloadIdentifyTraj (const std::string &name, const TrajConfig &traj_conf) |
生成用于负载辨识的激励轨迹 此接口内部调用pathBufferAppend 将离线轨迹存入buffer中,后续可通过movePathBuffer运行离线轨迹 更多... | |
int | payloadIdentifyTrajGenFinished () |
负载辨识轨迹是否生成完成 更多... | |
std::vector< std::vector< double > > | pathMoveS (const std::vector< std::vector< double >> &qs, double d) |
求解 moveS 的轨迹点 更多... | |
Protected 属性 | |
void * | d_ |
机器人算法相关的对外接口
在文件 robot_algorithm.h 第 21 行定义.
arcs::common_interface::RobotAlgorithm::RobotAlgorithm | ( | ) |
|
virtual |
ResultWithErrno arcs::common_interface::RobotAlgorithm::calcJacobian | ( | const std::vector< double > & | q, |
bool | base_or_end | ||
) |
计算机械臂末端的雅克比矩阵
q | 关节角 |
base_or_end | 参考坐标系为基坐标系(或者末端坐标系) true: 在 base 下描述 false: 在 末端坐标系 下描述 |
ForceSensorCalibResult arcs::common_interface::RobotAlgorithm::calibrateTcpForceSensor | ( | const std::vector< std::vector< double >> & | forces, |
const std::vector< std::vector< double >> & | poses | ||
) |
力传感器标定算法(三点标定法)
force | |
q |
ForceSensorCalibResultWithError arcs::common_interface::RobotAlgorithm::calibrateTcpForceSensor2 | ( | const std::vector< std::vector< double >> & | forces, |
const std::vector< std::vector< double >> & | poses | ||
) |
力传感器标定算法(三点标定法)
forces | |
poses |
ResultWithErrno arcs::common_interface::RobotAlgorithm::calibWorkpieceCoordinatePara | ( | const std::vector< std::vector< double >> & | q, |
int | type | ||
) |
工件坐标系标定算法接口(需要在调用之前正确的设置机器人的TCP偏移) 输入多组关节角度和标定类型,输出工件坐标系位姿(相对于机器人基坐标系)
q | 关节角度 |
type | 标定类型 |
ResultWithErrno arcs::common_interface::RobotAlgorithm::forwardDynamics | ( | const std::vector< double > & | q, |
const std::vector< double > & | torqs | ||
) |
动力学正解
q | 关节角 |
torqs |
ResultWithErrno arcs::common_interface::RobotAlgorithm::forwardDynamics1 | ( | const std::vector< double > & | q, |
const std::vector< double > & | torqs, | ||
const std::vector< double > & | tcp_offset | ||
) |
动力学正解,基于给定的TCP偏移
q | 关节角 |
torqs |
ResultWithErrno arcs::common_interface::RobotAlgorithm::forwardKinematics | ( | const std::vector< double > & | q | ) |
运动学正解, 基于激活的TCP偏移(最近的通过 setTcpOffset 设置的参数) 输入关节角度,输出TCP位姿
q | 关节角 |
ResultWithErrno arcs::common_interface::RobotAlgorithm::forwardKinematics1 | ( | const std::vector< double > & | q, |
const std::vector< double > & | tcp_offset | ||
) |
运动学正解 输入关节角度,输出TCP位姿
q | 关节角 |
tcp_offset | tcp偏移 |
ResultWithErrno arcs::common_interface::RobotAlgorithm::forwardToolKinematics | ( | const std::vector< double > & | q | ) |
运动学正解(忽略 TCP 偏移值)
q | 关节角 |
bool arcs::common_interface::RobotAlgorithm::frictionModelIdentify | ( | const std::vector< std::vector< double >> & | q, |
const std::vector< std::vector< double >> & | qd, | ||
const std::vector< std::vector< double >> & | qdd, | ||
const std::vector< std::vector< double >> & | temp | ||
) |
关节摩擦力模型辨识算法接口
q | |
qd | |
qdd | |
temp |
int arcs::common_interface::RobotAlgorithm::generatePayloadIdentifyTraj | ( | const std::string & | name, |
const TrajConfig & | traj_conf | ||
) |
生成用于负载辨识的激励轨迹 此接口内部调用pathBufferAppend 将离线轨迹存入buffer中,后续可通过movePathBuffer运行离线轨迹
name | 轨迹名字 |
traj_conf | 各关节轨迹的限制条件 traj_conf.move_axis: 运动的轴 由于实际用户现场可能不希望在负载辨识时控制机械臂多关节大幅度运动,故最好选用traj_conf.move_axis=LoadIdentifyMoveAxis::Joint_4_6; traj_conf.init_joint: 运动初始关节角,为了避免关节5接近零位时的奇异问题,应设置traj_conf.init_joint[4]的绝对值不小于0.3(rad),接近1.57(rad)为宜。其余关节的关节角可任意设置 traj_conf.lower_joint_bound, traj_conf.upper_joint_bound: 关节角上下限,维度应与config.move_axis维度保持一致,推荐设置upper_joint_bound为2,lower_joint_bound为-2 config.max_velocity, config.max_acceleration: 关节角速度角加速度限制,维度应与config.move_axis维度保持一致,出于安全和驱动器跟随性能的考虑,推荐设置max_velocity=3,max_acceleration=5 |
Payload arcs::common_interface::RobotAlgorithm::getPayloadIdentifyResult | ( | ) |
获取负载辨识结果
ResultWithErrno arcs::common_interface::RobotAlgorithm::inverseKinematics | ( | const std::vector< double > & | qnear, |
const std::vector< double > & | pose | ||
) |
运动学逆解 输入TCP位姿和参考关节角度,输出关节角度
qnear | 参考关节角 |
pose | TCP位姿 |
ResultWithErrno arcs::common_interface::RobotAlgorithm::inverseKinematics1 | ( | const std::vector< double > & | qnear, |
const std::vector< double > & | pose, | ||
const std::vector< double > & | tcp_offset | ||
) |
运动学逆解 输入TCP位姿和参考关节角度,输出关节角度
qnear | 参考关节角 |
pose | TCP位姿 |
tcp_offset | TCP偏移 |
ResultWithErrno1 arcs::common_interface::RobotAlgorithm::inverseKinematicsAll | ( | const std::vector< double > & | pose | ) |
求出所有的逆解, 基于激活的 TCP 偏移
pose | TCP位姿 |
ResultWithErrno1 arcs::common_interface::RobotAlgorithm::inverseKinematicsAll1 | ( | const std::vector< double > & | pose, |
const std::vector< double > & | tcp_offset | ||
) |
求出所有的逆解, 基于提供的 TCP 偏移
pose | TCP位姿 |
tcp_offset | TCP偏移 |
ResultWithErrno arcs::common_interface::RobotAlgorithm::inverseToolKinematics | ( | const std::vector< double > & | qnear, |
const std::vector< double > & | pose | ||
) |
运动学逆解(忽略 TCP 偏移值)
qnear | 参考关节角 |
pose | 法兰盘中心的位姿 |
ResultWithErrno1 arcs::common_interface::RobotAlgorithm::inverseToolKinematicsAll | ( | const std::vector< double > & | pose | ) |
运动学逆解(忽略 TCP 偏移值)
qnear | 参考关节角 |
pose | 法兰盘中心的位姿 |
std::vector<std::vector<double> > arcs::common_interface::RobotAlgorithm::pathBlend3Points | ( | int | type, |
const std::vector< double > & | q_start, | ||
const std::vector< double > & | q_via, | ||
const std::vector< double > & | q_to, | ||
double | r, | ||
double | d | ||
) |
求解交融的轨迹点
type | 0-movej and movej 1-movej and movel 2-movel and movej 3-movel and movel |
q_start | 交融前路径的起点 |
q_via | 在q1处的交融半径 |
q_to | 交融后路径的终点 |
r | 在q_via处的交融半径 |
d | 采样距离 |
std::vector<std::vector<double> > arcs::common_interface::RobotAlgorithm::pathMovej | ( | const std::vector< double > & | q1, |
double | r1, | ||
const std::vector< double > & | q2, | ||
double | r2, | ||
double | d | ||
) |
求解movej之间的轨迹点
q1 | movej的起点 |
r1 | 在q1处的交融半径 |
q2 | movej的终点 |
r2 | 在q2处的交融半径 |
d | 采样距离 |
std::vector<std::vector<double> > arcs::common_interface::RobotAlgorithm::pathMoveS | ( | const std::vector< std::vector< double >> & | qs, |
double | d | ||
) |
int arcs::common_interface::RobotAlgorithm::payloadCalculateFinished | ( | ) |
负载辨识是否计算完成
int arcs::common_interface::RobotAlgorithm::payloadIdentify | ( | const std::string & | data_file_no_payload, |
const std::string & | data_file_with_payload | ||
) |
基于电流的负载辨识算法接口
需要采集空载时运行激励轨迹的位置、速度、电流以及带负载时运行激励轨迹的位置、速度、电流
data_file_no_payload | 空载时运行激励轨迹各关节数据的文件路径(.csv格式),共18列,依次为6个关节位置、6个关节速度、6个关节电流 |
data_file_with_payload | 带负载运行激励轨迹各关节数据的文件路径(.csv格式),共18列,依次为6个关节位置、6个关节速度、6个关节电流 |
int arcs::common_interface::RobotAlgorithm::payloadIdentify1 | ( | const std::string & | file_name | ) |
新版基于电流的负载辨识算法接口
需要采集带载时运行最少三个点的位置、速度、加速度、电流、温度、末端传感器数据、底座数据
data | 带负载的各关节数据的文件路径(.csv格式),共42列,末端传感器数据、底座数据默认为0 |
int arcs::common_interface::RobotAlgorithm::payloadIdentifyTrajGenFinished | ( | ) |
负载辨识轨迹是否生成完成
|
protected |
在文件 robot_algorithm.h 第 595 行定义.