4#ifndef AUBO_SDK_ROBOT_CONFIG_H
5#define AUBO_SDK_ROBOT_CONFIG_H
8#include <unordered_map>
10#include <aubo/global_config.h>
14namespace common_interface {
581 std::unordered_map<std::string, std::vector<double>>
599 const std::unordered_map<std::string, std::vector<double>> ¶m);
1248 const std::vector<double> &inertial);
1285 const std::vector<double> &aom,
1286 const std::vector<double> &inertia);
1559#define RobotConfig_DECLARES \
1560 _FUNC(RobotConfig, 0, getDof) \
1561 _FUNC(RobotConfig, 0, getName) \
1562 _FUNC(RobotConfig, 0, getCycletime) \
1563 _FUNC(RobotConfig, 2, setSlowDownFraction, level, fraction) \
1564 _FUNC(RobotConfig, 1, getSlowDownFraction, level) \
1565 _FUNC(RobotConfig, 0, getRobotType) \
1566 _FUNC(RobotConfig, 0, getRobotSubType) \
1567 _FUNC(RobotConfig, 0, getControlBoxType) \
1568 _FUNC(RobotConfig, 0, getDefaultToolAcc) \
1569 _FUNC(RobotConfig, 0, getDefaultToolSpeed) \
1570 _FUNC(RobotConfig, 0, getDefaultJointAcc) \
1571 _FUNC(RobotConfig, 0, getDefaultJointSpeed) \
1572 _INST(RobotConfig, 1, setMountingPose, pose) \
1573 _FUNC(RobotConfig, 0, getMountingPose) \
1574 _INST(RobotConfig, 1, setCollisionLevel, level); \
1575 _FUNC(RobotConfig, 0, getCollisionLevel); \
1576 _INST(RobotConfig, 1, setCollisionStopType, type); \
1577 _FUNC(RobotConfig, 0, getCollisionStopType); \
1578 _FUNC(RobotConfig, 1, setHomePosition, positions); \
1579 _FUNC(RobotConfig, 0, getHomePosition); \
1580 _INST(RobotConfig, 1, setFreedriveDamp, damp); \
1581 _FUNC(RobotConfig, 0, getFreedriveDamp); \
1582 _FUNC(RobotConfig, 0, getTcpForceSensorNames) \
1583 _INST(RobotConfig, 1, selectTcpForceSensor, name) \
1584 _FUNC(RobotConfig, 0, hasTcpForceSensor) \
1585 _INST(RobotConfig, 1, setTcpForceOffset, force_offset) \
1586 _FUNC(RobotConfig, 0, getTcpForceOffset) \
1587 _FUNC(RobotConfig, 0, getBaseForceSensorNames) \
1588 _INST(RobotConfig, 1, selectBaseForceSensor, name) \
1589 _FUNC(RobotConfig, 0, hasBaseForceSensor) \
1590 _INST(RobotConfig, 1, setBaseForceOffset, force_offset) \
1591 _FUNC(RobotConfig, 0, getBaseForceOffset) \
1592 _INST(RobotConfig, 1, setPersistentParameters, param) \
1593 _INST(RobotConfig, 1, setKinematicsCompensate, param) \
1594 _INST(RobotConfig, 1, setHardwareCustomParameters, param) \
1595 _FUNC(RobotConfig, 1, getHardwareCustomParameters, param) \
1596 _INST(RobotConfig, 0, setRobotZero) \
1597 _FUNC(RobotConfig, 1, getKinematicsParam, real) \
1598 _FUNC(RobotConfig, 1, getKinematicsCompensate, ref_temperature) \
1599 _FUNC(RobotConfig, 0, getSafetyParametersCheckSum) \
1600 _FUNC(RobotConfig, 1, confirmSafetyParameters, parameters) \
1601 _FUNC(RobotConfig, 1, calcSafetyParametersCheckSum, parameters) \
1602 _FUNC(RobotConfig, 0, getJointMaxPositions) \
1603 _FUNC(RobotConfig, 0, getJointMinPositions) \
1604 _FUNC(RobotConfig, 0, getJointMaxSpeeds) \
1605 _FUNC(RobotConfig, 0, getJointMaxAccelerations) \
1606 _FUNC(RobotConfig, 0, getTcpMaxSpeeds) \
1607 _FUNC(RobotConfig, 0, getTcpMaxAccelerations) \
1608 _FUNC(RobotConfig, 1, toolSpaceInRange, pose) \
1609 _INST(RobotConfig, 4, setPayload, m, cog, aom, inertia) \
1610 _FUNC(RobotConfig, 0, getPayload) \
1611 _FUNC(RobotConfig, 0, getTcpOffset) \
1612 _FUNC(RobotConfig, 0, getGravity) \
1613 _INST(RobotConfig, 1, setGravity, gravity) \
1614 _INST(RobotConfig, 1, setTcpOffset, offset) \
1615 _INST(RobotConfig, 3, setToolInertial, m, com, inertial) \
1616 _FUNC(RobotConfig, 1, firmwareUpdate, fw) \
1617 _FUNC(RobotConfig, 0, getFirmwareUpdateProcess) \
1618 _FUNC(RobotConfig, 1, setTcpForceSensorPose, sensor_pose) \
1619 _FUNC(RobotConfig, 0, getTcpForceSensorPose) \
1620 _FUNC(RobotConfig, 0, getLimitJointMaxPositions) \
1621 _FUNC(RobotConfig, 0, getLimitJointMinPositions) \
1622 _FUNC(RobotConfig, 0, getLimitJointMaxSpeeds) \
1623 _FUNC(RobotConfig, 0, getLimitJointMaxAccelerations) \
1624 _FUNC(RobotConfig, 0, getLimitTcpMaxSpeed) \
1625 _FUNC(RobotConfig, 0, getSafeguardStopType) \
1626 _FUNC(RobotConfig, 0, getSafeguardStopSource)
double getDefaultJointSpeed()
获取默认的关节速度,单位rad/s
double getDefaultJointAcc()
获取默认的关节加速度,单位rad/s^2
int getSafeguardStopSource()
按位获取完整的安全停止触发源
std::string getHardwareCustomParameters(const std::string ¶m)
获取硬件抽象层自定义参数
bool hasBaseForceSensor()
是否安装了底座力矩传感器
std::string getName()
获取机器人的名字
int setBaseForceOffset(const std::vector< double > &force_offset)
设置底座力矩偏移
int setKinematicsCompensate(const std::unordered_map< std::string, std::vector< double > > ¶m)
设置标准 DH 补偿到机器人
int selectTcpForceSensor(const std::string &name)
设置末端力矩传感器 如果存在内置的末端力矩传感器,默认将使用内置的力矩传感器
std::vector< double > getTcpForceSensorPose()
获取传感器安装位姿
std::vector< double > getJointMinPositions()
获取关节最小位置(物理极限)
std::vector< double > getLimitJointMaxPositions()
获取关节最大位置(当前正在使用的限制值)
std::unordered_map< std::string, std::vector< double > > getKinematicsParam(bool real)
获取机器人DH参数 alpha a d theta beta
std::vector< double > getJointMaxSpeeds()
获取关节最大速度(物理极限)
int setPersistentParameters(const std::string ¶m)
设置需要保存到接口板底座的参数
double getLimitTcpMaxSpeed()
获取TCP最大速度(当前正在使用的限制值)
int setCollisionLevel(int level)
设置碰撞灵敏度等级 数值越大越灵敏
int setHardwareCustomParameters(const std::string ¶m)
设置硬件抽象层自定义参数 目的是为了做不同硬件之间的兼容
uint32_t calcSafetyParametersCheckSum(const RobotSafetyParameterRange ¶meters)
计算安全参数的 CRC32 校验值
std::vector< double > getLimitJointMinPositions()
获取关节最小位置(当前正在使用的限制值)
int setTcpForceOffset(const std::vector< double > &force_offset)
设置末端力矩偏移
std::vector< std::string > getTcpForceSensorNames()
获取可用的末端力矩传感器的名字
std::vector< double > getHomePosition()
获取机器人的原点位置
double getDefaultToolSpeed()
获取默认的工具端速度,单位m/s
Payload getPayload()
获取有效负载
std::string getRobotSubType()
获取机器人子类型代码
int getCollisionLevel()
获取碰撞灵敏度等级
std::vector< double > getTcpForceOffset()
获取末端力矩偏移
std::vector< double > getFreedriveDamp()
获取拖动阻尼
std::vector< double > getJointMaxPositions()
获取关节最大位置(物理极限)
int setTcpForceSensorPose(const std::vector< double > &sensor_pose)
设置传感器安装位姿
std::unordered_map< std::string, std::vector< double > > getKinematicsCompensate(double ref_temperature)
获取指定温度下的DH参数补偿值:alpha a d theta beta
bool toolSpaceInRange(const std::vector< double > &pose)
末端位姿是否在安全范围之内
int setGravity(const std::vector< double > &gravity)
设置机器人安装姿态
SafeguedStopType getSafeguardStopType()
获取当前安全停止的类型
int setMountingPose(const std::vector< double > &pose)
设置安装位姿(机器人的基坐标系相对于世界坐标系) world->base
std::vector< double > getBaseForceOffset()
获取底座力矩偏移
std::vector< double > getTcpOffset()
获取当前的TCP偏移
int getDof()
获取机器人的自由度(从硬件抽象层读取)
int getCollisionStopType()
获取碰撞停止类型
int setHomePosition(const std::vector< double > &positions)
设置机器人的原点位置
double getCycletime()
获取机器人的伺服控制周期(从硬件抽象层读取)
std::string getControlBoxType()
获取控制柜类型代码
std::vector< std::string > getBaseForceSensorNames()
获取可用的底座力矩传感器的名字
double getSlowDownFraction(int level)
获取预设的缓速模式下的速度缩减比例
std::vector< double > getMountingPose()
获取安装位姿(机器人的基坐标系相对于世界坐标系)
std::vector< double > getLimitJointMaxAccelerations()
获取关节最大加速度(当前正在使用的限制值)
std::vector< double > getTcpMaxAccelerations()
获取TCP最大加速度(物理极限)
std::tuple< std::string, double > getFirmwareUpdateProcess()
获取当前的固件升级的进程
int setRobotZero()
设置机器人关节零位
int setSlowDownFraction(int level, double fraction)
预设缓速模式下的速度缩减比例
int firmwareUpdate(const std::string &fw)
发起固件升级请求,控制器软件将进入固件升级模式
std::vector< double > getLimitJointMaxSpeeds()
获取关节最大速度(当前正在使用的限制值)
double getDefaultToolAcc()
获取默认的工具端加速度,单位m/s^2
std::vector< double > getGravity()
获取机器人的安装姿态
int selectBaseForceSensor(const std::string &name)
设置底座力矩传感器 如果存在内置的底座力矩传感器,默认将使用内置的力矩传感器
std::string getRobotType()
获取机器人类型代码
int confirmSafetyParameters(const RobotSafetyParameterRange ¶meters)
发起确认安全配置参数请求: 将安全配置参数写入到安全接口板flash或文件
bool hasTcpForceSensor()
是否安装了末端力矩传感器
std::vector< double > getJointMaxAccelerations()
获取关节最大加速度(物理极限)
int setCollisionStopType(int type)
设置碰撞停止类型
int setPayload(double m, const std::vector< double > &cog, const std::vector< double > &aom, const std::vector< double > &inertia)
设置有效负载
uint32_t getSafetyParametersCheckSum()
获取安全参数校验码 CRC32
int setToolInertial(double m, const std::vector< double > &com, const std::vector< double > &inertial)
设置工具端质量、质心及惯量
int setFreedriveDamp(const std::vector< double > &damp)
设置拖动阻尼
std::vector< double > getTcpMaxSpeeds()
获取TCP最大速度(物理极限)
int setTcpOffset(const std::vector< double > &offset)
设置当前的TCP偏移
std::shared_ptr< RobotConfig > RobotConfigPtr
std::tuple< double, std::vector< double >, std::vector< double >, std::vector< double > > Payload