Skip to main content

Manipula SDK总览

一、 C++ API规范

  1. 所有的C++ API函数,都在mpl命名空间中声明。在调用时,需要写明。例如,调用ShowMessage函数时,应该使用以下的写法:

    mpl::ShowMessage(tr("Hello World!"));
  2. 对于mpl命名空间中的全局函数,使用大写字母开头的写法。

  3. 对于类型为QString的参数,当该参数的作用是提供qml文件的url时,不需要翻译此字符串,因此也不需要使用QObject::tr进行转换;当用于需要显示的文本时,例如text或者msg,一般情况下需要进行翻译,因此需要使用QObject::tr进行转换。

二、Manipula界面操作

有以下Manipula界面操作的接口:

QQmlContext* GetRootContext();

void AddToolGroup(QString text, QString url);

void AddActivityControl(QString text, QString icon, QString url);

void AddPanel(QString text, QString url);

void AddStatusControl(QString url);

void ShowMessage(QString msg);

std::vector<unsigned> GetSelectedIdList();

GetRootContext

用于获取当前QML引擎的根上下文环境。

AddToolGroup

用于在顶部栏中添加一组图标工具。

AddActivityControl

用于向活动工具栏添加一个图标按钮,以及对应的左侧边栏面板。

AddPanel

用于添加一个底侧边栏面板。

AddStatusControl

用于添加一块状态栏显示区域。

ShowMessage

用于弹出一个信息提示对话框。

GetSelectedIdList

用于获取当前选中的对象。返回一个列表,列表中的每一项都是一个选中的对象的id。

三、信号代理及信号

请参考Manipula信号代理介绍获取信号代理的使用方法和查询所有的信号的列表。此处仅做示例:

// 获取信号代理对象
mpl::SignalProxy* proxy = mpl::SignalProxy::Get();
// 连接信号
QObject::connect(proxy, &mpl::SignalProxy::pointCloudSelected,
this, &MyClass::onPointcloudSelected);

四、任务

任务数据中包含了常见的工序、路径、工具数据、工件数据、速度数据、点云数据等等。

unsigned CreateGenericOperation(unsigned taskId, QString name, unsigned parentId = 0);

void CreateInstructions(const std::vector<Pose>& poses, unsigned operationId, unsigned speeddataId, unsigned zonedataId, unsigned wobjdataId, unsigned tooldataId);

std::vector<IdName> GetTaskList();

std::vector<IdName> GetTooldataList(unsigned taskId);

std::vector<IdName> GetSpeeddataList(unsigned taskId);

std::vector<IdName> GetZonedataList(unsigned taskId);

std::vector<IdName> GetWObjdataList(unsigned taskId);

std::vector<Pos> GetCloudPoints(unsigned id);

void DeleteCloudPoints(unsigned pointcloud, const std::vector<size_t>& points);

void DeletePointClouds(const std::vector<unsigned>& pcs);

void DeleteSelectedCloudPoints(const std::vector<unsigned>& pcs = std::vector<unsigned>{});

void DeleteSelectedPointClouds();

4.1 创建任务数据

CreateGenericOperation

用于创建一个普通工序。

CreateInstructions

基于给定的位姿序列和相关参数创建机器人运动指令。

4.2 获取任务数据

GetTaskList

用于获取全部任务的id和name的列表。

GetTooldataList/GetSpeeddataList/GetZonedataList/GetWObjdataList

用于获取全部的工具数据、速度数据、Zone数据、工件数据的列表。

GetCloudPoints

获取一个点云对象中的所有点的坐标。

4.3 删除任务数据

DeleteCloudPoints

用于删除一个点云中的一组点。

DeletePointClouds

用于删除一个或者多个点云对象。

DeleteSelectedCloudPoints

用于删除多个或者全部点云对象中的选中的点。

DeleteSelectedPointClouds

用于删除所有的选中的点云对象。

五、基本数据结构

class Pos;

class Orient;

class Pose;

Pos

用于表示三维空间中的一个点的坐标。

Orient

用于表示三维空间中的旋转方向。

Pose

用于表示三维空间中包含了位置信息和方向信息的空间位姿。