PDF
AuboStudio SDK  0.6.3
arcs::aubo_scope::PayloadContributionModel类 参考

动态负载管理 更多...

#include <payload_contribution_model.h>

Public 成员函数

 PayloadContributionModel (PayloadContributionModel &f)
 PayloadContributionModel (PayloadContributionModel &&f)
 ~PayloadContributionModel ()
PayloadPtr addPayload (const std::string &id_key, const std::string &suggested_name, double mass, const std::vector< double > &center_of_gravity)
 Payload
PayloadPtr addPayload (const std::string &id_key, const std::string &suggested_name, double mass, const std::vector< double > &center_of_gravity, const std::vector< double > &inertiaMatrix)
 Payload
PayloadPtr getPayload (const std::string &id_key)
 Payload 返回此前由此AuboCap使用相同idKey标识符添加的负载。使用此方法验证 负载是否存在于当前安装中。
void updatePayload (const std::string &id_key, double mass, const std::vector< double > &center_of_gravity)
 Payload
void updatePayload (const std::string id_key, double mass, const std::vector< double > &center_of_gravity, const std::vector< double > &inertia_matrix)
 更新此AuboCap已添加负载的质量、重心(CoG)和惯性矩阵。
void removePayload (const std::string &id_key)
 从此AuboCap中移除已添加的负载。使用该负载的程序节点将变为未定义状态,因为负载 不再可解析。

Private 成员函数

 PayloadContributionModel ()

Private 属性

void * d_ { nullptr }

友元

class DataSwitch

详细描述

动态负载管理

在文件 payload_contribution_model.h17 行定义.

构造及析构函数说明

◆ PayloadContributionModel() [1/3]

arcs::aubo_scope::PayloadContributionModel::PayloadContributionModel ( PayloadContributionModel & f)

引用了 PayloadContributionModel().

被这些函数引用 PayloadContributionModel() , 以及 PayloadContributionModel().

函数调用图:
这是这个函数的调用关系图:

◆ PayloadContributionModel() [2/3]

arcs::aubo_scope::PayloadContributionModel::PayloadContributionModel ( PayloadContributionModel && f)

引用了 PayloadContributionModel().

函数调用图:

◆ ~PayloadContributionModel()

arcs::aubo_scope::PayloadContributionModel::~PayloadContributionModel ( )

◆ PayloadContributionModel() [3/3]

arcs::aubo_scope::PayloadContributionModel::PayloadContributionModel ( )
private

成员函数说明

◆ addPayload() [1/2]

PayloadPtr arcs::aubo_scope::PayloadContributionModel::addPayload ( const std::string & id_key,
const std::string & suggested_name,
double mass,
const std::vector< double > & center_of_gravity )

Payload

向AuboScope的当前安装中添加一个负载。

添加后终端用户可选择该负载,其他AuboCap贡献(通过PayloadModel接口)也可 使用。该负载不可被终端用户或其他aubo_studio插件修改。

系统将根据指定的负载质量和重心自动计算惯性矩阵的默认估算值。如果有负载惯性矩阵 的实际数据,可以使用addPayload(String, String, Mass, Position, InertiaMatrix)方法替代(可获得更好的机器人手臂性能)。

注意:指定的负载质量必须是连接到机器人工具输出法兰的负载总质量。

负载质量和重心坐标(CoG)的有效范围可通过RobotLimits接口获取,该接口 可通过RobotModel#getRobotLimits()访问。

参数
idKey用于标识此负载的键,不可为null或空字符串。该键仅对 此AuboCap有效,只需在此AuboCap中唯一,无需对其他aubo_studio插件"全局"唯一。
suggestedName建议的负载名称,不可为null或空字符串。有效 名称必须匹配正则表达式[a-zA-Z][a-zA-Z0-9_]{0,14},总共15个字符。最终名称可 从返回的负载实例获取。
mass连接到机器人工具输出法兰的负载总质量,不可为null。使 用SimpleValueFactory#createMass(double, Mass.Unit)创建。
centerOfGravity负载的重心(CoG),也称为质心。定义为工具输出法兰中心与 所连接负载重心之间的偏移量。不可为null。使用PositionFactory 接口创建。
返回
在AuboScope中创建并注册的负载。
异常
PayloadAlreadyAddedException如果之前已使用相同的idKey标 识符添加过负载。使用getPayload(String)检查负载是否已添加到当前安装中。 使用updatePayload(String, Mass, Position)updatePayload(String, Mass, Position, InertiaMatrix)来更新负载。
IllegalPayloadNameException如果建议的名称不匹配所需的正则表达式。
IllegalMassException如果指定的质量不在AuboScope定义的有效范围内。
IllegalCenterOfGravityException如果指定重心的任何值不在AuboScope定义 的有效范围内。

◆ addPayload() [2/2]

PayloadPtr arcs::aubo_scope::PayloadContributionModel::addPayload ( const std::string & id_key,
const std::string & suggested_name,
double mass,
const std::vector< double > & center_of_gravity,
const std::vector< double > & inertiaMatrix )

