关节机器人SDK开发指南(C)
关节机器人SDK是海康机器人自主研发的为第三方应用提供的软件开发包,是与机器人进行交互的一种方式,通过SDK接口可以对机器人进行控制和信息获取,让机器人完成用户想要完成的业务。本手册主要介绍一个基于C/C++开发的六轴关节机器人SDK,接口调用流程和开发环境搭建,旨在让开发者快速切换到业务开发流程中

关节机器人SDK开发流程和环境搭建


概述

关节机器人(以下简称“机器人”)目前广泛应用于工业领域,具有一定的自动性,可依靠自身的动力能源和控制能力实现各种工业加工制造功能,比如应用于码垛、焊接、装配、检测、打磨、喷涂等行业。

关节机器人SDK 是海康机器人自主研发的为第三方应用提供的软件开发包,是与机器人进行交互的一种方式,通过SDK接口可以对机器人进行控制和信息获取,让机器人完成用户想要完成的业务。

本手册主要介绍一个基于 C/C++开发的六轴关节机器人 SDK,接口调用流程和开发环境搭建,旨在让开发者切换到业务开发流程中


运行环境

  •  操作系统:Windows x64, 支持Win7、Win10、Win11主流windows平台
  • 内存:推荐8GB及以上
  • CPU:推荐主频在2.4G及以上,推荐酷睿I5系列及以上


接口调用流程

一、设备连接接口流程

关节机器人SDK按照功能实现不同,分成八个模块,分别为:控制器模块、用户模块、文件传输模块、系统模块、程序模块、运动模块、调试模块、参数设置模块。第三方应用可以通过SDK提供的接口从关节机器人控制器中获得对应的服务。

调用功能接口前,需先连接控制器,并切换至具有操作权限的用户角色。具体流程如下图所示:


详细步骤

  1. 调用MP_CreateHandle 接口创建句柄。
  2. 调用MP_ConnectRobotWithIP 连接控制器。
  3. 连接上控制器后,默认以操作员(Operator)权限登录,进行具体操作需要调用MP_SwitchUser 接口,切换到示教员(Programmer)或以上权限。
  4. 根据需要完成的功能调用各个模块的接口,最终完成功能调用。断开控制器、销毁句柄。

二、同步接口调用流程

关节机器人SDK提供很多的协议指令接口,同步指令协议接口调用流程如下:

指令协议接口说明如下:

  1. 创建句柄接口:MP_CreateHandle ,成功返回句柄值,失败返回NULL。
  2. 连接控制器接口:MP_ConnectRobotWithIP ,控制器的IP和端口格式为:"192.168.2.64:9000"。
  3. 获取控制权接口:用户获取可操作控制器的权限,默认不具备操作权限。
  4. 切换用户接口:MP_SwitchUser ,切换其他的用户进行操作,默认用户一些权限不具备。
  5. 协议指令接口:支持一些涉及机器人操作的相关指令。
  6. 协议指令接口返回响应操作的结果,失败可以查询具体错误码
  7. 断开控制器接口:MP_DisconnectRobot ,断开与控制器的连接。
  8. 销毁句柄接口:MP_DestroyHandle ,销毁MP_CreateHandle 创建的句柄。

三、异步接口调用流程

关节机器人SDK提供很多的协议指令接口,异步指令协议接口调用流程如下:


指令协议接口说明如下:

  1. 创建句柄接口:MP_CreateHandle ,成功返回句柄值,失败返回NULL。
  2. 连接控制器接口:MP_ConnectRobotWithIP ,控制器的IP和端口格式为:"192.168.2.64:9000"。
  3. 获取控制权接口:用户获取可操作控制器的权限,默认不具备操作权限。
  4. 切换用户接口:MP_SwitchUser ,切换其他的用户进行操作,默认用户一些权限不具备。
  5. 协议指令接口:支持一些涉及机器人操作的相关指令。
  6. 协议指令接口返回响应操作的结果,失败可以查询具体错误码
  7. 断开控制器接口:MP_DisconnectRobot ,断开与控制器的连接。
  8. 销毁句柄接口:MP_DestroyHandle ,销毁MP_CreateHandle 创建的句柄。

四、文件传输调用流程

关节机器人SDK提供多种不同类型的文件上传接口,文件上传接口调用流程如下:


异步文件上传调用接口说明如下:

  1.  创建句柄接口:MP_CreateHandle ,成功返回句柄值,失败返回NULL。
  2. 设置上传文件回调函数:MP_SetUserCallback ,回调函数类型为MP_CALLBACK_FUN_UPLOAD
  3. 连接控制器接口:MP_ConnectRobotWithIP ,控制器的IP和端口格式为:"192.168.2.64:9000"。
  4. 获取控制权接口:用户获取可操作控制器的权限,默认不具备操作权限。
  5. 切换用户接口:MP_SwitchUser ,切换到示教员及以上的用户。
  6. 异步上传文件接口:调用MP_UploadFile 接口异步上传文件。
  7. 等待上传文件回调函数推送上传结果。
  8. 断开控制器接口:MP_DisconnectRobot ,断开与控制器的连接。
  9. 销毁句柄接口:MP_DestroyHandle ,销毁MP_CreateHandle 创建的句柄。

五、回调设置调用流程

关节机器人SDK提供不同类型回调接口,数据回调、状态回调等,回调接口调用流程如下:


