24#ifndef AUBO_SDK_SYNC_MOVE_INTERFACE_H
25#define AUBO_SDK_SYNC_MOVE_INTERFACE_H
28#include <unordered_set>
31#include <aubo/global_config.h>
34namespace common_interface {
36typedef std::unordered_set<std::string>
TaskSet;
349 int frameAdd(
const std::string &name,
const std::vector<double> &pose,
350 const std::string &ref_name);
388 int frameAttach(
const std::string &child,
const std::string &parent);
479 int frameMove(
const std::string &name,
const std::vector<double> &pose,
480 const std::string &ref_name);
519 const std::string &rel_frame,
520 const std::string &ref_frame);
555 const std::string &from_frame,
556 const std::string &to_frame);
664 int axisGroupAdd(
const std::string &name,
const std::vector<double> &pose,
665 const std::string &ref_frame);
730 const std::string &parent,
731 const std::vector<double> &pose);
762 const std::vector<double> &pose);
830 const std::string &group_name);
858 const std::string &group_name);
891 const std::vector<double> &offset);
937 const std::vector<double> &q,
double a,
double v);
971 const std::vector<double> &qd,
double a,
double t);
int axisGroupSpeedJoint(const std::string &group_name, const std::vector< double > &qd, double a, double t)
以指定的加速度因子 a,将名为 group_name 的轴组加速到目标速度 qd。该函数会运行 t 秒。
int frameAttach(const std::string &child, const std::string &parent)
将子坐标系附加到父世界模型对象。附加时会设置父子之间的相对变换,使得子坐标系在世界中不会移动。
std::vector< double > frameConvertPose(const std::vector< double > &pose, const std::string &from_frame, const std::string &to_frame)
将位姿从 from_frame 坐标系转换到 to_frame 坐标系。
std::string axisGroupGetAxisName(int index)
返回指定轴索引对应的轴名称。
std::string frameGetParent(const std::string &name)
获取名为 name 的坐标系在世界模型中的父坐标系名称。
bool frameExist(const std::string &name)
查询指定名称的坐标系是否存在。
int frameDelete(const std::string &name)
删除指定名称的坐标系。
int syncMoveResume()
恢复同步运动模式。
int frameMove(const std::string &name, const std::vector< double > &pose, const std::string &ref_name)
更改名为 name 的坐标系的位置,将其移动到由 pose 指定的新位置,pose 以 ref_name 坐标系表达。
int axisGroupMoveJoint(const std::string &group_name, const std::vector< double > &q, double a, double v)
以梯形速度曲线将名为 group_name 的轴组移动到新的位置 q。 参数 a 指定本次运动的最大加速度占各轴加速度极限的百分比。 参数 v 指定本次运动的最大速度占各轴速度极限的百分比。
int axisGroupDelete(const std::string &name)
删除具有给定名称的轴组。
std::vector< double > frameGetPose(const std::string &name, const std::string &rel_frame, const std::string &ref_frame)
获取名为 name 的坐标系相对于 rel_frame 坐标系的位姿,并以 ref_frame 坐标系表达。 如果未提供 ref_frame,则返回 name 坐标系相对于 rel_frame 坐标系的...
int syncMoveOn(const std::string &syncident, const TaskSet &taskset)
syncMoveOn 用于启动同步运动模式。
int axisGroupAdd(const std::string &name, const std::vector< double > &pose, const std::string &ref_frame)
向世界模型添加一个新的轴组,名称为 name。轴组基座放置在 ref_frame 坐标系下的 pose 位置。
std::vector< double > axisGroupGetTargetPositions(const std::string &group_name)
返回指定轴组的当前目标位置。 如果未指定 group_name,则返回所有外部轴的目标位置。
int waitSyncTasks(const std::string &syncident, const TaskSet &taskset)
waitSyncTasks 用于在程序中的特定点同步多个任务程序。
int syncMoveSuspend()
暂停同步运动模式。
bool isSyncMoveOn()
isSyncMoveOn 用于判断机械单元组是否处于同步运动模式。
int axisGroupOffsetPositions(const std::string &group_name, const std::vector< double > &offset)
通过给定的 offset,将轴组 group_name 的目标位置和实际位置整体偏移。
int syncMoveOff(const std::string &syncident)
syncMoveOff 用于结束同步运动模式。
int axisGroupUpdateAxis(const std::string &name, const std::vector< double > &pose)
更新指定名称的轴的相关属性。pose 参数通常通过外部轴调试标定流程获得。 如果该轴所属的轴组正被其他命令控制,则操作会失败。 如果该轴组中任何已附加的轴处于激活和使能状态,则操作会失败。
int frameDeleteAll()
删除所有已添加到世界模型的坐标系。
std::vector< double > axisGroupGetActualPositions(const std::string &group_name)
返回指定轴组的当前实际位置。 如果未指定 group_name,则返回所有外部轴的实际位置。
int axisGroupGetAxisIndex(const std::string &name)
返回指定轴名称在 RTDE 目标位置和实际位置数组中的索引。
bool syncMoveSegment(int id)
设置同步路径段的ID 在同步运动模式下,所有同时执行的移动指令必须全部编程为圆角区(corner zones)或全部为停止点(stop points)。 这意味着具有相同ID的移动指令要么全部带有圆角区...
int frameAdd(const std::string &name, const std::vector< double > &pose, const std::string &ref_name)
添加一个名为 name 的坐标系,其初始位姿为 pose,位姿以 ref_frame 坐标系表达。 此命令仅向世界模型添加一个坐标系,并不会将其附加到 ref_frame 坐标系。 如需将新添加的坐标系...
int axisGroupAddAxis(const std::string &group_name, const std::string &name, const std::string &parent, const std::vector< double > &pose)
向名为 group_name 的轴组添加一个名为 name 的外部轴。该轴在 parent 坐标系下的 pose 位置附加,pose 表示轴位置为 0 时的位姿。 轴的类型、最大速度、最大加速度、位置限...
std::vector< std::string > frameGetChildren(const std::string &name)
返回指定父对象的直接子对象坐标系名称列表。父子关系由世界模型的附加关系定义。 如果用于 MotionPlus,子对象也可以是轴组或轴。
int syncMoveUndo()
syncMoveUndo 用于关闭同步运动,即使不是所有其他任务程序都执行了 syncMoveUndo 指令。
std::shared_ptr< SyncMove > SyncMovePtr
std::unordered_set< std::string > TaskSet