Manipula SDK总览
一、 C++ API规范
-
所有的C++ API函数,都在mpl命名空间中声明。在调用时,需要写明。例如,调用ShowMessage函数时,应该使用以下的写法:
mpl::ShowMessage(tr("Hello World!")); -
对于mpl命名空间中的全局函数,使用大写字母开头的写法。
-
对于类型为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
用于表示三维空间中包含了位置信息和方向信息的空间位姿。