状态回调调用接口如下:

  1.  创建句柄接口:MP_CreateHandle ,成功返回句柄值,失败返回NULL。
  2. 连接控制器接口:MP_ConnectRobotWithIP ,控制器的IP和端口格式为:"192.168.2.64:9000"。
  3. 获取控制权接口:用户获取可操作控制器的权限,默认不具备操作权限。
  4. 切换用户接口:MP_SwitchUser ,切换到示教员及以上的用户。
  5. 设置状态回调接口:MP_SetUserCallback 先设置回调函数
    通用回调函数支持的类型:
    • MP_CALLBACK_FUN_ALARM // 告警回调
    • MP_CALLBACK_FUN_OUTPUT // 调试输出回调
    • MP_CALLBACK_FUN_PROGRAM_STATUS // 程序信息回调
    • MP_CALLBACK_FUN_ROBOT_STATUS // 机器人状态回调
    • MP_CALLBACK_FUN_CONNECT_STATUS // 连接状态回调
    • MP_CALLBACK_FUN_MOTION_STATE // 运动SDK回调
    • MP_CALLBACK_FUN_PARAM_UPDATE // 参数更新回调
    • MP_CALLBACK_FUN_LOAD_IDENTIFIY // 负载辨识回调函数
    • MP_CALLBACK_FUN_DOWNLOAD // 文件下载回调函数
    • MP_CALLBACK_FUN_UPLOAD // 文件上传回调函数
    • MP_CALLBACK_FUN_TIME // 时间回调函数
  6. 用户设置的状态函数获取状态信息。
  7. 断开控制器接口:MP_DisconnectRobot ,断开与控制器的连接
  8. 销毁句柄接口:MP_DestroyHandle ,销毁MP_CreateHandle 创建的句柄。

开发环境搭建与调试

一、开发环境搭建

编程接口库使用C++编写,Visual Studio 2017 编译,64位,接口库文件夹包含以下文件夹:

  • Demo:存放示例代码
  • Docs:存放文档、手册
  • Include:存放库头文件
  • Libs:存放库文件
  • License:存放许可证文件
  • Res:存放其他文件

头文件:

  • MP_Public_API.h :关节机器人SDK公共开发接口
  • MP_Public_Struct.h :关节机器人SDK公共数据定义
  • MP_Public_Defines.h :关节机器人SDK公共数据定义
  • MP_Public_Error.h :关节机器人SDK公共错误码
  • MP_Motion_API.h :关节机器人运动SDK开发接口
  • MP_Motion_Struct.h :关节机器人运动SDK数据定义
  • MP_HAR_API.h :HAR关节机器人开发接口
  • MP_HAR_Struct.h :HAR关节机器人数据定义
  • MP_IO_API.h :关节机器人IO开发接口
  • MP_IO_Struct.h :关节机器人IO数据定义

库文件:

  • MPSDK_PUBLIC_COMPAT.dll:机器人PC二次开发兼容性动态库
  • MPSDK_PUBLIC_COMPAT.lib:机器人PC二次开发兼容性链接文件
  • MPSDK_ADAPTER.dll:机器人PC二次开发动态适配库
  • MPSDKV212.dll:机器人PC二次开发2.1.2基线版本库文件
  • MPSDKV220.dll:机器人PC二次开发2.2.0基线版本库文件
  • MPSDK_LOG.dll:机器人PC二次开发日志库

请安装Visual Studio 2017,并同时选择安装所有C++类库。


二、开发配置

创建C++工程后,将Include文件夹下的头文件复制到任意目录下,建议复制到工程目录下,在项目-属性-配置属性-C/C++-常规-“附加包含目录”中添加头文件所在目录,如下图所示:


将Libs文件夹下的MPSDK_PUBLIC_COMPAT.lib文件添加到工程中,分两步进行:

1、在项目-属性-配置属性-链接器-常规-“附加库目录”中添加此文件所在的路径,如下图所示:



2、在项目-属性-配置属性-链接器-常规-“附加依赖项”中添加此文件,如下图所示:


至此,开发环境已经搭建好,可以正常编译;将MPSDK_ADAPTER.dll、MPSDKV212.dll、MPSDKV220.dll、MPSDK_LOG.dll等文件拷贝到工程生成的可执行文件夹中,即可运行。


三、调试运行

控制器给外部应用的网络IP是”192.168.2.64”,所以调试运行的PC机也需要将IP地址设置”192.168.2.xx”网段,且需要用网线连接机器人的网口,如果未在示教器上修改外部应用的网口,则控制器的IP保持不变,外部应用软件通过API提供的接口,登录到控制器即可参照示例代码操作机器人。

版权声明:本文为V社区用户原创内容,转载时必须标注文章的来源(V社区),文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至:v-club@hikrobotics.com 进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。
上一篇
已经是第一篇啦~
下一篇
已经是最后一篇啦~
评论请先登录 登录
全部评论 0
Lv.0
0
关注
0
粉丝
0
创作
0
获赞
相关阅读
  • 秒懂VisionMaster!「VM助手」上线,有问必答的AI导师来了!
    2025-06-26 浏览 0
  • AMR助手,你的技术外挂,上线啦!
    2025-07-03 浏览 0
  • HCT整理的笔记
    2025-07-10 浏览 0
  • Pin针检测
    2025-07-10 浏览 0
  • 燃爆2025暑期档:海康机器人工业视觉系统应用开发师资认证培训盛大开启!
    2025-07-01 浏览 0

请升级浏览器版本

您正在使用的浏览器版本过低,请升级最新版本以获得更好的体验。

推荐使用以下浏览器