Payload

向AuboScope的当前安装中添加一个包含惯性矩阵的负载。

添加后终端用户可选择该负载,其他AuboCap贡献(通过PayloadModel接口)也可 使用。该负载不可被终端用户或其他aubo_studio插件修改。

如果没有负载惯性矩阵的数据,请改用addPayload(String, String, Mass, Position, InertiaMatrix)方法。

注意:指定的负载质量必须是连接到机器人工具输出法兰的负载总质量。

负载质量和重心坐标(CoG)的有效范围可通过RobotLimits接口获取,该接口 可通过RobotModel#getRobotLimits()访问。

参数
idKey用于标识此负载的键,不可为null或空字符串。该键仅对 此AuboCap有效。
suggestedName建议的负载名称,不可为null或空字符串。
mass负载总质量,不可为null
centerOfGravity负载的重心(CoG),不可为null
inertiaMatrix负载的惯性矩阵,定义在以负载重心为中心的坐标系中,坐标轴与 工具输出法兰坐标系对齐。不可为null
返回
在AuboScope中创建并注册的负载。
异常
PayloadAlreadyAddedException如果之前已使用相同的idKey标 识符添加过负载。
IllegalPayloadNameException如果建议的名称不匹配所需的正则表达式。
IllegalMassException如果指定的质量不在有效范围内。
IllegalCenterOfGravityException如果指定重心的任何值不在有效范围内。
IllegalInertiaMatrixException如果指定惯性矩阵的任何值不在有效范围内。

◆ getPayload()

PayloadPtr arcs::aubo_scope::PayloadContributionModel::getPayload ( const std::string & id_key)

Payload 返回此前由此AuboCap使用相同idKey标识符添加的负载。使用此方法验证 负载是否存在于当前安装中。

参数
idKey用于标识此负载的键,不可为null或空字符串。
返回
此前由此AuboCap添加的负载。如果当前安装中不存在(指定idKey 标识符的)负载,则返回null

◆ removePayload()

void arcs::aubo_scope::PayloadContributionModel::removePayload ( const std::string & id_key)

从此AuboCap中移除已添加的负载。使用该负载的程序节点将变为未定义状态,因为负载 不再可解析。

参数
idKey添加负载时使用的标识符键,不可为null或空字符串。
异常
PayloadNotFoundException如果当前安装中不存在对应idKey 标识符的负载。

◆ updatePayload() [1/2]

void arcs::aubo_scope::PayloadContributionModel::updatePayload ( const std::string & id_key,
double mass,
const std::vector< double > & center_of_gravity )

Payload

更新此AuboCap已添加负载的质量和重心(CoG)。

注意:如果已为负载指定了惯性矩阵,调用此方法将用基于新的负载质量和重心 计算的默认估算值替换(覆盖)它。为避免覆盖现有惯性矩阵(或更新现有惯性矩阵), 请改用updatePayload(String, Mass, Position, InertiaMatrix)方法。

参数
idKey用于标识负载的键,不可为null或空字符串。调用此方法 前必须已使用相同的键添加过负载。
mass负载总质量,不可为null。使用 SimpleValueFactory#createMass(double, Mass.Unit)创建。
centerOfGravity负载的重心,不可为null。使用 PositionFactory接口创建。
异常
PayloadNotFoundException如果当前安装中不存在对应idKey 标识符的负载。
IllegalMassException如果指定的质量不在AuboScope定义的有效范围内。
IllegalCenterOfGravityException如果指定重心的任何值不在有效范围内。

◆ updatePayload() [2/2]

void arcs::aubo_scope::PayloadContributionModel::updatePayload ( const std::string id_key,
double mass,
const std::vector< double > & center_of_gravity,
const std::vector< double > & inertia_matrix )

更新此AuboCap已添加负载的质量、重心(CoG)和惯性矩阵。

参数
idKey用于标识负载的键,不可为null或空字符串。调用此方法 前必须已使用相同的键添加过负载。
mass负载总质量,不可为null。使用 SimpleValueFactory#createMass(double, Mass.Unit)创建。
centerOfGravity负载的重心,不可为null。使用 PositionFactory接口创建。
inertiaMatrix负载的惯性矩阵,不可为null
异常
PayloadNotFoundException如果当前安装中不存在对应idKey 标识符的负载。
IllegalMassException如果指定的质量不在有效范围内。
IllegalCenterOfGravityException如果指定重心的任何值不在有效范围内。
IllegalInertiaMatrixException如果指定惯性矩阵的任何值不在有效范围内。

◆ DataSwitch

friend class DataSwitch
friend

在文件 payload_contribution_model.h412 行定义.

引用了 DataSwitch.

被这些函数引用 DataSwitch.

类成员变量说明

◆ d_

void* arcs::aubo_scope::PayloadContributionModel::d_ { nullptr }
private

在文件 payload_contribution_model.h414 行定义.


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