AUBO SDK  0.26.0
arcs::common_interface::MotionControl类 参考

#include <motion_control.h>

Public 成员函数

 MotionControl ()
virtual ~MotionControl ()
double getEqradius ()
 获取等效半径,单位 m moveLine/moveCircle时,末端姿态旋转的角度等效到末端位置移动 可以通过 setEqradius 设置,默认为1
int setEqradius (double eqradius)
 设置等效半径,单位 m moveLine/moveCircle时,末端姿态旋转的角度等效到末端位置移动,数值越大,姿态旋转速度越快
int setSpeedFraction (double fraction)
 动态调整机器人运行速度和加速度比例 (0., 1.
double getSpeedFraction ()
 获取速度和加速度比例,默认为 1 可以通过 setSpeedFraction 接口设置
int speedFractionCritical (bool enable)
 速度比例设置临界区,使能之后速度比例被强制设定为1.
int speedFractionCritical1 (bool enable)
 速度比例设置临界区,使能之后速度比例被强制设定为当前生效的比例, 失能之后恢复之前的速度比例
bool isSpeedFractionCritical ()
 是否处于速度比例设置临界区
bool isBlending ()
 是否处交融区
int pathOffsetLimits (double v, double a)
 设置偏移的最大速度和最大加速度 仅对pathOffsetSet中 type=1 有效
int pathOffsetCoordinate (int ref_coord)
 设置偏移的参考坐标系 仅对pathOffsetSet中 type=1 有效
int pathOffsetEnable ()
 路径偏移使能
int pathOffsetSet (const std::vector< double > &offset, int type=0)
 设置路径偏移
int pathOffsetDisable ()
 路径偏移失能
int pathOffsetSupv (const std::vector< double > &min, const std::vector< double > &max, int strategy)
int jointOffsetEnable ()
 关节偏移使能
int jointOffsetSet (const std::vector< double > &offset, int type=1)
 设置关节偏移
int jointOffsetDisable ()
 关节偏移失能
int getQueueSize ()
 获取已经入队的指令段(INST)数量,运动指令包括 moveJoint/moveLine/moveCircle 等运动指令以及 setPayload 等配置指令
int getTrajectoryQueueSize ()
 获取已经入队的运动规划插补点数量
int getExecId ()
 获取当前正在插补的运动指令段的ID
double getDuration (int id)
 获取指定ID的运动指令段的预期执行时间
double getMotionLeftTime (int id)
 获取指定ID的运动指令段的剩余执行时间
int stopMove (bool quick, bool all_tasks)
 StopMove 用于临时停止机器人和外部轴的运动以及相关工艺进程。如果调用 StartMove 指令,则运动和工艺进程将恢复。
int startMove ()
 StartMove 用于在以下情况下恢复机器人、外部轴的运动以及相关工艺进程: • 通过 StopMove 指令停止后。 • 执行 StorePath ... RestoPath 序列后。 • 发生异步运动错误(如 ERR_PATH_STOP)或特定工艺错误并在 ERROR 处理器中处理后。
int storePath (bool keep_sync)
 storePath
int clearPath ()
 ClearPath (清除路径) 清除当前运动路径层级(基础层级或 StorePath 层级)上的所有运动路径。
int restoPath ()
 restoPath
double getProgress ()
 获取当前运动指令段的执行进度
int setWorkObjectHold (const std::string &module_name, const std::vector< double > &mounting_pose)
 当工件安装在另外一台机器人的末端或者外部轴上时,指定其名字和安装位置
std::tuple< std::string, std::vector< double > > getWorkObjectHold ()
 获取工件安装信息
std::vector< double > getPauseJointPositions ()
int setResumeStartPoint (const std::vector< double > &q, int move_type, double blend_radius, const std::vector< double > &qdmax, const std::vector< double > &qddmax, const std::vector< double > &vmax, const std::vector< double > &amax)
 设置继续运动参数
int getResumeMode ()
 获取继续运动模式
ARCS_DEPRECATED int setServoMode (bool enable)
 设置伺服模式 使用 setServoModeSelect 替代
ARCS_DEPRECATED bool isServoModeEnabled ()
 判断伺服模式是否使能 使用 getServoModeSelect 替代
int setServoModeSelect (int mode)
 设置伺服运动模式
int getServoModeSelect ()
 获取伺服运动模式
int servoJoint (const std::vector< double > &q, double a, double v, double t, double lookahead_time, double gain)
 关节空间伺服
int servoCartesian (const std::vector< double > &pose, double a, double v, double t, double lookahead_time, double gain)
 笛卡尔空间伺服
int servoJointWithAxes (const std::vector< double > &q, const std::vector< double > &extq, double a, double v, double t, double lookahead_time, double gain)
 伺服运动(带外部轴),用于执行离线轨迹、透传用户规划轨迹等
int servoJointWithAxisGroup (const std::vector< double > &q, double a, double v, double t, double lookahead_time, double gain, const std::string &group_name, const std::vector< double > &extq)
int servoCartesianWithAxes (const std::vector< double > &pose, const std::vector< double > &extq, double a, double v, double t, double lookahead_time, double gain)
 伺服运动(带外部轴),用于执行离线轨迹、透传用户规划轨迹等 与 servoJointWithAxes 区别在于接收笛卡尔空间位姿而不是关节角度 (由软件内部直接做逆解)
int servoCartesianWithAxisGroup (const std::vector< double > &pose, double a, double v, double t, double lookahead_time, double gain, const std::string &group_name, const std::vector< double > &extq)
int trackJoint (const std::vector< double > &q, double t, double smooth_scale, double delay_sacle)
 跟踪运动,用于执行离线轨迹、透传用户规划轨迹等
int trackCartesian (const std::vector< double > &pose, double t, double smooth_scale, double delay_sacle)
 跟踪运动,用于执行离线轨迹、透传用户规划轨迹等 与 trackJoint 区别在于接收笛卡尔空间位姿而不是关节角度 (由软件内部直接做逆解)
int followJoint (const std::vector< double > &q)
 关节空间跟随
int followLine (const std::vector< double > &pose)
 笛卡尔空间跟随
int speedJoint (const std::vector< double > &qd, double a, double t)
 关节空间速度跟随
int resumeSpeedJoint (const std::vector< double > &qd, double a, double t)
 关节空间速度跟随(机械臂运行工程时发生碰撞,通过此接口移动到安全位置)
int speedLine (const std::vector< double > &xd, double a, double t)
 笛卡尔空间速度跟随
int resumeSpeedLine (const std::vector< double > &xd, double a, double t)
 笛卡尔空间速度跟随(机械臂运行工程时发生碰撞,通过此接口移动到安全位置)
int moveSpline (const std::vector< double > &q, double a, double v, double duration)
 在关节空间做样条插值
int moveJoint (const std::vector< double > &q, double a, double v, double blend_radius, double duration)
 添加关节运动
int moveJointWithAxisGroup (const std::vector< double > &q, double a, double v, double blend_radius, double duration, const std::string &group_name, const std::vector< double > &extq)
 机器人与外部轴同步运动
int resumeMoveJoint (const std::vector< double > &q, double a, double v, double duration)
 通过关节运动移动到暂停点的位置
int moveLine (const std::vector< double > &pose, double a, double v, double blend_radius, double duration)
 添加直线运动
int moveLineWithAxisGroup (const std::vector< double > &pose, double a, double v, double blend_radius, double duration, const std::string &group_name, const std::vector< double > &extq)
 直线运动与外部轴同步运动
int moveProcess (const std::vector< double > &pose, double a, double v, double blend_radius)
 添加工艺运动
int resumeMoveLine (const std::vector< double > &pose, double a, double v, double duration)
 通过直线运动移动到暂停点的位置
int moveCircle (const std::vector< double > &via_pose, const std::vector< double > &end_pose, double a, double v, double blend_radius, double duration)
 添加圆弧运动
int moveCircleWithAxisGroup (const std::vector< double > &via_pose, const std::vector< double > &end_pose, double a, double v, double blend_radius, double duration, const std::string &group_name, const std::vector< double > &extq)
 moveCircle 与外部轴同步运动
int setCirclePathMode (int mode)
 设置圆弧路径模式
int moveCircle2 (const CircleParameters &param)
 高级圆弧或者圆周运动
int pathBufferAlloc (const std::string &name, int type, int size)
 新建一个路径点缓存
int pathBufferAppend (const std::string &name, const std::vector< std::vector< double > > &waypoints)
 向路径缓存添加路点
int pathBufferEval (const std::string &name, const std::vector< double > &a, const std::vector< double > &v, double t)
 计算、优化等耗时操作,传入的参数相同时不会重新计算
bool pathBufferValid (const std::string &name)
 指定名字的buffer是否有效
int pathBufferFree (const std::string &name)
 释放路径缓存
int pathBufferFilter (const std::string &name, int order, double fd, double fs)
 关节空间路径滤波器
std::vector< std::string > pathBufferList ()
 列出所有缓存路径的名字
int movePathBuffer (const std::string &name)
 执行缓存的路径
int moveIntersection (const std::vector< std::vector< double > > &poses, double a, double v, double main_pipe_radius, double sub_pipe_radius, double normal_distance, double normal_alpha)
 相贯线接口
int stopJoint (double acc)
 关节空间停止运动
int resumeStopJoint (double acc)
 关节空间停止运动(机械臂运行工程时发生碰撞,通过resumeSpeedJoint接口移动到安全位置后需要停止时调用此接口)
int stopLine (double acc, double acc_rot)
 停止 moveLine/moveCircle 等在笛卡尔空间的运动
int resumeStopLine (double acc, double acc_rot)
 笛卡尔空间停止运动(机械臂运行工程时发生碰撞,通过resumeSpeedLine接口移动到安全位置后需要停止时调用此接口)
int weaveStart (const std::string &params)
int weaveEnd ()
 结束摆动
int setFuturePointSamplePeriod (double sample_time)
 设置未来路径上点的采样时间间隔
std::vector< std::vector< double > > getFuturePathPointsJoint ()
 获取未来路径上的轨迹点
int setConveyorTrackEncoder (int encoder_id, int tick_per_meter)
 设置传送带编码器参数
int conveyorTrackCircle (int encoder_id, const std::vector< double > &center, bool rotate_tool)
 圆形传送带跟随
int conveyorTrackLine (int encoder_id, const std::vector< double > &direction)
 线性传送带跟随
int conveyorTrackStop (int encoder_id, double a)
 终止传送带跟随
bool conveyorTrackSwitch (int encoder_id)
 切换传送带追踪物品 如果当前物品正在处于跟踪状态,则将该物品出队,不再跟踪,返回true 如果没有物品正在处于跟踪状态,返回false
bool hasItemOnConveyorToTrack (int encoder_id)
 传送带上是否有物品可以跟踪
int conveyorTrackCreatItem (int encoder_id, int item_id, const std::vector< double > &offset)
 增加传送带队列
int setConveyorTrackCompensate (int encoder_id, double comp)
 设置传送带跟踪的补偿值
bool isConveyorTrackSync (int encoder_id)
 判断传送带与机械臂之间是否达到相对静止
int setConveyorTrackLimit (int encoder_id, double limit)
 设置传送带跟踪的最大距离限制
int setConveyorTrackStartWindow (int encoder_id, double window_min, double window_max)
 设置传送带跟踪的启动窗口
int setConveyorTrackSensorOffset (int encoder_id, double offset)
 设置传送带示教位置到同步开关之间的距离
int setConveyorTrackSyncSeparation (int encoder_id, double distance, double time)
 设置传送带同步分离,用于过滤掉同步开关中不需要的信号
int setConveyorTrackVelThreshold (int encoder_id, double threshold)
 设置传送带运行速度阈值,用于过滤掉编码器突变值导致的位置突变
bool isConveyorTrackExceed (int encoder_id)
 传送带上工件的移动距离是否超过最大限值
int conveyorTrackClearItems (int encoder_id)
 清空传动带队列中的所有对象
std::vector< int > getConveyorTrackQueue (int encoder_id)
 获取传送带队列的编码器值
int getConveyorTrackNextItem (int encoder_id)
 获取下一个跟踪的传送带物品的id
int moveSpiral (const SpiralParameters &param, double blend_radius, double v, double a, double t)
 螺旋线运动
int getLookAheadSize ()
 获取前瞻段数
int setLookAheadSize (int size)
 设置前瞻段数 1.
int weaveUpdateParameters (const std::string &params)
 更新摆动过程中的频率和振幅
int enableJointSoftServo (const std::vector< double > &stiffness)
 设置关节电流环刚度系数
int disableJointSoftServo ()
 关闭关节电流环刚度系数
bool isJointSoftServoEnabled ()
 判断关节电流环刚度系数是否使能
int enableVibrationSuppress (const std::vector< double > &omega, const std::vector< double > &zeta, int level)
 打开振动抑制
int disbaleVibrationSuppress ()
 关闭振动抑制
int setTimeOptimalEnable (bool enable)
 设置时间最优算法 默认关闭
bool isTimeOptimalEnabled ()
 获取时间最优算法状态: true - 开启 false - 关闭
bool isSupportedTimeOptimal ()
 获取是否支持时间最优算法: true - 支持 false - 不支持
int setTcpMaxLinearVelocity (double v)
 设置TCP最大线速度
double getTcpMaxLinearVelocity ()
 获取TCP最大线速度
int resetTcpMaxLinearVelocity ()
 重置 TCP 最大线速度
int setEndPath ()
 设置轨迹终止点(以当前轨迹段为界)
int getWeaveDirection ()
 获取当前摆焊轨迹点方向

Protected 属性

void * d_

详细描述

在文件 motion_control.h69 行定义.

构造及析构函数说明

◆ MotionControl()

arcs::common_interface::MotionControl::MotionControl ( )

◆ ~MotionControl()

virtual arcs::common_interface::MotionControl::~MotionControl ( )
virtual

成员函数说明

◆ getConveyorTrackNextItem()

int arcs::common_interface::MotionControl::getConveyorTrackNextItem ( int encoder_id)

获取下一个跟踪的传送带物品的id

参数
encoder_id预留
返回
返回物品id,没有next item返回 -1
异常
arcs::common_interface::AuboException
Python函数原型
getConveyorTrackNextItem(self: pyaubo_sdk.MotionControl, arg0: int) -> int
Lua函数原型
getConveyorTrackNextItem(encoder_id: number) -> int
JSON-RPC请求示例
{"jsonrpc":"2.0","method":"rob1.MotionControl.getConveyorTrackNextItem","params":[0],"id":1}
JSON-RPC响应示例
{"id":1,"jsonrpc":"2.0","result":{10}}

◆ isConveyorTrackExceed()

bool arcs::common_interface::MotionControl::isConveyorTrackExceed ( int encoder_id)

传送带上工件的移动距离是否超过最大限值

参数
encoder_id预留
返回
true : 移动距离超过了最大限值 false : 移动距离没有超过了最大限值
异常
arcs::common_interface::AuboException
Python函数原型
isConveyorTrackExceed(self: pyaubo_sdk.MotionControl, arg0: int) -> bool
Lua函数原型
isConveyorTrackExceed(encoder_id: number) -> bool
JSON-RPC请求示例
{"jsonrpc":"2.0","method":"rob1.MotionControl.isConveyorTrackExceed","params":[0],"id":1}
JSON-RPC响应示例
{"id":1,"jsonrpc":"2.0","result":false}

◆ servoCartesianWithAxisGroup()

int arcs::common_interface::MotionControl::servoCartesianWithAxisGroup ( const std::vector< double > & pose,
double a,
double v,
double t,
double lookahead_time,
double gain,
const std::string & group_name,
const std::vector< double > & extq )

◆ servoJointWithAxisGroup()

int arcs::common_interface::MotionControl::servoJointWithAxisGroup ( const std::vector< double > & q,
double a,
double v,
double t,
double lookahead_time,
double gain,
const std::string & group_name,
const std::vector< double > & extq )

类成员变量说明

◆ d_

void* arcs::common_interface::MotionControl::d_
protected

在文件 motion_control.h6771 行定义.


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